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

« back to all changes in this revision

Viewing changes to src/bin/oeprop/mprefxyz.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
#define EXTERN
 
2
#include "includes.h"
 
3
#include "prototypes.h"
 
4
#include "globals.h"
 
5
#include <masses.h>
 
6
 
 
7
 
 
8
void compute_mp_ref_xyz()
 
9
{
 
10
  int i;
 
11
  double sum,sumx,sumy,sumz;
 
12
  double qnty;
 
13
  
 
14
  sum = sumx = sumy = sumz = 0.0;
 
15
  switch (mp_ref) {
 
16
  
 
17
    case 1:     /* The center of mass */
 
18
      for(i=0;i<natom;i++) {
 
19
        qnty = an2masses[(int)zvals[i]];
 
20
        sum += qnty;
 
21
        sumx += qnty * geom[i][0];
 
22
        sumy += qnty * geom[i][1];
 
23
        sumz += qnty * geom[i][2];
 
24
      }
 
25
      break;
 
26
 
 
27
    case 2:     /* The origin */
 
28
      sum = 1.0;
 
29
      break;
 
30
    
 
31
    case 3:     /* The center of Mulliken's electronic charge */
 
32
      for(i=0;i<natom;i++) {
 
33
        qnty = zvals[i] - qnet[i];
 
34
        sum += qnty;
 
35
        sumx += qnty * geom[i][0];               
 
36
        sumy += qnty * geom[i][1];               
 
37
        sumz += qnty * geom[i][2];
 
38
      }
 
39
      break;
 
40
    
 
41
    case 4:     /* The center of nuclear charge */
 
42
      for(i=0;i<natom;i++) {
 
43
        qnty = zvals[i];
 
44
        sum += qnty;
 
45
        sumx += qnty * geom[i][0];
 
46
        sumy += qnty * geom[i][1];
 
47
        sumz += qnty * geom[i][2];
 
48
      }
 
49
      break;
 
50
    
 
51
    case 5:     /* The center of net charge */
 
52
      for(i=0;i<natom;i++) {
 
53
        qnty = qnet[i];
 
54
        sum += qnty;
 
55
        sumx += qnty * geom[i][0];
 
56
        sumy += qnty * geom[i][1];
 
57
        sumz += qnty * geom[i][2];
 
58
      }
 
59
      break;
 
60
 
 
61
  }
 
62
  
 
63
  mp_ref_xyz[0] = sumx/sum;
 
64
  mp_ref_xyz[1] = sumy/sum;
 
65
  mp_ref_xyz[2] = sumz/sum;
 
66
 
 
67
}