3
\brief Enter brief description of file here
9
#include "prototypes.h"
11
namespace psi { namespace oeprop {
16
double xmin,xmax,ymin,ymax,zmin,zmax;
18
/* Set some defaults for certain wavefunctions */
19
update_energy_with_MVD = 0;
21
errcod = ip_string("WFN", &wfn, 0);
23
if (errcod == IPE_OK) {
24
if (!strcmp(wfn, "CI") || !strcmp(wfn, "DETCI") ||
25
!strcmp(wfn, "CCSD") || !strcmp(wfn, "DETCAS") ||
26
!strcmp(wfn, "CASSCF") || !strcmp(wfn, "RASSCF") ||
27
!strcmp(wfn, "MP2") || !strcmp(wfn, "EOM_CCSD") ||
28
!strcmp(wfn, "CC2") || !strcmp(wfn, "EOM_CC2") ||
29
!strcmp(wfn, "CCSD_MVD")) {
31
opdm_file = PSIF_MO_OPDM;
33
opdm_basis = (char *) malloc(3*sizeof(char));
34
strcpy(opdm_basis,"MO");
35
opdm_format = (char *) malloc(7*sizeof(char));
36
strcpy(opdm_format,"SQUARE");
38
if (!strcmp(wfn, "SCF_MVD") || !strcmp(wfn, "CCSD_MVD"))
39
update_energy_with_MVD = 1;
42
fprintf(outfile,"Incorrect wave function type!\n");
47
errcod = ip_boolean("TRANSITION_DENSITY", &transdens, 0);
53
errcod = ip_string("REFERENCE", &ref, 0);
55
if (errcod != IPE_OK) {
56
fprintf(outfile,"Incorrect reference!\n");
62
errcod = ip_boolean("READ_OPDM",&read_opdm,0);
64
errcod = ip_data("OPDM_FILE","%d",&opdm_file,0);
65
if ((opdm_file >= PSIO_MAXUNIT) || (opdm_file <= 0))
66
punt("OPDM_FILE out of range");
67
if ((opdm_file != 40) && (opdm_file != 79) &&
68
(opdm_file != PSIF_MO_OPDM)) {
69
errcod = ip_string("OPDM_BASIS",&opdm_basis,0);
70
if ((errcod == IPE_KEY_NOT_FOUND) || (errcod != IPE_OK)) {
71
opdm_basis = (char *) malloc(3*sizeof(char));
72
strcpy(opdm_basis,"AO");
74
errcod = ip_string("OPDM_FORMAT",&opdm_format,0);
75
if ((errcod == IPE_KEY_NOT_FOUND) || (errcod != IPE_OK)) {
76
opdm_format = (char *) malloc(7*sizeof(char));
77
strcpy(opdm_format,"TRIANG");
81
errcod = ip_boolean("WRTNOS",&wrtnos,0);
82
errcod = ip_boolean("ASYMM_OPDM",&asymm_opdm,0);
85
errcod = ip_boolean("SPIN_PROP",&spin_prop,0);
86
if (spin_prop && read_opdm)
91
errcod = ip_data("PRINT","%d",&print_lvl,0);
94
errcod = ip_boolean("PRINT_NOS",&print_nos,0);
96
errcod = ip_boolean("CORREL_CORR",&corr,0);
97
/*--- corr should be zero since we are not using Psi2 any longer ---*/
100
errcod = ip_data("ZVEC_FILE","%d",&zvec_file,0);
101
if ((zvec_file >= PSIO_MAXUNIT) || (zvec_file <= 0))
102
punt("ZVEC_FILE out of range");
103
errcod = ip_boolean("DELETE_ZVEC",&delete_zvec,0);
106
errcod = ip_data("MPMAX","%d",&mpmax,0);
113
if (ip_exist("MP_REF_XYZ",0)) {
114
ip_count("MP_REF_XYZ",&i,0);
116
punt("MP_REF_XYZ must have 3 components");
118
errcod = ip_data("MP_REF_XYZ","%lf",&mp_ref_xyz[i],1,i);
119
if (errcod != IPE_OK)
120
punt("Error in the definition of MP_REF_XYZ");
122
mp_ref = -1; /* mp_ref = -1 means that mp_ref_xyz specified by user */
125
errcod = ip_data("MP_REF","%d",&mp_ref,0);
126
if (mp_ref <= 0) /* Default is COM */
130
if (ip_exist("LM_REF_XYZ",0)) {
131
ip_count("LM_REF_XYZ",&i,0);
133
punt("LM_REF_XYZ must have 3 components");
135
errcod = ip_data("LM_REF_XYZ","%lf",&Lm_ref_xyz[i],1,i);
136
if (errcod != IPE_OK)
137
punt("Error in the definition of LM_REF_XYZ");
141
Lm_ref_xyz[0] = Lm_ref_xyz[1] = Lm_ref_xyz[2] = 0.0;
144
errcod = ip_boolean("NUC_ESP",&nuc_esp,0);
148
fine_structure_alpha = 1.0;
149
errcod = ip_data("FINE_STRUCTURE_ALPHA","%lf",&fine_structure_alpha,0);
152
}} // namespace psi::oeprop