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

« back to all changes in this revision

Viewing changes to src/bin/cclambda/WmbejL2.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
 
/* WmbejL2(): Computes the contributions of the Wmbej HBAR matrix
7
 
** elements to the Lambda double deexcitation amplitude equations.
8
 
** These contributions are written in spin orbitals as:
9
 
**
10
 
** L_ij^ab <-- P(ij) P(ab) L_im^ae Wjebm =
11
 
**     L_im^ae Wjebm - L_jm^ae Wiebm - L_im^be Wjeam + L_jm^be Wieam
12
 
**
13
 
** The matrix elements for all six spin cases are stored in (me,jb)
14
 
** ordering.  This leads to the following contractions for the three
15
 
** L2 spin cases:
16
 
** 
17
 
** L(IA,JB) <-- L(IA,ME) W(JB,ME) + L(IA,me) W(JB,me) 
18
 
**            - L(JA,ME) W(IB,ME) - L(JA,me) W(IB,me)
19
 
**            - L(IB,ME) W(JA,ME) - L(IB,me) W(JA,me)
20
 
**            + L(JB,ME) W(IA,ME) + L(JB,me) W(IA,me)
21
 
**    (only two unique contractions)
22
 
** L(ia,jb) <-- L(ia,me) W(jb,me) + L(ia,ME) W(jb,ME) 
23
 
**            - L(ja,me) W(ib,me) - L(ja,ME) W(ib,ME)
24
 
**            - L(ib,me) W(ja,me) - L(ib,ME) W(ja,ME)
25
 
**            + L(jb,me) W(ia,me) + L(jb,ME) W(ia,ME)
26
 
**    (only two unique contractions)
27
 
** L(IA,jb) <-- L(IA,ME) W(jb,ME) + L(IA,me) W(jb,me)
28
 
**            - L(jA,Me) W(Ib,Me)
29
 
**            - L(Ib,Me) W(jA,Me)
30
 
**            + L(jb,ME) W(IA,ME) + L(jb,me) W(IA,me)
31
 
**    (all six contractions are unique for ROHF and UHF orbitals)
32
 
**
33
 
** TDC, July 2002
34
 
**
35
 
** For RHF contractions, we evaluate the contractions as follows:
36
 
**
37
 
** + L(jb,ME) W(IA,ME) + L(jb,me) W(IA,me)                I
38
 
** + L(jA,Me) W(Ib,Me) + L(Ib,mE) W(jA,mE)           II   +   III
39
 
** + L(IA,ME) W(jb,ME) + L(IA,me) W(jb,me)               IV
40
 
**
41
 
** Similar to what we did in ccenergy/WmbejT2.c, the AB L2 terms labelled I and IV
42
 
** above may be written as (apart from index swapping):
43
 
**
44
 
** 1/2 [2 L(jb,ME) - L(jB,Me)] [2 W(me,IA) + W(Me,Ia)] + 1/2 L(jB,Me) W(Me,Ia)
45
 
**
46
 
** Terms II and III are exactly the same as the last term above, apart from the
47
 
** factor of 1/2 and index swapping.  So, for RHF orbitals, we need to evaluate two
48
 
** contractions.
49
 
**
50
 
** TDC, March 2004
51
 
** 
52
 
*/
53
 
 
54
 
void WmbejL2(int L_irr)
55
 
{
56
 
  dpdbuf4 newL2, L2, W, Z, Z2;
57
 
 
58
 
  /* RHS += P(ij)P(ab)Limae * Wjebm */
59
 
  if(params.ref == 0) { /** RHF **/
60
 
 
61
 
    dpd_buf4_init(&Z, CC_TMP0, L_irr, 10, 10, 10, 10, 0, "Z(Ib,jA)");
62
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMbeJ");
63
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 10, 10, 10, 10, 0, "LIbjA");
64
 
    dpd_contract444(&W, &L2, &Z, 0, 1, 1, 0);
65
 
    dpd_buf4_close(&L2);
66
 
    dpd_buf4_close(&W);
67
 
    dpd_buf4_sort(&Z, CC_TMP0, psrq, 10, 10, "Z(IA,jb) III");
68
 
    dpd_buf4_close(&Z);
69
 
 
70
 
    dpd_buf4_init(&Z, CC_TMP0, L_irr, 10, 10, 10, 10, 0, "Z(IA,jb) I");
71
 
 
72
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "2 W(ME,jb) + W(Me,Jb)");
73
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 10, 10, 10, 10, 0, "2 LIAjb - LIbjA");
74
 
    dpd_contract444(&W, &L2, &Z, 0, 1, 0.5, 0);
