~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, 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 <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
 
#define EXTERN
9
 
#include "globals.h"
10
 
 
11
 
void get_moinfo(void)
12
 
{
13
 
  int i;
14
 
  
15
 
  chkpt_init(PSIO_OPEN_OLD);
16
 
 
17
 
  mo.nmo = chkpt_rd_nmo();
18
 
  mo.nso = chkpt_rd_nso();
19
 
  mo.nao = chkpt_rd_nao();
20
 
  mo.nirreps = chkpt_rd_nirreps();
21
 
  mo.irreplabels = chkpt_rd_irr_labs();
22
 
  mo.mopi = chkpt_rd_orbspi();
23
 
  mo.doccpi = chkpt_rd_clsdpi();
24
 
  mo.soccpi = chkpt_rd_openpi();
25
 
  mo.Enuc = chkpt_rd_enuc();
26
 
  mo.Escf = chkpt_rd_escf();
27
 
 
28
 
  chkpt_close();
29
 
  
30
 
  psio_read_entry(CC_INFO,"Reference Wavefunction",(char*)&(params.ref),sizeof(int));
31
 
  
32
 
  mo.fzdoccpi = init_int_array(mo.nirreps);
33
 
  mo.fzvirtpi = init_int_array(mo.nirreps);
34
 
 
35
 
  psio_read_entry(CC_INFO,"Frozen Core Orbs Per Irrep",(char*)mo.fzdoccpi,sizeof(int)*mo.nirreps);
36
 
  psio_read_entry(CC_INFO,"Frozen Virt Orbs Per Irrep",(char*)mo.fzvirtpi,sizeof(int)*mo.nirreps);
37
 
  psio_read_entry(CC_INFO,"No. of Active Orbitals",(char*)&(mo.nactmo),sizeof(int));
38
 
  
39
 
  if(params.ref == 2) { /** UHF **/
40
 
 
41
 
    mo.aoccpi = init_int_array(mo.nirreps);
42
 
    mo.boccpi = init_int_array(mo.nirreps);
43
 
    mo.avirpi = init_int_array(mo.nirreps);
44
 
    mo.bvirpi = init_int_array(mo.nirreps);
45
 
 
46
 
    psio_read_entry(CC_INFO,"Active Alpha Occ Orbs Per Irrep",(char*)mo.aoccpi,sizeof(int)*mo.nirreps);
47
 
    psio_read_entry(CC_INFO,"Active Beta Occ Orbs Per Irrep",(char*)mo.boccpi,sizeof(int)*mo.nirreps);
48
 
    psio_read_entry(CC_INFO,"Active Alpha Virt Orbs Per Irrep",(char*)mo.avirpi,sizeof(int)*mo.nirreps);
49
 
    psio_read_entry(CC_INFO,"Active Beta Virt Orbs Per Irrep",(char*)mo.bvirpi,sizeof(int)*mo.nirreps);
50
 
 
51
 
    mo.aocc_sym = init_int_array(mo.nactmo);
52
 
    mo.bocc_sym = init_int_array(mo.nactmo);
53
 
    mo.avir_sym = init_int_array(mo.nactmo);
54
 
    mo.bvir_sym = init_int_array(mo.nactmo);
55
 
 
56
 
    psio_read_entry(CC_INFO,"Active Alpha Occ Orb Symmetry",(char*)mo.aocc_sym,sizeof(int)*mo.nactmo);
57
 
    psio_read_entry(CC_INFO,"Active Beta Occ Orb Symmetry",(char*)mo.bocc_sym,sizeof(int)*mo.nactmo);
58
 
    psio_read_entry(CC_INFO,"Active Alpha Virt Orb Symmetry",(char*)mo.avir_sym,sizeof(int)*mo.nactmo);
59
 
    psio_read_entry(CC_INFO,"Active Beta Virt Orb Symmetry",(char*)mo.bvir_sym,sizeof(int)*mo.nactmo);
60
 
 
61
 
    mo.aocc_off = init_int_array(mo.nirreps);
62
 
    mo.bocc_off = init_int_array(mo.nirreps);
63
 
    mo.avir_off = init_int_array(mo.nirreps);
64
 
    mo.bvir_off = init_int_array(mo.nirreps);
65
 
 
66
 
    psio_read_entry(CC_INFO,"Active Alpha Occ Orb Offsets",(char*)mo.aocc_off,sizeof(int)*mo.nirreps);
67
 
    psio_read_entry(CC_INFO,"Active Beta Occ Orb Offsets",(char*)mo.bocc_off,sizeof(int)*mo.nirreps);
68
 
    psio_read_entry(CC_INFO,"Active Alpha Virt Orb Offsets",(char*)mo.avir_off,sizeof(int)*mo.nirreps);
69
 
    psio_read_entry(CC_INFO,"Active Beta Virt Orb Offsets",(char*)mo.bvir_off,sizeof(int)*mo.nirreps);
70
 
  
71
 
    mo.qt_aocc = init_int_array(mo.nactmo);
72
 
    mo.qt_bocc = init_int_array(mo.nactmo);
73
 
    mo.qt_avir = init_int_array(mo.nactmo);
74
 
    mo.qt_bvir = init_int_array(mo.nactmo);
75
 
 
76
 
    psio_read_entry(CC_INFO,"CC->QT Alpha Active Occ Order",(char*)mo.qt_aocc,sizeof(int)*mo.nactmo);
77
 
    psio_read_entry(CC_INFO,"CC->QT Beta Active Occ Order",(char*)mo.qt_bocc,sizeof(int)*mo.nactmo);
78
 
    psio_read_entry(CC_INFO,"CC->QT Alpha Active Virt Order",(char*)mo.qt_avir,sizeof(int)*mo.nactmo);
79
 
    psio_read_entry(CC_INFO,"CC->QT Beta Active Virt Order",(char*)mo.qt_bvir,sizeof(int)*mo.nactmo);
80
 
  }
81
 
  else { /** RHF or ROHF **/
82
 
 
83
 
    mo.occpi = init_int_array(mo.nirreps);
84
 
    mo.virpi = init_int_array(mo.nirreps);
85
 
    psio_read_entry(CC_INFO,"Active Occ Orbs Per Irrep",(char*)mo.occpi,sizeof(int)*mo.nirreps);
86
 
    psio_read_entry(CC_INFO,"Active Virt Orbs Per Irrep",(char*)mo.virpi,sizeof(int)*mo.nirreps);
87
 
  
88
 
    mo.occ_sym = init_int_array(mo.nactmo);
89
 
    mo.vir_sym = init_int_array(mo.nactmo);
90
 
    psio_read_entry(CC_INFO,"Active Occ Orb Symmetry",(char*)mo.occ_sym,sizeof(int)*mo.nactmo);
91
 
    psio_read_entry(CC_INFO,"Active Virt Orb Symmetry",(char*)mo.vir_sym,sizeof(int)*mo.nactmo);
92
 
 
93
 
    mo.occ_off = init_int_array(mo.nirreps);
94
 
    mo.vir_off = init_int_array(mo.nirreps);
95
 
    psio_read_entry(CC_INFO,"Active Occ Orb Offsets",(char*)mo.occ_off,sizeof(int)*mo.nirreps);
96
 
    psio_read_entry(CC_INFO,"Active Virt Orb Offsets",(char*)mo.vir_off,sizeof(int)*mo.nirreps);
97
 
 
98
 
    mo.qt_occ = init_int_array(mo.nactmo);
99
 
    mo.qt_vir = init_int_array(mo.nactmo);
100
 
 
101
 
    psio_read_entry(CC_INFO,"CC->QT Active Occ Order",(char*)mo.qt_occ,sizeof(int)*mo.nactmo);
102
 
    psio_read_entry(CC_INFO,"CC->QT Active Virt Order",(char*)mo.qt_vir,sizeof(int)*mo.nactmo);
103
 
  }
104
 
              
105
 
  mo.virtpi = init_int_array(mo.nirreps);
106
 
  for(i=0; i<mo.nirreps; i++)
107
 
    mo.virtpi[i] = mo.mopi[i] - mo.doccpi[i] - mo.soccpi[i];
108
 
 
109
 
  mo.ndocc = mo.nsocc = mo.nvirt = 0;
110
 
  for(i=0; i<mo.nirreps; i++) {
111
 
    mo.nfzdocc += mo.fzdoccpi[i];
112
 
    mo.nfzvirt += mo.fzvirtpi[i];
113
 
    mo.ndocc += mo.doccpi[i];
114
 
    mo.nsocc += mo.soccpi[i];
115
 
    mo.nvirt += mo.virtpi[i];
116
 
  }
117
 
  
118
 
  /*fprintf(outfile,"\n");
119
 
  fprintf(outfile,"\tChkpt Parameters:\n");
120
 
  fprintf(outfile,"\t--------------------\n");
121
 
  fprintf(outfile,"\tNumber of irreps     = %d\n",mo.nirreps);
122
 
  fprintf(outfile,"\tNumber of MOs        = %d\n",mo.nmo);
123
 
  fprintf(outfile,"\n");
124
 
  fprintf(outfile,
125
 
    "\tLabel\tFZDC\tACTD\tDOCC\tSOCC\tACTV\tFZVI\tVIRT\tMOs\n");
126
 
  fprintf(outfile,
127
 
    "\t-----\t----\t----\t----\t----\t----\t----\t----\t---\n");
128
 
  for(i=0; i<mo.nirreps; i++) {
129
 
    fprintf(outfile,
130
 
    "\t  %s \t  %d\t  %d\t  %d\t  %d\t  %d\t  %d\t  %d\t %d\n",
131
 
            mo.irreplabels[i],mo.fzdoccpi[i],mo.occpi[i],mo.doccpi[i],mo.soccpi[i],
132
 
            mo.virpi[i],mo.fzvirtpi[i],mo.virtpi[i],mo.mopi[i]);
133
 
  }*/
134
 
  
135
 
  fprintf(outfile,"\n");
136
 
  fprintf(outfile,"\tNuclear rep. energy     = %20.15f\n",mo.Enuc);
137
 
  fprintf(outfile,"\tSCF energy              = %20.15f\n",mo.Escf);
138
 
  fflush(outfile);
139
 
}