~ubuntu-branches/ubuntu/precise/psicode/precise

« back to all changes in this revision

Viewing changes to src/bin/ccdensity/x_xi1_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
 
extern void x_xi_check(char *term_lbl);
7
 
extern void x_xi1_connected(void);
8
 
 
9
 
void x_xi1_uhf(void)
10
 
{
11
 
  dpdfile2 L1, XIA, Xia, I1, R1, F1, Z1A, Z1B;
12
 
  int L_irr, R_irr, G_irr;
13
 
  dpdbuf4 D, R2, L2, H2, I2;
14
 
  double tval;
15
 
 
16
 
  L_irr = params.L_irr;
17
 
  R_irr = params.R_irr;
18
 
  G_irr = params.G_irr;
19
 
 
20
 
#ifdef DEBUG_XI
21
 
x_xi_check("begin xi1");
22
 
#endif
23
 
  /* term 1, XIA += 0.25 LIA Rmnef <mn||ef> */
24
 
  if ((R_irr == 0)  && (!params.connect_xi)) {
25
 
    dpd_file2_init(&I1, EOM_TMP_XI, R_irr, 0, 0, "RD_OO");
26
 
    params.RD_overlap = 0.5 * dpd_file2_trace(&I1);
27
 
    dpd_file2_close(&I1);
28
 
    dpd_file2_init(&I1, EOM_TMP_XI, R_irr, 2, 2, "RD_oo");
29
 
    params.RD_overlap += 0.5 * dpd_file2_trace(&I1);
30
 
    dpd_file2_close(&I1);
31
 
   /*fprintf(outfile,"RD overlap %15.10lf\n", params.RD_overlap);*/
32
 
 
33
 
    dpd_file2_init(&L1, CC_GL, L_irr, 0, 1, "LIA");
34
 
    dpd_file2_copy(&L1, EOM_XI, "XIA");
35
 
    dpd_file2_close(&L1);
36
 
    dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
37
 
    dpd_file2_scm(&XIA, params.RD_overlap);
38
 
    dpd_file2_close(&XIA);
39
 
    dpd_file2_init(&L1, CC_GL, L_irr, 2, 3, "Lia");
40
 
    dpd_file2_copy(&L1, EOM_XI, "Xia");
41
 
    dpd_file2_close(&L1);
42
 
    dpd_file2_init(&Xia, EOM_XI, G_irr, 2, 3, "Xia");
43
 
    dpd_file2_scm(&Xia, params.RD_overlap);
44
 
    dpd_file2_close(&Xia);
45
 
  }
46
 
  /* unnecessary 
47
 
  else {
48
 
    dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
49
 
    dpd_file2_scm(&XIA, 0.0);
50
 
    dpd_file2_close(&XIA);
51
 
    dpd_file2_init(&Xia, EOM_XI, G_irr, 2, 3, "Xia");
52
 
    dpd_file2_scm(&Xia, 0.0);
53
 
    dpd_file2_close(&Xia);
54
 
  }
55
 
  */
56
 
#ifdef DEBUG_XI
57
 
x_xi_check("term 1");
58
 
#endif
59
 
 
60
 
  /* term 2, Xia -= (Rmnef <in||ef>) * Lma */
61
 
  dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
62
 
  dpd_file2_init(&Xia, EOM_XI, G_irr, 2, 3, "Xia");
63
 
 
64
 
  dpd_file2_init(&I1, EOM_TMP_XI, R_irr, 0, 0, "RD_OO");
65
 
  dpd_file2_init(&L1, CC_GL, L_irr, 0, 1, "LIA");
66
 
  dpd_contract222(&I1, &L1, &XIA, 1, 1, -1.0, 1.0);
67
 
  dpd_file2_close(&L1);
68
 
  dpd_file2_close(&I1);
69
 
  dpd_file2_init(&I1, EOM_TMP_XI, R_irr, 2, 2, "RD_oo");
70
 
  dpd_file2_init(&L1, CC_GL, L_irr, 2, 3, "Lia");
71
 
  dpd_contract222(&I1, &L1, &Xia, 1, 1, -1.0, 1.0);
72
 
  dpd_file2_close(&L1);
73
 
  dpd_file2_close(&I1);
74
 
 
75
 
  dpd_file2_close(&XIA);
76
 
  dpd_file2_close(&Xia);
77
 
#ifdef DEBUG_XI
78
 
x_xi_check("term 2");
79
 
#endif
80
 
 
81
 
  /* term 3, XIA -= 0.5 LIE (Rmnfe <mn||fa>) */
82
 
  dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
83
 
  dpd_file2_init(&Xia, EOM_XI, G_irr, 2, 3, "Xia");
84
 
 
85
 
  dpd_file2_init(&L1, CC_GL, L_irr, 0, 1, "LIA");
86
 
  dpd_file2_init(&I1, EOM_TMP_XI, R_irr, 1, 1, "RD_VV");
87
 
  dpd_contract222(&L1, &I1, &XIA, 0, 1, -1.0, 1.0);
88
 
  dpd_file2_close(&I1);
89
 
  dpd_file2_close(&L1);
90
 
 
91
 
  dpd_file2_init(&L1, CC_GL, L_irr, 2, 3, "Lia");
92
 
  dpd_file2_init(&I1, EOM_TMP_XI, R_irr, 3, 3, "RD_vv");
93
 
  dpd_contract222(&L1, &I1, &Xia, 0, 1, -1.0, 1.0);
94
 
  dpd_file2_close(&I1);
95
 
  dpd_file2_close(&L1);
96
 
 
97
 
  dpd_file2_close(&XIA);
98
 
  dpd_file2_close(&Xia);
99
 
#ifdef DEBUG_XI
100
 
x_xi_check("term 3");
101
 
#endif
102
 
 
103
 
  /* term 4, XIA += (Lme Rmnef) <in||af> */
104
 
  dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
105
 
  dpd_file2_init(&Xia, EOM_XI, G_irr, 2, 3, "Xia");
106
 
 
107
 
  /* = OV(N,f) <IN||AF> + ov(nf) <In||Af> */
108
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L1R2_OV");
109
 
  dpd_buf4_init(&D, CC_DINTS, 0, 0, 5, 0, 5, 0, "D <IJ||AB>");
110
 
  dpd_dot24(&I1, &D, &XIA, 0, 0, 1.0, 1.0);
111
 
  dpd_buf4_close(&D);
112
 
  dpd_file2_close(&I1);
113
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 2, 3, "L1R2_ov");
114
 
  dpd_buf4_init(&D, CC_DINTS, 0, 22, 28, 22, 28, 0, "D <Ij|Ab>");
