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

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Michael Banck
  • Date: 2008-06-07 16:49:57 UTC
  • mfrom: (2.1.2 hardy)
  • Revision ID: james.westby@ubuntu.com-20080607164957-8pifvb133yjlkagn
Tags: 3.3.0-3
* debian/rules (DEB_MAKE_CHECK_TARGET): Do not abort test suite on
  failures.
* debian/rules (DEB_CONFIGURE_EXTRA_FLAGS): Set ${bindir} to /usr/lib/psi.
* debian/rules (install/psi3): Move psi3 file to /usr/bin.
* debian/patches/07_464867_move_executables.dpatch: New patch, add
  /usr/lib/psi to the $PATH, so that the moved executables are found.
  (closes: #464867)
* debian/patches/00list: Adjusted.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <stdio.h>
 
2
#include <libdpd/dpd.h>
 
3
#include "math.h"
 
4
#define EXTERN
 
5
#include "globals.h"
 
6
 
 
7
void x_xi2_4_rohf(void);
 
8
void x_xi2_14(void);
 
9
void x_xi2_rohf(void);
 
10
extern void x_xi_check(char *term_lbl);
 
11
extern void x_xi2_uhf(void);
 
12
extern void x_xi2_rhf(void);
 
13
 
 
14
/* compute xi_2 amplitudes for zeta equations */
 
15
 
 
16
void x_xi2(void) {
 
17
  if (params.ref == 0)
 
18
    x_xi2_rhf();
 
19
  else if (params.ref == 1)
 
20
    x_xi2_rohf();
 
21
  else 
 
22
    x_xi2_uhf();
 
23
  return;
 
24
}
 
25
 
 
26
void x_xi2_rohf(void)
 
27
{
 
28
  dpdfile2 L1, XIA, Xia, I1, R1, F1, Z1A, Z1B;
 
29
  int L_irr, R_irr, G_irr;
 
30
  double tval;
 
31
  dpdbuf4 D2, R2, L2, H2, I2, Z, Z2, XIJAB, Xijab, XIjAb;
 
32
 
 
33
  L_irr = params.L_irr;
 
34
  R_irr = params.R_irr;
 
35
  G_irr = params.G_irr;
 
36
 
 
37
#ifdef DEBUG_XI
 
38
  x_xi_check("reset");
 
39
#endif
 
40
 
 
41
  /* terms 1 and 5, Xijab += (Lme Rme + 0.25 Lmnef Rmnef) <ij||eb> */
 
42
  /* overlaps in params are assigned in x_xi1.c */
 
43
  /* see comments in xi1_connected.c */
 
44
  dpd_buf4_init(&D2, CC_DINTS, 0, 2, 7, 2, 7, 0, "D <ij||ab> (i>j,a>b)");
 
45
  dpd_buf4_scmcopy(&D2, EOM_XI, "XIJAB", params.overlap1+params.overlap2);
 
46
  dpd_buf4_scmcopy(&D2, EOM_XI, "Xijab", params.overlap1+params.overlap2);
 
47
  dpd_buf4_close(&D2);
 
48
  dpd_buf4_init(&D2, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
 
49
  dpd_buf4_scmcopy(&D2, EOM_XI, "XIjAb", params.overlap1+params.overlap2);
 
50
  dpd_buf4_close(&D2);
 
51
#ifdef DEBUG_XI
 
52
x_xi_check("terms 1 and 5");
 
53
#endif
 
54
 
 
55
  /* terms 2 and 9, Xijab -= P(ab) (Lma Rme + Lmnfa Rmnfe) <ij||eb */
 
56
  dpd_buf4_init(&Z2, EOM_TMP1, 0, 2, 5, 2, 5, 0, "Z (I>J,AB)");
 
57
  dpd_file2_init(&I1, EOM_TMP, G_irr, 1, 1, "LR_VV");
 
58
  dpd_buf4_init(&D2, CC_DINTS, 0, 2, 5, 2, 5, 0, "D <ij||ab> (i>j,ab)");
 
59
  dpd_contract244(&I1, &D2, &Z2, 1, 2, 1, 1.0, 0.0);
 
60
  dpd_buf4_close(&D2);
 
61
  dpd_file2_close(&I1);
 
62
  dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 2, 5, 2, 7, 0, "XIJAB");
 
63
  dpd_buf4_axpy(&Z2, &XIJAB, -1.0);
 
64
  dpd_buf4_close(&XIJAB);
 
65
  dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 2, 7, "XIJAB", 1.0);
 
66
  dpd_buf4_close(&Z2);
 
67
 
 
68
  dpd_buf4_init(&Z2, EOM_TMP1, 0, 2, 5, 2, 5, 0, "Z (i>j,ab)");
 
69
  dpd_file2_init(&I1, EOM_TMP, G_irr, 1, 1, "LR_vv");
 
70
  dpd_buf4_init(&D2, CC_DINTS, 0, 2, 5, 2, 5, 0, "D <ij||ab> (i>j,ab)");
 
71
  dpd_contract244(&I1, &D2, &Z2, 1, 2, 1, 1.0, 0.0);
 
72
  dpd_buf4_close(&D2);
 
73
  dpd_file2_close(&I1);
 
74
  dpd_buf4_init(&Xijab, EOM_XI, G_irr, 2, 5, 2, 7, 0, "Xijab");
 
75
  dpd_buf4_axpy(&Z2, &Xijab, -1.0);
 
76
  dpd_buf4_close(&Xijab);
 
77
  dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 2, 7, "Xijab", 1.0);
 
78
  dpd_buf4_close(&Z2);
 
79
 
 
80
  dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
 
81
  dpd_file2_init(&I1, EOM_TMP, G_irr, 1, 1, "LR_VV");
 
82
  dpd_buf4_init(&D2, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
 
83
  dpd_contract244(&I1, &D2, &XIjAb, 1, 2, 1, -1.0, 1.0);
 
84
  dpd_file2_close(&I1);
 
85
  dpd_file2_init(&I1, EOM_TMP, G_irr, 1, 1, "LR_vv");
 
86
  dpd_contract424(&D2, &I1, &XIjAb, 3, 1, 0, -1.0, 1.0);
 
87
  dpd_file2_close(&I1);
 
88
  dpd_buf4_close(&D2);
 
89
  dpd_buf4_close(&XIjAb);
 
90
#ifdef DEBUG_XI
 
91
x_xi_check("terms 2 and 9");
 
92
#endif
 
93
 
 
94
  /* terms 3 and 10, Xijab -= P(ij) (Lie Rme + 0.5 Linef Rmnef) <mj||ab> */
 
95
  dpd_buf4_init(&Z2, EOM_TMP1, 0, 0, 7, 0, 7, 0, "Z (IJ,A>B)");
 
96
  dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 0, "LR_OO");
 
97
  dpd_buf4_init(&D2, CC_DINTS, 0, 0, 7, 0, 7, 0, "D <ij||ab> (ij,a>b)");
 
98
  dpd_contract244(&I1, &D2, &Z2, 1, 0, 0, 1.0, 0.0);
 
99
  dpd_buf4_close(&D2);
 
100
  dpd_file2_close(&I1);
 
101
  dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 0, 7, 2, 7, 0, "XIJAB");
 
102
  dpd_buf4_axpy(&Z2, &XIJAB, -1.0);
 
103
  dpd_buf4_close(&XIJAB);
 
104
  dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 2, 7, "XIJAB", 1.0);
 
105
  dpd_buf4_close(&Z2);
 
106
 
 
107
  dpd_buf4_init(&Z2, EOM_TMP1, 0, 0, 7, 0, 7, 0, "Z (ij,a>b)");
 
108
  dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 0, "LR_oo");
 
109
  dpd_buf4_init(&D2, CC_DINTS, 0, 0, 7, 0, 7, 0, "D <ij||ab> (ij,a>b)");
 
110
  dpd_contract244(&I1, &D2, &Z2, 1, 0, 0, 1.0, 0.0);
 
111
  dpd_buf4_close(&D2);
 
112
  dpd_file2_close(&I1);
 
113
  dpd_buf4_init(&Xijab, EOM_XI, G_irr, 0, 7, 2, 7, 0, "Xijab");
 
114
  dpd_buf4_axpy(&Z2, &Xijab, -1.0);
 
115
  dpd_buf4_close(&Xijab);
 
116
  dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 2, 7, "Xijab", 1.0);
 
117
  dpd_buf4_close(&Z2);
 
118
 
 
119
  dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
 
120
  dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 0, "LR_OO");
 
121
  dpd_buf4_init(&D2, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
 
122
  dpd_contract244(&I1, &D2, &XIjAb, 1, 0, 0, -1.0, 1.0);
 
123
  dpd_file2_close(&I1);
 
124
  dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 0, "LR_oo");
 
125
  dpd_contract424(&D2, &I1, &XIjAb, 1, 1, 1, -1.0, 1.0);
 
126
  dpd_file2_close(&I1);
 
127
  dpd_buf4_close(&D2);
 
128
  dpd_buf4_close(&XIjAb);
 
129
 
 
130
  psio_close(EOM_TMP1,0);
 
131
  psio_open(EOM_TMP1, PSIO_OPEN_NEW);
 
132
#ifdef DEBUG_XI
 
133
x_xi_check("terms 3 and 10");
 
134
#endif
 
135
 
 
136
  x_xi2_4_rohf();
 
137
 
 
138
  psio_close(EOM_TMP1,0);
 
139
  psio_open(EOM_TMP1, PSIO_OPEN_NEW);
 
140
#ifdef DEBUG_XI
 
141
x_xi_check("terms 4 and 6");
 
142
#endif
 
143
 
 
144
  /* term 7, Xijab += 0.25 Lmnab Rmnef <ij||ef> */
 
145
  dpd_buf4_init(&D2, CC_DINTS, 0, 2, 7, 2, 7, 0, "D <ij||ab> (i>j,a>b)");
 
146
  dpd_buf4_init(&R2, CC_GR, R_irr, 2, 7, 2, 7, 0, "RIJAB");
 
147
  dpd_buf4_init(&Z2, EOM_TMP1, R_irr, 2, 2, 2, 2, 0, "Z (I>J,M>N)");
 
148
  dpd_contract444(&D2, &R2, &Z2, 0, 0, 1.0, 0.0); 
 
149
  dpd_buf4_close(&R2);
 
150
  dpd_buf4_close(&D2);
 
151
  dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 2, 7, 2, 7, 0, "XIJAB");
 
152
  dpd_buf4_init(&L2, CC_GL, L_irr, 2, 7, 2, 7, 0, "LIJAB");
 
