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

« back to all changes in this revision

Viewing changes to src/bin/ccdensity/ltdensity.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
 
void ltdensity_rohf(struct TD_Params S);
7
 
void ltdensity_uhf(struct TD_Params S);
8
 
void ltdensity_intermediates(struct TD_Params S);
9
 
void sort_ltd_rohf(struct TD_Params S);
10
 
void sort_ltd_uhf(struct TD_Params S);
11
 
 
12
 
void ltdensity_rohf(struct TD_Params S)
13
 
{
14
 
  dpdfile2 DAI, Dai, DIA, Dia, DIJ, DAB, Dij, Dab, TIA, Tia;
15
 
  dpdfile2 LIA, Lia, RIA, Ria, Int, XIJ, Xij, R1;
16
 
  dpdbuf4 T2, L2, R2, I2;
17
 
  dpdfile2 D, T1, L1, Z;
18
 
 
19
 
  if(S.irrep == 0) {
20
 
    dpd_file2_init(&D, CC_TMP, 0, 0, 0, "LTDIJ");
21
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 7, 2, 7, 0, "tIJAB");
22
 
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 7, 2, 7, 0, "LIJAB");
23
 
    dpd_contract442(&T2, &L2, &D, 0, 0, -1.0, 0.0);
24
 
    dpd_buf4_close(&L2);
25
 
    dpd_buf4_close(&T2); 
26
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tIjAb");
27
 
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 5, 0, 5, 0, "LIjAb");
28
 
    dpd_contract442(&T2, &L2, &D, 0, 0, -1.0, 1.0);
29
 
    dpd_buf4_close(&L2);
30
 
    dpd_buf4_close(&T2); 
31
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
32
 
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
33
 
    dpd_contract222(&T1, &L1, &D, 0, 0, -1.0, 1.0);
34
 
    dpd_file2_close(&L1);
35
 
    dpd_file2_close(&T1);
36
 
    dpd_file2_close(&D);
37
 
 
38
 
    dpd_file2_init(&D, CC_TMP, 0, 0, 0, "LTDij");
39
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 7, 2, 7, 0, "tijab");
40
 
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 7, 2, 7, 0, "Lijab");
41
 
    dpd_contract442(&T2, &L2, &D, 0, 0, -1.0, 0.0);
42
 
    dpd_buf4_close(&L2);
43
 
    dpd_buf4_close(&T2);
44
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tiJaB");
45
 
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 5, 0, 5, 0, "LiJaB");
46
 
    dpd_contract442(&T2, &L2, &D, 0, 0, -1.0, 1.0);
47
 
    dpd_buf4_close(&L2);
48
 
    dpd_buf4_close(&T2);
49
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tia");
50
 
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "Lia");
51
 
    dpd_contract222(&T1, &L1, &D, 0, 0, -1.0, 1.0);
52
 
    dpd_file2_close(&L1);
53
 
    dpd_file2_close(&T1);
54
 
    dpd_file2_close(&D);
55
 
 
56
 
    dpd_file2_init(&D, CC_TMP, 0, 1, 1, "LTDAB");
57
 
    dpd_buf4_init(&L2, CC_GLG, 0, 2, 5, 2, 7, 0, "LIJAB");
58
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 2, 5, 2, 7, 0, "tIJAB");
59
 
    dpd_contract442(&L2, &T2, &D, 3, 3, 1.0, 0.0);
60
 
    dpd_buf4_close(&T2);
61
 
    dpd_buf4_close(&L2);
62
 
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 5, 0, 5, 0, "LiJaB");
63
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tiJaB");
64
 
    dpd_contract442(&L2, &T2, &D, 3, 3, 1.0, 1.0);
65
 
    dpd_buf4_close(&L2);
66
 
    dpd_buf4_close(&T2);
67
 
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
68
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
69
 
    dpd_contract222(&L1, &T1, &D, 1, 1, 1.0, 1.0);
70
 
    dpd_file2_close(&L1);
71
 
    dpd_file2_close(&T1);
72
 
    dpd_file2_close(&D);
73
 
 
74
 
    dpd_file2_init(&D, CC_TMP, 0, 1, 1, "LTDab");
75
 
    dpd_buf4_init(&L2, CC_GLG, 0, 2, 5, 2, 7, 0, "Lijab");
76
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 2, 5, 2, 7, 0, "tijab");
77
 
    dpd_contract442(&L2, &T2, &D, 3, 3, 1.0, 0.0);
78
 
    dpd_buf4_close(&T2);
79
 
    dpd_buf4_close(&L2);
80
 
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 5, 0, 5, 0, "LIjAb");
81
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tIjAb");
82
 
    dpd_contract442(&L2, &T2, &D, 3, 3, 1.0, 1.0);
83
 
    dpd_buf4_close(&L2);
84
 
    dpd_buf4_close(&T2);
85
 
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "Lia");
86
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tia");
87
 
    dpd_contract222(&L1, &T1, &D, 1, 1, 1.0, 1.0);
88
 
    dpd_file2_close(&L1);
89
 
    dpd_file2_close(&T1);
90
 
    dpd_file2_close(&D);
91
 
  }
92
 
 
93
 
  /* R_I^A */
94
 
  dpd_file2_init(&R1, CC_GR, S.irrep, 0, 1, "RIA");
95
 
  dpd_file2_copy(&R1, CC_TMP, "LTDIA");
96
 
  dpd_file2_close(&R1);
97
 
 
98
 
  if(S.irrep == 0) {
99
 
    dpd_file2_init(&D, CC_TMP, 0, 0, 1, "LTDIA");
100
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 2, 7, 0, "tIJAB");
101
 
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
102
 
    dpd_dot24(&L1, &T2, &D, 0, 0, 1.0, 1.0);
103
 
    dpd_file2_close(&L1);
104
 
    dpd_buf4_close(&T2);
105
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tIjAb");
106
 
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "Lia");
107
 
    dpd_dot24(&L1, &T2, &D, 0, 0, 1.0, 1.0);
108
 
    dpd_file2_close(&L1);
109
 
    dpd_buf4_close(&T2);
110
 
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
111
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
112
 
    dpd_file2_init(&Z, CC_TMP0, 0, 0, 0, "Z(I,M)");
113
 
    dpd_contract222(&T1, &L1, &Z, 0, 0, 1.0, 0.0);