75
 
    dpd_buf4_close(&L2);
76
 
    dpd_buf4_close(&W);
77
 
 
78
 
    dpd_buf4_init(&Z2, CC_TMP0, L_irr, 10, 10, 10, 10, 0, "Z(Ib,jA)");
79
 
    dpd_buf4_axpy(&Z2, &Z, 0.5);
80
 
    dpd_buf4_close(&Z2);
81
 
 
82
 
    dpd_buf4_init(&Z2, CC_TMP0, L_irr, 10, 10, 10, 10, 0, "Z(IA,jb) III");
83
 
    dpd_buf4_axpy(&Z2, &Z, 1);
84
 
    dpd_buf4_close(&Z2);
85
 
 
86
 
    dpd_buf4_sort_axpy(&Z, CC_LAMBDA, prqs, 0, 5, "New LIjAb", 1);
87
 
    dpd_buf4_sort_axpy(&Z, CC_LAMBDA, rpsq, 0, 5, "New LIjAb", 1);
88
 
    dpd_buf4_close(&Z);
89
 
 
90
 
  }
91
 
  else if(params.ref == 1) { /** ROHF **/
92
 
 
93
 
    dpd_buf4_init(&Z, CC_TMP0, L_irr, 10, 10, 10, 10, 0, "Z(IA,JB)");
94
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 10, 10, 10, 10, 0, "LIAJB");
95
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMBEJ");
96
 
    dpd_contract444(&L2, &W, &Z, 0, 0, 1.0, 0.0);
97
 
    dpd_buf4_close(&W);
98
 
    dpd_buf4_close(&L2);
99
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 10, 10, 10, 10, 0, "LIAjb");
100
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMbEj");
101
 
    dpd_contract444(&L2, &W, &Z, 0, 0, 1.0, 1.0);
102
 
    dpd_buf4_close(&W);
103
 
    dpd_buf4_close(&L2);
104
 
    dpd_buf4_sort(&Z, CC_TMP1, rqps, 10, 10, "Z(JA,IB)");
105
 
    dpd_buf4_sort(&Z, CC_TMP2, psrq, 10, 10, "Z(IB,JA)");
106
 
    dpd_buf4_sort(&Z, CC_TMP3, rspq, 10, 10, "Z(JB,IA)");
107
 
    dpd_buf4_init(&Z2, CC_TMP1, L_irr, 10, 10, 10, 10, 0, "Z(JA,IB)");
108
 
    dpd_buf4_axpy(&Z2, &Z, -1.0);
109
 
    dpd_buf4_close(&Z2);
110
 
    dpd_buf4_init(&Z2, CC_TMP2, L_irr, 10, 10, 10, 10, 0, "Z(IB,JA)");
111
 
    dpd_buf4_axpy(&Z2, &Z, -1.0);
112
 
    dpd_buf4_close(&Z2);
113
 
    dpd_buf4_init(&Z2, CC_TMP3, L_irr, 10, 10, 10, 10, 0, "Z(JB,IA)");
114
 
    dpd_buf4_axpy(&Z2, &Z, 1.0);
115
 
    dpd_buf4_close(&Z2);
116
 
    dpd_buf4_sort(&Z, CC_TMP1, prqs, 0, 5, "Z(IJ,AB)");
117
 
    dpd_buf4_close(&Z);