153
  dpd_contract444(&Z2, &L2, &XIJAB, 0, 1, 1.0, 1.0); 
 
154
  dpd_buf4_close(&L2);
 
155
  dpd_buf4_close(&Z2);
 
156
  dpd_buf4_close(&XIJAB);
 
157
 
 
158
  dpd_buf4_init(&D2, CC_DINTS, 0, 2, 7, 2, 7, 0, "D <ij||ab> (i>j,a>b)");
 
159
  dpd_buf4_init(&R2, CC_GR, R_irr, 2, 7, 2, 7, 0, "Rijab");
 
160
  dpd_buf4_init(&Z2, EOM_TMP1, R_irr, 2, 2, 2, 2, 0, "Z (i>j,m>n)");
 
161
  dpd_contract444(&D2, &R2, &Z2, 0, 0, 1.0, 0.0); 
 
162
  dpd_buf4_close(&R2);
 
163
  dpd_buf4_close(&D2);
 
164
  dpd_buf4_init(&Xijab, EOM_XI, G_irr, 2, 7, 2, 7, 0, "Xijab");
 
165
  dpd_buf4_init(&L2, CC_GL, L_irr, 2, 7, 2, 7, 0, "Lijab");
 
166
  dpd_contract444(&Z2, &L2, &Xijab, 0, 1, 1.0, 1.0); 
 
167
  dpd_buf4_close(&L2);
 
168
  dpd_buf4_close(&Z2);
 
169
  dpd_buf4_close(&Xijab);
 
170
 
 
171
  dpd_buf4_init(&D2, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
 
172
  dpd_buf4_init(&R2, CC_GR, R_irr, 0, 5, 0, 5, 0, "RIjAb");
 
173
  dpd_buf4_init(&Z2, EOM_TMP1, R_irr, 0, 0, 0, 0, 0, "Z (Ij,Mn)");
 
174
  dpd_contract444(&D2, &R2, &Z2, 0, 0, 1.0, 0.0); 
 
175
  dpd_buf4_close(&R2);
 
176
  dpd_buf4_close(&D2);
 
177
  dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
 
178
  dpd_buf4_init(&L2, CC_GL, L_irr, 0, 5, 0, 5, 0, "LIjAb");
 
179
  dpd_contract444(&Z2, &L2, &XIjAb, 0, 1, 1.0, 1.0); 
 
180
  dpd_buf4_close(&L2);
 
181
  dpd_buf4_close(&Z2);
 
182
  dpd_buf4_close(&XIjAb);
 
183
 
 
184
  psio_close(EOM_TMP1,0);
 
185
  psio_open(EOM_TMP1, PSIO_OPEN_NEW);
 
186
#ifdef DEBUG_XI
 
187
x_xi_check("term 7");
 
188
#endif
 
189
 
 
190
  /* term 8, Xijab += 0.25 Rmnef Lijef <mn||ab> */
 
191
  dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 2, 7, 2, 7, 0, "XIJAB");
 
192
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 2, 2, 2, 2, 0, "R2L2_OOOO");
 
193
  dpd_buf4_init(&D2, CC_DINTS, 0, 2, 7, 2, 7, 0, "D <ij||ab> (i>j,a>b)");
 
194
  dpd_contract444(&I2, &D2, &XIJAB, 1, 1, 1.0, 1.0); 
 
195
  dpd_buf4_close(&D2);
 
196
  dpd_buf4_close(&I2);
 
197
  dpd_buf4_close(&XIJAB);
 
198
  dpd_buf4_init(&Xijab, EOM_XI, G_irr, 2, 7, 2, 7, 0, "Xijab");
 
199
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 2, 2, 2, 2, 0, "R2L2_oooo");
 
200
  dpd_buf4_init(&D2, CC_DINTS, 0, 2, 7, 2, 7, 0, "D <ij||ab> (i>j,a>b)");
 
201
  dpd_contract444(&I2, &D2, &Xijab, 1, 1, 1.0, 1.0); 
 
202
  dpd_buf4_close(&D2);
 
203
  dpd_buf4_close(&I2);
 
204
  dpd_buf4_close(&Xijab);
 
205
  dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
 
206
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 0, 0, 0, 0, 0, "R2L2_OoOo");
 
207
  dpd_buf4_init(&D2, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <ij|ab>");
 
208
  dpd_contract444(&I2, &D2, &XIjAb, 1, 1, 1.0, 1.0); 
 
209
  dpd_buf4_close(&D2);
 
210
  dpd_buf4_close(&I2);
 
211
  dpd_buf4_close(&XIjAb);
 
212
 
 
213
#ifdef DEBUG_XI
 
214
x_xi_check("term 8");
 
215
#endif
 
216
 
 
217
  /* term 11, Xijab -= 0.5 P(ab) Lijfb (Rmnef <mn||ea>) */
 
218
  /* term 17        -=     P(ab) Lijfb (Rmf Fma) */
 
219
  /* term 20        +=     P(ab) Lijfb (Rme Wfmae) */
 
220
  /* build 1-e intermediates to include term 17 */
 
221
      /* for term 11: */
 
222
  dpd_file2_init(&I1, EOM_TMP_XI, R_irr, 1, 1, "RD_VV");
 
223
  dpd_file2_copy(&I1, EOM_TMP1, "Z (F,A)");
 
224
  dpd_file2_close(&I1);
 
225
  dpd_file2_init(&I1, EOM_TMP1, R_irr, 1, 1, "Z (F,A)");
 
226
      /* for term 20: */
 
227
  dpd_file2_init(&Z1A, EOM_TMP_XI, R_irr, 1, 1, "R1Wamef_VV");
 
228
  dpd_file2_axpy(&Z1A, &I1, -1.0, 0);
 
229
  dpd_file2_close(&Z1A);
 
230
      /* for term 17: */
 
231
  dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
 
232
  dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "FME");
 
233
  dpd_contract222(&R1, &F1, &I1, 1, 1, 1.0, 1.0);
 
234
  dpd_file2_close(&F1);
 
235
  dpd_file2_close(&R1);
 
236
  dpd_file2_close(&I1);
 
237
 
 
238
      /* for term 11: */
 
239
  dpd_file2_init(&I1, EOM_TMP_XI, R_irr, 1, 1, "RD_vv");
 
240
  dpd_file2_copy(&I1, EOM_TMP1, "Z (f,a)");
 
241
  dpd_file2_close(&I1);
 
242
  dpd_file2_init(&I1, EOM_TMP1, R_irr, 1, 1, "Z (f,a)");
 
243
      /* for term 20: */
 
244
  dpd_file2_init(&Z1B, EOM_TMP_XI, R_irr, 1, 1, "R1Wamef_vv");
 
245
  dpd_file2_axpy(&Z1B, &I1, -1.0, 0);
 
246
  dpd_file2_close(&Z1B);
 
247
      /* for term 17: */
 
248
  dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "Ria");
 
249
  dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "Fme");
 
250
  dpd_contract222(&R1, &F1, &I1, 1, 1, 1.0, 1.0);
 
251
  dpd_file2_close(&F1);
 
252
  dpd_file2_close(&R1);
 
253
  dpd_file2_close(&I1);
 
254
 
 
255
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 2, 5, 2, 5, 0, "Z (I>J,AB)"); 
 
256
  dpd_file2_init(&I1, EOM_TMP1, R_irr, 1, 1, "Z (F,A)");
 
257
  dpd_buf4_init(&L2, CC_GL, L_irr, 2, 5, 2, 7, 0, "LIJAB");
 
258
  dpd_contract244(&I1, &L2, &Z2, 0, 2, 1, 1.0, 0.0);
 
259
  dpd_buf4_close(&L2);
 
260
  dpd_file2_close(&I1);
 
261
  dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 2, 5, 2, 7, 0, "XIJAB");
 
262
  dpd_buf4_axpy(&Z2, &XIJAB, -1.0);
 
263
  dpd_buf4_close(&XIJAB);
 
264
  dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 2, 7, "XIJAB", 1.0);
 
265
  dpd_buf4_close(&Z2);
 
266
 
 
267
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 2, 5, 2, 5, 0, "Z (i>j,ab)"); 
 
268
  dpd_file2_init(&I1, EOM_TMP1, R_irr, 1, 1, "Z (f,a)");
 
269
  dpd_buf4_init(&L2, CC_GL, L_irr, 2, 5, 2, 7, 0, "Lijab");
 
270
  dpd_contract244(&I1, &L2, &Z2, 0, 2, 1, 1.0, 0.0);
 
271
  dpd_buf4_close(&L2);
 
272
  dpd_file2_close(&I1);
 
273
  dpd_buf4_init(&Xijab, EOM_XI, G_irr, 2, 5, 2, 7, 0, "Xijab");
 
274
  dpd_buf4_axpy(&Z2, &Xijab, -1.0);
 
275
  dpd_buf4_close(&Xijab);
 
276
  dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 2, 7, "Xijab", 1.0);
 
277
  dpd_buf4_close(&Z2);
 
278
 
 
279
  dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
 
280
  dpd_file2_init(&I1, EOM_TMP1, R_irr, 1, 1, "Z (F,A)");
 
281
  dpd_buf4_init(&L2, CC_GL, L_irr, 0, 5, 0, 5, 0, "LIjAb");
 
282
  dpd_contract244(&I1, &L2, &XIjAb, 0, 2, 1, -1.0, 1.0);
 
283
  dpd_file2_close(&I1);
 
284
  dpd_file2_init(&I1, EOM_TMP1, R_irr, 1, 1, "Z (f,a)");
 
285
  dpd_contract424(&L2, &I1, &XIjAb, 3, 0, 0, -1.0, 1.0);
 
286
  dpd_buf4_close(&L2);
 
287
  dpd_file2_close(&I1);
 
288
  dpd_buf4_close(&XIjAb);
 
289
#ifdef DEBUG_XI
 
290
x_xi_check("terms 11, 17 and 20");
 
291
#endif
 
292
 
 
293
  /* term 12, Xijab -= 0.5 P(ij) Lmjab (Rmnef <in||ef>) */
 
294
  /* term 16,       -=     P(ij) Lmjab (Rme Fie) */
 
295
  /* term 21,       -=     P(ij) Lmjab (Rne Winme) */
 
296
  /* make 1-electron intermediates to include terms 16 and 21 as well */
 
297
      /* for term 12: */
 
298
  dpd_file2_init(&I1, EOM_TMP_XI, R_irr, 0, 0, "RD_OO");
 
299
  dpd_file2_copy(&I1, EOM_TMP1, "Z (M,I)");
 
