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

« back to all changes in this revision

Viewing changes to src/bin/ccenergy/purge_HET1.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 <stdlib.h>
3
 
#include <libdpd/dpd.h>
4
 
#define EXTERN
5
 
#include "globals.h"
6
 
 
7
 
/* functions to fix ROHF intermediates - at least helpful for
8
 
 * debugging */
9
 
 
10
 
void purge_HET1(void) {
11
 
  dpdfile2 FAE, Fmi, FME, Fme;
12
 
  dpdfile4 W;
13
 
  int *occpi, *virtpi;
14
 
  int h, a, b, e, f, i, j, m, n, omit;
15
 
  int    A, B, E, F, I, J, M, N;
16
 
  int mn, ei, ma, ef, me, jb, mb, ij, ab;
17
 
  int asym, bsym, esym, fsym, isym, jsym, msym, nsym;
18
 
  int *occ_off, *vir_off;
19
 
  int *occ_sym, *vir_sym;
20
 
  int *openpi, nirreps;
21
 
 
22
 
  nirreps = moinfo.nirreps;
23
 
  occpi = moinfo.occpi; virtpi = moinfo.virtpi;
24
 
  occ_off = moinfo.occ_off; vir_off = moinfo.vir_off;
25
 
  occ_sym = moinfo.occ_sym; vir_sym = moinfo.vir_sym;
26
 
  openpi = moinfo.openpi;
27
 
 
28
 
  /* Purge Wmnij matrix elements */
29
 
  dpd_file4_init(&W, CC3_HET1, 0, 2, 2,"CC3 Wmnij (m>n,i>j)");
30
 
  for(h=0; h < nirreps; h++) {
31
 
    dpd_file4_mat_irrep_init(&W, h);
32
 
    dpd_file4_mat_irrep_rd(&W, h);
33
 
    for(mn=0; mn < W.params->rowtot[h]; mn++) {
34
 
      m = W.params->roworb[h][mn][0];
35
 
      n = W.params->roworb[h][mn][1];
36
 
      msym = W.params->psym[m];
37
 
      nsym = W.params->qsym[n];
38
 
      M = m - occ_off[msym];
39
 
      N = n - occ_off[nsym];
40
 
      for(ij=0; ij < W.params->coltot[h]; ij++) {
41
 
        i = W.params->colorb[h][ij][0];
42
 
        j = W.params->colorb[h][ij][1];
43
 
        isym = W.params->rsym[i];
44
 
        jsym = W.params->ssym[j];
45
 
        I = i - occ_off[isym];
46
 
        J = j - occ_off[jsym];
47
 
        if ((I >= (occpi[isym] - openpi[isym])) ||
48
 
            (J >= (occpi[jsym] - openpi[jsym])) ||
49
 
            (M >= (occpi[msym] - openpi[msym])) ||
50
 
            (N >= (occpi[nsym] - openpi[nsym])) )
51
 
          W.matrix[h][mn][ij] = 0.0;
52
 
      }
53
 
    }
54
 
    dpd_file4_mat_irrep_wrt(&W, h);
55
 
    dpd_file4_mat_irrep_close(&W, h);
56
 
  }
57
 
  dpd_file4_close(&W);
58
 
 
59
 
  dpd_file4_init(&W, CC3_HET1, 0, 0, 0,"CC3 WMnIj (Mn,Ij)");
60
 
  for(h=0; h < nirreps; h++) {
61
 
    dpd_file4_mat_irrep_init(&W, h);
62
 
    dpd_file4_mat_irrep_rd(&W, h);
63
 
    for(mn=0; mn < W.params->rowtot[h]; mn++) {
64
 
      n = W.params->roworb[h][mn][1];
65
 
      nsym = W.params->qsym[n];
66
 
      N = n - occ_off[nsym];
67
 
      for(ij=0; ij < W.params->coltot[h]; ij++) {
68
 
        j = W.params->colorb[h][ij][1];
69
 
        jsym = W.params->ssym[j];
70
 
        J = j - occ_off[jsym];
71
 
        if ((J >= (occpi[jsym] - openpi[jsym])) ||
72
 
            (N >= (occpi[nsym] - openpi[nsym])) )
73
 
          W.matrix[h][mn][ij] = 0.0;
74
 
      }
75
 
    }
76
 
    dpd_file4_mat_irrep_wrt(&W, h);
77
 
    dpd_file4_mat_irrep_close(&W, h);
78
 
  }
79
 
  dpd_file4_close(&W);
80
 
 
81
 
  /* Purge Wamef matrix elements */
82
 
  dpd_file4_init(&W, CC3_HET1, 0, 11, 7,"CC3 WAMEF (AM,E>F)");
83
 
  for(h=0; h < nirreps; h++) {
84
 
    dpd_file4_mat_irrep_init(&W, h);
85
 
    dpd_file4_mat_irrep_rd(&W, h);
86
 
    for(ma=0; ma < W.params->rowtot[h]; ma++) {
87
 
      a = W.params->roworb[h][ma][0];
88
 
      asym = W.params->psym[a];
89
 
      A = a - vir_off[asym];
90
 
      for(ef=0; ef< W.params->coltot[h]; ef++) {
91
 
        e = W.params->colorb[h][ef][0];
92
 
        f = W.params->colorb[h][ef][1];
93
 
        esym = W.params->rsym[e];
94
 
        fsym = W.params->ssym[f];
95
 
        E = e - vir_off[esym];
96
 
        F = f - vir_off[fsym];
97
 
        if ((A >= (virtpi[asym] - openpi[asym])) ||
98
 
            (E >= (virtpi[esym] - openpi[esym])) ||
99
 
            (F >= (virtpi[fsym] - openpi[fsym])) )
100
 
          W.matrix[h][ma][ef] = 0.0;
101
 
      }
102
 
    }
103
 
    dpd_file4_mat_irrep_wrt(&W, h);
104
 
    dpd_file4_mat_irrep_close(&W, h);
105
 
  }
106
 
  dpd_file4_close(&W);
107
 
 
108
 
  dpd_file4_init(&W, CC3_HET1, 0, 11, 7,"CC3 Wamef (am,e>f)");
109
 
  for(h=0; h < nirreps; h++) {
110
 
    dpd_file4_mat_irrep_init(&W, h);
111
 
    dpd_file4_mat_irrep_rd(&W, h);
112
 
    for(ma=0; ma < W.params->rowtot[h]; ma++) {
113
 
      m = W.params->roworb[h][ma][1];
114
 
      msym = W.params->qsym[m];
115
 
      M = m - occ_off[msym];
116
 
      for(ef=0; ef< W.params->coltot[h]; ef++) {
117
 
        if (M >=  (occpi[msym] - openpi[msym]))
118
 
          W.matrix[h][ma][ef] = 0.0;
119
 
      }
120
 
    }
121
 
    dpd_file4_mat_irrep_wrt(&W, h);
122
 
    dpd_file4_mat_irrep_close(&W, h);
123
 
  }
124
 
  dpd_file4_close(&W);
125
 
 
126
 
  dpd_file4_init(&W, CC3_HET1, 0, 11, 5,"CC3 WAmEf (Am,Ef)");
127
 
  for(h=0; h < nirreps; h++) {
128
 
    dpd_file4_mat_irrep_init(&W, h);
129
 
    dpd_file4_mat_irrep_rd(&W, h);
130
 
    for(ma=0; ma < W.params->rowtot[h]; ma++) {
131
 
      a = W.params->roworb[h][ma][0];
132
 
      m = W.params->roworb[h][ma][1];
133
 
      asym = W.params->psym[a];
134
 
      msym = W.params->qsym[m];
135
 
      M = m - occ_off[msym];
136
 
      A = a - vir_off[asym];
137
 
      for(ef=0; ef< W.params->coltot[h]; ef++) {
138
 
        e = W.params->colorb[h][ef][0];
139
 
        esym = W.params->rsym[e];
140
 
        E = e - vir_off[esym];
141
 
        if ((A >= (virtpi[asym] - openpi[asym])) ||
142
 
            (M >=  (occpi[msym] - openpi[msym])) ||
143
 
            (E >= (virtpi[esym] - openpi[esym])) )
144
 
          W.matrix[h][ma][ef] = 0.0;
145
 
      }
146
 
    }
147
 
    dpd_file4_mat_irrep_wrt(&W, h);
148
 
    dpd_file4_mat_irrep_close(&W, h);
149
 
  }
150
 
  dpd_file4_close(&W);
151
 
 
152
 
  dpd_file4_init(&W, CC3_HET1, 0, 11, 5,"CC3 WaMeF (aM,eF)");
153
 
  for(h=0; h < nirreps; h++) {
154
 
    dpd_file4_mat_irrep_init(&W, h);
155
 
    dpd_file4_mat_irrep_rd(&W, h);
156
 
    for(ma=0; ma < W.params->rowtot[h]; ma++) {
157
 
      for(ef=0; ef< W.params->coltot[h]; ef++) {
158
 
        f = W.params->colorb[h][ef][1];
159
 
        fsym = W.params->ssym[f];
160
 
        F = f - vir_off[fsym];
161
 
        if (F >= (virtpi[fsym] - openpi[fsym]))
162
 
          W.matrix[h][ma][ef] = 0.0;
163
 
      }
164
 
    }
165
 
    dpd_file4_mat_irrep_wrt(&W, h);
166
 
    dpd_file4_mat_irrep_close(&W, h);
167
 
  }
168
 
  dpd_file4_close(&W);
169
 
 
170
 
 
171
 
  return;
172
 
}
173
 
 
174
 