115
 
  dpd_dot24(&I1, &D, &XIA, 0, 0, 1.0, 1.0);
116
 
  dpd_buf4_close(&D);
117
 
  dpd_file2_close(&I1);
118
 
 
119
 
  /* = ov(n,f) <in||af> + OV(NF) <iN||aF> */
120
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 2, 3, "L1R2_ov");
121
 
  dpd_buf4_init(&D, CC_DINTS, 0, 10, 15, 10, 15, 0, "D <ij||ab>");
122
 
  dpd_dot24(&I1, &D, &Xia, 0, 0, 1.0, 1.0);
123
 
  dpd_buf4_close(&D);
124
 
  dpd_file2_close(&I1);
125
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 1, "L1R2_OV");
126
 
  dpd_buf4_init(&D, CC_DINTS, 0, 23, 29, 23, 29, 0, "D <iJ|aB>");
127
 
  dpd_dot24(&I1, &D, &Xia, 0, 0, 1.0, 1.0);
128
 
  dpd_buf4_close(&D);
129
 
  dpd_file2_close(&I1);
130
 
 
131
 
  dpd_file2_close(&XIA);
132
 
  dpd_file2_close(&Xia);
133
 
#ifdef DEBUG_XI
134
 
x_xi_check("term 4");
135
 
#endif
136
 
 
137
 
  /* XIA += (Lmnef * Rmnef) FIA */ 
138
 
  dpd_file2_init(&R1, CC_GR, R_irr, 0, 1, "RIA");
139
 
  dpd_file2_init(&L1, CC_GL, L_irr, 0, 1, "LIA");
140
 
  params.overlap1 = dpd_file2_dot(&R1, &L1);
141
 
  dpd_file2_close(&R1);
142
 
  dpd_file2_close(&L1);
143
 
  dpd_file2_init(&R1, CC_GR, R_irr, 2, 3, "Ria");
144
 
  dpd_file2_init(&L1, CC_GL, L_irr, 2, 3, "Lia");
145
 
  params.overlap1 += tval = dpd_file2_dot(&R1, &L1);
146
 
  dpd_file2_close(&R1);
147
 
  dpd_file2_close(&L1);
148
 
  params.overlap2 = 1.0e0 - params.overlap1;
149
 
 
150
 
  /* explanation in xi1_connected and ROHF code */
151
 
  dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
152
 
  dpd_file2_init(&Xia, EOM_XI, G_irr, 2, 3, "Xia");
153
 
 
154
 
  dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "FME");
155
 
  dpd_file2_axpy(&F1, &XIA, params.overlap2, 0);
156
 
  dpd_file2_close(&F1);
157
 
  dpd_file2_init(&F1, CC_OEI, 0, 2, 3, "Fme");
158
 
  dpd_file2_axpy(&F1, &Xia, params.overlap2, 0);
159
 
  dpd_file2_close(&F1);
160
 
 
161
 
  dpd_file2_close(&XIA);
162
 
  dpd_file2_close(&Xia);
163
 
#ifdef DEBUG_XI
164
 
x_xi_check("term 5");
165
 
#endif
166
 
 
167
 
    /* term 6, -0.5 (Linef Rmnef) Fma */
168
 
  dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
169
 
  dpd_file2_init(&Xia, EOM_XI, G_irr, 2, 3, "Xia");
170
 
 
171
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 0, "LR2_OO");
172
 
  dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "FME");
173
 
  dpd_contract222(&I1, &F1, &XIA, 0, 1, -1.0, 1.0);
174
 
  dpd_file2_close(&F1);
175
 
  dpd_file2_close(&I1);
176
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 2, 2, "LR2_oo");
177
 
  dpd_file2_init(&F1, CC_OEI, 0, 2, 3, "Fme");
