~ubuntu-branches/ubuntu/quantal/psicode/quantal

« back to all changes in this revision

Viewing changes to src/bin/cclambda/L1.c

  • Committer: Bazaar Package Importer
  • Author(s): Michael Banck
  • Date: 2006-09-10 14:01:33 UTC
  • Revision ID: james.westby@ubuntu.com-20060910140133-ib2j86trekykfsfv
Tags: upstream-3.2.3
ImportĀ upstreamĀ versionĀ 3.2.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <stdio.h>
 
2
#include <libdpd/dpd.h>
 
3
#define EXTERN
 
4
#include "globals.h"
 
5
 
 
6
void L1_build(int L_irr, int root_L_irr) {
 
7
  dpdfile2 newLIA, newLia, LIA, Lia;
 
8
  dpdfile2 dIA, dia, Fme, FME;
 
9
  dpdfile2 LFaet2, LFAEt2, LFmit2, LFMIt2;
 
10
  dpdfile2 GMI, Gmi, Gae;
 
11
  dpdfile2 GAE;
 
12
  dpdbuf4 WMBEJ, Wmbej, WMbEj, WmBeJ;
 
13
  dpdbuf4 WMBIJ, Wmbij, WMbIj, WmBiJ;
 
14
  dpdbuf4 LIJAB, Lijab, LIjAb, LiJaB, L2;
 
15
  dpdbuf4 WMNIE, Wmnie, WMnIe, WmNiE;
 
16
  dpdbuf4 WAMEF, Wamef, WAmEf, WaMeF, W;
 
17
 
 
18
  /* ground state homogeneous term is Fme */
 
19
  if (params.ground) {
 
20
    if(params.ref == 0 || params.ref == 1) {
 
21
      dpd_file2_init(&Fme,CC_OEI, 0, 0, 1, "Fme");
 
22
      dpd_file2_init(&FME,CC_OEI, 0, 0, 1, "FME");
 
23
      dpd_file2_copy(&Fme, CC_OEI, "New Lia");
 
24
      dpd_file2_copy(&FME, CC_OEI, "New LIA");
 
25
      dpd_file2_close(&Fme);
 
26
      dpd_file2_close(&FME);
 
27
    }
 
28
    else if(params.ref == 2) {
 
29
      dpd_file2_init(&Fme,CC_OEI, 0, 2, 3, "Fme");
 
30
      dpd_file2_init(&FME,CC_OEI, 0, 0, 1, "FME");
 
31
      dpd_file2_copy(&Fme, CC_OEI, "New Lia");
 
32
      dpd_file2_copy(&FME, CC_OEI, "New LIA");
 
33
      dpd_file2_close(&Fme);
 
34
      dpd_file2_close(&FME);
 
35
    }
 
36
  }
 
37
  /* excited state - no homogenous term, first term is E*L */
 
38
  else {
 
39
    dpd_file2_init(&LIA, CC_OEI, L_irr, 0, 1, "LIA");
 
40
    dpd_file2_init(&newLIA, CC_OEI, L_irr, 0, 1, "New LIA");
 
41
    if (params.ref == 0 || params.ref == 1) {
 
42
      dpd_file2_init(&Lia, CC_OEI, L_irr, 0, 1, "Lia");
 
43
      dpd_file2_init(&newLia, CC_OEI, L_irr, 0, 1, "New Lia");
 
44
    }
 
45
    else if (params.ref == 2) {
 
46
      dpd_file2_init(&Lia, CC_OEI, L_irr, 2, 3, "Lia");
 
47
      dpd_file2_init(&newLia, CC_OEI, L_irr, 2, 3, "New Lia");
 
48
    }
 
49
    dpd_file2_axpy(&LIA, &newLIA, -1.0 * params.cceom_energy[L_irr][root_L_irr],0.0);
 
50
    dpd_file2_axpy(&Lia, &newLia, -1.0 * params.cceom_energy[L_irr][root_L_irr],0.0);
 
51
    dpd_file2_close(&LIA);
 
52
    dpd_file2_close(&newLIA);
 
53
    dpd_file2_close(&Lia);
 
54
    dpd_file2_close(&newLia);
 
55
  }
 
56
 
 
57
  if(params.ref == 0 || params.ref == 1) {
 
58
    dpd_file2_init(&newLIA, CC_OEI, L_irr, 0, 1, "New LIA");
 
59
    dpd_file2_init(&newLia, CC_OEI, L_irr, 0, 1, "New Lia");
 
60
  }
 
61
  else if(params.ref == 2) {
 
62
    dpd_file2_init(&newLIA, CC_OEI, L_irr, 0, 1, "New LIA");
 
63
    dpd_file2_init(&newLia, CC_OEI, L_irr, 2, 3, "New Lia");
 
64
  }
 
65
 
 
66
  /* L0=0 for excited states, so no inhomogeneous Fia and Wijab terms */
 
67
  /* make sure these are not nonzero from last iteration */
 
68
  /*
 
69
  if (!params.ground) {
 
70
    dpd_file2_scm(&newLIA, 0.0);
 
71
    dpd_file2_scm(&newLia, 0.0);
 
72
  }
 
73
  */
 
74
 
 
75
  if(params.ref == 0 || params.ref == 1) { /** RHF/ROHF **/
 
76
 
 
77
    /* L1 RHS += Lie*Fea */
 
78
    dpd_file2_init(&LIA, CC_OEI, L_irr, 0, 1, "LIA");
 
79
    dpd_file2_init(&Lia, CC_OEI, L_irr, 0, 1, "Lia");
 
80
 
 
81
    dpd_file2_init(&LFAEt2, CC_OEI, 0, 1, 1, "FAE");
 
82
    dpd_file2_init(&LFaet2, CC_OEI, 0, 1, 1, "Fae");
 
83
    dpd_contract222(&Lia,&LFaet2,&newLia, 0, 1, 1.0, 1.0);
 
84
    dpd_contract222(&LIA,&LFAEt2,&newLIA, 0, 1, 1.0, 1.0);
 
85
    dpd_file2_close(&LFaet2);
 
86
    dpd_file2_close(&LFAEt2);
 
87
 
 
88
    /* L1 RHS += -Lma*Fim */
 
89
    dpd_file2_init(&LFMIt2,CC_OEI, 0, 0, 0, "FMI");
 
90
    dpd_file2_init(&LFmit2,CC_OEI, 0, 0, 0, "Fmi");
 
91
    dpd_contract222(&LFmit2,&Lia,&newLia, 0, 1, -1.0, 1.0);
 
92
    dpd_contract222(&LFMIt2,&LIA,&newLIA, 0, 1, -1.0, 1.0);
 
93
    dpd_file2_close(&LFmit2);
 
94
    dpd_file2_close(&LFMIt2);
 
95
 
 
96
    /* L1 RHS += Lme*Wieam */
 
97
    dpd_buf4_init(&WMBEJ, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMBEJ");
 
98
    dpd_contract422(&WMBEJ, &LIA, &newLIA, 0, 0, 1.0, 1.0);
 
99
    dpd_buf4_close(&WMBEJ);
 
100
 
 
101
    dpd_buf4_init(&WMbEj, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMbEj");
 
102
    dpd_contract422(&WMbEj, &Lia, &newLIA, 0, 0, 1.0, 1.0);
 
103
    dpd_buf4_close(&WMbEj);
 
104
 
 
105
    dpd_buf4_init(&Wmbej, CC_HBAR, 0, 10, 10, 10, 10, 0, "Wmbej");
 
106
    dpd_contract422(&Wmbej, &Lia, &newLia, 0, 0, 1.0, 1.0);
 
107
    dpd_buf4_close(&Wmbej);
 
108
 
 
109
    dpd_buf4_init(&WmBeJ, CC_HBAR, 0, 10, 10, 10, 10, 0, "WmBeJ");
 
110
    dpd_contract422(&WmBeJ, &LIA, &newLia, 0, 0, 1.0, 1.0);
 
111
    dpd_buf4_close(&WmBeJ);
 
112
 
 
113
    dpd_file2_close(&LIA);
 
114
    dpd_file2_close(&Lia);
 
115
  }
 
116
  else if(params.ref == 2) { /** UHF **/
 
117
 
 
118
    /* L1 RHS += Lie*Fea */
 
119
    dpd_file2_init(&LIA, CC_OEI, L_irr, 0, 1, "LIA");
 
120
    dpd_file2_init(&Lia, CC_OEI, L_irr, 2, 3, "Lia");
 
121
 
 
122
    dpd_file2_init(&LFAEt2, CC_OEI, 0, 1, 1, "FAEt");
 
123
    dpd_file2_init(&LFaet2, CC_OEI, 0, 3, 3, "Faet");
 
124
    dpd_contract222(&Lia,&LFaet2,&newLia, 0, 1, 1, 1);
 
125
    dpd_contract222(&LIA,&LFAEt2,&newLIA, 0, 1, 1, 1);
 
126
    dpd_file2_close(&LFaet2);
 
127
    dpd_file2_close(&LFAEt2);
 
128
 
 
129
    /* L1 RHS += -Lma*Fim */
 
130
    dpd_file2_init(&LFMIt2,CC_OEI, 0, 0, 0, "FMIt");
 
131
    dpd_file2_init(&LFmit2,CC_OEI, 0, 2, 2, "Fmit");
 
132
    dpd_contract222(&LFmit2,&Lia,&newLia, 0, 1, -1, 1);
 
133
    dpd_contract222(&LFMIt2,&LIA,&newLIA, 0, 1, -1, 1);
 
134
    dpd_file2_close(&LFmit2);
 
135
    dpd_file2_close(&LFMIt2);
 
136
 
 
137
    /* L1 RHS += Lme*Wieam */
 
138
    dpd_buf4_init(&WMBEJ, CC_HBAR, 0, 20, 20, 20, 20, 0, "WMBEJ");
 
139
    dpd_contract422(&WMBEJ, &LIA, &newLIA, 0, 0, 1, 1);
 
140
    dpd_buf4_close(&WMBEJ);
 
141
 
 
142
    dpd_buf4_init(&WMbEj, CC_HBAR, 0, 20, 30, 20, 30, 0, "WMbEj");
 
143
    dpd_contract422(&WMbEj, &Lia, &newLIA, 0, 0, 1, 1);
 
144
    dpd_buf4_close(&WMbEj);
 
145
 
 
146
    dpd_buf4_init(&Wmbej, CC_HBAR, 0, 30, 30, 30, 30, 0, "Wmbej");
 
147
    dpd_contract422(&Wmbej, &Lia, &newLia, 0, 0, 1, 1);
 
148
    dpd_buf4_close(&Wmbej);
 
149
 
 
150
    dpd_buf4_init(&WmBeJ, CC_HBAR, 0, 30, 20, 30, 20, 0, "WmBeJ");
 
151
    dpd_contract422(&WmBeJ, &LIA, &newLia, 0, 0, 1, 1);
 
152
    dpd_buf4_close(&WmBeJ);
 
153
 
 
154
    dpd_file2_close(&LIA);
 
155
    dpd_file2_close(&Lia);
 
156
  }
 
157
 
 
158
  /* L1 RHS += 1/2 Limef*Wefam */
 
159
  if(params.ref == 0 || params.ref == 1) {
 
160
 
 
161
    dpd_buf4_init(&W, CC_HBAR, 0, 11, 7, 11, 7, 0, "WEIAB");
 
162
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 0, 7, 2, 7, 0, "LIJAB");
 
163
    dpd_contract442(&L2, &W, &newLIA, 0, 0, 1.0, 1.0);
 
164
    dpd_buf4_close(&W);
 
165
    dpd_buf4_close(&L2);
 
166
    dpd_buf4_init(&W, CC_HBAR, 0, 11, 5, 11, 5, 0, "WEiAb");
 
167
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 0, 5, 0, 5, 0, "LIjAb");
 
168
    dpd_contract442(&L2, &W, &newLIA, 0, 0, 1.0, 1.0);
 
169
    dpd_buf4_close(&W);
 
170
    dpd_buf4_close(&L2);
 
171
 
 
172
    dpd_buf4_init(&W, CC_HBAR, 0, 11, 7, 11, 7, 0, "Weiab");
 
173
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 0, 7, 2, 7, 0, "Lijab");
 
174
    dpd_contract442(&L2, &W, &newLia, 0, 0, 1.0, 1.0);
 
175
    dpd_buf4_close(&W);
 
176
    dpd_buf4_close(&L2);
 
177
    dpd_buf4_init(&W, CC_HBAR, 0, 11, 5, 11, 5, 0, "WeIaB");
 
178
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 0, 5, 0, 5, 0, "LiJaB");
 
