3
#include<libint/libint.h>
12
if (UserOptions.print_lvl >= PRINT_INTRO) {
14
fprintf(outfile," --------------------------------------------\n");
15
fprintf(outfile," CINTS: An integrals program written in C\n");
16
fprintf(outfile," Justin T. Fermann and Edward F. Valeev\n");
17
fprintf(outfile," --------------------------------------------\n\n");
28
/*----------------------
30
----------------------*/
31
if (UserOptions.print_lvl >= PRINT_OPTIONS) {
32
fprintf(outfile,"\n -OPTIONS:\n");
33
fprintf(outfile," Print level = %d\n",UserOptions.print_lvl);
34
if (UserOptions.restart)
35
fprintf(outfile," Restart = yes\n");
36
fprintf(outfile," Integral tolerance = %1.0e\n",UserOptions.cutoff);
37
fprintf(outfile," Max. memory to use = %ld double words\n",UserOptions.max_memory);
38
fprintf(outfile," Number of threads = %d\n",UserOptions.num_threads);
39
fprintf(outfile," LIBINT's real type length = %d bit\n",sizeof(REALTYPE)*8);
40
fprintf(outfile,"\n -CALCULATION CONSTANTS:\n");
41
fprintf(outfile," Label = %s\n", Molecule.label);
42
fprintf(outfile," Number of atoms = %d\n", Molecule.num_atoms);
43
if (UserOptions.print_lvl >= PRINT_BASIS) {
44
fprintf(outfile," Number of shells = %d\n", BasisSet.num_shells);
45
fprintf(outfile," Number of primitives = %d\n", BasisSet.num_prims);
47
fprintf(outfile," Number of atomic orbitals = %d\n", BasisSet.num_ao);
48
fprintf(outfile," Number of symmetry orbitals = %d\n", Symmetry.num_so);
49
fprintf(outfile," Maximum AM in the basis = %d\n", BasisSet.max_am - 1);
50
fprintf(outfile,"\n -SYMMETRY INFORMATION;\n");
51
fprintf(outfile," Computational point group = %s\n", Symmetry.symlabel);
52
fprintf(outfile," Number of irreps = %d\n", Symmetry.nirreps);
53
if (UserOptions.print_lvl >= PRINT_BASIS) {
54
fprintf(outfile," Number of symmetry unique shells = %d\n", Symmetry.num_unique_shells);
57
if (UserOptions.print_lvl >= PRINT_GEOMETRY) {
58
fprintf(outfile,"\n -CARTESIAN COORDINATES (a.u.):\n");
59
fprintf(outfile," Nuc. charge X Y Z\n");
60
fprintf(outfile," ------------- ----------------- ----------------- -----------------\n");
62
for(i=0;i<Molecule.num_atoms;i++){
63
fprintf(outfile," %8.3lf ",Molecule.centers[i].Z_nuc);
64
fprintf(outfile," %17.12lf %17.12lf %17.12lf",
65
Molecule.centers[i].x, Molecule.centers[i].y, Molecule.centers[i].z);
66
fprintf(outfile,"\n");
68
fprintf(outfile,"\n");
80
/*---------------------
82
---------------------*/
83
if (UserOptions.print_lvl >= PRINT_BASIS) {
84
fprintf(outfile,"\n -BASIS SET INFORMATION:\n");
85
fprintf(outfile," Prim# Exponent ");
86
for(i=0;i<BasisSet.max_am;i++)
87
fprintf(outfile," Norm. CCoeff. (L=%1d)",i);
88
fprintf(outfile,"\n");
89
fprintf(outfile," ----- --------------");
90
for(i=0;i<BasisSet.max_am;i++)
91
fprintf(outfile," -------------------");
92
fprintf(outfile,"\n");
93
for(i=0;i<BasisSet.num_prims;i++) {
94
fprintf(outfile," %3d %14.7lf",i+1,BasisSet.cgtos[i].exp);
95
for(j=0;j<BasisSet.max_am;j++)
96
fprintf(outfile," %15.10lf ",BasisSet.cgtos[i].ccoeff[j]);
97
fprintf(outfile,"\n");
99
fprintf(outfile,"\n\n");
100
fprintf(outfile," Shell# Nuc# L SPRIM SNUMG\n");
101
fprintf(outfile," ------ ---- - ----- -----\n");
102
for(i=0;i<BasisSet.num_shells;i++)
103
fprintf(outfile," %4d %3d %2d %3d %3d\n",i+1,
104
BasisSet.shells[i].center,BasisSet.shells[i].am-1,
105
BasisSet.shells[i].fprim,BasisSet.shells[i].n_prims);
106
fprintf(outfile,"\n\n");
116
/*--- It's about recurrence relations, well, sort of... ---*/
117
if (UserOptions.print_lvl) {
118
fprintf(outfile," ---------------------------------------------\n");
119
fprintf(outfile," 'I will find a center in you.\n");
120
fprintf(outfile," I will chew it up and leave,\n");
121
fprintf(outfile," I will work to elevate you\n");
122
fprintf(outfile," just enough to bring you down.'\n");
123
fprintf(outfile," 'Sober', Tool\n");
124
fprintf(outfile," ---------------------------------------------\n\n");
133
if (UserOptions.print_lvl >= PRINT_OPDM) {
134
fprintf(outfile," -Total density matrix in AO basis :\n");
135
print_mat(Dens,BasisSet.num_ao,BasisSet.num_ao,outfile);
136
fprintf(outfile,"\n\n");
137
fprintf(outfile," -Energy weighted density matrix in AO basis :\n");
138
print_mat(Lagr,BasisSet.num_ao,BasisSet.num_ao,outfile);
139
fprintf(outfile,"\n\n");
146
/*----------------------------------------------------
147
May be used to print out gradients and other vector
148
quantities associated with atoms
149
----------------------------------------------------*/
150
void print_atomvec(char *quantity, double **vecs)
154
fprintf(outfile,"\n -%s:\n",quantity);
155
fprintf(outfile," Atom X Y Z\n");
156
fprintf(outfile," ------ ----------------- ----------------- -----------------\n");
158
for(i=0;i<Molecule.num_atoms;i++){
159
fprintf(outfile," %4d ",i+1);
160
fprintf(outfile," %17.12lf %17.12lf %17.12lf",vecs[i][0], vecs[i][1], vecs[i][2]);
161
fprintf(outfile,"\n");
163
fprintf(outfile,"\n");
168
/*---------------------------------------------------------
169
May be used to print out Hessian and other square matrix
170
quantities associated with atoms
172
N.B. for now uses print_mat()
173
---------------------------------------------------------*/
174
void print_atommat(char *quantity, double **mat)
178
fprintf(outfile,"\n -%s:\n",quantity);
180
/* fprintf(outfile," Atom X Y Z\n");
181
fprintf(outfile," ------ ----------------- ----------------- -----------------\n");
183
for(i=0;i<Molecule.num_atoms;i++){
184
fprintf(outfile," %4d ",i+1);
185
fprintf(outfile," %17.12lf %17.12lf %17.12lf",vecs[i][0], vecs[i][1], vecs[i][2]);
186
fprintf(outfile,"\n");
189
print_mat(mat,Molecule.num_atoms*3,Molecule.num_atoms*3,outfile);
190
fprintf(outfile,"\n");
195
void print_moinfo_corr()
199
if (UserOptions.print_lvl >= PRINT_MOINFO_CORR) {
200
fprintf(outfile,"\n -MO information:\n");
201
fprintf(outfile," Number of MOs = %d\n",MOInfo.num_mo);
203
" Label\t# FZDC\t# DOCC\t# SOCC\t# VIRT\t# FZVR\n");
205
" -----\t------\t------\t------\t------\t------\n");
206
for(i=0; i < Symmetry.nirreps; i++) {
208
" %s\t %d\t %d\t %d\t %d\t %d\n",
209
Symmetry.irr_labels[i],MOInfo.frozen_docc[i],
210
MOInfo.clsdpi[i],MOInfo.openpi[i],MOInfo.virtpi[i],
211
MOInfo.frozen_uocc[i]);
213
fprintf(outfile,"\n");