300
  dpd_file2_close(&I1);
 
301
  dpd_file2_init(&I1, EOM_TMP1, R_irr, 0, 0, "Z (M,I)");
 
302
       /* for term 21 */
 
303
  dpd_file2_init(&Z1A, EOM_TMP_XI, R_irr, 0, 0, "R1Wmnie_OO");
 
304
  dpd_file2_axpy(&Z1A, &I1, 1.0, 1);
 
305
  dpd_file2_close(&Z1A);
 
306
      /* for term 16: */
 
307
  dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
 
308
  dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "FME");
 
309
  dpd_contract222(&R1, &F1, &I1, 0, 0, 1.0, 1.0);
 
310
  dpd_file2_close(&F1);
 
311
  dpd_file2_close(&R1);
 
312
  dpd_file2_close(&I1);
 
313
 
 
314
      /* for term 12 */
 
315
  dpd_file2_init(&I1, EOM_TMP_XI, R_irr, 0, 0, "RD_oo");
 
316
  dpd_file2_copy(&I1, EOM_TMP1, "Z (m,i)");
 
317
  dpd_file2_close(&I1);
 
318
  dpd_file2_init(&I1, EOM_TMP1, R_irr, 0, 0, "Z (m,i)");
 
319
      /* for term 21 */
 
320
  dpd_file2_init(&Z1B, EOM_TMP_XI, R_irr, 0, 0, "R1Wmnie_oo");
 
321
  dpd_file2_axpy(&Z1B, &I1, 1.0, 1);
 
322
  dpd_file2_close(&Z1B);
 
323
      /* for term 16 */
 
324
  dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "Ria");
 
325
  dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "Fme");
 
326
  dpd_contract222(&R1, &F1, &I1, 0, 0, 1.0, 1.0);
 
327
  dpd_file2_close(&F1);
 
328
  dpd_file2_close(&R1);
 
329
  dpd_file2_close(&I1);
 
330
 
 
331
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 7, 0, 7, 0, "Z (IJ,A>B)"); 
 
332
  dpd_file2_init(&I1, EOM_TMP1, R_irr, 0, 0, "Z (M,I)");
 
333
  dpd_buf4_init(&L2, CC_GL, L_irr, 0, 7, 2, 7, 0, "LIJAB");
 
334
  dpd_contract244(&I1, &L2, &Z2, 0, 0, 0, 1.0, 0.0);
 
335
  dpd_buf4_close(&L2);
 
336
  dpd_file2_close(&I1);
 
337
  dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 0, 7, 2, 7, 0, "XIJAB");
 
338
  dpd_buf4_axpy(&Z2, &XIJAB, -1.0);
 
339
  dpd_buf4_close(&XIJAB);
 
340
  dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 2, 7, "XIJAB", 1.0);
 
341
  dpd_buf4_close(&Z2);
 
342
 
 
343
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 7, 0, 7, 0, "Z (ij,a>b)"); 
 
344
  dpd_file2_init(&I1, EOM_TMP1, R_irr, 0, 0, "Z (m,i)");
 
345
  dpd_buf4_init(&L2, CC_GL, L_irr, 0, 7, 2, 7, 0, "Lijab");
 
346
  dpd_contract244(&I1, &L2, &Z2, 0, 0, 0, 1.0, 0.0);
 
347
  dpd_buf4_close(&L2);
 
348
  dpd_file2_close(&I1);
 
349
  dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 0, 7, 2, 7, 0, "Xijab");
 
350
  dpd_buf4_axpy(&Z2, &XIJAB, -1.0);
 
351
  dpd_buf4_close(&XIJAB);
 
352
  dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 2, 7, "Xijab", 1.0);
 
353
  dpd_buf4_close(&Z2);
 
354
 
 
355
  dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
 
356
  dpd_file2_init(&I1, EOM_TMP1, R_irr, 0, 0, "Z (M,I)");
 
357
  dpd_buf4_init(&L2, CC_GL, L_irr, 0, 5, 0, 5, 0, "LIjAb");
 
358
  dpd_contract244(&I1, &L2, &XIjAb, 0, 0, 0, -1.0, 1.0);
 
359
  dpd_file2_close(&I1);
 
360
  dpd_file2_init(&I1, EOM_TMP1, R_irr, 0, 0, "Z (m,i)");
 
361
  dpd_contract424(&L2, &I1, &XIjAb, 1, 0, 1, -1.0, 1.0);
 
362
  dpd_buf4_close(&L2);
 
363
  dpd_file2_close(&I1);
 
364
  dpd_buf4_close(&XIjAb);
 
365
#ifdef DEBUG_XI
 
366
x_xi_check("term 12, 16 and 21");
 
367
#endif
 
368
 
 
369
  psio_close(EOM_TMP1,0);
 
370
  psio_open(EOM_TMP1, PSIO_OPEN_NEW);
 
371
 
 
372
    /* term 13 + 15, (0.25 Rmnef <mn||ef> + Rme Fme) Lijab */
 
373
  if ( (L_irr == 0) && (!params.connect_xi)) {
 
374
    dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
 
375
    dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "FME");
 
376
    tval = dpd_file2_dot(&R1, &F1);
 
377
    dpd_file2_close(&F1);
 
378
    dpd_file2_close(&R1);
 
379
    dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "Ria");
 
380
    dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "Fme");
 
381
    tval += dpd_file2_dot(&R1, &F1);
 
382
    dpd_file2_close(&F1);
 
383
    dpd_file2_close(&R1);
 
384
    tval += params.RD_overlap;
 
385
 
 
386
    dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 2, 7, 2, 7, 0, "XIJAB");
 
387
    dpd_buf4_init(&L2, CC_GL, L_irr, 2, 7, 2, 7, 0, "LIJAB");
 
388
    dpd_buf4_axpy(&L2, &XIJAB, tval);
 
389
    dpd_buf4_close(&L2);
 
390
    dpd_buf4_close(&XIJAB);
 
391
    dpd_buf4_init(&Xijab, EOM_XI, G_irr, 2, 7, 2, 7, 0, "Xijab");
 
392
    dpd_buf4_init(&L2, CC_GL, L_irr, 2, 7, 2, 7, 0, "Lijab");
 
393
    dpd_buf4_axpy(&L2, &Xijab, tval);
 
394
    dpd_buf4_close(&L2);
 
395
    dpd_buf4_close(&Xijab);
 
396
    dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
 
397
    dpd_buf4_init(&L2, CC_GL, L_irr, 0, 5, 0, 5, 0, "LIjAb");
 
398
    dpd_buf4_axpy(&L2, &XIjAb, tval);
 
399
    dpd_buf4_close(&L2);
 
400
    dpd_buf4_close(&XIjAb);
 
401
#ifdef DEBUG_XI
 
402
x_xi_check("term 13 (ijab) and 15 (Fme)");
 
403
#endif
 
404
  }
 
405
 
 
406
    /* term 14, +P(ij) P(ab) Lmjeb Rme Fia */
 
407
  if (!params.connect_xi) {
 
408
    x_xi2_14();
 
409
#ifdef DEBUG_XI
 
410
x_xi_check("term 14 (Fme)");
 
411
#endif
 
412
  }
 
413
  psio_close(EOM_TMP1,0);
 
414
  psio_open(EOM_TMP1, PSIO_OPEN_NEW);
 
415
 
 
416
    /* term 22, +P(ij) (Limfe Rme) Wfjab */
 
417
  if (!params.connect_xi) {
 
418
    dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 7, 0, 7, 0, "Z (IJ,A>B)");
 
419
    dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_OV");
 
420
    dpd_buf4_init(&H2, CC_HBAR, 0, 11, 7, 11, 7, 0, "WAMEF");
 
421
    dpd_contract244(&I1, &H2, &Z2, 1, 0, 0, 1.0, 0.0);
 
422
    dpd_buf4_close(&H2);
 
423
    dpd_file2_close(&I1);
 
424
    dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 0, 7, 2, 7, 0, "XIJAB");
 
425
    dpd_buf4_axpy(&Z2, &XIJAB, 1.0);
 
426
    dpd_buf4_close(&XIJAB);
 
427
    dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 2, 7, "XIJAB", -1.0);
 
428
    dpd_buf4_close(&Z2);
 
429
 
 
430
    dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 7, 0, 7, 0, "Z (ij,a>b)");
 
431
    dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_ov");
 
432
    dpd_buf4_init(&H2, CC_HBAR, 0, 11, 7, 11, 7, 0, "Wamef");
 
433
    dpd_contract244(&I1, &H2, &Z2, 1, 0, 0, 1.0, 0.0);
 
434
    dpd_buf4_close(&H2);
 
435
    dpd_file2_close(&I1);
 
436
    dpd_buf4_init(&Xijab, EOM_XI, G_irr, 0, 7, 2, 7, 0, "Xijab");
 
437
    dpd_buf4_axpy(&Z2, &Xijab, 1.0);
 
438
    dpd_buf4_close(&Xijab);
 
439
    dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 2, 7, "Xijab", -1.0);
 
440
    dpd_buf4_close(&Z2);
 
441
 
 
442
    dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
 
443
    dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_OV");
 
444
    dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WAmEf");
 
445
    dpd_contract244(&I1, &H2, &XIjAb, 1, 0, 0, 1.0, 1.0);
 
446
    dpd_buf4_close(&H2);
 
447
    dpd_file2_close(&I1);
 
448
    dpd_buf4_close(&XIjAb);
 
449
 
 
450
    dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z (jI,bA)");
 
451
    dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_ov");
 
452
    dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WaMeF");
 
453
    dpd_contract244(&I1, &H2, &Z2, 1, 0, 0, 1.0, 0.0);
 
454
    dpd_buf4_close(&H2);
 
455
    dpd_file2_close(&I1);
 
456
    dpd_buf4_sort_axpy(&Z2, EOM_XI, qpsr, 0, 5, "XIjAb", 1.0);
 
457
    dpd_buf4_close(&Z2);
 
458
#ifdef DEBUG_XI
 
459
x_xi_check("term 22 (Wamef)");
 
460
#endif
 
461
    psio_close(EOM_TMP1,0);
 
462
    psio_open(EOM_TMP1, PSIO_OPEN_NEW);
 
463
  }
 
464
 
 
465
    /* term 23, -P(ab) (Lmnea Rme) Wijnb */
 
466
  if (!params.connect_xi) {
 
467
    dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 2, 5, 2, 5, 0, "Z (I>J,AB)");
 
468
    dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_OV");
 
