~ubuntu-branches/ubuntu/vivid/psicode/vivid

« back to all changes in this revision

Viewing changes to src/bin/cchbar/Wmbej.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 <stdio.h>
2
 
#include <libdpd/dpd.h>
3
 
#define EXTERN
4
 
#include "globals.h"
5
 
 
6
 
/* Wmbej_build(): Computes all contributions to the Wmbej HBAR matrix
7
 
** elements.  These are defined in terms of spin orbitals as:
8
 
**
9
 
** Wmbej = <mb||ej> + t_j^f <mb||ef> - t_n^b <mn||ej> 
10
 
**         - { t_jn^fb + t_j^f t_n^b } <mn||ef>
11
 
**
12
 
** [cf. Gauss and Stanton, JCP 103, 3561-3577 (1995)]
13
 
**
14
 
** There are Wmbej six spin cases, which are stored and named
15
 
** as follows:
16
 
**
17
 
** Spin Case    Storage    Name
18
 
** ----------   ---------  -------
19
 
** WMBEJ        (ME,JB)    "WMBEJ"
20
 
** Wmbej        (me,jb)    "Wmbej"
21
 
** WMbEj        (ME,jb)    "WMbEj"
22
 
** WmBeJ        (me,JB)    "WmBeJ"
23
 
** WMbeJ        (Me,bJ)    "WMbeJ"
24
 
** WmBEj        (mE,Bj)    "WmBEj"
25
 
** -------------------------------
26
 
**
27
 
** TDC, June 2002
28
 
*/
29
 
 
30
 
void Wmbej_build(void) {
31
 
  dpdbuf4 WMBEJ, Wmbej, WMbEj, WmBeJ, WmBEj, WMbeJ;
32
 
  dpdbuf4 tIAJB, tjAIb, tiajb, tIAjb, tiaJB, tIbjA;
33
 
  dpdbuf4 D, C, F, E, X, Y, t2, W, Z;
34
 
  dpdfile2 tIA, tia;
35
 
  int Gmb, mb, Gj, Ge, Gf, nrows, ncols, nlinks;
36
 
 
37
 
  if(params.ref == 0) { /** RHF **/
38
 
 
39
 
    /* <mb||ej> -> Wmbej */
40
 
 
41
 
    dpd_buf4_init(&C, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia|jb>");
42
 
    dpd_buf4_scmcopy(&C, CC_TMP0, "WMbeJ", -1);
43
 
    dpd_buf4_close(&C);
44
 
 
45
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 11, 10, 11, 0, "D <ij|ab> (ib,aj)");
46
 
    dpd_buf4_copy(&D, CC_TMP0, "WMbEj");
47
 
    dpd_buf4_close(&D);
48
 
 
49
 
    dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
50
 
 
51
 
    /* F -> Wmbej */
52
 
 
53
 
    dpd_buf4_init(&F, CC_FINTS, 0, 10, 5, 10, 5, 0, "F <ia|bc>");
54
 
 
55
 
    dpd_buf4_init(&WMbEj, CC_TMP0, 0, 10, 11, 10, 11, 0, "WMbEj");
56
 
    dpd_contract424(&F, &tIA, &WMbEj, 3, 1, 0, 1, 1); /* should run OOC, if needed */
57
 
    dpd_buf4_close(&WMbEj);
58
 
 
59
 
    dpd_buf4_close(&F);
60
 
 
61
 
    /*
62
 
    dpd_buf4_init(&F, CC_FINTS, 0, 11, 5, 11, 5, 0, "F <ai|bc>");
63
 
 
64
 
    dpd_buf4_init(&Z, CC_TMP0, 0, 11, 11, 11, 11, 0, "Z(bM,eJ)");
65
 
    dpd_contract424(&F, &tIA, &Z, 3, 1, 0, -1, 0);
66
 
    dpd_buf4_sort(&Z, CC_TMP0, qpsr, 10, 10, "Z(Mb,Je)");
67
 
    dpd_buf4_close(&Z);
68
 
    dpd_buf4_init(&Z, CC_TMP0, 0, 10, 10, 10, 10, 0, "Z(Mb,Je)");
69
 
    dpd_buf4_init(&WMbeJ, CC_TMP0, 0, 10, 10, 10, 10, 0, "WMbeJ");
70
 
    dpd_buf4_axpy(&Z, &WMbeJ, 1.0);
71
 
    dpd_buf4_close(&WMbeJ);
72
 
    dpd_buf4_close(&Z);
73
 
 
74
 
    dpd_buf4_close(&F);
75
 
    */
76
 
    /* W(Mb,Je) <-- t(J,F) <Mb|Fe> */
77
 
    /* OOC code added to replace above on 3/26/05, TDC */
78
 
    dpd_buf4_init(&F, CC_FINTS, 0, 10, 5, 10, 5, 0, "F <ia|bc>");
79
 
    dpd_buf4_init(&W, CC_TMP0, 0, 10, 10, 10, 10, 0, "WMbeJ");
80
 
    dpd_file2_mat_init(&tIA);
81
 
    dpd_file2_mat_rd(&tIA);
82
 
 
83
 
    for(Gmb=0; Gmb < moinfo.nirreps; Gmb++) {
84
 
      dpd_buf4_mat_irrep_row_init(&W, Gmb);
85
 
      dpd_buf4_mat_irrep_row_init(&F, Gmb);
86
 
 
87
 
      for(mb=0; mb < F.params->rowtot[Gmb]; mb++) {
88
 
        dpd_buf4_mat_irrep_row_rd(&W, Gmb, mb);
89
 
        dpd_buf4_mat_irrep_row_rd(&F, Gmb, mb);
90
 
 
91
 
        for(Gj=0; Gj < moinfo.nirreps; Gj++) {
92
 
          Gf = Gj;  /* T1 is totally symmetric */
93
 
          Ge = Gmb ^ Gf; /* <mb|fe> is totally symmetric */
94
 
 
95
 
          nrows = moinfo.occpi[Gj];
96
 
          ncols = moinfo.virtpi[Ge];
97
 
          nlinks = moinfo.virtpi[Gf];
98
 
          if(nrows && ncols && nlinks)
99
 
            C_DGEMM('n','n',nrows,ncols,nlinks,-1.0,tIA.matrix[Gj][0],nlinks,
100
 
                    &F.matrix[Gmb][0][F.col_offset[Gmb][Gf]],ncols,1.0,
101
 
                    &W.matrix[Gmb][0][W.col_offset[Gmb][Gj]],ncols);
102
 
        }
103
 
 
104
 
        dpd_buf4_mat_irrep_row_wrt(&W, Gmb, mb);
105
 
      }
106
 
 
107
 
      dpd_buf4_mat_irrep_row_close(&F, Gmb);
108
 
      dpd_buf4_mat_irrep_row_close(&W, Gmb);
109
 
    }
110
 
 
111
 
    dpd_file2_mat_close(&tIA);
112
 
    dpd_buf4_close(&W);
113
 
    dpd_buf4_close(&F);
114
 
 
115
 
 
116
 
    dpd_file2_close(&tIA);
117
 
 
118
 
    /* E -> Wmbej */
119
 
    dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
120
 
 
121
 
    dpd_buf4_init(&E, CC_EINTS, 0, 11, 0, 11, 0, 0, "E <ai|jk>");
122
 
    dpd_buf4_init(&WMbEj, CC_TMP0, 0, 10, 11, 10, 11, 0, "WMbEj");
123
 
    dpd_contract424(&E, &tIA, &WMbEj, 3, 0, 1, -1, 1);
124
 
    dpd_buf4_close(&WMbEj);
125
 
    dpd_buf4_close(&E);
126
 
 
127
 
    dpd_buf4_init(&E, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
128
 
    dpd_buf4_init(&WMbeJ, CC_TMP0, 0, 10, 10, 10, 10, 0, "WMbeJ");
129
 
    dpd_contract424(&E, &tIA, &WMbeJ, 1, 0, 1, 1, 1);
130
 
    dpd_buf4_close(&WMbeJ);
131
 
    dpd_buf4_close(&E);
132
 
 
133
 
    dpd_file2_close(&tIA);  
134
 
 
135
 
 
136
 
    /* Sort to (ME,JB) */
137
 
 
138
 
    dpd_buf4_init(&WMbEj, CC_TMP0, 0, 10, 11, 10, 11, 0, "WMbEj");
139
 
    dpd_buf4_sort(&WMbEj, CC_HBAR, prsq, 10, 10, "WMbEj");
140
 
    dpd_buf4_close(&WMbEj);
141
 
 
142
 
    dpd_buf4_init(&WMbeJ, CC_TMP0, 0, 10, 10, 10, 10, 0, "WMbeJ");
143
 
    dpd_buf4_sort(&WMbeJ, CC_HBAR, psrq, 10, 10, "WMbeJ");
144
 
    dpd_buf4_close(&WMbeJ);
145
 
 
146
 
 
147
 
    /* T1^2 -> Wmbej */
148
 
 
149
 
    dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
150
 
 
151
 
    /*** ABAB ***/
152
 
 
153
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMbEj");
154
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIAjb");
155
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D 2<ij|ab> - <ij|ba> (ia,jb)");
156
 
    dpd_contract444(&D, &t2, &W, 0, 0, 1, 1);
157
 
    dpd_buf4_close(&D);
158
 
    dpd_buf4_close(&t2);
159
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tjAIb");
160
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
161
 
    dpd_contract444(&D, &t2, &W, 0, 0, -1, 1);
162
 
    dpd_buf4_close(&D);
163
 
    dpd_buf4_close(&t2);
164
 
    dpd_buf4_close(&W);
165
 
 
166
 
    dpd_buf4_init(&Y, CC_TMP0, 0, 10, 0, 10, 0, 0, "Y (ME,JN)");
167
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 11, 10, 11, 0, "D <ij|ab> (ia,bj)");
168
 
    dpd_contract244(&tIA, &D, &Y, 1, 2, 1, 1, 0);
169
 
    dpd_buf4_close(&D);
170
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMbEj");
171
 
    dpd_contract424(&Y, &tIA, &W, 3, 0, 0, -1, 1);
172
 
    dpd_buf4_close(&W);
173
 
    dpd_buf4_close(&Y);
174
 
 
175
 
    /*** ABBA ***/
176
 
  
177
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMbeJ");
178
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIbjA");
179
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ib,ja)");
180
 
    dpd_contract444(&D, &t2, &W, 0, 0, 1, 1);
181
 
    dpd_buf4_close(&D);
182
 
    dpd_buf4_close(&t2);
183
 
    dpd_buf4_close(&W);
184
 
 
185
 
    dpd_buf4_init(&Y, CC_TMP0, 0, 10, 0, 10, 0, 0, "Y (ME,JN)");
186
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 11, 10, 11, 0, "D <ij|ab> (ib,aj)");
187
 
    dpd_contract244(&tIA, &D, &Y, 1, 2, 1, 1, 0);
