source: INCL.H@ 5ae43a7

Last change on this file since 5ae43a7 was 5ae43a7, checked in by baerbaer <baerbaer@…>, 14 years ago

Set implicit none and declare variables.

git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/smmp/trunk@22 26dc1dd8-5c4e-0410-9ffe-d298b4865968

  • Property mode set to 100644
File size: 19.4 KB
Line 
1 implicit none
2! implicit integer*4 (i-n)
3! implicit real*8 (a-h,o-z)
4 character*255 version
5
6 integer MAX_REPLICA, MAX_PROC, mxml, mxrs, mxat, mxbd, mxath
7 integer mxvr, mxms, mxvw, mx14, mxvrh, mxtyat, mxhbdo
8 integer mxhbac, mxtybl, mxtyba, mxtyto, mxrt, mxvrrt, mxrtsu
9 integer nrsty
10 integer MAXLOGLEVEL, LOGFILEUNIT
11 double precision pi, pi2, pi4, crd, cdr, zero, one
12 integer izero, ione
13
14 parameter(MAX_PROC=2048)
15 parameter (MAX_REPLICA = 2048) ! max. number of replicas
16 parameter (mxml=10) ! max. number of molecules
17 parameter(mxrs=100) ! max. total number of residues
18 parameter(mxat=2600) ! max. total number of atoms
19 parameter(mxbd=3) ! max. number of bonds to following atoms
20 parameter(mxath=100) ! max. number of atoms in help-arrays
21 parameter(mxvr=mxrs*8) ! max. number of local variables
22 parameter(mxms=mxvr*3) ! max. total number of moving sets
23 parameter(mxvw=mxat*4) ! max. number of vwd domains
24 parameter(mx14=mxat*4) ! max. number of '1-4' partners
25 parameter(mxvrh=mxath) ! max. number of variables in help
26 parameter(mxtyat=18) ! max. # of energetic atom-types
27 parameter(mxhbdo=4) ! max. types of Hydrogens as donors in HB
28
29 parameter (mxhbac=6) ! max. types of atoms as acceptors in HB
30 parameter(mxtybl=0) ! max. # of types of bond length potentials
31 parameter(mxtyba=0) ! - " - b. angle pot.
32 parameter(mxtyto=19) ! - " - torsional pot.
33 parameter(mxrt=500) ! max. # of restraint types
34 parameter(mxvrrt=mxrt*2) ! max. # of restraint variables
35 parameter(mxrtsu=mxvr*6) ! max. # of pointers subsets -> restraints
36 parameter(nrsty=35) ! max. # of residue types
37
38 parameter (pi=3.141592653589793d0)
39 parameter(pi2=2.d0*pi)
40 parameter(pi4=4.d0*pi)
41 parameter(crd=57.2957795130823d0)
42 parameter(cdr=1.745329251994330d-2)
43
44 parameter (izero=0)
45 parameter(ione=1)
46 parameter(zero=0.d0)
47 parameter(one=1.d0)
48 parameter (version= &
49 & '$Id: INCL.H 335 2007-08-09 09:32:21Z meinke $')
50
51 integer seed
52 integer enysolct
53 double precision boxsize
54 common /counter/enysolct
55 common /commonrandom/ seed
56 common /bounds/ boxsize
57
58 integer myrank, no, my_mpi_comm
59 integer workPerProcessor(0:mxml, 0:MAX_PROC)
60 common/paral/myrank,no,my_mpi_comm,workPerProcessor
61 double precision beta
62 common /bet/beta
63!== For solvent============================
64 integer mxpoint, mxbox, mxinbox, mxtysol
65 double precision rwater
66 parameter (mxpoint=2000) !
67 parameter(mxbox=80000) !
68 parameter(mxinbox=80000) !
69 parameter(mxtysol=9) !Max number of solvent types
70 parameter (rwater=1.4) !The Wdv radius of the water molecule
71
72!== Solvent types
73 integer itysol
74 logical isolscl
75 common /isolty/ itysol, isolscl
76 double precision spoint, coef_sl, rad_vdw, surfres, rsstrg
77 integer npnt
78 common /tes/ spoint(mxpoint,3)
79 common /pnt/ npnt
80 common /sol/ coef_sl(mxtysol,mxtyat),rad_vdw(mxtysol,mxtyat)
81 common/ressurf/surfres(mxrs)
82 dimension rsstrg(mxrs)
83 common /abgncor/rsstrg
84
85!---- The vdW radii of the atoms and solvation coefficients
86 double precision rvdw, sigma
87 common /solvent/ rvdw(mxat),sigma(mxat)
88
89! vdvol - van der Waals volume of the molecule
90! asa - Surface of molecule
91 double precision vdvol, asa, asap, asah
92 common /v_sol/ vdvol,asa,asap,asah
93
94! gradan - analytical gradients of solv. energy against atomic coordinates
95 double precision gradan
96 common /deriv/ gradan(mxat,3)
97
98
99!-----For calculation of hydrogen bonds
100 integer mxtyhb, ntyhb, ixtyhb, nutyhb, mmhb, nvr
101 parameter(mxtyhb=100) ! Maximum number of hydrogen bond types
102 common /h_bond/ ntyhb,ixtyhb(mxtyhb),nutyhb(mxtyhb), &
103 & mmhb(mxml, mxml)
104!-----For molecule parameter
105 common/mol_par/ nvr
106
107!-----Hydrophobic/polar radius of gyration
108 double precision rgyh, rgyp
109 common /rgy/ rgyh, rgyp
110!=======================================
111
112 character nmrt(mxrt)*4,nmvrrt(mxvrrt)*3
113 character rsnmcd(nrsty)*4,onltcd(nrsty)
114 character nmath(mxath)*4,nmvrh(mxvrh)*3
115 logical flex, tesgrd,epsd,sh2
116! -----Switches for Bias Gaussian Steps and random order in variable updates
117! upchswitch=0 => No BGS
118! upchswitch=1 => For backbone updates, use BGS with probability bgsprob
119! upchswitch=2 => More sophisticated, temperature dependent choice between
120! simple pivot update and BGS
121 logical rndord
122 integer upchswitch, idloa, idloz, idupa, idupz
123 double precision bgsprob
124 common /updchois/rndord,upchswitch,bgsprob
125 common /con_i/ idloa,idloz,idupa,idupz
126!---- The contact matrix and the indices of C_alpha atoms
127 integer ijcont, ind_alf, iref, nci
128 common/cont_i_j/ ijcont(mxrs,mxrs),ind_alf(mxrs)
129 common /jref/ iref(mxrs,mxrs),nci
130
131!-----For calculation of Zimmermann code of conformation:
132 character zimm*(mxrs)
133 common/zimme/zimm
134
135! lunlib - LUN of residue library
136! lunseq - LUN of sequence file
137! lunchg - LUN of charges for terminal residues (=0 if not necessary)
138! lunvar - LUN of file with commands to set variables
139! lunrst - LUN for variable restraints
140! reslib - name of residue library
141! seqfil - name of sequence file
142! chgfil - name of file with charges for terminal residues
143! varfil - name of file with commands to set variables
144! rstfil - name of file with variable restraints
145 integer lunlib, lunseq, lunchg, lunvar, lunrst
146 common /fil_i/ lunlib,lunseq,lunchg,lunvar,lunrst
147 character reslib*80,seqfil*80,chgfil*80,varfil*80,rstfil*80
148 common /fil_c/ reslib,seqfil,chgfil,varfil,rstfil
149
150! ntlml - total number of molecules
151! irsml1,irsml2 - indices of 1st/last residue of each molecule
152! ivrml1,nvrml - index of 1st/number of loc. variables in molecule
153! imsml1,nmsml - index of 1st/number of moving sets in molecule
154! iadml1,nadml - index of 1st/number of 'added varaibles' in molecule
155! nmml - name of molecule
156
157! -------------------------------------------------------------- new
158! ixrfpt - indices of 3 reference points (first 3 backbone atoms)
159! per molecule
160! ixatp - pointer of each SMMP atom to corresponding atom in a ref.
161! structure, (=0 if no corr. atom in ref. str.)
162! isrfvr() = true, if i-th variable is defined in ref. structure
163! rfpt - coordinates of a reference point (first bb atom) in molecule
164! xrfax,yrfax,zrfax - direction cosines of 3 ref. axes (axes J,K,L
165! according to global angles alpha,beta,gamma)
166! gbpr - 6 global parameters per molecule (3 shifts, 3 angles)
167! --------------------------------------------------------------------
168 integer ntlml, irsml1, irsml2, ivrml1, nvrml, imsml1, nmsml
169 integer iadml1, nadml, ixrfpt, ixatp, ireg
170 common /mol_i/ ntlml,irsml1(mxml),irsml2(mxml),ivrml1(mxml), &
171 &nvrml(mxml),imsml1(mxml),nmsml(mxml),iadml1(mxml),nadml(mxml) &
172 &,ixrfpt(3,mxml) &
173 &,ixatp(mxat) &
174 &,ireg
175! -------------------
176
177 logical isrfvr(mxvr)
178 common /refstr/ isrfvr
179
180 character nmml(mxml)*80
181 common /mol_c/ nmml
182
183! -----------------------------------------
184 double precision rfpt, gbpr, xrfax, yrfax, zrfax
185 common /mol_r/ rfpt(3,mxml),gbpr(6,mxml), &
186 &xrfax(3,mxml),yrfax(3,mxml),zrfax(3,mxml)
187! ---------------------------------------------
188
189! iatrs1,iatrs2 - indices of 1st (backbone)/last atom of residue
190! ixatrs - index of last backbone atom (may be bound to next res.)
191! ivrrs1,nvrrs - index of 1st/number of local variable for residue
192! seq - names of residues
193 integer iatrs1, iatrs2, ixatrs, ivrrs1, nvrrs
194 common /res_i/ iatrs1(mxrs),iatrs2(mxrs),ixatrs(mxrs),ivrrs1(mxrs)&
195 & ,nvrrs(mxrs)
196 character seq(mxrs)*4
197 common /res_c/ seq
198
199! ityat - atom class
200! iowat - index of preceeding atom (=0 if none)
201! iyowat - type of bond with prec. atom (=1:single bond,=-1:not single)
202! nbdat - number of bonds with following atoms
203! ibdat - indices of following covalently bonded atoms
204! iybdat - types of covalently bonds to following atoms (see 'iyowat')
205! ixmsat - index of the moving set for each atom
206! cgat - point charge at atom
207! xbaat - |
208! ybaat - | axis to alter valence-angle for i-th atom
209! zbaat - | (placed at 'iowat(i)')
210! baat - valence angle 'iowat(iowat(i)), iowat(i), i' [rad.]
211! snbaat - Sin(baat)
212! csbaat - Cos(baat)
213! xtoat - |
214! ytoat - | axis between 'iowat(i)' and i-th atom
215! ztoat - |
216! toat - dihedral 'iowat(iowat(iowat(i))), iowat(iowat(i)),
217! iowat(i), i' [rad.]
218! sntoat - Sin(toat)
219! cstoat - Cos(toat)
220! blat - valence-length 'iowat(i)-i'
221! xat - |
222! yat - | cartesian coordinates of atom
223! zat - |
224! nmat - atom name
225 integer ityat, iowat, iyowat, nbdat, ibdat, iybdat, ixmsat, cgat
226 double precision xbaat, ybaat, zbaat, baat, snbaat, csbaat, xtoat
227 double precision ytoat, ztoat, toat, sntoat, cstoat, blat, xat
228 double precision yat, zat
229 common /atm_i/ ityat(mxat),iowat(mxat),iyowat(mxat),nbdat(mxat), &
230 & ibdat(mxbd,mxat),iybdat(mxbd,mxat),ixmsat(mxat)
231 common /atm_r/ cgat(mxat), &
232 &xbaat(mxat),ybaat(mxat),zbaat(mxat),baat(mxat),snbaat(mxat), &
233 &csbaat(mxat), &
234 &xtoat(mxat),ytoat(mxat),ztoat(mxat),toat(mxat),sntoat(mxat), &
235 &cstoat(mxat), &
236 &blat(mxat), &
237 &xat(-1:mxat),yat(-1:mxat),zat(-1:mxat)
238 character nmat(mxat)*4
239 common /atm_c/ nmat
240
241! olvlvr - stores initial values for internal variables
242! nmvr - name of variable
243! iatvr - index of primary moving atom for loc. variable
244! ityvr - type of variable ( 1 = valence length,
245! 2 = valence angle,
246! 3 = dihedral angle)
247! iclvr - indicates class for corresponding variable potential
248! iorvr - indicates appropriate order of variables
249! imsvr - index of 1st moving set per variable as stored in
250! 'latms1,latms2'
251! imsvr1,imsvr2 - indices of 1st & last moving set per variable
252! 'latms1,latms2'
253! latms1,latms2 - lists of indices for 1st and last atom of each moving set
254! iadvr1,iadvr2 - indices of 1st & last related variable per var. in 'ladvr'
255! ladvr - list of variable indices which are related to other variables
256! fxvr - .true. if variable will be fixed throughout calculations
257
258 double precision olvlvr, vlvr, axvr
259 integer iatvr, ityvr, iclvr, iorvr, imsvr1, imsvr2, latms1
260 integer latms2, iadvr1, iadvr2, ladvr, idvr
261 common /var_r/ olvlvr(mxvr),vlvr(mxvr),axvr(mxvr)
262 common /var_i/ iatvr(mxvr),ityvr(mxvr),iclvr(mxvr),iorvr(mxvr), &
263 & imsvr1(mxvr),imsvr2(mxvr),latms1(mxms),latms2(mxms)&
264 & ,iadvr1(mxvr),iadvr2(mxvr),ladvr(mxvr),idvr(mxvr)
265 character nmvr(mxvr)*3
266 common /var_c/ nmvr
267 logical fxvr(mxvr)
268 common /var_l/ fxvr
269
270! Energy parametrization for SCHERAGA set
271!
272! ehm - 1.5*(elem. charge)/(Planck\'s const./2Pi * electr. mass)
273! atpl - atomic polarizabilities
274! efel - empirical numbers of effective electrons per atom
275! emin - minima of pairwise Lennard-Jones terms of like atoms
276! rmin - corresponding pair-distance of energy minima
277! chb_s,ahb_s - parameter of attraction/repulsion terms of HB-potential
278! e0to_s,sgto_s,rnto_s - barrier[kcal/mole],sign,multiplicity of tors.potential
279! eps_s - distance-INdependent diel. constant
280! do_s,ac_s - flag to define atom-types serving as donors/acceptors in HB
281 double precision ehm, atpl, efel, emin, rmin, chb_s, ahb_s, e0to_s
282 double precision sgto_s, rnto_s, eps_s
283 common /sche_r/ ehm,atpl(mxtyat),efel(mxtyat),emin(mxtyat), &
284 & rmin(mxtyat),chb_s(mxhbdo,mxhbac),ahb_s(mxhbdo,mxhbac), &
285 & e0to_s(mxtyto),sgto_s(mxtyto),rnto_s(mxtyto), &
286 & eps_s
287 logical do_s(mxtyat),ac_s(mxtyat)
288 common /sche_l/ do_s,ac_s
289
290! Energy parametrization for FLEX set
291!
292! c_f,a_f - parameter of attraction/repulsion terms of LJ-potential
293! chb_f,ahb_f - parameter of attraction/repulsion terms of HB-potential
294! e0to_s,sgto_s,rnto_s - barrier[kcal/mole],sign,multiplicity of tors.potential
295! plt_f,slp_f - parameters for sigmoidal distance-dependent epsilon
296! cohb_f - cut-off distance between H- & acceptor atom in Hydrogen-Bonds
297! do_f,ac_f - flags atom-types serving as donors/acceptors in HB
298
299 double precision c_f, a_f, chb_f, ahb_f, e0to_f, sgto_f, rnto_f
300 double precision plt_f, slp_f, cohb_f
301 common /flex_r/ c_f(mxtyat,mxtyat),a_f(mxtyat,mxtyat), &
302 & chb_f(mxhbdo,mxhbac),ahb_f(mxhbdo,mxhbac), &
303 & e0to_f(mxtyto),sgto_f(mxtyto),rnto_f(mxtyto), &
304 & plt_f,slp_f,cohb_f
305 logical do_f(mxtyat),ac_f(mxtyat)
306 common /flex_l/ do_f,ac_f
307
308! Currently chosen energy parametrization
309!
310! ihbty = 1, i - HB donor hydrogen & j - HB acceptor
311! = -1, i - HB acceptor & j - HB donor hydrogen
312! = 0, otherwise
313! cij,aij - parameters of attraction/repulsion terms of LJ-potential
314! a14 - special value for repulsion in "1-4"-interactions
315! chb,ahb - parameters of attraction/repulsion terms of HB-potential
316! e0to,sgto,rnto - barrier*0.5 !!,sign,multiplicity of torsional potential
317! esnto = e0/2 * sign * multipl.
318! conv - parameter to convert electrostat. energy into [kcal/mole]
319! plt,slp,cohb - see FLEX
320! flex - .true. if FLEX-parametrization is to be used (obsolete)
321! ientyp : 0 => ECEPP, 1 => FLEX, 2 => Lund, 3 => ECEPP+Abagyan
322! tesgrd - .true. if GRADTEST to be included
323 integer ihbty, ientyp
324 double precision cij, aij, a14, chb, ahb, e0to, sgto, rnto, esnto
325 double precision conv, plt, slp, cohb
326 common /epar_i/ ihbty(mxtyat,mxtyat)
327 common /epar_r/ cij(mxtyat,mxtyat),aij(mxtyat,mxtyat), &
328 & a14(mxtyat,mxtyat),chb(mxtyat,mxtyat),ahb(mxtyat,mxtyat), &
329 & e0to(mxtyto),sgto(mxtyto),rnto(mxtyto),esnto(mxtyto), &
330 & conv, plt,slp, cohb
331
332 common /epar_l/ flex, tesgrd,sh2,epsd,ientyp
333
334! ENERGY & -MINIMIZATION
335
336! nvwml,ivwml1 - number/index of 1st vdW-domain per molecule
337! ivwat1,ivwat2 - index of 1st/last vdW-domain per atom
338! lvwat1,lvwat2 - lists of indices of 1st and last atom in each vdw domain
339! n14ml,i14ml1 - number/index of 1st '1-4' interaction partner per molecule
340! i14at1,i14at2 - index of 1st/last '1-4' interact. partner per atom
341! ixatvw - index of respective atom for each vdW-domain
342! ixatvw - index of respective atom for each '14'-interaction partner
343
344! ---------------------------------------------------------------------------- new
345! eyel,eyvw,eyhb,eyvr,eysm,eysl,eyrg - Coulomb,vdW,HB,variable-potential & total
346! eyslh, eyslp - hydrophilic (h)/phobic (p) conributions to the solvent energy
347! potential energy, solvation, regularization energy
348! gdeyvr - partial derivative of total energy vs. variable (Gradient)
349! gdeyrg - partial derivative of regularization energy vs. variable (Gradient)
350! gdeysl - partial derivative of solvatation energy vs. variable (Gradient)
351! wtey - weight to energy & energy gradient
352! wtrg - weight to reg. target & its gradient
353 integer nvwml, ivwml1, n14ml, i14ml1, ivwat1, ivwat2, i14at1
354 integer i14at2, lvwat1, lvwat2, l14at, ixatvw, ixat14
355 double precision eyel, eyvw, eyhb, eyvr, eysm, eysl, eyrg, eyslh
356 double precision eyslp, eyab, eysmi, eyhbi, eyeli, eyvwi, gdeyvr
357 double precision gdeyrg, gdeysl, gdeygb, wtey, wtrg
358 common /eny_i/ nvwml(mxml),ivwml1(mxml),n14ml(mxml),i14ml1(mxml), &
359 & ivwat1(mxat),ivwat2(mxat),i14at1(mxat),i14at2(mxat)&
360 & ,lvwat1(mxvw),lvwat2(mxvw),l14at(mx14) &
361 & ,ixatvw(mxvw),ixat14(mx14)
362 common /eny_r/ eyel,eyvw,eyhb,eyvr,eysm,eysl,eyrg,eyslh,eyslp,eyab&
363 & ,eysmi,eyhbi,eyeli,eyvwi &
364 & ,gdeyvr(mxvr),gdeyrg(mxvr),gdeysl(mxvr) &
365 & ,gdeygb(6*mxml),wtey,wtrg
366
367! ntlrt - total # of restraint types
368! ntlsu - total # of variable subsets
369! nmrt - name of r.t
370! pbrt - probability for r.t
371! i1vrrt,i2vrrt - 1st,last restraint variable for a r.t
372! nmvrrt - name of restraint variable
373! vuvrrt - average value for r.v
374! dvvrrt - standard deviation for r.v
375! i1rtsu - point to 1st restraint type for a variable subset
376! nprtsu - # of restraint types for each subset
377! iprtsu - pointers from subsets --> restr. types
378! i1vrsu,i2vrsu - 1st,last pointer in 'ipvrsu' per var. subset
379! ipvrsu - pointers var. subset -> variables
380 integer ntlrt, ntlsu, i1vrrt, i2vrrt, i1rtsu, nrtsu
381 integer iprtsu, i1vrsu, i2vrsu, ipvrsu
382 double precision pbrt, vuvrrt, dvvrrt
383
384 common /rstr_i/ ntlrt,ntlsu,i1vrrt(mxrt),i2vrrt(mxrt), &
385 & iprtsu(mxrtsu),i1rtsu(mxvr),nrtsu(mxvr), &
386 & i1vrsu(mxvr),i2vrsu(mxvr),ipvrsu(mxvr)
387
388 common /rstr_c/ nmrt,nmvrrt
389 common /rstr_r/ pbrt(mxrt),vuvrrt(mxvrrt),dvvrrt(mxvrrt)
390
391! rsnmcd - 4-letter codes for NRSTY residue types
392! onltcd - respective 1-letter codes for residue types
393
394 common /rsnm_c/ rsnmcd,onltcd
395
396! arrays for help
397 integer ityath, iowath, iyowath, nbdath, ibdath, iybdath, ityvrh
398 integer iclvrh, iatvrh
399 double precision blath, baath, toath, cgath
400 common /help_i/ ityath(mxath),iowath(mxath),iyowath(mxath), &
401 & nbdath(mxath),ibdath(mxbd,mxath), &
402 & iybdath(mxbd,mxath), &
403 & ityvrh(mxvrh),iclvrh(mxvrh),iatvrh(mxvrh)
404 common /help_r/ blath(mxath),baath(mxath),toath(mxath), &
405 & cgath(mxath)
406 common /help_c/ nmath,nmvrh
407
Note: See TracBrowser for help on using the repository browser.