179
    dpd_contract442(&L2, &W, &newLia, 0, 0, 1.0, 1.0);
 
180
    dpd_buf4_close(&W);
 
181
    dpd_buf4_close(&L2);
 
182
  }
 
183
  else if(params.ref == 2) {
 
184
 
 
185
    dpd_buf4_init(&W, CC_HBAR, 0, 21, 7, 21, 7, 0, "WEIAB");
 
186
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 0, 7, 2, 7, 0, "LIJAB");
 
187
    dpd_contract442(&L2, &W, &newLIA, 0, 0, 1, 1);
 
188
    dpd_buf4_close(&W);
 
189
    dpd_buf4_close(&L2);
 
190
    dpd_buf4_init(&W, CC_HBAR, 0, 26, 28, 26, 28, 0, "WEiAb");
 
191
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 22, 28, 22, 28, 0, "LIjAb");
 
192
    dpd_contract442(&L2, &W, &newLIA, 0, 0, 1, 1);
 
193
    dpd_buf4_close(&W);
 
194
    dpd_buf4_close(&L2);
 
195
 
 
196
    dpd_buf4_init(&W, CC_HBAR, 0, 31, 17, 31, 17, 0, "Weiab");
 
197
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 10, 17, 12, 17, 0, "Lijab");
 
