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

« back to all changes in this revision

Viewing changes to src/bin/ccdensity/x_Gijab_uhf.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
 
/* computes non R0 parts of EOM CCSD Gijab */
7
 
void x_Gijab_uhf_2(void);
8
 
void x_Gijab_uhf_3(void);
9
 
 
10
 
void x_Gijab_uhf(void)
11
 
{
12
 
  int h, nirreps, II;
13
 
  int R_irr, L_irr, G_irr;
14
 
  double value, tval;
15
 
  dpdfile2 T1, L1, I1, T1A, T1B, Z1, R1;
16
 
  dpdbuf4 R, I, G, L, T, V, Z, Z2;
17
 
 
18
 
  nirreps = moinfo.nirreps;
19
 
  R_irr = params.R_irr; L_irr = params.L_irr; G_irr = params.G_irr;
20
 
 
21
 
  /* term 1,2: (L*R) * Tau(IJ,AB), see comments in xi1_connected */
22
 
  if (G_irr == 0) {
23
 
    dpd_buf4_init(&T, CC_TAMPS, 0, 2, 7, 2, 7, 0, "tauIJAB");
24
 
    dpd_buf4_copy(&T, EOM_TMP0, "GIJAB");
25
 
    dpd_buf4_close(&T);
26
 
    dpd_buf4_init(&T, CC_TAMPS, 0, 12, 17, 12, 17, 0, "tauijab");
27
 
    dpd_buf4_copy(&T, EOM_TMP0, "Gijab");
28
 
    dpd_buf4_close(&T);
29
 
    dpd_buf4_init(&T, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tauIjAb");
30
 
    dpd_buf4_copy(&T, EOM_TMP0, "GIjAb");
31
 
    dpd_buf4_close(&T);
32
 
  }
33
 
  else {
34
 
    dpd_buf4_init(&G, EOM_TMP0, G_irr, 2, 7, 2, 7, 0, "GIJAB");
35
 
    dpd_buf4_scm(&G,0.0);
36
 
    dpd_buf4_close(&G);
37
 
    dpd_buf4_init(&G, EOM_TMP0, G_irr, 12, 17, 12, 17, 0, "Gijab");
38
 
    dpd_buf4_scm(&G,0.0);
39
 
    dpd_buf4_close(&G);
40
 
    dpd_buf4_init(&G, EOM_TMP0, G_irr, 22, 28, 22, 28, 0, "GIjAb");
41
 
    dpd_buf4_scm(&G,0.0);
42
 
    dpd_buf4_close(&G);
43
 
  }
44
 
 
45
 
  /* -P(ij) LR_OO(M,I) Tau(MJ,AB); terms 4,5,8,9 */
46
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 0, 7, 0, 7, 0, "Z(IJ,A>B)");
47
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 0, "LR_OO");
48
 
  dpd_file2_init(&Z1, EOM_TMP1, G_irr, 0, 0, "Z(N,I)");
49
 
  dpd_file2_axpy(&I1, &Z1, 1.0, 0);
50
 
  dpd_file2_close(&I1);
51
 
  /* -P(ij) L2R1_OV(M,F) T(I,F) Tau(MJ,AB); terms 35, 36 */
52
 
  if (!params.connect_xi) {
53
 
    dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_OV");
54
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
55
 
    dpd_contract222(&I1, &T1, &Z1, 0, 0, 1.0, 1.0);
56
 
    dpd_file2_close(&T1);
57
 
    dpd_file2_close(&I1);
58
 
  }
59
 
  dpd_buf4_init(&T, CC_TAMPS, 0, 0, 7, 2, 7, 0, "tauIJAB");
60
 
  dpd_contract244(&Z1, &T, &Z, 0, 0, 0, 1.0, 0.0);
61
 
  dpd_file2_close(&Z1);
62
 
  dpd_buf4_close(&T);
63
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 0, 7, 2, 7, 0, "GIJAB");
64
 
  dpd_buf4_axpy(&Z, &G, -1.0);
65
 
  dpd_buf4_sort(&Z, EOM_TMP1, qprs, 0, 7, "Z(JI,A>B)");
66
 
  dpd_buf4_close(&Z);
67
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 0, 7, 0, 7, 0, "Z(JI,A>B)");
68
 
  dpd_buf4_axpy(&Z, &G, 1.0);
69
 
  dpd_buf4_close(&Z);
70
 
  dpd_buf4_close(&G);
71
 
 
72
 
  /* -P(ij) LR_oo(m,i) Tau(mj,ab); terms 4,5,8,9 */
73
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 17, 10, 17, 0, "Z(ij,a>b)");
74
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 2, 2, "LR_oo");
75
 
  dpd_file2_init(&Z1, EOM_TMP1, G_irr, 2, 2, "Z(n,i)");
76
 
  dpd_file2_axpy(&I1, &Z1, 1.0, 0);
77
 
  dpd_file2_close(&I1);
78
 
  /* -P(ij) L2R1_ov(m,f) T(i,f) Tau(mj,ab); terms 35, 36 */
79
 
  if (!params.connect_xi) {
80
 
    dpd_file2_init(&I1, EOM_TMP, G_irr, 2, 3, "L2R1_ov");
81
 
    dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
82
 
    dpd_contract222(&I1, &T1, &Z1, 0, 0, 1.0, 1.0);
83
 
    dpd_file2_close(&T1);
84
 
    dpd_file2_close(&I1);
85
 
  }
86
 
  dpd_buf4_init(&T, CC_TAMPS, 0, 10, 17, 12, 17, 0, "tauijab");
87
 
  dpd_contract244(&Z1, &T, &Z, 0, 0, 0, 1.0, 0.0);
88
 
  dpd_file2_close(&Z1);
89
 
  dpd_buf4_close(&T);
90
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 10, 17, 12, 17, 0, "Gijab");
91
 
  dpd_buf4_axpy(&Z, &G, -1.0);
92
 
  dpd_buf4_sort(&Z, EOM_TMP1, qprs, 10, 17, "Z(ji,a>b)");
93
 
  dpd_buf4_close(&Z);
94
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 17, 10, 17, 0, "Z(ji,a>b)");
95
 
  dpd_buf4_axpy(&Z, &G, 1.0);
96
 
  dpd_buf4_close(&Z);
97
 
  dpd_buf4_close(&G);
98
 
  psio_close(EOM_TMP1, 0);
99
 
  psio_open(EOM_TMP1,PSIO_OPEN_NEW);
100
 
 
101
 
  /* GIjAb += -P(Ij) LR_OO(M,I) Tau(Mj,Ab); terms 4,5,8,9 */
102
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 22, 28, 22, 28, 0, "GIjAb");
103
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 0, "LR_OO");
104
 
  dpd_file2_init(&Z1, EOM_TMP1, G_irr, 0, 0, "Z(N,I)");
105
 
  dpd_file2_axpy(&I1, &Z1, 1.0, 0);
106
 
  dpd_file2_close(&I1);
107
 
  /* -P(Ij) L2R1_OV(M,F) T(I,F) Tau(Nm,Ab); terms 35, 36 */
108
 
  if (!params.connect_xi) {
109
 
    dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_OV");
110
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
111
 
    dpd_contract222(&I1, &T1, &Z1, 0, 0, 1.0, 1.0);
112
 
    dpd_file2_close(&T1);
113
 
    dpd_file2_close(&I1);
114
 
  }
115
 
  dpd_buf4_init(&T, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tauIjAb");
116
 
  dpd_contract244(&Z1, &T, &G, 0, 0, 0, -1.0, 1.0);
117
 
  dpd_file2_close(&Z1);
118
 
  dpd_buf4_close(&T);
119
 
 
120
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 23, 29, 23, 29, 0, "Z(jI,bA)");
121
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 2, 2, "LR_oo");
122
 
  dpd_file2_init(&Z1, EOM_TMP1, G_irr, 2, 2, "Z(n,i)");
123
 
  dpd_file2_axpy(&I1, &Z1, 1.0, 0);
124
 
  dpd_file2_close(&I1);
125
 
  if (!params.connect_xi) {
126
 
    dpd_file2_init(&I1, EOM_TMP, G_irr, 2, 3, "L2R1_ov");
127
 
    dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
128
 
    dpd_contract222(&I1, &T1, &Z1, 0, 0, 1.0, 1.0);
129
 
    dpd_file2_close(&T1);
130
 
    dpd_file2_close(&I1);
131
 
  }
132
 
  dpd_buf4_init(&T, CC_TAMPS, 0, 23, 29, 23, 29, 0, "tauiJaB");
133
 
  dpd_contract244(&Z1, &T, &Z, 0, 0, 0, 1.0, 0.0);
134
 
  dpd_file2_close(&Z1);
135
 
  dpd_buf4_close(&T);
136
 
  dpd_buf4_sort(&Z, EOM_TMP1, qpsr, 22, 28, "Z(Ij,Ab)");
137
 
  dpd_buf4_close(&Z);
138
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 22, 28, 22, 28, 0, "Z(Ij,Ab)");
139
 
  dpd_buf4_axpy(&Z, &G, -1.0);
140
 
  dpd_buf4_close(&G);
141
 
 
142
 
  psio_close(EOM_TMP1,0);
143
 
  psio_open(EOM_TMP1,PSIO_OPEN_NEW);
144
 
 
145
 
  /* -P(ab) LR_VV(F,A) Tau(IJ,FB); terms 6,7,10,11 */
146
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 2, 5, 2, 5, 0, "Z(I>J,AB)");
147
 
  dpd_buf4_init(&T, CC_TAMPS, 0, 2, 5, 2, 7, 0, "tauIJAB");
148
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 1, 1, "LR_VV");
149
 
  dpd_contract244(&I1, &T, &Z, 0, 2, 1, 1.0, 0.0);
150
 
  dpd_file2_close(&I1);
151
 
  dpd_buf4_close(&T);
152
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 2, 5, 2, 7, 0, "GIJAB");
153
 
  dpd_buf4_axpy(&Z, &G, -1.0);
154
 
  dpd_buf4_sort(&Z, EOM_TMP1, pqsr, 2, 5, "Z(I>J,BA)");
155
 
  dpd_buf4_close(&Z);
156
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 2, 5, 2, 5, 0, "Z(I>J,BA)");
157
 
  dpd_buf4_axpy(&Z, &G, 1.0);
158
 
  dpd_buf4_close(&Z);
159
 
  dpd_buf4_close(&G);
160
 
  /* -P(ab) LR_vv(f,a) Tau(ij,fb); */
161
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 12, 15, 12, 15, 0, "Z(i>j,ab)");
162
 
  dpd_buf4_init(&T, CC_TAMPS, 0, 12, 15, 12, 17, 0, "tauijab");
163
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 3, 3, "LR_vv");
164
 
  dpd_contract244(&I1, &T, &Z, 0, 2, 1, 1.0, 0.0);
165
 
  dpd_file2_close(&I1);
166
 
  dpd_buf4_close(&T);
167
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 12, 15, 12, 17, 0, "Gijab");
168
 
  dpd_buf4_axpy(&Z, &G, -1.0);
169
 
  dpd_buf4_sort(&Z, EOM_TMP1, pqsr, 12, 15, "Z(i>j,ba)");
170
 
  dpd_buf4_close(&Z);
171
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 12, 15, 12, 15, 0, "Z(i>j,ba)");
172
 
  dpd_buf4_axpy(&Z, &G, 1.0);
173
 
  dpd_buf4_close(&Z);
174
 
  dpd_buf4_close(&G);
175
 
  /* GIjAb += - LR_VV(F,A) Tau(Ij,Fb) + LR_VV(f,a) Tau(Ij,fA) */
176
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 22, 28, 22, 28, 0, "GIjAb");
177
 
  dpd_buf4_init(&T, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tauIjAb");
178
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 1, 1, "LR_VV");
179
 
  dpd_contract244(&I1, &T, &G, 0, 2, 1, -1.0, 1.0);
180
 
  dpd_file2_close(&I1);
181
 
  dpd_buf4_close(&T);
182
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 22, 29, 22, 29, 0, "Z(Ij,bA)");
183
 
  dpd_buf4_init(&T, CC_TAMPS, 0, 22, 29, 22, 29, 0, "tauIjbA");
184
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 3, 3, "LR_vv");
185
 
  dpd_contract244(&I1, &T, &Z, 0, 2, 1, 1.0, 0.0);
186
 
  dpd_file2_close(&I1);
187
 
  dpd_buf4_close(&T);
188
 
  dpd_buf4_sort(&Z, EOM_TMP1, pqsr, 22, 28, "Z(Ij,Ab)");
189
 
  dpd_buf4_close(&Z);
190
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 22, 28, 22, 28, 0, "Z(Ij,Ab)");
191
 
  dpd_buf4_axpy(&Z, &G, -1.0);
192
 
  dpd_buf4_close(&G);