114
 
    dpd_file2_close(&L1);
115
 
    dpd_contract222(&Z, &T1, &D, 0, 1, -1.0, 1.0);
116
 
    dpd_file2_close(&T1);
117
 
    dpd_file2_close(&Z);
118
 
 
119
 
    /*  D(I,A) << L2(MN,EF) T2(IN,EF) T(M,A) + L2(Mn,Ef) T2(In,Ef) T(M,A) */
120
 
 
121
 
    dpd_file2_init(&Z, CC_TMP0, 0, 0, 0, "Z(I,M)");
122
 
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 7, 2, 7, 0, "LIJAB");
123
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 7, 2, 7, 0, "tIJAB");
124
 
    dpd_contract442(&T2, &L2, &Z, 0, 0, 1.0, 0.0);
125
 
    dpd_buf4_close(&T2);
126
 
    dpd_buf4_close(&L2);
127
 
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 5, 0, 5, 0, "LIjAb");
128
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tIjAb");
129
 
    dpd_contract442(&T2, &L2, &Z, 0, 0, 1.0, 1.0);
130
 
    dpd_buf4_close(&T2);
131
 
    dpd_buf4_close(&L2);
132
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
133
 
    dpd_contract222(&Z, &T1, &D, 0, 1, -1.0, 1.0);
134
 
    dpd_file2_close(&Z);
135
 
    dpd_file2_close(&T1);
136
 
 
137
 
    /* T2(MN,AF) L2(MN,EF) T(I,E) + T2(Mn,Af) L2(Mn,Ef) T(I,E) */
138
 
 
139
 
    dpd_file2_init(&Z, CC_TMP0, 0, 1, 1, "Z(A,E)");
140
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 2, 5, 2, 7, 0, "tIJAB");
141
 
    dpd_buf4_init(&L2, CC_GLG, 0, 2, 5, 2, 7, 0, "LIJAB");
142
 
    dpd_contract442(&T2, &L2, &Z, 2, 2, 1.0, 0.0);
143
 
    dpd_buf4_close(&L2);
144
 
    dpd_buf4_close(&T2);
145
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tIjAb");
146
 
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 5, 0, 5, 0, "LIjAb");
147
 
    dpd_contract442(&T2, &L2, &Z, 2, 2, 1.0, 1.0);
148
 
    dpd_buf4_close(&L2);
149
 
    dpd_buf4_close(&T2);
150
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
151
 
    dpd_contract222(&T1, &Z, &D, 0, 0, -1.0, 1.0);
152
 
    dpd_file2_close(&T1);
153
 
    dpd_file2_close(&Z);
154
 
    dpd_file2_close(&D);
155
 
  }
156
 
 
157
 
  /* R_i^a */
158
 
  dpd_file2_init(&R1, CC_GR, S.irrep, 0, 1, "Ria");
159
 
  dpd_file2_copy(&R1, CC_TMP, "LTDia");
160
 
  dpd_file2_close(&R1);
161
 
 
162
 
  if(S.irrep == 0) {
163
 
    dpd_file2_init(&D, CC_TMP, 0, 0, 1, "LTDia");
164
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 2, 7, 0, "tijab");
165
 
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "Lia");
166
 
    dpd_dot24(&L1, &T2, &D, 0, 0, 1.0, 1.0);
167
 
    dpd_file2_close(&L1);
168
 
    dpd_buf4_close(&T2);
169
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tiJaB");
170
 
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
171
 
    dpd_dot24(&L1, &T2, &D, 0, 0, 1.0, 1.0);
172
 
    dpd_file2_close(&L1);
173
 
    dpd_buf4_close(&T2);
174
 
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "Lia");
175
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tia");
176
 
    dpd_file2_init(&Z, CC_TMP0, 0, 0, 0, "Z(i,m)");
177
 
    dpd_contract222(&T1, &L1, &Z, 0, 0, 1.0, 0.0);
178
 
    dpd_file2_close(&L1);
179
 
    dpd_contract222(&Z, &T1, &D, 0, 1, -1.0, 1.0);
180
 
    dpd_file2_close(&T1);
181
 
    dpd_file2_close(&Z);
182
 
    dpd_file2_init(&Z, CC_TMP0, 0, 0, 0, "Z(i,m)");
183
 
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 7, 2, 7, 0, "Lijab");
184
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 7, 2, 7, 0, "tijab");
185
 
    dpd_contract442(&T2, &L2, &Z, 0, 0, 1.0, 0.0);
186
 
    dpd_buf4_close(&T2);
187
 
    dpd_buf4_close(&L2);
188
 
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 5, 0, 5, 0, "LiJaB");
189
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tiJaB");
190
 
    dpd_contract442(&T2, &L2, &Z, 0, 0, 1.0, 1.0);
191
 
    dpd_buf4_close(&T2);
192
 
    dpd_buf4_close(&L2);
193
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tia");
194
 
    dpd_contract222(&Z, &T1, &D, 0, 1, -1.0, 1.0);
195
 
    dpd_file2_close(&Z);
196
 
    dpd_file2_close(&T1);
197
 
    dpd_file2_init(&Z, CC_TMP0, 0, 1, 1, "Z(a,e)");
198
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 2, 5, 2, 7, 0, "tijab");
199
 
    dpd_buf4_init(&L2, CC_GLG, 0, 2, 5, 2, 7, 0, "Lijab");
200
 
    dpd_contract442(&T2, &L2, &Z, 2, 2, 1.0, 0.0);
201
 
    dpd_buf4_close(&L2);
202
 
    dpd_buf4_close(&T2);
203
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tiJaB");
204
 
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 5, 0, 5, 0, "LiJaB");
205
 
    dpd_contract442(&T2, &L2, &Z, 2, 2, 1.0, 1.0);
206
 
    dpd_buf4_close(&L2);
207
 
    dpd_buf4_close(&T2);
208
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tia");
209
 
    dpd_contract222(&T1, &Z, &D, 0, 0, -1.0, 1.0);
210
 
    dpd_file2_close(&T1);
211
 
    dpd_file2_close(&Z);
212
 
    dpd_file2_close(&D);
213
 
 
214
 
    /* Note that these blocks are still stored occ/vir */
215
 
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
216
 
    dpd_file2_copy(&L1, CC_TMP, "LTDAI");
217
 
    dpd_file2_close(&L1);
