~ubuntu-branches/ubuntu/karmic/psicode/karmic

« back to all changes in this revision

Viewing changes to src/bin/ccdensity/Iai.c

  • Committer: Bazaar Package Importer
  • Author(s): Michael Banck, Michael Banck, Daniel Leidert
  • Date: 2009-02-23 00:12:02 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20090223001202-rutldoy3dimfpesc
Tags: 3.4.0-1
* New upstream release.

[ Michael Banck ]
* debian/patches/01_DESTDIR.dpatch: Refreshed.
* debian/patches/02_FHS.dpatch: Removed, applied upstream.
* debian/patches/03_debian_docdir: Likewise.
* debian/patches/04_man.dpatch: Likewise.
* debian/patches/06_466828_fix_gcc_43_ftbfs.dpatch: Likewise.
* debian/patches/07_464867_move_executables: Fixed and refreshed.
* debian/patches/00list: Adjusted.
* debian/control: Improved description.
* debian/patches-held: Removed.
* debian/rules (install/psi3): Do not ship the ruby bindings for now.

[ Daniel Leidert ]
* debian/rules: Fix txtdir via DEB_MAKE_INSTALL_TARGET.
* debian/patches/01_DESTDIR.dpatch: Refreshed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#include <libdpd/dpd.h>
2
 
#define EXTERN
3
 
#include "globals.h"
4
 
 
5
 
/* Iai(): Build the virtual-occupied block of the orbital Lagrangian
6
 
** using the expression given in lag.c.  Note that we include an
7
 
** addition term here referred to as the reference contribution,
8
 
** 2*fai.  This comes from the general spin-orbital SCF gradient
9
 
** expression, but for unperturbed canonical Hartree-Fock orbitals
10
 
** (i.e., RHF and UHF only) this contribution is zero.  However, since
11
 
** the code to include the terms is trivial, we go ahead and do the
12
 
** work for all reference types. */
13
 
 
14
 
void Iai(struct RHO_Params rho_params)
15
 
{
16
 
  dpdfile2 F, D, I;
17
 
  dpdbuf4 G, Eints, Dints, Cints, Fints, Bints;
18
 
 
19
 
  if(params.ref == 0 || params.ref == 1) { /** RHF/ROHF **/
20
 
 
21
 
    /* I'AI <-- sum_J fAJ (DIJ + DJI) + sum_B fAB (DIB + DBI) */
22
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
23
 
 
24
 
    dpd_file2_init(&F, CC_OEI, 0, 0, 1, "fIA");
25
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.DIJ_lbl);
26
 
    dpd_contract222(&F, &D, &I, 1, 0, 1.0, 0.0);
27
 
    dpd_contract222(&F, &D, &I, 1, 1, 1.0, 1.0);
28
 
    dpd_file2_close(&D);
29
 
 
30
 
    /* Add reference contribution: I'AI <-- 2 fAI */
31
 
    dpd_file2_axpy(&F, &I, 2.0, 1);
32
 
    dpd_file2_close(&F);
33
 
 
34
 
    dpd_file2_init(&F, CC_OEI, 0, 1, 1, "fAB");
35
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
36
 
    dpd_contract222(&F, &D, &I, 0, 0, 1.0, 1.0);
37
 
    dpd_file2_close(&D);
38
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
39
 
    dpd_contract222(&F, &D, &I, 0, 0, 1.0, 1.0);
40
 
    dpd_file2_close(&D);
41
 
    dpd_file2_close(&F);
42
 
 
43
 
    dpd_file2_close(&I);
44
 
 
45
 
    /* I'ai <-- sum_j faj (Dij + Dji) + sum_b fab (Dib + Dbi) */
46
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'ai");
47
 
 
48
 
    dpd_file2_init(&F, CC_OEI, 0, 0, 1, "fia");
49
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.Dij_lbl);
50
 
    dpd_contract222(&F, &D, &I, 1, 0, 1.0, 0.0);
51
 
    dpd_contract222(&F, &D, &I, 1, 1, 1.0, 1.0);
52
 
    dpd_file2_close(&D);
53
 
 
54
 
    /* Add reference contribution: I'ai <-- 2 fai */
55
 
    dpd_file2_axpy(&F, &I, 2.0, 1);
56
 
    dpd_file2_close(&F);
57
 
 
58
 
    dpd_file2_init(&F, CC_OEI, 0, 1, 1, "fab");
59
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dia_lbl);
60
 
    dpd_contract222(&F, &D, &I, 0, 0, 1.0, 1.0);
61
 
    dpd_file2_close(&D);
62
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dai_lbl);
63
 
    dpd_contract222(&F, &D, &I, 0, 0, 1.0, 1.0);
64
 
    dpd_file2_close(&D);
65
 
    dpd_file2_close(&F);
66
 
 
67
 
    dpd_file2_close(&I);
68
 
  }
69
 
  else if(params.ref == 2) { /** UHF **/
70
 
 
71
 
    /* I'AI <-- sum_J fAJ (DIJ + DJI) + sum_B fAB (DIB + DBI) */
72
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
73
 
 
74
 
    dpd_file2_init(&F, CC_OEI, 0, 0, 1, "fIA");
75
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.DIJ_lbl);
76
 
    dpd_contract222(&F, &D, &I, 1, 0, 1.0, 0.0);
77
 
    dpd_contract222(&F, &D, &I, 1, 1, 1.0, 1.0);
78
 
    dpd_file2_close(&D);
79
 
 
80
 
    /* Add reference contribution: I'AI <-- 2 fAI */
81
 
    dpd_file2_axpy(&F, &I, 2.0, 1);
82
 
    dpd_file2_close(&F);
83
 
 
84
 
    dpd_file2_init(&F, CC_OEI, 0, 1, 1, "fAB");
85
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
86
 
    dpd_contract222(&F, &D, &I, 0, 0, 1.0, 1.0);
87
 
    dpd_file2_close(&D);
88
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
89
 
    dpd_contract222(&F, &D, &I, 0, 0, 1.0, 1.0);
90
 
    dpd_file2_close(&D);
91
 
    dpd_file2_close(&F);
92
 
 
93
 
    dpd_file2_close(&I);
94
 
 
95
 
    /* I'ai <-- sum_j faj (Dij + Dji) + sum_b fab (Dib + Dbi) */
96
 
    dpd_file2_init(&I, CC_OEI, 0, 3, 2, "I'ai");
97
 
 
98
 
    dpd_file2_init(&F, CC_OEI, 0, 2, 3, "fia");
99
 
    dpd_file2_init(&D, CC_OEI, 0, 2, 2, rho_params.Dij_lbl);
100
 
    dpd_contract222(&F, &D, &I, 1, 0, 1.0, 0.0);
101
 
    dpd_contract222(&F, &D, &I, 1, 1, 1.0, 1.0);
102
 
    dpd_file2_close(&D);
103
 
 
104
 
    /* Add reference contribution: I'ai <-- 2 fai */
105
 
    dpd_file2_axpy(&F, &I, 2.0, 1);
106
 
    dpd_file2_close(&F);
107
 
 
108
 
    dpd_file2_init(&F, CC_OEI, 0, 3, 3, "fab");
109
 
    dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dia_lbl);
110
 
    dpd_contract222(&F, &D, &I, 0, 0, 1.0, 1.0);
111
 
    dpd_file2_close(&D);
112
 
    dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dai_lbl);
113
 
    dpd_contract222(&F, &D, &I, 0, 0, 1.0, 1.0);
114
 
    dpd_file2_close(&D);
115
 
    dpd_file2_close(&F);
116
 
 
117
 
    dpd_file2_close(&I);
118
 
 
119
 
  }
