-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCI1ST.CLIST
225 lines (205 loc) · 8.61 KB
/
CI1ST.CLIST
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
PROC 2 MOL TYPE() PSIOWN(0) LDPRFX(0) TPA(0) +
TDE(0) T30(0) T54(0) +
SN2(0) SN4(0) SN4C1(0) SCI(0) SCIS(0) +
SIZE(SMALL) MAXCOR(0)
CONTROL MSG LIST NOF
/* SN2 = THE NUMBER OF TRACKS NEEDED TO HOLD O(N**2) DATA
/* SN4 = THE NUMBER OF TRACKS NEEDED TO HOLD O(N**4) DATA
/* SN4C1 = THE NUMBER OF TRACKS NEEDED TO HOLD O(N**4) DATA
/* IN C1 SYMMETRY (USED FOR THE AO TWOPDM AND SCRATCH FILES)
/* SCI = THE SIZE OF THE CI VECTOR,
/* = O(N**4) FOR CISD (THE DEFAULT),
/* = O(N**6) FOR CISDT,
/* = O(N**8) FOR CISDTQ, ETC.
/* SCIS = THE SIZE OF THE CI SCRATCH FILES (THE MAXIMUM NUMBER OF CI
/* ITERATIONS PLUS ONE, TIMES THE SIZE OF THE CI VECTOR)
/* T30 = THE TYPE OF FILE THAT FILE30 IS (NEEDED TO DETERMINE ITS NAME)
/* T54 = THE TYPE OF FILE THAT FILE54 IS
/* TPA = THE TYPE USED FOR FILES THAT ARE PASSED BETWEEN JOBS,
/* THIS SHOULD BE SHRT IF YOU WANT TO RESTART AT ANY POINT,
/* OTHERWISE IT SHOULD BE WORK OR ES.
/* TDE = THE TYPE USED FOR FILES THAT ARE DELETED BY THE PROGRAMS THAT
/* CREATES THEM, SHOULD BE WORK OR ES.
/*
/* NOTE: EXACT SIZES OF THE FILES ARE NOT KNOWN BEFORE THE CALCULATION
/* IS RUN; HENCE, ALL SIZE ESTIMATES ARE VERY ROUGH.
/* SOMETIMES TRIAL AND ERROR MAY BE NECESSARY.
IF &PSIOWN EQ 0 THEN SET &PSIOWN = #ZA0BF9.
IF &LDPRFX EQ 0 THEN SET &LDPRFX = PSI.
IF &TYPE NE GRSCF && &TYPE NE TCSCF THEN DO
WRITE CI1ST: THE TYPE OF REFERENCE WAVEFUNCTION MUST BE SPECIFIED
WRITE AS THE SECOND ARGUMENT TO THE CI1ST PROCEDURE. FOR
WRITE CLOSED SHELL AND GENERAL RESTRICTED ONE CONFIGURATION
WRITE WAVEFUNCTIONS USE 'GRSCF'. FOR TWO CONFIGURATION WAVE
WRITE FUNCTIONS USE 'TCSCF'. OTHER TYPES ARE NOT SUPPORTED
WRITE FOR CI GRADIENTS, BUT CI ENERGY CALCULATIONS CAN STILL
WRITE BE DONE.
WRITE CI1ST: &&TYPE=&TYPE: ABORTING
EXIT CODE(877)
END
SET &CLIST = &PSIOWN.PSI.CLIST
IF &SIZE EQ SET THEN SET &SIZE = SIZESET
IF &SIZE EQ T THEN SET &SIZE = TINY
IF &SIZE EQ S THEN SET &SIZE = SMALL
IF &SIZE EQ M THEN SET &SIZE = MEDIUM
IF &SIZE EQ L THEN SET &SIZE = LARGE
IF &SIZE EQ X THEN SET &SIZE = XLARGE
IF &SIZE EQ U THEN SET &SIZE = ULTRA
IF &SIZE EQ TINY THEN DO
IF &SN2 EQ 0 THEN SET &SN2 = 5
IF &SN4 EQ 0 THEN SET &SN4 = 20
IF &SN4C1 EQ 0 THEN SET &SN4C1 = 40
IF &SCI EQ 0 THEN SET &SCI = 10
IF &SCIS EQ 0 THEN SET &SCIS = &SCI * 20
IF &T30 EQ 0 THEN SET &T30 = SAVE
IF &T54 EQ 0 THEN SET &T54 = SHRT
IF &TPA EQ 0 THEN SET &TPA = WORK
IF &TDE EQ 0 THEN SET &TDE = WORK
SET &SIZE = SET
END
IF &SIZE EQ SMALL THEN DO
IF &SN2 EQ 0 THEN SET &SN2 = 40
IF &SN4 EQ 0 THEN SET &SN4 = 400
IF &SN4C1 EQ 0 THEN SET &SN4C1 = 800
IF &SCI EQ 0 THEN SET &SCI = 200
IF &SCIS EQ 0 THEN SET &SCIS = &SCI * 20
IF &T30 EQ 0 THEN SET &T30 = SAVE
IF &T54 EQ 0 THEN SET &T54 = SHRT
IF &TPA EQ 0 THEN SET &TPA = WORK
IF &TDE EQ 0 THEN SET &TDE = WORK
SET &SIZE = SET
END
IF &SIZE EQ MEDIUM THEN DO
IF &SN2 EQ 0 THEN SET &SN2 = 100
IF &SN4 EQ 0 THEN SET &SN4 = 1000
IF &SN4C1 EQ 0 THEN SET &SN4C1 = 2000
IF &SCI EQ 0 THEN SET &SCI = 500
IF &SCIS EQ 0 THEN SET &SCIS = &SCI * 20
IF &T30 EQ 0 THEN SET &T30 = SAVE
IF &T54 EQ 0 THEN SET &T54 = SHRT
IF &TPA EQ 0 THEN SET &TPA = WORK
IF &TDE EQ 0 THEN SET &TDE = WORK
SET &SIZE = SET
END
IF &SIZE EQ LARGE THEN DO
IF &SN2 EQ 0 THEN SET &SN2 = 200
IF &SN4 EQ 0 THEN SET &SN4 = 6000
IF &SN4C1 EQ 0 THEN SET &SN4C1 = 12000
IF &SCI EQ 0 THEN SET &SCI = 3000
IF &SCIS EQ 0 THEN SET &SCIS = &SCI * 15
IF &T30 EQ 0 THEN SET &T30 = SAVE
IF &T54 EQ 0 THEN SET &T54 = WORK
IF &TPA EQ 0 THEN SET &TPA = WORK
IF &TDE EQ 0 THEN SET &TDE = WORK
SET &SIZE = SET
END
/* CI1ST STARTS GETTING REALLY BIG AT THIS POINT
IF &SIZE EQ XLARGE THEN DO
IF &SN2 EQ 0 THEN SET &SN2 = 300
IF &SN4 EQ 0 THEN SET &SN4 = 12000
IF &SN4C1 EQ 0 THEN SET &SN4C1 = 24000
IF &SCI EQ 0 THEN SET &SCI = 6000
IF &SCIS EQ 0 THEN SET &SCIS = &SCI * 15
IF &T30 EQ 0 THEN SET &T30 = SAVE
IF &T54 EQ 0 THEN SET &T54 = WORK
IF &TPA EQ 0 THEN SET &TPA = WORK
IF &TDE EQ 0 THEN SET &TDE = WORK
SET &SIZE = SET
END
IF &SIZE EQ ULTRA THEN DO
IF &SN2 EQ 0 THEN SET &SN2 = 1000
IF &SN4 EQ 0 THEN SET &SN4 = 20000
IF &SN4C1 EQ 0 THEN SET &SN4C1 = 48000
IF &SCI EQ 0 THEN SET &SCI = 10000
IF &SCIS EQ 0 THEN SET &SCIS = &SCI * 15
IF &T30 EQ 0 THEN SET &T30 = SAVE
IF &T54 EQ 0 THEN SET &T54 = WORK
IF &TPA EQ 0 THEN SET &TPA = WORK
IF &TDE EQ 0 THEN SET &TDE = WORK
SET &SIZE = SET
END
IF &SIZE ^= SET THEN DO
WRITE INVALID &&SIZE=&SIZE
EXIT CODE(877)
END
EXEC &CLIST:INTS '&MOL,T30(&T30),T34(&TPA),S34(&SN4),+
PSIOWN(&PSIOWN),LDPRFX(&LDPRFX),+
MAXCOR(&MAXCOR)'
IF &LASTCC NE 0 THEN EXIT CODE(&LASTCC)
EXEC &CLIST:SCFTFK '&MOL,T30(&T30),T34(&TPA),T47(&TPA),T49(&TPA),+
T92(&TDE),S47(&SN2),S49(&SN2),S92(&SN4),+
PSIOWN(&PSIOWN),LDPRFX(&LDPRFX),+
MAXCOR(&MAXCOR)'
IF &LASTCC NE 0 THEN EXIT CODE(&LASTCC)
EXEC &CLIST:MASTER '&MOL,T30(&T30),T34(&TPA),T36(&TDE),T40(&TPA),+
S36(&SN4),S40(&SN2),+
PSIOWN(&PSIOWN),LDPRFX(&LDPRFX),+
MAXCOR(&MAXCOR)'
IF &LASTCC NE 0 THEN EXIT CODE(&LASTCC)
EXEC &CLIST:DRT '&MOL,T58(&TPA)'
IF &LASTCC NE 0 THEN EXIT CODE(&LASTCC)
EXEC &CLIST:TRANS '&MOL,T30(&T30),T34(&TPA),T52(&TPA),T58(&TPA),+
T91(&TDE),S52(&SN4),+
PSIOWN(&PSIOWN),LDPRFX(&LDPRFX),+
MAXCOR(&MAXCOR)'
IF &LASTCC NE 0 THEN EXIT CODE(&LASTCC)
EXEC &CLIST:CISORT '&MOL,T52(&TPA),T58(&TPA),T99(&TDE),S99(&SN4),+
PSIOWN(&PSIOWN),LDPRFX(&LDPRFX),+
MAXCOR(&MAXCOR)'
IF &LASTCC NE 0 THEN EXIT CODE(&LASTCC)
EXEC &CLIST:GUGACI '&MOL,T52(&TPA),T54(&T54),T58(&TPA),T99(&TDE),+
T95(&TDE),T96(&TDE),S54(&SCI),S99(&SCIS),+
PSIOWN(&PSIOWN),LDPRFX(&LDPRFX),+
MAXCOR(&MAXCOR)'
IF &LASTCC NE 0 THEN EXIT CODE(&LASTCC)
EXEC &CLIST:ONEPDM '&MOL,T30(&T30),T40(&TPA),T50(&TPA),T51(&TPA),+
T54(&T54),T58(&TPA),S50(&SN2),S51(&SN2),+
PSIOWN(&PSIOWN),LDPRFX(&LDPRFX),+
MAXCOR(&MAXCOR)'
IF &LASTCC NE 0 THEN EXIT CODE(&LASTCC)
EXEC &CLIST:TWOPDM '&MOL,T53(&TPA),T54(&T54),T58(&TPA),+
S53(&SN4),+
PSIOWN(&PSIOWN),LDPRFX(&LDPRFX),+
MAXCOR(&MAXCOR)'
IF &LASTCC NE 0 THEN EXIT CODE(&LASTCC)
EXEC &CLIST:LAGTR '&MOL,T30(&T30),T40(&TPA),T47(&TPA),T52(&TPA),+
T53(&TPA),T54(&T54),T55(&TPA),T58(&TPA),+
T71(&TPA),T85(&TPA),T91(&TDE),+
S55(&SN4C1),S71(&SN2),+
PSIOWN(&PSIOWN),LDPRFX(&LDPRFX),+
MAXCOR(&MAXCOR)'
IF &LASTCC NE 0 THEN EXIT CODE(&LASTCC)
EXEC &CLIST:CIPROP '&MOL,T30(&T30),T40(&TPA),T59(&TPA),+
S59(&SN2),+
PSIOWN(&PSIOWN),LDPRFX(&LDPRFX),+
MAXCOR(&MAXCOR)'
IF &LASTCC NE 0 THEN EXIT CODE(&LASTCC)
EXEC &CLIST:BONDEX '&MOL,T30(&T30),+
PSIOWN(&PSIOWN),LDPRFX(&LDPRFX),+
MAXCOR(&MAXCOR)'
IF &LASTCC NE 0 THEN EXIT CODE(&LASTCC)
EXEC &CLIST:DERTFK '&MOL,T30(&T30),T42(&TPA),T47(&TPA),T49(&TPA),+
T55(&TPA),S42(&SN2),+
PSIOWN(&PSIOWN),LDPRFX(&LDPRFX),+
MAXCOR(&MAXCOR)'
IF &LASTCC NE 0 THEN EXIT CODE(&LASTCC)
IF &TYPE EQ GRSCF THEN DO
/* I'M NOT REALLY SURE IF SN4 IS NEEDED FOR S94.
EXEC &CLIST:NGRCPHF '&MOL,T30(&T30),T42(&TPA),T47(&TPA),T52(&TPA),+
T54(&T54),T58(&TPA),T59(&TPA),+
T94(&TDE),+
S94(&SN4),+
PSIOWN(&PSIOWN),LDPRFX(&LDPRFX),+
MAXCOR(&MAXCOR)'
IF &LASTCC NE 0 THEN EXIT CODE(&LASTCC)
END
IF &TYPE EQ TCSCF THEN DO
EXEC &CLIST:CICPHF '&MOL,T30(&T30),T42(&TPA),T47(&TPA),T52(&TPA),+
T54(&T54),T58(&TPA),T59(&TPA),+
T94(&TDE),+
S94(&SN4),+
PSIOWN(&PSIOWN),LDPRFX(&LDPRFX),+
MAXCOR(&MAXCOR)'
IF &LASTCC NE 0 THEN EXIT CODE(&LASTCC)
END
EXIT CODE(0)