/* Purge Wmnie matrix elements */
175
 
void purge_HET1_Wmnie(void) {
176
 
  dpdfile4 W;
177
 
  int *occpi, *virtpi;
178
 
  int h, a, b, e, f, i, j, m, n;
179
 
  int    A, B, E, F, I, J, M, N;
180
 
  int mn, ei, ma, ef, me, jb, mb, ij, ab;
181
 
  int asym, bsym, esym, fsym, isym, jsym, msym, nsym;
182
 
  int *occ_off, *vir_off;
183
 
  int *occ_sym, *vir_sym;
184
 
  int *openpi, nirreps;
185
 
 
186
 
  nirreps = moinfo.nirreps;
187
 
  occpi = moinfo.occpi; virtpi = moinfo.virtpi;
188
 
  occ_off = moinfo.occ_off; vir_off = moinfo.vir_off;
189
 
  occ_sym = moinfo.occ_sym; vir_sym = moinfo.vir_sym;
190
 
  openpi = moinfo.openpi;
191
 
 
192
 
  dpd_file4_init(&W, CC3_HET1, 0, 0, 11,"CC3 WMnIe (Mn,eI)");
193
 
  for(h=0; h < nirreps; h++) {
194
 
    dpd_file4_mat_irrep_init(&W, h);
195
 
    dpd_file4_mat_irrep_rd(&W, h);
196
 
    for(mn=0; mn<W.params->rowtot[h]; mn++) {
197
 
      n = W.params->roworb[h][mn][1];
198
 
      nsym = W.params->qsym[n];
199
 
      N = n - occ_off[nsym];
200
 
      for(ei=0; ei<W.params->coltot[h]; ei++) {
201
 
        if (N >= (occpi[nsym] - openpi[nsym]))
202
 
          W.matrix[h][mn][ei] = 0.0;
203
 
      }
204
 
    }
205
 
    dpd_file4_mat_irrep_wrt(&W, h);
206
 
    dpd_file4_mat_irrep_close(&W, h);
207
 
  }
208
 
 
209
 
  dpd_file4_init(&W, CC3_HET1, 0, 2, 11, "CC3 WMNIE (M>N,EI)");
210
 
  for(h=0; h < W.params->nirreps; h++) {
211
 
    dpd_file4_mat_irrep_init(&W, h);
212
 
    dpd_file4_mat_irrep_rd(&W, h);
213
 
    for(mn=0; mn<W.params->rowtot[h]; mn++) {
214
 
      for(ei=0; ei<W.params->coltot[h]; ei++) {
215
 
        e = W.params->colorb[h][ei][0];
216
 
        esym = W.params->rsym[e];
217
 
        E = e - vir_off[esym];
218
 
        if (E >= (virtpi[esym] - openpi[esym]))
219
 
          W.matrix[h][mn][ei] = 0.0;
220
 
      }
221
 
    }
222
 
    dpd_file4_mat_irrep_wrt(&W, h);
223
 
    dpd_file4_mat_irrep_close(&W, h);
224
 
  }
225
 
  dpd_file4_close(&W);
226
 
 
227
 
  dpd_file4_init(&W, CC3_HET1, 0, 2, 11,"CC3 Wmnie (m>n,ei)");
228
 
  for(h=0; h < nirreps; h++) {
229
 
    dpd_file4_mat_irrep_init(&W, h);
230
 
    dpd_file4_mat_irrep_rd(&W, h);
231
 
    for(mn=0; mn<W.params->rowtot[h]; mn++) {
232
 
      m = W.params->roworb[h][mn][0];
233
 
      n = W.params->roworb[h][mn][1];
234
 
      msym = W.params->psym[m];
235
 
      nsym = W.params->qsym[n];
236
 
      M = m - occ_off[msym];
237
 
      N = n - occ_off[nsym];
238
 
      for(ei=0; ei<W.params->coltot[h]; ei++) {
239
 
        i = W.params->colorb[h][ei][1];
240
 
        isym = W.params->ssym[i];
241
 
        I = i - occ_off[isym];
242
 
        if ((M >= (occpi[msym] - openpi[msym])) ||
243
 
          (N >= (occpi[nsym] - openpi[nsym])) ||
244
 
          (I >= (occpi[isym] - openpi[isym])) )
245
 
          W.matrix[h][mn][ei] = 0.0;
246
 
      }
247
 
    }
248
 
    dpd_file4_mat_irrep_wrt(&W, h);
249
 
    dpd_file4_mat_irrep_close(&W, h);
250
 
  }
251
 
  dpd_file4_close(&W);
252
 
 
253
 
  dpd_file4_init(&W, CC3_HET1, 0, 0, 11,"CC3 WmNiE (mN,Ei)");
254
 
  for(h=0; h < nirreps; h++) {
255
 
    dpd_file4_mat_irrep_init(&W, h);
256
 
    dpd_file4_mat_irrep_rd(&W, h);
257
 
    for(mn=0; mn<W.params->rowtot[h]; mn++) {
258
 
      m = W.params->roworb[h][mn][0];
259
 
      msym = W.params->psym[m];
260
 
      M = m - occ_off[msym];
261
 
      for(ei=0; ei<W.params->coltot[h]; ei++) {
262
 
        e = W.params->colorb[h][ei][0];
263
 
        i = W.params->colorb[h][ei][1];
264
 
        esym = W.params->rsym[e];
265
 
        isym = W.params->ssym[i];
266
 
        E = e - vir_off[esym];
267
 
        I = i - occ_off[isym];
268
 
        if ((M >= (occpi[msym] - openpi[msym])) ||
269
 
            (E >= (virtpi[esym] - openpi[esym])) ||
270
 
            (I >= (occpi[isym] - openpi[isym])) )
271
 
          W.matrix[h][mn][ei] = 0.0;
272
 
      }
273
 
    }
274
 
    dpd_file4_mat_irrep_wrt(&W, h);
275
 
    dpd_file4_mat_irrep_close(&W, h);
276
 
  }
277
 
  dpd_file4_close(&W);
278
 
  return;
279
 
}
280
 
 
281
 