120
 
 
121
 
  
122
 
 
123
 
  if(params.ref == 0 || params.ref == 1) { /** RHF/ROHF **/
124
 
 
125
 
    /* I'AI <-- sum_JK <AJ||IK> (D_JK + D_KJ) + sum_jk <Aj|Ik> (D_jk + D_kj) */
126
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
127
 
 
128
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.DIJ_lbl);
129
 
    dpd_buf4_init(&Eints, CC_EINTS, 0, 11, 0, 11, 0, 1, "E <ai|jk>");
130
 
    dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
131
 
    dpd_dot24(&D, &Eints, &I, 1, 0, 1.0, 1.0);
132
 
    dpd_buf4_close(&Eints);
133
 
    dpd_file2_close(&D);
134
 
 
135
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.Dij_lbl);
136
 
    dpd_buf4_init(&Eints, CC_EINTS, 0, 11, 0, 11, 0, 0, "E <ai|jk>");
137
 
    dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
138
 
    dpd_dot24(&D, &Eints, &I, 1, 0, 1.0, 1.0);
139
 
    dpd_buf4_close(&Eints);
140
 
    dpd_file2_close(&D);
141
 
 
142
 
    dpd_file2_close(&I);
143
 
 
144
 
    /* I'ai <-- sum_jk <aj||ik> (D_jk + D_kj) + sum_jk <aJ|iK> (D_JK + D_KJ) */
145
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'ai");
146
 
 
147
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.Dij_lbl);
148
 
    dpd_buf4_init(&Eints, CC_EINTS, 0, 11, 0, 11, 0, 1, "E <ai|jk>");
149
 
    dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
150
 
    dpd_dot24(&D, &Eints, &I, 1, 0, 1.0, 1.0);
151
 
    dpd_buf4_close(&Eints);
152
 
    dpd_file2_close(&D);
153
 
 
154
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.DIJ_lbl);
155
 
    dpd_buf4_init(&Eints, CC_EINTS, 0, 11, 0, 11, 0, 0, "E <ai|jk>");
156
 
    dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
157
 
    dpd_dot24(&D, &Eints, &I, 1, 0, 1.0, 1.0);
158
 
    dpd_buf4_close(&Eints);
159
 
    dpd_file2_close(&D);
160
 
 
161
 
    dpd_file2_close(&I);
162
 
  }
163
 
  else if(params.ref == 2) { /** UHF **/
164
 
 
165
 
    /* I'AI <-- sum_JK <AJ||IK> (D_JK + D_KJ) + sum_jk <Aj|Ik> (D_jk + D_kj) */
166
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
167
 
 
168
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.DIJ_lbl);
169
 
    dpd_buf4_init(&Eints, CC_EINTS, 0, 21, 0, 21, 0, 1, "E <AI|JK>");
170
 
    dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
171
 
    dpd_dot24(&D, &Eints, &I, 1, 0, 1.0, 1.0);
172
 
    dpd_buf4_close(&Eints);
173
 
    dpd_file2_close(&D);
174
 
 
175
 
    dpd_file2_init(&D, CC_OEI, 0, 2, 2, rho_params.Dij_lbl);
176
 
    dpd_buf4_init(&Eints, CC_EINTS, 0, 26, 22, 26, 22, 0, "E <Ai|Jk>");
177
 
    dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
178
 
    dpd_dot24(&D, &Eints, &I, 1, 0, 1.0, 1.0);
179
 
    dpd_buf4_close(&Eints);
180
 
    dpd_file2_close(&D);
181
 
 
182
 
    dpd_file2_close(&I);
183
 
 
184
 
    /* I'ai <-- sum_jk <aj||ik> (D_jk + D_kj) + sum_jk <aJ|iK> (D_JK + D_KJ) */
185
 
    dpd_file2_init(&I, CC_OEI, 0, 3, 2, "I'ai");
186
 
 
187
 
    dpd_file2_init(&D, CC_OEI, 0, 2, 2, rho_params.Dij_lbl);
188
 
    dpd_buf4_init(&Eints, CC_EINTS, 0, 31, 10, 31, 10, 1, "E <ai|jk>");
189
 
    dpd_dot24(&D, &Eints, &I, 0, 0, 1.0, 1.0);
190
 
    dpd_dot24(&D, &Eints, &I, 1, 0, 1.0, 1.0);
191
 
    dpd_buf4_close(&Eints);
192
 
    dpd_file2_close(&D);
193
 
 
194
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 0, rho_params.DIJ_lbl);
195
 
    dpd_buf4_init(&Eints, CC_EINTS, 0, 24, 22, 24, 22, 0, "E <Ia|Jk>");
196
 
    dpd_dot13(&D, &Eints, &I, 0, 0, 1.0, 1.0);
197
 
    dpd_dot13(&D, &Eints, &I, 1, 0, 1.0, 1.0);
198
 
    dpd_buf4_close(&Eints);
199
 
    dpd_file2_close(&D);
200
 
 
201
 
    dpd_file2_close(&I);
202
 
 
203
 
  }
204
 
 
205
 
  
206
 
 
207
 
  if(params.ref == 0 || params.ref == 1) { /** RHF/ROHF **/
208
 
 
209
 
    /* I'AI <-- - sum_JB <JA||IB> (D_JB + D_BJ) + sum_jb <Ij|Ab> (D_jb + D_bj) */
210
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
211
 
 
212
 
    dpd_buf4_init(&Cints, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia||jb>");
213
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
214
 
    dpd_dot14(&D, &Cints, &I, 0, 0, -1.0, 1.0);
215
 
    dpd_file2_close(&D);
216
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
217
 
    dpd_dot14(&D, &Cints, &I, 0, 0, -1.0, 1.0);
218
 
    dpd_file2_close(&D);
219
 
    dpd_buf4_close(&Cints);
220
 
 
221
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
222
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dia_lbl);
223
 
    dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
224
 
    dpd_file2_close(&D);
225
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dai_lbl);
226
 
    dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
227
 
    dpd_file2_close(&D);
228
 
    dpd_buf4_close(&Dints);
229
 
 
230
 
    dpd_file2_close(&I);
231
 
 
232
 
    /* I'ai <-- - sum_jb <ja||ib> (D_jb + D_bj) + sum_JB <iJ|aB> (D_JB + D_BJ) */
233
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'ai");
234
 
 
235
 
    dpd_buf4_init(&Cints, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia||jb>");
236
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dia_lbl);
237
 
    dpd_dot14(&D, &Cints, &I, 0, 0, -1.0, 1.0);
238
 
    dpd_file2_close(&D);
239
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dai_lbl);
240
 
    dpd_dot14(&D, &Cints, &I, 0, 0, -1.0, 1.0);
241
 
    dpd_file2_close(&D);
242
 
    dpd_buf4_close(&Cints);
243
 
 
244
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
245
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
246
 
    dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
247
 
    dpd_file2_close(&D);
248
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
249
 
    dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
250
 
    dpd_file2_close(&D);
251
 
    dpd_buf4_close(&Dints);
252
 
 
253
 
    dpd_file2_close(&I);
254
 
  }
255
 
  else if(params.ref == 2) { /** UHF **/
256
 
 
257
 
    /* I'AI <-- - sum_JB <JA||IB> (D_JB + D_BJ) + sum_jb <Ij|Ab> (D_jb + D_bj) */
258
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
259
 
 
260
 
    dpd_buf4_init(&Cints, CC_CINTS, 0, 20, 20, 20, 20, 0, "C <IA||JB>");
261
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
262
 
    dpd_dot14(&D, &Cints, &I, 0, 0, -1.0, 1.0);
263
 
    dpd_file2_close(&D);
264
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
265
 
    dpd_dot14(&D, &Cints, &I, 0, 0, -1.0, 1.0);
266
 
    dpd_file2_close(&D);
267
 
    dpd_buf4_close(&Cints);
268
 
 
269
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 22, 28, 22, 28, 0, "D <Ij|Ab>");
270
 
    dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dia_lbl);
