3
\brief Enter brief description of file here
6
* Revision 1.7 2004/10/08 17:33:41 nruss
7
* Modified iwl_rdone() to acept boolean for deleteing one-electron ints. -NJR
9
/* Revision 1.6 2002/12/06 15:50:32 crawdad
10
/* Changed all exit values to PSI_RETURN_SUCCESS or PSI_RETURN_FAILURE as
11
/* necessary. This is new for the PSI3 execution driver.
14
/* Revision 1.5 2002/04/03 02:06:01 janssen
15
/* Finish changes to use new include paths for libraries.
17
/* Revision 1.4 2002/03/06 22:44:41 sherrill
18
/* Add new keyword orthog_only = true to just orthogonalize orbitals and do
21
/* Revision 1.3 2001/06/21 21:00:37 crawdad
22
/* I have simplified the libiwl functions iwl_rdone() and iwl_wrtone() to only
23
/* read and write one-electron quantities and to more explicitly use the libpsio
24
/* structure to allow multiple quantities in a single one-electron IWL file.
25
/* The frozen-core energy is no longer dealt with in these functions, but is
26
/* now handled in libfile30. The argument lists for these functions have
27
/* therefore changed quite a lot, and I've tried to correct all the PSI3
28
/* codes that are affected.
31
/* Revision 1.2 2000/10/13 19:51:21 evaleev
32
/* Cleaned up a lot of stuff in order to get CSCF working with the new "Mo-projection-capable" INPUT.
34
/* Revision 1.1.1.1 2000/02/04 22:52:31 evaleev
35
/* Started PSI 3 repository
37
/* Revision 1.3 1999/11/02 18:10:14 evaleev
38
/* Direct SCF improved
40
/* Revision 1.2 1999/08/17 19:04:16 evaleev
41
/* Changed the default symmetric orthogonalization to the canonical
42
/* orthogonalization. Now, if near-linear dependencies in the basis are found,
43
/* eigenvectors of the overlap matrix with eigenvalues less than 1E-6 will be
44
/* left out. This will lead to num_mo != num_so, i.e. SCF eigenvector is no
45
/* longer a square matrix. Had to rework some routines in libfile30, and add some.
46
/* The progrem prints out a warning if near-linear dependencies are found. TRANSQT
47
/* and a whole bunch of other codes has to be fixed to work with such basis sets.
49
/* Revision 1.1.1.1 1999/04/12 16:59:27 evaleev
50
/* Added a version of CSCF that can work with CINTS.
57
#include <libiwl/iwl.h>
59
namespace psi { namespace cscf {
64
int ntri = ioff[nbasis];
70
/* If it's a direct SCF run - tell CINTS to compute one-electron integrals */
72
stat = system("cints --oeints");
75
/* CINTS ran successfully - continue */
79
/* Something went wrong */
80
fprintf(outfile," rdone_iwl: System call to CINTS failed. Check to see if it's in your PATH\n");
81
fprintf(stderr,"System call to CINTS failed. Check to see if it's in your PATH.\n");
82
exit(PSI_RETURN_FAILURE);
86
ints = init_array(ntri);
89
stat = iwl_rdone(itapS,PSIF_SO_S,ints,ntri,0, 0, outfile);
90
for(i=0;i<num_ir;i++) {
91
max = scf_info[i].num_so;
92
off = scf_info[i].ideg;
97
scf_info[i].smat[ioff[j]+k] = ints[ioff[jj]+kk];
103
stat = iwl_rdone(itapT,PSIF_SO_T,ints,ntri, 0, 0, outfile);
104
for(i=0;i<num_ir;i++) {
105
max = scf_info[i].num_so;
106
off = scf_info[i].ideg;
111
scf_info[i].tmat[ioff[j]+k] = ints[ioff[jj]+kk];
117
stat = iwl_rdone(itapV,PSIF_SO_V,ints,ntri,0, 0, outfile);
118
for(i=0;i<num_ir;i++) {
119
max = scf_info[i].num_so;
120
off = scf_info[i].ideg;
125
scf_info[i].hmat[ioff[j]+k] = ints[ioff[jj]+kk] + scf_info[i].tmat[ioff[j]+k];
132
}} // namespace psi::cscf