188
 
    dpd_buf4_close(&D);
189
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMbeJ");
190
 
    dpd_contract424(&Y, &tIA, &W, 3, 0, 0, 1, 1);
191
 
    dpd_buf4_close(&W);
192
 
    dpd_buf4_close(&Y);
193
 
 
194
 
    dpd_file2_close(&tIA);
195
 
 
196
 
  }
197
 
  else if(params.ref == 1) { /** ROHF **/
198
 
 
199
 
    /* W(mb,je) <-- <mb||ej> */
200
 
 
201
 
    dpd_buf4_init(&C, CC_CINTS, 0, 10, 11, 10, 11, 0, "C <ia||jb> (ia,bj)");
202
 
    dpd_buf4_scmcopy(&C, CC_TMP0, "WMBEJ", -1);
203
 
    dpd_buf4_scmcopy(&C, CC_TMP0, "Wmbej", -1);
204
 
    dpd_buf4_close(&C);
205
 
 
206
 
    dpd_buf4_init(&C, CC_CINTS, 0, 10, 10, 10, 10, 0, "C <ia|jb>");
207
 
    dpd_buf4_scmcopy(&C, CC_TMP0, "WmBEj", -1);
208
 
    dpd_buf4_scmcopy(&C, CC_TMP0, "WMbeJ", -1);
209
 
    dpd_buf4_close(&C);
210
 
 
211
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 11, 10, 11, 0, "D <ij|ab> (ib,aj)");
212
 
    dpd_buf4_copy(&D, CC_TMP0, "WMbEj");
213
 
    dpd_buf4_copy(&D, CC_TMP0, "WmBeJ");
214
 
    dpd_buf4_close(&D);
215
 
 
216
 
    /* F -> Wmbej */
217
 
 
218
 
    dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
219
 
    dpd_file2_init(&tia, CC_OEI, 0, 0, 1, "tia");
220
 
 
221
 
    dpd_buf4_init(&F, CC_FINTS, 0, 10, 5, 10, 5, 1, "F <ia|bc>");
222
 
    dpd_buf4_init(&WMBEJ, CC_TMP0, 0, 10, 11, 10, 11, 0, "WMBEJ");
223
 
    dpd_contract424(&F, &tIA, &WMBEJ, 3, 1, 0, 1, 1);
224
 
    dpd_buf4_close(&WMBEJ);
225
 
    dpd_buf4_init(&Wmbej, CC_TMP0, 0, 10, 11, 10, 11, 0, "Wmbej");
226
 
    dpd_contract424(&F, &tia, &Wmbej, 3, 1, 0, 1, 1);
227
 
    dpd_buf4_close(&Wmbej);
228
 
    dpd_buf4_close(&F);
229
 
 
230
 
    dpd_buf4_init(&F, CC_FINTS, 0, 10, 5, 10, 5, 0, "F <ia|bc>");
231
 
    dpd_buf4_init(&WMbEj, CC_TMP0, 0, 10, 11, 10, 11, 0, "WMbEj");
232
 
    dpd_contract424(&F, &tia, &WMbEj, 3, 1, 0, 1, 1);
233
 
    dpd_buf4_close(&WMbEj);
234
 
    dpd_buf4_init(&WmBeJ, CC_TMP0, 0, 10, 11, 10, 11, 0, "WmBeJ");
235
 
    dpd_contract424(&F, &tIA, &WmBeJ, 3, 1, 0, 1, 1);
236
 
    dpd_buf4_close(&WmBeJ);
237
 
 
238
 
    dpd_buf4_init(&WMbeJ, CC_TMP0, 0, 10, 10, 10, 10, 0, "WMbeJ");
239
 
    dpd_contract244(&tIA, &F, &WMbeJ, 1, 2, 1, -1, 1);
240
 
    dpd_buf4_close(&WMbeJ);
241
 
    dpd_buf4_init(&WmBEj, CC_TMP0, 0, 10, 10, 10, 10, 0, "WmBEj");
242
 
    dpd_contract244(&tia, &F, &WmBEj, 1, 2, 1, -1, 1);
243
 
    dpd_buf4_close(&WmBEj);
244
 
    dpd_buf4_close(&F);
245
 
 
246
 
    dpd_file2_close(&tIA);
247
 
    dpd_file2_close(&tia);
248
 
 
249
 
    /* E -> Wmbej */
250
 
 
251
 
    dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
252
 
    dpd_file2_init(&tia, CC_OEI, 0, 0, 1, "tia");