218
 
 
219
 
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "Lia");
220
 
    dpd_file2_copy(&L1, CC_TMP, "LTDai");
221
 
    dpd_file2_close(&L1);
222
 
 
223
 
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
224
 
    dpd_file2_scm(&L1, (1/S.R0));
225
 
    dpd_file2_close(&L1);
226
 
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "Lia");
227
 
    dpd_file2_scm(&L1, (1/S.R0));
228
 
    dpd_file2_close(&L1);
229
 
    dpd_buf4_init(&L2, CC_GLG, 0, 2, 7, 2, 7, 0, "LIJAB");
230
 
    dpd_buf4_scm(&L2, (1/S.R0));
231
 
    dpd_buf4_close(&L2);
232
 
    dpd_buf4_init(&L2, CC_GLG, 0, 2, 7, 2, 7, 0, "Lijab");
233
 
    dpd_buf4_scm(&L2, (1/S.R0));
234
 
    dpd_buf4_close(&L2);
235
 
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 5, 0, 5, 0, "LIjAb");
236
 
    dpd_buf4_scm(&L2, (1/S.R0));
237
 
    dpd_buf4_close(&L2);
238
 
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 5, 0, 5, 0, "LiJaB");
239
 
    dpd_buf4_scm(&L2, (1/S.R0));
240
 
    dpd_buf4_close(&L2);
241
 
  }
242
 
 
243
 
  ltdensity_intermediates(S);
244
 
 
245
 
  dpd_file2_init(&TIA, CC_OEI, 0, 0, 1, "tIA");
246
 
  dpd_file2_init(&Tia, CC_OEI, 0, 0, 1, "tia");
247
 
  dpd_file2_init(&RIA, CC_GR, S.irrep, 0, 1, "RIA");
248
 
  dpd_file2_init(&Ria, CC_GR, S.irrep, 0, 1, "Ria");
249
 
  dpd_file2_init(&LIA, CC_GLG, 0, 0, 1, "LIA");
250
 
  dpd_file2_init(&Lia, CC_GLG, 0, 0, 1, "Lia");
251
 
 
252
 
  /* D[i][j] = -LR_oo[j][i] - t1[i][f] * L2R1_ov[j][f] */
253
 
 
254
 
  dpd_file2_init(&DIJ, CC_TMP, S.irrep, 0, 0, "LTDIJ");
255
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 0, "LR_OO");
256
 
  dpd_file2_axpy(&Int, &DIJ, -1.0, 1);
257
 
  dpd_file2_close(&Int);
258
 
 
259
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 1, "L2R1_OV");
260
 
  dpd_contract222(&TIA, &Int, &DIJ, 0, 0, -1.0, 1.0);
261
 
  dpd_file2_close(&Int);
262
 
  dpd_file2_close(&DIJ);
263
 
 
264
 
  dpd_file2_init(&Dij, CC_TMP, S.irrep, 0, 0, "LTDij");
265
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 0, "LR_oo");
266
 
  dpd_file2_axpy(&Int, &Dij, -1.0, 1);
267
 
  dpd_file2_close(&Int);
268
 
 
269
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 1, "L2R1_ov");
270
 
  dpd_contract222(&Tia, &Int, &Dij, 0, 0, -1.0, 1.0);
271
 
  dpd_file2_close(&Int);
272
 
  dpd_file2_close(&Dij);
273
 
 
274
 
  /* D[a][b] = +LR_vv[a][b] + L2R1_ov[n][a] * t1[n][b] */
275
 
 
276
 
  dpd_file2_init(&DAB, CC_TMP, S.irrep, 1, 1, "LTDAB");
277
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 1, 1, "LR_VV");
278
 
  dpd_file2_axpy(&Int, &DAB, 1.0, 0);
279
 
  dpd_file2_close(&Int);
280
 
 
281
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 1, "L2R1_OV");
282
 
  dpd_contract222(&Int, &TIA, &DAB, 1, 1, 1.0, 1.0);
283
 
  dpd_file2_close(&Int);
284
 
  dpd_file2_close(&DAB);
285
 
 
286
 
  dpd_file2_init(&Dab, CC_TMP, S.irrep, 1, 1, "LTDab");
287
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 1, 1, "LR_vv");
288
 
  dpd_file2_axpy(&Int, &Dab, 1.0, 0);
289
 
  dpd_file2_close(&Int);
290
 
 
291
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 1, "L2R1_ov");
292
 
  dpd_contract222(&Int, &Tia, &Dab, 1, 1, 1.0, 1.0);
293
 
  dpd_file2_close(&Int);
294
 
  dpd_file2_close(&Dab);
295
 
 
296
 
  /* D[a][i] = +L2R1_ov[i][a] */
297
 
 
298
 
  dpd_file2_init(&DAI, CC_TMP, S.irrep, 0, 1, "LTDAI");
299
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 1, "L2R1_OV");
300
 
  dpd_file2_axpy(&Int, &DAI, 1.0, 0);
301
 
  dpd_file2_close(&Int);
302
 
  dpd_file2_close(&DAI);
303
 
 
304
 
  dpd_file2_init(&Dai, CC_TMP, S.irrep, 0, 1, "LTDai");
305
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 1, "L2R1_ov");
306
 
  dpd_file2_axpy(&Int, &Dai, 1.0, 0);
307
 
  dpd_file2_close(&Int);
308
 
  dpd_file2_close(&Dai);
309
 
 
310
 
  dpd_file2_init(&DIA, CC_TMP, S.irrep, 0, 1, "LTDIA");
311
 
  dpd_file2_init(&Dia, CC_TMP, S.irrep, 0, 1, "LTDia");
312
 
 
313
 
  /* D[i][a] = L1R2_ov[i][a] */
314
 
 
315
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 1, "L1R2_OV");
316
 
  dpd_file2_axpy(&Int, &DIA, 1.0, 0);
317
 
  dpd_file2_close(&Int);
318
 
 
319
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 1, "L1R2_ov");
320
 
  dpd_file2_axpy(&Int, &Dia, 1.0, 0);
321
 
  dpd_file2_close(&Int);
322
 
 
323
 
  /* - LR_OO[M][I] * t1[M][A] */
324
 
 
325
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 0, "LR_OO");
326
 
  dpd_contract222(&Int, &TIA, &DIA, 1, 1, -1.0, 1.0);
327
 
  dpd_file2_close(&Int);