198
    dpd_contract442(&L2, &W, &newLia, 0, 0, 1, 1);
 
199
    dpd_buf4_close(&W);
 
200
    dpd_buf4_close(&L2);
 
201
    dpd_buf4_init(&W, CC_HBAR, 0, 25, 29, 25, 29, 0, "WeIaB");
 
202
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 23, 29, 23, 29, 0, "LiJaB");
 
203
    dpd_contract442(&L2, &W, &newLia, 0, 0, 1, 1);
 
204
    dpd_buf4_close(&W);
 
205
    dpd_buf4_close(&L2);
 
206
 
 
207
  }
 
208
 
 
209
  /* L1 RHS += -1/2 Lmnae*Wiemn */
 
210
  if(params.ref == 0 || params.ref == 1) {
 
211
 
 
212
    dpd_buf4_init(&WMBIJ, CC_HBAR, 0, 10, 2, 10, 2, 0, "WMBIJ");
 
213
    dpd_buf4_init(&LIJAB, CC_LAMBDA, L_irr, 2, 5, 2, 7, 0, "LIJAB");
 
214
    dpd_contract442(&WMBIJ, &LIJAB, &newLIA, 0, 2, -1.0, 1.0);
 
215
    dpd_buf4_close(&LIJAB);
 
216
    dpd_buf4_close(&WMBIJ);
 
217
 
 
218
    dpd_buf4_init(&WMbIj, CC_HBAR, 0, 10, 0, 10, 0, 0, "WMbIj");
 
219
    dpd_buf4_init(&LIjAb, CC_LAMBDA, L_irr, 0, 5, 0, 5, 0, "LIjAb");
 
220
    dpd_contract442(&WMbIj, &LIjAb, &newLIA, 0, 2, -1.0, 1.0);
 
221
    dpd_buf4_close(&LIjAb);
 
222
    dpd_buf4_close(&WMbIj);
 
223
 
 
224
    dpd_buf4_init(&Wmbij, CC_HBAR, 0, 10, 2, 10, 2, 0, "Wmbij");
 
225
    dpd_buf4_init(&Lijab, CC_LAMBDA, L_irr, 2, 5, 2, 7, 0, "Lijab");
 
226
    dpd_contract442(&Wmbij, &Lijab, &newLia, 0, 2, -1.0, 1.0);
 
227
    dpd_buf4_close(&Lijab);
 
228
    dpd_buf4_close(&Wmbij);
 
229
 
 
230
    dpd_buf4_init(&WmBiJ, CC_HBAR, 0, 10, 0, 10, 0, 0, "WmBiJ");
 
231
    dpd_buf4_init(&LiJaB, CC_LAMBDA, L_irr, 0, 5, 0, 5, 0, "LiJaB");
 
232
    dpd_contract442(&WmBiJ, &LiJaB, &newLia, 0, 2, -1.0, 1.0);
 
233
    dpd_buf4_close(&LiJaB);
 
234
    dpd_buf4_close(&WmBiJ);
 
235
  }
 
