3
#include <libipv1/ip_lib.h>
4
#include <libciomr/libciomr.h>
5
#include <libchkpt/chkpt.h>
6
#include <libpsio/psio.h>
15
chkpt_init(PSIO_OPEN_OLD);
17
mo.nmo = chkpt_rd_nmo();
18
mo.nso = chkpt_rd_nso();
19
mo.nao = chkpt_rd_nao();
20
mo.nirreps = chkpt_rd_nirreps();
21
mo.irreplabels = chkpt_rd_irr_labs();
22
mo.mopi = chkpt_rd_orbspi();
23
mo.doccpi = chkpt_rd_clsdpi();
24
mo.soccpi = chkpt_rd_openpi();
25
mo.Enuc = chkpt_rd_enuc();
26
mo.Escf = chkpt_rd_escf();
30
psio_read_entry(CC_INFO,"Reference Wavefunction",(char*)&(params.ref),sizeof(int));
32
mo.fzdoccpi = init_int_array(mo.nirreps);
33
mo.fzvirtpi = init_int_array(mo.nirreps);
35
psio_read_entry(CC_INFO,"Frozen Core Orbs Per Irrep",(char*)mo.fzdoccpi,sizeof(int)*mo.nirreps);
36
psio_read_entry(CC_INFO,"Frozen Virt Orbs Per Irrep",(char*)mo.fzvirtpi,sizeof(int)*mo.nirreps);
37
psio_read_entry(CC_INFO,"No. of Active Orbitals",(char*)&(mo.nactmo),sizeof(int));
39
if(params.ref == 2) { /** UHF **/
41
mo.aoccpi = init_int_array(mo.nirreps);
42
mo.boccpi = init_int_array(mo.nirreps);
43
mo.avirpi = init_int_array(mo.nirreps);
44
mo.bvirpi = init_int_array(mo.nirreps);
46
psio_read_entry(CC_INFO,"Active Alpha Occ Orbs Per Irrep",(char*)mo.aoccpi,sizeof(int)*mo.nirreps);
47
psio_read_entry(CC_INFO,"Active Beta Occ Orbs Per Irrep",(char*)mo.boccpi,sizeof(int)*mo.nirreps);
48
psio_read_entry(CC_INFO,"Active Alpha Virt Orbs Per Irrep",(char*)mo.avirpi,sizeof(int)*mo.nirreps);
49
psio_read_entry(CC_INFO,"Active Beta Virt Orbs Per Irrep",(char*)mo.bvirpi,sizeof(int)*mo.nirreps);
51
mo.aocc_sym = init_int_array(mo.nactmo);
52
mo.bocc_sym = init_int_array(mo.nactmo);
53
mo.avir_sym = init_int_array(mo.nactmo);
54
mo.bvir_sym = init_int_array(mo.nactmo);
56
psio_read_entry(CC_INFO,"Active Alpha Occ Orb Symmetry",(char*)mo.aocc_sym,sizeof(int)*mo.nactmo);
57
psio_read_entry(CC_INFO,"Active Beta Occ Orb Symmetry",(char*)mo.bocc_sym,sizeof(int)*mo.nactmo);
58
psio_read_entry(CC_INFO,"Active Alpha Virt Orb Symmetry",(char*)mo.avir_sym,sizeof(int)*mo.nactmo);
59
psio_read_entry(CC_INFO,"Active Beta Virt Orb Symmetry",(char*)mo.bvir_sym,sizeof(int)*mo.nactmo);
61
mo.aocc_off = init_int_array(mo.nirreps);
62
mo.bocc_off = init_int_array(mo.nirreps);
63
mo.avir_off = init_int_array(mo.nirreps);
64
mo.bvir_off = init_int_array(mo.nirreps);
66
psio_read_entry(CC_INFO,"Active Alpha Occ Orb Offsets",(char*)mo.aocc_off,sizeof(int)*mo.nirreps);
67
psio_read_entry(CC_INFO,"Active Beta Occ Orb Offsets",(char*)mo.bocc_off,sizeof(int)*mo.nirreps);
68
psio_read_entry(CC_INFO,"Active Alpha Virt Orb Offsets",(char*)mo.avir_off,sizeof(int)*mo.nirreps);
69
psio_read_entry(CC_INFO,"Active Beta Virt Orb Offsets",(char*)mo.bvir_off,sizeof(int)*mo.nirreps);
71
mo.qt_aocc = init_int_array(mo.nactmo);
72
mo.qt_bocc = init_int_array(mo.nactmo);
73
mo.qt_avir = init_int_array(mo.nactmo);
74
mo.qt_bvir = init_int_array(mo.nactmo);
76
psio_read_entry(CC_INFO,"CC->QT Alpha Active Occ Order",(char*)mo.qt_aocc,sizeof(int)*mo.nactmo);
77
psio_read_entry(CC_INFO,"CC->QT Beta Active Occ Order",(char*)mo.qt_bocc,sizeof(int)*mo.nactmo);
78
psio_read_entry(CC_INFO,"CC->QT Alpha Active Virt Order",(char*)mo.qt_avir,sizeof(int)*mo.nactmo);
79
psio_read_entry(CC_INFO,"CC->QT Beta Active Virt Order",(char*)mo.qt_bvir,sizeof(int)*mo.nactmo);
81
else { /** RHF or ROHF **/
83
mo.occpi = init_int_array(mo.nirreps);
84
mo.virpi = init_int_array(mo.nirreps);
85
psio_read_entry(CC_INFO,"Active Occ Orbs Per Irrep",(char*)mo.occpi,sizeof(int)*mo.nirreps);
86
psio_read_entry(CC_INFO,"Active Virt Orbs Per Irrep",(char*)mo.virpi,sizeof(int)*mo.nirreps);
88
mo.occ_sym = init_int_array(mo.nactmo);
89
mo.vir_sym = init_int_array(mo.nactmo);
90
psio_read_entry(CC_INFO,"Active Occ Orb Symmetry",(char*)mo.occ_sym,sizeof(int)*mo.nactmo);
91
psio_read_entry(CC_INFO,"Active Virt Orb Symmetry",(char*)mo.vir_sym,sizeof(int)*mo.nactmo);
93
mo.occ_off = init_int_array(mo.nirreps);
94
mo.vir_off = init_int_array(mo.nirreps);
95
psio_read_entry(CC_INFO,"Active Occ Orb Offsets",(char*)mo.occ_off,sizeof(int)*mo.nirreps);
96
psio_read_entry(CC_INFO,"Active Virt Orb Offsets",(char*)mo.vir_off,sizeof(int)*mo.nirreps);
98
mo.qt_occ = init_int_array(mo.nactmo);
99
mo.qt_vir = init_int_array(mo.nactmo);
101
psio_read_entry(CC_INFO,"CC->QT Active Occ Order",(char*)mo.qt_occ,sizeof(int)*mo.nactmo);
102
psio_read_entry(CC_INFO,"CC->QT Active Virt Order",(char*)mo.qt_vir,sizeof(int)*mo.nactmo);
105
mo.virtpi = init_int_array(mo.nirreps);
106
for(i=0; i<mo.nirreps; i++)
107
mo.virtpi[i] = mo.mopi[i] - mo.doccpi[i] - mo.soccpi[i];
109
mo.ndocc = mo.nsocc = mo.nvirt = 0;
110
for(i=0; i<mo.nirreps; i++) {
111
mo.nfzdocc += mo.fzdoccpi[i];
112
mo.nfzvirt += mo.fzvirtpi[i];
113
mo.ndocc += mo.doccpi[i];
114
mo.nsocc += mo.soccpi[i];
115
mo.nvirt += mo.virtpi[i];
118
/*fprintf(outfile,"\n");
119
fprintf(outfile,"\tChkpt Parameters:\n");
120
fprintf(outfile,"\t--------------------\n");
121
fprintf(outfile,"\tNumber of irreps = %d\n",mo.nirreps);
122
fprintf(outfile,"\tNumber of MOs = %d\n",mo.nmo);
123
fprintf(outfile,"\n");
125
"\tLabel\tFZDC\tACTD\tDOCC\tSOCC\tACTV\tFZVI\tVIRT\tMOs\n");
127
"\t-----\t----\t----\t----\t----\t----\t----\t----\t---\n");
128
for(i=0; i<mo.nirreps; i++) {
130
"\t %s \t %d\t %d\t %d\t %d\t %d\t %d\t %d\t %d\n",
131
mo.irreplabels[i],mo.fzdoccpi[i],mo.occpi[i],mo.doccpi[i],mo.soccpi[i],
132
mo.virpi[i],mo.fzvirtpi[i],mo.virtpi[i],mo.mopi[i]);
135
fprintf(outfile,"\n");
136
fprintf(outfile,"\tNuclear rep. energy = %20.15f\n",mo.Enuc);
137
fprintf(outfile,"\tSCF energy = %20.15f\n",mo.Escf);