469
    dpd_buf4_init(&H2, CC_HBAR, 0, 2, 10, 2, 10, 0, "WMNIE");
 
470
    dpd_contract244(&I1, &H2, &Z2, 0, 2, 1, 1.0, 0.0);
 
471
    dpd_buf4_close(&H2);
 
472
    dpd_file2_close(&I1);
 
473
    dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 2, 5, 2, 7, 0, "XIJAB");
 
474
    dpd_buf4_axpy(&Z2, &XIJAB, -1.0);
 
475
    dpd_buf4_close(&XIJAB);
 
476
    dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 2, 7, "XIJAB", 1.0);
 
477
    dpd_buf4_close(&Z2);
 
478
 
 
479
    dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 2, 5, 2, 5, 0, "Z (i>j,ab)");
 
480
    dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_ov");
 
481
    dpd_buf4_init(&H2, CC_HBAR, 0, 2, 10, 2, 10, 0, "Wmnie");
 
482
    dpd_contract244(&I1, &H2, &Z2, 0, 2, 1, 1.0, 0.0);
 
483
    dpd_buf4_close(&H2);
 
484
    dpd_file2_close(&I1);
 
485
    dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 2, 5, 2, 7, 0, "Xijab");
 
486
    dpd_buf4_axpy(&Z2, &XIJAB, -1.0);
 
487
    dpd_buf4_close(&XIJAB);
 
488
    dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 2, 7, "Xijab", 1.0);
 
489
    dpd_buf4_close(&Z2);
 
490
 
 
491
    dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
 
492
    dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_OV");
 
493
    dpd_buf4_init(&H2, CC_HBAR, 0, 0, 10, 0, 10, 0, "WMnIe");
 
494
    dpd_contract244(&I1, &H2, &XIjAb, 0, 2, 1, -1.0, 1.0);
 
495
    dpd_buf4_close(&H2);
 
496
    dpd_file2_close(&I1);
 
497
    dpd_buf4_close(&XIjAb);
 
498
 
 
499
    dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z (jI,Ab)");
 
500
    dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L2R1_ov");
 
501
    dpd_buf4_init(&H2, CC_HBAR, 0, 0, 11, 0, 11, 0, "WmNiE (mN,Ei)");
 
502
    dpd_contract424(&H2, &I1, &Z2, 3, 0, 0, 1.0, 0.0);
 
503
    dpd_buf4_close(&H2);
 
504
    dpd_file2_close(&I1);
 
505
    dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 0, 5, "XIjAb", -1.0);
 
506
    dpd_buf4_close(&Z2);
 
507
#ifdef DEBUG_XI
 
508
x_xi_check("term 23 (Wmnie)");
 
509
#endif
 
510
  }
 
511
 
 
512
  /* term 25, Xijab += (Lnmab Rme) Wijne */
 
513
  dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 2, 7, 2, 7, 0, "XIJAB");
 
514
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 7, 10, 7, 10, 0, "L2R1_VVOV");
 
515
  dpd_buf4_init(&H2, CC_HBAR, 0, 2, 10, 2, 10, 0, "WMNIE");
 
516
  dpd_contract444(&H2, &I2, &XIJAB, 0, 0, 1.0, 1.0); 
 
517
  dpd_buf4_close(&H2);
 
518
  dpd_buf4_close(&I2);
 
519
  dpd_buf4_close(&XIJAB);
 
520
 
 
521
  dpd_buf4_init(&Xijab, EOM_XI, G_irr, 2, 7, 2, 7, 0, "Xijab");
 
522
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 7, 10, 7, 10, 0, "L2R1_vvov");
 
523
  dpd_buf4_init(&H2, CC_HBAR, 0, 2, 10, 2, 10, 0, "Wmnie");
 
524
  dpd_contract444(&H2, &I2, &Xijab, 0, 0, 1.0, 1.0); 
 
525
  dpd_buf4_close(&H2);
 
526
  dpd_buf4_close(&I2);
 
527
  dpd_buf4_close(&Xijab);
 
528
 
 
529
  dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
 
530
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 5, 10, 5, 10, 0, "L2R1_VvOv");
 
531
  dpd_buf4_init(&H2, CC_HBAR, 0, 0, 10, 0, 10, 0, "WMnIe");
 
532
  dpd_contract444(&H2, &I2, &XIjAb, 0, 0, 1.0, 1.0); 
 
533
  dpd_buf4_close(&H2);
 
534
  dpd_buf4_close(&I2);
 
535
  dpd_buf4_close(&XIjAb);
 
536
 
 
537
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z (jI,Ab)");
 
538
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 5, 10, 5, 10, 0, "L2R1_VvoV");
 
539
  dpd_buf4_init(&H2, CC_HBAR, 0, 0, 10, 0, 10, 0, "WmNiE");
 
540
  dpd_contract444(&H2, &I2, &Z2, 0, 0, 1.0, 0.0); 
 
541
  dpd_buf4_close(&H2);
 
542
  dpd_buf4_close(&I2);
 
543
  dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 0, 5, "XIjAb", 1.0);
 
544
  dpd_buf4_close(&Z2);
 
545
 
 
546
#ifdef DEBUG_XI
 
547
x_xi_check("term 25 (Wmnie)");
 
548
#endif
 
549
  psio_close(EOM_TMP1,0);
 
550
  psio_open(EOM_TMP1, PSIO_OPEN_NEW);
 
551
 
 
552
    /* term 24, Xijab -= (Lijfe Rme) Wfmab */
 
553
  dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 2, 7, 2, 7, 0, "XIJAB");
 
554
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 2, 11, 2, 11, 0, "L2R1_OOVO");
 
555
  dpd_buf4_init(&H2, CC_HBAR, 0, 11, 7, 11, 7, 0, "WAMEF");
 
556
  dpd_contract444(&I2, &H2, &XIJAB, 0, 1, -1.0, 1.0); 
 
557
  dpd_buf4_close(&H2);
 
558
  dpd_buf4_close(&I2);
 
559
  dpd_buf4_close(&XIJAB);
 
560
 
 
561
  dpd_buf4_init(&Xijab, EOM_XI, G_irr, 2, 7, 2, 7, 0, "Xijab");
 
562
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 2, 11, 2, 11, 0, "L2R1_oovo");
 
563
  dpd_buf4_init(&H2, CC_HBAR, 0, 11, 7, 11, 7, 0, "Wamef");
 
564
  dpd_contract444(&I2, &H2, &Xijab, 0, 1, -1.0, 1.0); 
 
565
  dpd_buf4_close(&H2);
 
566
  dpd_buf4_close(&I2);
 
567
  dpd_buf4_close(&Xijab);
 
568
 
 
569
  dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
 
570
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 0, 11, 0, 11, 0, "L2R1_OoVo");
 
571
  dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WAmEf");
 
572
  dpd_contract444(&I2, &H2, &XIjAb, 0, 1, -1.0, 1.0); 
 
573
  dpd_buf4_close(&H2);
 
574
  dpd_buf4_close(&I2);
 
575
  dpd_buf4_close(&XIjAb);
 
576
 
 
577
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z (Ij,bA)");
 
578
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 0, 11, 0, 11, 0, "L2R1_OovO");
 
579
  dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WaMeF");
 
580
  dpd_contract444(&I2, &H2, &Z2, 0, 1, 1.0, 0.0); 
 
581
  dpd_buf4_close(&H2);
 
582
  dpd_buf4_close(&I2);
 
583
  dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 0, 5, "XIjAb", -1.0);
 
584
  dpd_buf4_close(&Z2);
 
585
#ifdef DEBUG_XI
 
586
x_xi_check("term 24 (Wamef)");
 
587
#endif
 
588
  psio_close(EOM_TMP1,0);
 
589
  psio_open(EOM_TMP1, PSIO_OPEN_NEW);
 
590
 
 
591
  /* terms 18, 19: Xijab -= P(ij) P(ab) Linae (Rme Wmjnb + Rnf Wejbf) */
 
592
  /* construct Z(JB,NE) = RME WMJNB + RNF WEJBF */
 
593
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 11, 11, 11, 11, 0, "Z (EJ,BN)");
 
594
  dpd_buf4_init(&H2, CC_HBAR, 0, 0, 11, 2, 11, 0, "WMNIE (M>N,EI)");
 
595
  dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
 
596
  dpd_contract244(&R1, &H2, &Z, 0, 0, 0, 1.0, 0.0);
 
597
  dpd_buf4_close(&H2);
 
598
  dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 7, 0, "WAMEF");
 
599
  dpd_contract424(&H2, &R1, &Z, 3, 1, 0, 1.0, 1.0);
 
600
  dpd_buf4_close(&H2);
 
601
  dpd_file2_close(&R1);
 
602
  dpd_buf4_sort(&Z, EOM_TMP1, qpsr, 10, 10, "Z (JE,NB)");
 
603
  dpd_buf4_close(&Z);
 
604
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (JE,NB)");
 
605
  dpd_buf4_sort(&Z, EOM_TMP1, psrq, 10, 10, "Z (JB,NE)");
 
606
  dpd_buf4_close(&Z);
 
607
 
 
608
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 11, 10, 11, 10, 0, "Z (eJ,nB)");
 
609
  dpd_buf4_init(&H2, CC_HBAR, 0, 0, 10, 0, 10, 0, "WmNiE");
 
610
  dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "Ria");
 
611
  dpd_contract244(&R1, &H2, &Z, 0, 0, 0, 1.0, 0.0);
 
612
  dpd_buf4_close(&H2);
 
613
  dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WaMeF");
 
614
  dpd_contract244(&R1, &H2, &Z, 1, 2, 1, -1.0, 1.0);
 
615
  dpd_buf4_close(&H2);
 
616
  dpd_file2_close(&R1);
 
617
  dpd_buf4_sort(&Z, EOM_TMP1, qprs, 10, 10, "Z (Je,nB)");
 
618
  dpd_buf4_close(&Z);
 
619
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (Je,nB)");
 
620
  dpd_buf4_sort(&Z, EOM_TMP1, psrq, 10, 10, "Z (JB,ne)");
 
621
  dpd_buf4_close(&Z);
 
622
 
 
623
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 11, 11, 11, 11, 0, "Z (ej,bn)");
 
624
  dpd_buf4_init(&H2, CC_HBAR, 0, 0, 11, 2, 11, 0, "Wmnie (m>n,ei)");
 
625
  dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "Ria");
 
626
  dpd_contract244(&R1, &H2, &Z, 0, 0, 0, 1.0, 0.0);
 
627
  dpd_buf4_close(&H2);
 