118
 
    dpd_buf4_init(&Z, CC_TMP1, L_irr, 0, 5, 0, 5, 0, "Z(IJ,AB)");
119
 
    dpd_buf4_init(&newL2, CC_LAMBDA, L_irr, 0, 5, 2, 7, 0, "New LIJAB");
120
 
    dpd_buf4_axpy(&Z, &newL2, 1.0);
121
 
    dpd_buf4_close(&Z);
122
 
    dpd_buf4_close(&newL2);
123
 
 
124
 
    dpd_buf4_init(&Z, CC_TMP0, L_irr, 10, 10, 10, 10, 0, "Z(ia,jb)");
125
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 10, 10, 10, 10, 0, "Liajb");
126
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "Wmbej");
127
 
    dpd_contract444(&L2, &W, &Z, 0, 0, 1.0, 0.0);
128
 
    dpd_buf4_close(&W);
129
 
    dpd_buf4_close(&L2);
130
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 10, 10, 10, 10, 0, "LiaJB");
131
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WmBeJ");
132
 
    dpd_contract444(&L2, &W, &Z, 0, 0, 1.0, 1.0);
133
 
    dpd_buf4_close(&W);
134
 
    dpd_buf4_close(&L2);
135
 
    dpd_buf4_sort(&Z, CC_TMP1, rqps, 10, 10, "Z(ja,ib)");
136
 
    dpd_buf4_sort(&Z, CC_TMP2, psrq, 10, 10, "Z(ib,ja)");
137
 
    dpd_buf4_sort(&Z, CC_TMP3, rspq, 10, 10, "Z(jb,ia)");
138
 
    dpd_buf4_init(&Z2, CC_TMP1, L_irr, 10, 10, 10, 10, 0, "Z(ja,ib)");
139
 
    dpd_buf4_axpy(&Z2, &Z, -1.0);
140
 
    dpd_buf4_close(&Z2);
141
 
    dpd_buf4_init(&Z2, CC_TMP2, L_irr, 10, 10, 10, 10, 0, "Z(ib,ja)");
142
 
    dpd_buf4_axpy(&Z2, &Z, -1.0);
143
 
    dpd_buf4_close(&Z2);
144
 
    dpd_buf4_init(&Z2, CC_TMP3, L_irr, 10, 10, 10, 10, 0, "Z(jb,ia)");
145
 
    dpd_buf4_axpy(&Z2, &Z, 1.0);
146
 
    dpd_buf4_close(&Z2);
147
 
    dpd_buf4_sort(&Z, CC_TMP1, prqs, 0, 5, "Z(ij,ab)");
148
 
    dpd_buf4_close(&Z);
149
 
    dpd_buf4_init(&Z, CC_TMP1, L_irr, 0, 5, 0, 5, 0, "Z(ij,ab)");
150
 
    dpd_buf4_init(&newL2, CC_LAMBDA, L_irr, 0, 5, 2, 7, 0, "New Lijab");
151
 
    dpd_buf4_axpy(&Z, &newL2, 1.0);
152
 
    dpd_buf4_close(&Z);
153
 
    dpd_buf4_close(&newL2);
154
 
 
155
 
 
156
 
    dpd_buf4_init(&Z, CC_TMP0, L_irr, 10, 10, 10, 10, 0, "Z(IA,jb)");
157
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 10, 10, 10, 10, 0, "LIAJB");
158
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WmBeJ");
159
 
    dpd_contract444(&L2, &W, &Z, 0, 0, 1.0, 0.0);
160
 
    dpd_buf4_close(&L2);
161
 
    dpd_buf4_close(&W);
162
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 10, 10, 10, 10, 0, "LIAjb");
163
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "Wmbej");
164
 
    dpd_contract444(&L2, &W, &Z, 0, 0, 1.0, 1.0);
165
 
    dpd_buf4_close(&W);
166
 
    dpd_buf4_close(&L2);