193
 
 
194
 
  psio_close(EOM_TMP1,0);
195
 
  psio_open(EOM_TMP1,PSIO_OPEN_NEW);
196
 
 
197
 
  /* + 1/4 Lmnef Rmnab Tau_ijef, terms 13, 15 */
198
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 2, 7, 2, 7, 0, "GIJAB");
199
 
  dpd_buf4_init(&I, EOM_TMP, L_irr, 2, 2, 2, 2, 0, "Tau2L2_OOOO");
200
 
  dpd_buf4_init(&R, CC_GR, R_irr, 2, 7, 2, 7, 0, "RIJAB");
201
 
  dpd_contract444(&I, &R, &G, 0, 1, 1.0, 1.0);
202
 
  dpd_buf4_close(&R);
203
 
  dpd_buf4_close(&I);
204
 
  dpd_buf4_close(&G);
205
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 12, 17, 12, 17, 0, "Gijab");
206
 
  dpd_buf4_init(&I, EOM_TMP, L_irr, 12, 12, 12, 12, 0, "Tau2L2_oooo");
207
 
  dpd_buf4_init(&R, CC_GR, R_irr, 12, 17, 12, 17, 0, "Rijab");
208
 
  dpd_contract444(&I, &R, &G, 0, 1, 1.0, 1.0);
209
 
  dpd_buf4_close(&R);
210
 
  dpd_buf4_close(&I);
211
 
  dpd_buf4_close(&G);
212
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 22, 28, 22, 28, 0, "GIjAb");
213
 
  dpd_buf4_init(&I, EOM_TMP, L_irr, 22, 22, 22, 22, 0, "Tau2L2_OoOo");
214
 
  dpd_buf4_init(&R, CC_GR, R_irr, 22, 28, 22, 28, 0, "RIjAb");
215
 
  dpd_contract444(&I, &R, &G, 0, 1, 1.0, 1.0);
216
 
  dpd_buf4_close(&R);
217
 
  dpd_buf4_close(&I);
218
 
  dpd_buf4_close(&G);
219
 
 
220
 
  /* - 0.5 P(ij) (Lmnfe Rie) Tjf (taumnab), terms 24, 26 */
221
 
  /* + 1/4 Lmnef Rijef Tau_mnab, terms 12, 14 */
222
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 0, 2, 0, 2, 0, "Z(IJ,M>N)");
223
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 2, 20, 2, 20, 0, "L2R1_OOVO(pqsr)");
224
 
  dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
225
 
  dpd_contract424(&I, &T1, &Z, 3, 1, 1, 1.0, 0.0);
226
 
  dpd_file2_close(&T1);
227
 
  dpd_buf4_close(&I);
228
 
  /* add terms 12, 14 */
229
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 0, 2, 2, 2, 0, "R2L2_OOOO");
230
 
  dpd_buf4_axpy(&I, &Z, -0.5);
231
 
  dpd_buf4_close(&I);
232
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 7, 0, 7, 0, "Z(IJ,A>B)");
233
 
  dpd_buf4_init(&T, CC_TAMPS, 0, 2, 7, 2, 7, 0, "tauIJAB");
234
 
  dpd_contract444(&Z, &T, &Z2, 0, 1, 1.0, 0.0);
235
 
  dpd_buf4_close(&T);
236
 
  dpd_buf4_close(&Z);
237
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 0, 7, 2, 7, 0, "GIJAB");
238
 
  dpd_buf4_axpy(&Z2, &G, -1.0);
239
 
  dpd_buf4_sort(&Z2, EOM_TMP1, qprs, 0, 7, "Z(JI,A>B)");
240
 
  dpd_buf4_close(&Z2);
241
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 7, 0, 7, 0, "Z(JI,A>B)");
242
 
  dpd_buf4_axpy(&Z2, &G, 1.0);
243
 
  dpd_buf4_close(&Z2);
244
 
  dpd_buf4_close(&G);
245
 
 
246
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 12, 10, 12, 0, "Z(ij,m>n)");
247
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 12, 30, 12, 30, 0, "L2R1_oovo(pqsr)");
248
 
  dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
249
 
  dpd_contract424(&I, &T1, &Z, 3, 1, 1, 1.0, 0.0);
250
 
  dpd_file2_close(&T1);
251
 
  dpd_buf4_close(&I);
252
 
  /* add terms 12, 14 */
253
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 10, 12, 12, 12, 0, "R2L2_oooo");
254
 
  dpd_buf4_axpy(&I, &Z, -0.5);
255
 
  dpd_buf4_close(&I);
256
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 17, 10, 17, 0, "Z(ij,a>b)");
257
 
  dpd_buf4_init(&T, CC_TAMPS, 0, 12, 17, 12, 17, 0, "tauijab");
258
 
  dpd_contract444(&Z, &T, &Z2, 0, 1, 1.0, 0.0);
259
 
  dpd_buf4_close(&T);
260
 
  dpd_buf4_close(&Z);
261
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 10, 17, 12, 17, 0, "Gijab");
262
 
  dpd_buf4_axpy(&Z2, &G, -1.0);
263
 
  dpd_buf4_sort(&Z2, EOM_TMP1, qprs, 10, 17, "Z(ji,a>b)");
264
 
  dpd_buf4_close(&Z2);
265
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 17, 10, 17, 0, "Z(ji,a>b)");
266
 
  dpd_buf4_axpy(&Z2, &G, 1.0);
267
 
  dpd_buf4_close(&Z2);
268
 
  dpd_buf4_close(&G);
269
 
 
270
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 22, 22, 22, 22, 0, "Z(Ij,Mn)");
271
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 22, 24, 22, 24, 0, "L2R1_OovO(pqsr)");
272
 
  dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
273
 
  dpd_contract424(&I, &T1, &Z, 3, 1, 1, 1.0, 0.0);
274
 
  dpd_file2_close(&T1);
275
 
  dpd_buf4_close(&I);
276
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 22, 26, 22, 26, 0, "L2R1_OoVo");
277
 
  dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
278
 
  dpd_contract244(&T1, &I, &Z, 1, 2, 0, 1.0, 1.0);
279
 
  dpd_file2_close(&T1);
280
 
  dpd_buf4_close(&I);
281
 
  /* add terms 12, 14 */
282
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 22, 22, 22, 22, 0, "R2L2_OoOo");
283
 
  dpd_buf4_axpy(&I, &Z, 1.0);
284
 
  dpd_buf4_close(&I);
285
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 22, 28, 22, 28, 0, "GIjAb");
286
 
  dpd_buf4_init(&T, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tauIjAb");
287
 
  dpd_contract444(&Z, &T, &G, 0, 1, 1.0, 1.0);
288
 
  dpd_buf4_close(&T);
289
 
  dpd_buf4_close(&Z);
290
 
  dpd_buf4_close(&G);
291
 
 
292
 
  psio_close(EOM_TMP1,0);
293
 
  psio_open(EOM_TMP1,PSIO_OPEN_NEW);
294
 
 
295
 
  /* + 0.5 P(AB) (tau_IJEF LMNEF) RMA TNB ; terms 25, 27 */
296
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 2, 21, 2, 21, 0, "Z(I>J,AN)");
297
 
  dpd_buf4_init(&I, EOM_TMP, L_irr, 2, 0, 2, 2, 0, "Tau2L2_OOOO");
298
 
  dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
299
 
  dpd_contract244(&R1, &I, &Z, 0, 2, 1, 1.0, 0.0);
300
 
  dpd_file2_close(&R1);
301
 
  dpd_buf4_close(&I);
302
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 2, 5, 2, 5, 0, "Z(I>J,AB)");
303
 
  dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
304
 
  dpd_contract424(&Z, &T1, &Z2, 3, 0, 0, 1.0, 0.0);
305
 
  dpd_file2_close(&T1);
306
 
  dpd_buf4_close(&Z);
307
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 2, 5, 2, 7, 0, "GIJAB");
308
 
  dpd_buf4_axpy(&Z2, &G, 1.0);
309
 
  dpd_buf4_sort(&Z2, EOM_TMP1, pqsr, 2, 5, "Z(I>J,BA)");
310
 
  dpd_buf4_close(&Z2);
311
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 2, 5, 2, 5, 0, "Z(I>J,BA)");
312
 
  dpd_buf4_axpy(&Z2, &G, -1.0);
313
 
  dpd_buf4_close(&Z2);
314
 
  dpd_buf4_close(&G);
315
 
  /* + 0.5 P(ab) (tau_ijef Lmnef) Rma Tnb ; terms 25, 27 */
316
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 12, 31, 12, 31, 0, "Z(i>j,an)");
317
 
  dpd_buf4_init(&I, EOM_TMP, L_irr, 12, 10, 12, 12, 0, "Tau2L2_oooo");
318
 
  dpd_file2_init(&R1, CC_GR, R_irr, 2, 3, "Ria");
319
 
  dpd_contract244(&R1, &I, &Z, 0, 2, 1, 1.0, 0.0);
320
 
  dpd_file2_close(&R1);
321
 
  dpd_buf4_close(&I);
322
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 12, 15, 12, 15, 0, "Z(i>j,ab)");
323
 
  dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
324
 
  dpd_contract424(&Z, &T1, &Z2, 3, 0, 0, 1.0, 0.0);
325
 
  dpd_file2_close(&T1);
326
 
  dpd_buf4_close(&Z);
327
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 12, 15, 12, 17, 0, "Gijab");
328
 
  dpd_buf4_axpy(&Z2, &G, 1.0);
329
 
  dpd_buf4_sort(&Z2, EOM_TMP1, pqsr, 12, 15, "Z(i>j,ba)");
330
 
  dpd_buf4_close(&Z2);
331
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 12, 15, 12, 15, 0, "Z(i>j,ba)");
332
 
  dpd_buf4_axpy(&Z2, &G, -1.0);
333
 
  dpd_buf4_close(&Z2);
334
 
  dpd_buf4_close(&G);
335
 
  /* + tau_IjEf LMnEf RMA Tnb ; terms 25, 27 */
336
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 22, 26, 22, 26, 0, "Z(Ij,An)");
337
 
  dpd_buf4_init(&I, EOM_TMP, L_irr, 22, 22, 22, 22, 0, "Tau2L2_OoOo");
338
 
  dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
339
 
  dpd_contract244(&R1, &I, &Z, 0, 2, 1, 1.0, 0.0);
340
 
  dpd_file2_close(&R1);
341
 
  dpd_buf4_close(&I);
342
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 22, 28, 22, 28, 0, "GIjAb");
343
 
  dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
344
 
  dpd_contract424(&Z, &T1, &G, 3, 0, 0, 1.0, 1.0);
345
 
  dpd_file2_close(&T1);
346
 
  dpd_buf4_close(&Z);
347
 
  /* + tau_IjEf LNmEf Rmb TNA ; terms 25, 27 */
348
 
  dpd_buf4_init(&Z, EOM_TMP1, L_irr, 22, 26, 22, 26, 0, "Z2(Ij,An)");
349
 
  dpd_buf4_init(&I, EOM_TMP, L_irr, 22, 22, 22, 22, 0, "Tau2L2_OoOo");
350
 
  dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
351
 
  dpd_contract244(&T1, &I, &Z, 0, 2, 1, 1.0, 0.0);
352
 
  dpd_file2_close(&T1);
353
 
  dpd_buf4_close(&I);
354
 
  dpd_file2_init(&R1, CC_GR, R_irr, 2, 3, "Ria");
355
 
  dpd_contract424(&Z, &R1, &G, 3, 0, 0, 1.0, 1.0);
356
 
  dpd_file2_close(&R1);
357
 
  dpd_buf4_close(&G);
358
 
 
359
 
  psio_close(EOM_TMP1,0);
360
 
  psio_open(EOM_TMP1,PSIO_OPEN_NEW);
361
 
 
362
 
  /* terms combined to P(ij)P(ab) Z(i,a) T(j,b), 3,22,23,33 */
363
 
  x_Gijab_uhf_2();
364
 
 
365
 
  /* terms combined to P(ij)P(ab) Z(i,a) R(j,b), 18,32,34,19 */
366
 
  x_Gijab_uhf_3();
367
 
 
368
 
  /* -P(ij)(Lme Tie + 0.5 Lmnef Tinef) Rmjab, term 16, 30 */
369
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 0, 7, 0, 7, 0, "Z(IJ,A>B)");
370
 
  dpd_buf4_init(&R, CC_GR, R_irr, 0, 7, 2, 7, 0, "RIJAB");
371
 
  dpd_file2_init(&I1, EOM_TMP, L_irr, 0, 0, "LT_OO");
372
 
  dpd_contract244(&I1, &R, &Z, 0, 0, 0, 1.0, 0.0);
373
 
  dpd_file2_close(&I1);
374
 
  dpd_buf4_close(&R);
375
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 0, 7, 2, 7, 0, "GIJAB");
376
 
  dpd_buf4_axpy(&Z, &G, -1.0);