236
  else if(params.ref == 2) {
 
237
 
 
238
    dpd_buf4_init(&WMBIJ, CC_HBAR, 0, 20, 2, 20, 2, 0, "WMBIJ");
 
239
    dpd_buf4_init(&LIJAB, CC_LAMBDA, L_irr, 2, 5, 2, 7, 0, "LIJAB");
 
240
    dpd_contract442(&WMBIJ, &LIJAB, &newLIA, 0, 2, -1, 1);
 
241
    dpd_buf4_close(&LIJAB);
 
242
    dpd_buf4_close(&WMBIJ);
 
243
 
 
244
    dpd_buf4_init(&WMbIj, CC_HBAR, 0, 24, 22, 24, 22, 0, "WMbIj");
 
245
    dpd_buf4_init(&LIjAb, CC_LAMBDA, L_irr, 22, 28, 22, 28, 0, "LIjAb");
 
246
    dpd_contract442(&WMbIj, &LIjAb, &newLIA, 0, 2, -1, 1);
 
247
    dpd_buf4_close(&LIjAb);
 
248
    dpd_buf4_close(&WMbIj);
 
249
 
 
250
    dpd_buf4_init(&Wmbij, CC_HBAR, 0, 30, 12, 30, 12, 0, "Wmbij");
 
251
    dpd_buf4_init(&Lijab, CC_LAMBDA, L_irr, 12, 15, 12, 17, 0, "Lijab");
 
252
    dpd_contract442(&Wmbij, &Lijab, &newLia, 0, 2, -1, 1);
 
253
    dpd_buf4_close(&Lijab);
 
254
    dpd_buf4_close(&Wmbij);
 
255
 
 
256
    dpd_buf4_init(&WmBiJ, CC_HBAR, 0, 27, 23, 27, 23, 0, "WmBiJ");
 
257
    dpd_buf4_init(&LiJaB, CC_LAMBDA, L_irr, 23, 29, 23, 29, 0, "LiJaB");
 
258
    dpd_contract442(&WmBiJ, &LiJaB, &newLia, 0, 2, -1, 1);
 
259
    dpd_buf4_close(&LiJaB);
 
260
    dpd_buf4_close(&WmBiJ);
 
261
  }
 