178
 
  dpd_contract222(&I1, &F1, &Xia, 0, 1, -1.0, 1.0);
179
 
  dpd_file2_close(&F1);
180
 
  dpd_file2_close(&I1);
181
 
 
182
 
  dpd_file2_close(&XIA);
183
 
  dpd_file2_close(&Xia);
184
 
#ifdef DEBUG_XI
185
 
x_xi_check("term 6");
186
 
#endif
187
 
  /* term 7, -0.5 (Lmnaf Rmnef) Fie */
188
 
  dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
189
 
  dpd_file2_init(&Xia, EOM_XI, G_irr, 2, 3, "Xia");
190
 
 
191
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 1, 1, "LR2_VV");
192
 
  dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "FME");
193
 
  dpd_contract222(&F1, &I1, &XIA, 0, 0, -1.0, 1.0);
194
 
  dpd_file2_close(&F1);
195
 
  dpd_file2_close(&I1);
196
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 3, 3, "LR2_vv");
197
 
  dpd_file2_init(&F1, CC_OEI, 0, 2, 3, "Fme");
198
 
  dpd_contract222(&F1, &I1, &Xia, 0, 0, -1.0, 1.0);
199
 
  dpd_file2_close(&F1);
200
 
  dpd_file2_close(&I1);
201
 
 
202
 
  dpd_file2_close(&XIA);
203
 
  dpd_file2_close(&Xia);
204
 
#ifdef DEBUG_XI
205
 
x_xi_check("term 7");
206
 
#endif
207
 
 
208
 
  if (!params.connect_xi) {
209
 
    /* term 8, (Fme Rmnef) Linaf) */
210
 
    dpd_file2_init(&I1, EOM_TMP1, R_irr, 0, 1, "Z(N,F)");
211
 
    dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "FME");
212
 
    dpd_buf4_init(&R2, CC_GR, R_irr, 0, 5, 2, 7, 0, "RIJAB");
213
 
    dpd_dot13(&F1, &R2, &I1, 0, 0, 1.0, 0.0);
214
 
    dpd_buf4_close(&R2);
215
 
    dpd_file2_close(&F1);
216
 
    dpd_file2_init(&F1, CC_OEI, 0, 2, 3, "Fme");
217
 
    dpd_buf4_init(&R2, CC_GR, R_irr, 23, 29, 23, 29, 0, "RiJaB");
218
 
    dpd_dot13(&F1, &R2, &I1, 0, 0, 1.0, 1.0);
219
 
    dpd_buf4_close(&R2);
220
 
    dpd_file2_close(&F1);
221
 
    dpd_file2_close(&I1);
222
 
 
223
 
    dpd_file2_init(&I1, EOM_TMP1, R_irr, 2, 3, "Z(n,f)");
224
 
    dpd_file2_init(&F1, CC_OEI, 0, 2, 3, "Fme");
225
 
    dpd_buf4_init(&R2, CC_GR, R_irr, 10, 15, 12, 17, 0, "Rijab");
226
 
    dpd_dot13(&F1, &R2, &I1, 0, 0, 1.0, 0.0);
227
 
    dpd_buf4_close(&R2);
228
 
    dpd_file2_close(&F1);
229
 
    dpd_file2_init(&F1, CC_OEI, 0, 0, 1, "FME");
230
 
    dpd_buf4_init(&R2, CC_GR, R_irr, 22, 28, 22, 28, 0, "RIjAb");
231
 
    dpd_dot13(&F1, &R2, &I1, 0, 0, 1.0, 1.0);
232
 
    dpd_buf4_close(&R2);
233
 
    dpd_file2_close(&F1);
234
 
    dpd_file2_close(&I1);
235
 
 
236
 
    dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
237
 
    dpd_file2_init(&Xia, EOM_XI, G_irr, 2, 3, "Xia");
238
 
 
239
 
    dpd_file2_init(&I1, EOM_TMP1, R_irr, 0, 1, "Z(N,F)");
240
 
    dpd_buf4_init(&L2, CC_GL, L_irr, 0, 5, 2, 7, 0, "LIJAB");
241
 
    dpd_dot24(&I1, &L2, &XIA, 0, 0, 1.0, 1.0);
242
 
    dpd_buf4_close(&L2);
243
 
    dpd_buf4_init(&L2, CC_GL, L_irr, 23, 29, 23, 29, 0, "LiJaB");
244
 
    dpd_dot24(&I1, &L2, &Xia, 0, 0, 1.0, 1.0);
245
 
    dpd_buf4_close(&L2);
246
 
    dpd_file2_close(&I1);
247
 
 
248
 
    dpd_file2_init(&I1, EOM_TMP1, R_irr, 2, 3, "Z(n,f)");
249
 
    dpd_buf4_init(&L2, CC_GL, L_irr, 10, 15, 12, 17, 0, "Lijab");
250
 
    dpd_dot24(&I1, &L2, &Xia, 0, 0, 1.0, 1.0);
251
 
    dpd_buf4_close(&L2);
252
 
    dpd_buf4_init(&L2, CC_GL, L_irr, 22, 28, 22, 28, 0, "LIjAb");
253
 
    dpd_dot24(&I1, &L2, &XIA, 0, 0, 1.0, 1.0);
