mirror of
https://code.it4i.cz/sccs/easyconfigs-it4i.git
synced 2025-04-17 04:00:49 +01:00
179 lines
8.6 KiB
Plaintext
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
|