271
 
    dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
272
 
    dpd_file2_close(&D);
273
 
    dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dai_lbl);
274
 
    dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
275
 
    dpd_file2_close(&D);
276
 
    dpd_buf4_close(&Dints);
277
 
 
278
 
    dpd_file2_close(&I);
279
 
 
280
 
    /* I'ai <-- - sum_jb <ja||ib> (D_jb + D_bj) + sum_JB <iJ|aB> (D_JB + D_BJ) */
281
 
    dpd_file2_init(&I, CC_OEI, 0, 3, 2, "I'ai");
282
 
 
283
 
    dpd_buf4_init(&Cints, CC_CINTS, 0, 30, 30, 30, 30, 0, "C <ia||jb>");
284
 
    dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dia_lbl);
285
 
    dpd_dot14(&D, &Cints, &I, 0, 0, -1.0, 1.0);
286
 
    dpd_file2_close(&D);
287
 
    dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dai_lbl);
288
 
    dpd_dot14(&D, &Cints, &I, 0, 0, -1.0, 1.0);
289
 
    dpd_file2_close(&D);
290
 
    dpd_buf4_close(&Cints);
291
 
 
292
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 23, 29, 23, 29, 0, "D <iJ|aB>");
293
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
294
 
    dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
295
 
    dpd_file2_close(&D);
296
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
297
 
    dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
298
 
    dpd_file2_close(&D);
299
 
    dpd_buf4_close(&Dints);
300
 
 
301
 
    dpd_file2_close(&I);
302
 
 
303
 
  }
304
 
 
305
 
  
306
 
 
307
 
  if(params.ref == 0 || params.ref == 1) { /** RHF/ROHF **/
308
 
 
309
 
    /* I'AI <-- sum_BJ <IJ||AB> (D_BJ + D_JB) + sum_bj <Ij|Ab> (D_bj + D_jb) */
310
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
311
 
 
312
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij||ab>");
313
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
314
 
    dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
315
 
    dpd_file2_close(&D);
316
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
317
 
    dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
318
 
    dpd_file2_close(&D);
319
 
    dpd_buf4_close(&Dints);
320
 
 
321
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
322
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dai_lbl);
323
 
    dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
324
 
    dpd_file2_close(&D);
325
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dia_lbl);
326
 
    dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
327
 
    dpd_file2_close(&D);
328
 
    dpd_buf4_close(&Dints);
329
 
 
330
 
    dpd_file2_close(&I);
331
 
 
332
 
    /* I'ai <-- sum_bj <ij||ab> (D_bj + D_jb) + sum_BJ <iJ|aB> (D_BJ + D_JB) */
333
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'ai");
334
 
 
335
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij||ab>");
336
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dai_lbl);
337
 
    dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
338
 
    dpd_file2_close(&D);
339
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.Dia_lbl);
340
 
    dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
341
 
    dpd_file2_close(&D);
342
 
    dpd_buf4_close(&Dints);
343
 
 
344
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
345
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
346
 
    dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
347
 
    dpd_file2_close(&D);
348
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
349
 
    dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
350
 
    dpd_file2_close(&D);
351
 
    dpd_buf4_close(&Dints);
352
 
 
353
 
    dpd_file2_close(&I);
354
 
  }
355
 
  else if(params.ref == 2) { /** UHF **/
356
 
 
357
 
    /* I'AI <-- sum_BJ <IJ||AB> (D_BJ + D_JB) + sum_bj <Ij|Ab> (D_bj + D_jb) */
358
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
359
 
 
360
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <IJ||AB>");
361
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
362
 
       dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
363
 
    dpd_file2_close(&D);
364
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
365
 
       dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
366
 
    dpd_file2_close(&D);
367
 
    dpd_buf4_close(&Dints);
368
 
 
369
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 22, 28, 22, 28, 0, "D <Ij|Ab>");
370
 
    dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dai_lbl);
371
 
       dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
372
 
    dpd_file2_close(&D);
373
 
    dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dia_lbl);
374
 
       dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
375
 
    dpd_file2_close(&D);
376
 
    dpd_buf4_close(&Dints);
377
 
 
378
 
    dpd_file2_close(&I);
379
 
 
380
 
    /* I'ai <-- sum_bj <ij||ab> (D_bj + D_jb) + sum_BJ <iJ|aB> (D_BJ + D_JB) */
381
 
    dpd_file2_init(&I, CC_OEI, 0, 3, 2, "I'ai");
382
 
 
383
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 10, 15, 10, 15, 0, "D <ij||ab>");
384
 
    dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dai_lbl);
385
 
       dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
386
 
    dpd_file2_close(&D);
387
 
    dpd_file2_init(&D, CC_OEI, 0, 2, 3, rho_params.Dia_lbl);
388
 
       dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
389
 
    dpd_file2_close(&D);
390
 
    dpd_buf4_close(&Dints);
391
 
 
392
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 23, 29, 23, 29, 0, "D <iJ|aB>");
393
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DAI_lbl);
394
 
       dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
395
 
    dpd_file2_close(&D);
396
 
    dpd_file2_init(&D, CC_OEI, 0, 0, 1, rho_params.DIA_lbl);
397
 
       dpd_dot24(&D, &Dints, &I, 0, 1, 1.0, 1.0);
398
 
    dpd_file2_close(&D);
399
 
    dpd_buf4_close(&Dints);
400
 
 
401
 
    dpd_file2_close(&I);
402
 
 
403
 
  }
404
 
 
405
 
  
406
 
 
407
 
  if(params.ref == 0 || params.ref == 1) { /** RHF/ROHF **/
408
 
 
409
 
    /* I'AI <-- sum_BC <IC||AB> (D_BC + D_CB) + sum_bc <Ib|Ac>(D_bc + D_cb) */
410
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
411
 
 
412
 
    dpd_file2_init(&D, CC_OEI, 0, 1, 1, rho_params.DAB_lbl);
413
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 10, 5, 10, 5, 1, "F <ia|bc>");
414
 
    dpd_dot24(&D, &Fints, &I, 1, 1, 1.0, 1.0);
415
 
    dpd_dot24(&D, &Fints, &I, 0, 1, 1.0, 1.0);
416
 
    dpd_buf4_close(&Fints);
417
 
    dpd_file2_close(&D);
418
 
 
419
 
    dpd_file2_init(&D, CC_OEI, 0, 1, 1, rho_params.Dab_lbl);
420
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 10, 5, 10, 5, 0, "F <ia|bc>");
421
 
    dpd_dot24(&D, &Fints, &I, 0, 1, 1.0, 1.0);
422
 
    dpd_dot24(&D, &Fints, &I, 1, 1, 1.0, 1.0);
423
 
    dpd_buf4_close(&Fints);
424
 
    dpd_file2_close(&D);
425
 
 
426
 
    dpd_file2_close(&I);
427
 
 
428
 
    /* I'ai <-- sum_bc <ic||ab> (D_bc + D_cb) + sum_BC <iB|aC>(D_BC + D_CB) */
429
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'ai");
430
 
 
431
 
    dpd_file2_init(&D, CC_OEI, 0, 1, 1, rho_params.Dab_lbl);
432
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 10, 5, 10, 5, 1, "F <ia|bc>");
433
 
    dpd_dot24(&D, &Fints, &I, 1, 1, 1.0, 1.0);
434
 
    dpd_dot24(&D, &Fints, &I, 0, 1, 1.0, 1.0);
435
 
    dpd_buf4_close(&Fints);
436
 
    dpd_file2_close(&D);
437
 
 
438
 
    dpd_file2_init(&D, CC_OEI, 0, 1, 1, rho_params.DAB_lbl);