328
 
 
329
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 0, "LR_oo");
330
 
  dpd_contract222(&Int, &Tia, &Dia, 1, 1, -1.0, 1.0);
331
 
  dpd_file2_close(&Int);
332
 
 
333
 
  /* - t1[I][E] * LR_vv[E][A] */
334
 
 
335
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 1, 1, "LR_VV");
336
 
  dpd_contract222(&TIA, &Int, &DIA, 0, 1, -1.0, 1.0);
337
 
  dpd_file2_close(&Int);
338
 
 
339
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 1, 1, "LR_vv");
340
 
  dpd_contract222(&Tia, &Int, &Dia, 0, 1, -1.0, 1.0);
341
 
  dpd_file2_close(&Int);
342
 
 
343
 
  /* - LT2_OO[M][I] * r1[M][A] */
344
 
 
345
 
  dpd_file2_init(&Int, EOM_TMP, 0, 0, 0, "LT2_OO");
346
 
  dpd_contract222(&Int, &RIA, &DIA, 1, 1, -1.0, 1.0);
347
 
  dpd_file2_close(&Int);
348
 
 
349
 
  dpd_file2_init(&Int, EOM_TMP, 0, 0, 0, "LT2_oo");
350
 
  dpd_contract222(&Int, &Ria, &Dia, 1, 1, -1.0, 1.0);
351
 
  dpd_file2_close(&Int);
352
 
 
353
 
  /* - r1[I][E] * LT2_VV[E][A] */
354
 
 
355
 
  dpd_file2_init(&Int, EOM_TMP, 0, 1, 1, "LT2_VV");
356
 
  dpd_contract222(&RIA, &Int, &DIA, 0, 1, -1.0, 1.0);
357
 
  dpd_file2_close(&Int);
358
 
 
359
 
  dpd_file2_init(&Int, EOM_TMP, 0, 1, 1, "LT2_vv");
360
 
  dpd_contract222(&Ria, &Int, &Dia, 0, 1, -1.0, 1.0);
361
 
  dpd_file2_close(&Int);
362
 
 
363
 
  /* + L2R1_ov[M][E] * t2[i][m][a][e] */
364
 
 
365
 
  dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 2, 7, 0, "tIJAB"); 
366
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 1, "L2R1_OV");
367
 
  dpd_dot24(&Int, &T2, &DIA, 0, 0, 1.0, 1.0);
368
 
  dpd_file2_close(&Int);
369
 
  dpd_buf4_close(&T2);
370
 
 
371
 
  dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tIjAb"); 
372
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 1, "L2R1_ov");
373
 
  dpd_dot24(&Int, &T2, &DIA, 0, 0, 1.0, 1.0);
374
 
  dpd_file2_close(&Int);
375
 
  dpd_buf4_close(&T2);
376
 
 
377
 
  dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 2, 7, 0, "tijab"); 
378
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 1, "L2R1_ov");
379
 
  dpd_dot24(&Int, &T2, &Dia, 0, 0, 1.0, 1.0);
380
 
  dpd_file2_close(&Int);
381
 
  dpd_buf4_close(&T2);
382
 
 
383
 
  dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 0, 5, 0, "tiJaB"); 
384
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 1, "L2R1_OV");
385
 
  dpd_dot24(&Int, &T2, &Dia, 0, 0, 1.0, 1.0);
386
 
  dpd_file2_close(&Int);
387
 
  dpd_buf4_close(&T2);
388
 
    
389
 
  /* - (t1[i][e] * L2R1_ov[M][E]) * t1[m][a] */
390
 
 
391
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 1, "L2R1_OV");
392
 
  dpd_file2_init(&XIJ, EOM_TMP, S.irrep, 0, 0, "XIJ");
393
 
  dpd_contract222(&TIA, &Int, &XIJ, 0, 0, 1.0, 0.0);
394
 
  dpd_file2_close(&Int);
395
 
 
396
 
  dpd_file2_init(&XIJ, EOM_TMP, S.irrep, 0, 0, "XIJ");
397
 
  dpd_contract222(&XIJ, &TIA, &DIA, 0, 1, -1.0, 1.0);
398
 
  dpd_file2_close(&XIJ);
399
 
 
400
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 1, "L2R1_ov");
401
 
  dpd_file2_init(&Xij, EOM_TMP, S.irrep, 0, 0, "Xij");
402
 
  dpd_contract222(&Tia, &Int, &Xij, 0, 0, 1.0, 0.0);
403
 
  dpd_file2_close(&Int);
404
 
 
405
 
  dpd_file2_init(&Xij, EOM_TMP, S.irrep, 0, 0, "Xij");
406
 
  dpd_contract222(&Xij, &Tia, &Dia, 0, 1, -1.0, 1.0);
407
 
  dpd_file2_close(&Xij);
408
 
 
409
 
  dpd_file2_close(&DIA);
410
 
  dpd_file2_close(&Dia);
411
 
 
412
 
  dpd_file2_close(&TIA);
413
 
  dpd_file2_close(&Tia);
414
 
  dpd_file2_close(&RIA);
415
 
  dpd_file2_close(&Ria);
416
 
  dpd_file2_close(&LIA);
417
 
  dpd_file2_close(&Lia);
418
 
 
419
 
  return;
420
 
}
421
 
 
422
 
void ltdensity_uhf(struct TD_Params S)
423
 
{
424
 
  dpdfile2 DAI, Dai, DIA, Dia, DIJ, DAB, Dij, Dab, TIA, Tia;
425
 
  dpdfile2 LIA, Lia, RIA, Ria, Int, XIJ, Xij, R1;
426
 
  dpdbuf4 T2, L2, R2, I2;
427
 
  dpdfile2 D, T1, L1, Z;
428
 
 
429
 
  if(S.irrep == 0 ) { /* Symmetric Transition */
430
 
 
431
 
    dpd_file2_init(&D, CC_TMP, 0, 0, 0, "LTDIJ");
432
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 7, 2, 7, 0, "tIJAB");
433
 
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 7, 2, 7, 0, "LIJAB");
434
 
    dpd_contract442(&T2, &L2, &D, 0, 0, -1.0, 0.0);
435
 
    dpd_buf4_close(&L2);
436
 
    dpd_buf4_close(&T2); 
