CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C $Id: divcon.h,v 1.23 1999/03/02 20:06:01 arjan Exp arjan $ C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C header file for divcon C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C common blocks C ------------- C C Note that if MEMORY_OVERLAP is defined the following variables C share the same memory: C C array1 common | array2 common | shared memory array C ----------------------------------------------------------------------- C qpmec(maxkpme32) /pme/ | ff(msorb2) /work/ | ff(maxovlp1) C qpme(maxkpme3) /pme/ | ww(msorb2) /work/ | ww(maxovlp2) C C rdist(mxpres) /clst/ | ff(msorb2) /work/ | ff(maxovlp1) C C C Note that the following variables are used by the preprocessor C (and cannot be used in a common block): C QPMEC_ C QPME_ C RDIST_ CC---------------------------------------------------------------------CC C NOTE that some common blocks are split up, in order C to save compilation time (e.g. glbmat) common /rota/ rotang, ebarr common /bfgs/ hinv(maxhes),dcoord(maxpar),dgrad(maxpar) common /bpairs/ bcut,bcut2,ip1(maxatm),ipair(mbpair) #ifdef MEMORY_OVERLAP common /clst/ irpair(mxpres) #else common /clst/ rdist(mxpres), irpair(mxpres) #endif common /convrg/ pijold(mxdiat),fijold(mxdiat), . piiold(mxdiag),fiiold(mxdiag), . dpii(mxdiag) common /crit/ eecrt, dencrt, iprec logical extrn common /external/ notnamed, extrn common /mc/ ratio,tempmc, boltzt,press,drmc,dangle, & drboxmc,eecrtmc,dencrtmc,smarta,smarta2, & nmc,iseed,ntry,naccpt,nmove, & nsubmove,nsubstep,nsubmv,nupdate,nadjst,nwrt,iensemb common /mcstat/ sdrmc(3),fdrmc(3),hdrmc(3), & sdangle(3),fdangle(3),hdangle(3), & sdrbox,ndrmc(3),ndangle(3) common /electr/ eval(msval),evecsq(msval),fermi(msval), . efermi(maxsub) common /electr1/ tempk,idegen(msorb),nelec character symbol*2 common /elemnt/ emass(0:83),zchg(0:83),natorb(0:83), . nvelec(0:83),nquant(0:83),symbol(0:83) logical noovrlp, onescf, setch common /endecomp/ push0, nelecef(maxsub), isubend(0:maxsub), & noovrlp, onescf, setch ! integer nchgmoy common /esave/ & chgpme(maxatm), & vir(4),virlrqm,dens,denstemp,pressins,eelect,ecore, & etot,eheat,enth,pterm,pmedir,pmeself,pmerec,ecoul,elr,nscf, & netcharge character fname*20,ext*20,fstat*7 common /fopen/ fname(nfiles),ext(nfiles),fstat(nfiles) common /fulsys/ iatnum(maxatm),natoms,natoms3,natoms4, & nprotat common /funit/ iunit(nfiles) logical notfroz common /frozen/ notfroz(maxsub), nfull, nfroz common /frozdens/ ifdiag(mxfdiag+1), ifdiat(mxfdiat+1), & nfdiag, nfdiat common /glbmat1/ hdiat(mxdiat),pdiat(mxdiat),fdiat(mxdiat), $ hdiag(mxdiag),pdiag(mxdiag),fdiag(mxdiag),fpmediag(mxdiag), $ fpmediat(mxdiat),fpmediat1(mxdiat),fpmediat2(mxdiat), $ bkk1(mxpair), $ rpair(mxpair),enuclr(mxpair),eerep(maxrep) common /glbmat2/ iimat(maxatm),ijmat(mxdiat),ijrep(mxpair) common /glbmat3/ rijmin common /glbmat4/ $ pdiag3(mxdiag), pdiat3(mxdiat), ijmat3(mxdiat), $ ipair3(mbpair), ip13(maxatm), $ pdiag2(mxdiag), pdiat2(mxdiat), ijmat2(mxdiat), $ ipair2(mbpair), ip12(maxatm), $ pdiag1(mxdiag), pdiat1(mxdiat), ijmat1(mxdiat), $ ipair1(mbpair), ip11(maxatm) common /gradnt/ rforc(maxres3), drx(maxres3), & gnorm,grad(maxpar) logical ldgbuff1, ldgbuff2 common /grid/ gridmin(3,3), gridmax(3,3), extl(3,3), extr(3,3), & rcell(3), gstep(3), gxyzmax(3), gxyzmin(3), gdxyz(3), & igridadr(mcell3), igridradr(mcell3), itmpadr(mcell3), & igrid(maxatm), igridr(maxres), ibg(3,3), ied(3,3), & iextl(3,3), iextr(3,3), ncell(3), ncell2, ncell3, & ncellm1(3), ngstep(3), igstep(3), ldgbuff1, ldgbuff2 common /group1/ ingroupn(0:maxgroup), ingroup(maxres), ngroup common /intcrd/ zmat(3,maxatm),izmat(3,maxatm),iopt(3,maxatm) logical pbc, prtsub, screen, direct, centrl, stand, & atmsub, ressub, & fullscf, clust, resclust, autosub, resgr, mixgr, atgr, am1, & pm3, mndo, xyzspace, xyzspc, resdue, cart, gradient, & mais, pif, pmeqm, cmewald, mullewald, chewald, solute, & pme, mcsim, gridsub, submv, inter, recipintr, frozenmc, & combsub, smartmc, cutbnd, cm1, cm2, handsub, prtpar, & pole, ionpot, wrtscr, wrtmc, rotat, rotat2, zgen, & guess, fdmx, wrtedmx, pvec, scrf, solvcalc, last_scrf, pdb, & scrfin,prtvec,dos,debug, ipolyn, pm3pif, rm1, am1d, pm3pddg common /logic/ pbc, prtsub, direct, centrl, stand, & atmsub, ressub, & fullscf, clust, resclust, autosub, resgr, mixgr, atgr, am1, & pm3, mndo, xyzspace, xyzspc, resdue, cart, gradient, & mais, pif, pmeqm, cmewald, mullewald, chewald, solute, & pme, mcsim, gridsub, submv, inter, recipintr, frozenmc, & combsub, smartmc, cutbnd, cm1, cm2, handsub, prtpar, & pole, ionpot,wrtscr,wrtmc, rotat, rotat2, zgen, & guess, fdmx, wrtedmx, pvec, solvcalc, last_scrf, pdb, & prtvec, dos, debug, ipolyn, pm3pif, rm1, am1d, pm3pddg common /logicpb/ screen, scrf, scrfin #ifdef LARGE_MEMORY_MC common /mcstore/ pdiagmc(mxdiag), pdiatmc(mxdiat) #endif C note that it is absolutely necessary that len(keywrdmc) >> len(keywrd)!!! character keywrdmc*500 common /mcstore1/ xyzmc(3,maxatm),gcmc(3,maxres),atchgmc(maxatm), & rforcmc(maxres3), & xyzminmc(3),xyzmaxmc(3),dxyzmc(3),gcminmc(3),gcmaxmc(3), & boxminmc(3),boxmaxmc(3),dboxmc(3),dhalfmc(3),boxvolmc, & recip1mc,recip2mc,recip3mc,virmc(4),densmc,denstempmc, & pressmc,electmc,ecoremc,etotmc,eheatmc,enthmc,ptermmc, & pmedirmc,pmeselfmc,pmerecmc,betapmemc, & ecoulmc,elrmc,nstepmc,nkeymc, & keywrdmc common /optmze/ npar,ipar(2,maxpar) common /ovraux/ exhalf(0:2,83) common /pairij/ ip1old(mbpair),ipold(mbpair),ijold(mxdiat) C param, param1, param2, param3 and param4 all contain the C semi-empirical parameters C current parameters common /param/ agaus(4,83),bgaus(4,83),cgaus(4,83), . ucore(0:2,83),expnt(0:2,83),al(0:2,83), . beta(0:2,83),dl(2,83),gss(83),gpp(83), . gsp(83),gp2(83),hsp(83),acore(83), . eeatm(83),hfatm(83) C MNDO parameters common /param1/ ucore1(0:2,83),expnt1(0:2,83),al1(0:2,83), . beta1(0:2,83),dl1(2,83),gss1(83),gpp1(83), . gsp1(83),gp21(83),hsp1(83),acore1(83), . eeatm1(83),hfatm1(83),epepmx1 C AM1 parameters common /param2/ agaus2(4,83),bgaus2(4,83),cgaus2(4,83), . ucore2(0:2,83),expnt2(0:2,83),al2(0:2,83), . beta2(0:2,83),dl2(2,83),gss2(83),gpp2(83), . gsp2(83),gp22(83),hsp2(83),acore2(83), . eeatm2(83),hfatm2(83),epepmx2 C PM3 parameters common /param3/ agaus3(4,83),bgaus3(4,83),cgaus3(4,83), . ucore3(0:2,83),expnt3(0:2,83),al3(0:2,83), . beta3(0:2,83),dl3(2,83),gss3(83),gpp3(83), . gsp3(83),gp23(83),hsp3(83),acore3(83), . eeatm3(83),hfatm3(83),epepmx3 C EXTERN parameters (user input) common /param4/ agaus4(4,83),bgaus4(4,83),cgaus4(4,83), . ucore4(0:2,83),expnt4(0:2,83),al4(0:2,83), . beta4(0:2,83),dl4(2,83),gss4(83),gpp4(83), . gsp4(83),gp24(83),hsp4(83),acore4(83), . eeatm4(83),hfatm4(83),epepmx4 C RM1 parameters common /param5/ agaus5(4,83),bgaus5(4,83),cgaus5(4,83), . ucore5(0:2,83),expnt5(0:2,83),al5(0:2,83), . beta5(0:2,83),dl5(2,83),gss5(83),gpp5(83), . gsp5(83),gp25(83),hsp5(83),acore5(83), . eeatm5(83),hfatm5(83),epepmx5 C AM1/d-PhoT parameters common /param6/ agaus6(4,83),bgaus6(4,83),cgaus6(4,83), . ucore6(0:2,83),expnt6(0:2,83),al6(0:2,83), . beta6(0:2,83),dl6(2,83),gss6(83),gpp6(83), . gsp6(83),gp26(83),hsp6(83),acore6(83), . eeatm6(83),hfatm6(83),epepmx6 C PM3/PDDG parameters common /param7/ agaus7(4,83),bgaus7(4,83),cgaus7(4,83), . ucore7(0:2,83),expnt7(0:2,83),al7(0:2,83), . beta7(0:2,83),dl7(2,83),gss7(83),gpp7(83), . gsp7(83),gp27(83),hsp7(83),acore7(83), . eeatm7(83),hfatm7(83),pa7(2,83),da7(2,83), . epepmx7 integer commsebomd common /parproc/ myid, nproc, inpt, iout, iscr, irst, & ipdb, itrj, icoor, ich, idmx, igrd, ipbs, ischg, & iphim, igsrf, isolf, idip, commsebomd logical doeval common /pass1/ doeval common /pbcbox/ gc(3,maxres),gcres(3,maxatm),dbox(3),dhalf(3), & boxmax(3), boxmin(3), xyzmin(3), xyzmax(3),dxyz(3), & gcmin(3), gcmax(3), boxvol, gyr common /peptid/ epepmx,epep,eiabc(maxpep),n2pep,iabc(4,maxpep) logical setbpme #ifdef MEMORY_OVERLAP common /pmeee/ & thetapme(maxkpme3),bfacxpme(0:maxkpme-1), & bfacypme(0:maxkpme-1),bfaczpme(0:maxkpme-1), & recip1(3),recip2(3),recip3(3),betapme,betapme2,dnspline, & dk1pme,dk2pme,dk3pme, & nspline,k1pme,k2pme,k3pme,k1pmem1,k2pmem1,k3pmem1, & k1pmek2pme,k123pme,k123pme2,k1pmenspl,k2pmenspl,k3pmenspl, & setbpme #else common /pmeee/ & qpmec(maxkpme32),qpme(maxkpme3), & thetapme(maxkpme3),bfacxpme(0:maxkpme-1), & bfacypme(0:maxkpme-1),bfaczpme(0:maxkpme-1), & recip1(3),recip2(3),recip3(3),betapme,betapme2,dnspline, & dk1pme,dk2pme,dk3pme, & nspline,k1pme,k2pme,k3pme,k1pmem1,k2pmem1,k3pmem1, & k1pmek2pme,k123pme,k123pme2,k1pmenspl,k2pmenspl,k3pmenspl, & setbpme #endif #ifdef CUTREPUL_IS_ON common /repulcut/ cutrepul #endif common /resdef/ irpnt(maxres),nres,nres3,nsol common /sublst/ is1atm(maxatm),iasubs(mslist) common /subpar/ core(3), overlap, dcbuff1, dcbuff2, & dgbuff1, dgbuff2, natbuff1, natbuff2, nncore, & ncore(maxsub),icorel(maxres),igridl(maxatm),igridlr(maxres), & iclustl(maxres),icorel1(maxsub+1), neighbor(maxres+1), $ neighborn(maxres+1), & nigrid, niclust, ncores, nigridlr, nneighbor common /subsys/ iatom1(maxsub),iatoms(mslist),iabuff(mslist), . isub1(maxatm),isubs(mslist),iorbpt(maxsub), . iorb1(mslist),nshare(2,mbpair), nsub common /timings/ tfock,tfockav,tscf,tscfav,tvir, & tgrad,tpmedir,tpmerec,ndiag common /tlimit/ tstart,tmax character keywrd*400,title*80,options2(30)*80 common /user/ keywrd,title,options2 character versn*6 common /verson/ versn #ifdef MEMORY_OVERLAP common /work/ ff(maxovlp1),evec(msrorb2),ww(maxovlp2),vv(msorb) #else common /work/ ff(msorb2),evec(msrorb2),ww(msorb2),vv(msorb) #endif common /xyzcrd/ xyz(3,maxatm), atchg(maxatm), atchg1(maxatm), & atchg2(maxatm), atchg3(maxatm), rminimr, rmaximr common /dcalls/ tcalls(2),ncalls(2),icall #ifdef MPI COMMON/bal_mpi/ + gtmp_mpi(3,maxatm),virtmp_mpi(4), + TMP_MPI(MXDIAT),time_subs(MAXSUB), + watch(24),my_subs(MAXSUB),my_numsubs integer my_numsubs,my_subs #endif C my_subs is an array of susbsytems (by number) that each PE in a c parallel job will own. These can be mixed and arranged across c PE-s in order to load balance. C my_numsubs is the number of subsystems this PE owns C time_subs is an array of times each susbsytem took to complete c in the mosub routine - this should be filled in by subsytem index c i.e. the time for subsystem 5 should go in time_subs(5) regardless c of which PE gets that subsystem C the character length of sresfile is hardwired in the code! C if changed here, other portions of the code (e.g. rdguess) should C be changed as well!! character*50 sresfile logical fresfile, minsynt common /guessstuf/ sresfile(maxsresf), ioldsres(2*maxsresf), & inewsres(2*maxsresf), fresfile(maxsresf), nsresfile, minsynt common /scfstuff/ maxitscf c solvcalc = flag, sets on/off solvation calculation c xschg() = stores the coordinates of surface charge c schg() = stores the surface charges c nschg = number of surface charges c #ifdef SCRF_IS_ON real xschg, schg, grf,gnp,grf_vac common/pb_schg/ xschg(3,maxschg), schg(maxschg), nschg common/solv_therm/grf,gnp,grf_vac common/local_div/time_scf,time_pb,exit_pb #endif common /scrfins/ drad, drad2 c information for pdb file format character*15 atom_inf common/pdbfrm1/atom_inf(maxatm) common /dosstuff/ ddos(maxdos), idos(2*maxdos),ndos logical efprvec common /prvecstuf/ eprsub(2*maxsub),eprvec(2*maxprvec), $ iprsub(maxsub), iprvec(2*maxprvec), $ efprvec(maxprvec), nprvec, nprsub real*8 phipme common /pmeqm/ phipme(maxatm**2), & dxphipme(maxatm**2),dyphipme(maxatm**2),dzphipme(maxatm**2), & phisr(maxatm**2), & dxphisr(maxatm**2),dyphisr(maxatm**2),dzphisr(maxatm**2)