377
 
  dpd_buf4_sort(&Z, EOM_TMP1, qprs, 0, 7, "Z(JI,A>B)");
378
 
  dpd_buf4_close(&Z);
379
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 0, 7, 0, 7, 0, "Z(JI,A>B)");
380
 
  dpd_buf4_axpy(&Z, &G, 1.0);
381
 
  dpd_buf4_close(&Z);
382
 
  dpd_buf4_close(&G);
383
 
 
384
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 17, 10, 17, 0, "Z(ij,a>b)");
385
 
  dpd_buf4_init(&R, CC_GR, R_irr, 10, 17, 12, 17, 0, "Rijab");
386
 
  dpd_file2_init(&I1, EOM_TMP, L_irr, 2, 2, "LT_oo");
387
 
  dpd_contract244(&I1, &R, &Z, 0, 0, 0, 1.0, 0.0);
388
 
  dpd_file2_close(&I1);
389
 
  dpd_buf4_close(&R);
390
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 10, 17, 12, 17, 0, "Gijab");
391
 
  dpd_buf4_axpy(&Z, &G, -1.0);
392
 
  dpd_buf4_sort(&Z, EOM_TMP1, qprs, 10, 17, "Z(ji,a>b)");
393
 
  dpd_buf4_close(&Z);
394
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 17, 10, 17, 0, "Z(ji,a>b)");
395
 
  dpd_buf4_axpy(&Z, &G, 1.0);
396
 
  dpd_buf4_close(&Z);
397
 
  dpd_buf4_close(&G);
398
 
 
399
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 22, 28, 22, 28, 0, "GIjAb");
400
 
  dpd_buf4_init(&R, CC_GR, R_irr, 22, 28, 22, 28, 0, "RIjAb");
401
 
  dpd_file2_init(&I1, EOM_TMP, L_irr, 0, 0, "LT_OO");
402
 
  dpd_contract244(&I1, &R, &G, 0, 0, 0, -1.0, 1.0);
403
 
  dpd_file2_close(&I1);
404
 
  dpd_buf4_close(&R);
405
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 23, 28, 23, 28, 0, "Z(jI,Ab)");
406
 
  dpd_buf4_init(&R, CC_GR, R_irr, 23, 28, 23, 28, 0, "RiJAb");
407
 
  dpd_file2_init(&I1, EOM_TMP, L_irr, 2, 2, "LT_oo");
408
 
  dpd_contract244(&I1, &R, &Z, 0, 0, 0, 1.0, 0.0);
409
 
  dpd_file2_close(&I1);
410
 
  dpd_buf4_close(&R);
411
 
  dpd_buf4_sort(&Z, EOM_TMP1, qprs, 22, 28, "Z(Ij,Ab)");
412
 
  dpd_buf4_close(&Z);
413
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 22, 28, 22, 28, 0, "Z(Ij,Ab)");
414
 
  dpd_buf4_axpy(&Z, &G, -1.0);
415
 
  dpd_buf4_close(&Z);
416
 
  dpd_buf4_close(&G);
417
 
 
418
 
  psio_close(EOM_TMP1,0);
419
 
  psio_open(EOM_TMP1, PSIO_OPEN_NEW);
420
 
 
421
 
  /* -P(ab)(Lme Tmb + 0.5 Lmnfe Tmnfb) Rijae, term 17, 31 */
422
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 2, 5, 2, 5, 0, "Z(I>J,AB)");
423
 
  dpd_buf4_init(&R, CC_GR, R_irr, 2, 5, 2, 7, 0, "RIJAB");
424
 
  dpd_file2_init(&I1, EOM_TMP, L_irr, 1, 1, "LT_VV");
425
 
  dpd_contract424(&R, &I1, &Z, 3, 0, 0, 1.0, 0.0);
426
 
  dpd_file2_close(&I1);
427
 
  dpd_buf4_close(&R);
428
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 2, 5, 2, 7, 0, "GIJAB");
429
 
  dpd_buf4_axpy(&Z, &G, -1.0);
430
 
  dpd_buf4_sort(&Z, EOM_TMP1, pqsr, 2, 5, "Z(I>J,BA)");
431
 
  dpd_buf4_close(&Z);
432
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 2, 5, 2, 5, 0, "Z(I>J,BA)");
433
 
  dpd_buf4_axpy(&Z, &G, 1.0);
434
 
  dpd_buf4_close(&Z);
435
 
  dpd_buf4_close(&G);
436
 
 
437
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 12, 15, 12, 15, 0, "Z(i>j,ab)");
438
 
  dpd_buf4_init(&R, CC_GR, R_irr, 12, 15, 12, 17, 0, "Rijab");
439
 
  dpd_file2_init(&I1, EOM_TMP, L_irr, 3, 3, "LT_vv");
440
 
  dpd_contract424(&R, &I1, &Z, 3, 0, 0, 1.0, 0.0);
441
 
  dpd_file2_close(&I1);
442
 
  dpd_buf4_close(&R);
443
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 12, 15, 12, 17, 0, "Gijab");
444
 
  dpd_buf4_axpy(&Z, &G, -1.0);
445
 
  dpd_buf4_sort(&Z, EOM_TMP1, pqsr, 12, 15, "Z(i>j,ba)");
446
 
  dpd_buf4_close(&Z);
447
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 12, 15, 12, 15, 0, "Z(i>j,ba)");
448
 
  dpd_buf4_axpy(&Z, &G, 1.0);
449
 
  dpd_buf4_close(&Z);
450
 
  dpd_buf4_close(&G);
451
 
 
452
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 22, 28, 22, 28, 0, "GIjAb");
453
 
  dpd_buf4_init(&R, CC_GR, R_irr, 22, 28, 22, 28, 0, "RIjAb");
454
 
  dpd_file2_init(&I1, EOM_TMP, L_irr, 3, 3, "LT_vv");
455
 
  dpd_contract424(&R, &I1, &G, 3, 0, 0, -1.0, 1.0);
456
 
  dpd_file2_close(&I1);
457
 
  dpd_buf4_close(&R);
458
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 22, 29, 22, 29, 0, "Z(Ij,bA)");
459
 
  dpd_buf4_init(&R, CC_GR, R_irr, 22, 29, 22, 29, 0, "RIjaB");
460
 
  dpd_file2_init(&I1, EOM_TMP, L_irr, 1, 1, "LT_VV");
461
 
  dpd_contract424(&R, &I1, &Z, 3, 0, 0, 1.0, 0.0);
462
 
  dpd_file2_close(&I1);
463
 
  dpd_buf4_close(&R);
464
 
  dpd_buf4_sort(&Z, EOM_TMP1, pqsr, 22, 28, "Z(Ij,Ab)");
465
 
  dpd_buf4_close(&Z);
466
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 22, 28, 22, 28, 0, "Z(Ij,Ab)");
467
 
  dpd_buf4_axpy(&Z, &G, -1.0);
468
 
  dpd_buf4_close(&Z);
469
 
  dpd_buf4_close(&G);
470
 
 
471
 
  psio_close(EOM_TMP1,0);
472
 
  psio_open(EOM_TMP1, PSIO_OPEN_NEW);
473
 
 
474
 
  /* -P(ab) lmnef rme tijfb tna, term 37 */
475
 
  if (!params.connect_xi) {
476
 
    dpd_buf4_init(&Z, EOM_TMP1, G_irr, 2, 21, 2, 21, 0, "Z(I>J,AN)");
477
 
    dpd_buf4_init(&T, CC_TAMPS, 0, 2, 5, 2, 7, 0, "tIJAB");
478
 
    dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_OV");
479
 
    dpd_contract424(&T, &I1, &Z, 3, 1, 0, 1.0, 0.0);
480
 
    dpd_file2_close(&I1);
481
 
    dpd_buf4_close(&T);
482
 
    dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 2, 5, 2, 5, 0, "Z(I>J,AB)");
483
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
484
 
    dpd_contract424(&Z, &T1, &Z2, 3, 0, 0, 1.0, 0.0);
485
 
    dpd_file2_close(&T1);
486
 
    dpd_buf4_close(&Z);
487
 
    dpd_buf4_close(&Z2);
488
 
    dpd_buf4_init(&G, EOM_TMP0, G_irr, 2, 5, 2, 7, 0, "GIJAB");
489
 
    dpd_buf4_init(&Z, EOM_TMP1, 0, 2, 5, 2, 5, 0, "Z(I>J,AB)");
490
 
    dpd_buf4_axpy(&Z, &G, -1.0);
491
 
    dpd_buf4_sort(&Z, EOM_TMP1, pqsr, 2, 5, "Z(I>J,BA)");
492
 
    dpd_buf4_close(&Z);
493
 
    dpd_buf4_init(&Z, EOM_TMP1, 0, 2, 5, 2, 5, 0, "Z(I>J,BA)");
494
 
    dpd_buf4_axpy(&Z, &G, 1.0);
495
 
    dpd_buf4_close(&G);
496
 
  
497
 
    dpd_buf4_init(&Z, EOM_TMP1, G_irr, 12, 31, 12, 31, 0, "Z(i>j,an)");
498
 
    dpd_buf4_init(&T, CC_TAMPS, 0, 12, 15, 12, 17, 0, "tijab");
499
 
    dpd_file2_init(&I1, EOM_TMP, G_irr, 2, 3, "L2R1_ov");
500
 
    dpd_contract424(&T, &I1, &Z, 3, 1, 0, 1.0, 0.0);
501
 
    dpd_file2_close(&I1);
502
 
    dpd_buf4_close(&T);
503
 
    dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 12, 15, 12, 15, 0, "Z(i>j,ab)");
504
 
    dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
505
 
    dpd_contract424(&Z, &T1, &Z2, 3, 0, 0, 1.0, 0.0);
506
 
    dpd_file2_close(&T1);
507
 
    dpd_buf4_close(&Z);
508
 
    dpd_buf4_close(&Z2);
509
 
    dpd_buf4_init(&G, EOM_TMP0, G_irr, 12, 15, 12, 17, 0, "Gijab");
510
 
    dpd_buf4_init(&Z, EOM_TMP1, G_irr, 12, 15, 12, 15, 0, "Z(i>j,ab)");
511
 
    dpd_buf4_axpy(&Z, &G, -1.0);
512
 
    dpd_buf4_sort(&Z, EOM_TMP1, pqsr, 12, 15, "Z(i>j,ba)");
513
 
    dpd_buf4_close(&Z);
514
 
    dpd_buf4_init(&Z, EOM_TMP1, G_irr, 12, 15, 12, 15, 0, "Z(i>j,ba)");
515
 
    dpd_buf4_axpy(&Z, &G, 1.0);
516
 
    dpd_buf4_close(&G);
517
 
  
518
 
    dpd_buf4_init(&Z, EOM_TMP1, G_irr, 22, 26, 22, 26, 0, "Z(Ij,An)");
519
 
    dpd_buf4_init(&T, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tIjAb");
520
 
    dpd_file2_init(&I1, EOM_TMP, G_irr, 2, 3, "L2R1_ov");
521
 
    dpd_contract424(&T, &I1, &Z, 3, 1, 0, 1.0, 0.0);
522
 
    dpd_file2_close(&I1);
523
 
    dpd_buf4_close(&T);
524
 
    dpd_buf4_init(&G, EOM_TMP0, G_irr, 22, 28, 22, 28, 0, "GIjAb");
525
 
    dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
526
 
    dpd_contract424(&Z, &T1, &G, 3, 0, 0, -1.0, 1.0);
527
 
    dpd_file2_close(&T1);
528
 
    dpd_buf4_close(&Z);
529
 
    dpd_buf4_close(&G);
530
 
    dpd_buf4_init(&Z, EOM_TMP1, G_irr, 22, 24, 22, 24, 0, "Z(Ij,Nb)");
531
 
    dpd_buf4_init(&T, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tIjAb");
532
 
    dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_OV");
533
 
    dpd_contract244(&I1, &T, &Z, 1, 2, 1, 1.0, 0.0);
534
 
    dpd_file2_close(&I1);
535
 
    dpd_buf4_close(&T);
536
 
    dpd_buf4_init(&G, EOM_TMP0, G_irr, 22, 28, 22, 28, 0, "GIjAb");
537
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
538
 
    dpd_contract244(&T1, &Z, &G, 0, 2, 1, -1.0, 1.0);
539
 
    dpd_file2_close(&T1);
540
 
    dpd_buf4_close(&Z);
541
 
    dpd_buf4_close(&G);
542
 
  }
543
 
 
544
 
  /* compute Z(IA,JB) Z(ia,jb) and Z(IA,jb) for terms
545
 
     20, 28, 29, 21 then permute and add in */
546
 
  /* + P(ij) P(ab) (Rimae Lnmfe) Tnjfb, term 20 */
547
 
  dpd_buf4_init(&Z, EOM_TMP0, G_irr, 20, 20, 20, 20, 0, "Z(IA,JB)");
548
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 20, 20, 20, 20, 0, "R2L2_OVOV");
549
 
  dpd_buf4_init(&T, CC_TAMPS, 0, 20, 20, 20, 20, 0, "tIAJB");