254
 
    dpd_buf4_close(&L2);
255
 
    dpd_file2_close(&I1);
256
 
 
257
 
    dpd_file2_close(&XIA);
258
 
    dpd_file2_close(&Xia);
259
 
#ifdef DEBUG_XI
260
 
x_xi_check("term 8");
261
 
#endif
262
 
  }
263
 
 
264
 
  dpd_file2_init(&Xia, EOM_XI, G_irr, 2, 3, "Xia");
265
 
  dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
266
 
 
267
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 0, "LR2_OO");
268
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 0, 21, 2, 21, 0, "WMNIE (M>N,EI)");
269
 
  dpd_dot24(&I1, &H2, &XIA, 1, 0, 1.0, 1.0);
270
 
  dpd_buf4_close(&H2);
271
 
  dpd_file2_close(&I1);
272
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 2, 2, "LR2_oo");
273
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 23, 26, 23, 26, 0, "WmNiE (mN,Ei)");
274
 
  dpd_dot14(&I1, &H2, &XIA, 1, 0, -1.0, 1.0);
275
 
  dpd_buf4_close(&H2);
276
 
  dpd_file2_close(&I1);
277
 
 
278
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 2, 2, "LR2_oo");
279
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 10, 31, 12, 31, 0, "Wmnie (m>n,ei)");
280
 
  dpd_dot24(&I1, &H2, &Xia, 1, 0, 1.0, 1.0);
281
 
  dpd_buf4_close(&H2);
282
 
  dpd_file2_close(&I1);
283
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 0, 0, "LR2_OO");
284
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 22, 25, 22, 25, 0, "WMnIe (Mn,eI)");
285
 
  dpd_dot14(&I1, &H2, &Xia, 1, 0, -1.0, 1.0);
286
 
  dpd_buf4_close(&H2);
287
 
  dpd_file2_close(&I1);
288
 
 
289
 
  dpd_file2_close(&XIA);
290
 
  dpd_file2_close(&Xia);
291
 
#ifdef DEBUG_XI
292
 
x_xi_check("term 9");
293
 
#endif
294
 
 
295
 
/*  term 11 XIA -= Rmnef Lmoea Winof */
296
 
  dpd_file2_init(&Xia, EOM_XI, G_irr, 2, 3, "Xia");
297
 
  dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
298
 
 
299
 
  /* this would be easier if it would work but 13 and 31 shifts are
300
 
     incompatible when symmetry is on
301
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 0, 11, 2, 11, 0, "WMNIE (M>N,EI)");
302
 
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 10, 10, 10, 10, 0, "R2L2_OVOV");
303
 
  dpd_contract442(&H2, &I2, &XIA, 0, 3, -1.0, 1.0);
304
 
  dpd_buf4_close(&I2);
305
 
  dpd_buf4_close(&H2);
306
 
  */
307
 
  /* if I could do a 442(0,3) I could avoid these sorts */
308
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 0, 21, 2, 21, 0, "WMNIE (M>N,EI)");
309
 
  dpd_buf4_sort(&H2, EOM_TMP1, qrsp, 20, 0, "W (NF,OI)");
310
 
  dpd_buf4_close(&H2);
311
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 10, 31, 12, 31, 0, "Wmnie (m>n,ei)");
312
 
  dpd_buf4_sort(&H2, EOM_TMP1, qrsp, 30, 10, "W (nf,oi)");
313
 
  dpd_buf4_close(&H2);
314
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 22, 25, 22, 25, 0, "WMnIe (Mn,eI)");
315
 
  dpd_buf4_sort(&H2, EOM_TMP1, qrsp, 30, 0, "WMnIe qrsp");
316
 
  dpd_buf4_close(&H2);
317
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 23, 26, 23, 26, 0, "WmNiE (mN,Ei)");
318
 
  dpd_buf4_sort(&H2, EOM_TMP1, qrsp, 20, 10, "WmNiE qrsp");
319
 
  dpd_buf4_close(&H2);
320
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 23, 26, 23, 26, 0, "WmNiE (mN,Ei)");
321
 
  dpd_buf4_sort(&H2, EOM_TMP1, prsq, 27, 23, "WmNiE prsq");
322
 
  dpd_buf4_close(&H2);
323
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 22, 25, 22, 25, 0, "WMnIe (Mn,eI)");
324
 
  dpd_buf4_sort(&H2, EOM_TMP1, prsq, 24, 22, "WMnIe prsq");
325
 
  dpd_buf4_close(&H2);
326
 
 
327
 
  dpd_buf4_init(&H2, EOM_TMP1, 0, 20, 0, 20, 0, 0, "W (NF,OI)");
328
 
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 20, 20, 20, 20, 0, "R2L2_OVOV");
329
 
  dpd_contract442(&H2, &I2, &XIA, 3, 3, -1.0, 1.0);
330
 
  dpd_buf4_close(&I2);
331
 
  dpd_buf4_close(&H2);
332
 
  dpd_buf4_init(&H2, EOM_TMP1, 0, 30, 0, 30, 0, 0, "WMnIe qrsp");
333
 
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 30, 20, 30, 20, 0, "R2L2_ovOV");
334
 
  dpd_contract442(&H2, &I2, &XIA, 3, 3, -1.0, 1.0);
