source: INCL.H@ 32289cd

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

Explicitly declare variables.

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

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