CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C $Id: divcon.h,v 1.1 2003/12/20 09:01:54 buw2 Exp $ 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) logical frst_bpair, frst_doscf, frst_energy, frst_etimer, . frst_frmchk, frst_fshift, frst_getdir, frst_glbpnt, . frst_initp, frst_mosub, frst_mosubfdmx, frst_overlp, . frst_rdcluster, frst_rdguess, frst_wrtrst, frst_pb000, . frst_pb006, frst_pb033, frst_pb038, frst_pbsurcomp, . frst_pb069, frst_pbfock, frst_pbsolver, frst_pb007, . frst_sab, frst_abintg common /first/ frst_bpair, frst_doscf, frst_energy, frst_etimer, . frst_frmchk, frst_fshift, frst_getdir, frst_glbpnt, . frst_initp, frst_mosub, frst_mosubfdmx, frst_overlp, . frst_rdcluster, frst_rdguess, frst_wrtrst, frst_pb000, . frst_pb006, frst_pb033, frst_pb038, frst_pbsurcomp, . frst_pb069, frst_pbfock, frst_pbsolver, frst_pb007, . frst_sab, frst_abintg logical water,octanol,chloroform,alkane,noprob common /solvparam/ water,octanol,chloroform,alkane,noprob logical tp,prmize,err,geopar common /parametric/ vecs(240*maxvec),vecerr(maxvec),heats(2500), . etotals(2500), . iattyp(10),seterr,toterr,dipol1,igener,ifiles,geopar, . tp,prmize,err 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 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 common /esave/ vir,dens,denstemp,pressins,eelect,ecore,etot, & eheat,enth,pterm,pmedir,pmeself,pmerec,ecoul,elr,nscf character fname*20,ext*20,fstat*7 common /fileinfo/ 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), $ rpair(mxpair),enuclr(mxpair),eerep(maxrep) common /glbmat2/ iimat(maxatm),ijmat(mxdiat),ijrep(mxpair) common /glbmat3/ rijmin common /gradnt/ grad(maxpar), rforc(maxres3), drx(maxres3), & gnorm 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 /group/ ingroupn(0:maxgroup), ingroup(maxres), ngroup common /intcrd/ zmat(3,maxatm),izmat(3,maxatm),iopt(3,maxatm) logical pbc, prtsub, screen, direct, centrl, stand, & fullscf, clust, autosub, resgr, mixgr, atgr, am1, & pm3, mndo, xyzspace, xyzspc, resdue, cart, gradient, & 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,homol,vdwaal,lbelly common /logic/ pbc, prtsub, direct, centrl, stand, & fullscf, clust, autosub, resgr, mixgr, atgr, am1, & pm3, mndo, xyzspace, xyzspc, resdue, cart, gradient, & 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,homol,lbelly common /logicpb/ screen, scrf, scrfin,vdwaal #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,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 intramolecular semi-empirical parameters (which are the C only parameters that will used when PARAM_SPLIT_IS_ON is not C defined). 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),ussc(83),uppc(83), . gssc(83),gspc(83),hspc(83),gp2c(83), . gppc(83) 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 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 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 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 common /parproc/ myid, nproc, inpt, iout, iscr, irst, & ipdb, itrj, icoor, ich, idmx, igrd, ipbs, ischg, & iphim, igsrf, isolf 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 /pme/ & 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 /pme/ & 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 common /sublst/ is1atm(maxatm),iasubs(mslist) common /subpar/ core(3), overlap, dcbuff1, dcbuff2, & dgbuff1, dgbuff2, & 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 common /user/ keywrd,title 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 C C The COMMON BLOCKS WRKGEO amd WRKDII are only activated in the C geoopt, getdir, diisub, diislb, linmin, bsrch, lbfgs C hsep and freq modules. C This is so because the exact memory distribution is different C in these modules. C C common /wrkgeo/ direct1(maxpar),oldgrd(MAXPAR), C +hg(maxpar),xyz0(3,maxatm),WLBFGS(MXLB) C C common /wrkdii/ crdset(MAXPAR,MXSTOR),GRDSET(MAXPAR,MXSTOR), C +SHFSET(MAXPAR,MXSTOR),DTEST(MAXPAR),GTEST(MAXPAR) C common /rfo/HESS(mxdgts,mxdgts),URFO(mxdgts,mxdgts), +Frfo(mxdgts),Brfo(mxdgts),XS(mxdgts),follow(mxdgts) C common /belly/ nbelatm,nbelres,ibelres(maxres),ibelatm(maxatm) & ,ibelly(maxatm) C common /xyzcrd/ xyz(3,maxatm), atchg(maxatm), atchg2(maxatm), & atchg3(maxatm), rminimr, rmaximr common /dcalls/ tcalls(2),ncalls(2),icall #ifdef MPI_NOMC COMMON/bal_mpi/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 /guesstuf1/ sresfile(maxsresf) common /guesstuf2/ 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 double precision atarea,corrgsol real xschg, schg, grf,gnp,grf_vac integer nschg common/pb_schg/ xschg(3,maxschg), schg(maxschg), nschg common/solv_therm/ atarea(maxatm),corrgsol,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/pdbfrm/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 #ifndef STEWART_INTEGRALS common /factc/ fact(0:maxfac), fact1(0:maxfac), $ fact2(0:maxfac), pow2(0:maxfac) common /talmandat/ bs(0:maxb), mmax #endif