3
#include "prototypes.h"
8
void compute_mp_ref_xyz()
11
double sum,sumx,sumy,sumz;
14
sum = sumx = sumy = sumz = 0.0;
17
case 1: /* The center of mass */
18
for(i=0;i<natom;i++) {
19
qnty = an2masses[(int)zvals[i]];
21
sumx += qnty * geom[i][0];
22
sumy += qnty * geom[i][1];
23
sumz += qnty * geom[i][2];
27
case 2: /* The origin */
31
case 3: /* The center of Mulliken's electronic charge */
32
for(i=0;i<natom;i++) {
33
qnty = zvals[i] - qnet[i];
35
sumx += qnty * geom[i][0];
36
sumy += qnty * geom[i][1];
37
sumz += qnty * geom[i][2];
41
case 4: /* The center of nuclear charge */
42
for(i=0;i<natom;i++) {
45
sumx += qnty * geom[i][0];
46
sumy += qnty * geom[i][1];
47
sumz += qnty * geom[i][2];
51
case 5: /* The center of net charge */
52
for(i=0;i<natom;i++) {
55
sumx += qnty * geom[i][0];
56
sumy += qnty * geom[i][1];
57
sumz += qnty * geom[i][2];
63
mp_ref_xyz[0] = sumx/sum;
64
mp_ref_xyz[1] = sumy/sum;
65
mp_ref_xyz[2] = sumz/sum;