439
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 10, 5, 10, 5, 0, "F <ia|bc>");
440
 
    dpd_dot24(&D, &Fints, &I, 0, 1, 1.0, 1.0);
441
 
    dpd_dot24(&D, &Fints, &I, 1, 1, 1.0, 1.0);
442
 
    dpd_buf4_close(&Fints);
443
 
    dpd_file2_close(&D);
444
 
 
445
 
    dpd_file2_close(&I);
446
 
  }
447
 
  else if(params.ref == 2) { /** UHF **/
448
 
 
449
 
    /* I'AI <-- sum_BC <IC||AB> (D_BC + D_CB) + sum_bc <Ib|Ac>(D_bc + D_cb) */
450
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
451
 
 
452
 
    dpd_file2_init(&D, CC_OEI, 0, 1, 1, rho_params.DAB_lbl);
453
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 20, 5, 20, 5, 1, "F <IA|BC>");
454
 
    dpd_dot24(&D, &Fints, &I, 1, 1, 1.0, 1.0);
455
 
    dpd_dot24(&D, &Fints, &I, 0, 1, 1.0, 1.0);
456
 
    dpd_buf4_close(&Fints);
457
 
    dpd_file2_close(&D);
458
 
 
459
 
    dpd_file2_init(&D, CC_OEI, 0, 3, 3, rho_params.Dab_lbl);
460
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 24, 28, 24, 28, 0, "F <Ia|Bc>");
461
 
    dpd_dot24(&D, &Fints, &I, 0, 1, 1.0, 1.0);
462
 
    dpd_dot24(&D, &Fints, &I, 1, 1, 1.0, 1.0);
463
 
    dpd_buf4_close(&Fints);
464
 
    dpd_file2_close(&D);
465
 
 
466
 
    dpd_file2_close(&I);
467
 
 
468
 
    /* I'ai <-- sum_bc <ic||ab> (D_bc + D_cb) + sum_BC <iB|aC>(D_BC + D_CB) */
469
 
    dpd_file2_init(&I, CC_OEI, 0, 3, 2, "I'ai");
470
 
 
471
 
    dpd_file2_init(&D, CC_OEI, 0, 3, 3, rho_params.Dab_lbl);
472
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 30, 15, 30, 15, 1, "F <ia|bc>");
473
 
    dpd_dot24(&D, &Fints, &I, 1, 1, 1.0, 1.0);
474
 
    dpd_dot24(&D, &Fints, &I, 0, 1, 1.0, 1.0);
475
 
    dpd_buf4_close(&Fints);
476
 
    dpd_file2_close(&D);
477
 
 
478
 
    dpd_file2_init(&D, CC_OEI, 0, 1, 1, rho_params.DAB_lbl);
479
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 27, 29, 27, 29, 0, "F <iA|bC>");
480
 
    dpd_dot24(&D, &Fints, &I, 0, 1, 1.0, 1.0);
481
 
    dpd_dot24(&D, &Fints, &I, 1, 1, 1.0, 1.0);
482
 
    dpd_buf4_close(&Fints);
483
 
    dpd_file2_close(&D);
484
 
 
485
 
    dpd_file2_close(&I);
486
 
 
487
 
  }
488
 
 
489
 
  
490
 
 
491
 
  if(params.ref == 0 || params.ref == 1) { /** RHF/ROHF **/
492
 
 
493
 
    /* I'AI <-- sum_JKL <AJ||KL> G(IJ,KL) + 2 sum_jKl <Aj|Kl> G(Ij,Kl) */
494
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
495
 
 
496
 
    dpd_buf4_init(&Eints, CC_EINTS, 0, 11, 2, 11, 0, 1, "E <ai|jk>");
497
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 0, 2, 2, 2, 0, "GIJKL");
498
 
    dpd_contract442(&Eints, &G, &I, 0, 0, 2.0, 1.0);
499
 
    dpd_buf4_close(&G);
500
 
    dpd_buf4_close(&Eints);
501
 
 
502
 
    dpd_buf4_init(&Eints, CC_EINTS, 0, 11, 0, 11, 0, 0, "E <ai|jk>");
503
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 0, 0, 0, 0, 0, "GIjKl");
504
 
    dpd_contract442(&Eints, &G, &I, 0, 0, 2.0, 1.0);
505
 
    dpd_buf4_close(&G);
506
 
    dpd_buf4_close(&Eints);
507
 
 
508
 
    dpd_file2_close(&I);
509
 
 
510
 
    /* I'ai <-- sum_jkl <aj||kl> G(ij,kl) + 2 sum_JkL <Lk|Ja> G(Lk,Ji) */
511
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'ai");
512
 
 
513
 
    dpd_buf4_init(&Eints, CC_EINTS, 0, 11, 2, 11, 0, 1, "E <ai|jk>");
514
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 0, 2, 2, 2, 0, "Gijkl");
515
 
    dpd_contract442(&Eints, &G, &I, 0, 0, 2.0, 1.0);
516
 
    dpd_buf4_close(&G);
517
 
    dpd_buf4_close(&Eints);
518
 
 
519
 
    dpd_buf4_init(&Eints, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
520
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 0, 0, 0, 0, 0, "GIjKl");
521
 
    dpd_contract442(&Eints, &G, &I, 3, 3, 2.0, 1.0);
522
 
    dpd_buf4_close(&G);
523
 
    dpd_buf4_close(&Eints);
524
 
 
525
 
    dpd_file2_close(&I);
526
 
  }
527
 
  else if(params.ref == 2) { /** UHF **/
528
 
 
529
 
    /* I'AI <-- sum_JKL <AJ||KL> G(IJ,KL) + 2 sum_jKl <Aj|Kl> G(Ij,Kl) */
530
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
531
 
 
532
 
    dpd_buf4_init(&Eints, CC_EINTS, 0, 21, 2, 21, 0, 1, "E <AI|JK>");
533
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 0, 2, 2, 2, 0, "GIJKL");
534
 
    dpd_contract442(&Eints, &G, &I, 0, 0, 2.0, 1.0);
535
 
    dpd_buf4_close(&G);
536
 
    dpd_buf4_close(&Eints);
537
 
 
538
 
    dpd_buf4_init(&Eints, CC_EINTS, 0, 26, 22, 26, 22, 0, "E <Ai|Jk>");
539
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 22, 22, 22, 22, 0, "GIjKl");
540
 
    dpd_contract442(&Eints, &G, &I, 0, 0, 2.0, 1.0);
541
 
    dpd_buf4_close(&G);
542
 
    dpd_buf4_close(&Eints);
543
 
 
544
 
    dpd_file2_close(&I);
545
 
 
546
 
    /* I'ai <-- sum_jkl <aj||kl> G(ij,kl) + 2 sum_JkL <Lk|Ja> G(Lk,Ji) */
547
 
    dpd_file2_init(&I, CC_OEI, 0, 3, 2, "I'ai");
548
 
 
549
 
    dpd_buf4_init(&Eints, CC_EINTS, 0, 31, 12, 31, 10, 1, "E <ai|jk>");
550
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 10, 12, 12, 12, 0, "Gijkl");
551
 
    dpd_contract442(&Eints, &G, &I, 0, 0, 2.0, 1.0);
552
 
    dpd_buf4_close(&G);
553
 
    dpd_buf4_close(&Eints);
554
 
 
555
 
    dpd_buf4_init(&Eints, CC_EINTS, 0, 22, 24, 22, 24, 0, "E <Ij|Ka>");
556
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 22, 22, 22, 22, 0, "GIjKl");
557
 
    dpd_contract442(&Eints, &G, &I, 3, 3, 2.0, 1.0);
558
 
    dpd_buf4_close(&G);
559
 
    dpd_buf4_close(&Eints);
560
 
 
561
 
    dpd_file2_close(&I);
562
 
 
563
 
  }