262
 
 
263
 
 
264
  /* L1 RHS += -Gef*Weifa */
 
265
  if(params.ref == 0 || params.ref == 1) {
 
266
 
 
267
    dpd_file2_init(&GAE, CC_OEI, L_irr, 1, 1, "GAE");
 
268
    dpd_file2_init(&Gae, CC_OEI, L_irr, 1, 1, "Gae");
 
269
 
 
270
    dpd_buf4_init(&WAMEF, CC_HBAR, 0, 10, 5, 10, 7, 0, "WAMEF");
 
271
    dpd_dot23(&GAE,&WAMEF,&newLIA, 0, 0, -1.0, 1.0);
 
272
    dpd_buf4_close(&WAMEF);
 
273
 
 
274
    dpd_buf4_init(&WaMeF, CC_HBAR, 0, 10, 5, 10, 5, 0, "WaMeF");
 
275
    dpd_dot23(&Gae,&WaMeF,&newLIA, 0, 0, -1.0, 1.0);
 
276
    dpd_buf4_close(&WaMeF);
 
277
 
 
278
    dpd_buf4_init(&Wamef, CC_HBAR, 0, 10, 5, 10, 7, 0, "Wamef");
 
279
    dpd_dot23(&Gae,&Wamef,&newLia, 0, 0, -1.0, 1.0);
 
280
    dpd_buf4_close(&Wamef);
 
281
 
 
282
    dpd_buf4_init(&WAmEf, CC_HBAR, 0, 10, 5, 10, 5, 0, "WAmEf");
 
283
    dpd_dot23(&GAE,&WAmEf,&newLia, 0, 0, -1.0, 1.0);
 
284
    dpd_buf4_close(&WAmEf);
 
285
 
 
286
    dpd_file2_close(&Gae);
 
287
    dpd_file2_close(&GAE);
 
288
  }
 