253
 
 
254
 
    dpd_buf4_init(&E, CC_EINTS, 0, 0, 11, 2, 11, 0, "E <ij||ka> (i>j,ak)");
255
 
    dpd_buf4_init(&WMBEJ, CC_TMP0, 0, 10, 11, 10, 11, 0, "WMBEJ");
256
 
    dpd_contract424(&E, &tIA, &WMBEJ, 1, 0, 1, 1, 1);
257
 
    dpd_buf4_close(&WMBEJ);
258
 
    dpd_buf4_init(&Wmbej, CC_TMP0, 0, 10, 11, 10, 11, 0, "Wmbej");
259
 
    dpd_contract424(&E, &tia, &Wmbej, 1, 0, 1, 1, 1);
260
 
    dpd_buf4_close(&Wmbej);
261
 
    dpd_buf4_close(&E);
262
 
 
263
 
    dpd_buf4_init(&E, CC_EINTS, 0, 11, 0, 11, 0, 0, "E <ai|jk>");
264
 
    dpd_buf4_init(&WMbEj, CC_TMP0, 0, 10, 11, 10, 11, 0, "WMbEj");
265
 
    dpd_contract424(&E, &tia, &WMbEj, 3, 0, 1, -1, 1);
266
 
    dpd_buf4_close(&WMbEj);
267
 
    dpd_buf4_init(&WmBeJ, CC_TMP0, 0, 10, 11, 10, 11, 0, "WmBeJ");
268
 
    dpd_contract424(&E, &tIA, &WmBeJ, 3, 0, 1, -1, 1);
269
 
    dpd_buf4_close(&WmBeJ);
270
 
    dpd_buf4_close(&E);
271
 
 
272
 
    dpd_buf4_init(&E, CC_EINTS, 0, 0, 10, 0, 10, 0, "E <ij|ka>");
273
 
    dpd_buf4_init(&WMbeJ, CC_TMP0, 0, 10, 10, 10, 10, 0, "WMbeJ");
274
 
    dpd_contract424(&E, &tia, &WMbeJ, 1, 0, 1, 1, 1);
275
 
    dpd_buf4_close(&WMbeJ);
276
 
    dpd_buf4_init(&WmBEj, CC_TMP0, 0, 10, 10, 10, 10, 0, "WmBEj");
277
 
    dpd_contract424(&E, &tIA, &WmBEj, 1, 0, 1, 1, 1);
278
 
    dpd_buf4_close(&WmBEj);
279
 
    dpd_buf4_close(&E);
280
 
 
281
 
    dpd_file2_close(&tIA);  
282
 
    dpd_file2_close(&tia);
283
 
 
284
 
    /* Convert to (ME,JB) for remaining terms */
285
 
 
286
 
    dpd_buf4_init(&WMBEJ, CC_TMP0, 0, 10, 11, 10, 11, 0, "WMBEJ");
287
 
    dpd_buf4_sort(&WMBEJ, CC_HBAR, prsq, 10, 10, "WMBEJ");
288
 
    dpd_buf4_close(&WMBEJ);
289
 
 
290
 
    dpd_buf4_init(&Wmbej, CC_TMP0, 0, 10, 11, 10, 11, 0, "Wmbej");
291
 
    dpd_buf4_sort(&Wmbej, CC_HBAR, prsq, 10, 10, "Wmbej");
292
 
    dpd_buf4_close(&Wmbej);
293
 
 
294
 
    dpd_buf4_init(&WMbEj, CC_TMP0, 0, 10, 11, 10, 11, 0, "WMbEj");
295
 
    dpd_buf4_sort(&WMbEj, CC_HBAR, prsq, 10, 10, "WMbEj");
296
 
    dpd_buf4_close(&WMbEj);
297
 
 
298
 
    dpd_buf4_init(&WmBeJ, CC_TMP0, 0, 10, 11, 10, 11, 0, "WmBeJ");
299
 
    dpd_buf4_sort(&WmBeJ, CC_HBAR, prsq, 10, 10, "WmBeJ");
300
 
    dpd_buf4_close(&WmBeJ);
301
 
 
302
 
    dpd_buf4_init(&WMbeJ, CC_TMP0, 0, 10, 10, 10, 10, 0, "WMbeJ");
303
 
    dpd_buf4_sort(&WMbeJ, CC_HBAR, psrq, 10, 10, "WMbeJ");
304
 
    dpd_buf4_close(&WMbeJ);
305
 
 
306
 
    dpd_buf4_init(&WmBEj, CC_TMP0, 0, 10, 10, 10, 10, 0, "WmBEj");
307
 
    dpd_buf4_sort(&WmBEj, CC_HBAR, psrq, 10, 10, "WmBEj");
308
 
    dpd_buf4_close(&WmBEj);
309
 
 
310
 
    /* X -> Wmbej */
311
 
    dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
312
 
    dpd_file2_init(&tia, CC_OEI, 0, 0, 1, "tia");
313
 
 
314
 
    /*** AAAA ***/
315
 
 
316
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMBEJ");
317
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij||ab> (ia,jb)");
318
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIAJB");
319
 
    dpd_contract444(&D, &t2, &W, 0, 0, 0.5, 1);
320
 
    dpd_buf4_close(&t2);
321
 
    dpd_buf4_close(&D);
322
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
323
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIAjb");
324
 
    dpd_contract444(&D, &t2, &W, 0, 0, 0.5, 1);
325
 
    dpd_buf4_close(&t2);
326
 
    dpd_buf4_close(&D);
327
 
    dpd_buf4_close(&W);
328
 
 
329
 
    dpd_buf4_init(&Y, CC_TMP0, 0, 10, 0, 10, 0, 0, "Y (ME,JN)");
330
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 11, 10, 11, 0, "D <ij||ab> (ia,bj)");
331
 
    dpd_contract244(&tIA, &D, &Y, 1, 2, 1, 1, 0);
332
 
    dpd_buf4_close(&D);
333
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMBEJ");
334
 
    dpd_contract424(&Y, &tIA, &W, 3, 0, 0, -1, 1);
335
 
    dpd_buf4_close(&W);
336
 
    dpd_buf4_close(&Y);
337
 
 
338
 
    /*** BBBB ***/
339
 
 
340
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "Wmbej");
341
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij||ab> (ia,jb)");
342
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tiajb");
343
 
    dpd_contract444(&D, &t2, &W, 0, 0, 0.5, 1);
344
 
    dpd_buf4_close(&t2);
345
 
    dpd_buf4_close(&D);
346
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
347
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tiaJB");
348
 
    dpd_contract444(&D, &t2, &W, 0, 0, 0.5, 1);
349
 
    dpd_buf4_close(&t2);
350
 
    dpd_buf4_close(&D);
351
 
    dpd_buf4_close(&W);
352
 
 
353
 
    dpd_buf4_init(&Y, CC_TMP0, 0, 10, 0, 10, 0, 0, "Y (ME,JN)");
354
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 11, 10, 11, 0, "D <ij||ab> (ia,bj)");
355
 
    dpd_contract244(&tia, &D, &Y, 1, 2, 1, 1, 0);
356
 
    dpd_buf4_close(&D);
357
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "Wmbej");
358
 
    dpd_contract424(&Y, &tia, &W, 3, 0, 0, -1, 1);
359
 
    dpd_buf4_close(&W);
360
 
    dpd_buf4_close(&Y);
361
 
 
362
 
    /*** ABAB ***/
363
 
  
364
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMbEj");
365
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
366
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tiajb");
367
 
    dpd_contract444(&D, &t2, &W, 0, 0, 0.5, 1); 
368
 
    dpd_buf4_close(&t2);
369
 
    dpd_buf4_close(&D);
370
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij||ab> (ia,jb)");
371
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tiaJB");
372
 
    dpd_contract444(&D, &t2, &W, 0, 0, 0.5, 1); 