564
 
 
565
 
  
566
 
 
567
 
  if(params.ref == 0 || params.ref == 1) { /** RHF/ROHF **/
568
 
 
569
 
    /* I'AI <-- 2 sum_JKB <JA||KB> G(JI,KB) + 2 sum_jkB <jA|kB> G(jI,kB) +
570
 
       2 sum_jKb <Kj|Ab> (Aj,Kb) G(Ij,Kb) */
571
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
572
 
 
573
 
    dpd_buf4_init(&Cints, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia||jb>");
574
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 0, 10, 2, 10, 0, "GIJKA");
575
 
    dpd_contract442(&Cints, &G, &I, 1, 1, 2.0, 1.0);
576
 
    dpd_buf4_close(&G);
577
 
    dpd_buf4_close(&Cints);
578
 
 
579
 
    dpd_buf4_init(&Cints, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia|jb>");
580
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 0, 10, 0, 10, 0, "GiJkA");
581
 
    dpd_contract442(&Cints, &G, &I, 1, 1, 2.0, 1.0);
582
 
    dpd_buf4_close(&G);
583
 
    dpd_buf4_close(&Cints);
584
 
 
585
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
586
 
    dpd_buf4_sort(&Dints, CC_TMP0, rqps, 11, 10, "D <ij|ab> (aj,ib)");
587
 
    dpd_buf4_close(&Dints);
588
 
    dpd_buf4_init(&Dints, CC_TMP0, 0, 11, 10, 11, 10, 0, "D <ij|ab> (aj,ib)");
589
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 0, 10, 0, 10, 0, "GIjKa");
590
 
    dpd_contract442(&Dints, &G, &I, 0, 0, 2.0, 1.0);
591
 
    dpd_buf4_close(&G);
592
 
    dpd_buf4_close(&Dints);
593
 
 
594
 
    dpd_file2_close(&I);
595
 
 
596
 
    /* I'ai <-- 2 sum_jkb <ja||kb> G(ji,kb) + 2 sum_JKb <jA|Kb> G(Ji,Kb) +
597
 
       2 sum_JkB <kJ|aB> (aJ,kB) G(iJ,kB) */
598
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'ai");
599
 
 
600
 
    dpd_buf4_init(&Cints, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia||jb>");
601
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 0, 10, 2, 10, 0, "Gijka");
602
 
    dpd_contract442(&Cints, &G, &I, 1, 1, 2.0, 1.0);
603
 
    dpd_buf4_close(&G);
604
 
    dpd_buf4_close(&Cints);
605
 
 
606
 
    dpd_buf4_init(&Cints, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia|jb>");
607
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 0, 10, 0, 10, 0, "GIjKa");
608
 
    dpd_contract442(&Cints, &G, &I, 1, 1, 2.0, 1.0);
609
 
    dpd_buf4_close(&G);
610
 
    dpd_buf4_close(&Cints);
611
 
 
612
 
    /* This sorted D-group is formed in the last code block */
613
 
    dpd_buf4_init(&Dints, CC_TMP0, 0, 11, 10, 11, 10, 0, "D <ij|ab> (aj,ib)");
614
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 0, 10, 0, 10, 0, "GiJkA");
615
 
    dpd_contract442(&Dints, &G, &I, 0, 0, 2.0, 1.0);
616
 
    dpd_buf4_close(&G);
617
 
    dpd_buf4_close(&Dints);
618
 
 
619
 
    dpd_file2_close(&I);
620
 
  }
621
 
  else if(params.ref == 2) { /** UHF **/
622
 
 
623
 
    /* I'AI <-- 2 sum_JKB <JA||KB> G(JI,KB) + 2 sum_jkB <jA|kB> G(jI,kB) +
624
 
       2 sum_jKb <Kj|Ab> (Aj,Kb) G(Ij,Kb) */
625
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
626
 
 
627
 
    dpd_buf4_init(&Cints, CC_CINTS, 0, 20, 20, 20, 20, 0, "C <IA||JB>");
628
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 0, 20, 2, 20, 0, "GIJKA");
629
 
    dpd_contract442(&Cints, &G, &I, 1, 1, 2.0, 1.0);
630
 
    dpd_buf4_close(&G);
631
 
    dpd_buf4_close(&Cints);
632
 
 
633
 
    dpd_buf4_init(&Cints, CC_CINTS, 0, 27, 27, 27, 27, 0, "C <iA|jB>");
634
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 23, 27, 23, 27, 0, "GiJkA");
635
 
    dpd_contract442(&Cints, &G, &I, 1, 1, 2.0, 1.0);
636
 
    dpd_buf4_close(&G);
637
 
    dpd_buf4_close(&Cints);
638
 
 
639
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 22, 28, 22, 28, 0, "D <Ij|Ab>");
640
 
    dpd_buf4_sort(&Dints, CC_TMP0, rqps, 26, 24, "D <Ij|Ab> (Aj,Ib)");
641
 
    dpd_buf4_close(&Dints);
642
 
    dpd_buf4_init(&Dints, CC_TMP0, 0, 26, 24, 26, 24, 0, "D <Ij|Ab> (Aj,Ib)");
643
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 22, 24, 22, 24, 0, "GIjKa");
644
 
    dpd_contract442(&Dints, &G, &I, 0, 0, 2.0, 1.0);
645
 
    dpd_buf4_close(&G);
646
 
    dpd_buf4_close(&Dints);
647
 
 
648
 
    dpd_file2_close(&I);
649
 
 
650
 
    /* I'ai <-- 2 sum_jkb <ja||kb> G(ji,kb) + 2 sum_JKb <Ja|Kb> G(Ji,Kb) +
651
 
       2 sum_JkB <kJ|aB> (aJ,kB) G(iJ,kB) */
652
 
    dpd_file2_init(&I, CC_OEI, 0, 3, 2, "I'ai");
653
 
 
654
 
    dpd_buf4_init(&Cints, CC_CINTS, 0, 30, 30, 30, 30, 0, "C <ia||jb>");
655
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 10, 30, 12, 30, 0, "Gijka");
656
 
    dpd_contract442(&Cints, &G, &I, 1, 1, 2.0, 1.0);
657
 
    dpd_buf4_close(&G);
658
 
    dpd_buf4_close(&Cints);
659
 
 
660
 
    dpd_buf4_init(&Cints, CC_CINTS, 0, 24, 24, 24, 24, 0, "C <Ia|Jb>");
661
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 22, 24, 22, 24, 0, "GIjKa");
662
 
    dpd_contract442(&Cints, &G, &I, 1, 1, 2.0, 1.0);
663
 
    dpd_buf4_close(&G);
664
 
    dpd_buf4_close(&Cints);
665
 
 
666
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 23, 29, 23, 29, 0, "D <iJ|aB>");
667
 
    dpd_buf4_sort(&Dints, CC_TMP0, rqps, 25, 27, "D <iJ|aB> (aJ,iB)");
668
 
    dpd_buf4_close(&Dints);
669
 
    dpd_buf4_init(&Dints, CC_TMP0, 0, 25, 27, 25, 27, 0, "D <iJ|aB> (aJ,iB)");
670
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 23, 27, 23, 27, 0, "GiJkA");
671
 
    dpd_contract442(&Dints, &G, &I, 0, 0, 2.0, 1.0);
672
 
    dpd_buf4_close(&G);
673
 
    dpd_buf4_close(&Dints);
674
 
 
675
 
    dpd_file2_close(&I);
676
 
 
677
 
  }
678
 
 
679
 
  
680
 
 
681
 
  if(params.ref == 0 || params.ref == 1) { /** RHF/ROHF **/
682
 
 
683
 
    /* I'AI <-- sum_BJK <JK||AB> G(JK,IB) + 2 sum_Jkb <Jk|Ab> G(Jk,Ib) */
684
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
685
 
 
686
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 2, 5, 2, 5, 0, "D <ij||ab> (i>j,ab)");
687
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 2, 10, 2, 10, 0, "GIJKA");
688
 
    dpd_contract442(&Dints, &G, &I, 2, 2, 2.0, 1.0);