335
 
  dpd_buf4_close(&I2);
336
 
  dpd_buf4_close(&H2);
337
 
  dpd_buf4_init(&H2, EOM_TMP1, 0, 27, 23, 27, 23, 0, "WmNiE prsq");
338
 
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 27, 27, 27, 27, 0, "R2L2_oVoV");
339
 
  dpd_contract442(&H2, &I2, &XIA, 3, 3, 1.0, 1.0);
340
 
  dpd_buf4_close(&I2);
341
 
  dpd_buf4_close(&H2);
342
 
 
343
 
  dpd_buf4_init(&H2, EOM_TMP1, 0, 30, 10, 30, 10, 0, "W (nf,oi)");
344
 
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 30, 30, 30, 30, 0, "R2L2_ovov");
345
 
  dpd_contract442(&H2, &I2, &Xia, 3, 3, -1.0, 1.0);
346
 
  dpd_buf4_close(&I2);
347
 
  dpd_buf4_close(&H2);
348
 
  dpd_buf4_init(&H2, EOM_TMP1, 0, 20, 10, 20, 10, 0, "WmNiE qrsp");
349
 
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 20, 30, 20, 30, 0, "R2L2_OVov");
350
 
  dpd_contract442(&H2, &I2, &Xia, 3, 3, -1.0, 1.0);
351
 
  dpd_buf4_close(&I2);
352
 
  dpd_buf4_close(&H2);
353
 
  dpd_buf4_init(&H2, EOM_TMP1, 0, 24, 22, 24, 22, 0, "WMnIe prsq");
354
 
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 24, 24, 24, 24, 0, "R2L2_OvOv");
355
 
  dpd_contract442(&H2, &I2, &Xia, 3, 3, 1.0, 1.0);
356
 
  dpd_buf4_close(&I2);
357
 
  dpd_buf4_close(&H2);
358
 
 
359
 
  dpd_file2_close(&XIA);
360
 
  dpd_file2_close(&Xia);
361
 
#ifdef DEBUG_XI
362
 
x_xi_check("term 11");
363
 
#endif
364
 
 
365
 
  /* term 14, +0.25 * (Rmnef Loief) * Wmnoa */
366
 
  dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
367
 
  dpd_file2_init(&Xia, EOM_XI, G_irr, 2, 3, "Xia");
368
 
 
369
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 2, 20, 2, 20, 0, "WMNIE");
370
 
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 2, 0, 2, 2, 0, "R2L2_OOOO");
371
 
  dpd_contract442(&I2, &H2, &XIA, 3, 3, 1.0, 1.0);
372
 
  dpd_buf4_close(&H2);
373
 
  dpd_buf4_close(&I2);
374
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 23, 27, 23, 27, 0, "WmNiE");
375
 
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 23, 23, 23, 23, 0, "R2L2_oOoO");
376
 
  dpd_contract442(&I2, &H2, &XIA, 3, 3, 1.0, 1.0);
377
 
  dpd_buf4_close(&I2);
378
 
  dpd_buf4_close(&H2);
379
 
 
380
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 12, 30, 12, 30, 0, "Wmnie");
381
 
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 12, 10, 12, 12, 0, "R2L2_oooo");
382
 
  dpd_contract442(&I2, &H2, &Xia, 3, 3, 1.0, 1.0);
383
 
  dpd_buf4_close(&H2);
384
 
  dpd_buf4_close(&I2);
385
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 22, 24, 22, 24, 0, "WMnIe");
386
 
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 22, 22, 22, 22, 0, "R2L2_OoOo");
387
 
  dpd_contract442(&I2, &H2, &Xia, 3, 3, 1.0, 1.0);
388
 
  dpd_buf4_close(&I2);
389
 
  dpd_buf4_close(&H2);
390
 
 
391
 
  dpd_file2_close(&XIA);
392
 
  dpd_file2_close(&Xia);
393
 
#ifdef DEBUG_XI
394
 
x_xi_check("term 14");
395
 
#endif
396
 
 
397
 
  if (!params.connect_xi) {
398
 
  /*  term 16 XIA += 0.5 Lioaf (Rmnef Wmnoe) */
399
 
  dpd_file2_init(&Z1A, EOM_TMP1, R_irr, 0, 1, "Z(O,F)");
400
 
  dpd_file2_init(&Z1B, EOM_TMP1, R_irr, 2, 3, "Z(o,f)");
401
 
 
402
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 2, 21, 2, 21, 0, "WMNIE (M>N,EI)");
403
 
  dpd_buf4_init(&R2, CC_GR, R_irr, 2, 5, 2, 7, 0, "RIJAB");
404
 
  dpd_contract442(&H2, &R2, &Z1A, 3, 3, 1.0, 0.0);
405
 
  dpd_buf4_close(&R2);
406
 
  dpd_buf4_close(&H2);
407
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 22, 25, 22, 25, 0, "WMnIe (Mn,eI)");
408
 
  dpd_buf4_init(&R2, CC_GR, R_irr, 22, 29, 22, 29, 0, "RIjaB");
409
 
  dpd_contract442(&H2, &R2, &Z1A, 3, 3, -1.0, 1.0);