550
 
  dpd_contract444(&I, &T, &Z, 0, 1, 1.0, 0.0);
551
 
  dpd_buf4_close(&I);
552
 
  dpd_buf4_close(&T);
553
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 20, 30, 20, 30, 0, "R2L2_OVov");
554
 
  dpd_buf4_init(&T, CC_TAMPS, 0, 30, 20, 30, 20, 0, "tiaJB");
555
 
  dpd_contract444(&I, &T, &Z, 0, 1, 1.0, 1.0);
556
 
  dpd_buf4_close(&I);
557
 
  dpd_buf4_close(&T);
558
 
 
559
 
  dpd_buf4_init(&Z, EOM_TMP0, G_irr, 30, 30, 30, 30, 0, "Z(ia,jb)");
560
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 30, 30, 30, 30, 0, "R2L2_ovov");
561
 
  dpd_buf4_init(&T, CC_TAMPS, 0, 30, 30, 30, 30, 0, "tiajb");
562
 
  dpd_contract444(&I, &T, &Z, 0, 1, 1.0, 0.0);
563
 
  dpd_buf4_close(&I);
564
 
  dpd_buf4_close(&T);
565
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 30, 20, 30, 20, 0, "R2L2_ovOV");
566
 
  dpd_buf4_init(&T, CC_TAMPS, 0, 20, 30, 20, 30, 0, "tIAjb");
567
 
  dpd_contract444(&I, &T, &Z, 0, 1, 1.0, 1.0);
568
 
  dpd_buf4_close(&I);
569
 
  dpd_buf4_close(&T);
570
 
 
571
 
  dpd_buf4_init(&Z, EOM_TMP0, G_irr, 20, 30, 20, 30, 0, "Z(IA,jb)");
572
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 20, 20, 20, 20, 0, "R2L2_OVOV");
573
 
  dpd_buf4_init(&T, CC_TAMPS, 0, 20, 30, 20, 30, 0, "tIAjb");
574
 
  dpd_contract444(&I, &T, &Z, 0, 1, 1.0, 0.0);
575
 
  dpd_buf4_close(&I);
576
 
  dpd_buf4_close(&T);
577
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 20, 30, 20, 30, 0, "R2L2_OVov");
578
 
  dpd_buf4_init(&T, CC_TAMPS, 0, 30, 30, 30, 30, 0, "tiajb");
579
 
  dpd_contract444(&I, &T, &Z, 0, 1, 1.0, 1.0);
580
 
  dpd_buf4_close(&I);
581
 
  dpd_buf4_close(&T);
582
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 30, 20, 30, 20, 0, "R2L2_ovOV");
583
 
  dpd_buf4_init(&T, CC_TAMPS, 0, 20, 20, 20, 20, 0, "tIAJB");
584
 
  dpd_contract444(&T, &I, &Z, 0, 0, 1.0, 1.0);
585
 
  dpd_buf4_close(&I);
586
 
  dpd_buf4_close(&T);
587
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 30, 30, 30, 30, 0, "R2L2_ovov");
588
 
  dpd_buf4_init(&T, CC_TAMPS, 0, 20, 30, 20, 30, 0, "tIAjb");
589
 
  dpd_contract444(&T, &I, &Z, 0, 0, 1.0, 1.0);
590
 
  dpd_buf4_close(&I);
591
 
  dpd_buf4_close(&T);
592
 
  dpd_buf4_close(&Z);
593
 
 
594
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 24, 27, 24, 27, 0, "Z(Ib,jA)");
595
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 27, 27, 27, 27, 0, "R2L2_oVoV");
596
 
  dpd_buf4_init(&T, CC_TAMPS, 0, 24, 27, 24, 27, 0, "tIbjA");
597
 
  dpd_contract444(&T, &I, &Z, 0, 0, 1.0, 0.0);
598
 
  dpd_buf4_close(&I);
599
 
  dpd_buf4_close(&T);
600
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 24, 24, 24, 24, 0, "R2L2_OvOv");
601
 
  dpd_buf4_init(&T, CC_TAMPS, 0, 24, 27, 24, 27, 0, "tIbjA");
602
 
  dpd_contract444(&I, &T, &Z, 0, 1, 1.0, 1.0);
603
 
  dpd_buf4_close(&I);
604
 
  dpd_buf4_close(&T);
605
 
  dpd_buf4_sort_axpy(&Z, EOM_TMP0, psrq, 20, 30, "Z(IA,jb)", 1.0);
606
 
  dpd_buf4_close(&Z);
607
 
 
608
 
  psio_close(EOM_TMP1,0);
609
 
  psio_open(EOM_TMP1,PSIO_OPEN_NEW);
610
 
 
611
 
  /* - P(ij) P(ab) (Tjmbe Lnmfe) Tif Rna, term 28 */
612
 
  dpd_buf4_init(&Z, EOM_TMP1, L_irr, 20, 0, 20, 0, 0, "Z(JB,NI)");
613
 
  dpd_buf4_init(&I, EOM_TMP, L_irr, 20, 20, 20, 20, 0, "VIAJB");
614
 
  dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
615
 
  dpd_contract424(&I, &T1, &Z, 3, 1, 0, 1.0, 0.0);
616
 
  dpd_file2_close(&T1);
617
 
  dpd_buf4_close(&I);
618
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 21, 20, 21, 20, 0, "Z(AI,JB)");
619
 
  dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
620
 
  dpd_contract244(&R1, &Z, &Z2, 0, 2, 0, 1.0, 0.0);
621
 
  dpd_file2_close(&R1);
622
 
  dpd_buf4_close(&Z);
623
 
  dpd_buf4_sort_axpy(&Z2, EOM_TMP0, qprs, 20, 20, "Z(IA,JB)", -1.0);
624
 
  dpd_buf4_close(&Z2);
625
 
  
626
 
  dpd_buf4_init(&Z, EOM_TMP1, L_irr, 30, 10, 30, 10, 0, "Z(jb,ni)");
627
 
  dpd_buf4_init(&I, EOM_TMP, L_irr, 30, 30, 30, 30, 0, "Viajb");
628
 
  dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
629
 
  dpd_contract424(&I, &T1, &Z, 3, 1, 0, 1.0, 0.0);
630
 
  dpd_file2_close(&T1);
631
 
  dpd_buf4_close(&I);
632
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 31, 30, 31, 30, 0, "Z(ai,jb)");
633
 
  dpd_file2_init(&R1, CC_GR, R_irr, 2, 3, "Ria");
634
 
  dpd_contract244(&R1, &Z, &Z2, 0, 2, 0, 1.0, 0.0);
635
 
  dpd_file2_close(&R1);
636
 
  dpd_buf4_close(&Z);
637
 
  dpd_buf4_sort_axpy(&Z2, EOM_TMP0, qprs, 30, 30, "Z(ia,jb)", -1.0);
638
 
  dpd_buf4_close(&Z2);
639
 
 
640
 
  dpd_buf4_init(&Z, EOM_TMP1, L_irr, 30, 0, 30, 0, 0, "Z(jb,NI)");
641
 
  dpd_buf4_init(&I, EOM_TMP, L_irr, 30, 20, 30, 20, 0, "ViaJB");
642
 
  dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
643
 
  dpd_contract424(&I, &T1, &Z, 3, 1, 0, 1.0, 0.0);
644
 
  dpd_file2_close(&T1);
645
 
  dpd_buf4_close(&I);
646
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 21, 30, 21, 30, 0, "Z(AI,jb)");
647
 
  dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
648
 
  dpd_contract244(&R1, &Z, &Z2, 0, 2, 0, 1.0, 0.0);
649
 
  dpd_file2_close(&R1);
650
 
  dpd_buf4_close(&Z);
651
 
  dpd_buf4_sort_axpy(&Z2, EOM_TMP0, qprs, 20, 30, "Z(IA,jb)", -1.0);
652
 
  dpd_buf4_close(&Z2);
653
 
 
654
 
  dpd_buf4_init(&Z, EOM_TMP1, L_irr, 24, 22, 24, 22, 0, "Z(Ib,Nj)");
655
 
  dpd_buf4_init(&I, EOM_TMP, L_irr, 24, 24, 24, 24, 0, "VIaJb");
656
 
  dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
657
 
  dpd_contract424(&I, &T1, &Z, 3, 1, 0, 1.0, 0.0);
658
 
  dpd_file2_close(&T1);
659
 
  dpd_buf4_close(&I);
660
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 24, 26, 24, 26, 0, "Z(Ib,Aj)");
661
 
  dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
662
 
  dpd_contract244(&R1, &Z, &Z2, 0, 2, 1, 1.0, 0.0);
663
 
  dpd_file2_close(&R1);
664
 
  dpd_buf4_close(&Z);
665
 
  dpd_buf4_sort_axpy(&Z2, EOM_TMP0, prsq, 20, 30, "Z(IA,jb)", +1.0);
666
 
  dpd_buf4_close(&Z2);
667
 
 
668
 
  psio_close(EOM_TMP1,0);
669
 
  psio_open(EOM_TMP1,PSIO_OPEN_NEW);
670
 
 
671
 
  dpd_buf4_init(&Z, EOM_TMP1, L_irr, 27, 23, 27, 23, 0, "Z(jA,nI)");
672
 
  dpd_buf4_init(&I, EOM_TMP, L_irr, 27, 27, 27, 27, 0, "ViAjB");
673
 
  dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
674
 
  dpd_contract424(&I, &T1, &Z, 3, 1, 0, 1.0, 0.0);
675
 
  dpd_file2_close(&T1);
676
 
  dpd_buf4_close(&I);
677
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 25, 27, 25, 27, 0, "Z(bI,jA)");
678
 
  dpd_file2_init(&R1, CC_GR, R_irr, 2, 3, "Ria");
679
 
  dpd_contract244(&R1, &Z, &Z2, 0, 2, 0, 1.0, 0.0);
680
 
  dpd_file2_close(&R1);
681
 
  dpd_buf4_close(&Z);
682
 
  dpd_buf4_sort(&Z2, EOM_TMP1, sqrp, 21, 30, "Z(AI,jb)");
683
 
  dpd_buf4_close(&Z2);
684
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 21, 30, 21, 30, 0, "Z(AI,jb)");
685
 
  dpd_buf4_sort_axpy(&Z2, EOM_TMP0, qprs, 20, 30, "Z(IA,jb)", +1.0);
686
 
  dpd_buf4_close(&Z2);
687
 
 
688
 
  dpd_buf4_init(&Z, EOM_TMP1, L_irr, 20, 10, 20, 10, 0, "Z(IA,nj)");
689
 
  dpd_buf4_init(&I, EOM_TMP, L_irr, 20, 30, 20, 30, 0, "VIAjb");
690
 
  dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
691
 
  dpd_contract424(&I, &T1, &Z, 3, 1, 0, 1.0, 0.0);
692
 
  dpd_file2_close(&T1);
693
 
  dpd_buf4_close(&I);
694
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 20, 31, 20, 31, 0, "Z(IA,bj)");
695
 
  dpd_file2_init(&R1, CC_GR, R_irr, 2, 3, "Ria");
696
 
  dpd_contract244(&R1, &Z, &Z2, 0, 2, 1, 1.0, 0.0);
697
 
  dpd_file2_close(&R1);
698
 
  dpd_buf4_close(&Z);
699
 
  dpd_buf4_sort_axpy(&Z2, EOM_TMP0, pqsr, 20, 30, "Z(IA,jb)", -1.0);
700
 
  dpd_buf4_close(&Z2);
701
 
 
702
 
  psio_close(EOM_TMP1,0);
703
 
  psio_open(EOM_TMP1,PSIO_OPEN_NEW);
704
 
 
705
 
  /* - P(ij) P(ab) (Tjmbe Lnmfe) Rif Tna, term 29 */
706
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 20, 0, 20, 0, 0, "Z(JB,NI)");
707
 
  dpd_buf4_init(&I, EOM_TMP, L_irr, 20, 20, 20, 20, 0, "VIAJB");
708
 
  dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
709
 
  dpd_contract424(&I, &R1, &Z, 3, 1, 0, 1.0, 0.0);
710
 
  dpd_file2_close(&R1);
711
 
  dpd_buf4_close(&I);
712
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 21, 20, 21, 20, 0, "Z(AI,JB)");
713
 
  dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
714
 
  dpd_contract244(&T1, &Z, &Z2, 0, 2, 0, 1.0, 0.0);
715
 
  dpd_file2_close(&T1);
716
 
  dpd_buf4_close(&Z);
717
 
  dpd_buf4_sort_axpy(&Z2, EOM_TMP0, qprs, 20, 20, "Z(IA,JB)", -1.0);