289
  else if(params.ref == 2) {
 
290
 
 
291
    dpd_file2_init(&GAE, CC_OEI, L_irr, 1, 1, "GAE");
 
292
    dpd_file2_init(&Gae, CC_OEI, L_irr, 3, 3, "Gae");
 
293
 
 
294
    dpd_buf4_init(&W, CC_HBAR, 0, 21, 5, 21, 7, 0, "WAMEF");
 
295
    dpd_dot13(&GAE,&W,&newLIA, 0, 0, -1, 1);
 
296
    dpd_buf4_close(&W);
 
297
 
 
298
    dpd_buf4_init(&W, CC_HBAR, 0, 25, 29, 25, 29, 0, "WaMeF");
 
299
    dpd_dot13(&Gae,&W,&newLIA, 0, 0, -1, 1);
 
300
    dpd_buf4_close(&W);
 
301
 
 
302
    dpd_buf4_init(&W, CC_HBAR, 0, 31, 15, 31, 17, 0, "Wamef");
 
303
    dpd_dot13(&Gae,&W,&newLia, 0, 0, -1, 1);
 
304
    dpd_buf4_close(&W);
 
305
 
 
306
    dpd_buf4_init(&W, CC_HBAR, 0, 26, 28, 26, 28, 0, "WAmEf");
 
307
    dpd_dot13(&GAE,&W,&newLia, 0, 0, -1, 1);
 
308
    dpd_buf4_close(&W);
 
309
 
 
310
    dpd_file2_close(&Gae);
 
311
    dpd_file2_close(&GAE);
 
312
 
 
313
  }
 
314
 
 
315
  /* L1 RHS += -Gmn*Wmina */
 
316
  if(params.ref == 0 || params.ref == 1) {
 
317
 
 
318
    dpd_file2_init(&GMI, CC_OEI, L_irr, 0, 0, "GMI");
 
319
    dpd_file2_init(&Gmi, CC_OEI, L_irr, 0, 0, "Gmi");
 
320
 
 
321
    dpd_buf4_init(&WMNIE, CC_HBAR, 0, 0, 11, 2, 11, 0, "WMNIE");
 
322
    dpd_dot14(&GMI, &WMNIE, &newLIA, 0, 0, -1.0, 1.0); 
 
323
    dpd_buf4_close(&WMNIE);
 
324
 
 
325
    dpd_buf4_init(&WmNiE, CC_HBAR, 0, 0, 11, 0, 11, 0, "WmNiE");
 
326
    dpd_dot14(&Gmi, &WmNiE, &newLIA, 0, 0, -1.0, 1.0);
 
327
    dpd_buf4_close(&WmNiE);
 
328
 
 
329
    dpd_buf4_init(&Wmnie, CC_HBAR, 0, 0, 11, 2, 11, 0, "Wmnie");
 
330
    dpd_dot14(&Gmi, &Wmnie, &newLia, 0, 0, -1.0, 1.0);
 
331
    dpd_buf4_close(&Wmnie);
 
332
 
 
333
    dpd_buf4_init(&WMnIe, CC_HBAR, 0, 0, 11, 0, 11, 0, "WMnIe");
 
334
    dpd_dot14(&GMI, &WMnIe, &newLia, 0, 0, -1.0, 1.0);
 
335
    dpd_buf4_close(&WMnIe);
 
336
 
 
337
    dpd_file2_close(&Gmi);
 
338
    dpd_file2_close(&GMI);
 
339
 
 
340
  }
 