437
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tIjAb");
438
 
    dpd_buf4_init(&L2, CC_GLG, 0, 22, 28, 22, 28, 0, "LIjAb");
439
 
    dpd_contract442(&T2, &L2, &D, 0, 0, -1.0, 1.0);
440
 
    dpd_buf4_close(&L2);
441
 
    dpd_buf4_close(&T2); 
442
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
443
 
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
444
 
    dpd_contract222(&T1, &L1, &D, 0, 0, -1.0, 1.0);
445
 
    dpd_file2_close(&L1);
446
 
    dpd_file2_close(&T1);
447
 
    dpd_file2_close(&D);
448
 
 
449
 
    dpd_file2_init(&D, CC_TMP, 0, 2, 2, "LTDij");
450
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 17, 12, 17, 0, "tijab");
451
 
    dpd_buf4_init(&L2, CC_GLG, 0, 10, 17, 12, 17, 0, "Lijab");
452
 
    dpd_contract442(&T2, &L2, &D, 0, 0, -1.0, 0.0);
453
 
    dpd_buf4_close(&L2);
454
 
    dpd_buf4_close(&T2);
455
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 23, 29, 23, 29, 0, "tiJaB");
456
 
    dpd_buf4_init(&L2, CC_GLG, 0, 23, 29, 23, 29, 0, "LiJaB");
457
 
    dpd_contract442(&T2, &L2, &D, 0, 0, -1.0, 1.0);
458
 
    dpd_buf4_close(&L2);
459
 
    dpd_buf4_close(&T2);
460
 
    dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
461
 
    dpd_file2_init(&L1, CC_GLG, 0, 2, 3, "Lia");
462
 
    dpd_contract222(&T1, &L1, &D, 0, 0, -1.0, 1.0);
463
 
    dpd_file2_close(&L1);
464
 
    dpd_file2_close(&T1);
465
 
    dpd_file2_close(&D);
466
 
 
467
 
    dpd_file2_init(&D, CC_TMP, 0, 1, 1, "LTDAB");
468
 
    dpd_buf4_init(&L2, CC_GLG, 0, 2, 5, 2, 7, 0, "LIJAB");
469
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 2, 5, 2, 7, 0, "tIJAB");
470
 
    dpd_contract442(&L2, &T2, &D, 3, 3, 1.0, 0.0);
471
 
    dpd_buf4_close(&T2);
472
 
    dpd_buf4_close(&L2);
473
 
    dpd_buf4_init(&L2, CC_GLG, 0, 23, 29, 23, 29, 0, "LiJaB");
474
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 23, 29, 23, 29, 0, "tiJaB");
475
 
    dpd_contract442(&L2, &T2, &D, 3, 3, 1.0, 1.0);
476
 
    dpd_buf4_close(&L2);
477
 
    dpd_buf4_close(&T2);
478
 
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
479
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
480
 
    dpd_contract222(&L1, &T1, &D, 1, 1, 1.0, 1.0);
481
 
    dpd_file2_close(&L1);
482
 
    dpd_file2_close(&T1);
483
 
    dpd_file2_close(&D);
484
 
 
485
 
    dpd_file2_init(&D, CC_TMP, 0, 3, 3, "LTDab");
486
 
    dpd_buf4_init(&L2, CC_GLG, 0, 12, 15, 12, 17, 0, "Lijab");
487
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 12, 15, 12, 17, 0, "tijab");
488
 
    dpd_contract442(&L2, &T2, &D, 3, 3, 1.0, 0.0);
489
 
    dpd_buf4_close(&T2);
490
 
    dpd_buf4_close(&L2);
491
 
    dpd_buf4_init(&L2, CC_GLG, 0, 22, 28, 22, 28, 0, "LIjAb");
492
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tIjAb");
493
 
    dpd_contract442(&L2, &T2, &D, 3, 3, 1.0, 1.0);
494
 
    dpd_buf4_close(&L2);
495
 
    dpd_buf4_close(&T2);
496
 
    dpd_file2_init(&L1, CC_GLG, 0, 2, 3, "Lia");
497
 
    dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
498
 
    dpd_contract222(&L1, &T1, &D, 1, 1, 1.0, 1.0);
499
 
    dpd_file2_close(&L1);
500
 
    dpd_file2_close(&T1);
501
 
    dpd_file2_close(&D);
502
 
  }
503
 
 
504
 
  /* R_I^A */
505
 
    
506
 
  dpd_file2_init(&R1, CC_GR, S.irrep, 0, 1, "RIA");
507
 
  dpd_file2_copy(&R1, CC_TMP, "LTDIA");
508
 
  dpd_file2_close(&R1); 
509
 
 
510
 
  if(S.irrep == 0) { // Symmetric Transitions
511
 
 
512
 
    dpd_file2_init(&D, CC_TMP, 0, 0, 1, "LTDIA");
513
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 2, 7, 0, "tIJAB");
514
 
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
515
 
    dpd_dot24(&L1, &T2, &D, 0, 0, 1.0, 1.0);
516
 
    dpd_file2_close(&L1);
517
 
    dpd_buf4_close(&T2);
518
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tIjAb");
519
 
    dpd_file2_init(&L1, CC_GLG, 0, 2, 3, "Lia");
520
 
    dpd_dot24(&L1, &T2, &D, 0, 0, 1.0, 1.0);
521
 
    dpd_file2_close(&L1);
522
 
    dpd_buf4_close(&T2);
523
 
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
524
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
525
 
    dpd_file2_init(&Z, CC_TMP0, 0, 0, 0, "Z(I,M)");
526
 
    dpd_contract222(&T1, &L1, &Z, 0, 0, 1.0, 0.0);
527
 
    dpd_file2_close(&L1);
528
 
    dpd_contract222(&Z, &T1, &D, 0, 1, -1.0, 1.0);
529
 
    dpd_file2_close(&T1);
530
 
    dpd_file2_close(&Z);
531
 
 
532
 
    /*  D(I,A) << L2(MN,EF) T2(IN,EF) T(M,A) + L2(Mn,Ef) T2(In,Ef) T(M,A) */
533
 
 
534
 
    dpd_file2_init(&Z, CC_TMP0, 0, 0, 0, "Z(I,M)");
535
 
    dpd_buf4_init(&L2, CC_GLG, 0, 0, 7, 2, 7, 0, "LIJAB");