689
 
    dpd_buf4_close(&G);
690
 
    dpd_buf4_close(&Dints);
691
 
 
692
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
693
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 0, 10, 0, 10, 0, "GIjKa");
694
 
    dpd_contract442(&Dints, &G, &I, 2, 2, 2.0, 1.0);
695
 
    dpd_buf4_close(&G);
696
 
    dpd_buf4_close(&Dints);
697
 
 
698
 
    dpd_file2_close(&I);
699
 
 
700
 
    /* I'ai <-- sum_bjk <jk||ab> G(jk,ib) + 2 sum_jKB <jK|aB> G(jK,iB) */
701
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'ai");
702
 
 
703
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 2, 5, 2, 5, 0, "D <ij||ab> (i>j,ab)");
704
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 2, 10, 2, 10, 0, "Gijka");
705
 
    dpd_contract442(&Dints, &G, &I, 2, 2, 2.0, 1.0);
706
 
    dpd_buf4_close(&G);
707
 
    dpd_buf4_close(&Dints);
708
 
 
709
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
710
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 0, 10, 0, 10, 0, "GiJkA");
711
 
    dpd_contract442(&Dints, &G, &I, 2, 2, 2.0, 1.0);
712
 
    dpd_buf4_close(&G);
713
 
    dpd_buf4_close(&Dints);
714
 
 
715
 
    dpd_file2_close(&I);
716
 
  }
717
 
  else if(params.ref == 2) { /** UHF **/
718
 
 
719
 
    /* I'AI <-- sum_BJK <JK||AB> G(JK,IB) + 2 sum_Jkb <Jk|Ab> G(Jk,Ib) */
720
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
721
 
 
722
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 2, 5, 2, 5, 0, "D <IJ||AB> (I>J,AB)");
723
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 2, 20, 2, 20, 0, "GIJKA");
724
 
    dpd_contract442(&Dints, &G, &I, 2, 2, 2.0, 1.0);
725
 
    dpd_buf4_close(&G);
726
 
    dpd_buf4_close(&Dints);
727
 
 
728
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 22, 28, 22, 28, 0, "D <Ij|Ab>");
729
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 22, 24, 22, 24, 0, "GIjKa");
730
 
    dpd_contract442(&Dints, &G, &I, 2, 2, 2.0, 1.0);
731
 
    dpd_buf4_close(&G);
732
 
    dpd_buf4_close(&Dints);
733
 
 
734
 
    dpd_file2_close(&I);
735
 
 
736
 
    /* I'ai <-- sum_bjk <jk||ab> G(jk,ib) + 2 sum_jKB <jK|aB> G(jK,iB) */
737
 
    dpd_file2_init(&I, CC_OEI, 0, 3, 2, "I'ai");
738
 
 
739
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 12, 15, 12, 15, 0, "D <ij||ab> (i>j,ab)");
740
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 12, 30, 12, 30, 0, "Gijka");
741
 
    dpd_contract442(&Dints, &G, &I, 2, 2, 2.0, 1.0);
742
 
    dpd_buf4_close(&G);
743
 
    dpd_buf4_close(&Dints);
744
 
 
745
 
    dpd_buf4_init(&Dints, CC_DINTS, 0, 23, 29, 23, 29, 0, "D <iJ|aB>");
746
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 23, 27, 23, 27, 0, "GiJkA");
747
 
    dpd_contract442(&Dints, &G, &I, 2, 2, 2.0, 1.0);
748
 
    dpd_buf4_close(&G);
749
 
    dpd_buf4_close(&Dints);
750
 
 
751
 
    dpd_file2_close(&I);
752
 
 
753
 
  }
754
 
 
755
 
  
756
 
 
757
 
  if(params.ref == 0 || params.ref == 1) { /** RHF/ROHF **/
758
 
 
759
 
    /* I'AI <-- sum_JBC <JA||BC> G(JI,BC) + 2 sum_jbC <jA|bC> G(jI,bC) */
760
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
761
 
 
762
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 10, 7, 10, 5, 1, "F <ia|bc>");
763
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 0, 7, 2, 7, 0, "GIJAB");
764
 
    dpd_contract442(&Fints, &G, &I, 1, 1, 2.0, 1.0);
765
 
    dpd_buf4_close(&G);
766
 
    dpd_buf4_close(&Fints);
767
 
 
768
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 10, 5, 10, 5, 0, "F <ia|bc>");
769
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 0, 5, 0, 5, 0, "GIjAb");
770
 
    dpd_buf4_sort(&G, CC_TMP0, qpsr, 0, 5, "GiJaB");
771
 
    dpd_buf4_close(&G);
772
 
    dpd_buf4_init(&G, CC_TMP0, 0, 0, 5, 0, 5, 0, "GiJaB");
773
 
    dpd_contract442(&Fints, &G, &I, 1, 1, 2.0, 1.0);
774
 
    dpd_buf4_close(&G);
775
 
    dpd_buf4_close(&Fints);
776
 
 
777
 
    dpd_file2_close(&I);
778
 
 
779
 
    /* I'ai <-- sum_jbc <ja||bc> G(ji,bc) + 2 sum_JBc <Ja|Bc> G(Ji,Bc) */
780
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'ai");
781
 
 
782
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 10, 7, 10, 5, 1, "F <ia|bc>");
783
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 0, 7, 2, 7, 0, "Gijab");
784
 
    dpd_contract442(&Fints, &G, &I, 1, 1, 2.0, 1.0);
785
 
    dpd_buf4_close(&G);
786
 
    dpd_buf4_close(&Fints);
787
 
 
788
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 10, 5, 10, 5, 0, "F <ia|bc>");
789
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 0, 5, 0, 5, 0, "GIjAb");
790
 
    dpd_contract442(&Fints, &G, &I, 1, 1, 2.0, 1.0);
791
 
    dpd_buf4_close(&G);
792
 
    dpd_buf4_close(&Fints);
793
 
 
794
 
    dpd_file2_close(&I);
795
 
  }
796
 
  else if(params.ref == 2) { /** UHF **/
797
 
 
798
 
    /* I'AI <-- sum_JBC <JA||BC> G(JI,BC) + 2 sum_jbC <jA|bC> G(jI,bC) */
799
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
800
 
 
801
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 20, 7, 20, 5, 1, "F <IA|BC>");
802
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 0, 7, 2, 7, 0, "GIJAB");
803
 
    dpd_contract442(&Fints, &G, &I, 1, 1, 2.0, 1.0);
804
 
    dpd_buf4_close(&G);
805
 
    dpd_buf4_close(&Fints);
806
 
 
807
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 27, 29, 27, 29, 0, "F <iA|bC>");
808
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 22, 28, 22, 28, 0, "GIjAb");
809
 
    dpd_buf4_sort(&G, CC_TMP0, qpsr, 23, 29, "GiJaB");
810
 
    dpd_buf4_close(&G);
811
 
    dpd_buf4_init(&G, CC_TMP0, 0, 23, 29, 23, 29, 0, "GiJaB");
812
 
    dpd_contract442(&Fints, &G, &I, 1, 1, 2.0, 1.0);
813
 
    dpd_buf4_close(&G);
814
 
    dpd_buf4_close(&Fints);
815
 
 
816
 
    dpd_file2_close(&I);
817
 
 
818
 
    /* I'ai <-- sum_jbc <ja||bc> G(ji,bc) + 2 sum_JBc <Ja|Bc> G(Ji,Bc) */
819
 
    dpd_file2_init(&I, CC_OEI, 0, 3, 2, "I'ai");