341
  else if(params.ref == 2) {
 
342
 
 
343
    dpd_file2_init(&GMI, CC_OEI, L_irr, 0, 0, "GMI");
 
344
    dpd_file2_init(&Gmi, CC_OEI, L_irr, 2, 2, "Gmi");
 
345
 
 
346
    dpd_buf4_init(&W, CC_HBAR, 0, 0, 21, 2, 21, 0, "WMNIE");
 
347
    dpd_dot14(&GMI, &W, &newLIA, 0, 0, -1, 1); 
 
348
    dpd_buf4_close(&W);
 
349
 
 
350
    dpd_buf4_init(&W, CC_HBAR, 0, 23, 26, 23, 26, 0, "WmNiE");
 
351
    dpd_dot14(&Gmi, &W, &newLIA, 0, 0, -1, 1);
 
352
    dpd_buf4_close(&W);
 
353
 
 
354
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 31, 12, 31, 0, "Wmnie");
 
355
    dpd_dot14(&Gmi, &W, &newLia, 0, 0, -1, 1);
 
356
    dpd_buf4_close(&W);
 
357
 
 
358
    dpd_buf4_init(&W, CC_HBAR, 0, 22, 25, 22, 25, 0, "WMnIe");
 
359
    dpd_dot14(&GMI, &W, &newLia, 0, 0, -1, 1);
 
360
    dpd_buf4_close(&W);
 
361
 
 
362
    dpd_file2_close(&Gmi);
 
363
    dpd_file2_close(&GMI);
 
364
  }
 
365
 
 
366
  dpd_file2_close(&newLIA);
 
367
  dpd_file2_close(&newLia);
 
368
 
 
369
  /* newLia * Dia */
 
370
  if(params.ref == 0) { /** RHF **/
 
371
 
 
372
    dpd_file2_init(&newLIA, CC_OEI, L_irr, 0, 1, "New LIA");
 
373
    dpd_file2_copy(&newLIA, CC_OEI, "New LIA Increment");
 
374
    dpd_file2_close(&newLIA);
 
375
 
 
376
    dpd_file2_init(&newLIA, CC_OEI, L_irr, 0, 1, "New LIA Increment");
 
377
    if(params.local && local.filter_singles) local_filter_T1(&newLIA);
 
378
    else {
 
379
      dpd_file2_init(&dIA, CC_OEI, L_irr, 0, 1, "dIA");
 
380
      dpd_file2_dirprd(&dIA, &newLIA);
 
381
      dpd_file2_close(&dIA);
 
382
    }
 
383
    dpd_file2_close(&newLIA);
 
384
 
 
385
    dpd_file2_init(&LIA, CC_OEI, L_irr, 0, 1, "LIA");
 
386
    dpd_file2_copy(&LIA, CC_OEI, "New LIA");
 
387
    dpd_file2_close(&LIA);
 
388
    dpd_file2_init(&newLIA, CC_OEI, L_irr, 0, 1, "New LIA");
 
389
    dpd_file2_init(&LIA, CC_OEI, L_irr, 0, 1, "New LIA Increment");
 
390
    dpd_file2_axpy(&LIA, &newLIA, 1, 0);
 
391
    dpd_file2_close(&LIA);
 
392
 
 
393
    dpd_file2_copy(&newLIA, CC_OEI, "New Lia");  /* spin-adaptation for RHF */
 
394
    dpd_file2_close(&newLIA);
 
395
  }
 