536
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 7, 2, 7, 0, "tIJAB");
537
 
    dpd_contract442(&T2, &L2, &Z, 0, 0, 1.0, 0.0);
538
 
    dpd_buf4_close(&T2);
539
 
    dpd_buf4_close(&L2);
540
 
    dpd_buf4_init(&L2, CC_GLG, 0, 22, 28, 22, 28, 0, "LIjAb");
541
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tIjAb");
542
 
    dpd_contract442(&T2, &L2, &Z, 0, 0, 1.0, 1.0);
543
 
    dpd_buf4_close(&T2);
544
 
    dpd_buf4_close(&L2);
545
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
546
 
    dpd_contract222(&Z, &T1, &D, 0, 1, -1.0, 1.0);
547
 
    dpd_file2_close(&Z);
548
 
    dpd_file2_close(&T1);
549
 
    /* T2(MN,AF) L2(MN,EF) T(I,E) + T2(Mn,Af) L2(Mn,Ef) T(I,E) */
550
 
    dpd_file2_init(&Z, CC_TMP0, 0, 1, 1, "Z(A,E)");
551
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 2, 5, 2, 7, 0, "tIJAB");
552
 
    dpd_buf4_init(&L2, CC_GLG, 0, 2, 5, 2, 7, 0, "LIJAB");
553
 
    dpd_contract442(&T2, &L2, &Z, 2, 2, 1.0, 0.0);
554
 
    dpd_buf4_close(&L2);
555
 
    dpd_buf4_close(&T2);
556
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tIjAb");
557
 
    dpd_buf4_init(&L2, CC_GLG, 0, 22, 28, 22, 28, 0, "LIjAb");
558
 
    dpd_contract442(&T2, &L2, &Z, 2, 2, 1.0, 1.0);
559
 
    dpd_buf4_close(&L2);
560
 
    dpd_buf4_close(&T2);
561
 
    dpd_file2_init(&T1, CC_OEI, 0, 0, 1, "tIA");
562
 
    dpd_contract222(&T1, &Z, &D, 0, 0, -1.0, 1.0);
563
 
    dpd_file2_close(&T1);
564
 
    dpd_file2_close(&Z);
565
 
    dpd_file2_close(&D);
566
 
  }
567
 
 
568
 
  /* R_i^a */
569
 
    
570
 
  dpd_file2_init(&R1, CC_GR, S.irrep, 2, 3, "Ria");
571
 
  dpd_file2_copy(&R1, CC_TMP, "LTDia"); 
572
 
  dpd_file2_close(&R1);
573
 
 
574
 
  if(S.irrep == 0) { /* Symmetric Transitions */
575
 
 
576
 
    dpd_file2_init(&D, CC_TMP, 0, 2, 3, "LTDia");
577
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 15, 12, 17, 0, "tijab");
578
 
    dpd_file2_init(&L1, CC_GLG, 0, 2, 3, "Lia");
579
 
    dpd_dot24(&L1, &T2, &D, 0, 0, 1.0, 1.0);
580
 
    dpd_file2_close(&L1);
581
 
    dpd_buf4_close(&T2);
582
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 23, 29, 23, 29, 0, "tiJaB");
583
 
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
584
 
    dpd_dot24(&L1, &T2, &D, 0, 0, 1.0, 1.0);
585
 
    dpd_file2_close(&L1);
586
 
    dpd_buf4_close(&T2);
587
 
    dpd_file2_init(&L1, CC_GLG, 0, 2, 3, "Lia");
588
 
    dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
589
 
    dpd_file2_init(&Z, CC_TMP0, 0, 2, 2, "Z(i,m)");
590
 
    dpd_contract222(&T1, &L1, &Z, 0, 0, 1.0, 0.0);
591
 
    dpd_file2_close(&L1);
592
 
    dpd_contract222(&Z, &T1, &D, 0, 1, -1.0, 1.0);
593
 
    dpd_file2_close(&T1);
594
 
    dpd_file2_close(&Z);
595
 
    dpd_file2_init(&Z, CC_TMP0, 0, 2, 2, "Z(i,m)");
596
 
    dpd_buf4_init(&L2, CC_GLG, 0, 10, 17, 12, 17, 0, "Lijab");
597
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 17, 12, 17, 0, "tijab");
598
 
    dpd_contract442(&T2, &L2, &Z, 0, 0, 1.0, 0.0);
599
 
    dpd_buf4_close(&T2);
600
 
    dpd_buf4_close(&L2);
601
 
    dpd_buf4_init(&L2, CC_GLG, 0, 23, 29, 23, 29, 0, "LiJaB");
602
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 23, 29, 23, 29, 0, "tiJaB");
603
 
    dpd_contract442(&T2, &L2, &Z, 0, 0, 1.0, 1.0);
604
 
    dpd_buf4_close(&T2);
605
 
    dpd_buf4_close(&L2);
606
 
    dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
607
 
    dpd_contract222(&Z, &T1, &D, 0, 1, -1.0, 1.0);
608
 
    dpd_file2_close(&Z);
609
 
    dpd_file2_close(&T1);
610
 
    dpd_file2_init(&Z, CC_TMP0, 0, 3, 3, "Z(a,e)");
611
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 12, 15, 12, 17, 0, "tijab");
612
 
    dpd_buf4_init(&L2, CC_GLG, 0, 12, 15, 12, 17, 0, "Lijab");
613
 
    dpd_contract442(&T2, &L2, &Z, 2, 2, 1.0, 0.0);
614
 
    dpd_buf4_close(&L2);
615
 
    dpd_buf4_close(&T2);
616
 
    dpd_buf4_init(&T2, CC_TAMPS, 0, 23, 29, 23, 29, 0, "tiJaB");
617
 
    dpd_buf4_init(&L2, CC_GLG, 0, 23, 29, 23, 29, 0, "LiJaB");
618
 
    dpd_contract442(&T2, &L2, &Z, 2, 2, 1.0, 1.0);
619
 
    dpd_buf4_close(&L2);
620
 
    dpd_buf4_close(&T2);
621
 
    dpd_file2_init(&T1, CC_OEI, 0, 2, 3, "tia");
622
 
    dpd_contract222(&T1, &Z, &D, 0, 0, -1.0, 1.0);
623
 
    dpd_file2_close(&T1);
624
 
    dpd_file2_close(&Z);
625
 
    dpd_file2_close(&D);