167
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 10, 10, 10, 10, 0, "Liajb");
168
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMbEj");
169
 
    dpd_contract444(&W, &L2, &Z, 0, 0, 1.0, 1.0);
170
 
    dpd_buf4_close(&L2);
171
 
    dpd_buf4_close(&W);
172
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 10, 10, 10, 10, 0, "LiaJB");
173
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMBEJ");
174
 
    dpd_contract444(&W, &L2, &Z, 0, 0, 1.0, 1.0);
175
 
    dpd_buf4_close(&W);
176
 
    dpd_buf4_close(&L2);
177
 
    dpd_buf4_sort(&Z, CC_TMP1, prqs, 0, 5, "Z(Ij,Ab)");
178
 
    dpd_buf4_close(&Z);
179
 
    dpd_buf4_init(&Z, CC_TMP1, L_irr, 0, 5, 0, 5, 0, "Z(Ij,Ab)");
180
 
    dpd_buf4_init(&newL2, CC_LAMBDA, L_irr, 0, 5, 0, 5, 0, "New LIjAb");
181
 
    dpd_buf4_axpy(&Z, &newL2, 1.0);
182
 
    dpd_buf4_close(&Z);
183
 
    dpd_buf4_close(&newL2);
184
 
 
185
 
    dpd_buf4_init(&Z, CC_TMP0, L_irr, 10, 10, 10, 10, 0, "Z(Ib,jA)");
186
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 10, 10, 10, 10, 0, "LIbjA");
187
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WMbeJ");
188
 
    dpd_contract444(&W, &L2, &Z, 0, 1, 1.0, 0.0);
189
 
    dpd_buf4_close(&L2);
190
 
    dpd_buf4_close(&W);
191
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 10, 10, 10, 10, 0, "LjAIb");
192
 
    dpd_buf4_init(&W, CC_HBAR, 0, 10, 10, 10, 10, 0, "WmBEj");
193
 
    dpd_contract444(&L2, &W, &Z, 1, 0, 1.0, 1.0);
194
 
    dpd_buf4_close(&L2);
195
 
    dpd_buf4_close(&W);
196
 
    dpd_buf4_sort(&Z, CC_TMP1, prqs, 0, 5, "Z(Ij,bA)");
197
 
    dpd_buf4_close(&Z);
198
 
    dpd_buf4_init(&Z, CC_TMP1, L_irr, 0, 5, 0, 5, 0, "Z(Ij,bA)");
199
 
    dpd_buf4_sort(&Z, CC_TMP0, pqsr, 0, 5, "Z(Ij,Ab)");
200
 
    dpd_buf4_close(&Z);
201
 
    dpd_buf4_init(&Z, CC_TMP0, L_irr, 0, 5, 0, 5, 0, "Z(Ij,Ab)");
202
 
    dpd_buf4_init(&newL2, CC_LAMBDA, L_irr, 0, 5, 0, 5, 0, "New LIjAb");
203
 
    dpd_buf4_axpy(&Z, &newL2, 1.0);
204
 
    dpd_buf4_close(&Z);
205
 
    dpd_buf4_close(&newL2);
206
 
  }
207
 
  else if(params.ref == 2) { /** UHF **/
208
 
 
209
 
    dpd_buf4_init(&Z, CC_TMP2, L_irr, 20, 20, 20, 20, 0, "Z(IA,JB)");
210
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 20, 20, 20, 20, 0, "LIAJB");
211
 
    dpd_buf4_init(&W, CC_HBAR, 0, 20, 20, 20, 20, 0, "WMBEJ");
212
 
    dpd_contract444(&L2, &W, &Z, 0, 0, 1, 0);
213
 
    dpd_buf4_close(&W);
214
 
    dpd_buf4_close(&L2);
215
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 20, 30, 20, 30, 0, "LIAjb");
216
 
    dpd_buf4_init(&W, CC_HBAR, 0, 20, 30, 20, 30, 0, "WMbEj");
217
 
    dpd_contract444(&L2, &W, &Z, 0, 0, 1, 1);