718
 
  dpd_buf4_close(&Z2);
719
 
  
720
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 30, 10, 30, 10, 0, "Z(jb,ni)");
721
 
  dpd_buf4_init(&I, EOM_TMP, L_irr, 30, 30, 30, 30, 0, "Viajb");
722
 
  dpd_file2_init(&R1, CC_GR, R_irr, 2, 3, "Ria");
723
 
  dpd_contract424(&I, &R1, &Z, 3, 1, 0, 1.0, 0.0);
724
 
  dpd_file2_close(&R1);
725
 
  dpd_buf4_close(&I);
726
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 31, 30, 31, 30, 0, "Z(ai,jb)");
727
 
  dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
728
 
  dpd_contract244(&T1, &Z, &Z2, 0, 2, 0, 1.0, 0.0);
729
 
  dpd_file2_close(&T1);
730
 
  dpd_buf4_close(&Z);
731
 
  dpd_buf4_sort_axpy(&Z2, EOM_TMP0, qprs, 30, 30, "Z(ia,jb)", -1.0);
732
 
  dpd_buf4_close(&Z2);
733
 
 
734
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 30, 0, 30, 0, 0, "Z(jb,NI)");
735
 
  dpd_buf4_init(&I, EOM_TMP, L_irr, 30, 20, 30, 20, 0, "ViaJB");
736
 
  dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
737
 
  dpd_contract424(&I, &R1, &Z, 3, 1, 0, 1.0, 0.0);
738
 
  dpd_file2_close(&R1);
739
 
  dpd_buf4_close(&I);
740
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 21, 30, 21, 30, 0, "Z(AI,jb)");
741
 
  dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
742
 
  dpd_contract244(&T1, &Z, &Z2, 0, 2, 0, 1.0, 0.0);
743
 
  dpd_file2_close(&T1);
744
 
  dpd_buf4_close(&Z);
745
 
  dpd_buf4_sort_axpy(&Z2, EOM_TMP0, qprs, 20, 30, "Z(IA,jb)", -1.0);
746
 
  dpd_buf4_close(&Z2);
747
 
 
748
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 24, 22, 24, 22, 0, "Z(Ib,Nj)");
749
 
  dpd_buf4_init(&I, EOM_TMP, L_irr, 24, 24, 24, 24, 0, "VIaJb");
750
 
  dpd_file2_init(&R1, CC_GR, R_irr, 2, 3, "Ria");
751
 
  dpd_contract424(&I, &R1, &Z, 3, 1, 0, 1.0, 0.0);
752
 
  dpd_file2_close(&R1);
753
 
  dpd_buf4_close(&I);
754
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 24, 26, 24, 26, 0, "Z(Ib,Aj)");
755
 
  dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
756
 
  dpd_contract244(&T1, &Z, &Z2, 0, 2, 1, 1.0, 0.0);
757
 
  dpd_file2_close(&T1);
758
 
  dpd_buf4_close(&Z);
759
 
  dpd_buf4_sort_axpy(&Z2, EOM_TMP0, prsq, 20, 30, "Z(IA,jb)", +1.0);
760
 
  dpd_buf4_close(&Z2);
761
 
 
762
 
  psio_close(EOM_TMP1,0);
763
 
  psio_open(EOM_TMP1,PSIO_OPEN_NEW);
764
 
 
765
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 27, 23, 27, 23, 0, "Z(jA,nI)");
766
 
  dpd_buf4_init(&I, EOM_TMP, L_irr, 27, 27, 27, 27, 0, "ViAjB");
767
 
  dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
768
 
  dpd_contract424(&I, &R1, &Z, 3, 1, 0, 1.0, 0.0);
769
 
  dpd_file2_close(&R1);
770
 
  dpd_buf4_close(&I);
771
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 25, 27, 25, 27, 0, "Z(bI,jA)");
772
 
  dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
773
 
  dpd_contract244(&T1, &Z, &Z2, 0, 2, 0, 1.0, 0.0);
774
 
  dpd_file2_close(&T1);
775
 
  dpd_buf4_close(&Z);
776
 
  dpd_buf4_sort(&Z2, EOM_TMP1, sqrp, 21, 30, "Z(AI,jb)");
777
 
  dpd_buf4_close(&Z2);
778
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 21, 30, 21, 30, 0, "Z(AI,jb)");
779
 
  dpd_buf4_sort_axpy(&Z2, EOM_TMP0, qprs, 20, 30, "Z(IA,jb)", +1.0);
780
 
  dpd_buf4_close(&Z2);
781
 
 
782
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 20, 10, 20, 10, 0, "Z(IA,nj)");
783
 
  dpd_buf4_init(&I, EOM_TMP, L_irr, 20, 30, 20, 30, 0, "VIAjb");
784
 
  dpd_file2_init(&R1, CC_GR, R_irr, 2, 3, "Ria");
785
 
  dpd_contract424(&I, &R1, &Z, 3, 1, 0, 1.0, 0.0);
786
 
  dpd_file2_close(&R1);
787
 
  dpd_buf4_close(&I);
788
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 20, 31, 20, 31, 0, "Z(IA,bj)");
789
 
  dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
790
 
  dpd_contract244(&T1, &Z, &Z2, 0, 2, 1, 1.0, 0.0);
791
 
  dpd_file2_close(&T1);
792
 
  dpd_buf4_close(&Z);
793
 
  dpd_buf4_sort_axpy(&Z2, EOM_TMP0, pqsr, 20, 30, "Z(IA,jb)", -1.0);
794
 
  dpd_buf4_close(&Z2);
795
 
 
796
 
  psio_close(EOM_TMP1,0);
797
 
  psio_open(EOM_TMP1,PSIO_OPEN_NEW);
798
 
 
799
 
  /* - P(ij) P(ab) (Rjmbe Lnmfe) Tif Tna, term 21 */
800
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 20, 0, 20, 0, 0, "Z(JB,NI)");
801
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 20, 20, 20, 20, 0, "R2L2_OVOV");
802
 
  dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
803
 
  dpd_contract424(&I, &T1, &Z, 3, 1, 0, 1.0, 0.0);
804
 
  dpd_file2_close(&T1);
805
 
  dpd_buf4_close(&I);
806
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 21, 20, 21, 20, 0, "Z(AI,JB)");
807
 
  dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
808
 
  dpd_contract244(&T1, &Z, &Z2, 0, 2, 0, 1.0, 0.0);
809
 
  dpd_file2_close(&T1);
810
 
  dpd_buf4_close(&Z);
811
 
  dpd_buf4_sort_axpy(&Z2, EOM_TMP0, qprs, 20, 20, "Z(IA,JB)", -1.0);
812
 
  dpd_buf4_close(&Z2);
813
 
  
814
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 30, 10, 30, 10, 0, "Z(jb,ni)");
815
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 30, 30, 30, 30, 0, "R2L2_ovov");
816
 
  dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
817
 
  dpd_contract424(&I, &T1, &Z, 3, 1, 0, 1.0, 0.0);
818
 
  dpd_file2_close(&T1);
819
 
  dpd_buf4_close(&I);
820
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 31, 30, 31, 30, 0, "Z(ai,jb)");
821
 
  dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
822
 
  dpd_contract244(&T1, &Z, &Z2, 0, 2, 0, 1.0, 0.0);
823
 
  dpd_file2_close(&T1);
824
 
  dpd_buf4_close(&Z);
825
 
  dpd_buf4_sort_axpy(&Z2, EOM_TMP0, qprs, 30, 30, "Z(ia,jb)", -1.0);
826
 
  dpd_buf4_close(&Z2);
827
 
 
828
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 30, 0, 30, 0, 0, "Z(jb,NI)");
829
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 30, 20, 30, 20, 0, "R2L2_ovOV");
830
 
  dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
831
 
  dpd_contract424(&I, &T1, &Z, 3, 1, 0, 1.0, 0.0);
832
 
  dpd_file2_close(&T1);
833
 
  dpd_buf4_close(&I);
834
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 21, 30, 21, 30, 0, "Z(AI,jb)");
835
 
  dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
836
 
  dpd_contract244(&T1, &Z, &Z2, 0, 2, 0, 1.0, 0.0);
837
 
  dpd_file2_close(&T1);
838
 
  dpd_buf4_close(&Z);
839
 
  dpd_buf4_sort_axpy(&Z2, EOM_TMP0, qprs, 20, 30, "Z(IA,jb)", -1.0);
840
 
  dpd_buf4_close(&Z2);
841
 
 
842
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 24, 22, 24, 22, 0, "Z(Ib,Nj)");
843
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 24, 24, 24, 24, 0, "R2L2_OvOv");
844
 
  dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
845
 
  dpd_contract424(&I, &T1, &Z, 3, 1, 0, 1.0, 0.0);
846
 
  dpd_file2_close(&T1);
847
 
  dpd_buf4_close(&I);
848
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 24, 26, 24, 26, 0, "Z(Ib,Aj)");
849
 
  dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
850
 
  dpd_contract244(&T1, &Z, &Z2, 0, 2, 1, 1.0, 0.0);
851
 
  dpd_file2_close(&T1);
852
 
  dpd_buf4_close(&Z);
853
 
  dpd_buf4_sort_axpy(&Z2, EOM_TMP0, prsq, 20, 30, "Z(IA,jb)", +1.0);
854
 
  dpd_buf4_close(&Z2);
855
 
 
856
 
  psio_close(EOM_TMP1,0);
857
 
  psio_open(EOM_TMP1,PSIO_OPEN_NEW);
858
 
 
859
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 27, 23, 27, 23, 0, "Z(jA,nI)");
860
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 27, 27, 27, 27, 0, "R2L2_oVoV");
861
 
  dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
862
 
  dpd_contract424(&I, &T1, &Z, 3, 1, 0, 1.0, 0.0);
863
 
  dpd_file2_close(&T1);
864
 
  dpd_buf4_close(&I);
865
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 25, 27, 25, 27, 0, "Z(bI,jA)");
866
 
  dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
867
 
  dpd_contract244(&T1, &Z, &Z2, 0, 2, 0, 1.0, 0.0);
868
 
  dpd_file2_close(&T1);
869
 
  dpd_buf4_close(&Z);
870
 
  dpd_buf4_sort(&Z2, EOM_TMP1, sqrp, 21, 30, "Z(AI,jb)");
871
 
  dpd_buf4_close(&Z2);
872
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 21, 30, 21, 30, 0, "Z(AI,jb)");
873
 
  dpd_buf4_sort_axpy(&Z2, EOM_TMP0, qprs, 20, 30, "Z(IA,jb)", +1.0);
874
 
  dpd_buf4_close(&Z2);
875
 
 
876
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 20, 10, 20, 10, 0, "Z(IA,nj)");
877
 
  dpd_buf4_init(&I, EOM_TMP, G_irr, 20, 30, 20, 30, 0, "R2L2_OVov");
878
 
  dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
879
 
  dpd_contract424(&I, &T1, &Z, 3, 1, 0, 1.0, 0.0);
880
 
  dpd_file2_close(&T1);
881
 
  dpd_buf4_close(&I);
882
 
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 20, 31, 20, 31, 0, "Z(IA,bj)");
883
 
  dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
884
 
  dpd_contract244(&T1, &Z, &Z2, 0, 2, 1, 1.0, 0.0);
885
 
  dpd_file2_close(&T1);
886
 
  dpd_buf4_close(&Z);
887
 
  dpd_buf4_sort_axpy(&Z2, EOM_TMP0, pqsr, 20, 30, "Z(IA,jb)", -1.0);
888
 
  dpd_buf4_close(&Z2);
889
 
 
890
 
  psio_close(EOM_TMP1,0);
891
 
  psio_open(EOM_TMP1,PSIO_OPEN_NEW);
892
 
 
893
 
 
894
 
  /* Now permute Z(IA,JB) and Z(ia,jb) and add them in along with Z(IA,jb) */
895
 
  dpd_buf4_init(&Z2, EOM_TMP0, G_irr, 20, 20, 20, 20, 0, "Z(IA,JB)");
896
 
  dpd_buf4_sort(&Z2, EOM_TMP1, prqs, 0, 5, "Z(IJ,AB)");
897
 
  dpd_buf4_close(&Z2);
898
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 0, 5, 2, 7, 0, "GIJAB");
899
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z(IJ,AB)");
900
 
  dpd_buf4_axpy(&Z, &G, 1.0);
901
 
  dpd_buf4_sort(&Z, EOM_TMP1, qprs, 0, 5, "Z(JI,AB)");
902
 
  dpd_buf4_sort(&Z, EOM_TMP1, pqsr, 0, 5, "Z(IJ,BA)");
903
 
  dpd_buf4_close(&Z);
904
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z(JI,AB)");
905
 
  dpd_buf4_axpy(&Z, &G, -1.0);