396
  else if(params.ref == 1) { /** ROHF **/
 
397
 
 
398
    dpd_file2_init(&newLIA, CC_OEI, L_irr, 0, 1, "New LIA");
 
399
    dpd_file2_copy(&newLIA, CC_OEI, "New LIA Increment");
 
400
    dpd_file2_close(&newLIA);
 
401
 
 
402
    dpd_file2_init(&newLIA, CC_OEI, L_irr, 0, 1, "New LIA Increment");
 
403
    dpd_file2_init(&dIA, CC_OEI, L_irr, 0, 1, "dIA");
 
404
    dpd_file2_dirprd(&dIA, &newLIA);
 
405
    dpd_file2_close(&dIA);
 
406
    dpd_file2_close(&newLIA);
 
407
 
 
408
    dpd_file2_init(&LIA, CC_OEI, L_irr, 0, 1, "LIA");
 
409
    dpd_file2_copy(&LIA, CC_OEI, "New LIA");
 
410
    dpd_file2_close(&LIA);
 
411
    dpd_file2_init(&newLIA, CC_OEI, L_irr, 0, 1, "New LIA");
 
412
    dpd_file2_init(&LIA, CC_OEI, L_irr, 0, 1, "New LIA Increment");
 
413
    dpd_file2_axpy(&LIA, &newLIA, 1, 0);
 
414
    dpd_file2_close(&LIA);
 
415
    dpd_file2_close(&newLIA);
 
416
 
 
417
    dpd_file2_init(&newLia, CC_OEI, L_irr, 0, 1, "New Lia");
 
418
    dpd_file2_copy(&newLia, CC_OEI, "New Lia Increment");
 
419
    dpd_file2_close(&newLia);
 
420
 
 
421
    dpd_file2_init(&newLia, CC_OEI, L_irr, 0, 1, "New Lia Increment");
 
422
    dpd_file2_init(&dia, CC_OEI, L_irr, 0, 1, "dia");
 
423
    dpd_file2_dirprd(&dia, &newLia);
 
424
    dpd_file2_close(&dia);
 
425
    dpd_file2_close(&newLia);
 
426
 
 
427
    dpd_file2_init(&Lia, CC_OEI, L_irr, 0, 1, "Lia");
 
428
    dpd_file2_copy(&Lia, CC_OEI, "New Lia");
 
429
    dpd_file2_close(&Lia);
 
430
    dpd_file2_init(&newLia, CC_OEI, L_irr, 0, 1, "New Lia");
 
431
    dpd_file2_init(&Lia, CC_OEI, L_irr, 0, 1, "New Lia Increment");
 
432
    dpd_file2_axpy(&Lia, &newLia, 1, 0);
 
433
    dpd_file2_close(&Lia);
 
434
    dpd_file2_close(&newLia);
 
435
  }
 
436
  else if(params.ref == 2) {
 
437
 
 
438
    dpd_file2_init(&newLIA, CC_OEI, L_irr, 0, 1, "New LIA");
 
439
    dpd_file2_init(&dIA, CC_OEI, L_irr, 0, 1, "dIA");
 
440
    dpd_file2_dirprd(&dIA, &newLIA);
 
441
    dpd_file2_close(&dIA);
 
442
    dpd_file2_close(&newLIA);
 
443
 
 
444
    dpd_file2_init(&newLia, CC_OEI, L_irr, 2, 3, "New Lia");
 
445
    dpd_file2_init(&dia, CC_OEI, L_irr, 2, 3, "dia");
 
446
    dpd_file2_dirprd(&dia, &newLia);
 
447
    dpd_file2_close(&dia);
 
448
    dpd_file2_close(&newLia);
 
449
  }
 
450
 
 
451
#ifdef EOM_DEBUG
 
452
  check_sum("after L1 build",L_irr);
 
453
#endif
 
454
 
 
455
  return;
 
456
}
 
457
 
 
458