820
 
 
821
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 30, 17, 30, 15, 1, "F <ia|bc>");
822
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 10, 17, 12, 17, 0, "Gijab");
823
 
    dpd_contract442(&Fints, &G, &I, 1, 1, 2.0, 1.0);
824
 
    dpd_buf4_close(&G);
825
 
    dpd_buf4_close(&Fints);
826
 
 
827
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 24, 28, 24, 28, 0, "F <Ia|Bc>");
828
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 22, 28, 22, 28, 0, "GIjAb");
829
 
    dpd_contract442(&Fints, &G, &I, 1, 1, 2.0, 1.0);
830
 
    dpd_buf4_close(&G);
831
 
    dpd_buf4_close(&Fints);
832
 
 
833
 
    dpd_file2_close(&I);
834
 
 
835
 
  }
836
 
 
837
 
  
838
 
 
839
 
  if(params.ref == 0 || params.ref == 1) { /** RHF/ROHF **/
840
 
 
841
 
    /* I'AI <-- 2 sum_BJC <JC||AB> G(JC,IB) + 2 sum_bJc <Jc||Ab> G(Jc,Ib) +
842
 
       2 sum_bjC <jC|bA> GjCIb(jC,bI) */
843
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
844
 
 
845
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 10, 10, 10, 10, 0, "GIBJA");
846
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 10, 5, 10, 5, 1, "F <ia|bc>");
847
 
    dpd_contract442(&Fints, &G, &I, 2, 2, 2.0, 1.0);
848
 
    dpd_buf4_close(&Fints);
849
 
    dpd_buf4_close(&G);
850
 
 
851
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 10, 10, 10, 10, 0, "GIbJa");
852
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 10, 5, 10, 5, 0, "F <ia|bc>");
853
 
    dpd_contract442(&Fints, &G, &I, 2, 2, 2.0, 1.0);
854
 
    dpd_buf4_close(&Fints);
855
 
    dpd_buf4_close(&G);
856
 
 
857
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 10, 10, 10, 10, 0, "GIbjA");
858
 
    dpd_buf4_sort(&G, CC_TMP0, rsqp, 10, 11, "GIbjA (jA,bI)");
859
 
    dpd_buf4_close(&G);
860
 
    dpd_buf4_init(&G, CC_TMP0, 0, 10, 11, 10, 11, 0, "GIbjA (jA,bI)");
861
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 10, 5, 10, 5, 0, "F <ia|bc>");
862
 
    dpd_contract442(&Fints, &G, &I, 3, 3, -2.0, 1.0);
863
 
    dpd_buf4_close(&Fints);
864
 
    dpd_buf4_close(&G);
865
 
 
866
 
    dpd_file2_close(&I);
867
 
 
868
 
    /* I'ai <-- 2 sum_bjc <jc||ab> G(jc,ib) + 2 sum_BjC <jC||aB> G(jC,iB) +
869
 
       2 sum_BJc <Jc|Ba> GJciB(Jc,Bi) */
870
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'ai");
871
 
 
872
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 10, 10, 10, 10, 0, "Gibja");
873
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 10, 5, 10, 5, 1, "F <ia|bc>");
874
 
    dpd_contract442(&Fints, &G, &I, 2, 2, 2.0, 1.0);
875
 
    dpd_buf4_close(&Fints);
876
 
    dpd_buf4_close(&G);
877
 
 
878
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 10, 10, 10, 10, 0, "GiBjA");
879
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 10, 5, 10, 5, 0, "F <ia|bc>");
880
 
    dpd_contract442(&Fints, &G, &I, 2, 2, 2.0, 1.0);
881
 
    dpd_buf4_close(&Fints);
882
 
    dpd_buf4_close(&G);
883
 
 
884
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 10, 10, 10, 10, 0, "GiBJa");
885
 
    dpd_buf4_sort(&G, CC_TMP0, rsqp, 10, 11, "GiBJa (Ja,Bi)");
886
 
    dpd_buf4_close(&G);
887
 
    dpd_buf4_init(&G, CC_TMP0, 0, 10, 11, 10, 11, 0, "GiBJa (Ja,Bi)");
888
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 10, 5, 10, 5, 0, "F <ia|bc>");
889
 
    dpd_contract442(&Fints, &G, &I, 3, 3, -2.0, 1.0);
890
 
    dpd_buf4_close(&Fints);
891
 
    dpd_buf4_close(&G);
892
 
 
893
 
    dpd_file2_close(&I);
894
 
  }
895
 
  else if(params.ref == 2) { /** UHF **/
896
 
 
897
 
    /* I'AI <-- 2 sum_BJC <JC||AB> G(JC,IB) + 2 sum_bJc <Jc||Ab> G(Jc,Ib) +
898
 
       2 sum_bjC <jC|bA> GjCIb(jC,bI) */
899
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
900
 
 
901
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 20, 20, 20, 20, 0, "GIBJA");
902
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 20, 5, 20, 5, 1, "F <IA|BC>");
903
 
    dpd_contract442(&Fints, &G, &I, 2, 2, 2.0, 1.0);
904
 
    dpd_buf4_close(&Fints);
905
 
    dpd_buf4_close(&G);
906
 
 
907
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 24, 24, 24, 24, 0, "GIbJa");
908
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 24, 28, 24, 28, 0, "F <Ia|Bc>");
909
 
    dpd_contract442(&Fints, &G, &I, 2, 2, 2.0, 1.0);
910
 
    dpd_buf4_close(&Fints);
911
 
    dpd_buf4_close(&G);
912
 
 
913
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 24, 27, 24, 27, 0, "GIbjA");
914
 
    dpd_buf4_sort(&G, CC_TMP0, rsqp, 27, 25, "GIbjA (jA,bI)");
915
 
    dpd_buf4_close(&G);
916
 
    dpd_buf4_init(&G, CC_TMP0, 0, 27, 25, 27, 25, 0, "GIbjA (jA,bI)");
917
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 27, 29, 27, 29, 0, "F <iA|bC>");
918
 
    dpd_contract442(&Fints, &G, &I, 3, 3, -2.0, 1.0);
919
 
    dpd_buf4_close(&Fints);
920
 
    dpd_buf4_close(&G);
921
 
 
922
 
    dpd_file2_close(&I);
923
 
 
924
 
    /* I'ai <-- 2 sum_bjc <jc||ab> G(jc,ib) + 2 sum_BjC <jC||aB> G(jC,iB) +
925
 
       2 sum_BJc <Jc|Ba> GJciB(Jc,Bi) */
926
 
    dpd_file2_init(&I, CC_OEI, 0, 3, 2, "I'ai");
927
 
 
928
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 30, 30, 30, 30, 0, "Gibja");
929
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 30, 15, 30, 15, 1, "F <ia|bc>");
930
 
    dpd_contract442(&Fints, &G, &I, 2, 2, 2.0, 1.0);
931
 
    dpd_buf4_close(&Fints);
932
 
    dpd_buf4_close(&G);
933
 
 
934
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 27, 27, 27, 27, 0, "GiBjA");
935
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 27, 29, 27, 29, 0, "F <iA|bC>");
936
 
    dpd_contract442(&Fints, &G, &I, 2, 2, 2.0, 1.0);
937
 
    dpd_buf4_close(&Fints);
938
 
    dpd_buf4_close(&G);
939
 
 
940
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 27, 24, 27, 24, 0, "GiBJa");
941
 
    dpd_buf4_sort(&G, CC_TMP0, rsqp, 24, 26, "GiBJa (Ja,Bi)");
942
 
    dpd_buf4_close(&G);
943
 
    dpd_buf4_init(&G, CC_TMP0, 0, 24, 26, 24, 26, 0, "GiBJa (Ja,Bi)");