410
 
  dpd_buf4_close(&R2);
411
 
  dpd_buf4_close(&H2);
412
 
 
413
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 12, 31, 12, 31, 0, "Wmnie (m>n,ei)");
414
 
  dpd_buf4_init(&R2, CC_GR, R_irr, 12, 15, 12, 17, 0, "Rijab");
415
 
  dpd_contract442(&H2, &R2, &Z1B, 3, 3, 1.0, 0.0);
416
 
  dpd_buf4_close(&R2);
417
 
  dpd_buf4_close(&H2);
418
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 23, 26, 23, 26, 0, "WmNiE (mN,Ei)");
419
 
  dpd_buf4_init(&R2, CC_GR, R_irr, 23, 28, 23, 28, 0, "RiJAb");
420
 
  dpd_contract442(&H2, &R2, &Z1B, 3, 3, -1.0, 1.0);
421
 
  dpd_buf4_close(&R2);
422
 
  dpd_buf4_close(&H2);
423
 
 
424
 
  dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
425
 
  dpd_file2_init(&Xia, EOM_XI, G_irr, 2, 3, "Xia");
426
 
 
427
 
  dpd_buf4_init(&L2, CC_GL, L_irr, 0, 5, 2, 7, 0, "LIJAB");
428
 
  dpd_dot24(&Z1A, &L2, &XIA, 0, 0, 1.0, 1.0);
429
 
  dpd_buf4_close(&L2);
430
 
  dpd_buf4_init(&L2, CC_GL, L_irr, 22, 28, 22, 28, 0, "LIjAb");
431
 
  dpd_dot24(&Z1B, &L2, &XIA, 0, 0, 1.0, 1.0);
432
 
  dpd_buf4_close(&L2);
433
 
 
434
 
  dpd_buf4_init(&L2, CC_GL, L_irr, 10, 15, 12, 17, 0, "Lijab");
435
 
  dpd_dot24(&Z1B, &L2, &Xia, 0, 0, 1.0, 1.0);
436
 
  dpd_buf4_close(&L2);
437
 
  dpd_buf4_init(&L2, CC_GL, L_irr, 23, 29, 23, 29, 0, "LiJaB");
438
 
  dpd_dot24(&Z1A, &L2, &Xia, 0, 0, 1.0, 1.0);
439
 
  dpd_buf4_close(&L2);
440
 
 
441
 
  dpd_file2_close(&Z1A);
442
 
  dpd_file2_close(&Z1B);
443
 
 
444
 
  dpd_file2_close(&XIA);
445
 
  dpd_file2_close(&Xia);
446
 
#ifdef DEBUG_XI
447
 
x_xi_check("term 16");
448
 
#endif
449
 
  }
450
 
 
451
 
/*  term 10 XIA += 0.5 (Lmnef Rmneg) = VV(f,g) Wfiga */
452
 
  dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
453
 
  dpd_file2_init(&Xia, EOM_XI, G_irr, 2, 3, "Xia");
454
 
 
455
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 1, 1, "LR2_VV");
456
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 21, 5, 21, 7, 0, "WAMEF");
457
 
  dpd_dot13(&I1, &H2, &XIA, 0, 0, 1.0, 1.0);
458
 
  dpd_buf4_close(&H2);
459
 
  dpd_file2_close(&I1);
460
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 3, 3, "LR2_vv");
461
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 25, 29, 25, 29, 0, "WaMeF");
462
 
  dpd_dot13(&I1, &H2, &XIA, 0, 0, 1.0, 1.0);
463
 
  dpd_buf4_close(&H2);
464
 
  dpd_file2_close(&I1);
465
 
 
466
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 3, 3, "LR2_vv");
467
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 31, 15, 31, 17, 0, "Wamef");
468
 
  dpd_dot13(&I1, &H2, &Xia, 0, 0, 1.0, 1.0);
469
 
  dpd_buf4_close(&H2);
470
 
  dpd_file2_close(&I1);
471
 
  dpd_file2_init(&I1, EOM_TMP, G_irr, 1, 1, "LR2_VV");
472
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 26, 28, 26, 28, 0, "WAmEf");
473
 
  dpd_dot13(&I1, &H2, &Xia, 0, 0, 1.0, 1.0);
474
 
  dpd_buf4_close(&H2);
475
 
  dpd_file2_close(&I1);
476
 
 
477
 
  dpd_file2_close(&XIA);
478
 
  dpd_file2_close(&Xia);
479
 
#ifdef DEBUG_XI
480
 
x_xi_check("term 10");
481
 
#endif
482
 
 
483
 
  psio_close(EOM_TMP1,0);
484
 
  psio_open(EOM_TMP1, PSIO_OPEN_NEW);
485
 
 
486
 
/* term 12, + (Rmnef Lmieg) Wgnaf = OVOV(nf,ig) W(gn,af) */
487
 
  dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
488
 
  dpd_file2_init(&Xia, EOM_XI, G_irr, 2, 3, "Xia");
489
 
 
490
 
  /* + OVOV(NF,IG) WGNAF = OVOV(GN,IF) WGNAF(GN,AF) */