906
 
  dpd_buf4_close(&Z);
907
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z(IJ,BA)");
908
 
  dpd_buf4_axpy(&Z, &G, -1.0);
909
 
  dpd_buf4_sort(&Z, EOM_TMP1, qprs, 0, 5, "Z(JI,BA)");
910
 
  dpd_buf4_close(&Z);
911
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z(JI,BA)");
912
 
  dpd_buf4_axpy(&Z, &G, 1.0);
913
 
  dpd_buf4_close(&Z);
914
 
  dpd_buf4_close(&G);
915
 
 
916
 
  dpd_buf4_init(&Z2, EOM_TMP0, G_irr, 30, 30, 30, 30, 0, "Z(ia,jb)");
917
 
  dpd_buf4_sort(&Z2, EOM_TMP1, prqs, 10, 15, "Z(ij,ab)");
918
 
  dpd_buf4_close(&Z2);
919
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 10, 15, 12, 17, 0, "Gijab");
920
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 15, 10, 15, 0, "Z(ij,ab)");
921
 
  dpd_buf4_axpy(&Z, &G, 1.0);
922
 
  dpd_buf4_sort(&Z, EOM_TMP1, qprs, 10, 15, "Z(ji,ab)");
923
 
  dpd_buf4_sort(&Z, EOM_TMP1, pqsr, 10, 15, "Z(ij,ba)");
924
 
  dpd_buf4_close(&Z);
925
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 15, 10, 15, 0, "Z(ji,ab)");
926
 
  dpd_buf4_axpy(&Z, &G, -1.0);
927
 
  dpd_buf4_close(&Z);
928
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 15, 10, 15, 0, "Z(ij,ba)");
929
 
  dpd_buf4_axpy(&Z, &G, -1.0);
930
 
  dpd_buf4_sort(&Z, EOM_TMP1, qprs, 10, 15, "Z(ji,ba)");
931
 
  dpd_buf4_close(&Z);
932
 
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 15, 10, 15, 0, "Z(ji,ba)");
933
 
  dpd_buf4_axpy(&Z, &G, 1.0);
934
 
  dpd_buf4_close(&Z);
935
 
  dpd_buf4_close(&G);
936
 
 
937
 
  dpd_buf4_init(&Z, EOM_TMP0, G_irr, 20, 30, 20, 30, 0, "Z(IA,jb)");
938
 
  dpd_buf4_sort_axpy(&Z, EOM_TMP0, prqs, 22, 28, "GIjAb", 1.0);
939
 
  dpd_buf4_close(&Z);
940
 
 
941
 
  /* add to ground state parts */
942
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 2, 7, 2, 7, 0, "GIJAB");
943
 
  dpd_buf4_init(&V, CC_GAMMA, G_irr, 2, 7, 2, 7, 0, "GIJAB");
944
 
  dpd_buf4_axpy(&G, &V, 0.5);
945
 
  dpd_buf4_close(&V);
946
 
  dpd_buf4_close(&G);
947
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 12, 17, 12, 17, 0, "Gijab");
948
 
  dpd_buf4_init(&V, CC_GAMMA, G_irr, 12, 17, 12, 17, 0, "Gijab");
949
 
  dpd_buf4_axpy(&G, &V, 0.5);
950
 
  dpd_buf4_close(&V);
951
 
  dpd_buf4_close(&G);
952
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 22, 28, 22, 28, 0, "GIjAb");
953
 
  dpd_buf4_init(&V, CC_GAMMA, G_irr, 22, 28, 22, 28, 0, "GIjAb");
954
 
  dpd_buf4_axpy(&G, &V, 0.5);
955
 
  dpd_buf4_close(&V);
956
 
  dpd_buf4_close(&G);
957
 
 
958
 
  /*
959
 
  dpd_buf4_init(&V, CC_GAMMA, G_irr, 2, 7, 2, 7, 0, "GIJAB");
960
 
  tval = dpd_buf4_dot_self(&V);
961
 
  dpd_buf4_close(&V);
962
 
  dpd_buf4_init(&V, CC_GAMMA, G_irr, 12, 17, 12, 17, 0, "Gijab");
963
 
  tval += dpd_buf4_dot_self(&V);
964
 
  dpd_buf4_close(&V);
965
 
  dpd_buf4_init(&V, CC_GAMMA, G_irr, 22, 28, 22, 28, 0, "GIjAb");
966
 
  tval += dpd_buf4_dot_self(&V);
967
 
  dpd_buf4_close(&V);
968
 
  fprintf(outfile,"<Gijab|Gijab> = %15.10lf\n", tval);
969
 
  */
970
 
 
971
 
 
972
 
  return;
973
 
}
974
 
 
975
 
/* This function computes the following EOM Gijab terms
976
 
   Z(i,a) += Rimae Lme ; term 3
977
 
   Z(i,a) -= 0.5 Lmnef Tmnea Rif ; term 22
978
 
   Z(i,a) -= 0.5 Lmnef Timef Rna; term 23
979
 
   Z(i,a) += lmnef rme tinaf; term 33 
980
 
   P(ij) P(ab) [ Z(i,a) * T(j,b) ]
981
 
 */
982
 
 
983
 
void x_Gijab_uhf_2(void) { 
984
 
  int h, nirreps, row, col;
985
 
  int i,j,a,b;
986
 
  int I1, I2, I3, I4, J1, J2, J3, J4, A1, A2, A3, A4, B1, B2, B3, B4;
987
 
  int I1sym, I2sym, I3sym, I4sym, J1sym, J2sym, J3sym, J4sym;
988
 
  int A1sym, A2sym, A3sym, A4sym, B1sym, B2sym, B3sym, B4sym;
989
 
  int L_irr, R_irr, G_irr;
990
 
  dpdfile2 L1R2A, L1R2B, T1A, T1B, Z1A, Z1B, I1A, I1B, R1A, R1B;
991
 
  dpdbuf4 G, I, Z, Z2, T, L;
992
 
 
993
 
  L_irr = params.L_irr; R_irr = params.R_irr; G_irr = params.G_irr;
994
 
  nirreps = moinfo.nirreps;
995
 
 
996
 
  /* Z(I,A) += L1R2_OV, term 3 */
997
 
  dpd_file2_init(&L1R2A, EOM_TMP, G_irr, 0, 1, "L1R2_OV");
998
 
  dpd_file2_init(&L1R2B, EOM_TMP, G_irr, 2, 3, "L1R2_ov");
999
 
  dpd_file2_copy(&L1R2A, EOM_TMP1, "ZIA");
1000
 
  dpd_file2_copy(&L1R2B, EOM_TMP1, "Zia");
1001
 
  dpd_file2_close(&L1R2A);
1002
 
  dpd_file2_close(&L1R2B);
1003
 
 
1004
 
  dpd_file2_init(&Z1A, EOM_TMP1, G_irr, 0, 1, "ZIA");
1005
 
  dpd_file2_init(&Z1B, EOM_TMP1, G_irr, 2, 3, "Zia");
1006
 
 
1007
 
  /* Z(I,A) += 0.5 (lmnef tmnea) rif, term 22 */
1008
 
  dpd_file2_init(&I1A, EOM_TMP, L_irr, 1, 1, "LT2_VV");
1009
 
  dpd_file2_init(&R1A, CC_GR, R_irr, 0, 1, "RIA");
1010
 
  dpd_contract222(&R1A, &I1A, &Z1A, 0, 1, -1.0, 1.0);
1011
 
  dpd_file2_close(&R1A);
1012
 
  dpd_file2_close(&I1A);
1013
 
  dpd_file2_init(&I1B, EOM_TMP, L_irr, 3, 3, "LT2_vv");
1014
 
  dpd_file2_init(&R1B, CC_GR, R_irr, 2, 3, "Ria");
1015
 
  dpd_contract222(&R1B, &I1B, &Z1B, 0, 1, -1.0, 1.0);
1016
 
  dpd_file2_close(&R1B);
1017
 
  dpd_file2_close(&I1B);
1018
 
 
1019
 
  /* Z(i,a) -= 0.5 (timef lnmef) rna; term 23 */
1020
 
  dpd_file2_init(&I1A, EOM_TMP, L_irr, 0, 0, "LT2_OO");
1021
 
  dpd_file2_init(&R1A, CC_GR, R_irr, 0, 1, "RIA");
1022
 
  dpd_contract222(&I1A, &R1A, &Z1A, 1, 1, -1.0, 1.0);
1023
 
  dpd_file2_close(&R1A);
1024
 
  dpd_file2_close(&I1A);
1025
 
  dpd_file2_init(&I1B, EOM_TMP, L_irr, 2, 2, "LT2_oo");
1026
 
  dpd_file2_init(&R1B, CC_GR, R_irr, 2, 3, "Ria");
1027
 
  dpd_contract222(&I1B, &R1B, &Z1B, 1, 1, -1.0, 1.0);
1028
 
  dpd_file2_close(&R1B);
1029
 
  dpd_file2_close(&I1B);
1030
 
 
1031
 
  /* Z(i,a) += lmnef rme tinaf; term 33  */
1032
 
  if (!params.connect_xi) {
1033
 
    dpd_file2_init(&I1A, EOM_TMP, G_irr, 0, 1, "L2R1_OV");
1034
 
    dpd_file2_init(&I1B, EOM_TMP, G_irr, 2, 3, "L2R1_ov");
1035
 
    dpd_buf4_init(&T, CC_TAMPS, 0, 0, 5, 2, 7, 0, "tIJAB");
1036
 
    dpd_dot24(&I1A, &T, &Z1A, 0, 0, 1.0, 1.0);
1037
 
    dpd_buf4_close(&T);
1038
 
    dpd_buf4_init(&T, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tIjAb");
1039
 
    dpd_dot24(&I1B, &T, &Z1A, 0, 0, 1.0, 1.0);
1040
 
    dpd_buf4_close(&T);
1041
 
    dpd_buf4_init(&T, CC_TAMPS, 0, 10, 15, 12, 17, 0, "tijab");
1042
 
    dpd_dot24(&I1B, &T, &Z1B, 0, 0, 1.0, 1.0);
1043
 
    dpd_buf4_close(&T);
1044
 
    dpd_buf4_init(&T, CC_TAMPS, 0, 23, 29, 23, 29, 0, "tiJaB");
1045
 
    dpd_dot24(&I1A, &T, &Z1B, 0, 0, 1.0, 1.0);
1046
 
    dpd_buf4_close(&T);
1047
 
    dpd_file2_close(&I1A);
1048
 
    dpd_file2_close(&I1B);
1049
 
  }
1050
 
 
1051
 
  /* open one-electron files for the nasty permutations */
1052
 
  dpd_file2_mat_init(&Z1A);   dpd_file2_mat_init(&Z1B);
1053
 
  dpd_file2_mat_rd(&Z1A);     dpd_file2_mat_rd(&Z1B);
1054
 
 
1055
 
  dpd_file2_init(&T1A, CC_OEI, 0, 0, 1, "tIA");
1056
 
  dpd_file2_init(&T1B, CC_OEI, 0, 2, 3, "tia");
1057
 
  dpd_file2_mat_init(&T1A);   dpd_file2_mat_init(&T1B);
1058
 
  dpd_file2_mat_rd(&T1A);     dpd_file2_mat_rd(&T1B);
1059
 
 
1060
 
  /* + Z(I,A) T(J,B) */
1061
 
  /* - Z(I,B) T(J,A) */
1062
 
  /* + T(I,A) Z(J,B) */
1063
 
  /* - T(I,B) Z(J,A) */
1064
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 2, 7, 2, 7, 0, "GIJAB");
1065
 
  for(h=0; h < nirreps; h++) {
1066
 
    dpd_buf4_mat_irrep_init(&G, h);
1067
 
    dpd_buf4_mat_irrep_rd(&G, h);
1068
 
    for(row=0; row < G.params->rowtot[h]; row++) {
1069
 
      i = G.params->roworb[h][row][0];
1070
 
      j = G.params->roworb[h][row][1];
1071
 
      I1 = Z1A.params->rowidx[i]; I1sym = Z1A.params->psym[i];
1072
 
      I2 = I1; I2sym = I1sym;
1073
 
      I3 = T1A.params->rowidx[i]; I3sym = T1A.params->psym[i];
1074
 
      I4 = I3; I4sym = I3sym;
1075
 
      J1 = T1A.params->rowidx[j]; J1sym = T1A.params->psym[j];
1076
 
      J2 = J1; J2sym=J1sym;
1077
 
      J3 = Z1A.params->rowidx[j]; J3sym = Z1A.params->psym[j];
1078
 
      J4 = J3; J4sym=J3sym;
1079
 
      for(col=0; col < G.params->coltot[h]; col++) {
1080
 
        a = G.params->colorb[h][col][0];
1081
 
        b = G.params->colorb[h][col][1];
1082
 
        A1 = Z1A.params->colidx[a]; A1sym = Z1A.params->qsym[a];
1083
 
        A4 = A1; A4sym = A1sym;
1084
 
        A2 = T1A.params->colidx[a]; A2sym = T1A.params->qsym[a];
1085
 
        A3 = A2; A3sym = A2sym;
1086
 
        B1 = T1A.params->colidx[b]; B1sym = T1A.params->qsym[b];
1087
 
        B4 = B1; B4sym = B1sym;
1088
 
        B2 = Z1A.params->colidx[b]; B2sym = Z1A.params->qsym[b];
1089
 
        B3 = B2; B3sym = B2sym;
1090
 
        /* + Z(I,A) T(J,B) */
1091
 
        if ( ((I1sym^A1sym)==G_irr) && (J1sym==B1sym) )
1092
 
          G.matrix[h][row][col] +=
1093
 
            Z1A.matrix[I1sym][I1][A1] * T1A.matrix[J1sym][J1][B1];
1094
 
        /* - Z(I,B) T(J,A) */
1095
 
        if ( ((I2sym^B2sym)==G_irr) && (J2sym==A2sym) )
1096
 
          G.matrix[h][row][col] -=
1097
 
            Z1A.matrix[I2sym][I2][B2] * T1A.matrix[J2sym][J2][A2];
1098
 
        /* + T(I,A) Z(J,B) */
1099
 
        if ( ((J3sym^B3sym)==G_irr) && (I3sym==A3sym) )
1100
 
          G.matrix[h][row][col] +=
1101
 
            Z1A.matrix[J3sym][J3][B3] * T1A.matrix[I3sym][I3][A3];
1102
 
        /* - T(I,B) Z(J,A) */
1103
 
        if ( ((J4sym^A4sym)==G_irr) && (I4sym==B4sym) )
1104
 
          G.matrix[h][row][col] -=
1105
 
            Z1A.matrix[J4sym][J4][A4] * T1A.matrix[I4sym][I4][B4];
1106
 
      }
1107
 
    }
1108
 
    dpd_buf4_mat_irrep_wrt(&G, h);
1109
 
    dpd_buf4_mat_irrep_close(&G, h);
1110
 
  }
1111
 
  dpd_buf4_close(&G);
1112
 
 
1113
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 12, 17, 12, 17, 0, "Gijab");
1114
 
  for(h=0; h < nirreps; h++) {
1115
 
    dpd_buf4_mat_irrep_init(&G, h);
1116
 
    dpd_buf4_mat_irrep_rd(&G, h);
1117
 
    for(row=0; row < G.params->rowtot[h]; row++) {
1118
 
      i = G.params->roworb[h][row][0];
1119
 
      j = G.params->roworb[h][row][1];
1120
 
      I1 = Z1B.params->rowidx[i]; I1sym = Z1B.params->psym[i];
1121
 
      I2 = I1; I2sym = I1sym;
1122
 
      I3 = T1B.params->rowidx[i]; I3sym = T1B.params->psym[i];
1123
 
      I4 = I3; I4sym = I3sym;
1124
 
      J1 = T1B.params->rowidx[j]; J1sym = T1B.params->psym[j];
1125
 
      J2 = J1; J2sym=J1sym;
1126
 
      J3 = Z1B.params->rowidx[j]; J3sym = Z1B.params->psym[j];
1127
 
      J4 = J3; J4sym=J3sym;
1128
 
      for(col=0; col < G.params->coltot[h]; col++) {
1129
 
        a = G.params->colorb[h][col][0];
1130
 
        b = G.params->colorb[h][col][1];
1131
 
        A1 = Z1B.params->colidx[a]; A1sym = Z1B.params->qsym[a];
1132
 
        A4 = A1; A4sym = A1sym;
1133
 
        A2 = T1B.params->colidx[a]; A2sym = T1B.params->qsym[a];
1134
 
        A3 = A2; A3sym = A2sym;
1135
 
        B1 = T1B.params->colidx[b]; B1sym = T1B.params->qsym[b];
1136
 
        B4 = B1; B4sym = B1sym;
1137
 
        B2 = Z1B.params->colidx[b]; B2sym = Z1B.params->qsym[b];
1138
 
        B3 = B2; B3sym = B2sym;
1139
 
        /* + Z(i,a) T(j,b) */
1140
 
        if ( ((I1sym^A1sym)==G_irr) && (J1sym==B1sym) )
1141
 
          G.matrix[h][row][col] +=
1142
 
            Z1B.matrix[I1sym][I1][A1] * T1B.matrix[J1sym][J1][B1];
1143
 
        /* - Z(i,b) T(j,a) */
1144
 
        if ( ((I2sym^B2sym)==G_irr) && (J2sym==A2sym) )
1145
 
          G.matrix[h][row][col] -=
1146
 
            Z1B.matrix[I2sym][I2][B2] * T1B.matrix[J2sym][J2][A2];
1147
 
        /* + T(i,a) Z(j,b) */
1148
 
        if ( ((J3sym^B3sym)==G_irr) && (I3sym==A3sym) )
1149
 
          G.matrix[h][row][col] +=
1150
 
            Z1B.matrix[J3sym][J3][B3] * T1B.matrix[I3sym][I3][A3];
1151
 
        /* - T(i,b) Z(j,a) */
1152
 
        if ( ((J4sym^A4sym)==G_irr) && (I4sym==B4sym) )
1153
 
          G.matrix[h][row][col] -=
1154
 
            Z1B.matrix[J4sym][J4][A4] * T1B.matrix[I4sym][I4][B4];
1155
 
      }
1156
 
    }
1157
 
    dpd_buf4_mat_irrep_wrt(&G, h);
1158
 
    dpd_buf4_mat_irrep_close(&G, h);
1159
 
  }