626
 
 
627
 
    /* Note that these blocks are still stored occ/vir */
628
 
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
629
 
    dpd_file2_copy(&L1, CC_TMP, "LTDAI");
630
 
    dpd_file2_close(&L1);
631
 
 
632
 
    dpd_file2_init(&L1, CC_GLG, 0, 2, 3, "Lia");
633
 
    dpd_file2_copy(&L1, CC_TMP, "LTDai");
634
 
    dpd_file2_close(&L1);
635
 
 
636
 
    dpd_file2_init(&L1, CC_GLG, 0, 0, 1, "LIA");
637
 
    dpd_file2_scm(&L1, (1/S.R0));
638
 
    dpd_file2_close(&L1);
639
 
    dpd_file2_init(&L1, CC_GLG, 0, 2, 3, "Lia");
640
 
    dpd_file2_scm(&L1, (1/S.R0));
641
 
    dpd_file2_close(&L1);
642
 
    dpd_buf4_init(&L2, CC_GLG, 0, 2, 7, 2, 7, 0, "LIJAB");
643
 
    dpd_buf4_scm(&L2, (1/S.R0));
644
 
    dpd_buf4_close(&L2);
645
 
    dpd_buf4_init(&L2, CC_GLG, 0, 10, 17, 12, 17, 0, "Lijab");
646
 
    dpd_buf4_scm(&L2, (1/S.R0));
647
 
    dpd_buf4_close(&L2);
648
 
    dpd_buf4_init(&L2, CC_GLG, 0, 22, 28, 22, 28, 0, "LIjAb");
649
 
    dpd_buf4_scm(&L2, (1/S.R0));
650
 
    dpd_buf4_close(&L2);
651
 
    dpd_buf4_init(&L2, CC_GLG, 0, 23, 29, 23, 29, 0, "LiJaB");
652
 
    dpd_buf4_scm(&L2, (1/S.R0));
653
 
    dpd_buf4_close(&L2);
654
 
  }
655
 
 
656
 
  ltdensity_intermediates(S);
657
 
 
658
 
  dpd_file2_init(&TIA, CC_OEI, 0, 0, 1, "tIA");
659
 
  dpd_file2_init(&Tia, CC_OEI, 0, 2, 3, "tia");
660
 
  dpd_file2_init(&RIA, CC_GR, S.irrep, 0, 1, "RIA");
661
 
  dpd_file2_init(&Ria, CC_GR, S.irrep, 2, 3, "Ria");
662
 
  dpd_file2_init(&LIA, CC_GL, S.irrep, 0, 1, "LIA");
663
 
  dpd_file2_init(&Lia, CC_GL, S.irrep, 2, 3, "Lia");
664
 
 
665
 
  /* D[i][j] = -LR_oo[j][i] - t1[i][f] * L2R1_ov[j][f] */
666
 
 
667
 
  dpd_file2_init(&DIJ, CC_TMP, S.irrep, 0, 0, "LTDIJ");
668
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 0, "LR_OO");
669
 
  dpd_file2_axpy(&Int, &DIJ, -1.0, 1);
670
 
  dpd_file2_close(&Int);
671
 
 
672
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 1, "L2R1_OV");
673
 
  dpd_contract222(&TIA, &Int, &DIJ, 0, 0, -1.0, 1.0);
674
 
  dpd_file2_close(&Int);
675
 
  dpd_file2_close(&DIJ);
676
 
 
677
 
  dpd_file2_init(&Dij, CC_TMP, S.irrep, 2, 2, "LTDij");
678
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 2, 2, "LR_oo");
679
 
  dpd_file2_axpy(&Int, &Dij, -1.0, 1);
680
 
  dpd_file2_close(&Int);
681
 
 
682
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 2, 3, "L2R1_ov");
683
 
  dpd_contract222(&Tia, &Int, &Dij, 0, 0, -1.0, 1.0);
684
 
  dpd_file2_close(&Int);
685
 
  dpd_file2_close(&Dij);
686
 
 
687
 
  /* D[a][b] = +LR_vv[a][b] + L2R1_ov[n][a] * t1[n][b] */
688
 
 
689
 
  dpd_file2_init(&DAB, CC_TMP, S.irrep, 1, 1, "LTDAB");
690
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 1, 1, "LR_VV");
691
 
  dpd_file2_axpy(&Int, &DAB, 1.0, 0);
692
 
  dpd_file2_close(&Int);
693
 
 
694
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 1, "L2R1_OV");
695
 
  dpd_contract222(&Int, &TIA, &DAB, 1, 1, 1.0, 1.0);
696
 
  dpd_file2_close(&Int);
697
 
  dpd_file2_close(&DAB);
698
 
 
699
 
  dpd_file2_init(&Dab, CC_TMP, S.irrep, 3, 3, "LTDab");
700
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 3, 3, "LR_vv");
701
 
  dpd_file2_axpy(&Int, &Dab, 1.0, 0);
702
 
  dpd_file2_close(&Int);
703
 
 
704
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 2, 3, "L2R1_ov");
705
 
  dpd_contract222(&Int, &Tia, &Dab, 1, 1, 1.0, 1.0);
706
 
  dpd_file2_close(&Int);
707
 
  dpd_file2_close(&Dab);
708
 
 
709
 
  /* D[a][i] = +L2R1_ov[i][a] */
710
 
 
711
 
  dpd_file2_init(&DAI, CC_TMP, S.irrep, 0, 1, "LTDAI");
712
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 1, "L2R1_OV");
713
 
  dpd_file2_axpy(&Int, &DAI, 1.0, 0);
714
 
  dpd_file2_close(&Int);
715
 
  dpd_file2_close(&DAI);
716
 
 
717
 
  dpd_file2_init(&Dai, CC_TMP, S.irrep, 2, 3, "LTDai");
718
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 2, 3, "L2R1_ov");
719
 
  dpd_file2_axpy(&Int, &Dai, 1.0, 0);
720
 
  dpd_file2_close(&Int);
721
 
  dpd_file2_close(&Dai);
722
 
 
723
 
  dpd_file2_init(&DIA, CC_TMP, S.irrep, 0, 1, "LTDIA");
724
 
 
725
 
  dpd_file2_init(&Dia, CC_TMP, S.irrep, 2, 3, "LTDia");
726
 
 
727
 
  /* D[i][a] = L1R2_ov[i][a] */