373
 
    dpd_buf4_close(&t2);
374
 
    dpd_buf4_close(&D);
375
 
    dpd_buf4_close(&W);
376
 
 
377
 
    dpd_buf4_init(&Y, CC_TMP0, 0, 10, 0, 10, 0, 0, "Y (ME,JN)");
378
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 11, 10, 11, 0, "D <ij|ab> (ia,bj)");
379
 
    dpd_contract244(&tia, &D, &Y, 1, 2, 1, 1, 0);
380
 
    dpd_buf4_close(&D);
381
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMbEj");
382
 
    dpd_contract424(&Y, &tia, &W, 3, 0, 0, -1, 1);
383
 
    dpd_buf4_close(&W);
384
 
    dpd_buf4_close(&Y);
385
 
 
386
 
    /*** BABA ***/
387
 
 
388
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WmBeJ");
389
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
390
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIAJB");
391
 
    dpd_contract444(&D, &t2, &W, 0, 0, 0.5, 1);
392
 
    dpd_buf4_close(&t2);
393
 
    dpd_buf4_close(&D);
394
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij||ab> (ia,jb)");
395
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIAjb");
396
 
    dpd_contract444(&D, &t2, &W, 0, 0, 0.5, 1);
397
 
    dpd_buf4_close(&t2);
398
 
    dpd_buf4_close(&D);
399
 
    dpd_buf4_close(&W);
400
 
 
401
 
    dpd_buf4_init(&Y, CC_TMP0, 0, 10, 0, 10, 0, 0, "Y (ME,JN)");
402
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 11, 10, 11, 0, "D <ij|ab> (ia,bj)");
403
 
    dpd_contract244(&tIA, &D, &Y, 1, 2, 1, 1, 0);
404
 
    dpd_buf4_close(&D);
405
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WmBeJ");
406
 
    dpd_contract424(&Y, &tIA, &W, 3, 0, 0, -1, 1);
407
 
    dpd_buf4_close(&W);
408
 
    dpd_buf4_close(&Y);
409
 
 
410
 
    /*** ABBA ***/
411
 
  
412
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMbeJ");
413
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIbjA");
414
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ib,ja)");
415
 
    dpd_contract444(&D, &t2, &W, 0, 0, 0.5, 1);
416
 
    dpd_buf4_close(&D);
417
 
    dpd_buf4_close(&t2);
418
 
    dpd_buf4_close(&W);
419
 
 
420
 
    dpd_buf4_init(&Y, CC_TMP0, 0, 10, 0, 10, 0, 0, "Y (ME,JN)");
421
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 11, 10, 11, 0, "D <ij|ab> (ib,aj)");
422
 
    dpd_contract244(&tIA, &D, &Y, 1, 2, 1, 1, 0);
423
 
    dpd_buf4_close(&D);
424
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMbeJ");
425
 
    dpd_contract424(&Y, &tia, &W, 3, 0, 0, 1, 1);
426
 
    dpd_buf4_close(&W);
427
 
    dpd_buf4_close(&Y);
428
 
 
429
 
    /*** BAAB ***/
430
 
 
431
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WmBEj");
432
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tjAIb");
433
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ib,ja)");
434
 
    dpd_contract444(&D, &t2, &W, 0, 0, 0.5, 1);
435
 
    dpd_buf4_close(&D);
436
 
    dpd_buf4_close(&t2);
437
 
    dpd_buf4_close(&W);
438
 
 
439
 
    dpd_buf4_init(&Y, CC_TMP0, 0, 10, 0, 10, 0, 0, "Y (ME,JN)");
440
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 11, 10, 11, 0, "D <ij|ab> (ib,aj)");
441
 
    dpd_contract244(&tia, &D, &Y, 1, 2, 1, 1, 0);
442
 
    dpd_buf4_close(&D);
443
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WmBEj");
444
 
    dpd_contract424(&Y, &tIA, &W, 3, 0, 0, 1, 1);
445
 
    dpd_buf4_close(&W);
446
 
    dpd_buf4_close(&Y);
447
 
 
448
 
    dpd_file2_close(&tIA);
449
 
    dpd_file2_close(&tia);
450
 
 
451
 
 
452
 
    /* D(me,nf) * T2(jb,nf) --> W(me,jb) */
453
 
    dpd_buf4_init(&Wmbej, CC_HBAR, 0, 10, 10, 10, 10, 0, "Wmbej");