1160
 
  dpd_buf4_close(&G);
1161
 
 
1162
 
  /* + Z(I,A) T(j,b) */
1163
 
  /* + T(I,A) Z(j,b) */
1164
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 22, 28, 22, 28, 0, "GIjAb");
1165
 
  for(h=0; h < nirreps; h++) {
1166
 
    dpd_buf4_mat_irrep_init(&G, h);
1167
 
    dpd_buf4_mat_irrep_rd(&G, h);
1168
 
    for(row=0; row < G.params->rowtot[h]; row++) {
1169
 
      i = G.params->roworb[h][row][0];
1170
 
      j = G.params->roworb[h][row][1];
1171
 
      I1 = Z1A.params->rowidx[i]; I1sym = Z1A.params->psym[i];
1172
 
      I2 = T1A.params->rowidx[i]; I2sym = T1A.params->psym[i];
1173
 
      J1 = T1B.params->rowidx[j]; J1sym = T1B.params->psym[j];
1174
 
      J2 = Z1B.params->rowidx[j]; J2sym = Z1B.params->psym[j];
1175
 
      for(col=0; col < G.params->coltot[h]; col++) {
1176
 
        a = G.params->colorb[h][col][0];
1177
 
        b = G.params->colorb[h][col][1];
1178
 
        A1 = Z1A.params->colidx[a]; A1sym = Z1A.params->qsym[a];
1179
 
        A2 = T1A.params->colidx[a]; A2sym = T1A.params->qsym[a];
1180
 
        B1 = T1B.params->colidx[b]; B1sym = T1B.params->qsym[b];
1181
 
        B2 = Z1B.params->colidx[b]; B2sym = Z1B.params->qsym[b];
1182
 
        /* + Z(I,A) T(j,b) */
1183
 
        if ( ((I1sym^A1sym)==G_irr) && (J1sym==B1sym) )
1184
 
          G.matrix[h][row][col] +=
1185
 
            Z1A.matrix[I1sym][I1][A1] * T1B.matrix[J1sym][J1][B1];
1186
 
        /* + T(I,A) Z(j,b) */
1187
 
        if ( ((J2sym^B2sym)==G_irr) && (I2sym==A2sym) )
1188
 
          G.matrix[h][row][col] +=
1189
 
            T1A.matrix[I2sym][I2][A2] * Z1B.matrix[J2sym][J2][B2];
1190
 
      }
1191
 
    }
1192
 
    dpd_buf4_mat_irrep_wrt(&G, h);
1193
 
    dpd_buf4_mat_irrep_close(&G, h);
1194
 
  }
1195
 
  dpd_buf4_close(&G);
1196
 
 
1197
 
  dpd_file2_mat_close(&T1A); dpd_file2_mat_close(&T1B);
1198
 
  dpd_file2_close(&T1A); dpd_file2_close(&T1B);
1199
 
 
1200
 
  dpd_file2_mat_close(&Z1A); dpd_file2_mat_close(&Z1B);
1201
 
  dpd_file2_close(&Z1A); dpd_file2_close(&Z1B);
1202
 
 
1203
 
  psio_close(EOM_TMP1,0);
1204
 
  psio_open(EOM_TMP1,PSIO_OPEN_NEW);
1205
 
  return;
1206
 
}
1207
 
 
1208
 
 
1209
 
 
1210
 
/* This function computes the following EOM Gijab terms
1211
 
   P(ij) P(ab) [ Z(i,a) * R(j,b) ]
1212
 
   Z(i,a) += Timae Lme, term 18
1213
 
   Z(i,a) -= 0.5 (Lmnef Tmnea) Tif, term 32
1214
 
   Z(i,a) -= 0.5 (Lmnef Tmief) Tna; term 34
1215
 
   Z(i,a) += Lme Tma Tie ; term 19
1216
 
 */
1217
 
 
1218
 
