~ubuntu-branches/ubuntu/quantal/psicode/quantal

« back to all changes in this revision

Viewing changes to src/bin/ccresponse/sortmu.c

  • Committer: Bazaar Package Importer
  • Author(s): Michael Banck
  • Date: 2006-09-10 14:01:33 UTC
  • Revision ID: james.westby@ubuntu.com-20060910140133-ib2j86trekykfsfv
Tags: upstream-3.2.3
ImportĀ upstreamĀ versionĀ 3.2.3

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 sortmu(void)
 
7
{
 
8
  int p, q, Gp, Gq, P, Q;
 
9
  int irrep;
 
10
  dpdfile2 mu;
 
11
  double **MU;
 
12
 
 
13
  /***** X-Component *****/
 
14
  irrep = moinfo.irrep_x;
 
15
  MU = moinfo.MUX;
 
16
 
 
17
  dpd_file2_init(&mu, CC_OEI, irrep, 0, 0, "Mu_X_IJ");
 
18
  dpd_file2_mat_init(&mu);
 
19
  for(Gp=0; Gp < moinfo.nirreps; Gp++) { /* irrep of left-hand MO */
 
20
    Gq = irrep ^ Gp;
 
21
 
 
22
    for(p=0; p < moinfo.occpi[Gp]; p++) {
 
23
      P = moinfo.qt2pitzer[moinfo.qt_occ[p+moinfo.occ_off[Gp]]];
 
24
      for(q=0; q < moinfo.occpi[Gq]; q++) {
 
25
        Q = moinfo.qt2pitzer[moinfo.qt_occ[q+moinfo.occ_off[Gq]]];
 
26
        mu.matrix[Gp][p][q] = MU[P][Q];
 
27
      }
 
28
    }
 
29
  }
 
30
  dpd_file2_mat_wrt(&mu);
 
31
  dpd_file2_mat_close(&mu);
 
32
  dpd_file2_close(&mu);
 
33
 
 
34
  dpd_file2_init(&mu, CC_OEI, irrep, 1, 1, "Mu_X_AB");
 
35
  dpd_file2_mat_init(&mu);
 
36
  for(Gp=0; Gp < moinfo.nirreps; Gp++) { /* irrep of left-hand MO */
 
37
    Gq = irrep ^ Gp;
 
38
 
 
39
    for(p=0; p < moinfo.virtpi[Gp]; p++) {
 
40
      P = moinfo.qt2pitzer[moinfo.qt_vir[p+moinfo.vir_off[Gp]]];
 
41
      for(q=0; q < moinfo.virtpi[Gq]; q++) {
 
42
        Q = moinfo.qt2pitzer[moinfo.qt_vir[q+moinfo.vir_off[Gq]]];
 
43
        mu.matrix[Gp][p][q] = MU[P][Q];
 
44
      }
 
45
    }
 
46
  }
 
47
  dpd_file2_mat_wrt(&mu);
 
48
  dpd_file2_mat_close(&mu);
 
49
  dpd_file2_close(&mu);
 
50
 
 
51
  dpd_file2_init(&mu, CC_OEI, irrep, 0, 1, "Mu_X_IA");
 
52
  dpd_file2_mat_init(&mu);
 
53
  for(Gp=0; Gp < moinfo.nirreps; Gp++) { /* irrep of left-hand MO */
 
54
    Gq = irrep ^ Gp;
 
55
 
 
56
    for(p=0; p < moinfo.occpi[Gp]; p++) {
 
57
      P = moinfo.qt2pitzer[moinfo.qt_occ[p+moinfo.occ_off[Gp]]];
 
58
      for(q=0; q < moinfo.virtpi[Gq]; q++) {
 
59
        Q = moinfo.qt2pitzer[moinfo.qt_vir[q+moinfo.vir_off[Gq]]];
 
60
        mu.matrix[Gp][p][q] = MU[P][Q];
 
61
      }
 
62
    }
 
63
  }
 
64
  dpd_file2_mat_wrt(&mu);
 
65
  dpd_file2_mat_close(&mu);
 
66
  dpd_file2_close(&mu);
 
67
 
 
68
  /***** Y-Component *****/
 
69
  irrep = moinfo.irrep_y;
 
70
  MU = moinfo.MUY;
 
71
 
 
72
  dpd_file2_init(&mu, CC_OEI, irrep, 0, 0, "Mu_Y_IJ");
 
73
  dpd_file2_mat_init(&mu);
 
74
  for(Gp=0; Gp < moinfo.nirreps; Gp++) { /* irrep of left-hand MO */
 
75
    Gq = irrep ^ Gp;
 
76
 
 
77
    for(p=0; p < moinfo.occpi[Gp]; p++) {
 
78
      P = moinfo.qt2pitzer[moinfo.qt_occ[p+moinfo.occ_off[Gp]]];
 
79
      for(q=0; q < moinfo.occpi[Gq]; q++) {
 
80
        Q = moinfo.qt2pitzer[moinfo.qt_occ[q+moinfo.occ_off[Gq]]];
 
81
        mu.matrix[Gp][p][q] = MU[P][Q];
 
82
      }
 
83
    }
 
84
  }
 
85
  dpd_file2_mat_wrt(&mu);
 
86
  dpd_file2_mat_close(&mu);
 
87
  dpd_file2_close(&mu);
 
88
 
 
89
  dpd_file2_init(&mu, CC_OEI, irrep, 1, 1, "Mu_Y_AB");
 
90
  dpd_file2_mat_init(&mu);
 
91
  for(Gp=0; Gp < moinfo.nirreps; Gp++) { /* irrep of left-hand MO */
 
92
    Gq = irrep ^ Gp;
 
93
 
 
94
    for(p=0; p < moinfo.virtpi[Gp]; p++) {
 
95
      P = moinfo.qt2pitzer[moinfo.qt_vir[p+moinfo.vir_off[Gp]]];
 
96
      for(q=0; q < moinfo.virtpi[Gq]; q++) {
 
97
        Q = moinfo.qt2pitzer[moinfo.qt_vir[q+moinfo.vir_off[Gq]]];
 
98
        mu.matrix[Gp][p][q] = MU[P][Q];
 
99
      }
 
100
    }
 
101
  }
 
102
  dpd_file2_mat_wrt(&mu);
 
103
  dpd_file2_mat_close(&mu);
 
104
  dpd_file2_close(&mu);
 
105
 
 
106
  dpd_file2_init(&mu, CC_OEI, irrep, 0, 1, "Mu_Y_IA");
 
107
  dpd_file2_mat_init(&mu);
 
108
  for(Gp=0; Gp < moinfo.nirreps; Gp++) { /* irrep of left-hand MO */
 
109
    Gq = irrep ^ Gp;
 
110
 
 
111
    for(p=0; p < moinfo.occpi[Gp]; p++) {
 
112
      P = moinfo.qt2pitzer[moinfo.qt_occ[p+moinfo.occ_off[Gp]]];
 
113
      for(q=0; q < moinfo.virtpi[Gq]; q++) {
 
114
        Q = moinfo.qt2pitzer[moinfo.qt_vir[q+moinfo.vir_off[Gq]]];
 
115
        mu.matrix[Gp][p][q] = MU[P][Q];
 
116
      }
 
117
    }
 
118
  }
 
119
  dpd_file2_mat_wrt(&mu);
 
120
  dpd_file2_mat_close(&mu);
 
121
  dpd_file2_close(&mu);
 
122
 
 
123
  /***** Z-Component *****/
 
124
  irrep = moinfo.irrep_z;
 
125
  MU = moinfo.MUZ;
 
126
 
 
127
  dpd_file2_init(&mu, CC_OEI, irrep, 0, 0, "Mu_Z_IJ");
 
128
  dpd_file2_mat_init(&mu);
 
129
  for(Gp=0; Gp < moinfo.nirreps; Gp++) { /* irrep of left-hand MO */
 
130
    Gq = irrep ^ Gp;
 
131
 
 
132
    for(p=0; p < moinfo.occpi[Gp]; p++) {
 
133
      P = moinfo.qt2pitzer[moinfo.qt_occ[p+moinfo.occ_off[Gp]]];
 
134
      for(q=0; q < moinfo.occpi[Gq]; q++) {
 
135
        Q = moinfo.qt2pitzer[moinfo.qt_occ[q+moinfo.occ_off[Gq]]];
 
136
        mu.matrix[Gp][p][q] = MU[P][Q];
 
137
      }
 
138
    }
 
139
  }
 
140
  dpd_file2_mat_wrt(&mu);
 
141
  dpd_file2_mat_close(&mu);
 
142
  dpd_file2_close(&mu);
 
143
 
 
144
  dpd_file2_init(&mu, CC_OEI, irrep, 1, 1, "Mu_Z_AB");
 
145
  dpd_file2_mat_init(&mu);
 
146
  for(Gp=0; Gp < moinfo.nirreps; Gp++) { /* irrep of left-hand MO */
 
147
    Gq = irrep ^ Gp;
 
148
 
 
149
    for(p=0; p < moinfo.virtpi[Gp]; p++) {
 
150
      P = moinfo.qt2pitzer[moinfo.qt_vir[p+moinfo.vir_off[Gp]]];
 
151
      for(q=0; q < moinfo.virtpi[Gq]; q++) {
 
152
        Q = moinfo.qt2pitzer[moinfo.qt_vir[q+moinfo.vir_off[Gq]]];
 
153
        mu.matrix[Gp][p][q] = MU[P][Q];
 
154
      }
 
155
    }
 
156
  }
 
157
  dpd_file2_mat_wrt(&mu);
 
158
  dpd_file2_mat_close(&mu);
 
159
  dpd_file2_close(&mu);
 
160
 
 
161
  dpd_file2_init(&mu, CC_OEI, irrep, 0, 1, "Mu_Z_IA");
 
162
  dpd_file2_mat_init(&mu);
 
163
  for(Gp=0; Gp < moinfo.nirreps; Gp++) { /* irrep of left-hand MO */
 
164
    Gq = irrep ^ Gp;
 
165
 
 
166
    for(p=0; p < moinfo.occpi[Gp]; p++) {
 
167
      P = moinfo.qt2pitzer[moinfo.qt_occ[p+moinfo.occ_off[Gp]]];
 
168
      for(q=0; q < moinfo.virtpi[Gq]; q++) {
 
169
        Q = moinfo.qt2pitzer[moinfo.qt_vir[q+moinfo.vir_off[Gq]]];
 
170
        mu.matrix[Gp][p][q] = MU[P][Q];
 
171
      }
 
172
    }
 
173
  }
 
174
  dpd_file2_mat_wrt(&mu);
 
175
  dpd_file2_mat_close(&mu);
 
176
  dpd_file2_close(&mu);
 
177
}