454
 
 
455
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij||ab> (ia,jb)");
456
 
    dpd_buf4_init(&tiajb, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tiajb");
457
 
    dpd_contract444(&D, &tiajb, &Wmbej, 0, 0, 0.5, 1);
458
 
    dpd_buf4_close(&D);
459
 
    dpd_buf4_close(&tiajb);
460
 
 
461
 
    /* D(me,NF) * T2(jb,NF) --> W(me,jb) */
462
 
    dpd_buf4_init(&tiaJB, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tiaJB");
463
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
464
 
    dpd_contract444(&D, &tiaJB, &Wmbej, 0, 0, 0.5, 1);
465
 
    dpd_buf4_close(&D);
466
 
    dpd_buf4_close(&tiaJB);
467
 
 
468
 
    dpd_buf4_close(&Wmbej);
469
 
 
470
 
 
471
 
    /* D(ME,NF) * T2(JB,NF) --> W(ME,JB) */
472
 
    dpd_buf4_init(&WMBEJ, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMBEJ");
473
 
 
474
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij||ab> (ia,jb)");
475
 
    dpd_buf4_init(&tIAJB, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIAJB");
476
 
    dpd_contract444(&D, &tIAJB, &WMBEJ, 0, 0, 0.5, 1);
477
 
    dpd_buf4_close(&D);
478
 
    dpd_buf4_close(&tIAJB);
479
 
 
480
 
    /* D(ME,nf) * T2(JB,nf) --> W(ME,JB) */
481
 
    dpd_buf4_init(&tIAjb, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIAjb");
482
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
483
 
    dpd_contract444(&D, &tIAjb, &WMBEJ, 0, 0, 0.5, 1);
484
 
    dpd_buf4_close(&D);
485
 
    dpd_buf4_close(&tIAjb);
486
 
 
487
 
    dpd_buf4_close(&WMBEJ);
488
 
 
489
 
 
490
 
    /* D(me,nf) * T2(JB,nf) --> W(me,JB) */
491
 
    dpd_buf4_init(&WmBeJ, CC_HBAR, 0, 10, 10, 10, 10, 0, "WmBeJ");
492
 
 
493
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij||ab> (ia,jb)");
494
 
    dpd_buf4_init(&tIAjb, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIAjb");
495
 
    dpd_contract444(&D, &tIAjb, &WmBeJ, 0, 0, 0.5, 1);
496
 
    dpd_buf4_close(&D);
497
 
    dpd_buf4_close(&tIAjb);
498
 
 
499
 
    /* D(me,NF) * T2(JB,NF) --> W(me,JB) */
500
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
501
 
    dpd_buf4_init(&tIAJB, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIAJB");
502
 
    dpd_contract444(&D, &tIAJB, &WmBeJ, 0, 0, 0.5, 1);
503
 
    dpd_buf4_close(&D);
504
 
    dpd_buf4_close(&tIAJB);
505
 
 
506
 
    dpd_buf4_close(&WmBeJ);
507
 
 
508
 
 
509
 
    /* D(ME,NF) * T2(jb,NF) --> W(ME,jb) */
510
 
    dpd_buf4_init(&WMbEj, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMbEj");
511
 
 
512
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij||ab> (ia,jb)");
513
 
    dpd_buf4_init(&tiaJB, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tiaJB");
514
 
    dpd_contract444(&D, &tiaJB, &WMbEj, 0, 0, 0.5, 1);
515
 
    dpd_buf4_close(&D);
516
 
    dpd_buf4_close(&tiaJB);
517
 
 
518
 
    /* D(ME,nf) * T2(jb,nf) --> W(ME,jb) */
519
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
520
 
    dpd_buf4_init(&tiajb, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tiajb");
521
 
    dpd_contract444(&D, &tiajb, &WMbEj, 0, 0, 0.5, 1);
522
 
    dpd_buf4_close(&D);
523
 
    dpd_buf4_close(&tiajb);
524
 
 
525
 
    dpd_buf4_close(&WMbEj);
526
 
 
527
 
 
528
 
    /* D(mE,Nf) * T2(jB,Nf) --> W(mE,jB) */
529
 
    dpd_buf4_init(&WmBEj, CC_HBAR, 0, 10, 10, 10, 10, 0, "WmBEj");
530
 
 
531
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ib,ja)");
532
 
    dpd_buf4_init(&tjAIb, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tjAIb");
533
 
    dpd_contract444(&D, &tjAIb, &WmBEj, 0, 0, 0.5, 1);
534
 
    dpd_buf4_close(&D);
535
 
    dpd_buf4_close(&tjAIb);
536
 
 
537
 
    dpd_buf4_close(&WmBEj);
538
 
 
539
 
 
540
 
    /* D(Me,nF) * T2(Jb,nF) --> W(Me,Jb) */
541
 
    dpd_buf4_init(&WMbeJ, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMbeJ");
542
 
 
543
 
    dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ib,ja)");
544
 
    dpd_buf4_init(&tIbjA, CC_TAMPS, 0, 10, 10, 10, 10, 0, "tIbjA");
545
 
    dpd_contract444(&D, &tIbjA, &WMbeJ, 0, 0, 0.5, 1);
546
 
    dpd_buf4_close(&D);
547
 
    dpd_buf4_close(&tIbjA);
548
 
 
549
 
    dpd_buf4_close(&WMbeJ);
550
 
 
551
 
  } /** RHF or ROHF **/
552
 
  else if(params.ref == 2) { /** UHF **/
553
 
 
554
 
    /* W(mb,je) <-- <mb||ej> */
555
 
 
556
 
    dpd_buf4_init(&C, CC_CINTS, 0, 20, 21, 20, 21, 0, "C <IA||JB> (IA,BJ)");
557
 
    dpd_buf4_scmcopy(&C, CC_TMP0, "WMBEJ", -1);
558
 
    dpd_buf4_close(&C);
559
 
 
560
 
    dpd_buf4_init(&C, CC_CINTS, 0, 30, 31, 30, 31, 0, "C <ia||jb> (ia,bj)");
561
 
    dpd_buf4_scmcopy(&C, CC_TMP0, "Wmbej", -1);
562
 
    dpd_buf4_close(&C);
563
 
 
564
 
    dpd_buf4_init(&D, CC_DINTS, 0, 24, 26, 24, 26, 0, "D <Ij|Ab> (Ib,Aj)");
565
 
    dpd_buf4_scmcopy(&D, CC_TMP0, "WMbEj", 1);
566
 
    dpd_buf4_close(&D);
567
 
 
568
 
    dpd_buf4_init(&D, CC_DINTS, 0, 27, 25, 27, 25, 0, "D <iJ|aB> (iB,aJ)");
569
 
    dpd_buf4_scmcopy(&D, CC_TMP0, "WmBeJ", 1);
570
 
    dpd_buf4_close(&D);
571
 
 
572
 
    dpd_buf4_init(&C, CC_CINTS, 0, 27, 27, 27, 27, 0, "C <iA|jB>");
573
 
    dpd_buf4_scmcopy(&C, CC_TMP0, "WmBEj", -1);
574
 
    dpd_buf4_close(&C);
575
 
 
576
 
    dpd_buf4_init(&C, CC_CINTS, 0, 24, 24, 24, 24, 0, "C <Ia|Jb>");
577
 
    dpd_buf4_scmcopy(&C, CC_TMP0, "WMbeJ", -1);
578
 
    dpd_buf4_close(&C);
579
 
 
580
 
    /* F -> Wmbej */
581
 
 
582
 
    dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
583
 
    dpd_file2_init(&tia, CC_OEI, 0, 2, 3, "tia");
584
 
 
585
 
    dpd_buf4_init(&W, CC_TMP0, 0, 20, 21, 20, 21, 0, "WMBEJ");
586
 
    dpd_buf4_init(&F, CC_FINTS, 0, 20, 5, 20, 5, 1, "F <IA|BC>");
587
 
    dpd_contract424(&F, &tIA, &W, 3, 1, 0, 1, 1);
588
 
    dpd_buf4_close(&F);
589
 
    dpd_buf4_close(&W);
590
 
 
591
 
    dpd_buf4_init(&W, CC_TMP0, 0, 30, 31, 30, 31, 0, "Wmbej");
592
 
    dpd_buf4_init(&F, CC_FINTS, 0, 30, 15, 30, 15, 1, "F <ia|bc>");
593
 
    dpd_contract424(&F, &tia, &W, 3, 1, 0, 1, 1);
594
 
    dpd_buf4_close(&F);
595
 
    dpd_buf4_close(&W);
596
 
 
597
 
    dpd_buf4_init(&W, CC_TMP0, 0, 24, 26, 24, 26, 0, "WMbEj");
598
 
    dpd_buf4_init(&F, CC_FINTS, 0, 24, 28, 24, 28, 0, "F <Ia|Bc>");
599
 
    dpd_contract424(&F, &tia, &W, 3, 1, 0, 1, 1);
600
 
    dpd_buf4_close(&F);
601
 
    dpd_buf4_close(&W);
602
 
 
603
 
    dpd_buf4_init(&W, CC_TMP0, 0, 27, 25, 27, 25, 0, "WmBeJ");
604
 
    dpd_buf4_init(&F, CC_FINTS, 0, 27, 29, 27, 29, 0, "F <iA|bC>");
605
 
    dpd_contract424(&F, &tIA, &W, 3, 1, 0, 1, 1);
606
 
    dpd_buf4_close(&F);
607
 
    dpd_buf4_close(&W);
608
 
 
609
 
    dpd_buf4_init(&W, CC_TMP0, 0, 24, 24, 24, 24, 0, "WMbeJ");
610
 
    dpd_buf4_init(&F, CC_FINTS, 0, 24, 28, 24, 28, 0, "F <Ia|Bc>");
611
 
    dpd_contract244(&tIA, &F, &W, 1, 2, 1, -1, 1);
612
 
    dpd_buf4_close(&F);
613
 
    dpd_buf4_close(&W);
614
 
 
615
 
    dpd_buf4_init(&W, CC_TMP0, 0, 27, 27, 27, 27, 0, "WmBEj");
616
 
    dpd_buf4_init(&F, CC_FINTS, 0, 27, 29, 27, 29, 0, "F <iA|bC>");
617
 
    dpd_contract244(&tia, &F, &W, 1, 2, 1, -1, 1);
618
 
    dpd_buf4_close(&F);
619
 
    dpd_buf4_close(&W);
620
 
 
621
 
    dpd_file2_close(&tIA);
622
 
    dpd_file2_close(&tia);
623
 
 
624
 
    /* E -> Wmbej */
625
 
 
626
 
    dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
627
 
    dpd_file2_init(&tia, CC_OEI, 0, 2, 3, "tia");
628
 
 
629
 
    dpd_buf4_init(&W, CC_TMP0, 0, 20, 21, 20, 21, 0, "WMBEJ");
630
 
    dpd_buf4_init(&E, CC_EINTS, 0, 0, 21, 2, 21, 0, "E <IJ||KA> (I>J,AK)");
631
 
    dpd_contract424(&E, &tIA, &W, 1, 0, 1, 1, 1);
632
 
    dpd_buf4_close(&E);
633
 
    dpd_buf4_close(&W);
634
 
 
635
 
    dpd_buf4_init(&W, CC_TMP0, 0, 30, 31, 30, 31, 0, "Wmbej");
636
 
    dpd_buf4_init(&E, CC_EINTS, 0, 10, 31, 12, 31, 0, "E <ij||ka> (i>j,ak)");
637
 
    dpd_contract424(&E, &tia, &W, 1, 0, 1, 1, 1);
638
 
    dpd_buf4_close(&E);
639
 
    dpd_buf4_close(&W);
640
 
 
641
 
    dpd_buf4_init(&W, CC_TMP0, 0, 24, 26, 24, 26, 0, "WMbEj");
642
 
    dpd_buf4_init(&E, CC_EINTS, 0, 22, 26, 22, 26, 0, "E <Ij|Ak>");
643
 
    dpd_contract424(&E, &tia, &W, 1, 0, 1, -1, 1);
644
 
    dpd_buf4_close(&E);
645
 
    dpd_buf4_close(&W);
646
 
 
647
 
    dpd_buf4_init(&W, CC_TMP0, 0, 27, 25, 27, 25, 0, "WmBeJ");
648
 
    dpd_buf4_init(&E, CC_EINTS, 0, 23, 25, 23, 25, 0, "E <iJ|aK>");
649
 
    dpd_contract424(&E, &tIA, &W, 1, 0, 1, -1, 1);
650
 
    dpd_buf4_close(&E);
651
 
    dpd_buf4_close(&W);
652
 
 
653
 
    dpd_buf4_init(&W, CC_TMP0, 0, 24, 24, 24, 24, 0, "WMbeJ");
654
 
    dpd_buf4_init(&E, CC_EINTS, 0, 22, 24, 22, 24, 0, "E <Ij|Ka>");
655
 
    dpd_contract424(&E, &tia, &W, 1, 0, 1, 1, 1);
656
 
    dpd_buf4_close(&E);
657
 
    dpd_buf4_close(&W);
658
 
 
659
 
    dpd_buf4_init(&W, CC_TMP0, 0, 27, 27, 27, 27, 0, "WmBEj");
660
 
    dpd_buf4_init(&E, CC_EINTS, 0, 23, 27, 23, 27, 0, "E <iJ|kA>");
661
 
    dpd_contract424(&E, &tIA, &W, 1, 0, 1, 1, 1);
662
 
    dpd_buf4_close(&E);
663
 
    dpd_buf4_close(&W);
664
 
 
665
 
    dpd_file2_close(&tIA);  
666
 
    dpd_file2_close(&tia);
667
 
 
668
 
    /* Convert to (ME,JB) for remaining terms */
669
 
 
670
 
    dpd_buf4_init(&W, CC_TMP0, 0, 20, 21, 20, 21, 0, "WMBEJ");
671
 
    dpd_buf4_sort(&W, CC_HBAR, prsq, 20, 20, "WMBEJ");
672
 
    dpd_buf4_close(&W);
673
 
 
674
 
    dpd_buf4_init(&W, CC_TMP0, 0, 30, 31, 30, 31, 0, "Wmbej");
675
 
    dpd_buf4_sort(&W, CC_HBAR, prsq, 30, 30, "Wmbej");
676
 
    dpd_buf4_close(&W);
677
 
 
678
 
    dpd_buf4_init(&W, CC_TMP0, 0, 24, 26, 24, 26, 0, "WMbEj");
679
 
    dpd_buf4_sort(&W, CC_HBAR, prsq, 20, 30, "WMbEj");
680
 
    dpd_buf4_close(&W);
681
 
 
682
 
    dpd_buf4_init(&W, CC_TMP0, 0, 27, 25, 27, 25, 0, "WmBeJ");
683
 
    dpd_buf4_sort(&W, CC_HBAR, prsq, 30, 20, "WmBeJ");
684
 
    dpd_buf4_close(&W);
685
 
 
686
 
    dpd_buf4_init(&W, CC_TMP0, 0, 24, 24, 24, 24, 0, "WMbeJ");
687
 
    dpd_buf4_sort(&W, CC_HBAR, psrq, 24, 24, "WMbeJ");
688
 
    dpd_buf4_close(&W);
689
 
 
690
 
    dpd_buf4_init(&W, CC_TMP0, 0, 27, 27, 27, 27, 0, "WmBEj");
691
 
    dpd_buf4_sort(&W, CC_HBAR, psrq, 27, 27, "WmBEj");
692
 
    dpd_buf4_close(&W);
693
 
 
694
 
    /* X -> Wmbej */
695
 
 
696
 
    dpd_file2_init(&tIA, CC_OEI, 0, 0, 1, "tIA");
697
 
    dpd_file2_init(&tia, CC_OEI, 0, 2, 3, "tia");
698
 
 
699
 
    /*** AAAA ***/
700
 
 
701
 
    dpd_buf4_init(&W, CC_HBAR, 0, 20, 20, 20, 20, 0, "WMBEJ");
702
 
    dpd_buf4_init(&D, CC_DINTS, 0, 20, 20, 20, 20, 0, "D <IJ||AB> (IA,JB)");
703
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 20, 20, 20, 20, 0, "tIAJB");
704
 
    dpd_contract444(&D, &t2, &W, 0, 0, 0.5, 1);
705
 
    dpd_buf4_close(&t2);
706
 
    dpd_buf4_close(&D);
707
 
    dpd_buf4_init(&D, CC_DINTS, 0, 20, 30, 20, 30, 0, "D <Ij|Ab> (IA,jb)");
708
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 20, 30, 20, 30, 0, "tIAjb");
709
 
    dpd_contract444(&D, &t2, &W, 0, 0, 0.5, 1);
710
 
    dpd_buf4_close(&t2);
711
 
    dpd_buf4_close(&D);
712
 
    dpd_buf4_close(&W);
713
 
 
714
 
    dpd_buf4_init(&Y, CC_TMP0, 0, 20, 0, 20, 0, 0, "Y (ME,JN)");
715
 
    dpd_buf4_init(&D, CC_DINTS, 0, 20, 21, 20, 21, 0, "D <IJ||AB> (IA,BJ)");
716
 
    dpd_contract244(&tIA, &D, &Y, 1, 2, 1, 1, 0);
717
 
    dpd_buf4_close(&D);
718
 
    dpd_buf4_init(&W, CC_HBAR, 0, 20, 20, 20, 20, 0, "WMBEJ");
719
 
    dpd_contract424(&Y, &tIA, &W, 3, 0, 0, -1, 1);
720
 
    dpd_buf4_close(&W);
721
 
    dpd_buf4_close(&Y);
722
 
 
723
 
    /*** BBBB ***/
724
 
 
725
 
    dpd_buf4_init(&W, CC_HBAR, 0, 30, 30, 30, 30, 0, "Wmbej");
726
 
    dpd_buf4_init(&D, CC_DINTS, 0, 30, 30, 30, 30, 0, "D <ij||ab> (ia,jb)");
727
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 30, 30, 30, 30, 0, "tiajb");
728
 
    dpd_contract444(&D, &t2, &W, 0, 0, 0.5, 1);
729
 
    dpd_buf4_close(&t2);
730
 
    dpd_buf4_close(&D);
731
 
    dpd_buf4_init(&D, CC_DINTS, 0, 30, 20, 30, 20, 0, "D <Ij|Ab> (ia,JB)");
732
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 30, 20, 30, 20, 0, "tiaJB");
733
 
    dpd_contract444(&D, &t2, &W, 0, 0, 0.5, 1);
734
 
    dpd_buf4_close(&t2);
735
 
    dpd_buf4_close(&D);
736
 
    dpd_buf4_close(&W);
737
 
 
738
 
    dpd_buf4_init(&Y, CC_TMP0, 0, 30, 10, 30, 10, 0, "Y (me,jn)");
739
 
    dpd_buf4_init(&D, CC_DINTS, 0, 30, 31, 30, 31, 0, "D <ij||ab> (ia,bj)");
740
 
    dpd_contract244(&tia, &D, &Y, 1, 2, 1, 1, 0);
741
 
    dpd_buf4_close(&D);
742
 
    dpd_buf4_init(&W, CC_HBAR, 0, 30, 30, 30, 30, 0, "Wmbej");
743
 
    dpd_contract424(&Y, &tia, &W, 3, 0, 0, -1, 1);
744
 
    dpd_buf4_close(&W);
745
 
    dpd_buf4_close(&Y);
746
 
 
747
 
    /*** ABAB ***/
748
 
 
749
 
    dpd_buf4_init(&W, CC_HBAR, 0, 20, 30, 20, 30, 0, "WMbEj");
750
 
    dpd_buf4_init(&D, CC_DINTS, 0, 20, 30, 20, 30, 0, "D <Ij|Ab> (IA,jb)");
751
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 30, 30, 30, 30, 0, "tiajb");
752
 
    dpd_contract444(&D, &t2, &W, 0, 0, 0.5, 1);
753
 
    dpd_buf4_close(&t2);
754
 
    dpd_buf4_close(&D);
755
 
    dpd_buf4_init(&D, CC_DINTS, 0, 20, 20, 20, 20, 0, "D <IJ||AB> (IA,JB)");
756
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 30, 20, 30, 20, 0, "tiaJB");
757
 
    dpd_contract444(&D, &t2, &W, 0, 0, 0.5, 1); 
758
 
    dpd_buf4_close(&t2);
759
 
    dpd_buf4_close(&D);
760
 
    dpd_buf4_close(&W);
761
 
 
762
 
    dpd_buf4_init(&Y, CC_TMP0, 0, 20, 10, 20, 10, 0, "Y (ME,jn)");
763
 
    dpd_buf4_init(&D, CC_DINTS, 0, 20, 31, 20, 31, 0, "D <Ij|Ab> (IA,bj)");
764
 
    dpd_contract244(&tia, &D, &Y, 1, 2, 1, 1, 0);
765
 
    dpd_buf4_close(&D);
766
 
    dpd_buf4_init(&W, CC_HBAR, 0, 20, 30, 20, 30, 0, "WMbEj");
767
 
    dpd_contract424(&Y, &tia, &W, 3, 0, 0, -1, 1);
768
 
    dpd_buf4_close(&W);
769
 
    dpd_buf4_close(&Y);
770
 
 
771
 
    /*** BABA ***/
772
 
 
773
 
    dpd_buf4_init(&W, CC_HBAR, 0, 30, 20, 30, 20, 0, "WmBeJ");
774
 
    dpd_buf4_init(&D, CC_DINTS, 0, 30, 20, 30, 20, 0, "D <Ij|Ab> (ia,JB)");
775
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 20, 20, 20, 20, 0, "tIAJB");
776
 
    dpd_contract444(&D, &t2, &W, 0, 0, 0.5, 1);
777
 
    dpd_buf4_close(&t2);
778
 
    dpd_buf4_close(&D);
779
 
    dpd_buf4_init(&D, CC_DINTS, 0, 30, 30, 30, 30, 0, "D <ij||ab> (ia,jb)");
780
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 20, 30, 20, 30, 0, "tIAjb");
781
 
    dpd_contract444(&D, &t2, &W, 0, 0, 0.5, 1); 
782
 
    dpd_buf4_close(&t2);
783
 
    dpd_buf4_close(&D);
784
 
    dpd_buf4_close(&W);
785
 
 
786
 
    dpd_buf4_init(&Y, CC_TMP0, 0, 30, 0, 30, 0, 0, "Y (me,JN)");
787
 
    dpd_buf4_init(&D, CC_DINTS, 0, 30, 21, 30, 21, 0, "D <Ij|Ab> (ia,BJ)");
788
 
    dpd_contract244(&tIA, &D, &Y, 1, 2, 1, 1, 0);
789
 
    dpd_buf4_close(&D);
790
 
    dpd_buf4_init(&W, CC_HBAR, 0, 30, 20, 30, 20, 0, "WmBeJ");
791
 
    dpd_contract424(&Y, &tIA, &W, 3, 0, 0, -1, 1);
792
 
    dpd_buf4_close(&W);
793
 
    dpd_buf4_close(&Y);
794
 
 
795
 
    /*** ABBA ***/
796
 
  
797
 
    dpd_buf4_init(&W, CC_HBAR, 0, 24, 24, 24, 24, 0, "WMbeJ");
798
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 24, 27, 24, 27, 0, "tIbjA");
799
 
    dpd_buf4_init(&D, CC_DINTS, 0, 24, 27, 24, 27, 0, "D <Ij|Ab> (Ib,jA)");
800
 
    dpd_contract444(&D, &t2, &W, 0, 0, 0.5, 1);
801
 
    dpd_buf4_close(&D);
802
 
    dpd_buf4_close(&t2);
803
 
    dpd_buf4_close(&W);
804
 
 
805
 
    dpd_buf4_init(&Y, CC_TMP0, 0, 24, 22, 24, 22, 0, "Y (Me,Jn)");
806
 
    dpd_buf4_init(&D, CC_DINTS, 0, 24, 26, 24, 26, 0, "D <Ij|Ab> (Ib,Aj)");
807
 
    dpd_contract244(&tIA, &D, &Y, 1, 2, 1, 1, 0);
808
 
    dpd_buf4_close(&D);
809
 
    dpd_buf4_init(&W, CC_HBAR, 0, 24, 24, 24, 24, 0, "WMbeJ");
810
 
    dpd_contract424(&Y, &tia, &W, 3, 0, 0, 1, 1);
811
 
    dpd_buf4_close(&W);
812
 
    dpd_buf4_close(&Y);
813
 
 
814
 
    /*** BAAB ***/
815
 
  
816
 
    dpd_buf4_init(&W, CC_HBAR, 0, 27, 27, 27, 27, 0, "WmBEj");
817
 
    dpd_buf4_init(&t2, CC_TAMPS, 0, 27, 24, 27, 24, 0, "tiBJa");
818
 
    dpd_buf4_init(&D, CC_DINTS, 0, 27, 24, 27, 24, 0, "D <iJ|aB> (iB,Ja)");
819
 
    dpd_contract444(&D, &t2, &W, 0, 0, 0.5, 1);
820
 
    dpd_buf4_close(&D);
821
 
    dpd_buf4_close(&t2);
822
 
    dpd_buf4_close(&W);
823
 
 
824
 
    dpd_buf4_init(&Y, CC_TMP0, 0, 27, 23, 27, 23, 0, "Y (mE,jN)");
825
 
    dpd_buf4_init(&D, CC_DINTS, 0, 27, 25, 27, 25, 0, "D <iJ|aB> (iB,aJ)");
826
 
    dpd_contract244(&tia, &D, &Y, 1, 2, 1, 1, 0);
827
 
    dpd_buf4_close(&D);
828
 
    dpd_buf4_init(&W, CC_HBAR, 0, 27, 27, 27, 27, 0, "WmBEj");
829
 
    dpd_contract424(&Y, &tIA, &W, 3, 0, 0, 1, 1);
830
 
    dpd_buf4_close(&W);
831
 
    dpd_buf4_close(&Y);
832
 
 
833
 
    dpd_file2_close(&tIA);
834
 
    dpd_file2_close(&tia);
835
 
 
836
 
    /* D(me,nf) * T2(jb,nf) --> W(me,jb) */
837
 
    dpd_buf4_init(&Wmbej, CC_HBAR, 0, 30, 30, 30, 30, 0, "Wmbej");
838
 
 
839
 
    dpd_buf4_init(&D, CC_DINTS, 0, 30, 30, 30, 30, 0, "D <ij||ab> (ia,jb)");
840
 
    dpd_buf4_init(&tiajb, CC_TAMPS, 0, 30, 30, 30, 30, 0, "tiajb");
841
 
    dpd_contract444(&D, &tiajb, &Wmbej, 0, 0, 0.5, 1);
842
 
    dpd_buf4_close(&D);
843
 
    dpd_buf4_close(&tiajb);
844
 
 
845
 
    /* D(me,NF) * T2(jb,NF) --> W(me,jb) */
846
 
    dpd_buf4_init(&tiaJB, CC_TAMPS, 0, 30, 20, 30, 20, 0, "tiaJB");
847
 
    dpd_buf4_init(&D, CC_DINTS, 0, 30, 20, 30, 20, 0, "D <Ij|Ab> (ia,JB)");
848
 
    dpd_contract444(&D, &tiaJB, &Wmbej, 0, 0, 0.5, 1);
849
 
    dpd_buf4_close(&D);
850
 
    dpd_buf4_close(&tiaJB);
851
 
 
852
 
    dpd_buf4_close(&Wmbej);
853
 
 
854
 
 
855
 
    /* D(ME,NF) * T2(JB,NF) --> W(ME,JB) */
856
 
    dpd_buf4_init(&WMBEJ, CC_HBAR, 0, 20, 20, 20, 20, 0, "WMBEJ");
857
 
 
858
 
    dpd_buf4_init(&D, CC_DINTS, 0, 20, 20, 20, 20, 0, "D <IJ||AB> (IA,JB)");
859
 
    dpd_buf4_init(&tIAJB, CC_TAMPS, 0, 20, 20, 20, 20, 0, "tIAJB");
860
 
    dpd_contract444(&D, &tIAJB, &WMBEJ, 0, 0, 0.5, 1);
861
 
    dpd_buf4_close(&D);
862
 
    dpd_buf4_close(&tIAJB);
863
 
 
864
 
    /* D(ME,nf) * T2(JB,nf) --> W(ME,JB) */
865
 
    dpd_buf4_init(&tIAjb, CC_TAMPS, 0, 20, 30, 20, 30, 0, "tIAjb");
866
 
    dpd_buf4_init(&D, CC_DINTS, 0, 20, 30, 20, 30, 0, "D <Ij|Ab> (IA,jb)");
867
 
    dpd_contract444(&D, &tIAjb, &WMBEJ, 0, 0, 0.5, 1);
868
 
    dpd_buf4_close(&D);
869
 
    dpd_buf4_close(&tIAjb);
870
 
 
871
 
    dpd_buf4_close(&WMBEJ);
872
 
 
873
 
 
874
 
    /* D(me,nf) * T2(JB,nf) --> W(me,JB) */
875
 
    dpd_buf4_init(&WmBeJ, CC_HBAR, 0, 30, 20, 30, 20, 0, "WmBeJ");
876
 
 
877
 
    dpd_buf4_init(&D, CC_DINTS, 0, 30, 30, 30, 30, 0, "D <ij||ab> (ia,jb)");
878
 
    dpd_buf4_init(&tIAjb, CC_TAMPS, 0, 20, 30, 20, 30, 0, "tIAjb");
879
 
    dpd_contract444(&D, &tIAjb, &WmBeJ, 0, 0, 0.5, 1);
880
 
    dpd_buf4_close(&D);
881
 
    dpd_buf4_close(&tIAjb);
882
 
 
883
 
    /* D(me,NF) * T2(JB,NF) --> W(me,JB) */
884
 
    dpd_buf4_init(&D, CC_DINTS, 0, 30, 20, 30, 20, 0, "D <Ij|Ab> (ia,JB)");
885
 
    dpd_buf4_init(&tIAJB, CC_TAMPS, 0, 20, 20, 20, 20, 0, "tIAJB");
886
 
    dpd_contract444(&D, &tIAJB, &WmBeJ, 0, 0, 0.5, 1);
887
 
    dpd_buf4_close(&D);
888
 
    dpd_buf4_close(&tIAJB);
889
 
 
890
 
    dpd_buf4_close(&WmBeJ);
891
 
 
892
 
 
893
 
    /* D(ME,NF) * T2(jb,NF) --> W(ME,jb) */
894
 
    dpd_buf4_init(&WMbEj, CC_HBAR, 0, 20, 30, 20, 30, 0, "WMbEj");
895
 
 
896
 
    dpd_buf4_init(&D, CC_DINTS, 0, 20, 20, 20, 20, 0, "D <IJ||AB> (IA,JB)");
897
 
    dpd_buf4_init(&tiaJB, CC_TAMPS, 0, 30, 20, 30, 20, 0, "tiaJB");
898
 
    dpd_contract444(&D, &tiaJB, &WMbEj, 0, 0, 0.5, 1);
899
 
    dpd_buf4_close(&D);
900
 
    dpd_buf4_close(&tiaJB);
901
 
 
902
 
    /* D(ME,nf) * T2(jb,nf) --> W(ME,jb) */
903
 
    dpd_buf4_init(&D, CC_DINTS, 0, 20, 30, 20, 30, 0, "D <Ij|Ab> (IA,jb)");
904
 
    dpd_buf4_init(&tiajb, CC_TAMPS, 0, 30, 30, 30, 30, 0, "tiajb");
905
 
    dpd_contract444(&D, &tiajb, &WMbEj, 0, 0, 0.5, 1);
906
 
    dpd_buf4_close(&D);
907
 
    dpd_buf4_close(&tiajb);
908
 
 
909
 
    dpd_buf4_close(&WMbEj);
910
 
 
911
 
 
912
 
    /* D(mE,Nf) * T2(jB,Nf) --> W(mE,jB) */
913
 
    dpd_buf4_init(&WmBEj, CC_HBAR, 0, 27, 27, 27, 27, 0, "WmBEj");
914
 
 
915
 
    dpd_buf4_init(&D, CC_DINTS, 0, 27, 24, 27, 24, 0, "D <iJ|aB> (iB,Ja)");
916
 
    dpd_buf4_init(&tjAIb, CC_TAMPS, 0, 27, 24, 27, 24, 0, "tjAIb");
917
 
    dpd_contract444(&D, &tjAIb, &WmBEj, 0, 0, 0.5, 1);
918
 
    dpd_buf4_close(&D);
919
 
    dpd_buf4_close(&tjAIb);
920
 
 
921
 
    dpd_buf4_close(&WmBEj);
922
 
 
923
 
 
924
 
    /* D(Me,nF) * T2(Jb,nF) --> W(Me,Jb) */
925
 
    dpd_buf4_init(&WMbeJ, CC_HBAR, 0, 24, 24, 24, 24, 0, "WMbeJ");
926
 
 
927
 
    dpd_buf4_init(&D, CC_DINTS, 0, 24, 27, 24, 27, 0, "D <Ij|Ab> (Ib,jA)");
928
 
    dpd_buf4_init(&tIbjA, CC_TAMPS, 0, 24, 27, 24, 27, 0, "tIbjA");
929
 
    dpd_contract444(&D, &tIbjA, &WMbeJ, 0, 0, 0.5, 1);
930
 
    dpd_buf4_close(&D);
931
 
    dpd_buf4_close(&tIbjA);
932
 
 
933
 
    dpd_buf4_close(&WMbeJ);
934
 
 
935
 
  } /** UHF **/
936
 
 
937
 
  return;
938
 
}
939