628
  dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 7, 0, "Wamef");
 
629
  dpd_contract424(&H2, &R1, &Z, 3, 1, 0, 1.0, 1.0);
 
630
  dpd_buf4_close(&H2);
 
631
  dpd_file2_close(&R1);
 
632
  dpd_buf4_sort(&Z, EOM_TMP1, qpsr, 10, 10, "Z (je,nb)");
 
633
  dpd_buf4_close(&Z);
 
634
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (je,nb)");
 
635
  dpd_buf4_sort(&Z, EOM_TMP1, psrq, 10, 10, "Z (jb,ne)");
 
636
  dpd_buf4_close(&Z);
 
637
 
 
638
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 11, 10, 11, 10, 0, "Z (Ej,Nb)");
 
639
  dpd_buf4_init(&H2, CC_HBAR, 0, 0, 10, 0, 10, 0, "WMnIe");
 
640
  dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
 
641
  dpd_contract244(&R1, &H2, &Z, 0, 0, 0, 1.0, 0.0);
 
642
  dpd_buf4_close(&H2);
 
643
  dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WAmEf");
 
644
  dpd_contract244(&R1, &H2, &Z, 1, 2, 1, -1.0, 1.0);
 
645
  dpd_buf4_close(&H2);
 
646
  dpd_file2_close(&R1);
 
647
  dpd_buf4_sort(&Z, EOM_TMP1, qprs, 10, 10, "Z (jE,Nb)");
 
648
  dpd_buf4_close(&Z);
 
649
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (jE,Nb)");
 
650
  dpd_buf4_sort(&Z, EOM_TMP1, psrq, 10, 10, "Z (jb,NE)");
 
651
  dpd_buf4_close(&Z);
 
652
 
 
653
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 11, 10, 11, 0, "Z (Je,bN)");
 
654
  dpd_buf4_init(&H2, CC_HBAR, 0, 0, 11, 0, 11, 0, "WMnIe (Mn,eI)");
 
655
  dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "Ria");
 
656
  dpd_contract424(&H2, &R1, &Z, 1, 0, 1, -1.0, 0.0);
 
657
  dpd_file2_close(&R1);
 
658
  dpd_buf4_close(&H2);
 
659
  dpd_buf4_sort(&Z, EOM_TMP1, prsq, 10, 10, "Z (Jb,Ne)");
 
660
  dpd_buf4_close(&Z);
 
661
 
 
662
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 11, 11, 11, 11, 0, "Z2 (eJ,bN)");
 
663
  dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WaMeF");
 
664
  dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
 
665
  dpd_contract424(&H2, &R1, &Z, 3, 1, 0, 1.0, 0.0);
 
666
  dpd_file2_close(&R1);
 
667
  dpd_buf4_close(&H2);
 
668
  dpd_buf4_sort_axpy(&Z, EOM_TMP1, qrsp, 10, 10, "Z (Jb,Ne)", 1.0);
 
669
  dpd_buf4_close(&Z);
 
670
 
 
671
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 11, 10, 11, 0, "Z (jE,Bn)");
 
672
  dpd_buf4_init(&H2, CC_HBAR, 0, 0, 11, 0, 11, 0, "WmNiE (mN,Ei)");
 
673
  dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
 
674
  dpd_contract424(&H2, &R1, &Z, 1, 0, 1, -1.0, 0.0);
 
675
  dpd_file2_close(&R1);
 
676
  dpd_buf4_close(&H2);
 
677
  dpd_buf4_sort(&Z, EOM_TMP1, prsq, 10, 10, "Z (jB,nE)");
 
678
  dpd_buf4_close(&Z);
 
679
 
 
680
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 11, 11, 11, 11, 0, "Z2 (Ej,Bn)");
 
681
  dpd_buf4_init(&H2, CC_HBAR, 0, 11, 5, 11, 5, 0, "WAmEf");
 
682
  dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "Ria");
 
683
  dpd_contract424(&H2, &R1, &Z, 3, 1, 0, 1.0, 0.0);
 
684
  dpd_file2_close(&R1);
 
685
  dpd_buf4_close(&H2);
 
686
  dpd_buf4_sort_axpy(&Z, EOM_TMP1, qrsp, 10, 10, "Z (jB,nE)", 1.0);
 
687
  dpd_buf4_close(&Z);
 
688
 
 
689
  /* XIJAB -= P(IJ) P(AB) L(IA,NE) Z(NE,JB) */
 
690
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "Z2 (IA,JB)");
 
691
  dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "LIAJB");
 
692
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (JB,NE)");
 
693
  dpd_contract444(&L2, &Z, &Z2, 0, 0, 1.0, 0.0);
 
694
  dpd_buf4_close(&Z);
 
695
  dpd_buf4_close(&L2);
 
696
  dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "LIAjb");
 
697
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (JB,ne)");
 
698
  dpd_contract444(&L2, &Z, &Z2, 0, 0, 1.0, 1.0);
 
699
  dpd_buf4_close(&Z);
 
700
  dpd_buf4_close(&L2);
 
701
  dpd_buf4_sort(&Z2, EOM_TMP1, prqs, 0, 5, "Z2 (IJ,AB)");
 
702
  dpd_buf4_close(&Z2);
 
703
 
 
704
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z2 (IJ,AB)");
 
705
  dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 0, 5, 2, 7, 0, "XIJAB");
 
706
  dpd_buf4_axpy(&Z2, &XIJAB, -1.0);
 
707
  dpd_buf4_close(&XIJAB);
 
708
  dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 2, 7, "XIJAB", 1.0);
 
709
  dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 2, 7, "XIJAB", 1.0);
 
710
  dpd_buf4_sort_axpy(&Z2, EOM_XI, qpsr, 2, 7, "XIJAB", -1.0);
 
711
  dpd_buf4_close(&Z2);
 
712
#ifdef DEBUG_XI
 
713
x_xi_check("terms 18, 19 (Wmnie, Wamef)");
 
714
#endif
 
715
 
 
716
  /* Xijab -= P(ij) P(ab) L(ia,ne) Z(ne,jb) */
 
717
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "Z2 (ia,jb)");
 
718
  dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "Liajb");
 
719
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (jb,ne)");
 
720
  dpd_contract444(&L2, &Z, &Z2, 0, 0, 1.0, 0.0);
 
721
  dpd_buf4_close(&Z);
 
722
  dpd_buf4_close(&L2);
 
723
  dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "LiaJB");
 
724
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (jb,NE)");
 
725
  dpd_contract444(&L2, &Z, &Z2, 0, 0, 1.0, 1.0);
 
726
  dpd_buf4_close(&Z);
 
727
  dpd_buf4_close(&L2);
 
728
  dpd_buf4_sort(&Z2, EOM_TMP1, prqs, 0, 5, "Z2 (ij,ab)");
 
729
  dpd_buf4_close(&Z2);
 
730
 
 
731
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z2 (ij,ab)");
 
732
  dpd_buf4_init(&Xijab, EOM_XI, G_irr, 0, 5, 2, 7, 0, "Xijab");
 
733
  dpd_buf4_axpy(&Z2, &Xijab, -1.0);
 
734
  dpd_buf4_close(&Xijab);
 
735
  dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 2, 7, "Xijab", 1.0);
 
736
  dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 2, 7, "Xijab", 1.0);
 
737
  dpd_buf4_sort_axpy(&Z2, EOM_XI, qpsr, 2, 7, "Xijab", -1.0);
 
738
  dpd_buf4_close(&Z2);
 
739
 
 
740
  /* XIjAb += - L(IA,NE) Z(jb,NE) - L(IA,ne) Z(jb,ne)  */
 
741
  /*          - L(jb,ne) Z(IA,ne) - L(jb,NE) Z(IA,NE)  */
 
742
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "Z2 (IA,jb)");
 
743
  dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "LIAJB");
 
744
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (jb,NE)");
 
745
  dpd_contract444(&L2, &Z, &Z2, 0, 0, 1.0, 0.0);
 
746
  dpd_buf4_close(&Z);
 
747
  dpd_buf4_close(&L2);
 
748
  dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "LIAjb");
 
749
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (jb,ne)");
 
750
  dpd_contract444(&L2, &Z, &Z2, 0, 0, 1.0, 1.0);
 
751
  dpd_buf4_close(&Z);
 
752
  dpd_buf4_close(&L2);
 
753
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (JB,ne)");
 
754
  dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "Liajb");
 
755
  dpd_contract444(&Z, &L2, &Z2, 0, 0, 1.0, 1.0);
 
756
  dpd_buf4_close(&L2);
 
757
  dpd_buf4_close(&Z);
 
758
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (JB,NE)");
 
759
  dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "LiaJB");
 
760
  dpd_contract444(&Z, &L2, &Z2, 0, 0, 1.0, 1.0);
 
761
  dpd_buf4_close(&L2);
 
762
  dpd_buf4_close(&Z);
 
763
  dpd_buf4_sort_axpy(&Z2, EOM_XI, prqs, 0, 5, "XIjAb", -1.0);
 
764
  dpd_buf4_close(&Z2);
 
765
 
 
766
  /* XIjAb += + L(jA,Ne) Z(Ib,Ne) + L(Ib,nE) Z(jA,nE)  */
 
767
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "Z2 (Ib,jA)");
 
768
  dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "LjAIb");
 
769
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (Jb,Ne)");
 
770
  dpd_contract444(&Z, &L2, &Z2, 0, 0, -1.0, 0.0);
 
771
  dpd_buf4_close(&Z);
 
772
  dpd_buf4_close(&L2);
 
773
 
 
774
  dpd_buf4_init(&L2, CC_GL, L_irr, 10, 10, 10, 10, 0, "LIbjA");
 
775
  dpd_buf4_init(&Z, EOM_TMP1, R_irr, 10, 10, 10, 10, 0, "Z (jB,nE)");
 
776
  dpd_contract444(&L2, &Z, &Z2, 0, 0, -1.0, 1.0);
 
777
  dpd_buf4_close(&Z);
 
778
  dpd_buf4_close(&L2);
 
779
  dpd_buf4_sort_axpy(&Z2, EOM_XI, prsq, 0, 5, "XIjAb", 1.0);
 
780
  dpd_buf4_close(&Z2);
 
781
#ifdef DEBUG_XI
 
782
x_xi_check("terms 18, 19 (Wmnie, Wamef)");
 
783
#endif
 
784
  psio_close(EOM_TMP1,0);
 
785
  psio_open(EOM_TMP1, PSIO_OPEN_NEW);
 
786
 
 
787
  /* Write irrep of XI amplitudes to CC_INFO */
 
