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

« back to all changes in this revision

Viewing changes to src/bin/mp2/get_moinfo.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 <stdlib.h>
 
3
#include <libipv1/ip_lib.h>
 
4
#include <libciomr/libciomr.h>
 
5
#include <libchkpt/chkpt.h>
 
6
#include <libpsio/psio.h>
 
7
#include <libqt/qt.h>
 
8
#include <ccfiles.h>
 
9
#include "moinfo.h"
 
10
#include "params.h"
 
11
#define EXTERN
 
12
#include "globals.h"
 
13
 
 
14
void get_moinfo(void)
 
15
{
 
16
  int i;
 
17
  
 
18
  chkpt_init(PSIO_OPEN_OLD);
 
19
 
 
20
  mo.nmo = chkpt_rd_nmo();
 
21
  mo.nso = chkpt_rd_nso();
 
22
  mo.nirreps = chkpt_rd_nirreps();
 
23
  mo.irreplabels = chkpt_rd_irr_labs();
 
24
 
 
25
  mo.mopi = chkpt_rd_orbspi();
 
26
  mo.doccpi = chkpt_rd_clsdpi();
 
27
  
 
28
  mo.Enuc = chkpt_rd_enuc();
 
29
  mo.Escf = chkpt_rd_escf();
 
30
  mo.scfevals = chkpt_rd_evals();
 
31
  
 
32
  mo.fzdoccpi = get_frzcpi();
 
33
  mo.fzvirtpi = get_frzvpi();
 
34
  
 
35
  chkpt_close();
 
36
 
 
37
  mo.nfzdocc = 0;
 
38
  mo.nfzvirt = 0;
 
39
  for (i=0; i<mo.nirreps; i++) {
 
40
    mo.nfzdocc += mo.fzdoccpi[i];
 
41
    mo.nfzvirt += mo.fzvirtpi[i];
 
42
  }
 
43
 
 
44
  mo.virtpi = init_int_array(mo.nirreps);
 
45
  for(i=0; i < mo.nirreps; i++) {
 
46
    mo.virtpi[i] = mo.mopi[i]-mo.doccpi[i];
 
47
  }
 
48
  
 
49
  mo.ndocc = 0;
 
50
  mo.nvirt = 0;
 
51
  for(i=0; i < mo.nirreps; i++) {
 
52
    mo.ndocc += mo.doccpi[i];
 
53
    mo.nvirt += mo.mopi[i] - mo.doccpi[i];
 
54
  }
 
55
  
 
56
  mo.actdoccpi = init_int_array(mo.nirreps);
 
57
  mo.actvirtpi = init_int_array(mo.nirreps);
 
58
  for(i=0; i < mo.nirreps; i++) {
 
59
    mo.actdoccpi[i] = mo.doccpi[i]-mo.fzdoccpi[i];
 
60
    mo.actvirtpi[i] = mo.virtpi[i]-mo.fzvirtpi[i];
 
61
  }
 
62
 
 
63
  mo.nactdocc = 0;
 
64
  mo.nactvirt = 0;
 
65
  for (i=0; i < mo.nirreps; i++) {
 
66
    mo.nactdocc += mo.actdoccpi[i];
 
67
    mo.nactvirt += mo.actvirtpi[i];
 
68
  }
 
69
 
 
70
  mo.nactmo = mo.nactdocc + mo.nactvirt;
 
71
  
 
72
  mo.actdoccsym = init_int_array(mo.nactmo);
 
73
  mo.actvirtsym = init_int_array(mo.nactmo);
 
74
  psio_read_entry(CC_INFO, "Active Occ Orb Symmetry",
 
75
                 (char *) mo.actdoccsym, sizeof(int)*mo.nactmo);
 
76
  psio_read_entry(CC_INFO, "Active Virt Orb Symmetry",
 
77
                 (char *) mo.actvirtsym, sizeof(int)*mo.nactmo);
 
78
 
 
79
  mo.docc_off = init_int_array(mo.nirreps);
 
80
  mo.virt_off = init_int_array(mo.nirreps);
 
81
  psio_read_entry(CC_INFO, "Active Occ Orb Offsets",
 
82
                  (char *) mo.docc_off, sizeof(int)*mo.nirreps);
 
83
  psio_read_entry(CC_INFO, "Active Virt Orb Offsets",
 
84
                  (char *) mo.virt_off, sizeof(int)*mo.nirreps);
 
85
 
 
86
  mo.qt_docc = init_int_array(mo.nactmo);
 
87
  mo.qt_virt = init_int_array(mo.nactmo);
 
88
 
 
89
  psio_read_entry(CC_INFO, "CC->QT Active Occ Order",
 
90
                 (char *) mo.qt_docc, sizeof(int)*mo.nactmo);
 
91
  psio_read_entry(CC_INFO, "CC->QT Active Virt Order",
 
92
                 (char *) mo.qt_virt, sizeof(int)*mo.nactmo);
 
93
              
 
94
  fprintf(outfile,"\n");
 
95
  fprintf(outfile,"\tChkpt Parameters:\n");
 
96
  fprintf(outfile,"\t--------------------\n");
 
97
  fprintf(outfile,"\tNumber of irreps     = %d\n",mo.nirreps);
 
98
  fprintf(outfile,"\tNumber of MOs        = %d\n",mo.nmo);
 
99
  fprintf(outfile,"\n");
 
100
  fprintf(outfile,
 
101
    "\tLabel\tFZDC\tACTD\tDOCC\tACTV\tFZVI\tVIRT\tMOs\n");
 
102
  fprintf(outfile,
 
103
    "\t-----\t----\t----\t----\t----\t----\t----\t---\n");
 
104
  for(i=0; i < mo.nirreps; i++) {
 
105
    fprintf(outfile,
 
106
    "\t  %s \t  %d\t  %d\t  %d\t  %d\t  %d\t  %d\t %d\n",
 
107
            mo.irreplabels[i],mo.fzdoccpi[i],mo.actdoccpi[i],mo.doccpi[i],
 
108
            mo.actvirtpi[i],mo.fzvirtpi[i],mo.virtpi[i],mo.mopi[i]);
 
109
  }
 
110
  
 
111
  fprintf(outfile,"\n");
 
112
  fprintf(outfile,"\tNuclear Rep. energy \t=\t  %.12f\n",mo.Enuc);
 
113
  fprintf(outfile,"\tSCF energy          \t=\t%.12f\n",mo.Escf);
 
114
}