218
 
    dpd_buf4_close(&W);
219
 
    dpd_buf4_close(&L2);
220
 
    dpd_buf4_sort(&Z, CC_TMP2, rqps, 20, 20, "Z(JA,IB)");
221
 
    dpd_buf4_sort(&Z, CC_TMP2, psrq, 20, 20, "Z(IB,JA)");
222
 
    dpd_buf4_sort(&Z, CC_TMP2, rspq, 20, 20, "Z(JB,IA)");
223
 
    dpd_buf4_init(&Z2, CC_TMP2, L_irr, 20, 20, 20, 20, 0, "Z(JA,IB)");
224
 
    dpd_buf4_axpy(&Z2, &Z, -1);
225
 
    dpd_buf4_close(&Z2);
226
 
    dpd_buf4_init(&Z2, CC_TMP2, L_irr, 20, 20, 20, 20, 0, "Z(IB,JA)");
227
 
    dpd_buf4_axpy(&Z2, &Z, -1);
228
 
    dpd_buf4_close(&Z2);
229
 
    dpd_buf4_init(&Z2, CC_TMP2, L_irr, 20, 20, 20, 20, 0, "Z(JB,IA)");
230
 
    dpd_buf4_axpy(&Z2, &Z, 1);
231
 
    dpd_buf4_close(&Z2);
232
 
    dpd_buf4_sort(&Z, CC_TMP2, prqs, 0, 5, "Z(IJ,AB)");
233
 
    dpd_buf4_close(&Z);
234
 
    dpd_buf4_init(&Z, CC_TMP2, L_irr, 0, 5, 0, 5, 0, "Z(IJ,AB)");
235
 
    dpd_buf4_init(&newL2, CC_LAMBDA, L_irr, 0, 5, 2, 7, 0, "New LIJAB");
236
 
    dpd_buf4_axpy(&Z, &newL2, 1);
237
 
    dpd_buf4_close(&Z);
238
 
    dpd_buf4_close(&newL2);
239
 
 
240
 
    dpd_buf4_init(&Z, CC_TMP2, L_irr, 30, 30, 30, 30, 0, "Z(ia,jb)");
241
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 30, 30, 30, 30, 0, "Liajb");
242
 
    dpd_buf4_init(&W, CC_HBAR, 0, 30, 30, 30, 30, 0, "Wmbej");
243
 
    dpd_contract444(&L2, &W, &Z, 0, 0, 1, 0);
244
 
    dpd_buf4_close(&W);
245
 
    dpd_buf4_close(&L2);
246
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 30, 20, 30, 20, 0, "LiaJB");
247
 
    dpd_buf4_init(&W, CC_HBAR, 0, 30, 20, 30, 20, 0, "WmBeJ");
248
 
    dpd_contract444(&L2, &W, &Z, 0, 0, 1, 1);
249
 
    dpd_buf4_close(&W);
250
 
    dpd_buf4_close(&L2);
251
 
    dpd_buf4_sort(&Z, CC_TMP2, rqps, 30, 30, "Z(ja,ib)");
252
 
    dpd_buf4_sort(&Z, CC_TMP2, psrq, 30, 30, "Z(ib,ja)");
253
 
    dpd_buf4_sort(&Z, CC_TMP2, rspq, 30, 30, "Z(jb,ia)");
254
 
    dpd_buf4_init(&Z2, CC_TMP2, L_irr, 30, 30, 30, 30, 0, "Z(ja,ib)");
255
 
    dpd_buf4_axpy(&Z2, &Z, -1);
256
 
    dpd_buf4_close(&Z2);
257
 
    dpd_buf4_init(&Z2, CC_TMP2, L_irr, 30, 30, 30, 30, 0, "Z(ib,ja)");
258
 
    dpd_buf4_axpy(&Z2, &Z, -1);
259
 
    dpd_buf4_close(&Z2);
260
 
    dpd_buf4_init(&Z2, CC_TMP2, L_irr, 30, 30, 30, 30, 0, "Z(jb,ia)");