788
  psio_write_entry(CC_INFO, "XI Irrep", (char *) &G_irr,sizeof(int));
 
789
 
 
790
  dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
 
791
  tval = dpd_file2_dot_self(&XIA);
 
792
  dpd_file2_close(&XIA);
 
793
  fprintf(outfile,"XIA amplitudes: norm=%20.15lf dot=%20.15lf\n", sqrt(tval), tval );
 
794
  dpd_file2_init(&Xia, EOM_XI, G_irr, 0, 1, "Xia");
 
795
  tval += dpd_file2_dot_self(&Xia);
 
796
  fprintf(outfile,"X1 amplitudes:  norm=%20.15lf dot=%20.15lf\n", sqrt(tval), tval );
 
797
  dpd_file2_close(&Xia);
 
798
  dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 2, 7, 2, 7, 0, "XIJAB");
 
799
  tval += dpd_buf4_dot_self(&XIJAB);
 
800
  dpd_buf4_close(&XIJAB);
 
801
  dpd_buf4_init(&Xijab, EOM_XI, G_irr, 2, 7, 2, 7, 0, "Xijab");
 
802
  tval += dpd_buf4_dot_self(&Xijab);
 
803
  dpd_buf4_close(&Xijab);
 
804
  dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
 
805
  tval += dpd_buf4_dot_self(&XIjAb);
 
806
  dpd_buf4_close(&XIjAb);
 
807
  fprintf(outfile,"Norm of Xi: %20.15lf\n", sqrt(tval) );
 
808
  return;
 
809
}
 
810
 
 
811
 
 
812
 
 
813
/* compute terms 4 and 6 of xi2 amplitudes */
 
814
/* Xijab += P(ij) P(ab) (Rme Lia + Rmnef Linaf) <mj||eb> */
 
815
void x_xi2_4_rohf(void)
 
816
{
 
817
  dpdfile2 RIA, Ria, LIA, Lia;
 
818
  int L_irr, R_irr, G_irr, nirreps;
 
819
  int I, A, M, E, i, a, m, e, h, row, col, Isym, Esym, Asym, Msym;
 
820
  dpdbuf4 D, R2, L2, H2, I2, Z, Z2, XIJAB, Xijab, XIjAb;
 
821
 
 
822
  L_irr = params.L_irr;
 
823
  R_irr = params.R_irr;
 
824
  G_irr = params.G_irr;
 
825
  nirreps = moinfo.nirreps;
 
826
 
 
827
  /* construct RL = Rme Lia + Rmnef Linaf */
 
828
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_OVOV");
 
829
  dpd_buf4_copy(&I2, EOM_TMP1, "RL_OVOV");
 
830
  dpd_buf4_close(&I2);
 
831
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_ovov");
 
832
  dpd_buf4_copy(&I2, EOM_TMP1, "RL_ovov");
 
833
  dpd_buf4_close(&I2);
 
834
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_OVov");
 
835
  dpd_buf4_copy(&I2, EOM_TMP1, "RL_OVov");
 
836
  dpd_buf4_close(&I2);
 
837
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_ovOV");
 
838
  dpd_buf4_copy(&I2, EOM_TMP1, "RL_ovOV");
 
839
  dpd_buf4_close(&I2);
 
840
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_oVoV");
 
841
  dpd_buf4_copy(&I2, EOM_TMP1, "RL_oVoV");
 
842
  dpd_buf4_close(&I2);
 
843
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_OvOv");
 
844
  dpd_buf4_copy(&I2, EOM_TMP1, "RL_OvOv");
 
845
  dpd_buf4_close(&I2);
 
846
 
 
847
  /* RL_OVOV(me,ia) += Rme Lia */
 
848
  dpd_file2_init(&RIA, CC_GR, R_irr, 0, 1, "RIA");
 
849
  dpd_file2_init(&LIA, CC_GL, L_irr, 0, 1, "LIA");
 
850
  dpd_file2_init(&Ria, CC_GR, R_irr, 0, 1, "Ria");
 
851
  dpd_file2_init(&Lia, CC_GL, L_irr, 0, 1, "Lia");
 
852
 
 
853
  dpd_file2_mat_init(&RIA);
 
854
  dpd_file2_mat_init(&Ria);
 
855
  dpd_file2_mat_init(&LIA);
 
856
  dpd_file2_mat_init(&Lia);
 
857
  dpd_file2_mat_rd(&RIA);
 
858
  dpd_file2_mat_rd(&Ria);
 
859
  dpd_file2_mat_rd(&LIA);
 
860
  dpd_file2_mat_rd(&Lia);
 
861
 
 
862
  dpd_buf4_init(&I2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_OVOV");
 
863
  for(h=0; h < nirreps; h++) {
 
864
    dpd_buf4_mat_irrep_init(&I2, h);
 
865
    dpd_buf4_mat_irrep_rd(&I2, h);
 
866
    for(row=0; row < I2.params->rowtot[h]; row++) {
 
867
      m = I2.params->roworb[h][row][0];
 
868
      e = I2.params->roworb[h][row][1];
 
869
      M = RIA.params->rowidx[m]; Msym = RIA.params->psym[m];
 
870
      E = RIA.params->colidx[e]; Esym = RIA.params->qsym[e];
 
871
      for(col=0; col < I2.params->coltot[h^G_irr]; col++) {
 
872
        i = I2.params->colorb[h^G_irr][col][0];
 
873
        a = I2.params->colorb[h^G_irr][col][1];
 
874
        I = LIA.params->rowidx[i]; Isym = LIA.params->psym[i];
 
875
        A = LIA.params->colidx[a]; Asym = LIA.params->qsym[a];
 
876
        if( ((Msym^Esym)==R_irr) && ((Isym^Asym)==L_irr) )
 
877
          I2.matrix[h][row][col] += RIA.matrix[Msym][M][E] * LIA.matrix[Isym][I][A];
 
878
      }
 
879
    }
 
880
    dpd_buf4_mat_irrep_wrt(&I2, h);
 
881
    dpd_buf4_mat_irrep_close(&I2, h);
 
882
  }
 
883
  dpd_buf4_close(&I2);
 
884
 
 
885
  dpd_buf4_init(&I2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_ovov");
 
886
  for(h=0; h < nirreps; h++) {
 
887
    dpd_buf4_mat_irrep_init(&I2, h);
 
888
    dpd_buf4_mat_irrep_rd(&I2, h);
 
889
    for(row=0; row < I2.params->rowtot[h]; row++) {
 
890
      m = I2.params->roworb[h][row][0];
 
891
      e = I2.params->roworb[h][row][1];
 
892
      M = Ria.params->rowidx[m]; Msym = Ria.params->psym[m];
 
893
      E = Ria.params->colidx[e]; Esym = Ria.params->qsym[e];
 
894
      for(col=0; col < I2.params->coltot[h^G_irr]; col++) {
 
895
        i = I2.params->colorb[h^G_irr][col][0];
 
896
        a = I2.params->colorb[h^G_irr][col][1];
 
897
        I = Lia.params->rowidx[i]; Isym = Lia.params->psym[i];
 
898
        A = Lia.params->colidx[a]; Asym = Lia.params->qsym[a];
 
899
        if( ((Msym^Esym)==R_irr) && ((Isym^Asym)==L_irr) )
 
900
          I2.matrix[h][row][col] += Ria.matrix[Msym][M][E] * Lia.matrix[Isym][I][A];
 
901
      }
 
902
    }
 
903
    dpd_buf4_mat_irrep_wrt(&I2, h);
 
904
    dpd_buf4_mat_irrep_close(&I2, h);
 
905
  }
 
906
  dpd_buf4_close(&I2);
 
907
 
 
908
  dpd_buf4_init(&I2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_OVov");
 
909
  for(h=0; h < nirreps; h++) {
 
910
    dpd_buf4_mat_irrep_init(&I2, h);
 
911
    dpd_buf4_mat_irrep_rd(&I2, h);
 
912
    for(row=0; row < I2.params->rowtot[h]; row++) {
 
913
      m = I2.params->roworb[h][row][0];
 
914
      e = I2.params->roworb[h][row][1];
 
915
      M = RIA.params->rowidx[m]; Msym = RIA.params->psym[m];
 
916
      E = RIA.params->colidx[e]; Esym = RIA.params->qsym[e];
 
917
      for(col=0; col < I2.params->coltot[h^G_irr]; col++) {
 
918
        i = I2.params->colorb[h^G_irr][col][0];
 
919
        a = I2.params->colorb[h^G_irr][col][1];
 
920
        I = Lia.params->rowidx[i]; Isym = Lia.params->psym[i];
 
921
        A = Lia.params->colidx[a]; Asym = Lia.params->qsym[a];
 
922
        if( ((Msym^Esym)==R_irr) && ((Isym^Asym)==L_irr) )
 
923
          I2.matrix[h][row][col] += RIA.matrix[Msym][M][E] * Lia.matrix[Isym][I][A];
 
924
      }
 
925
    }
 
926
    dpd_buf4_mat_irrep_wrt(&I2, h);
 
927
    dpd_buf4_mat_irrep_close(&I2, h);
 
928
  }
 
929
  dpd_buf4_close(&I2);
 
930
 
 
931
  dpd_buf4_init(&I2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_ovOV");
 
932
  for(h=0; h < nirreps; h++) {
 
933
    dpd_buf4_mat_irrep_init(&I2, h);
 
934
    dpd_buf4_mat_irrep_rd(&I2, h);
 
935
    for(row=0; row < I2.params->rowtot[h]; row++) {
 
936
      m = I2.params->roworb[h][row][0];
 
937
      e = I2.params->roworb[h][row][1];
 
938
      M = Ria.params->rowidx[m]; Msym = Ria.params->psym[m];
 
939
      E = Ria.params->colidx[e]; Esym = Ria.params->qsym[e];
 
940
      for(col=0; col < I2.params->coltot[h^G_irr]; col++) {
 
941
        i = I2.params->colorb[h^G_irr][col][0];
 
942
        a = I2.params->colorb[h^G_irr][col][1];
 
943
        I = LIA.params->rowidx[i]; Isym = LIA.params->psym[i];
 
944
        A = LIA.params->colidx[a]; Asym = LIA.params->qsym[a];
 
945
        if( ((Msym^Esym)==R_irr) && ((Isym^Asym)==L_irr) )
 
946
          I2.matrix[h][row][col] += Ria.matrix[Msym][M][E] * LIA.matrix[Isym][I][A];
 
947
      }
 
948
    }
 
949
    dpd_buf4_mat_irrep_wrt(&I2, h);
 
950
    dpd_buf4_mat_irrep_close(&I2, h);
 
951
  }
 
952
  dpd_buf4_close(&I2);
 
953
 
 
954
  dpd_file2_mat_close(&RIA);
 
955
  dpd_file2_mat_close(&Ria);
 
956
  dpd_file2_mat_close(&LIA);
 
957
  dpd_file2_mat_close(&Lia);
 
958
  dpd_file2_close(&RIA);
 
959
  dpd_file2_close(&Ria);
 
960
  dpd_file2_close(&LIA);
 
961
  dpd_file2_close(&Lia);
 
962
 
 
963
  /* Z2(ME,IA) <MJ|EB>(ME,JB) + Z2(me,IA) <mJ|eB>(me,JB) */
 
964
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "Z2 (IA,JB)");
 
965
  dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij||ab> (ia,jb)");
 
966
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_OVOV");
 
967
  dpd_contract444(&Z, &D, &Z2, 1, 1, 1.0, 0.0);
 
968
  dpd_buf4_close(&Z);
 
969
  dpd_buf4_close(&D);
 
970
  dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
 
971
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_ovOV");
 
972
  dpd_contract444(&Z, &D, &Z2, 1, 1, 1.0, 1.0);
 
973
  dpd_buf4_close(&Z);
 
974
  dpd_buf4_close(&D);
 
975
  dpd_buf4_sort(&Z2, EOM_TMP1, prqs, 0, 5, "Z2 (IJ,AB)");
 
976
  dpd_buf4_close(&Z2);
 
977
 
 
978
  /* add in Z2(IJ,AB) permutations */
 
979
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z2 (IJ,AB)");
 
980
  dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 0, 5, 2, 7, 0, "XIJAB");
 
981
  dpd_buf4_axpy(&Z2, &XIJAB, 1.0);
 
982
  dpd_buf4_close(&XIJAB);
 
983
  dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 2, 7, "XIJAB", -1.0);
 
984
  dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 2, 7, "XIJAB", -1.0);
 
985
  dpd_buf4_sort_axpy(&Z2, EOM_XI, qpsr, 2, 7, "XIJAB", 1.0);
 
986
  dpd_buf4_close(&Z2);
 
987
 
 
988
  /* Z2(me,ia) <mj|eb>(me,jb) + Z2(ME,ia) <Mj|Eb>(ME,jb) */
 
989
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "Z2 (ia,jb)");
 