void purge_Wabei(void) {
282
 
  dpdfile4 W;
283
 
  int *occpi, *virtpi;
284
 
  int h, a, b, e, f, i, j, m, n;
285
 
  int    A, B, E, F, I, J, M, N;
286
 
  int mn, ei, ma, ef, me, jb, mb, ij, ab;
287
 
  int asym, bsym, esym, fsym, isym, jsym, msym, nsym;
288
 
  int *occ_off, *vir_off;
289
 
  int *occ_sym, *vir_sym;
290
 
  int *openpi, nirreps;
291
 
 
292
 
  nirreps = moinfo.nirreps;
293
 
  occpi = moinfo.occpi; virtpi = moinfo.virtpi;
294
 
  occ_off = moinfo.occ_off; vir_off = moinfo.vir_off;
295
 
  occ_sym = moinfo.occ_sym; vir_sym = moinfo.vir_sym;
296
 
  openpi = moinfo.openpi;
297
 
 
298
 
  /* Purge Wabei matrix elements */
299
 
  dpd_file4_init(&W, CC_TMP2, 0, 11, 7,"CC3 WABEI (EI,A>B)");
300
 
  for(h=0; h < nirreps; h++) {
301
 
    dpd_file4_mat_irrep_init(&W, h);
302
 
    dpd_file4_mat_irrep_rd(&W, h);
303
 
    for(ei=0; ei<W.params->rowtot[h]; ei++) {
304
 
      e = W.params->roworb[h][ei][0];
305
 
      esym = W.params->psym[e];
306
 
      E = e - vir_off[esym];
307
 
      for(ab=0; ab<W.params->coltot[h]; ab++) {
308
 
        a = W.params->colorb[h][ab][0];
309
 
        b = W.params->colorb[h][ab][1];
310
 
        asym = W.params->rsym[a];
311
 
        bsym = W.params->ssym[b];
312
 
        A = a - vir_off[asym];
313
 
        B = b - vir_off[bsym];
314
 
        if ((E >= (virtpi[esym] - openpi[esym])) ||
315
 
            (A >= (virtpi[asym] - openpi[asym])) ||
316
 
            (B >= (virtpi[bsym] - openpi[bsym])) )
317
 
          W.matrix[h][ei][ab] = 0.0;
318
 
      }
319
 
    }
320
 
    dpd_file4_mat_irrep_wrt(&W, h);
321
 
    dpd_file4_mat_irrep_close(&W, h);
322
 
  }
323
 
  dpd_file4_close(&W);
324
 
 
325
 
  dpd_file4_init(&W, CC_TMP2, 0, 11, 7,"CC3 Wabei (ei,a>b)");
326
 
  for(h=0; h < nirreps; h++) {
327
 
    dpd_file4_mat_irrep_init(&W, h);
328
 
    dpd_file4_mat_irrep_rd(&W, h);
329
 
    for(ei=0; ei<W.params->rowtot[h]; ei++) {
330
 
      i = W.params->roworb[h][ei][1];
331
 
      isym = W.params->qsym[i];
332
 
      I = i - occ_off[isym];
333
 
      for(ab=0; ab<W.params->coltot[h]; ab++) {
334
 
        if (I >= (occpi[isym] - openpi[isym]))
335
 
          W.matrix[h][ei][ab] = 0.0;
336
 
      }
337
 
    }
338
 
    dpd_file4_mat_irrep_wrt(&W, h);
339
 
    dpd_file4_mat_irrep_close(&W, h);
340
 
  }
341
 
  dpd_file4_close(&W);
342
 
 
343
 
  dpd_file4_init(&W, CC_TMP2, 0, 11, 5,"CC3 WAbEi (Ei,Ab)");
344
 
  for(h=0; h < nirreps; h++) {
345
 
    dpd_file4_mat_irrep_init(&W, h);
346
 
    dpd_file4_mat_irrep_rd(&W, h);
347
 
    for(ei=0; ei<W.params->rowtot[h]; ei++) {
348
 
      e = W.params->roworb[h][ei][0];
349
 
      i = W.params->roworb[h][ei][1];
350
 
      esym = W.params->psym[e];
351
 
      isym = W.params->qsym[i];
352
 
      E = e - vir_off[esym];
353
 
      I = i - occ_off[isym];
354
 
      for(ab=0; ab<W.params->coltot[h]; ab++) {
355
 
        a = W.params->colorb[h][ab][0];
356
 
        asym = W.params->rsym[a];
357
 
        bsym = W.params->ssym[b];
358
 
        A = a - vir_off[asym];
359
 
        if ((E >= (virtpi[esym] - openpi[esym])) ||
360
 
            (I >= (occpi[isym] - openpi[isym])) ||
361
 
            (A >= (virtpi[asym] - openpi[asym])) )
362
 
          W.matrix[h][ei][ab] = 0.0;
363
 
      }
364
 
    }
365
 
    dpd_file4_mat_irrep_wrt(&W, h);
366
 
    dpd_file4_mat_irrep_close(&W, h);
367
 
  }
368
 
  dpd_file4_close(&W);
369
 
 
370
 
  dpd_file4_init(&W, CC_TMP2, 0, 11, 5,"CC3 WaBeI (eI,aB)");
371
 
  for(h=0; h < nirreps; h++) {
372
 
    dpd_file4_mat_irrep_init(&W, h);
373
 
    dpd_file4_mat_irrep_rd(&W, h);
374
 
    for(ei=0; ei<W.params->rowtot[h]; ei++) {
375
 
      for(ab=0; ab<W.params->coltot[h]; ab++) {
376
 
        b = W.params->colorb[h][ab][1];
377
 
        bsym = W.params->ssym[b];
378
 
        B = b - vir_off[bsym];
379
 
        if (B >= (virtpi[bsym] - openpi[bsym]))
380
 
          W.matrix[h][ei][ab] = 0.0;
381
 
      }
382
 
    }
383
 
    dpd_file4_mat_irrep_wrt(&W, h);
384
 
    dpd_file4_mat_irrep_close(&W, h);
385
 
  }
386
 
  dpd_file4_close(&W);
387
 
}
388
 
 
389
 