491
 
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 20, 20, 20, 20, 0, "R2L2_OVOV");
492
 
  dpd_buf4_sort(&I2, EOM_TMP1, sprq, 21, 20, "Z (GN,IF)"); 
493
 
  dpd_buf4_close(&I2);
494
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 21, 5, 21, 7, 0, "WAMEF");
495
 
  dpd_buf4_init(&I2, EOM_TMP1, G_irr, 21, 20, 21, 20, 0, "Z (GN,IF)");
496
 
  dpd_contract442(&I2, &H2, &XIA, 2, 2, 1.0, 1.0);
497
 
  dpd_buf4_close(&I2);
498
 
  dpd_buf4_close(&H2);
499
 
 
500
 
  /* + OVOV(nf,IG) WGnAf = +OVOV(Gn,If) WGnIf(Gn,Af) */
501
 
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 30, 20, 30, 20, 0, "R2L2_ovOV");
502
 
  dpd_buf4_sort(&I2, EOM_TMP1, sprq, 26, 24, "Z (Gn,If)"); 
503
 
  dpd_buf4_close(&I2);
504
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 26, 28, 26, 28, 0, "WAmEf");
505
 
  dpd_buf4_init(&I2, EOM_TMP1, G_irr, 26, 24, 26, 24, 0, "Z (Gn,If)");
506
 
  dpd_contract442(&I2, &H2, &XIA, 2, 2, 1.0, 1.0);
507
 
  dpd_buf4_close(&I2);
508
 
  dpd_buf4_close(&H2);
509
 
 
510
 
  /* + OVOV(Nf,Ig) WgNIf = - OVOV(Nf,Ig) WgNfI = -OVOV(gN,If) WaMeF(gN,Af) */
511
 
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 24, 24, 24, 24, 0, "R2L2_OvOv");
512
 
  dpd_buf4_sort(&I2, EOM_TMP1, spqr, 25, 25, "Z (gN,fI)"); 
513
 
  dpd_buf4_close(&I2);
514
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 25, 29, 25, 29, 0, "WaMeF");
515
 
  dpd_buf4_init(&I2, EOM_TMP1, G_irr, 25, 25, 25, 25, 0, "Z (gN,fI)");
516
 
  dpd_contract442(&I2, &H2, &XIA, 3, 3, -1.0, 1.0);
517
 
  dpd_buf4_close(&I2);
518
 
  dpd_buf4_close(&H2);
519
 
 
520
 
  /* + OVOV(nf,ig) Wgnif = +OVOV(gn,if) W(gn,af) */
521
 
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 30, 30, 30, 30, 0, "R2L2_ovov");
522
 
  dpd_buf4_sort(&I2, EOM_TMP1, sprq, 31, 30, "Z (gn,if)"); 
523
 
  dpd_buf4_close(&I2);
524
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 31, 15, 31, 17, 0, "Wamef");
525
 
  dpd_buf4_init(&I2, EOM_TMP1, G_irr, 31, 30, 31, 30, 0, "Z (gn,if)");
526
 
  dpd_contract442(&I2, &H2, &Xia, 2, 2, 1.0, 1.0);
527
 
  dpd_buf4_close(&I2);
528
 
  dpd_buf4_close(&H2);
529
 
 
530
 
  /* + OVOV(NF,ig) WgNaF = +OVOV(gN,iF) W(gN,aF) */
531
 
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 20, 30, 20, 30, 0, "R2L2_OVov");
532
 
  dpd_buf4_sort(&I2, EOM_TMP1, sprq, 25, 27, "Z (gN,iF)"); 
533
 
  dpd_buf4_close(&I2);
534
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 25, 29, 25, 29, 0, "WaMeF");
535
 
  dpd_buf4_init(&I2, EOM_TMP1, G_irr, 25, 27, 25, 27, 0, "Z (gN,iF)");
536
 
  dpd_contract442(&I2, &H2, &Xia, 2, 2, 1.0, 1.0);
537
 
  dpd_buf4_close(&I2);
538
 
  dpd_buf4_close(&H2);
539
 
 
540
 
  /* + OVOV(nF,iG) WGnaF (-WGnFi) = -OVOV(Gn,Fi) WAmEf(Gn,Fi) */
541
 
  dpd_buf4_init(&I2, EOM_TMP, G_irr, 27, 27, 27, 27, 0, "R2L2_oVoV");
542
 
  dpd_buf4_sort(&I2, EOM_TMP1, spqr, 26, 26, "Z (Gn,Fi)"); 
543
 
  dpd_buf4_close(&I2);
544
 
  dpd_buf4_init(&H2, CC_HBAR, 0, 26, 28, 26, 28, 0, "WAmEf");
545
 
  dpd_buf4_init(&I2, EOM_TMP1, G_irr, 26, 26, 26, 26, 0, "Z (Gn,Fi)");
546
 
  dpd_contract442(&I2, &H2, &Xia, 3, 3, -1.0, 1.0);
547
 
  dpd_buf4_close(&I2);
548
 
  dpd_buf4_close(&H2);
549
 
 
550
 
  dpd_file2_close(&XIA);
551
 
  dpd_file2_close(&Xia);
552
 
#ifdef DEBUG_XI
553
 
x_xi_check("term 12");
554
 
#endif
555
 
 
556
 