990
  dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij||ab> (ia,jb)");
 
991
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_ovov");
 
992
  dpd_contract444(&Z, &D, &Z2, 1, 1, 1.0, 0.0);
 
993
  dpd_buf4_close(&Z);
 
994
  dpd_buf4_close(&D);
 
995
  dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
 
996
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_OVov");
 
997
  dpd_contract444(&Z, &D, &Z2, 1, 1, 1.0, 1.0);
 
998
  dpd_buf4_close(&Z);
 
999
  dpd_buf4_close(&D);
 
1000
  dpd_buf4_sort(&Z2, EOM_TMP1, prqs, 0, 5, "Z2 (ij,ab)");
 
1001
  dpd_buf4_close(&Z2);
 
1002
 
 
1003
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z2 (ij,ab)");
 
1004
  dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 0, 5, 2, 7, 0, "Xijab");
 
1005
  dpd_buf4_axpy(&Z2, &XIJAB, 1.0);
 
1006
  dpd_buf4_close(&XIJAB);
 
1007
  dpd_buf4_sort_axpy(&Z2, EOM_XI, qprs, 2, 7, "Xijab", -1.0);
 
1008
  dpd_buf4_sort_axpy(&Z2, EOM_XI, pqsr, 2, 7, "Xijab", -1.0);
 
1009
  dpd_buf4_sort_axpy(&Z2, EOM_XI, qpsr, 2, 7, "Xijab", 1.0);
 
1010
  dpd_buf4_close(&Z2);
 
1011
    
 
1012
  /* Z2(ME,IA) <Mj|Eb>(ME,jb) + Z2(me,IA) <mj|eb>(me,jb) */
 
1013
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "Z2 (IA,jb)");
 
1014
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_OVOV");
 
1015
  dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
 
1016
  dpd_contract444(&Z, &D, &Z2, 1, 1, 1.0, 0.0);
 
1017
  dpd_buf4_close(&Z);
 
1018
  dpd_buf4_close(&D);
 
1019
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_ovOV");
 
1020
  dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij||ab> (ia,jb)");
 
1021
  dpd_contract444(&Z, &D, &Z2, 1, 1, 1.0, 1.0);
 
1022
  dpd_buf4_close(&Z);
 
1023
  dpd_buf4_close(&D);
 
1024
 
 
1025
  /* XIjAb += ZMjEb <MI|EA> + Zmjeb <mI|eA> */
 
1026
  dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij||ab> (ia,jb)");
 
1027
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_OVov");
 
1028
  dpd_contract444(&D, &Z, &Z2, 1, 1, 1.0, 1.0);
 
1029
  dpd_buf4_close(&Z);
 
1030
  dpd_buf4_close(&D);
 
1031
  dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ia,jb)");
 
1032
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_ovov");
 
1033
  dpd_contract444(&D, &Z, &Z2, 1, 1, 1.0, 1.0);
 
1034
  dpd_buf4_close(&Z);
 
1035
  dpd_buf4_close(&D);
 
1036
  dpd_buf4_sort_axpy(&Z2, EOM_XI, prqs, 0, 5, "XIjAb", 1.0);
 
1037
  dpd_buf4_close(&Z2);
 
1038
 
 
1039
  /* XIjAb += ZmjEA <mI|bE> + ZMIeb <Mj|Ae> */
 
1040
  dpd_buf4_init(&Z2, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "Z2 (Ib,jA)");
 
1041
  dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ib,ja)");
 
1042
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_oVoV");
 
1043
  dpd_contract444(&D, &Z, &Z2, 1, 1, 1.0, 0.0);
 
1044
  dpd_buf4_close(&Z);
 
1045
  dpd_buf4_close(&D);
 
1046
 
 
1047
  dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 10, 10, 10, 0, "RL_OvOv");
 
1048
  dpd_buf4_init(&D, CC_DINTS, 0, 10, 10, 10, 10, 0, "D <ij|ab> (ib,ja)");
 
1049
  dpd_contract444(&Z, &D, &Z2, 1, 1, 1.0, 1.0);
 
1050
  dpd_buf4_close(&Z);
 
1051
  dpd_buf4_close(&D);
 
1052
  dpd_buf4_sort_axpy(&Z2, EOM_XI, prsq, 0, 5, "XIjAb", 1.0);
 
1053
  dpd_buf4_close(&Z2);
 
1054
  return;
 
1055
}
 
1056
 
 
1057
 
 
1058
 
 
1059
/* compute term 14 of Xi2 amplitudes for all spin cases */
 
1060
/* Xijab += P(ij) P(ab) (Lmjeb Rme) Fia */
 
1061
 
 
1062
void x_xi2_14(void)
 