/* Purge WMBIJ matrix elements */
390
 
void purge_Wmbij(void) {
391
 
  dpdfile4 W;
392
 
  int *occpi, *virtpi;
393
 
  int h, a, b, e, f, i, j, m, n;
394
 
  int    A, B, E, F, I, J, M, N;
395
 
  int mn, ei, ma, ef, me, jb, mb, ij, ab;
396
 
  int asym, bsym, esym, fsym, isym, jsym, msym, nsym;
397
 
  int *occ_off, *vir_off;
398
 
  int *occ_sym, *vir_sym;
399
 
  int *openpi, nirreps;
400
 
 
401
 
  nirreps = moinfo.nirreps;
402
 
  occpi = moinfo.occpi; virtpi = moinfo.virtpi;
403
 
  occ_off = moinfo.occ_off; vir_off = moinfo.vir_off;
404
 
  occ_sym = moinfo.occ_sym; vir_sym = moinfo.vir_sym;
405
 
  openpi = moinfo.openpi;
406
 
 
407
 
  dpd_file4_init(&W, CC3_HET1, 0, 10, 2,"CC3 WMBIJ (MB,I>J)");
408
 
  for(h=0; h < nirreps; h++) {
409
 
    dpd_file4_mat_irrep_init(&W, h);
410
 
    dpd_file4_mat_irrep_rd(&W, h);
411
 
    for(mb=0; mb<W.params->rowtot[h]; mb++) {
412
 
      b = W.params->roworb[h][mb][1];
413
 
      bsym = W.params->qsym[b];
414
 
      B = b - vir_off[bsym];
415
 
      for(ij=0; ij<W.params->coltot[h]; ij++) {
416
 
        if (B >= (virtpi[bsym] - openpi[bsym]))
417
 
          W.matrix[h][mb][ij] = 0.0;
418
 
      }
419
 
    }
420
 
    dpd_file4_mat_irrep_wrt(&W, h);
421
 
    dpd_file4_mat_irrep_close(&W, h);
422
 
  }
423
 
  dpd_file4_close(&W);
424
 
 
425
 
  dpd_file4_init(&W, CC3_HET1, 0, 10, 2,"CC3 Wmbij (mb,i>j)");
426
 
  for(h=0; h < nirreps; h++) {
427
 
    dpd_file4_mat_irrep_init(&W, h);
428
 
    dpd_file4_mat_irrep_rd(&W, h);
429
 
    for(mb=0; mb<W.params->rowtot[h]; mb++) {
430
 
      m = W.params->roworb[h][mb][0];
431
 
      msym = W.params->psym[m];
432
 
      M = m - occ_off[msym];
433
 
      for(ij=0; ij<W.params->coltot[h]; ij++) {
434
 
        i = W.params->colorb[h][ij][0];
435
 
        j = W.params->colorb[h][ij][1];
436
 
        isym = W.params->rsym[i];
437
 
        jsym = W.params->ssym[j];
438
 
        I = i - occ_off[isym];
439
 
        J = j - occ_off[jsym];
440
 
        if ((M >= (occpi[msym] - openpi[msym])) ||
441
 
            (I >= (occpi[isym] - openpi[isym])) ||
442
 
            (J >= (occpi[jsym] - openpi[jsym])) )
443
 
          W.matrix[h][mb][ij] = 0.0;
444
 
      }
445
 
    }
446
 
    dpd_file4_mat_irrep_wrt(&W, h);
447
 
    dpd_file4_mat_irrep_close(&W, h);
448
 
  }
449
 
  dpd_file4_close(&W);
450
 
 
451
 
  dpd_file4_init(&W, CC3_HET1, 0, 10, 0,"CC3 WMbIj (Mb,Ij)");
452
 
  for(h=0; h < nirreps; h++) {
453
 
    dpd_file4_mat_irrep_init(&W, h);
454
 
    dpd_file4_mat_irrep_rd(&W, h);
455
 
    for(mb=0; mb<W.params->rowtot[h]; mb++) {
456
 
      for(ij=0; ij<W.params->coltot[h]; ij++) {
457
 
        j = W.params->colorb[h][ij][1];
458
 
        jsym = W.params->ssym[j];
459
 
        J = j - occ_off[jsym];
460
 
        if (J >= (occpi[jsym] - openpi[jsym]))
461
 
          W.matrix[h][mb][ij] = 0.0;
462
 
      }
463
 
    }
464
 
    dpd_file4_mat_irrep_wrt(&W, h);
465
 
    dpd_file4_mat_irrep_close(&W, h);
466
 
  }
467
 
  dpd_file4_close(&W);
468
 
 
469
 
  dpd_file4_init(&W, CC3_HET1, 0, 10, 0,"CC3 WmBiJ (mB,iJ)");
470
 
  for(h=0; h < nirreps; h++) {
471
 
    dpd_file4_mat_irrep_init(&W, h);
472
 
    dpd_file4_mat_irrep_rd(&W, h);
473
 
    for(mb=0; mb<W.params->rowtot[h]; mb++) {
474
 
      m = W.params->roworb[h][mb][0];
475
 
      b = W.params->roworb[h][mb][1];
476
 
      msym = W.params->psym[m];
477
 
      bsym = W.params->qsym[b];
478
 
      M = m - occ_off[msym];
479
 
      B = b - vir_off[bsym];
480
 
      for(ij=0; ij<W.params->coltot[h]; ij++) {
481
 
        i = W.params->colorb[h][ij][0];
482
 
        isym = W.params->rsym[i];
483
 
        I = i - occ_off[isym];
484
 
        if ((M >= (occpi[msym] - openpi[msym])) ||
485
 
            (B >= (virtpi[bsym] - openpi[bsym])) ||
486
 
            (I >= (occpi[isym] - openpi[isym])) )
487
 
          W.matrix[h][mb][ij] = 0.0;
488
 
      }
489
 
    }
490
 
    dpd_file4_mat_irrep_wrt(&W, h);
491
 
    dpd_file4_mat_irrep_close(&W, h);
492
 
  }
493
 
  dpd_file4_close(&W);
494
 
}