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

214 lines
10 KiB
Plaintext
Executable File

implicit none
C General
logical cs,spatial,rhf,mr,eomcc,eomroute,left,leftroute,lfvo
logical densroute,lc3,col,hess,ptroute,ccroute,l1route,l2route
logical l3route,d1route,d2route,lgen,t1route,t2route,nmr,eomgrad
logical zroute,dbroute,osc,dipm,fdpci,lcc,ss1route,ss2route,pleft
logical ss3route,third,ds1route,ds2route,dt1route,dt2route,optrec
logical dsroute,dtroute,q5inp
integer iout
integer ptmax,npropmax
parameter(ptmax=10,npropmax=20)
character*32 outfilename, output_folder
character*512 wdir
logical del_wdir
common /outunit/ iout, outfilename, output_folder
common /workdir/ wdir, del_wdir
integer icore(1),op,oo,op2,calc,imem,intmem,iarcmem,iconfmem,dens
integer iindmem,icoupmem,idiismem,intrecmem,iimem,conver,multmem
integer itspmem,wspcbmem,wspcamem,imedmem,itrecmem,int2mem,drecmax
integer istrmem,itransmem,istrc,isympmem,iucvmem,itamem,itarecmem
integer iwamem,isamem,iswmem,multip,nroot,nfile,iroot,irecmax,mrop
integer mrop1,op1,mrop2,nactmax,wspcmax,diag,ms2,noccmem,nactmem
integer nsing,ntrip,ndoub,econfmem,iearecmem,ierecmem,ptsh,ptfst
integer ccimed,eomimed,leftfst,leftimed,maxrec,densimed,denrecmem
integer iabsmem,itrec2mem,ierec2mem,itcase,maxcor,maxex,npert
integer ptsym(ptmax),nopt(ptmax),itrmem,nfroz,q5file,umatmem
integer nvfroz,nvfrozb,huzitype !HB
integer eomfst,densfst,l3fst,d2fst,t1imed,t2imed,l1imed,l2imed
integer l3imed,d1imed,d2imed,itypamem,itypbmem,isymamem,isymbmem
integer denssym,lamfile,ampfile,naopt,sacc,iordmem,ccfst,pert
integer pertroute,istrecmem,dboc,memory,rest,ssmrcc,iclsh,ihf
integer ds1imed,dt1imed,ds2imed,dt2imed,ds2fst,dt2fst,rohfdiag
integer qcc,qccop,rel,locno,nprop,wsize
character*128 method1,method2
real*8 dcore(1),maxmem,nopmax
logical mem_allocated
equivalence(dcore,icore)
common/actmem/ imem,maxcor
common/core/ dcore,maxmem,nopmax,op,oo,op2,calc,
$iimem,intmem,iarcmem,iconfmem,iucvmem,iindmem,icoupmem,ms2,dens,
$idiismem,intrecmem,itspmem,istrmem,itransmem,istrc,iroot,int2mem,
$noccmem,nactmem,conver,multmem,nsing,ntrip,ndoub,econfmem,itrecmem
$,iearecmem,ierecmem,ccimed,eomimed,leftfst,leftimed,maxrec,
$densimed,isympmem,itamem,itarecmem,iwamem,isamem,iswmem,multip,
$nroot,nfile,irecmax,mrop,mrop1,diag,op1,mrop2,nactmax,wspcmax,
$denrecmem,drecmax,iabsmem,itrec2mem,ierec2mem,itcase,maxex,
$ptsym,ptsh,eomfst,densfst,l3fst,d2fst,t1imed,t2imed,l1imed,l2imed,
$l3imed,d1imed,d2imed,itypamem,itypbmem,isymamem,isymbmem,ptfst,
$nopt,naopt,denssym,lamfile,ampfile,imedmem,wspcbmem,wspcamem,sacc,
$iordmem,ccfst,pertroute,istrecmem,pert,dboc,memory,rest,locno,
$nprop,wsize,huzitype,nvfroz,nvfrozb,
$method1,method2,ssmrcc,iclsh,ihf,ds1imed,dt1imed,ds2imed,dt2imed,
$ds2fst,dt2fst,npert,itrmem,nfroz,q5file,rohfdiag,qcc,qccop,rel,
$umatmem,
$cs,spatial,rhf,mr,eomcc,eomroute,left,leftroute,lfvo,
$densroute,lc3,col,hess,ptroute,ccroute,l1route,l2route,l3route,
$d1route,d2route,lgen,t1route,t2route,nmr,eomgrad,zroute,dbroute,
$osc,dipm,fdpci,lcc,ss1route,ss2route,ss3route,pleft,third,
$ds1route,ds2route,dt1route,dt2route,dsroute,dtroute,optrec,q5inp,
$mem_allocated
C
integer nbasis,nvirt,nocc,nvirtal,nvirtbe,nal,nbe,nelec,maxit
integer ntot,iivirt,iiocc,nactv,nacto,ncore,nbset,nbsetmax
integer i1,i2,i3,i4,iactsumind(-7:4),id1,id2,id3,id4,id5,id6,id7
integer id8,trecmax,istr1,istr2,nit,ndiis,ndit,ifirstdiis
integer ibnvirt,ibnocc,ifact,nimed,nactva,nactvb,nactoa,nactob
integer ibnvirta,ibnocca,iimed,nimed2,nimed3,i1med
real*8 tim,timold,timvold,wct,wctold,wctvold
real*8 eder,nuc,eref,ecc,emp2,tol,gene,eex,etot,ptfreq
parameter(maxit=50,ndiis=maxit,ifirstdiis=1,nbsetmax=7)
integer nbf(nbsetmax),dfnbasis
real*8 dipc(3,npropmax),dipn(3,npropmax)
character*8 propnm(npropmax)
common/gen/ tim,timold,timvold,wct,wctold,wctvold,nuc,eref,ecc,
$emp2,etot,eder,gene,eex,tol,dipc,dipn,ptfreq,propnm,nbasis,nbset,
$nvirt,nocc,ncore,nvirtal,nvirtbe,nal,nbe,nelec,nactv,nacto,nactva,
$nactvb,nactoa,nactob,ntot,iivirt,iiocc,id1,id2,id3,id4,id5,id6,
$id7,id8,i1,i2,i3,i4,trecmax,istr1,istr2,nit,ndit,ibnvirt,ibnocc,
$ifact,nimed,ibnvirta,ibnocca,iimed,nimed2,nimed3,i1med,dfnbasis,
$nbf
equivalence(i1,iactsumind(1))
C Do not use idn, n=1-8 !!!
C
integer isig1,nf,npart,ndiag,
$nintnewlen,nvirtnewlen,noccnewlen,nsum,nvirtoldallen,
$noccoldallen,noccnewallen,minvirtal2,minvirtbe2,
$nsumlen,nintoldlen,namp,minvirtal,minvirtbe,
$minoccal,minoccbe,istrv,minoccal2,minoccbe2
common/ft/ isig1,nf,npart,ndiag,
$nintnewlen,nvirtnewlen,noccnewlen,nsum,nvirtoldallen,
$noccoldallen,noccnewallen,minvirtal2,minvirtbe2,
$nsumlen,nintoldlen,namp,minvirtal,minvirtbe,
$minoccal,minoccbe,istrv,minoccal2,minoccbe2
C Files
integer inpfile,inp,ftfile,cfile,wsfile,densfile,ptfile,plfile
integer scrfile1,scrfile2,scrfile3,scrfile4,scrfile5,scrfile6
integer scrfile7,scrfile8,ssfile,scfile,snfile,stfile,tmfile
integer gfile,intfile,tfile,mpfile,diisfile,errfile,strfile,tafile
integer t1file,l2file,prfile,sdfile,lfile,dipfile,dbocfile,ifcfile
integer mrconeefile,mdcintfile,minpfile,gbasfile,tedatfile,eifile
integer mocoeffile,oeintfile,teintfile,moldenfile,keywdfile
integer varsfile,exitfile
integer idfile,outfile,cpfile,delfile
integer pidfile
parameter(inpfile=56,inp=55,scrfile1=11,scrfile2=12,scrfile3=13)
parameter(scrfile4=20,ftfile=10,gfile=14,intfile=30,tfile=16)
parameter(mpfile=23,diisfile=18,errfile=19,strfile=21,tafile=22)
parameter(cfile=17,wsfile=25,scrfile5=15,scrfile6=24,densfile=26)
parameter(ptfile=27,plfile=28,t1file=29,l2file=60,prfile=61)
parameter(sdfile=62,lfile=63,dipfile=64,dbocfile=65,ifcfile=66)
parameter(ssfile=31,scfile=32,snfile=33,stfile=34,tmfile=35)
parameter(scrfile7=67,eifile=57,mrconeefile=58,mdcintfile=59)
parameter(minpfile=68,gbasfile=69,varsfile=76,exitfile=77)
parameter(mocoeffile=70,oeintfile=71,teintfile=72,tedatfile=73)
parameter(moldenfile=74,keywdfile=75,scrfile8=78)
parameter(cpfile=962,idfile=961,outfile=960,delfile=963)
parameter(pidfile=965)
C Data
integer*1 conmax(-2:2),con(13),ex(13),nops(13)
integer twoto20,imedint(13,4)
parameter(twoto20=1048576)
data conmax /4,3,2,1,0/
data con /1,1,2,2,2,2,3,3,1,1,4,0,0/
data nops /2,2,2,4,4,4,4,4,4,4,4,2,4/
data imedint /1,0,1,2,0,1,2,1,1,0,2,0,0,
$ 0,1,1,0,2,1,1,2,0,1,2,0,0,
$ 1,0,0,2,0,1,1,0,2,1,0,1,2,
$ 0,1,0,0,2,1,0,1,1,2,0,1,2/
C Machine dependent parameters
integer iintln,ifltln,iintfp,iintiint
c iintfp may be 1 or 2!
#if defined (INT64)
parameter(iintln=8,ifltln=8,iintfp=1,iintiint=1)
#else
parameter(iintln=4,ifltln=8,iintfp=2,iintiint=2)
#endif
real*8 floph
c parameter(floph=100000000000.d0,memory=100000.d0*twoto20/ifltln)
parameter(floph=100000000000.d0)
integer ibufln,iibufln,irecln,ibfexp,recmax
C ibfexp may not be lower than 2 (ibuf(3) is used)
parameter(ibfexp=9,ibufln=2**ibfexp,irecln=ifltln*ibufln)
parameter(iibufln=iintfp*ibufln)
real*8 ibuf(ibufln),ibuf1(ibufln),ibuf2(ibufln),ibuf3(ibufln)
common /machsp/ recmax
C Symmetry part
integer nirmax,nir,isym,isy1,isy2,ir,nr5,nr4,nr3,nr2,nrr,refsym
integer insym
parameter(nirmax=8)
integer mosymmem,nirrep,nirmap(nirmax),multpg(nirmax,nirmax)
integer mult(nirmax,nirmax),isympair(nirmax,nirmax,2)
integer iconj(nirmax),nconj(nirmax),csympair(nirmax,nirmax,2)
integer dsympair(nirmax,nirmax,2)
data multpg /1,2,3,4,5,6,7,8,
$ 2,1,4,3,6,5,8,7,
$ 3,4,1,2,7,8,5,6,
$ 4,3,2,1,8,7,6,5,
$ 5,6,7,8,1,2,3,4,
$ 6,5,8,7,2,1,4,3,
$ 7,8,5,6,3,4,1,2,
$ 8,7,6,5,4,3,2,1/
common/symmetry/ isympair,csympair,dsympair,mult,iconj,nconj,
$nirmap,mosymmem,nir,isym,isy1,isy2,ir,nr5,nr4,nr3,nr2,nrr,refsym,
$nirrep,insym
C Parallelization
integer thrd,xyzcount,xyzsize,xyzsiz1
integer rank,mpicount,mpisize,mpisiz1
common/para/ thrd,xyzcount,xyzsize,xyzsiz1,
$ rank,mpicount,mpisize,mpisiz1
#if defined (MPI)
include 'mpif.h'
#endif
integer mpierr,tag,mpibfl,master_rank,bcast_comm
logical master_thread ! current process is the master thread
logical inbcast ! prosess should write files
common/mpi/ bcast_comm,mpierr,tag,master_rank,master_thread,
$ inbcast
parameter(mpibfl=2**17)
#if defined(OMP)
integer OMP_GET_NUM_THREADS,OMP_GET_THREAD_NUM
real*8 ompmem
common/omp/ ompmem
#endif
C Physical constants
integer natmax
real*8 planck,clight,navogadro,angtobohr,pi,jtoeh,evtoeh,cmtoeh
real*8 coulomb,amutokg,boltz,kjmtoeh,echesu,kcaltokj
parameter(natmax=118) !Maximum number of elements
parameter(planck=6.62606957d0) !Planck's constant/1d-34
parameter(clight=2.99792458d0) !Speed of light/1d10
parameter(navogadro=6.0221413d0) !Avogadro's number/1d23
parameter(coulomb=1.60217657d0) !Elementary charge/1d-19
parameter(angtobohr=0.52917721067d0) !Angstrom to bohr conv. fact.
parameter(jtoeh=4.35974465d0) !Joule to Hartree conv. fact./1d-18
parameter(evtoeh=10.d0*jtoeh/coulomb)!eV to Hartree conv. fact
parameter(cmtoeh=1d6*jtoeh/(planck*clight))!cm^-1 to Hartree conv.
parameter(amutokg=1.66053873d0) !AMU to kg conv. fact./1d-27
parameter(boltz=1.38064852d0) !Boltzmann constant/1d-23
parameter(echesu=4.803204d0) !Electron charge ESU/1d-10
parameter(kjmtoeh=jtoeh*navogadro*1d2)!kJ/mol to Hartree conv.fac.
parameter(kcaltokj=4.184d0) !kcal to kJ
parameter(pi=3.14159265358979323846264338327950288419716939938d0)
C Multiple precision arithmetic for Boys function
integer arrs
parameter(arrs=80)
C Variables for the CCSD code
integer bsymmv(nirmax+1),symmocc(nirmax)
integer dgroup
integer vfile,vinfo
parameter(vfile=708,vinfo=808)
integer tinfo
parameter(tinfo=816)
C