3 C Read the parameters of the probability distributions of the virtual-bond
4 C valence angles and the side chains and energy parameters.
6 C Important! Energy-term weights ARE NOT read here; they are read from the
7 C main input file instead, because NO defaults have yet been set for these
10 implicit real*8 (a-h,o-z)
16 include 'COMMON.IOUNITS'
17 include 'COMMON.CHAIN'
18 include 'COMMON.INTERACT'
20 include 'COMMON.LOCAL'
21 include 'COMMON.TORSION'
22 include 'COMMON.SCCOR'
23 include 'COMMON.SCROT'
24 include 'COMMON.FFIELD'
25 include 'COMMON.NAMES'
26 include 'COMMON.SBRIDGE'
28 include 'COMMON.SETUP'
30 character*1 onelett(4) /"G","A","P","D"/
31 character*1 toronelet(-2:2) /"p","a","G","A","P"/
33 dimension blower(3,3,maxlob)
35 character*3 lancuch,ucase
37 C For printing parameters after they are read set the following in the UNRES
40 C setenv PRINT_PARM YES
42 C To print parameters in LaTeX format rather than as ASCII tables:
46 call getenv_loc("PRINT_PARM",lancuch)
47 lprint = (ucase(lancuch).eq."YES" .or. ucase(lancuch).eq."Y")
48 call getenv_loc("LATEX",lancuch)
49 LaTeX = (ucase(lancuch).eq."YES" .or. ucase(lancuch).eq."Y")
51 dwa16=2.0d0**(1.0d0/6.0d0)
53 C Assign virtual-bond length
58 c Read the virtual-bond parameters, masses, and moments of inertia
59 c and Stokes' radii of the peptide group and side chains
62 read (ibond,*) vbldp0,vbldpdum,akp,mp,ip,pstok
65 read (ibond,*) vbldsc0(1,i),aksc(1,i),msc(i),isc(i),restok(i)
70 dsc_inv(i)=1.0D0/dsc(i)
74 read (ibond,*) junk,vbldp0,vbldpdum,akp,rjunk,mp,ip,pstok
76 read (ibond,*) nbondterm(i),(vbldsc0(j,i),aksc(j,i),abond0(j,i),
77 & j=1,nbondterm(i)),msc(i),isc(i),restok(i)
82 dsc_inv(i)=1.0D0/dsc(i)
87 write(iout,'(/a/)')"Dynamic constants of the interaction sites:"
88 write (iout,'(a10,a3,6a10)') 'Type','N','VBL','K','A0','mass',
90 write(iout,'(a10,i3,6f10.5)') "p",1,vbldp0,akp,0.0d0,mp,ip,pstok
92 write (iout,'(a10,i3,6f10.5)') restyp(i),nbondterm(i),
93 & vbldsc0(1,i),aksc(1,i),abond0(1,i),msc(i),isc(i),restok(i)
95 write (iout,'(13x,3f10.5)')
96 & vbldsc0(j,i),aksc(j,i),abond0(j,i)
100 C reading lipid parameters
101 read(iliptranpar,*) pepliptran
103 read(iliptranpar,*) liptranene(i)
108 C Read the parameters of the probability distribution/energy expression
109 C of the virtual-bond valence angles theta
112 read (ithep,*,err=111,end=111) a0thet(i),(athet(j,i,1,1),j=1,2),
113 & (bthet(j,i,1,1),j=1,2)
114 read (ithep,*,err=111,end=111) (polthet(j,i),j=0,3)
115 read (ithep,*,err=111,end=111) (gthet(j,i),j=1,3)
116 read (ithep,*,err=111,end=111) theta0(i),sig0(i),sigc0(i)
120 athet(1,i,1,-1)=athet(1,i,1,1)
121 athet(2,i,1,-1)=athet(2,i,1,1)
122 bthet(1,i,1,-1)=-bthet(1,i,1,1)
123 bthet(2,i,1,-1)=-bthet(2,i,1,1)
124 athet(1,i,-1,1)=-athet(1,i,1,1)
125 athet(2,i,-1,1)=-athet(2,i,1,1)
126 bthet(1,i,-1,1)=bthet(1,i,1,1)
127 bthet(2,i,-1,1)=bthet(2,i,1,1)
131 athet(1,i,-1,-1)=athet(1,-i,1,1)
132 athet(2,i,-1,-1)=-athet(2,-i,1,1)
133 bthet(1,i,-1,-1)=bthet(1,-i,1,1)
134 bthet(2,i,-1,-1)=-bthet(2,-i,1,1)
135 athet(1,i,-1,1)=athet(1,-i,1,1)
136 athet(2,i,-1,1)=-athet(2,-i,1,1)
137 bthet(1,i,-1,1)=-bthet(1,-i,1,1)
138 bthet(2,i,-1,1)=bthet(2,-i,1,1)
139 athet(1,i,1,-1)=-athet(1,-i,1,1)
140 athet(2,i,1,-1)=athet(2,-i,1,1)
141 bthet(1,i,1,-1)=bthet(1,-i,1,1)
142 bthet(2,i,1,-1)=-bthet(2,-i,1,1)
147 polthet(j,i)=polthet(j,-i)
150 gthet(j,i)=gthet(j,-i)
158 & 'Parameters of the virtual-bond valence angles:'
159 write (iout,'(/a/9x,5a/79(1h-))') 'Fourier coefficients:',
160 & ' ATHETA0 ',' A1 ',' A2 ',
163 write(iout,'(a3,i4,2x,5(1pe14.5))') restyp(i),i,
164 & a0thet(i),(athet(j,i,1,1),j=1,2),(bthet(j,i,1,1),j=1,2)
166 write (iout,'(/a/9x,5a/79(1h-))')
167 & 'Parameters of the expression for sigma(theta_c):',
168 & ' ALPH0 ',' ALPH1 ',' ALPH2 ',
169 & ' ALPH3 ',' SIGMA0C '
171 write (iout,'(a3,i4,2x,5(1pe14.5))') restyp(i),i,
172 & (polthet(j,i),j=0,3),sigc0(i)
174 write (iout,'(/a/9x,5a/79(1h-))')
175 & 'Parameters of the second gaussian:',
176 & ' THETA0 ',' SIGMA0 ',' G1 ',
179 write (iout,'(a3,i4,2x,5(1pe14.5))') restyp(i),i,theta0(i),
180 & sig0(i),(gthet(j,i),j=1,3)
184 & 'Parameters of the virtual-bond valence angles:'
185 write (iout,'(/a/9x,5a/79(1h-))')
186 & 'Coefficients of expansion',
187 & ' theta0 ',' a1*10^2 ',' a2*10^2 ',
188 & ' b1*10^1 ',' b2*10^1 '
190 write(iout,'(a3,1h&,2x,5(f8.3,1h&))') restyp(i),
191 & a0thet(i),(100*athet(j,i,1,1),j=1,2),
192 & (10*bthet(j,i,1,1),j=1,2)
194 write (iout,'(/a/9x,5a/79(1h-))')
195 & 'Parameters of the expression for sigma(theta_c):',
196 & ' alpha0 ',' alph1 ',' alph2 ',
197 & ' alhp3 ',' sigma0c '
199 write (iout,'(a3,1h&,2x,5(1pe12.3,1h&))') restyp(i),
200 & (polthet(j,i),j=0,3),sigc0(i)
202 write (iout,'(/a/9x,5a/79(1h-))')
203 & 'Parameters of the second gaussian:',
204 & ' theta0 ',' sigma0*10^2 ',' G1*10^-1',
207 write (iout,'(a3,1h&,2x,5(f8.3,1h&))') restyp(i),theta0(i),
208 & 100*sig0(i),gthet(1,i)*0.1D0,gthet(2,i),gthet(3,i)*10.0D0
214 C Read the parameters of Utheta determined from ab initio surfaces
215 C Kozlowska et al., J. Phys.: Condens. Matter 19 (2007) 285203
217 read (ithep,*,err=111,end=111) nthetyp,ntheterm,ntheterm2,
218 & ntheterm3,nsingle,ndouble
219 nntheterm=max0(ntheterm,ntheterm2,ntheterm3)
220 read (ithep,*,err=111,end=111) (ithetyp(i),i=1,ntyp1)
222 ithetyp(i)=-ithetyp(-i)
225 do i=-maxthetyp,maxthetyp
226 do j=-maxthetyp,maxthetyp
227 do k=-maxthetyp,maxthetyp
228 aa0thet(i,j,k,iblock)=0.0d0
230 aathet(l,i,j,k,iblock)=0.0d0
234 bbthet(m,l,i,j,k,iblock)=0.0d0
235 ccthet(m,l,i,j,k,iblock)=0.0d0
236 ddthet(m,l,i,j,k,iblock)=0.0d0
237 eethet(m,l,i,j,k,iblock)=0.0d0
243 ffthet(mm,m,l,i,j,k,iblock)=0.0d0
244 ggthet(mm,m,l,i,j,k,iblock)=0.0d0
252 c VAR:iblock means terminally blocking group 1=non-proline 2=proline
254 c VAR:ntethtyp is type of theta potentials type currently 0=glycine
255 c VAR:1=non-glicyne non-proline 2=proline
256 c VAR:negative values for D-aminoacid
258 do j=-nthetyp,nthetyp
259 do k=-nthetyp,nthetyp
260 read (ithep,'(6a)',end=111,err=111) res1
261 read (ithep,*,end=111,err=111) aa0thet(i,j,k,iblock)
262 c VAR: aa0thet is variable describing the average value of Foureir
263 c VAR: expansion series
264 c VAR: aathet is foureir expansion in theta/2 angle for full formula
265 c VAR: look at the fitting equation in Kozlowska et al., J. Phys.:
266 Condens. Matter 19 (2007) 285203 and Sieradzan et al., unpublished
267 read (ithep,*,end=111,err=111)
268 &(aathet(l,i,j,k,iblock),l=1,ntheterm)
269 read (ithep,*,end=111,err=111)
270 & ((bbthet(lll,ll,i,j,k,iblock),lll=1,nsingle),
271 & (ccthet(lll,ll,i,j,k,iblock),lll=1,nsingle),
272 & (ddthet(lll,ll,i,j,k,iblock),lll=1,nsingle),
273 & (eethet(lll,ll,i,j,k,iblock),lll=1,nsingle),
275 read (ithep,*,end=111,err=111)
276 & (((ffthet(llll,lll,ll,i,j,k,iblock),
277 & ffthet(lll,llll,ll,i,j,k,iblock),
278 & ggthet(llll,lll,ll,i,j,k,iblock),
279 & ggthet(lll,llll,ll,i,j,k,iblock),
280 & llll=1,lll-1),lll=2,ndouble),ll=1,ntheterm3)
285 C For dummy ends assign glycine-type coefficients of theta-only terms; the
286 C coefficients of theta-and-gamma-dependent terms are zero.
287 C IF YOU WANT VALENCE POTENTIALS FOR DUMMY ATOM UNCOMENT BELOW (NOT
288 C RECOMENTDED AFTER VERSION 3.3)
292 c aathet(l,i,j,nthetyp+1,iblock)=aathet(l,i,j,1,iblock)
293 c aathet(l,nthetyp+1,i,j,iblock)=aathet(l,1,i,j,iblock)
295 c aa0thet(i,j,nthetyp+1,iblock)=aa0thet(i,j,1,iblock)
296 c aa0thet(nthetyp+1,i,j,iblock)=aa0thet(1,i,j,iblock)
299 c aathet(l,nthetyp+1,i,nthetyp+1,iblock)=aathet(l,1,i,1,iblock)
301 c aa0thet(nthetyp+1,i,nthetyp+1,iblock)=aa0thet(1,i,1,iblock)
304 C AND COMMENT THE LOOPS BELOW
308 aathet(l,i,j,nthetyp+1,iblock)=0.0d0
309 aathet(l,nthetyp+1,i,j,iblock)=0.0d0
311 aa0thet(i,j,nthetyp+1,iblock)=0.0d0
312 aa0thet(nthetyp+1,i,j,iblock)=0.0d0
315 aathet(l,nthetyp+1,i,nthetyp+1,iblock)=0.0d0
317 aa0thet(nthetyp+1,i,nthetyp+1,iblock)=0.0d0
321 C Substitution for D aminoacids from symmetry.
324 do j=-nthetyp,nthetyp
325 do k=-nthetyp,nthetyp
326 aa0thet(i,j,k,iblock)=aa0thet(-i,-j,-k,iblock)
328 aathet(l,i,j,k,iblock)=aathet(l,-i,-j,-k,iblock)
332 bbthet(lll,ll,i,j,k,iblock)=bbthet(lll,ll,-i,-j,-k,iblock)
333 ccthet(lll,ll,i,j,k,iblock)=-ccthet(lll,ll,-i,-j,-k,iblock)
334 ddthet(lll,ll,i,j,k,iblock)=ddthet(lll,ll,-i,-j,-k,iblock)
335 eethet(lll,ll,i,j,k,iblock)=-eethet(lll,ll,-i,-j,-k,iblock)
341 ffthet(llll,lll,ll,i,j,k,iblock)=
342 & ffthet(llll,lll,ll,-i,-j,-k,iblock)
343 ffthet(lll,llll,ll,i,j,k,iblock)=
344 & ffthet(lll,llll,ll,-i,-j,-k,iblock)
345 ggthet(llll,lll,ll,i,j,k,iblock)=
346 & -ggthet(llll,lll,ll,-i,-j,-k,iblock)
347 ggthet(lll,llll,ll,i,j,k,iblock)=
348 & -ggthet(lll,llll,ll,-i,-j,-k,iblock)
357 C Control printout of the coefficients of virtual-bond-angle potentials
360 write (iout,'(//a)') 'Parameter of virtual-bond-angle potential'
365 write (iout,'(//4a)')
366 & 'Type ',onelett(i),onelett(j),onelett(k)
367 write (iout,'(//a,10x,a)') " l","a[l]"
368 write (iout,'(i2,1pe15.5)') 0,aa0thet(i,j,k,iblock)
369 write (iout,'(i2,1pe15.5)')
370 & (l,aathet(l,i,j,k,iblock),l=1,ntheterm)
372 write (iout,'(//2h m,4(9x,a,3h[m,,i1,1h]))')
373 & "b",l,"c",l,"d",l,"e",l
375 write (iout,'(i2,4(1pe15.5))') m,
376 & bbthet(m,l,i,j,k,iblock),ccthet(m,l,i,j,k,iblock),
377 & ddthet(m,l,i,j,k,iblock),eethet(m,l,i,j,k,iblock)
381 write (iout,'(//3hm,n,4(6x,a,5h[m,n,,i1,1h]))')
382 & "f+",l,"f-",l,"g+",l,"g-",l
385 write (iout,'(i1,1x,i1,4(1pe15.5))') n,m,
386 & ffthet(n,m,l,i,j,k,iblock),
387 & ffthet(m,n,l,i,j,k,iblock),
388 & ggthet(n,m,l,i,j,k,iblock),
389 & ggthet(m,n,l,i,j,k,iblock)
399 c write (2,*) "Start reading THETA_PDB",ithep_pdb
402 read (ithep_pdb,*,err=111,end=111)
403 & a0thet(i),(athet(j,i,1,1),j=1,2),
404 & (bthet(j,i,1,1),j=1,2)
405 read (ithep_pdb,*,err=111,end=111) (polthet(j,i),j=0,3)
406 read (ithep_pdb,*,err=111,end=111) (gthet(j,i),j=1,3)
407 read (ithep_pdb,*,err=111,end=111) theta0(i),sig0(i),sigc0(i)
411 athet(1,i,1,-1)=athet(1,i,1,1)
412 athet(2,i,1,-1)=athet(2,i,1,1)
413 bthet(1,i,1,-1)=-bthet(1,i,1,1)
414 bthet(2,i,1,-1)=-bthet(2,i,1,1)
415 athet(1,i,-1,1)=-athet(1,i,1,1)
416 athet(2,i,-1,1)=-athet(2,i,1,1)
417 bthet(1,i,-1,1)=bthet(1,i,1,1)
418 bthet(2,i,-1,1)=bthet(2,i,1,1)
422 athet(1,i,-1,-1)=athet(1,-i,1,1)
423 athet(2,i,-1,-1)=-athet(2,-i,1,1)
424 bthet(1,i,-1,-1)=bthet(1,-i,1,1)
425 bthet(2,i,-1,-1)=-bthet(2,-i,1,1)
426 athet(1,i,-1,1)=athet(1,-i,1,1)
427 athet(2,i,-1,1)=-athet(2,-i,1,1)
428 bthet(1,i,-1,1)=-bthet(1,-i,1,1)
429 bthet(2,i,-1,1)=bthet(2,-i,1,1)
430 athet(1,i,1,-1)=-athet(1,-i,1,1)
431 athet(2,i,1,-1)=athet(2,-i,1,1)
432 bthet(1,i,1,-1)=bthet(1,-i,1,1)
433 bthet(2,i,1,-1)=-bthet(2,-i,1,1)
438 polthet(j,i)=polthet(j,-i)
441 gthet(j,i)=gthet(j,-i)
444 c write (2,*) "End reading THETA_PDB"
450 C Read the parameters of the probability distribution/energy expression
451 C of the side chains.
454 read (irotam,'(3x,i3,f8.3)',end=112,err=112) nlob(i),dsc(i)
458 dsc_inv(i)=1.0D0/dsc(i)
469 read(irotam,*,end=112,err=112)(censc(k,1,i),k=1,3),
470 & ((blower(k,l,1),l=1,k),k=1,3)
471 censc(1,1,-i)=censc(1,1,i)
472 censc(2,1,-i)=censc(2,1,i)
473 censc(3,1,-i)=-censc(3,1,i)
475 read (irotam,*,end=112,err=112) bsc(j,i)
476 read (irotam,*,end=112,err=112) (censc(k,j,i),k=1,3),
477 & ((blower(k,l,j),l=1,k),k=1,3)
478 censc(1,j,-i)=censc(1,j,i)
479 censc(2,j,-i)=censc(2,j,i)
480 censc(3,j,-i)=-censc(3,j,i)
481 C BSC is amplitude of Gaussian
488 akl=akl+blower(k,m,j)*blower(l,m,j)
492 if (((k.eq.3).and.(l.ne.3))
493 & .or.((l.eq.3).and.(k.ne.3))) then
494 gaussc(k,l,j,-i)=-akl
495 gaussc(l,k,j,-i)=-akl
507 write (iout,'(/a)') 'Parameters of side-chain local geometry'
512 write (iout,'(/3a,i2,a,f8.3)') 'Residue type: ',restyp(i),
513 & ' # of gaussian lobes:',nlobi,' dsc:',dsc(i)
514 write (iout,'(1h&,a,3(2h&&,f8.3,2h&&))')
515 & 'log h',(bsc(j,i),j=1,nlobi)
516 write (iout,'(1h&,a,3(1h&,f8.3,1h&,f8.3,1h&,f8.3,1h&))')
517 & 'x',((censc(k,j,i),k=1,3),j=1,nlobi)
519 write (iout,'(2h& ,5(2x,1h&,3(f7.3,1h&)))')
520 & ((gaussc(k,l,j,i),l=1,3),j=1,nlobi)
523 write (iout,'(/a,8x,i1,4(25x,i1))') 'Lobe:',(j,j=1,nlobi)
524 write (iout,'(a,f10.4,4(16x,f10.4))')
525 & 'Center ',(bsc(j,i),j=1,nlobi)
526 write (iout,'(5(2x,3f8.4))') ((censc(k,j,i),k=1,3),
535 C Read scrot parameters for potentials determined from all-atom AM1 calculations
536 C added by Urszula Kozlowska 07/11/2007
539 read (irotam,*,end=112,err=112)
541 read (irotam,*,end=112,err=112)
544 read(irotam,*,end=112,err=112) sc_parmin(j,i)
549 C Read the parameters of the probability distribution/energy expression
550 C of the side chains.
552 c write (2,*) "Start reading ROTAM_PDB"
554 read (irotam_pdb,'(3x,i3,f8.3)',end=112,err=112) nlob(i),dsc(i)
558 dsc_inv(i)=1.0D0/dsc(i)
569 read(irotam_pdb,*,end=112,err=112)(censc(k,1,i),k=1,3),
570 & ((blower(k,l,1),l=1,k),k=1,3)
572 read (irotam_pdb,*,end=112,err=112) bsc(j,i)
573 read (irotam_pdb,*,end=112,err=112) (censc(k,j,i),k=1,3),
574 & ((blower(k,l,j),l=1,k),k=1,3)
581 akl=akl+blower(k,m,j)*blower(l,m,j)
591 c write (2,*) "End reading ROTAM_PDB"
597 C Read torsional parameters in old format
599 read (itorp,*,end=113,err=113) ntortyp,nterm_old
600 if (lprint)write (iout,*) 'ntortyp,nterm',ntortyp,nterm_old
601 read (itorp,*,end=113,err=113) (itortyp(i),i=1,ntyp)
606 read (itorp,*,end=113,err=113) kk,v1(k,j,i),v2(k,j,i)
612 write (iout,'(/a/)') 'Torsional constants:'
615 write (iout,'(2i3,6f10.5)') i,j,(v1(k,i,j),k=1,nterm_old)
616 write (iout,'(6x,6f10.5)') (v2(k,i,j),k=1,nterm_old)
622 C Read torsional parameters
624 read (itorp,*,end=113,err=113) ntortyp
625 read (itorp,*,end=113,err=113) (itortyp(i),i=1,ntyp)
628 itortyp(i)=-itortyp(-i)
630 c write (iout,*) 'ntortyp',ntortyp
632 do j=-ntortyp+1,ntortyp-1
633 read (itorp,*,end=113,err=113) nterm(i,j,iblock),
635 nterm(-i,-j,iblock)=nterm(i,j,iblock)
636 nlor(-i,-j,iblock)=nlor(i,j,iblock)
639 do k=1,nterm(i,j,iblock)
640 read (itorp,*,end=113,err=113) kk,v1(k,i,j,iblock),
642 v1(k,-i,-j,iblock)=v1(k,i,j,iblock)
643 v2(k,-i,-j,iblock)=-v2(k,i,j,iblock)
644 v0ij=v0ij+si*v1(k,i,j,iblock)
646 c write(iout,*) i,j,k,iblock,nterm(i,j,iblock)
647 c write(iout,*) v1(k,-i,-j,iblock),v1(k,i,j,iblock),
648 c &v2(k,-i,-j,iblock),v2(k,i,j,iblock)
650 do k=1,nlor(i,j,iblock)
651 read (itorp,*,end=113,err=113) kk,vlor1(k,i,j),
652 & vlor2(k,i,j),vlor3(k,i,j)
653 v0ij=v0ij+vlor1(k,i,j)/(1+vlor3(k,i,j)**2)
656 v0(-i,-j,iblock)=v0ij
662 write (iout,'(/a/)') 'Torsional constants:'
666 write (iout,*) 'ityp',i,' jtyp',j
667 write (iout,*) 'Fourier constants'
668 do k=1,nterm(i,j,iblock)
669 write (iout,'(2(1pe15.5))') v1(k,i,j,iblock),
672 write (iout,*) 'Lorenz constants'
673 do k=1,nlor(i,j,iblock)
674 write (iout,'(3(1pe15.5))')
675 & vlor1(k,i,j),vlor2(k,i,j),vlor3(k,i,j)
683 C 6/23/01 Read parameters for double torsionals
687 do j=-ntortyp+1,ntortyp-1
688 do k=-ntortyp+1,ntortyp-1
689 read (itordp,'(3a1)',end=114,err=114) t1,t2,t3
690 c write (iout,*) "OK onelett",
693 if (t1.ne.toronelet(i) .or. t2.ne.toronelet(j)
694 & .or. t3.ne.toronelet(k)) then
695 write (iout,*) "Error in double torsional parameter file",
698 call MPI_Finalize(Ierror)
700 stop "Error in double torsional parameter file"
702 read (itordp,*,end=114,err=114) ntermd_1(i,j,k,iblock),
703 & ntermd_2(i,j,k,iblock)
704 ntermd_1(-i,-j,-k,iblock)=ntermd_1(i,j,k,iblock)
705 ntermd_2(-i,-j,-k,iblock)=ntermd_2(i,j,k,iblock)
706 read (itordp,*,end=114,err=114) (v1c(1,l,i,j,k,iblock),l=1,
707 & ntermd_1(i,j,k,iblock))
708 read (itordp,*,end=114,err=114) (v1s(1,l,i,j,k,iblock),l=1,
709 & ntermd_1(i,j,k,iblock))
710 read (itordp,*,end=114,err=114) (v1c(2,l,i,j,k,iblock),l=1,
711 & ntermd_1(i,j,k,iblock))
712 read (itordp,*,end=114,err=114) (v1s(2,l,i,j,k,iblock),l=1,
713 & ntermd_1(i,j,k,iblock))
714 C Martix of D parameters for one dimesional foureir series
715 do l=1,ntermd_1(i,j,k,iblock)
716 v1c(1,l,-i,-j,-k,iblock)=v1c(1,l,i,j,k,iblock)
717 v1s(1,l,-i,-j,-k,iblock)=-v1s(1,l,i,j,k,iblock)
718 v1c(2,l,-i,-j,-k,iblock)=v1c(2,l,i,j,k,iblock)
719 v1s(2,l,-i,-j,-k,iblock)=-v1s(2,l,i,j,k,iblock)
720 c write(iout,*) "whcodze" ,
721 c & v1s(2,l,-i,-j,-k,iblock),v1s(2,l,i,j,k,iblock)
723 read (itordp,*,end=114,err=114) ((v2c(l,m,i,j,k,iblock),
724 & v2c(m,l,i,j,k,iblock),v2s(l,m,i,j,k,iblock),
725 & v2s(m,l,i,j,k,iblock),
726 & m=1,l-1),l=1,ntermd_2(i,j,k,iblock))
727 C Martix of D parameters for two dimesional fourier series
728 do l=1,ntermd_2(i,j,k,iblock)
730 v2c(l,m,-i,-j,-k,iblock)=v2c(l,m,i,j,k,iblock)
731 v2c(m,l,-i,-j,-k,iblock)=v2c(m,l,i,j,k,iblock)
732 v2s(l,m,-i,-j,-k,iblock)=-v2s(l,m,i,j,k,iblock)
733 v2s(m,l,-i,-j,-k,iblock)=-v2s(m,l,i,j,k,iblock)
742 write (iout,*) 'Constants for double torsionals'
745 do j=-ntortyp+1,ntortyp-1
746 do k=-ntortyp+1,ntortyp-1
747 write (iout,*) 'ityp',i,' jtyp',j,' ktyp',k,
748 & ' nsingle',ntermd_1(i,j,k,iblock),
749 & ' ndouble',ntermd_2(i,j,k,iblock)
751 write (iout,*) 'Single angles:'
752 do l=1,ntermd_1(i,j,k,iblock)
753 write (iout,'(i5,2f10.5,5x,2f10.5,5x,2f10.5)') l,
754 & v1c(1,l,i,j,k,iblock),v1s(1,l,i,j,k,iblock),
755 & v1c(2,l,i,j,k,iblock),v1s(2,l,i,j,k,iblock),
756 & v1s(1,l,-i,-j,-k,iblock),v1s(2,l,-i,-j,-k,iblock)
759 write (iout,*) 'Pairs of angles:'
760 write (iout,'(3x,20i10)') (l,l=1,ntermd_2(i,j,k,iblock))
761 do l=1,ntermd_2(i,j,k,iblock)
762 write (iout,'(i5,20f10.5)')
763 & l,(v2c(l,m,i,j,k,iblock),m=1,ntermd_2(i,j,k,iblock))
766 write (iout,'(3x,20i10)') (l,l=1,ntermd_2(i,j,k,iblock))
767 do l=1,ntermd_2(i,j,k,iblock)
768 write (iout,'(i5,20f10.5)')
769 & l,(v2s(l,m,i,j,k,iblock),m=1,ntermd_2(i,j,k,iblock)),
770 & (v2s(l,m,-i,-j,-k,iblock),m=1,ntermd_2(i,j,k,iblock))
779 C Read of Side-chain backbone correlation parameters
780 C Modified 11 May 2012 by Adasko
783 read (isccor,*,end=119,err=119) nsccortyp
785 read (isccor,*,end=119,err=119) (isccortyp(i),i=1,ntyp)
787 isccortyp(i)=-isccortyp(-i)
789 iscprol=isccortyp(20)
790 c write (iout,*) 'ntortyp',ntortyp
792 cc maxinter is maximum interaction sites
796 read (isccor,*,end=119,err=119)
797 &nterm_sccor(i,j),nlor_sccor(i,j)
803 nterm_sccor(-i,j)=nterm_sccor(i,j)
804 nterm_sccor(-i,-j)=nterm_sccor(i,j)
805 nterm_sccor(i,-j)=nterm_sccor(i,j)
806 do k=1,nterm_sccor(i,j)
807 read (isccor,*,end=119,err=119) kk,v1sccor(k,l,i,j)
809 if (j.eq.iscprol) then
810 if (i.eq.isccortyp(10)) then
811 v1sccor(k,l,i,-j)=v1sccor(k,l,i,j)
812 v2sccor(k,l,i,-j)=-v2sccor(k,l,i,j)
814 v1sccor(k,l,i,-j)=v1sccor(k,l,i,j)*0.5d0
815 & +v2sccor(k,l,i,j)*dsqrt(0.75d0)
816 v2sccor(k,l,i,-j)=-v2sccor(k,l,i,j)*0.5d0
817 & +v1sccor(k,l,i,j)*dsqrt(0.75d0)
818 v1sccor(k,l,-i,-j)=v1sccor(k,l,i,j)
819 v2sccor(k,l,-i,-j)=-v2sccor(k,l,i,j)
820 v1sccor(k,l,-i,j)=v1sccor(k,l,i,-j)
821 v2sccor(k,l,-i,j)=-v2sccor(k,l,i,-j)
824 if (i.eq.isccortyp(10)) then
825 v1sccor(k,l,i,-j)=v1sccor(k,l,i,j)
826 v2sccor(k,l,i,-j)=-v2sccor(k,l,i,j)
828 if (j.eq.isccortyp(10)) then
829 v1sccor(k,l,-i,j)=v1sccor(k,l,i,j)
830 v2sccor(k,l,-i,j)=-v2sccor(k,l,i,j)
832 v1sccor(k,l,i,-j)=-v1sccor(k,l,i,j)
833 v2sccor(k,l,i,-j)=-v2sccor(k,l,i,j)
834 v1sccor(k,l,-i,-j)=v1sccor(k,l,i,j)
835 v2sccor(k,l,-i,-j)=-v2sccor(k,l,i,j)
836 v1sccor(k,l,-i,j)=v1sccor(k,l,i,-j)
837 v2sccor(k,l,-i,j)=-v2sccor(k,l,i,-j)
841 v0ijsccor=v0ijsccor+si*v1sccor(k,l,i,j)
842 v0ijsccor1=v0ijsccor+si*v1sccor(k,l,-i,j)
843 v0ijsccor2=v0ijsccor+si*v1sccor(k,l,i,-j)
844 v0ijsccor3=v0ijsccor+si*v1sccor(k,l,-i,-j)
847 do k=1,nlor_sccor(i,j)
848 read (isccor,*,end=119,err=119) kk,vlor1sccor(k,i,j),
849 & vlor2sccor(k,i,j),vlor3sccor(k,i,j)
850 v0ijsccor=v0ijsccor+vlor1sccor(k,i,j)/
851 &(1+vlor3sccor(k,i,j)**2)
853 v0sccor(l,i,j)=v0ijsccor
854 v0sccor(l,-i,j)=v0ijsccor1
855 v0sccor(l,i,-j)=v0ijsccor2
856 v0sccor(l,-i,-j)=v0ijsccor3
862 read (isccor,*,end=119,err=119) (isccortyp(i),i=1,ntyp)
863 c write (iout,*) 'ntortyp',ntortyp
865 cc maxinter is maximum interaction sites
869 read (isccor,*,end=119,err=119)
870 & nterm_sccor(i,j),nlor_sccor(i,j)
874 do k=1,nterm_sccor(i,j)
875 read (isccor,*,end=119,err=119) kk,v1sccor(k,l,i,j)
877 v0ijsccor=v0ijsccor+si*v1sccor(k,l,i,j)
880 do k=1,nlor_sccor(i,j)
881 read (isccor,*,end=119,err=119) kk,vlor1sccor(k,i,j),
882 & vlor2sccor(k,i,j),vlor3sccor(k,i,j)
883 v0ijsccor=v0ijsccor+vlor1sccor(k,i,j)/
884 &(1+vlor3sccor(k,i,j)**2)
886 v0sccor(l,i,j)=v0ijsccor
894 write (iout,'(/a/)') 'Torsional constants:'
898 write (iout,*) 'ityp',i,' jtyp',j
899 write (iout,*) 'Fourier constants'
900 do k=1,nterm_sccor(i,j)
901 write (iout,'(2(1pe15.5))') v1sccor(k,l,i,j),v2sccor(k,l,i,j)
903 write (iout,*) 'Lorenz constants'
904 do k=1,nlor_sccor(i,j)
905 write (iout,'(3(1pe15.5))')
906 & vlor1sccor(k,i,j),vlor2sccor(k,i,j),vlor3sccor(k,i,j)
914 C 9/18/99 (AL) Read coefficients of the Fourier expansion of the local
915 C interaction energy of the Gly, Ala, and Pro prototypes.
919 write (iout,*) "Coefficients of the cumulants"
921 read (ifourier,*) nloctyp
924 read (ifourier,*,end=115,err=115)
925 read (ifourier,*,end=115,err=115) (b(ii,i),ii=1,13)
927 read (ifourier,*,end=115,err=115) (bnew1(ii,1,i),ii=1,3)
928 read (ifourier,*,end=115,err=115) (bnew2(ii,1,i),ii=1,3)
929 read (ifourier,*,end=115,err=115) (bnew1(ii,2,i),ii=1,1)
930 read (ifourier,*,end=115,err=115) (bnew2(ii,2,i),ii=1,1)
931 read (ifourier,*,end=115,err=115) (eenew(ii,i),ii=1,1)
934 write (iout,*) 'Type',i
935 write (iout,'(a,i2,a,f10.5)') ('b(',ii,')=',b(ii,i),ii=1,13)
947 B1tilde(1,i) = b(3,i)
948 B1tilde(2,i) =-b(5,i)
949 B1tilde(1,-i) =-b(3,i)
950 B1tilde(2,-i) =b(5,i)
973 Ctilde(2,1,i)=-b(9,i)
975 Ctilde(1,1,-i)=b(7,i)
976 Ctilde(1,2,-i)=-b(9,i)
977 Ctilde(2,1,-i)=b(9,i)
978 Ctilde(2,2,-i)=b(7,i)
980 c Ctilde(1,1,i)=0.0d0
981 c Ctilde(1,2,i)=0.0d0
982 c Ctilde(2,1,i)=0.0d0
983 c Ctilde(2,2,i)=0.0d0
998 Dtilde(2,1,i)=-b(8,i)
1000 Dtilde(1,1,-i)=b(6,i)
1001 Dtilde(1,2,-i)=-b(8,i)
1002 Dtilde(2,1,-i)=b(8,i)
1003 Dtilde(2,2,-i)=b(6,i)
1005 c Dtilde(1,1,i)=0.0d0
1006 c Dtilde(1,2,i)=0.0d0
1007 c Dtilde(2,1,i)=0.0d0
1008 c Dtilde(2,2,i)=0.0d0
1009 EEold(1,1,i)= b(10,i)+b(11,i)
1010 EEold(2,2,i)=-b(10,i)+b(11,i)
1011 EEold(2,1,i)= b(12,i)-b(13,i)
1012 EEold(1,2,i)= b(12,i)+b(13,i)
1013 EEold(1,1,-i)= b(10,i)+b(11,i)
1014 EEold(2,2,-i)=-b(10,i)+b(11,i)
1015 EEold(2,1,-i)=-b(12,i)+b(13,i)
1016 EEold(1,2,-i)=-b(12,i)-b(13,i)
1021 c ee(2,1,i)=ee(1,2,i)
1026 write (iout,*) 'Type',i
1028 write(iout,*) B1(1,i),B1(2,i)
1030 write(iout,*) B2(1,i),B2(2,i)
1033 write (iout,'(2f10.5)') CC(j,1,i),CC(j,2,i)
1037 write (iout,'(2f10.5)') DD(j,1,i),DD(j,2,i)
1041 write (iout,'(2f10.5)') EEold(j,1,i),EEold(j,2,i)
1048 C Read electrostatic-interaction parameters
1052 write (iout,'(/a)') 'Electrostatic interaction constants:'
1053 write (iout,'(1x,a,1x,a,10x,a,11x,a,11x,a,11x,a)')
1054 & 'IT','JT','APP','BPP','AEL6','AEL3'
1056 read (ielep,*,end=116,err=116) ((epp(i,j),j=1,2),i=1,2)
1057 read (ielep,*,end=116,err=116) ((rpp(i,j),j=1,2),i=1,2)
1058 read (ielep,*,end=116,err=116) ((elpp6(i,j),j=1,2),i=1,2)
1059 read (ielep,*,end=116,err=116) ((elpp3(i,j),j=1,2),i=1,2)
1064 app (i,j)=epp(i,j)*rri*rri
1065 bpp (i,j)=-2.0D0*epp(i,j)*rri
1066 ael6(i,j)=elpp6(i,j)*4.2D0**6
1067 ael3(i,j)=elpp3(i,j)*4.2D0**3
1069 if (lprint) write(iout,'(2i3,4(1pe15.4))')i,j,app(i,j),bpp(i,j),
1070 & ael6(i,j),ael3(i,j)
1075 C Read side-chain interaction parameters.
1077 read (isidep,*,end=117,err=117) ipot,expon
1078 if (ipot.lt.1 .or. ipot.gt.5) then
1079 write (iout,'(2a)') 'Error while reading SC interaction',
1080 & 'potential file - unknown potential type.'
1082 call MPI_Finalize(Ierror)
1088 & write(iout,'(/3a,2i3)') 'Potential is ',potname(ipot),
1089 & ', exponents are ',expon,2*expon
1090 goto (10,20,30,30,40) ipot
1091 C----------------------- LJ potential ---------------------------------
1092 10 read (isidep,*,end=116,err=116)((eps(i,j),j=i,ntyp),i=1,ntyp),
1093 & (sigma0(i),i=1,ntyp)
1095 write (iout,'(/a/)') 'Parameters of the LJ potential:'
1096 write (iout,'(a/)') 'The epsilon array:'
1097 call printmat(ntyp,ntyp,ntyp,iout,restyp,eps)
1098 write (iout,'(/a)') 'One-body parameters:'
1099 write (iout,'(a,4x,a)') 'residue','sigma'
1100 write (iout,'(a3,6x,f10.5)') (restyp(i),sigma0(i),i=1,ntyp)
1103 C----------------------- LJK potential --------------------------------
1104 20 read (isidep,*,end=116,err=116)((eps(i,j),j=i,ntyp),i=1,ntyp),
1105 & (sigma0(i),i=1,ntyp),(rr0(i),i=1,ntyp)
1107 write (iout,'(/a/)') 'Parameters of the LJK potential:'
1108 write (iout,'(a/)') 'The epsilon array:'
1109 call printmat(ntyp,ntyp,ntyp,iout,restyp,eps)
1110 write (iout,'(/a)') 'One-body parameters:'
1111 write (iout,'(a,4x,2a)') 'residue',' sigma ',' r0 '
1112 write (iout,'(a3,6x,2f10.5)') (restyp(i),sigma0(i),rr0(i),
1116 C---------------------- GB or BP potential -----------------------------
1118 read (isidep,*,end=116,err=116)(eps(i,j),j=i,ntyp)
1120 read (isidep,*,end=116,err=116)(sigma0(i),i=1,ntyp)
1121 read (isidep,*,end=116,err=116)(sigii(i),i=1,ntyp)
1122 read (isidep,*,end=116,err=116)(chip(i),i=1,ntyp)
1123 read (isidep,*,end=116,err=116)(alp(i),i=1,ntyp)
1124 C now we start reading lipid
1126 read (isidep,*,end=1161,err=1161)(epslip(i,j),j=i,ntyp)
1127 C print *,"WARNING!!"
1129 C epslip(i,j)=epslip(i,j)+0.05d0
1132 c write(iout,*) epslip(1,1),"OK?"
1133 C For the GB potential convert sigma'**2 into chi'
1136 chip(i)=(chip(i)-1.0D0)/(chip(i)+1.0D0)
1140 write (iout,'(/a/)') 'Parameters of the BP potential:'
1141 write (iout,'(a/)') 'The epsilon array:'
1142 call printmat(ntyp,ntyp,ntyp,iout,restyp,eps)
1143 write (iout,'(/a)') 'One-body parameters:'
1144 write (iout,'(a,4x,4a)') 'residue',' sigma ','s||/s_|_^2',
1146 write (iout,'(a3,6x,4f10.5)') (restyp(i),sigma0(i),sigii(i),
1147 & chip(i),alp(i),i=1,ntyp)
1150 C--------------------- GBV potential -----------------------------------
1151 40 read (isidep,*,end=116,err=116)((eps(i,j),j=i,ntyp),i=1,ntyp),
1152 & (sigma0(i),i=1,ntyp),(rr0(i),i=1,ntyp),(sigii(i),i=1,ntyp),
1153 & (chip(i),i=1,ntyp),(alp(i),i=1,ntyp)
1155 write (iout,'(/a/)') 'Parameters of the GBV potential:'
1156 write (iout,'(a/)') 'The epsilon array:'
1157 call printmat(ntyp,ntyp,ntyp,iout,restyp,eps)
1158 write (iout,'(/a)') 'One-body parameters:'
1159 write (iout,'(a,4x,5a)') 'residue',' sigma ',' r0 ',
1160 & 's||/s_|_^2',' chip ',' alph '
1161 write (iout,'(a3,6x,5f10.5)') (restyp(i),sigma0(i),rr0(i),
1162 & sigii(i),chip(i),alp(i),i=1,ntyp)
1166 C-----------------------------------------------------------------------
1167 C Calculate the "working" parameters of SC interactions.
1171 epslip(i,j)=epslip(j,i)
1176 sigma(i,j)=dsqrt(sigma0(i)**2+sigma0(j)**2)
1177 sigma(j,i)=sigma(i,j)
1178 rs0(i,j)=dwa16*sigma(i,j)
1182 if (lprint) write (iout,'(/a/10x,7a/72(1h-))')
1183 & 'Working parameters of the SC interactions:',
1184 & ' a ',' b ',' augm ',' sigma ',' r0 ',
1189 if (ipot.eq.1 .or. ipot.eq.3 .or. ipot.eq.4) then
1198 sigeps=dsign(1.0D0,epsij)
1200 aa_aq(i,j)=epsij*rrij*rrij
1201 bb_aq(i,j)=-sigeps*epsij*rrij
1202 aa_aq(j,i)=aa_aq(i,j)
1203 bb_aq(j,i)=bb_aq(i,j)
1204 epsijlip=epslip(i,j)
1205 sigeps=dsign(1.0D0,epsijlip)
1206 epsijlip=dabs(epsijlip)
1207 aa_lip(i,j)=epsijlip*rrij*rrij
1208 bb_lip(i,j)=-sigeps*epsijlip*rrij
1209 aa_lip(j,i)=aa_lip(i,j)
1210 bb_lip(j,i)=bb_lip(i,j)
1212 sigt1sq=sigma0(i)**2
1213 sigt2sq=sigma0(j)**2
1216 ratsig1=sigt2sq/sigt1sq
1217 ratsig2=1.0D0/ratsig1
1218 chi(i,j)=(sigii1-1.0D0)/(sigii1+ratsig1)
1219 if (j.gt.i) chi(j,i)=(sigii2-1.0D0)/(sigii2+ratsig2)
1220 rsum_max=dsqrt(sigii1*sigt1sq+sigii2*sigt2sq)
1224 c if (ipot.eq.1 .or. ipot.eq.3 .or. ipot.eq.4) then
1225 sigmaii(i,j)=rsum_max
1226 sigmaii(j,i)=rsum_max
1228 c sigmaii(i,j)=r0(i,j)
1229 c sigmaii(j,i)=r0(i,j)
1231 cd write (iout,*) i,j,r0(i,j),sigma(i,j),rsum_max
1232 if ((ipot.eq.2 .or. ipot.eq.5) .and. r0(i,j).gt.rsum_max) then
1233 r_augm=sigma(i,j)*(rrij-sigma(i,j))/rrij
1234 augm(i,j)=epsij*r_augm**(2*expon)
1235 c augm(i,j)=0.5D0**(2*expon)*aa(i,j)
1242 write (iout,'(2(a3,2x),3(1pe10.3),5(0pf8.3))')
1243 & restyp(i),restyp(j),aa_aq(i,j),bb_aq(i,j),augm(i,j),
1244 & sigma(i,j),r0(i,j),chi(i,j),chi(j,i)
1250 C Define the SC-p interaction constants (hard-coded; old style)
1253 C "Soft" SC-p repulsion (causes helices to be too flat, but facilitates
1255 c aad(i,1)=0.3D0*4.0D0**12
1256 C Following line for constants currently implemented
1257 C "Hard" SC-p repulsion (gives correct turn spacing in helices)
1258 aad(i,1)=1.5D0*4.0D0**12
1259 c aad(i,1)=0.17D0*5.6D0**12
1261 C "Soft" SC-p repulsion
1263 C Following line for constants currently implemented
1264 c aad(i,1)=0.3D0*4.0D0**6
1265 C "Hard" SC-p repulsion
1266 bad(i,1)=3.0D0*4.0D0**6
1267 c bad(i,1)=-2.0D0*0.17D0*5.6D0**6
1276 C 8/9/01 Read the SC-p interaction constants from file
1279 read (iscpp,*,end=118,err=118) (eps_scp(i,j),rscp(i,j),j=1,2)
1282 aad(i,1)=dabs(eps_scp(i,1))*rscp(i,1)**12
1283 aad(i,2)=dabs(eps_scp(i,2))*rscp(i,2)**12
1284 bad(i,1)=-2*eps_scp(i,1)*rscp(i,1)**6
1285 bad(i,2)=-2*eps_scp(i,2)*rscp(i,2)**6
1289 write (iout,*) "Parameters of SC-p interactions:"
1291 write (iout,'(4f8.3,4e12.4)') eps_scp(i,1),rscp(i,1),
1292 & eps_scp(i,2),rscp(i,2),aad(i,1),bad(i,1),aad(i,2),bad(i,2)
1298 C Define the constants of the disulfide bridge
1302 c Old arbitrary potential - commented out.
1307 c Constants of the disulfide-bond potential determined based on the RHF/6-31G**
1308 c energy surface of diethyl disulfide.
1309 c A. Liwo and U. Kozlowska, 11/24/03
1326 write (iout,'(/a)') "Disulfide bridge parameters:"
1327 write (iout,'(a,f10.2)') 'S-S bridge energy: ',ebr
1328 write (iout,'(2(a,f10.2))') 'd0cm:',d0cm,' akcm:',akcm
1329 write (iout,'(2(a,f10.2))') 'akth:',akth,' akct:',akct
1330 write (iout,'(3(a,f10.2))') 'v1ss:',v1ss,' v2ss:',v2ss,
1334 111 write (iout,*) "Error reading bending energy parameters."
1336 112 write (iout,*) "Error reading rotamer energy parameters."
1338 113 write (iout,*) "Error reading torsional energy parameters."
1340 114 write (iout,*) "Error reading double torsional energy parameters."
1343 & "Error reading cumulant (multibody energy) parameters."
1345 116 write (iout,*) "Error reading electrostatic energy parameters."
1347 1161 write (iout,*) "Error reading electrostatic energy parameters.Lip"
1349 117 write (iout,*) "Error reading side chain interaction parameters."
1351 118 write (iout,*) "Error reading SCp interaction parameters."
1353 119 write (iout,*) "Error reading SCCOR parameters"
1356 call MPI_Finalize(Ierror)
1363 subroutine getenv_loc(var, val)
1364 character(*) var, val
1367 character(2000) line
1370 open (196,file='env',status='old',readonly,shared)
1372 c write(*,*)'looking for ',var
1373 10 read(196,*,err=11,end=11)line
1374 iread=index(line,var)
1375 c write(*,*)iread,' ',var,' ',line
1376 if (iread.eq.0) go to 10
1377 c write(*,*)'---> ',line
1383 iread=iread+ilen(var)+1
1384 read (line(iread:),*,err=12,end=12) val
1385 c write(*,*)'OK: ',var,' = ',val
1391 #elif (defined CRAY)
1392 integer lennam,lenval,ierror
1394 c getenv using a POSIX call, useful on the T3D
1395 c Sept 1996, comment out error check on advice of H. Pritchard
1398 if(lennam.le.0) stop '--error calling getenv--'
1399 call pxfgetenv(var,lennam,val,lenval,ierror)
1400 c-HP- if(ierror.ne.0) stop '--error returned by pxfgetenv--'
1402 call getenv(var,val)