2024-07-25 10:27:17 +02:00

179 lines
8.6 KiB
Plaintext

C SCF PROGRAM COMMON VARIABLES AND DEFINITIONS
C ERRORCODES FOR ERRORHANDLER
#define _DSYEV_ 1
#define _FILE_ 2
#define _CONV_ 3
#define _TF_ 4
#define _DTF_ 5
#define _FLAG_CONFLICT_ 7
#define _FOCK_BUILD_ 8
#define _OPEN_SHELL_NEURAL_NET_ 9
#define _OPEN_SHELL_TENSOR_ 10
#define _SYM_TENSOR_ 11
#define _CALCULATION_WAY_ 12
C the way of building depending on the shell
#define _MCSCF_ 0
#define _RHF_ 1
#define _UHF_ 2
#define _ROHF_ 3
#define _ROHFSTD_ 4
#define _ROHFSCN_ 5
C initial guess type
#define _CORE_ 13
#define _AO_ 14
#define _RESTART_ 15
#define _SAD_ 16
#define _MO_ 17
#define _GFNREST_ 18
C input type (binary files/sifs files)
#define _DISK_ 16
#define _ASCII_ 17
#define _DIRECT_ 18
c parameters
integer fd !file descriptor for integrals
parameter(fd=155)
integer fockfile !file descriptor for FOCK file
parameter(fockfile=53)
integer symtrafile !symmetry transformation matrix
parameter(symtrafile=51)
integer scfdensityfile
parameter(scfdensityfile=171)
C scfconf common block members
C user configurable variables
character path*1024 !name of the integral file
character*20 dfbasis_scf !density fitting for SCF
character*8 qmreg,qscf !QM/MM calculation with frozen LMOs
real*8 pepsilon !treshold for change of p matrix frobenius norm
real*8 enerepsilon !treshold for change of energy
integer extstep !how many steps to exrapolate from in diis
integer scfmaxit !maximal iterations before abort with error
integer buildway !the way of building fock matrix
integer scftype !stores the way of calculation UHF/RHF/ROHF
integer verblevel !verbosity of printouts
integer initguess !variable to determine initial guess type
character*8 scfalg !type of integral input
integer diisstart !in which step the diis should start
integer diisend !in which step the diis should stop
integer diisstep !diis runs in every diisstep-th iteration
integer diiswrange !the number of previous steps to be checked for the change of the DIIS error vector !HB
integer diiswlimit ! the number of times the DIIS error is allowed to raise
integer diisdelmax ! the number of allowed deletion of the DIIS error vector
real*8 diisdtol ! rms of difference density where diis switches on
integer natoms !number of atoms in molecule
integer nangmax,istore
logical symmfl,lsa,ldiff,ldens,ldual,lnos,lf12,ldual_df,loccri
logical diisfl !flag to run diis or not
logical diiswatch ! flag to check diis error vectors or not !HB
character*12 scf_conv ! scf paramerer scheme
logical nooccfl !flag if occupation of irreps forced
logical densityiguessfl !if initial guess is fock type
logical rohfsemicanfl !if calculating semicanonical rohf or not
integer scfdamp_scheme ! see scfdamp in the minp.f
real*8 scfdamp_dampstep ! the term which is added or subtracted from scfdamp_factor
real*8 scfdamp_factor ! (maximum) factor for damping
real*8 scfdamp_maxfact ! maximum factor for damping
real*8 scfdamp_minfact ! minimum factor for damping
real*8 scfdamp_dtol ! dtol criteria to turn damping off
integer scfdamp_end ! The number of iteration steps after the damping turns off
real*8 lshift_gaptol ! gap criteria to turn level shift on
real*8 lshift_dtol ! RMS difference density criteria to turn level shift of
integer lshift_end ! The number of iteration steps after the level shifting turns off
common/scfconf/
&path,pepsilon,enerepsilon,
$scfdamp_maxfact,scfdamp_minfact,scfdamp_dtol,scfdamp_end,
$lshift_gaptol,lshift_dtol,diisdtol,scfdamp_dampstep,
$scfdamp_factor,
&extstep,scfmaxit,buildway,scftype,
&verblevel,initguess,diisstart,diisend,diisstep,natoms,nangmax,
&diiswrange,diiswatch,diiswlimit,diisdelmax,
&scfdamp_scheme,lshift_end,istore,
&symmfl,lsa,ldiff,ldens,ldual,lnos,diisfl,lf12,nooccfl,
$densityiguessfl,rohfsemicanfl,qmreg,qscf,dfbasis_scf,scfalg,
$scf_conv,ldual_df,loccri
c#####
c scfset common block members
integer nfunc(nirmax),nfuns(nirmax),ndao !number of basis functions per irrep
integer noccsp(2) !number of electrons from alpha and beta kind
integer orbperir(2*nirmax) !orbitals per irrep
integer worksize !size of scratch arrays for blas/lapack routines
integer sqrsize,sqrsize2,ltrsize !size of nbasis**2 scaled arrays
integer ndocc !number of doubly occupied orbitals
integer nsocc !number of single occupied orbitals
integer diisrecyet !number of diis records yet
common/scfset/
&nfunc,nfuns,noccsp,orbperir,worksize,sqrsize,sqrsize2,ltrsize,
&ndocc,diisrecyet,nsocc,ndao
c#####
C memory common block
integer*8 mem_ptr !scf memory base address
integer*8 c_ptr
integer*8 p_ptr
integer*8 fock_ptr,excha_ptr,exchb_ptr
integer*8 eigenvalue_ptr
integer*8 indexirrep_ptr
integer*8 mapping_ptr
integer*8 sorig_ptr
integer*8 bb_ptr
integer*8 qmat_ptr
integer*8 rmat_ptr
integer*8 iintpos
integer*8 inatrange
integer*8 oldqmat_ptr
integer*8 oldg_ptr
integer*8 symtra_ptr
integer*8 symdens_ptr
integer*8 symdens2_ptr
integer*8 symqmat_ptr
integer*8 symfock_ptr
integer*8 symfock2_ptr
integer*8 diisfvec_ptr
integer*8 diisevec_ptr
integer*8 mosym_ptr
integer*8 alprmap_ptr
integer*8 beprmap_ptr
integer*8 densmap_ptr
integer*8 fdmind_ptr
C Memory pointers for direct DF-HF calculations
integer*8 oldmo_ptr
C Memory pointers for QM/MM calculations
integer*8 rs_ptr
C
common/memory/
& c_ptr
&,p_ptr
&,fock_ptr,excha_ptr,exchb_ptr
&,eigenvalue_ptr
&,indexirrep_ptr
&,mapping_ptr
&,sorig_ptr
&,bb_ptr
&,qmat_ptr
&,rmat_ptr
&,iintpos
&,inatrange
&,oldqmat_ptr
&,oldg_ptr
&,symtra_ptr
&,symdens_ptr
&,symdens2_ptr
&,symqmat_ptr
&,symfock_ptr
&,symfock2_ptr
&,diisfvec_ptr
&,diisevec_ptr
&,mosym_ptr
&,alprmap_ptr
&,beprmap_ptr
&,densmap_ptr
&,oldmo_ptr
&,rs_ptr
&,fdmind_ptr
c Pseudospectral method
integer inprimrange,nbsn,dfnbsn,ffnbsn,iprimext,anbsn(3)
equivalence (anbsn(1),nbsn),(anbsn(2),dfnbsn),(anbsn(3),ffnbsn)
common /pssp_common/ inprimrange,nbsn,dfnbsn,ffnbsn,iprimext