void x_Gijab_uhf_3(void) { 
1219
 
  int h, nirreps, row, col;
1220
 
  int i,j,a,b;
1221
 
  int I1, I2, I3, I4, J1, J2, J3, J4, A1, A2, A3, A4, B1, B2, B3, B4;
1222
 
  int I1sym, I2sym, I3sym, I4sym, J1sym, J2sym, J3sym, J4sym;
1223
 
  int A1sym, A2sym, A3sym, A4sym, B1sym, B2sym, B3sym, B4sym;
1224
 
  int L_irr, R_irr, G_irr;
1225
 
  dpdfile2 L1T2A, L1T2B, T1A, T1B, Z1A, Z1B, I1A, I1B, R1A, R1B;
1226
 
  dpdbuf4 G, I, Z, Z2, T, L;
1227
 
 
1228
 
  L_irr = params.L_irr; R_irr = params.R_irr; G_irr = params.G_irr;
1229
 
  nirreps = moinfo.nirreps;
1230
 
 
1231
 
  /* Z(I,A) += L1T2_OV, term 18 */
1232
 
  dpd_file2_init(&L1T2A, EOM_TMP, L_irr, 0, 1, "L1T2_OV");
1233
 
  dpd_file2_init(&L1T2B, EOM_TMP, L_irr, 2, 3, "L1T2_ov");
1234
 
  dpd_file2_copy(&L1T2A, EOM_TMP1, "ZIA");
1235
 
  dpd_file2_copy(&L1T2B, EOM_TMP1, "Zia");
1236
 
  dpd_file2_close(&L1T2A);
1237
 
  dpd_file2_close(&L1T2B);
1238
 
 
1239
 
  dpd_file2_init(&Z1A, EOM_TMP1, L_irr, 0, 1, "ZIA");
1240
 
  dpd_file2_init(&Z1B, EOM_TMP1, L_irr, 2, 3, "Zia");
1241
 
 
1242
 
  /* Z(I,A) -= 0.5 Lmnef Tmnea Tif, term 32 */
1243
 
  dpd_file2_init(&I1A, EOM_TMP, L_irr, 1, 1, "LT2_VV");
1244
 
  dpd_file2_init(&T1A, CC_OEI, 0, 0, 1, "tIA");
1245
 
  dpd_contract222(&T1A, &I1A, &Z1A, 0, 1, -1.0, 1.0);
1246
 
  dpd_file2_close(&T1A);
1247
 
  dpd_file2_close(&I1A);
1248
 
  dpd_file2_init(&I1B, EOM_TMP, L_irr, 3, 3, "LT2_vv");
1249
 
  dpd_file2_init(&T1B, CC_OEI, 0, 2, 3, "tia");
1250
 
  dpd_contract222(&T1B, &I1B, &Z1B, 0, 1, -1.0, 1.0);
1251
 
  dpd_file2_close(&T1B);
1252
 
  dpd_file2_close(&I1B);
1253
 
 
1254
 
  /* Z(i,a) -= 0.5 (Lmnef Tmief ) Tna; term 34 */
1255
 
  dpd_file2_init(&I1A, EOM_TMP, L_irr, 0, 0, "LT2_OO");
1256
 
  dpd_file2_init(&T1A, CC_OEI, 0, 0, 1, "tIA");
1257
 
  dpd_contract222(&I1A, &T1A, &Z1A, 1, 1, -1.0, 1.0);
1258
 
  dpd_file2_close(&T1A);
1259
 
  dpd_file2_close(&I1A);
1260
 
  dpd_file2_init(&I1B, EOM_TMP, L_irr, 2, 2, "LT2_oo");
1261
 
  dpd_file2_init(&T1B, CC_OEI, 0, 2, 3, "tia");
1262
 
  dpd_contract222(&I1B, &T1B, &Z1B, 1, 1, -1.0, 1.0);
1263
 
  dpd_file2_close(&T1B);
1264
 
  dpd_file2_close(&I1B);
1265
 
 
1266
 
  /* Z(i,a) += Lme Tma Tie ; term 19  */
1267
 
  dpd_file2_init(&I1A, EOM_TMP, L_irr, 1, 1, "LT1_VV");
1268
 
  dpd_file2_init(&T1A, CC_OEI, 0, 0, 1, "tIA");
1269
 
  dpd_contract222(&T1A, &I1A, &Z1A, 0, 1, -1.0, 1.0);
1270
 
  dpd_file2_close(&T1A);
1271
 
  dpd_file2_close(&I1A);
1272
 
  dpd_file2_init(&I1B, EOM_TMP, L_irr, 3, 3, "LT1_vv");
1273
 
  dpd_file2_init(&T1B, CC_OEI, 0, 2, 3, "tia");
1274
 
  dpd_contract222(&T1B, &I1B, &Z1B, 0, 1, -1.0, 1.0);
1275
 
  dpd_file2_close(&T1B);
1276
 
  dpd_file2_close(&I1B);
1277
 
 
1278
 
  /* open one-electron files for the nasty terms */
1279
 
  dpd_file2_mat_init(&Z1A);   dpd_file2_mat_init(&Z1B);
1280
 
  dpd_file2_mat_rd(&Z1A);     dpd_file2_mat_rd(&Z1B);
1281
 
 
1282
 
  dpd_file2_init(&R1A, CC_GR, R_irr, 0, 1, "RIA");
1283
 
  dpd_file2_init(&R1B, CC_GR, R_irr, 2, 3, "Ria");
1284
 
  dpd_file2_mat_init(&R1A);   dpd_file2_mat_init(&R1B);
1285
 
  dpd_file2_mat_rd(&R1A);     dpd_file2_mat_rd(&R1B);
1286
 
 
1287
 
  /* + Z(I,A) R(J,B) */
1288
 
  /* - Z(I,B) R(J,A) */
1289
 
  /* + R(I,A) Z(J,B) */
1290
 
  /* - R(I,B) Z(J,A) */
1291
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 2, 7, 2, 7, 0, "GIJAB");
1292
 
  for(h=0; h < nirreps; h++) {
1293
 
    dpd_buf4_mat_irrep_init(&G, h);
1294
 
    dpd_buf4_mat_irrep_rd(&G, h);
1295
 
    for(row=0; row < G.params->rowtot[h]; row++) {
1296
 
      i = G.params->roworb[h][row][0];
1297
 
      j = G.params->roworb[h][row][1];
1298
 
      I1 = Z1A.params->rowidx[i]; I1sym = Z1A.params->psym[i];
1299
 
      I2 = I1; I2sym = I1sym;
1300
 
      I3 = R1A.params->rowidx[i]; I3sym = R1A.params->psym[i];
1301
 
      I4 = I3; I4sym = I3sym;
1302
 
      J1 = R1A.params->rowidx[j]; J1sym = R1A.params->psym[j];
1303
 
      J2 = J1; J2sym=J1sym;
1304
 
      J3 = Z1A.params->rowidx[j]; J3sym = Z1A.params->psym[j];
1305
 
      J4 = J3; J4sym=J3sym;
1306
 
      for(col=0; col < G.params->coltot[h]; col++) {
1307
 
        a = G.params->colorb[h][col][0];
1308
 
        b = G.params->colorb[h][col][1];
1309
 
        A1 = Z1A.params->colidx[a]; A1sym = Z1A.params->qsym[a];
1310
 
        A4 = A1; A4sym = A1sym;
1311
 
        A2 = R1A.params->colidx[a]; A2sym = R1A.params->qsym[a];
1312
 
        A3 = A2; A3sym = A2sym;
1313
 
        B1 = R1A.params->colidx[b]; B1sym = R1A.params->qsym[b];
1314
 
        B4 = B1; B4sym = B1sym;
1315
 
        B2 = Z1A.params->colidx[b]; B2sym = Z1A.params->qsym[b];
1316
 
        B3 = B2; B3sym = B2sym;
1317
 
        /* + Z(I,A) R(J,B) */
1318
 
        if ( ((I1sym^A1sym)==L_irr) && ((J1sym^B1sym)==R_irr) )
1319
 
          G.matrix[h][row][col] +=
1320
 
            Z1A.matrix[I1sym][I1][A1] * R1A.matrix[J1sym][J1][B1];
1321
 
        /* - Z(I,B) R(J,A) */
1322
 
        if ( ((I2sym^B2sym)==L_irr) && ((J2sym^A2sym)==R_irr) )
1323
 
          G.matrix[h][row][col] -=
1324
 
            Z1A.matrix[I2sym][I2][B2] * R1A.matrix[J2sym][J2][A2];
1325
 
        /* + R(I,A) Z(J,B) */
1326
 
        if ( ((J3sym^B3sym)==L_irr) && ((I3sym^A3sym)==R_irr) )
1327
 
          G.matrix[h][row][col] +=
1328
 
            Z1A.matrix[J3sym][J3][B3] * R1A.matrix[I3sym][I3][A3];
1329
 
        /* - R(I,B) Z(J,A) */
1330
 
        if ( ((J4sym^A4sym)==L_irr) && ((I4sym^B4sym)==R_irr) )
1331
 
          G.matrix[h][row][col] -=
1332
 
            Z1A.matrix[J4sym][J4][A4] * R1A.matrix[I4sym][I4][B4];
1333
 
      }
1334
 
    }
1335
 
    dpd_buf4_mat_irrep_wrt(&G, h);
1336
 
    dpd_buf4_mat_irrep_close(&G, h);
1337
 
  }
1338
 
  dpd_buf4_close(&G);
1339
 
 
1340
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 12, 17, 12, 17, 0, "Gijab");
1341
 
  for(h=0; h < nirreps; h++) {
1342
 
    dpd_buf4_mat_irrep_init(&G, h);
1343
 
    dpd_buf4_mat_irrep_rd(&G, h);
1344
 
    for(row=0; row < G.params->rowtot[h]; row++) {
1345
 
      i = G.params->roworb[h][row][0];
1346
 
      j = G.params->roworb[h][row][1];
1347
 
      I1 = Z1B.params->rowidx[i]; I1sym = Z1B.params->psym[i];
1348
 
      I2 = I1; I2sym = I1sym;
1349
 
      I3 = R1B.params->rowidx[i]; I3sym = R1B.params->psym[i];
1350
 
      I4 = I3; I4sym = I3sym;
1351
 
      J1 = R1B.params->rowidx[j]; J1sym = R1B.params->psym[j];
1352
 
      J2 = J1; J2sym=J1sym;
1353
 
      J3 = Z1B.params->rowidx[j]; J3sym = Z1B.params->psym[j];
1354
 
      J4 = J3; J4sym=J3sym;
1355
 
      for(col=0; col < G.params->coltot[h]; col++) {
1356
 
        a = G.params->colorb[h][col][0];
1357
 
        b = G.params->colorb[h][col][1];
1358
 
        A1 = Z1B.params->colidx[a]; A1sym = Z1B.params->qsym[a];
1359
 
        A4 = A1; A4sym = A1sym;
1360
 
        A2 = R1B.params->colidx[a]; A2sym = R1B.params->qsym[a];
1361
 
        A3 = A2; A3sym = A2sym;
1362
 
        B1 = R1B.params->colidx[b]; B1sym = R1B.params->qsym[b];
1363
 
        B4 = B1; B4sym = B1sym;
1364
 
        B2 = Z1B.params->colidx[b]; B2sym = Z1B.params->qsym[b];
1365
 
        B3 = B2; B3sym = B2sym;
1366
 
        /* + Z(i,a) R(j,b) */
1367
 
        if ( ((I1sym^A1sym)==L_irr) && ((J1sym^B1sym)==R_irr ) )
1368
 
          G.matrix[h][row][col] +=
1369
 
            Z1B.matrix[I1sym][I1][A1] * R1B.matrix[J1sym][J1][B1];
1370
 
        /* - Z(i,b) R(j,a) */
1371
 
        if ( ((I2sym^B2sym)==L_irr) && ((J2sym^A2sym)==R_irr ) )
1372
 
          G.matrix[h][row][col] -=
1373
 
            Z1B.matrix[I2sym][I2][B2] * R1B.matrix[J2sym][J2][A2];
1374
 
        /* + R(i,a) Z(j,b) */
1375
 
        if ( ((J3sym^B3sym)==L_irr) && ((I3sym^A3sym)==R_irr ) )
1376
 
          G.matrix[h][row][col] +=
1377
 
            Z1B.matrix[J3sym][J3][B3] * R1B.matrix[I3sym][I3][A3];
1378
 
        /* - R(i,b) Z(j,a) */
1379
 
        if ( ((J4sym^A4sym)==L_irr) && ((I4sym^B4sym)==R_irr ) )
1380
 
          G.matrix[h][row][col] -=
1381
 
            Z1B.matrix[J4sym][J4][A4] * R1B.matrix[I4sym][I4][B4];
1382
 
      }
1383
 
    }
1384
 
    dpd_buf4_mat_irrep_wrt(&G, h);
1385
 
    dpd_buf4_mat_irrep_close(&G, h);
1386
 
  }
1387
 
  dpd_buf4_close(&G);
1388
 
 
1389
 
  /* + Z(I,A) R(j,b) */
1390
 
  /* + R(I,A) Z(j,b) */
1391
 
  dpd_buf4_init(&G, EOM_TMP0, G_irr, 22, 28, 22, 28, 0, "GIjAb");
1392
 
  for(h=0; h < nirreps; h++) {
1393
 
    dpd_buf4_mat_irrep_init(&G, h);
1394
 
    dpd_buf4_mat_irrep_rd(&G, h);
1395
 
    for(row=0; row < G.params->rowtot[h]; row++) {
1396
 
      i = G.params->roworb[h][row][0];
1397
 
      j = G.params->roworb[h][row][1];
1398
 
      I1 = Z1A.params->rowidx[i]; I1sym = Z1A.params->psym[i];
1399
 
      I2 = R1A.params->rowidx[i]; I2sym = R1A.params->psym[i];
1400
 
      J1 = R1B.params->rowidx[j]; J1sym = R1B.params->psym[j];
1401
 
      J2 = Z1B.params->rowidx[j]; J2sym = Z1B.params->psym[j];
1402
 
      for(col=0; col < G.params->coltot[h]; col++) {
1403
 
        a = G.params->colorb[h][col][0];
1404
 
        b = G.params->colorb[h][col][1];
1405
 
        A1 = Z1A.params->colidx[a]; A1sym = Z1A.params->qsym[a];
1406
 
        A2 = R1A.params->colidx[a]; A2sym = R1A.params->qsym[a];
1407
 
        B1 = R1B.params->colidx[b]; B1sym = R1B.params->qsym[b];
1408
 
        B2 = Z1B.params->colidx[b]; B2sym = Z1B.params->qsym[b];
1409
 
        /* + Z(I,A) R(j,b) */
1410
 
        if ( ((I1sym^A1sym)==L_irr) && ((J1sym^B1sym)==R_irr ) )
1411
 
          G.matrix[h][row][col] +=
1412
 
            Z1A.matrix[I1sym][I1][A1] * R1B.matrix[J1sym][J1][B1];
1413
 
        /* + R(I,A) Z(j,b) */
1414
 
        if ( ((J2sym^B2sym)==L_irr) && ((I2sym^A2sym)==R_irr ) )
1415
 
          G.matrix[h][row][col] +=
1416
 
            R1A.matrix[I2sym][I2][A2] * Z1B.matrix[J2sym][J2][B2];
1417
 
      }
1418
 
    }
1419
 
    dpd_buf4_mat_irrep_wrt(&G, h);
1420
 
    dpd_buf4_mat_irrep_close(&G, h);
1421
 
  }
1422
 
  dpd_buf4_close(&G);
1423
 
 
1424
 
  dpd_file2_mat_close(&R1A); dpd_file2_mat_close(&R1B);
1425
 
  dpd_file2_close(&R1A); dpd_file2_close(&R1B);
1426
 
 
1427
 
  dpd_file2_mat_close(&Z1A); dpd_file2_mat_close(&Z1B);
1428
 
  dpd_file2_close(&Z1A); dpd_file2_close(&Z1B);
1429
 
 
1430
 
  psio_close(EOM_TMP1,0);
1431
 
  psio_open(EOM_TMP1,PSIO_OPEN_NEW);
1432
 
  return;
1433
 
}