261
 
    dpd_buf4_axpy(&Z2, &Z, 1);
262
 
    dpd_buf4_close(&Z2);
263
 
    dpd_buf4_sort(&Z, CC_TMP2, prqs, 10, 15, "Z(ij,ab)");
264
 
    dpd_buf4_close(&Z);
265
 
    dpd_buf4_init(&Z, CC_TMP2, L_irr, 10, 15, 10, 15, 0, "Z(ij,ab)");
266
 
    dpd_buf4_init(&newL2, CC_LAMBDA, L_irr, 10, 15, 12, 17, 0, "New Lijab");
267
 
    dpd_buf4_axpy(&Z, &newL2, 1);
268
 
    dpd_buf4_close(&Z);
269
 
    dpd_buf4_close(&newL2);
270
 
 
271
 
    dpd_buf4_init(&Z, CC_TMP2, L_irr, 20, 30, 20, 30, 0, "Z(IA,jb)");
272
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 20, 20, 20, 20, 0, "LIAJB");
273
 
    dpd_buf4_init(&W, CC_HBAR, 0, 30, 20, 30, 20, 0, "WmBeJ");
274
 
    dpd_contract444(&L2, &W, &Z, 0, 0, 1, 0);
275
 
    dpd_buf4_close(&L2);
276
 
    dpd_buf4_close(&W);
277
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 20, 30, 20, 30, 0, "LIAjb");
278
 
    dpd_buf4_init(&W, CC_HBAR, 0, 30, 30, 30, 30, 0, "Wmbej");
279
 
    dpd_contract444(&L2, &W, &Z, 0, 0, 1, 1);
280
 
    dpd_buf4_close(&W);
281
 
    dpd_buf4_close(&L2);
282
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 30, 30, 30, 30, 0, "Liajb");
283
 
    dpd_buf4_init(&W, CC_HBAR, 0, 20, 30, 20, 30, 0, "WMbEj");
284
 
    dpd_contract444(&W, &L2, &Z, 0, 0, 1.0, 1.0);
285
 
    dpd_buf4_close(&L2);
286
 
    dpd_buf4_close(&W);
287
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 30, 20, 30, 20, 0, "LiaJB");
288
 
    dpd_buf4_init(&W, CC_HBAR, 0, 20, 20, 20, 20, 0, "WMBEJ");
289
 
    dpd_contract444(&W, &L2, &Z, 0, 0, 1, 1);
290
 
    dpd_buf4_close(&W);
291
 
    dpd_buf4_close(&L2);
292
 
    dpd_buf4_sort_axpy(&Z, CC_LAMBDA, prqs, 22, 28, "New LIjAb", 1);
293
 
    dpd_buf4_close(&Z);
294
 
    dpd_buf4_init(&Z, CC_TMP2, L_irr, 24, 27, 24, 27, 0, "Z(Ib,jA)");
295
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 24, 27, 24, 27, 0, "LIbjA");
296
 
    dpd_buf4_init(&W, CC_HBAR, 0, 24, 24, 24, 24, 0, "WMbeJ");
297
 
    dpd_contract444(&W, &L2, &Z, 0, 1, 1, 0);
298
 
    dpd_buf4_close(&L2);
299
 
    dpd_buf4_close(&W);
300
 
    dpd_buf4_init(&L2, CC_LAMBDA, L_irr, 27, 24, 27, 24, 0, "LjAIb");
301
 
    dpd_buf4_init(&W, CC_HBAR, 0, 27, 27, 27, 27, 0, "WmBEj");
302
 
    dpd_contract444(&L2, &W, &Z, 1, 0, 1, 1);
303
 
    dpd_buf4_close(&L2);
304
 
    dpd_buf4_close(&W);
305
 
    dpd_buf4_sort_axpy(&Z, CC_LAMBDA, prsq, 22, 28, "New LIjAb", 1);
306
 
    dpd_buf4_close(&Z);
307
 
 
308
 
  }
309
 
}