728
 
 
729
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 1, "L1R2_OV");
730
 
  dpd_file2_axpy(&Int, &DIA, 1.0, 0);
731
 
  dpd_file2_close(&Int);
732
 
 
733
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 2, 3, "L1R2_ov");
734
 
  dpd_file2_axpy(&Int, &Dia, 1.0, 0);
735
 
  dpd_file2_close(&Int);
736
 
 
737
 
  /* - LR_OO[M][I] * t1[M][A] */
738
 
 
739
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 0, "LR_OO");
740
 
  dpd_contract222(&Int, &TIA, &DIA, 1, 1, -1.0, 1.0);
741
 
  dpd_file2_close(&Int);
742
 
 
743
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 2, 2, "LR_oo");
744
 
  dpd_contract222(&Int, &Tia, &Dia, 1, 1, -1.0, 1.0);
745
 
  dpd_file2_close(&Int);
746
 
 
747
 
  /* - t1[I][E] * LR_vv[E][A] */
748
 
 
749
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 1, 1, "LR_VV");
750
 
  dpd_contract222(&TIA, &Int, &DIA, 0, 1, -1.0, 1.0);
751
 
  dpd_file2_close(&Int);
752
 
 
753
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 3, 3, "LR_vv");
754
 
  dpd_contract222(&Tia, &Int, &Dia, 0, 1, -1.0, 1.0);
755
 
  dpd_file2_close(&Int);
756
 
 
757
 
  /* - LT2_OO[M][I] * r1[M][A] */
758
 
 
759
 
  dpd_file2_init(&Int, EOM_TMP, 0, 0, 0, "LT2_OO");
760
 
  dpd_contract222(&Int, &RIA, &DIA, 1, 1, -1.0, 1.0);
761
 
  dpd_file2_close(&Int);
762
 
 
763
 
  dpd_file2_init(&Int, EOM_TMP, 0, 2, 2, "LT2_oo");
764
 
  dpd_contract222(&Int, &Ria, &Dia, 1, 1, -1.0, 1.0);
765
 
  dpd_file2_close(&Int);
766
 
 
767
 
  /* - r1[I][E] * LT2_vv[E][A] */
768
 
 
769
 
  dpd_file2_init(&Int, EOM_TMP, 0, 1, 1, "LT2_VV");
770
 
  dpd_contract222(&RIA, &Int, &DIA, 0, 1, -1.0, 1.0);
771
 
  dpd_file2_close(&Int);
772
 
 
773
 
  dpd_file2_init(&Int, EOM_TMP, 0, 3, 3, "LT2_vv");
774
 
  dpd_contract222(&Ria, &Int, &Dia, 0, 1, -1.0, 1.0);
775
 
  dpd_file2_close(&Int);
776
 
 
777
 
  /* + L2R1_ov[M][E] * t2[i][m][a][e] */
778
 
 
779
 
  dpd_buf4_init(&T2, CC_TAMPS, 0, 0, 5, 2, 7, 0, "tIJAB"); 
780
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 1, "L2R1_OV");
781
 
  dpd_dot24(&Int, &T2, &DIA, 0, 0, 1.0, 1.0);
782
 
  dpd_file2_close(&Int);
783
 
  dpd_buf4_close(&T2);
784
 
 
785
 
  dpd_buf4_init(&T2, CC_TAMPS, 0, 22, 28, 22, 28, 0, "tIjAb"); 
786
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 2, 3, "L2R1_ov");
787
 
  dpd_dot24(&Int, &T2, &DIA, 0, 0, 1.0, 1.0);
788
 
  dpd_file2_close(&Int);
789
 
  dpd_buf4_close(&T2);
790
 
 
791
 
  dpd_buf4_init(&T2, CC_TAMPS, 0, 10, 15, 12, 17, 0, "tijab"); 
792
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 2, 3, "L2R1_ov");
793
 
  dpd_dot24(&Int, &T2, &Dia, 0, 0, 1.0, 1.0);
794
 
  dpd_file2_close(&Int);
795
 
  dpd_buf4_close(&T2);
796
 
 
797
 
  dpd_buf4_init(&T2, CC_TAMPS, 0, 23, 29, 23, 29, 0, "tiJaB"); 
798
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 1, "L2R1_OV");
799
 
  dpd_dot24(&Int, &T2, &Dia, 0, 0, 1.0, 1.0);
800
 
  dpd_file2_close(&Int);
801
 
  dpd_buf4_close(&T2);
802
 
    
803
 
  /* - (t1[i][e] * L2R1_ov[M][E]) * t1[m][a] */
804
 
 
805
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 0, 1, "L2R1_OV");
806
 
  dpd_file2_init(&XIJ, EOM_TMP, S.irrep, 0, 0, "XIJ");
807
 
  dpd_contract222(&TIA, &Int, &XIJ, 0, 0, 1.0, 0.0);
808
 
  dpd_file2_close(&Int);
809
 
 
810
 
  dpd_file2_init(&XIJ, EOM_TMP, S.irrep, 0, 0, "XIJ");
811
 
  dpd_contract222(&XIJ, &TIA, &DIA, 0, 1, -1.0, 1.0);
812
 
  dpd_file2_close(&XIJ);
813
 
 
814
 
  dpd_file2_init(&Int, EOM_TMP, S.irrep, 2, 3, "L2R1_ov");
815
 
  dpd_file2_init(&Xij, EOM_TMP, S.irrep, 2, 2, "Xij");
816
 
  dpd_contract222(&Tia, &Int, &Xij, 0, 0, 1.0, 0.0);
817
 
  dpd_file2_close(&Int);
818
 
 
819
 
  dpd_file2_init(&Xij, EOM_TMP, S.irrep, 2, 2, "Xij");
820
 
  dpd_contract222(&Xij, &Tia, &Dia, 0, 1, -1.0, 1.0);
821
 
  dpd_file2_close(&Xij);
822
 
 
823
 
  dpd_file2_close(&DIA);
824
 
  dpd_file2_close(&Dia);
825
 
 
826
 
  dpd_file2_close(&TIA);
827
 
  dpd_file2_close(&Tia);
828
 
  dpd_file2_close(&RIA);
829
 
  dpd_file2_close(&Ria);
830
 
  dpd_file2_close(&LIA);
831
 
  dpd_file2_close(&Lia);
832
 
 
833
 
  return;
834
 
}