/* term 13 -0.25 (Rmnfg Weifg) Lmnea = +OOOV(MN,IE) L(MN,EA) */
557
 
  dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
558
 
  dpd_file2_init(&Xia, EOM_XI, G_irr, 2, 3, "Xia");
559
 
 
560
 
  dpd_buf4_init(&I2, EOM_TMP, R_irr, 2, 20, 2, 20, 0, "R2Wamef_OOOV");
561
 
  dpd_buf4_init(&L2, CC_GL, L_irr, 2, 5, 2, 7, 0, "LIJAB");
562
 
  dpd_contract442(&I2, &L2, &XIA, 2, 2, 1.0, 1.0);
563
 
  dpd_buf4_close(&L2);
564
 
  dpd_buf4_close(&I2);
565
 
  dpd_buf4_init(&I2, EOM_TMP, R_irr, 22, 24, 22, 24, 0, "R2Wamef_OoOv");
566
 
  dpd_buf4_init(&L2, CC_GL, L_irr, 22, 28, 22, 28, 0, "LIjAb");
567
 
  dpd_contract442(&I2, &L2, &XIA, 2, 2, 1.0, 1.0);
568
 
  dpd_buf4_close(&L2);
569
 
  dpd_buf4_close(&I2);
570
 
 
571
 
  dpd_buf4_init(&I2, EOM_TMP, R_irr, 12, 30, 12, 30, 0, "R2Wamef_ooov");
572
 
  dpd_buf4_init(&L2, CC_GL, L_irr, 12, 15, 12, 17, 0, "Lijab");
573
 
  dpd_contract442(&I2, &L2, &Xia, 2, 2, 1.0, 1.0);
574
 
  dpd_buf4_close(&L2);
575
 
  dpd_buf4_close(&I2);
576
 
  dpd_buf4_init(&I2, EOM_TMP, R_irr, 23, 27, 23, 27, 0, "R2Wamef_oOoV");
577
 
  dpd_buf4_init(&L2, CC_GL, L_irr, 23, 29, 23, 29, 0, "LiJaB");
578
 
  dpd_contract442(&I2, &L2, &Xia, 2, 2, 1.0, 1.0);
579
 
  dpd_buf4_close(&L2);
580
 
  dpd_buf4_close(&I2);
581
 
 
582
 
  dpd_file2_close(&XIA);
583
 
  dpd_file2_close(&Xia);
584
 
#ifdef DEBUG_XI
585
 
x_xi_check("term 13");
586
 
#endif
587
 
 
588
 
  if (!params.connect_xi) {
589
 
    /* term 15 Linag (Rnmef Wgmef) */
590
 
    dpd_file2_init(&XIA, EOM_XI, G_irr, 0, 1, "XIA");
591
 
    dpd_file2_init(&Xia, EOM_XI, G_irr, 2, 3, "Xia");
592
 
 
593
 
    dpd_file2_init(&I1, EOM_TMP, R_irr, 0, 1, "R2Wamef_OV");
594
 
    dpd_buf4_init(&L2, CC_GL, L_irr, 0, 5, 2, 7, 0, "LIJAB");
595
 
    dpd_dot24(&I1, &L2, &XIA, 0, 0, 1.0, 1.0);
596
 
    dpd_buf4_close(&L2);
597
 
    dpd_file2_close(&I1);
598
 
    dpd_file2_init(&I1, EOM_TMP, R_irr, 2, 3, "R2Wamef_ov");
599
 
    dpd_buf4_init(&L2, CC_GL, L_irr, 22, 28, 22, 28, 0, "LIjAb");
600
 
    dpd_dot24(&I1, &L2, &XIA, 0, 0, 1.0, 1.0);
601
 
    dpd_buf4_close(&L2);
602
 
    dpd_file2_close(&I1);
603
 
 
604
 
    dpd_file2_init(&I1, EOM_TMP, R_irr, 2, 3, "R2Wamef_ov");
605
 
    dpd_buf4_init(&L2, CC_GL, L_irr, 10, 15, 12, 17, 0, "Lijab");
606
 
    dpd_dot24(&I1, &L2, &Xia, 0, 0, 1.0, 1.0);
607
 
    dpd_buf4_close(&L2);
608
 
    dpd_file2_close(&I1);
609
 
    dpd_file2_init(&I1, EOM_TMP, R_irr, 0, 1, "R2Wamef_OV");
610
 
    dpd_buf4_init(&L2, CC_GL, L_irr, 23, 29, 23, 29, 0, "LiJaB");
611
 
    dpd_dot24(&I1, &L2, &Xia, 0, 0, 1.0, 1.0);
612
 
    dpd_buf4_close(&L2);
613
 
    dpd_file2_close(&I1);
614
 
 
615
 
    dpd_file2_close(&XIA);
616
 
    dpd_file2_close(&Xia);
617
 
#ifdef DEBUG_XI
618
 
x_xi_check("term 15");
619
 
#endif
620
 
  }
621
 
 
622
 
  if (params.connect_xi) x_xi1_connected();
623
 
 
624
 
#ifdef DEBUG_XI
625
 
x_xi_check("extra doubles terms");
626
 
#endif
627
 
  
628
 
  return;
629
 
}