1c $Id$
2c
3      real*8 zero,tiny,small
4      real*8 fourth,third,half,one,two,three,four,six,twelve
5      parameter(zero=0.0d0)
6      parameter(tiny=1.0d-18)
7      parameter(small=1.0d-6)
8      parameter(one=1.0d0)
9      parameter(fourth=2.5d-1)
10      parameter(third=3.333333333333d-1)
11      parameter(half=5.0d-1)
12      parameter(two=2.0d0)
13      parameter(three=3.0d0)
14      parameter(four=4.0d0)
15      parameter(six=6.0d0)
16      parameter(twelve=1.2d1)
17c
18      real*8 avoga,rgas
19      parameter(avoga=6.022045d-07)
20      parameter(rgas=8.31441d-03)
21c
22      integer mis2
23      parameter(mis2=15)
24c
25      integer mbs,mpe
26      parameter(mbs=2)
27      parameter(mpe=13)
28c
29      integer mdynam,ldynam,mrestr,lrestr,lquant,mfixed,mfixcm
30      integer lfixed,lfixcm
31      parameter(mdynam=12)
32      parameter(mrestr=12)
33      parameter(mfixed=12)
34      parameter(mfixcm=12)
35      parameter(ldynam=0)
36      parameter(lrestr=4)
37      parameter(lquant=16)
38      parameter(lfixed=8)
39      parameter(lfixcm=12)
40c
41      integer icnstr
42      parameter(icnstr=1)
43c
44      integer me,np,irtdb,
45     + nparms,nbs,mat,map,mqt,mqp,nwc,nsc,ndrs,
46     + nwm,mwm,nwa,mwa,nsa,msa,nsm,msm,nsf,msf,nwmtot,nsatot,
47     + mbt(mbs),mbp(mbs),mht(mbs),mhp(mbs),mdt(mbs),mdp(mbs),
48     + mit(mbs),mip(mbs),mtt(mbs),mtp(mbs),mxt(mbs),mxp(mbs),
49     + mscr,ndxp,maxl,mgl,mgc,mgr,numb(mbs),numh(mbs),numd(mbs),
50     + numi(mbs),numt(mbs),numx(mbs),mmult,nmul,nmult(4),mmuli,
51     + ndums,nprec,nbget
52      logical lscr,llst,lpress
53      common/cf_dim/me,np,irtdb,nparms,nbs,mat,map,mqt,mqp,nwc,nsc,ndrs,
54     + nwm,mwm,nwa,mwa,nsa,msa,nsm,msm,nsf,msf,nwmtot,nsatot,
55     + numb,numh,numd,numi,numt,numx,mmult,nmul,nmult,mmuli,ndums,nprec,
56     + nbget,mbt,mbp,mht,mhp,mdt,mdp,mit,mip,mtt,mtp,mxt,mxp,
57     + mscr,ndxp,maxl,mgl,mgc,mgr,lscr,llst,lpress
58c
59      integer i_vdw,l_vdw,i_mas,l_mas,i_nam,l_nam,i_num,l_num,
60     + i_chg,l_chg,i_iwa,l_iwa,i_iwq,l_iwq,i_ias,l_ias,i_typ,l_typ,
61     + i_ibnd(mbs),l_ibnd(mbs),i_bnd(mbs),l_bnd(mbs),
62     + i_iang(mbs),l_iang(mbs),i_ang(mbs),l_ang(mbs),
63     + i_idih(mbs),l_idih(mbs),i_dih(mbs),l_dih(mbs),
64     + i_iimp(mbs),l_iimp(mbs),i_imp(mbs),l_imp(mbs),
65     + i_itrd(mbs),l_itrd(mbs),i_ixcl(mbs),l_ixcl(mbs),
66     + i_rbnd(mbs),l_rbnd(mbs),i_rang(mbs),l_rang(mbs),
67     + i_rdih(mbs),l_rdih(mbs),i_rimp(mbs),l_rimp(mbs),
68     + i_rub(mbs),l_rub(mbs),
69     + i_wsm,l_wsm,i_imul,l_imul,i_xmul,l_xmul,i_fmul,l_fmul,
70     + i_ixmul,l_ixmul,i_idrs,l_idrs,i_rdrs,l_rdrs,i_xdrs,l_xdrs,
71     + i_s1i1,l_s1i1,i_s1i2,l_s1i2,i_s1i3,l_s1i3,
72     + i_s1i4,l_s1i4,i_s1i5,l_s1i5,i_s1i6,l_s1i6,i_s2i1,l_s2i1,
73     + i_s1r1,l_s1r1,i_s1r2,l_s1r2,i_s1r3,l_s1r3,i_s1r4,l_s1r4,
74     + i_s1r5,l_s1r5,i_s1r6,l_s1r6,
75     + i_s3r1,l_s3r1,i_s3r2,l_s3r2,i_smr1,l_smr1,
76     + i_smr2,l_smr2,i_smr3,l_smr3,i_smr4,l_smr4,
77     + i_smr5,l_smr5,i_smr6,l_smr6,
78     + i_list,l_list,i_snam,l_snam,i_sti,l_sti,i_mprot,l_mprot,
79     + i_pmew,l_pmew,i_pmes,l_pmes,
80     + i_theta,l_theta,i_dtheta,l_dtheta,
81     + i_ipmf,l_ipmf,i_jpmf,l_jpmf,i_rpmf,l_rpmf,i_xpmf,l_xpmf,
82     + i_ypmf,l_ypmf,i_wpmf,l_wpmf,i_upmf,l_upmf,
83     + i_lseq,i_lda,l_lda,i_rda,l_rda,i_uda,l_uda,i_pda,l_pda,
84     + i_lsthop,l_lsthop,i_timhop,l_timhop
85      common/cf_ptr/i_vdw,l_vdw,i_mas,l_mas,i_nam,l_nam,i_num,l_num,
86     + i_chg,l_chg,i_iwa,l_iwa,i_iwq,l_iwq,i_ias,l_ias,i_typ,l_typ,
87     + i_ibnd,l_ibnd,i_bnd,l_bnd,i_rbnd,l_rbnd,
88     + i_iang,l_iang,i_ang,l_ang,i_rang,l_rang,
89     + i_idih,l_idih,i_dih,l_dih,i_rdih,l_rdih,
90     + i_iimp,l_iimp,i_imp,l_imp,i_rimp,l_rimp,
91     + i_rub,l_rub,
92     + i_itrd,l_itrd,i_ixcl,l_ixcl,
93     + i_wsm,l_wsm,i_imul,l_imul,i_xmul,l_xmul,i_fmul,l_fmul,
94     + i_ixmul,l_ixmul,i_idrs,l_idrs,i_rdrs,l_rdrs,i_xdrs,l_xdrs,
95     + i_s1i1,l_s1i1,i_s1i2,l_s1i2,i_s1i3,l_s1i3,
96     + i_s1i4,l_s1i4,i_s1i5,l_s1i5,i_s1i6,l_s1i6,i_s2i1,l_s2i1,
97     + i_s1r1,l_s1r1,i_s1r2,l_s1r2,i_s1r3,l_s1r3,i_s1r4,l_s1r4,
98     + i_s1r5,l_s1r5,i_s1r6,l_s1r6,
99     + i_s3r1,l_s3r1,i_s3r2,l_s3r2,i_smr1,l_smr1,
100     + i_smr2,l_smr2,i_smr3,l_smr3,i_smr4,l_smr4,
101     + i_smr5,l_smr5,i_smr6,l_smr6,
102     + i_list,l_list,i_snam,l_snam,i_sti,l_sti,i_mprot,l_mprot,
103     + i_pmew,l_pmew,i_pmes,l_pmes,
104     + i_theta,l_theta,i_dtheta,l_dtheta,
105     + i_ipmf,l_ipmf,i_jpmf,l_jpmf,i_rpmf,l_rpmf,i_xpmf,l_xpmf,
106     + i_ypmf,l_ypmf,i_wpmf,l_wpmf,i_upmf,l_upmf,
107     + i_lseq,i_lda,l_lda,i_rda,l_rda,i_uda,l_uda,i_pda,l_pda,
108     + i_lsthop,l_lsthop,i_timhop,l_timhop
109c
110      integer ntype,npbtyp,nbxtyp,lstype,icntrl,iradgy
111      integer ngc,ngl,nfrdf,ifstep,ngrww,ireact,mset,iset,npener
112      integer lpww,lpsw,lpss,ngrsw,ngrss,nrwrec
113      integer isolvo,npww,npsw,npss,ipme,morder,ngx,ngy,ngz,ngmax
114      integer ipolt,niterw,niters,mshitw,mshits,noshak,nbias,mropt
115      integer itscal,ipscal,ipopt,islow,mdalgo,ntest,numpmf,npmfa,npmfi
116      integer npgdec,ngrx,ngry,ngrz,mseq,nseq,nhop,nlda,nldat,nhops
117      real*8 box(3),boxh(3),vlat(3,3),vlati(3,3),rshrt,rlong,rrest,
118     + rshrt2,rlong2,rrest2,deriv(24,2),ep2(3),ep3(3),
119     + dfrdf,ewwl(2),zw(3,3,2),rffww,ewwr(2),drdf,ealpha,ewwq(2),rdfvol,
120     + recip(3,3),volume,epme,vpme(6),tolsha,xbm(3),facpsc,pscale,
121     + ewc(24)
122      real*8 rffsw,rffss,shift0(6),shift1(6),epmecs,epmecw,vpmeb(6)
123      real*8 q14fac,pi,twopi,qfac,alpha,pmetol,temp,tempw,temps,pres
124      real*8 tstep,tstepi,wbox,tmpext,prsext,tmwrlx,tmsrlx,prsrlx,epmf
125      real*8 factmp,factmw,factms,scalew,scales,ewk,ek
126      real*8 ewkc(3,3),eskc(3,3),ekc(3,3),z(3,3),prx(3,3)
127      real*8 edrs,field,fvect(3),ffreq,totchg
128      real*8 virial,scaleq,ubias,facpmf,rhop,rhop2,thop,stime
129      integer llww,lsww,llsw,lssw,llss,lsss,includ,nfhop,ipbtyp,iffld
130      logical llist,lpair,ltwin,llong,lssscl,lpmf,lpmfc,lpmfcc,lanal
131      logical lhop,lqhop,lfree
132      logical ithint,ith(24),ipert2,ipert3,ip2(24),ip3(24)
133      common/cf_box/box,boxh,vlat,vlati,rshrt,rlong,rrest,rshrt2,
134     + rlong2,rrest2,deriv,ep2,ep3,dfrdf,ewwl,zw,rffww,ewwr,drdf,
135     + ealpha,ewwq,rdfvol,rffsw,rffss,shift0,shift1,epmecs,epmecw,vpmeb,
136     + q14fac,pi,twopi,qfac,alpha,pmetol,recip,volume,epme,vpme,tolsha,
137     + tstep,tstepi,wbox,xbm,tmpext,prsext,tmwrlx,tmsrlx,prsrlx,pres,
138     + temp,tempw,temps,factmp,factmw,factms,scalew,scales,ewk,ek,edrs,
139     + ewkc,eskc,facpsc,pscale,ewc,epmf,virial,field,fvect,ffreq,totchg,
140     + prx,z,ekc,scaleq,ubias,facpmf,rhop,rhop2,thop,stime,
141     + ntype,npbtyp,nbxtyp,lstype,icntrl,iradgy,mset,iset,nfhop,
142     + ipbtyp,ngc,ngl,nfrdf,ifstep,ngrww,ireact,npener,ipme,lpww,lpsw,
143     + lpss,ngrsw,ngrss,nrwrec,isolvo,npww,npsw,npss,morder,nbias,mropt,
144     + ngx,ngy,ngz,ngmax,ipolt,niterw,niters,mshitw,mshits,noshak,
145     + itscal,ipscal,ipopt,islow,mdalgo,ntest,numpmf,npmfa,npmfi,npgdec,
146     + ngrx,ngry,ngrz,mseq,nseq,nhop,nlda,nldat,nhops,iffld,
147     + llww,lsww,llsw,lssw,llss,lsss,includ,
148     + llist,lpair,ltwin,llong,lssscl,lpmf,lpmfc,lpmfcc,lanal,lhop,
149     + lqhop,lfree,ithint,ith,ipert2,ipert3,ip2,ip3
150      character*10 ffield
151      character*16 wnam(100)
152      common/cf_chr/ffield,wnam
153      integer lfnhop
154      common/cf_lfn/lfnhop
155
156
157