944
 
    dpd_buf4_init(&Fints, CC_FINTS, 0, 24, 28, 24, 28, 0, "F <Ia|Bc>");
945
 
    dpd_contract442(&Fints, &G, &I, 3, 3, -2.0, 1.0);
946
 
    dpd_buf4_close(&Fints);
947
 
    dpd_buf4_close(&G);
948
 
 
949
 
    dpd_file2_close(&I);
950
 
 
951
 
  }
952
 
 
953
 
  
954
 
 
955
 
  if(params.ref == 0 || params.ref == 1) { /** RHF/ROHF **/
956
 
 
957
 
    /* I'AI <-- sum_BCD <AB||CD> G(IB,CD) + 2 sum_bCd <Ab|Cd> G(Ib,Cd) */
958
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
959
 
 
960
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 11, 7, 11, 7, 0, "GCIAB");
961
 
    dpd_buf4_sort(&G, CC_TMP0, qprs, 10, 7, "GICAB");
962
 
    dpd_buf4_close(&G);
963
 
    dpd_buf4_init(&G, CC_TMP0, 0, 10, 7, 10, 7, 0, "GICAB");
964
 
    dpd_buf4_init(&Bints, CC_BINTS, 0, 5, 7, 5, 5, 1, "B <ab|cd>");
965
 
    dpd_contract442(&Bints, &G, &I, 0, 0, -2.0, 1.0);
966
 
    dpd_buf4_close(&Bints);
967
 
    dpd_buf4_close(&G);
968
 
 
969
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 11, 5, 11, 5, 0, "GcIaB");
970
 
    dpd_buf4_sort(&G, CC_TMP0, qpsr, 10, 5, "GIcAb");
971
 
    dpd_buf4_close(&G);
972
 
    dpd_buf4_init(&G, CC_TMP0, 0, 10, 5, 10, 5, 0, "GIcAb");
973
 
    dpd_buf4_init(&Bints, CC_BINTS, 0, 5, 5, 5, 5, 0, "B <ab|cd>");
974
 
    dpd_contract442(&Bints, &G, &I, 0, 0, 2.0, 1.0);
975
 
    dpd_buf4_close(&Bints);
976
 
    dpd_buf4_close(&G);
977
 
 
978
 
    dpd_file2_close(&I);
979
 
 
980
 
    /* I'ai <-- sum_bcd <ab||cd> G(ib,cd) + 2 sum_BcD <aB|cD> G(iB,cD) */
981
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'ai");
982
 
 
983
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 11, 7, 11, 7, 0, "Gciab");
984
 
    dpd_buf4_sort(&G, CC_TMP0, qprs, 10, 7, "Gicab");
985
 
    dpd_buf4_close(&G);
986
 
    dpd_buf4_init(&G, CC_TMP0, 0, 10, 7, 10, 7, 0, "Gicab");
987
 
    dpd_buf4_init(&Bints, CC_BINTS, 0, 5, 7, 5, 5, 1, "B <ab|cd>");
988
 
    dpd_contract442(&Bints, &G, &I, 0, 0, -2.0, 1.0);
989
 
    dpd_buf4_close(&Bints);
990
 
    dpd_buf4_close(&G);
991
 
 
992
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 11, 5, 11, 5, 0, "GCiAb");
993
 
    dpd_buf4_sort(&G, CC_TMP0, qpsr, 10, 5, "GiCaB");
994
 
    dpd_buf4_close(&G);
995
 
    dpd_buf4_init(&G, CC_TMP0, 0, 10, 5, 10, 5, 0, "GiCaB");
996
 
    dpd_buf4_init(&Bints, CC_BINTS, 0, 5, 5, 5, 5, 0, "B <ab|cd>");
997
 
    dpd_contract442(&Bints, &G, &I, 0, 0, 2.0, 1.0);
998
 
    dpd_buf4_close(&Bints);
999
 
    dpd_buf4_close(&G);
1000
 
 
1001
 
    dpd_file2_close(&I);
1002
 
  }
1003
 
  else if(params.ref == 2) { /** UHF **/
1004
 
 
1005
 
    /* I'AI <-- sum_BCD <AB||CD> G(IB,CD) + 2 sum_bCd <Ab|Cd> G(Ib,Cd) */
1006
 
    dpd_file2_init(&I, CC_OEI, 0, 1, 0, "I'AI");
1007
 
 
1008
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 21, 7, 21, 7, 0, "GCIAB");
1009
 
    dpd_buf4_sort(&G, CC_TMP0, qprs, 20, 7, "GICAB");
1010
 
    dpd_buf4_close(&G);
1011
 
    dpd_buf4_init(&G, CC_TMP0, 0, 20, 7, 20, 7, 0, "GICAB");
1012
 
    dpd_buf4_init(&Bints, CC_BINTS, 0, 5, 7, 5, 5, 1, "B <AB|CD>");
1013
 
    dpd_contract442(&Bints, &G, &I, 0, 0, -2.0, 1.0);
1014
 
    dpd_buf4_close(&Bints);
1015
 
    dpd_buf4_close(&G);
1016
 
 
1017
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 25, 29, 25, 29, 0, "GcIaB");
1018
 
    dpd_buf4_sort(&G, CC_TMP0, qpsr, 24, 28, "GIcAb");
1019
 
    dpd_buf4_close(&G);
1020
 
    dpd_buf4_init(&G, CC_TMP0, 0, 24, 28, 24, 28, 0, "GIcAb");
1021
 
    dpd_buf4_init(&Bints, CC_BINTS, 0, 28, 28, 28, 28, 0, "B <Ab|Cd>");
1022
 
    dpd_contract442(&Bints, &G, &I, 0, 0, 2.0, 1.0);
1023
 
    dpd_buf4_close(&Bints);
1024
 
    dpd_buf4_close(&G);
1025
 
 
1026
 
    dpd_file2_close(&I);
1027
 
 
1028
 
    /* I'ai <-- sum_bcd <ab||cd> G(ib,cd) + 2 sum_BcD <Cd|Ba> G(Cd,Bi) */
1029
 
    dpd_file2_init(&I, CC_OEI, 0, 3, 2, "I'ai");
1030
 
 
1031
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 31, 17, 31, 17, 0, "Gciab");
1032
 
    dpd_buf4_sort(&G, CC_TMP0, qprs, 30, 17, "Gicab");
1033
 
    dpd_buf4_close(&G);
1034
 
    dpd_buf4_init(&G, CC_TMP0, 0, 30, 17, 30, 17, 0, "Gicab");
1035
 
    dpd_buf4_init(&Bints, CC_BINTS, 0, 15, 17, 15, 15, 1, "B <ab|cd>");
1036
 
    dpd_contract442(&Bints, &G, &I, 0, 0, -2.0, 1.0);
1037
 
    dpd_buf4_close(&Bints);
1038
 
    dpd_buf4_close(&G);
1039
 
 
1040
 
    dpd_buf4_init(&G, CC_GAMMA, 0, 26, 28, 26, 28, 0, "GCiAb");
1041
 
    dpd_buf4_sort(&G, CC_TMP0, rspq, 28, 26, "GAbCi");
1042
 
    dpd_buf4_close(&G);
1043
 
    dpd_buf4_init(&G, CC_TMP0, 0, 28, 26, 28, 26, 0, "GAbCi");
1044
 
    dpd_buf4_init(&Bints, CC_BINTS, 0, 28, 28, 28, 28, 0, "B <Ab|Cd>");
1045
 
    dpd_contract442(&Bints, &G, &I, 3, 3, 2.0, 1.0);
1046
 
    dpd_buf4_close(&Bints);
1047
 
    dpd_buf4_close(&G);
1048
 
 
1049
 
    dpd_file2_close(&I);
1050
 
 
1051
 
  }
1052
 
    
1053
 
}