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

« back to all changes in this revision

Viewing changes to src/bin/ccdensity/sort_ltd_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
 
void sort_ltd_uhf(struct TD_Params S)
7
 
{
8
 
  int h, nirreps, nmo, nfzv, nfzc, nclsd, nopen;
9
 
  int row, col, i, j, I, J, a, b, A, B, p, q;
10
 
  int *aoccpi, *avirtpi, *aocc_off, *avir_off; 
11
 
  int *boccpi, *bvirtpi, *bocc_off, *bvir_off; 
12
 
  int *aocc_sym, *avir_sym;
13
 
  int *bocc_sym, *bvir_sym;
14
 
  int *qt_aocc, *qt_avir;
15
 
  int *qt_bocc, *qt_bvir;
16
 
  double chksum, value;
17
 
  dpdfile2 D;
18
 
 
19
 
  nmo = moinfo.nmo;
20
 
  nfzc = moinfo.nfzc;
21
 
  nfzv = moinfo.nfzv;
22
 
  nclsd = moinfo.nclsd;
23
 
  nopen = moinfo.nopen;
24
 
  nirreps = moinfo.nirreps;
25
 
  aoccpi = moinfo.aoccpi; avirtpi = moinfo.avirtpi;
26
 
  boccpi = moinfo.boccpi; bvirtpi = moinfo.bvirtpi;
27
 
  aocc_off = moinfo.aocc_off; avir_off = moinfo.avir_off;
28
 
  bocc_off = moinfo.bocc_off; bvir_off = moinfo.bvir_off;
29
 
  aocc_sym = moinfo.aocc_sym; avir_sym = moinfo.avir_sym;
30
 
  qt_aocc = moinfo.qt_aocc; qt_avir = moinfo.qt_avir;
31
 
  qt_bocc = moinfo.qt_bocc; qt_bvir = moinfo.qt_bvir;
32
 
 
33
 
  moinfo.ltd_a = block_matrix(nmo,nmo);
34
 
  moinfo.ltd_b = block_matrix(nmo,nmo);
35
 
 
36
 
  dpd_file2_init(&D, CC_TMP, S.irrep, 0, 0, "LTDIJ");
37
 
  dpd_file2_mat_init(&D);
38
 
  dpd_file2_mat_rd(&D);
39
 
  for(h=0; h < nirreps; h++) {
40
 
    for(i=0; i < aoccpi[h]; i++) {
41
 
      I = qt_aocc[aocc_off[h] + i];
42
 
      for(j=0; j < aoccpi[h^S.irrep]; j++) {
43
 
        J = qt_aocc[aocc_off[h^S.irrep] + j];
44
 
        moinfo.ltd_a[I][J] += D.matrix[h][i][j];
45
 
      }
46
 
    }
47
 
  }
48
 
  dpd_file2_mat_close(&D);
49
 
  dpd_file2_close(&D);
50
 
 
51
 
  dpd_file2_init(&D, CC_TMP, S.irrep, 1, 1, "LTDAB");
52
 
  dpd_file2_mat_init(&D);
53
 
  dpd_file2_mat_rd(&D);
54
 
  for(h=0; h < nirreps; h++) {
55
 
    for(a=0; a < avirtpi[h]; a++) {
56
 
      A = qt_avir[avir_off[h] + a];
57
 
      for(b=0; b < avirtpi[h^S.irrep]; b++) {
58
 
        B = qt_avir[avir_off[h^S.irrep] + b];
59
 
        moinfo.ltd_a[A][B] += D.matrix[h][a][b];
60
 
      }
61
 
    }
62
 
  }
63
 
  dpd_file2_mat_close(&D);
64
 
  dpd_file2_close(&D);
65
 
 
66
 
  /* Note that this component of the density is stored occ-vir */
67
 
  dpd_file2_init(&D, CC_TMP, S.irrep, 0, 1, "LTDAI");
68
 
  dpd_file2_mat_init(&D);
69
 
  dpd_file2_mat_rd(&D);
70
 
  for(h=0; h < nirreps; h++) {
71
 
    for(i=0; i < aoccpi[h]; i++) {
72
 
      I = qt_aocc[aocc_off[h] + i];
73
 
      for(a=0; a < avirtpi[h^S.irrep]; a++) {
74
 
        A = qt_avir[avir_off[h^S.irrep] + a];
75
 
        moinfo.ltd_a[A][I] += D.matrix[h][i][a];
76
 
      }
77
 
    }
78
 
  }
79
 
  dpd_file2_mat_close(&D);
80
 
  dpd_file2_close(&D);
81
 
 
82
 
  dpd_file2_init(&D, CC_TMP, S.irrep, 0, 1, "LTDIA");
83
 
  dpd_file2_mat_init(&D);
84
 
  dpd_file2_mat_rd(&D);
85
 
  for(h=0; h < nirreps; h++) {
86
 
    for(i=0; i < aoccpi[h]; i++) {
87
 
      I = qt_aocc[aocc_off[h] + i];
88
 
      for(a=0; a < avirtpi[h^S.irrep]; a++) {
89
 
        A = qt_avir[avir_off[h^S.irrep] + a];
90
 
        moinfo.ltd_a[I][A] += D.matrix[h][i][a];
91
 
      }
92
 
    }
93
 
  }
94
 
  dpd_file2_mat_close(&D);
95
 
  dpd_file2_close(&D);
96
 
 
97
 
  dpd_file2_init(&D, CC_TMP, S.irrep, 2, 2, "LTDij");
98
 
  dpd_file2_mat_init(&D); 
99
 
  dpd_file2_mat_rd(&D);
100
 
  for(h=0; h < nirreps; h++) {
101
 
    for(i=0; i < boccpi[h]; i++) { 
102
 
      I = qt_bocc[bocc_off[h] + i];
103
 
      for(j=0; j < boccpi[h^S.irrep]; j++) {
104
 
        J = qt_bocc[bocc_off[h^S.irrep] + j];
105
 
        moinfo.ltd_b[I][J] += D.matrix[h][i][j];
106
 
      }
107
 
    }
108
 
  }
109
 
  dpd_file2_mat_close(&D);
110
 
  dpd_file2_close(&D);
111
 
 
112
 
  dpd_file2_init(&D, CC_TMP, S.irrep, 3, 3, "LTDab");
113
 
  dpd_file2_mat_init(&D);
114
 
  dpd_file2_mat_rd(&D);
115
 
  for(h=0; h < nirreps; h++) {
116
 
    for(a=0; a < bvirtpi[h]; a++) {
117
 
      A = qt_bvir[bvir_off[h] + a];
118
 
      for(b=0; b < bvirtpi[h^S.irrep]; b++) {
119
 
        B = qt_bvir[bvir_off[h^S.irrep] + b];
120
 
        moinfo.ltd_b[A][B] += D.matrix[h][a][b];
121
 
      }
122
 
    }
123
 
  }
124
 
  dpd_file2_mat_close(&D);
125
 
  dpd_file2_close(&D);
126
 
 
127
 
  /* Note that this component of the density is stored occ-vir */
128
 
  dpd_file2_init(&D, CC_TMP, S.irrep, 2, 3, "LTDai");
129
 
  dpd_file2_mat_init(&D);
130
 
  dpd_file2_mat_rd(&D);
131
 
  for(h=0; h < nirreps; h++) {
132
 
    for(i=0; i < boccpi[h]; i++) {
133
 
      I = qt_bocc[bocc_off[h] + i];
134
 
      for(a=0; a < bvirtpi[h^S.irrep]; a++) {
135
 
        A = qt_bvir[bvir_off[h^S.irrep] + a];
136
 
        moinfo.ltd_b[A][I] += D.matrix[h][i][a];
137
 
      }
138
 
    }
139
 
  }
140
 
  dpd_file2_mat_close(&D);
141
 
  dpd_file2_close(&D);
142
 
 
143
 
  dpd_file2_init(&D, CC_TMP, S.irrep, 2, 3, "LTDia");
144
 
  dpd_file2_mat_init(&D);
145
 
  dpd_file2_mat_rd(&D);
146
 
  for(h=0; h < nirreps; h++) {
147
 
    for(i=0; i < boccpi[h]; i++) {
148
 
      I = qt_bocc[bocc_off[h] + i];
149
 
      for(a=0; a < bvirtpi[h^S.irrep]; a++) {
150
 
        A = qt_bvir[bvir_off[h^S.irrep] + a];
151
 
        moinfo.ltd_b[I][A] += D.matrix[h][i][a];
152
 
      }
153
 
    }
154
 
  }
155
 
  dpd_file2_mat_close(&D);
156
 
  dpd_file2_close(&D);
157
 
 
158
 
  /*mat_print(moinfo.ltd_a,nmo,nmo,outfile);*/
159
 
  /*mat_print(moinfo.ltd_b,nmo,nmo,outfile);*/
160
 
 
161
 
  return;
162
 
}