1063
{
 
1064
  dpdfile2 IIA, Iia, FME, Fme;
 
1065
  int L_irr, R_irr, G_irr, nirreps;
 
1066
  int I, A, J, B, i, a, j, b, h, row, col, Isym, Asym, Jsym, Bsym;
 
1067
  int II, AA, JJ, BB, ii, aa, jj, bb, IIsym, AAsym, JJsym, BBsym;
 
1068
  dpdbuf4 Z, XIJAB, Xijab, XIjAb;
 
1069
 
 
1070
  L_irr = params.L_irr;
 
1071
  R_irr = params.R_irr;
 
1072
  G_irr = params.G_irr;
 
1073
  nirreps = moinfo.nirreps;
 
1074
 
 
1075
  dpd_file2_init(&IIA, EOM_TMP, G_irr, 0, 1, "L2R1_OV");
 
1076
  dpd_file2_init(&FME, CC_OEI, 0, 0, 1, "FME");
 
1077
  dpd_file2_mat_init(&IIA);
 
1078
  dpd_file2_mat_init(&FME);
 
1079
  dpd_file2_mat_rd(&IIA);
 
1080
  dpd_file2_mat_rd(&FME);
 
1081
 
 
1082
  if (params.ref == 1) {
 
1083
    dpd_file2_init(&Iia, EOM_TMP, G_irr, 0, 1, "L2R1_ov");
 
1084
    dpd_file2_init(&Fme, CC_OEI, 0, 0, 1, "Fme");
 
1085
  }
 
1086
  else if (params.ref == 2) {
 
1087
    dpd_file2_init(&Iia, EOM_TMP, G_irr, 2, 3, "L2R1_ov");
 
1088
    dpd_file2_init(&Fme, CC_OEI, 0, 2, 3, "Fme");
 
1089
  }
 
1090
 
 
1091
  if (params.ref != 0) {
 
1092
    dpd_file2_mat_init(&Iia);
 
1093
    dpd_file2_mat_rd(&Iia);
 
1094
    dpd_file2_mat_init(&Fme);
 
1095
    dpd_file2_mat_rd(&Fme);
 
1096
  }
 
1097
 
 
1098
  /* build Z(IJ,AB) = FME(I,A) L2R1_OV(J,B) */
 
1099
  if (params.ref != 0) { /* ROHF or UHF for XIJAB */
 
1100
    dpd_buf4_init(&Z, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z (IJ,AB)");
 
1101
    for(h=0; h < nirreps; h++) {
 
1102
      dpd_buf4_mat_irrep_init(&Z, h);
 
1103
      for(row=0; row < Z.params->rowtot[h]; row++) {
 
1104
        i = Z.params->roworb[h][row][0];
 
1105
        j = Z.params->roworb[h][row][1];
 
1106
        I = FME.params->rowidx[i]; Isym = FME.params->psym[i];
 
1107
        J = IIA.params->rowidx[j]; Jsym = IIA.params->psym[j];
 
1108
        for(col=0; col < Z.params->coltot[h^G_irr]; col++) {
 
1109
          a = Z.params->colorb[h^G_irr][col][0];
 
1110
          b = Z.params->colorb[h^G_irr][col][1];
 
1111
          A = FME.params->colidx[a]; Asym = FME.params->qsym[a];
 
1112
          B = IIA.params->colidx[b]; Bsym = IIA.params->qsym[b];
 
1113
          if( (Isym==Asym) && ((Jsym^Bsym)==G_irr) )
 
1114
            Z.matrix[h][row][col] += FME.matrix[Isym][I][A] * IIA.matrix[Jsym][J][B];
 
1115
        }
 
1116
      }
 
1117
      dpd_buf4_mat_irrep_wrt(&Z, h);
 
1118
      dpd_buf4_mat_irrep_close(&Z, h);
 
1119
    }
 
1120
    /* XIJAB += P(IJ) P(AB) Z(IJ,AB) */
 
1121
    dpd_buf4_init(&XIJAB, EOM_XI, G_irr, 0, 5, 2, 7, 0, "XIJAB");
 
1122
    dpd_buf4_axpy(&Z, &XIJAB, 1.0);
 
1123
    dpd_buf4_close(&XIJAB);
 
1124
    dpd_buf4_sort_axpy(&Z, EOM_XI, qprs, 2, 7, "XIJAB", -1.0);
 
1125
    dpd_buf4_sort_axpy(&Z, EOM_XI, pqsr, 2, 7, "XIJAB", -1.0);
 
1126
    dpd_buf4_sort_axpy(&Z, EOM_XI, qpsr, 2, 7, "XIJAB", 1.0);
 
1127
    dpd_buf4_close(&Z);
 
1128
  }
 
1129
 
 
1130
  /* build Z(ij,ab) = Fme(i,a) L2R1_ov(j,b) */
 
1131
  if (params.ref != 0) { /* ROHF or UHF for Xijab */
 
1132
    if (params.ref == 1)
 
1133
      dpd_buf4_init(&Z, EOM_TMP1, G_irr, 0, 5, 0, 5, 0, "Z (ij,ab)");
 
1134
    else if (params.ref == 2)
 
1135
      dpd_buf4_init(&Z, EOM_TMP1, G_irr, 10, 15, 10, 15, 0, "Z (ij,ab)");
 
1136
    for(h=0; h < nirreps; h++) {
 
1137
      dpd_buf4_mat_irrep_init(&Z, h);
 
1138
      for(row=0; row < Z.params->rowtot[h]; row++) {
 
1139
        i = Z.params->roworb[h][row][0];
 
1140
        j = Z.params->roworb[h][row][1];
 
1141
        I = Fme.params->rowidx[i]; Isym = Fme.params->psym[i];
 
1142
        J = Iia.params->rowidx[j]; Jsym = Iia.params->psym[j];
 
1143
        for(col=0; col < Z.params->coltot[h^G_irr]; col++) {
 
1144
          a = Z.params->colorb[h^G_irr][col][0];
 
1145
          b = Z.params->colorb[h^G_irr][col][1];
 
1146
          A = Fme.params->colidx[a]; Asym = Fme.params->qsym[a];
 
1147
          B = Iia.params->colidx[b]; Bsym = Iia.params->qsym[b];
 
1148
          if( (Isym==Asym) && ((Jsym^Bsym)==G_irr) )
 
1149
            Z.matrix[h][row][col] += Fme.matrix[Isym][I][A] * Iia.matrix[Jsym][J][B];
 
1150
        }
 
1151
      }
 
1152
      dpd_buf4_mat_irrep_wrt(&Z, h);
 
1153
      dpd_buf4_mat_irrep_close(&Z, h);
 
1154
    }
 
1155
    /* Xijab += P(ij) P(ab) Z(ij,ab) */
 
1156
    if (params.ref == 1) {
 
1157
      dpd_buf4_init(&Xijab, EOM_XI, G_irr, 0, 5, 2, 7, 0, "Xijab");
 
1158
      dpd_buf4_axpy(&Z, &Xijab, 1.0);
 
1159
      dpd_buf4_close(&Xijab);
 
1160
      dpd_buf4_sort_axpy(&Z, EOM_XI, qprs, 2, 7, "Xijab", -1.0);
 
1161
      dpd_buf4_sort_axpy(&Z, EOM_XI, pqsr, 2, 7, "Xijab", -1.0);
 
1162
      dpd_buf4_sort_axpy(&Z, EOM_XI, qpsr, 2, 7, "Xijab", 1.0);
 
1163
      dpd_buf4_close(&Z);
 
1164
    }
 
1165
    else if (params.ref == 2) {
 
1166
      dpd_buf4_init(&Xijab, EOM_XI, G_irr, 10, 15, 12, 17, 0, "Xijab");
 
1167
      dpd_buf4_axpy(&Z, &Xijab, 1.0);
 
1168
      dpd_buf4_close(&Xijab);
 
1169
      dpd_buf4_sort_axpy(&Z, EOM_XI, qprs, 12, 17, "Xijab", -1.0);
 
1170
      dpd_buf4_sort_axpy(&Z, EOM_XI, pqsr, 12, 17, "Xijab", -1.0);
 
1171
      dpd_buf4_sort_axpy(&Z, EOM_XI, qpsr, 12, 17, "Xijab", 1.0);
 
1172
      dpd_buf4_close(&Z);
 
1173
    }
 
1174
  }
 
1175
 
 
1176
  /* XIjAb += FME(I,A) L2R1_ov(j,b) + IIA(I,A) F(j,b) */
 
1177
  if (params.ref == 0) { /* RHF XIjAb */
 
1178
    dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
 
1179
    for(h=0; h < nirreps; h++) {
 
1180
      dpd_buf4_mat_irrep_init(&XIjAb, h);
 
1181
      dpd_buf4_mat_irrep_rd(&XIjAb, h);
 
1182
      for(row=0; row < XIjAb.params->rowtot[h]; row++) {
 
1183
        i = XIjAb.params->roworb[h][row][0];
 
1184
        j = XIjAb.params->roworb[h][row][1];
 
1185
        I = FME.params->rowidx[i]; Isym = FME.params->psym[i];
 
1186
        J = IIA.params->rowidx[j]; Jsym = IIA.params->psym[j];
 
1187
        II = IIA.params->rowidx[i]; IIsym = IIA.params->psym[i];
 
1188
        JJ = FME.params->rowidx[j]; JJsym = FME.params->psym[j];
 
1189
        for(col=0; col < XIjAb.params->coltot[h^G_irr]; col++) {
 
1190
          a = XIjAb.params->colorb[h^G_irr][col][0];
 
1191
          b = XIjAb.params->colorb[h^G_irr][col][1];
 
1192
          A = FME.params->colidx[a]; Asym = FME.params->qsym[a];
 
1193
            B = IIA.params->colidx[b]; Bsym = IIA.params->qsym[b];
 
1194
            AA = IIA.params->colidx[a]; AAsym = IIA.params->qsym[a];
 
1195
            BB = FME.params->colidx[b]; BBsym = FME.params->qsym[b];
 
1196
            if( (Isym==Asym) && ((Jsym^Bsym)==G_irr) )
 
1197
              XIjAb.matrix[h][row][col] += FME.matrix[Isym][I][A] * IIA.matrix[Jsym][J][B];
 
1198
            if( ((IIsym^AAsym)==G_irr) && (JJsym==BBsym) )
 
1199
              XIjAb.matrix[h][row][col] += IIA.matrix[IIsym][II][AA] * FME.matrix[JJsym][JJ][BB];
 
1200
        }
 
1201
      }
 
1202
      dpd_buf4_mat_irrep_wrt(&XIjAb, h);
 
1203
      dpd_buf4_mat_irrep_close(&XIjAb, h);
 
1204
    }
 
1205
    dpd_buf4_close(&XIjAb);
 
1206
    dpd_file2_mat_close(&IIA);
 
1207
    dpd_file2_close(&IIA);
 
1208
    dpd_file2_mat_close(&FME);
 
1209
    dpd_file2_close(&FME);
 
1210
  }
 
1211
  else { /* ROHF and UHF XIjAb */
 
1212
    if (params.ref == 1)
 
1213
      dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 0, 5, 0, 5, 0, "XIjAb");
 
1214
    else if (params.ref == 2)
 
1215
      dpd_buf4_init(&XIjAb, EOM_XI, G_irr, 22, 28, 22, 28, 0, "XIjAb");
 
1216
    for(h=0; h < nirreps; h++) {
 
1217
      dpd_buf4_mat_irrep_init(&XIjAb, h);
 
1218
      dpd_buf4_mat_irrep_rd(&XIjAb, h);
 
1219
      for(row=0; row < XIjAb.params->rowtot[h]; row++) {
 
1220
        i = XIjAb.params->roworb[h][row][0];
 
1221
        j = XIjAb.params->roworb[h][row][1];
 
1222
        I = FME.params->rowidx[i]; Isym = FME.params->psym[i];
 
1223
        J = Iia.params->rowidx[j]; Jsym = Iia.params->psym[j];
 
1224
        II = IIA.params->rowidx[i]; IIsym = IIA.params->psym[i];
 
1225
        JJ = Fme.params->rowidx[j]; JJsym = Fme.params->psym[j];
 
1226
        for(col=0; col < XIjAb.params->coltot[h^G_irr]; col++) {
 
1227
          a = XIjAb.params->colorb[h^G_irr][col][0];
 
1228
          b = XIjAb.params->colorb[h^G_irr][col][1];
 
1229
          A = FME.params->colidx[a]; Asym = FME.params->qsym[a];
 
1230
            B = Iia.params->colidx[b]; Bsym = Iia.params->qsym[b];
 
1231
            AA = IIA.params->colidx[a]; AAsym = IIA.params->qsym[a];
 
1232
            BB = Fme.params->colidx[b]; BBsym = Fme.params->qsym[b];
 
1233
            if( (Isym==Asym) && ((Jsym^Bsym)==G_irr) )
 
1234
              XIjAb.matrix[h][row][col] += FME.matrix[Isym][I][A] * Iia.matrix[Jsym][J][B];
 
1235
            if( ((IIsym^AAsym)==G_irr) && (JJsym==BBsym) )
 
1236
              XIjAb.matrix[h][row][col] += IIA.matrix[IIsym][II][AA] * Fme.matrix[JJsym][JJ][BB];
 
1237
        }
 
1238
      }
 
1239
      dpd_buf4_mat_irrep_wrt(&XIjAb, h);
 
1240
      dpd_buf4_mat_irrep_close(&XIjAb, h);
 
1241
    }
 
1242
    dpd_buf4_close(&XIjAb);
 
1243
    dpd_file2_mat_close(&IIA); dpd_file2_mat_close(&Iia);
 
1244
    dpd_file2_close(&IIA); dpd_file2_close(&Iia);
 
1245
    dpd_file2_mat_close(&FME); dpd_file2_mat_close(&Fme);
 
1246
    dpd_file2_close(&FME); dpd_file2_close(&Fme);
 
1247
  }
 
1248
 
 
1249
  return;
 
1250
}