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"/
32 dimension blower(3,3,maxlob)
34 character*3 lancuch,ucase
36 C For printing parameters after they are read set the following in the UNRES
39 C setenv PRINT_PARM YES
41 C To print parameters in LaTeX format rather than as ASCII tables:
45 call getenv_loc("PRINT_PARM",lancuch)
46 lprint = (ucase(lancuch).eq."YES" .or. ucase(lancuch).eq."Y")
47 call getenv_loc("LATEX",lancuch)
48 LaTeX = (ucase(lancuch).eq."YES" .or. ucase(lancuch).eq."Y")
50 dwa16=2.0d0**(1.0d0/6.0d0)
52 C Assign virtual-bond length
57 c Read the virtual-bond parameters, masses, and moments of inertia
58 c and Stokes' radii of the peptide group and side chains
61 read (ibond,*) vbldp0,akp,mp,ip,pstok
64 read (ibond,*) vbldsc0(1,i),aksc(1,i),msc(i),isc(i),restok(i)
69 dsc_inv(i)=1.0D0/dsc(i)
73 read (ibond,*) junk,vbldp0,akp,rjunk,mp,ip,pstok
75 read (ibond,*) nbondterm(i),(vbldsc0(j,i),aksc(j,i),abond0(j,i),
76 & j=1,nbondterm(i)),msc(i),isc(i),restok(i)
81 dsc_inv(i)=1.0D0/dsc(i)
86 write(iout,'(/a/)')"Dynamic constants of the interaction sites:"
87 write (iout,'(a10,a3,6a10)') 'Type','N','VBL','K','A0','mass',
89 write(iout,'(a10,i3,6f10.5)') "p",1,vbldp0,akp,0.0d0,mp,ip,pstok
91 write (iout,'(a10,i3,6f10.5)') restyp(i),nbondterm(i),
92 & vbldsc0(1,i),aksc(1,i),abond0(1,i),msc(i),isc(i),restok(i)
94 write (iout,'(13x,3f10.5)')
95 & vbldsc0(j,i),aksc(j,i),abond0(j,i)
101 C Read the parameters of the probability distribution/energy expression
102 C of the virtual-bond valence angles theta
105 read (ithep,*,err=111,end=111) a0thet(i),(athet(j,i),j=1,2),
107 read (ithep,*,err=111,end=111) (polthet(j,i),j=0,3)
108 read (ithep,*,err=111,end=111) (gthet(j,i),j=1,3)
109 read (ithep,*,err=111,end=111) theta0(i),sig0(i),sigc0(i)
116 & 'Parameters of the virtual-bond valence angles:'
117 write (iout,'(/a/9x,5a/79(1h-))') 'Fourier coefficients:',
118 & ' ATHETA0 ',' A1 ',' A2 ',
121 write(iout,'(a3,i4,2x,5(1pe14.5))') restyp(i),i,
122 & a0thet(i),(athet(j,i),j=1,2),(bthet(j,i),j=1,2)
124 write (iout,'(/a/9x,5a/79(1h-))')
125 & 'Parameters of the expression for sigma(theta_c):',
126 & ' ALPH0 ',' ALPH1 ',' ALPH2 ',
127 & ' ALPH3 ',' SIGMA0C '
129 write (iout,'(a3,i4,2x,5(1pe14.5))') restyp(i),i,
130 & (polthet(j,i),j=0,3),sigc0(i)
132 write (iout,'(/a/9x,5a/79(1h-))')
133 & 'Parameters of the second gaussian:',
134 & ' THETA0 ',' SIGMA0 ',' G1 ',
137 write (iout,'(a3,i4,2x,5(1pe14.5))') restyp(i),i,theta0(i),
138 & sig0(i),(gthet(j,i),j=1,3)
142 & 'Parameters of the virtual-bond valence angles:'
143 write (iout,'(/a/9x,5a/79(1h-))')
144 & 'Coefficients of expansion',
145 & ' theta0 ',' a1*10^2 ',' a2*10^2 ',
146 & ' b1*10^1 ',' b2*10^1 '
148 write(iout,'(a3,1h&,2x,5(f8.3,1h&))') restyp(i),
149 & a0thet(i),(100*athet(j,i),j=1,2),(10*bthet(j,i),j=1,2)
151 write (iout,'(/a/9x,5a/79(1h-))')
152 & 'Parameters of the expression for sigma(theta_c):',
153 & ' alpha0 ',' alph1 ',' alph2 ',
154 & ' alhp3 ',' sigma0c '
156 write (iout,'(a3,1h&,2x,5(1pe12.3,1h&))') restyp(i),
157 & (polthet(j,i),j=0,3),sigc0(i)
159 write (iout,'(/a/9x,5a/79(1h-))')
160 & 'Parameters of the second gaussian:',
161 & ' theta0 ',' sigma0*10^2 ',' G1*10^-1',
164 write (iout,'(a3,1h&,2x,5(f8.3,1h&))') restyp(i),theta0(i),
165 & 100*sig0(i),gthet(1,i)*0.1D0,gthet(2,i),gthet(3,i)*10.0D0
171 C Read the parameters of Utheta determined from ab initio surfaces
172 C Kozlowska et al., J. Phys.: Condens. Matter 19 (2007) 285203
174 read (ithep,*,err=111,end=111) nthetyp,ntheterm,ntheterm2,
175 & ntheterm3,nsingle,ndouble
176 nntheterm=max0(ntheterm,ntheterm2,ntheterm3)
177 read (ithep,*,err=111,end=111) (ithetyp(i),i=1,ntyp1)
179 ithetyp(i)=-ithetyp(-i)
182 do i=-maxthetyp,maxthetyp
183 do j=-maxthetyp,maxthetyp
184 do k=-maxthetyp,maxthetyp
185 aa0thet(i,j,k,iblock)=0.0d0
187 aathet(l,i,j,k,iblock)=0.0d0
191 bbthet(m,l,i,j,k,iblock)=0.0d0
192 ccthet(m,l,i,j,k,iblock)=0.0d0
193 ddthet(m,l,i,j,k,iblock)=0.0d0
194 eethet(m,l,i,j,k,iblock)=0.0d0
200 ffthet(mm,m,l,i,j,k,iblock)=0.0d0
201 ggthet(mm,m,l,i,j,k,iblock)=0.0d0
209 c VAR:iblock means terminally blocking group 1=non-proline 2=proline
211 c VAR:ntethtyp is type of theta potentials type currently 0=glycine
212 c VAR:1=non-glicyne non-proline 2=proline
213 c VAR:negative values for D-aminoacid
215 do j=-nthetyp,nthetyp
216 do k=-nthetyp,nthetyp
217 read (ithep,'(6a)',end=111,err=111) res1
218 c VAR: aa0thet is variable describing the average value of Foureir
219 c VAR: expansion series
220 read (ithep,*,end=111,err=111) aa0thet(i,j,k,iblock)
221 c VAR: aathet is foureir expansion in theta/2 angle for full formula
222 c VAR: look at the fitting equation in Kozlowska et al., J. Phys.:
223 Condens. Matter 19 (2007) 285203 and Sieradzan et al., unpublished
224 read (ithep,*,end=111,err=111)
225 &(aathet(l,i,j,k,iblock),l=1,ntheterm)
226 read (ithep,*,end=111,err=111)
227 & ((bbthet(lll,ll,i,j,k,iblock),lll=1,nsingle),
228 & (ccthet(lll,ll,i,j,k,iblock),lll=1,nsingle),
229 & (ddthet(lll,ll,i,j,k,iblock),lll=1,nsingle),
230 & (eethet(lll,ll,i,j,k,iblock),lll=1,nsingle),
232 read (ithep,*,end=111,err=111)
233 & (((ffthet(llll,lll,ll,i,j,k,iblock),
234 & ffthet(lll,llll,ll,i,j,k,iblock),
235 & ggthet(llll,lll,ll,i,j,k,iblock),
236 & ggthet(lll,llll,ll,i,j,k,iblock),
237 & llll=1,lll-1),lll=2,ndouble),ll=1,ntheterm3)
244 C For dummy ends assign glycine-type coefficients of theta-only terms; the
245 C coefficients of theta-and-gamma-dependent terms are zero.
246 C IF YOU WANT VALENCE POTENTIALS FOR DUMMY ATOM UNCOMENT BELOW (NOT
247 C RECOMENTDED AFTER VERSION 3.3)
251 c aathet(l,i,j,nthetyp+1,iblock)=aathet(l,i,j,1,iblock)
252 c aathet(l,nthetyp+1,i,j,iblock)=aathet(l,1,i,j,iblock)
254 c aa0thet(i,j,nthetyp+1,iblock)=aa0thet(i,j,1,iblock)
255 c aa0thet(nthetyp+1,i,j,iblock)=aa0thet(1,i,j,iblock)
258 c aathet(l,nthetyp+1,i,nthetyp+1,iblock)=aathet(l,1,i,1,iblock)
260 c aa0thet(nthetyp+1,i,nthetyp+1,iblock)=aa0thet(1,i,1,iblock)
263 C AND COMMENT THE LOOPS BELOW
267 aathet(l,i,j,nthetyp+1,iblock)=0.0d0
268 aathet(l,nthetyp+1,i,j,iblock)=0.0d0
270 aa0thet(i,j,nthetyp+1,iblock)=0.0d0
271 aa0thet(nthetyp+1,i,j,iblock)=0.0d0
274 aathet(l,nthetyp+1,i,nthetyp+1,iblock)=0.0d0
276 aa0thet(nthetyp+1,i,nthetyp+1,iblock)=0.0d0
280 C Substitution for D aminoacids from symmetry.
283 do j=-nthetyp,nthetyp
284 do k=-nthetyp,nthetyp
285 aa0thet(i,j,k,iblock)=aa0thet(-i,-j,-k,iblock)
287 aathet(l,i,j,k,iblock)=aathet(l,-i,-j,-k,iblock)
291 bbthet(lll,ll,i,j,k,iblock)=bbthet(lll,ll,-i,-j,-k,iblock)
292 ccthet(lll,ll,i,j,k,iblock)=-ccthet(lll,ll,-i,-j,-k,iblock)
293 ddthet(lll,ll,i,j,k,iblock)=ddthet(lll,ll,-i,-j,-k,iblock)
294 eethet(lll,ll,i,j,k,iblock)=-eethet(lll,ll,-i,-j,-k,iblock)
300 ffthet(llll,lll,ll,i,j,k,iblock)=
301 & ffthet(llll,lll,ll,-i,-j,-k,iblock)
302 ffthet(lll,llll,ll,i,j,k,iblock)=
303 & ffthet(lll,llll,ll,-i,-j,-k,iblock)
304 ggthet(llll,lll,ll,i,j,k,iblock)=
305 & -ggthet(llll,lll,ll,-i,-j,-k,iblock)
306 ggthet(lll,llll,ll,i,j,k,iblock)=
307 & -ggthet(lll,llll,ll,-i,-j,-k,iblock)
316 C Control printout of the coefficients of virtual-bond-angle potentials
319 write (iout,'(//a)') 'Parameter of virtual-bond-angle potential'
323 write (iout,'(//4a)')
324 & 'Type ',onelett(i),onelett(j),onelett(k)
325 write (iout,'(//a,10x,a)') " l","a[l]"
326 write (iout,'(i2,1pe15.5)') 0,aa0thet(i,j,k,iblock)
327 write (iout,'(i2,1pe15.5)')
328 & (l,aathet(l,i,j,k,iblock),l=1,ntheterm)
330 write (iout,'(//2h m,4(9x,a,3h[m,,i1,1h]))')
331 & "b",l,"c",l,"d",l,"e",l
333 write (iout,'(i2,4(1pe15.5))') m,
334 & bbthet(m,l,i,j,k,iblock),ccthet(m,l,i,j,k,iblock),
335 & ddthet(m,l,i,j,k,iblock),eethet(m,l,i,j,k,iblock)
339 write (iout,'(//3hm,n,4(6x,a,5h[m,n,,i1,1h]))')
340 & "f+",l,"f-",l,"g+",l,"g-",l
343 write (iout,'(i1,1x,i1,4(1pe15.5))') n,m,
344 & ffthet(n,m,l,i,j,k,iblock),
345 & ffthet(m,n,l,i,j,k,iblock),
346 & ggthet(n,m,l,i,j,k,iblock),
347 & ggthet(m,n,l,i,j,k,iblock)
356 write (2,*) "Start reading THETA_PDB"
358 read (ithep_pdb,*,err=111,end=111)
359 & a0thet(i),(athet(j,i,1,1),j=1,2),
360 & (bthet(j,i,1,1),j=1,2)
361 read (ithep_pdb,*,err=111,end=111) (polthet(j,i),j=0,3)
362 read (ithep_pdb,*,err=111,end=111) (gthet(j,i),j=1,3)
363 read (ithep_pdb,*,err=111,end=111) theta0(i),sig0(i),sigc0(i)
367 athet(1,i,1,-1)=athet(1,i,1,1)
368 athet(2,i,1,-1)=athet(2,i,1,1)
369 bthet(1,i,1,-1)=-bthet(1,i,1,1)
370 bthet(2,i,1,-1)=-bthet(2,i,1,1)
371 athet(1,i,-1,1)=-athet(1,i,1,1)
372 athet(2,i,-1,1)=-athet(2,i,1,1)
373 bthet(1,i,-1,1)=bthet(1,i,1,1)
374 bthet(2,i,-1,1)=bthet(2,i,1,1)
378 athet(1,i,-1,-1)=athet(1,-i,1,1)
379 athet(2,i,-1,-1)=-athet(2,-i,1,1)
380 bthet(1,i,-1,-1)=bthet(1,-i,1,1)
381 bthet(2,i,-1,-1)=-bthet(2,-i,1,1)
382 athet(1,i,-1,1)=athet(1,-i,1,1)
383 athet(2,i,-1,1)=-athet(2,-i,1,1)
384 bthet(1,i,-1,1)=-bthet(1,-i,1,1)
385 bthet(2,i,-1,1)=bthet(2,-i,1,1)
386 athet(1,i,1,-1)=-athet(1,-i,1,1)
387 athet(2,i,1,-1)=athet(2,-i,1,1)
388 bthet(1,i,1,-1)=bthet(1,-i,1,1)
389 bthet(2,i,1,-1)=-bthet(2,-i,1,1)
394 polthet(j,i)=polthet(j,-i)
397 gthet(j,i)=gthet(j,-i)
400 write (2,*) "End reading THETA_PDB"
406 C Read the parameters of the probability distribution/energy expression
407 C of the side chains.
410 read (irotam,'(3x,i3,f8.3)',end=112,err=112) nlob(i),dsc(i)
414 dsc_inv(i)=1.0D0/dsc(i)
425 read(irotam,*,end=112,err=112)(censc(k,1,i),k=1,3),
426 & ((blower(k,l,1),l=1,k),k=1,3)
428 read (irotam,*,end=112,err=112) bsc(j,i)
429 read (irotam,*,end=112,err=112) (censc(k,j,i),k=1,3),
430 & ((blower(k,l,j),l=1,k),k=1,3)
437 akl=akl+blower(k,m,j)*blower(l,m,j)
448 write (iout,'(/a)') 'Parameters of side-chain local geometry'
453 write (iout,'(/3a,i2,a,f8.3)') 'Residue type: ',restyp(i),
454 & ' # of gaussian lobes:',nlobi,' dsc:',dsc(i)
455 write (iout,'(1h&,a,3(2h&&,f8.3,2h&&))')
456 & 'log h',(bsc(j,i),j=1,nlobi)
457 write (iout,'(1h&,a,3(1h&,f8.3,1h&,f8.3,1h&,f8.3,1h&))')
458 & 'x',((censc(k,j,i),k=1,3),j=1,nlobi)
460 write (iout,'(2h& ,5(2x,1h&,3(f7.3,1h&)))')
461 & ((gaussc(k,l,j,i),l=1,3),j=1,nlobi)
464 write (iout,'(/a,8x,i1,4(25x,i1))') 'Lobe:',(j,j=1,nlobi)
465 write (iout,'(a,f10.4,4(16x,f10.4))')
466 & 'Center ',(bsc(j,i),j=1,nlobi)
467 write (iout,'(5(2x,3f8.4))') ((censc(k,j,i),k=1,3),
476 C Read scrot parameters for potentials determined from all-atom AM1 calculations
477 C added by Urszula Kozlowska 07/11/2007
480 read (irotam,*,end=112,err=112)
482 read (irotam,*,end=112,err=112)
485 read(irotam,*,end=112,err=112) sc_parmin(j,i)
490 C Read the parameters of the probability distribution/energy expression
491 C of the side chains.
493 write (2,*) "Start reading ROTAM_PDB"
496 read (irotam_pdb,'(3x,i3,f8.3)',end=112,err=112) nlob(i),dsc(i)
500 dsc_inv(i)=1.0D0/dsc(i)
511 read(irotam_pdb,*,end=112,err=112)(censc(k,1,i),k=1,3),
512 & ((blower(k,l,1),l=1,k),k=1,3)
514 read (irotam_pdb,*,end=112,err=112) bsc(j,i)
515 read (irotam_pdb,*,end=112,err=112) (censc(k,j,i),k=1,3),
516 & ((blower(k,l,j),l=1,k),k=1,3)
523 akl=akl+blower(k,m,j)*blower(l,m,j)
533 write (2,*) "Ending reading ROTAM_PDB"
539 C Read torsional parameters in old format
541 read (itorp,*,end=113,err=113) ntortyp,nterm_old
542 if (lprint)write (iout,*) 'ntortyp,nterm',ntortyp,nterm_old
543 read (itorp,*,end=113,err=113) (itortyp(i),i=1,ntyp)
548 read (itorp,*,end=113,err=113) kk,v1(k,j,i),v2(k,j,i)
554 write (iout,'(/a/)') 'Torsional constants:'
557 write (iout,'(2i3,6f10.5)') i,j,(v1(k,i,j),k=1,nterm_old)
558 write (iout,'(6x,6f10.5)') (v2(k,i,j),k=1,nterm_old)
564 C Read torsional parameters
566 read (itorp,*,end=113,err=113) ntortyp
567 read (itorp,*,end=113,err=113) (itortyp(i),i=1,ntyp)
568 c write (iout,*) 'ntortyp',ntortyp
571 read (itorp,*,end=113,err=113) nterm(i,j),nlor(i,j)
575 read (itorp,*,end=113,err=113) kk,v1(k,i,j),v2(k,i,j)
576 v0ij=v0ij+si*v1(k,i,j)
580 read (itorp,*,end=113,err=113) kk,vlor1(k,i,j),
581 & vlor2(k,i,j),vlor3(k,i,j)
582 v0ij=v0ij+vlor1(k,i,j)/(1+vlor3(k,i,j)**2)
589 write (iout,'(/a/)') 'Torsional constants:'
592 write (iout,*) 'ityp',i,' jtyp',j
593 write (iout,*) 'Fourier constants'
595 write (iout,'(2(1pe15.5))') v1(k,i,j),v2(k,i,j)
597 write (iout,*) 'Lorenz constants'
599 write (iout,'(3(1pe15.5))')
600 & vlor1(k,i,j),vlor2(k,i,j),vlor3(k,i,j)
606 C 6/23/01 Read parameters for double torsionals
611 read (itordp,'(3a1)',end=114,err=114) t1,t2,t3
612 c write (iout,*) "OK onelett",
615 if (t1.ne.toronelet(i) .or. t2.ne.toronelet(j)
616 & .or. t3.ne.toronelet(k)) then
617 write (iout,*) "Error in double torsional parameter file",
620 call MPI_Finalize(Ierror)
622 stop "Error in double torsional parameter file"
624 read (itordp,*,end=114,err=114) ntermd_1(i,j,k),
626 read (itordp,*,end=114,err=114) (v1c(1,l,i,j,k),l=1,
628 read (itordp,*,end=114,err=114) (v1s(1,l,i,j,k),l=1,
630 read (itordp,*,end=114,err=114) (v1c(2,l,i,j,k),l=1,
632 read (itordp,*,end=114,err=114) (v1s(2,l,i,j,k),l=1,
634 read (itordp,*,end=114,err=114) ((v2c(l,m,i,j,k),
635 & v2c(m,l,i,j,k),v2s(l,m,i,j,k),v2s(m,l,i,j,k),
636 & m=1,l-1),l=1,ntermd_2(i,j,k))
642 write (iout,*) 'Constants for double torsionals'
645 do j=-ntortyp+1,ntortyp-1
646 do k=-ntortyp+1,ntortyp-1
647 write (iout,*) 'ityp',i,' jtyp',j,' ktyp',k,
648 & ' nsingle',ntermd_1(i,j,k),' ndouble',ntermd_2(i,j,k)
650 write (iout,*) 'Single angles:'
651 do l=1,ntermd_1(i,j,k)
652 write (iout,'(i5,2f10.5,5x,2f10.5)') l,
653 & v1c(1,l,i,j,k),v1s(1,l,i,j,k),
654 & v1c(2,l,i,j,k),v1s(2,l,i,j,k)
657 write (iout,*) 'Pairs of angles:'
658 write (iout,'(3x,20i10)') (l,l=1,ntermd_2(i,j,k))
659 do l=1,ntermd_2(i,j,k)
660 write (iout,'(i5,20f10.5)')
661 & l,(v2c(l,m,i,j,k),m=1,ntermd_2(i,j,k))
664 write (iout,'(3x,20i10)') (l,l=1,ntermd_2(i,j,k))
665 do l=1,ntermd_2(i,j,k)
666 write (iout,'(i5,20f10.5)')
667 & l,(v2s(l,m,i,j,k),m=1,ntermd_2(i,j,k))
675 C Read of Side-chain backbone correlation parameters
676 C Modified 11 May 2012 by Adasko
679 read (isccor,*,end=1113,err=1113) nsccortyp
681 read (isccor,*,end=1113,err=1113) (isccortyp(i),i=1,ntyp)
683 isccortyp(i)=-isccortyp(-i)
685 iscprol=isccortyp(20)
686 c write (iout,*) 'ntortyp',ntortyp
688 cc maxinter is maximum interaction sites
692 read (isccor,*,end=1113,err=1113) nterm_sccor(i,j),
699 nterm_sccor(-i,j)=nterm_sccor(i,j)
700 nterm_sccor(-i,-j)=nterm_sccor(i,j)
701 nterm_sccor(i,-j)=nterm_sccor(i,j)
702 do k=1,nterm_sccor(i,j)
703 read (isccor,*,end=119,err=119) kk,v1sccor(k,l,i,j)
705 if (j.eq.iscprol) then
706 if (i.eq.isccortyp(10)) then
707 v1sccor(k,l,i,-j)=v1sccor(k,l,i,j)
708 v2sccor(k,l,i,-j)=-v2sccor(k,l,i,j)
710 v1sccor(k,l,i,-j)=v1sccor(k,l,i,j)*0.5d0
711 & +v2sccor(k,l,i,j)*dsqrt(0.75d0)
712 v2sccor(k,l,i,-j)=-v2sccor(k,l,i,j)*0.5d0
713 & +v1sccor(k,l,i,j)*dsqrt(0.75d0)
714 v1sccor(k,l,-i,-j)=v1sccor(k,l,i,j)
715 v2sccor(k,l,-i,-j)=-v2sccor(k,l,i,j)
716 v1sccor(k,l,-i,j)=v1sccor(k,l,i,-j)
717 v2sccor(k,l,-i,j)=-v2sccor(k,l,i,-j)
720 if (i.eq.isccortyp(10)) then
721 v1sccor(k,l,i,-j)=v1sccor(k,l,i,j)
722 v2sccor(k,l,i,-j)=-v2sccor(k,l,i,j)
724 if (j.eq.isccortyp(10)) then
725 v1sccor(k,l,-i,j)=v1sccor(k,l,i,j)
726 v2sccor(k,l,-i,j)=-v2sccor(k,l,i,j)
728 v1sccor(k,l,i,-j)=-v1sccor(k,l,i,j)
729 v2sccor(k,l,i,-j)=-v2sccor(k,l,i,j)
730 v1sccor(k,l,-i,-j)=v1sccor(k,l,i,j)
731 v2sccor(k,l,-i,-j)=-v2sccor(k,l,i,j)
732 v1sccor(k,l,-i,j)=v1sccor(k,l,i,-j)
733 v2sccor(k,l,-i,j)=-v2sccor(k,l,i,-j)
737 read (isccor,*,end=1113,err=1113) kk,v1sccor(k,l,i,j)
739 v0ijsccor=v0ijsccor+si*v1sccor(k,l,i,j)
740 v0ijsccor1=v0ijsccor+si*v1sccor(k,l,-i,j)
741 v0ijsccor2=v0ijsccor+si*v1sccor(k,l,i,-j)
742 v0ijsccor3=v0ijsccor+si*v1sccor(k,l,-i,-j)
745 do k=1,nlor_sccor(i,j)
746 read (isccor,*,end=1113,err=1113) kk,vlor1sccor(k,i,j),
747 & vlor2sccor(k,i,j),vlor3sccor(k,i,j)
748 v0ijsccor=v0ijsccor+vlor1sccor(k,i,j)/
749 &(1+vlor3sccor(k,i,j)**2)
751 v0sccor(l,i,j)=v0ijsccor
752 v0sccor(l,-i,j)=v0ijsccor1
753 v0sccor(l,i,-j)=v0ijsccor2
754 v0sccor(l,-i,-j)=v0ijsccor3
760 read (isccor,*,end=119,err=119) (isccortyp(i),i=1,ntyp)
761 c write (iout,*) 'ntortyp',ntortyp
763 cc maxinter is maximum interaction sites
767 read (isccor,*,end=119,err=119)
768 & nterm_sccor(i,j),nlor_sccor(i,j)
772 do k=1,nterm_sccor(i,j)
773 read (isccor,*,end=119,err=119) kk,v1sccor(k,l,i,j)
775 v0ijsccor=v0ijsccor+si*v1sccor(k,l,i,j)
778 do k=1,nlor_sccor(i,j)
779 read (isccor,*,end=119,err=119) kk,vlor1sccor(k,i,j),
780 & vlor2sccor(k,i,j),vlor3sccor(k,i,j)
781 v0ijsccor=v0ijsccor+vlor1sccor(k,i,j)/
782 &(1+vlor3sccor(k,i,j)**2)
784 v0sccor(i,j,iblock)=v0ijsccor
792 write (iout,'(/a/)') 'Torsional constants:'
795 write (iout,*) 'ityp',i,' jtyp',j
796 write (iout,*) 'Fourier constants'
797 do k=1,nterm_sccor(i,j)
798 write (iout,'(2(1pe15.5))') v1sccor(k,l,i,j),v2sccor(k,l,i,j)
800 write (iout,*) 'Lorenz constants'
801 do k=1,nlor_sccor(i,j)
802 write (iout,'(3(1pe15.5))')
803 & vlor1sccor(k,i,j),vlor2sccor(k,i,j),vlor3sccor(k,i,j)
810 C 9/18/99 (AL) Read coefficients of the Fourier expansion of the local
811 C interaction energy of the Gly, Ala, and Pro prototypes.
815 write (iout,*) "Coefficients of the cumulants"
817 read (ifourier,*) nloctyp
819 read (ifourier,*,end=115,err=115)
820 read (ifourier,*,end=115,err=115) (b(ii),ii=1,13)
822 write (iout,*) 'Type',i
823 write (iout,'(a,i2,a,f10.5)') ('b(',ii,')=',b(ii),ii=1,13)
851 c Ctilde(1,1,i)=0.0d0
852 c Ctilde(1,2,i)=0.0d0
853 c Ctilde(2,1,i)=0.0d0
854 c Ctilde(2,2,i)=0.0d0
867 c Dtilde(1,1,i)=0.0d0
868 c Dtilde(1,2,i)=0.0d0
869 c Dtilde(2,1,i)=0.0d0
870 c Dtilde(2,2,i)=0.0d0
871 EE(1,1,i)= b(10)+b(11)
872 EE(2,2,i)=-b(10)+b(11)
873 EE(2,1,i)= b(12)-b(13)
874 EE(1,2,i)= b(12)+b(13)
879 c ee(2,1,i)=ee(1,2,i)
883 write (iout,*) 'Type',i
885 write(iout,*) B1(1,i),B1(2,i)
887 write(iout,*) B2(1,i),B2(2,i)
890 write (iout,'(2f10.5)') CC(j,1,i),CC(j,2,i)
894 write (iout,'(2f10.5)') DD(j,1,i),DD(j,2,i)
898 write (iout,'(2f10.5)') EE(j,1,i),EE(j,2,i)
903 C Read electrostatic-interaction parameters
907 write (iout,'(/a)') 'Electrostatic interaction constants:'
908 write (iout,'(1x,a,1x,a,10x,a,11x,a,11x,a,11x,a)')
909 & 'IT','JT','APP','BPP','AEL6','AEL3'
911 read (ielep,*,end=116,err=116) ((epp(i,j),j=1,2),i=1,2)
912 read (ielep,*,end=116,err=116) ((rpp(i,j),j=1,2),i=1,2)
913 read (ielep,*,end=116,err=116) ((elpp6(i,j),j=1,2),i=1,2)
914 read (ielep,*,end=116,err=116) ((elpp3(i,j),j=1,2),i=1,2)
919 app (i,j)=epp(i,j)*rri*rri
920 bpp (i,j)=-2.0D0*epp(i,j)*rri
921 ael6(i,j)=elpp6(i,j)*4.2D0**6
922 ael3(i,j)=elpp3(i,j)*4.2D0**3
923 if (lprint) write(iout,'(2i3,4(1pe15.4))')i,j,app(i,j),bpp(i,j),
924 & ael6(i,j),ael3(i,j)
928 C Read side-chain interaction parameters.
930 read (isidep,*,end=117,err=117) ipot,expon
931 if (ipot.lt.1 .or. ipot.gt.5) then
932 write (iout,'(2a)') 'Error while reading SC interaction',
933 & 'potential file - unknown potential type.'
935 call MPI_Finalize(Ierror)
941 & write(iout,'(/3a,2i3)') 'Potential is ',potname(ipot),
942 & ', exponents are ',expon,2*expon
943 goto (10,20,30,30,40) ipot
944 C----------------------- LJ potential ---------------------------------
945 10 read (isidep,*,end=116,err=116)((eps(i,j),j=i,ntyp),i=1,ntyp),
946 & (sigma0(i),i=1,ntyp)
948 write (iout,'(/a/)') 'Parameters of the LJ potential:'
949 write (iout,'(a/)') 'The epsilon array:'
950 call printmat(ntyp,ntyp,ntyp,iout,restyp,eps)
951 write (iout,'(/a)') 'One-body parameters:'
952 write (iout,'(a,4x,a)') 'residue','sigma'
953 write (iout,'(a3,6x,f10.5)') (restyp(i),sigma0(i),i=1,ntyp)
956 C----------------------- LJK potential --------------------------------
957 20 read (isidep,*,end=116,err=116)((eps(i,j),j=i,ntyp),i=1,ntyp),
958 & (sigma0(i),i=1,ntyp),(rr0(i),i=1,ntyp)
960 write (iout,'(/a/)') 'Parameters of the LJK potential:'
961 write (iout,'(a/)') 'The epsilon array:'
962 call printmat(ntyp,ntyp,ntyp,iout,restyp,eps)
963 write (iout,'(/a)') 'One-body parameters:'
964 write (iout,'(a,4x,2a)') 'residue',' sigma ',' r0 '
965 write (iout,'(a3,6x,2f10.5)') (restyp(i),sigma0(i),rr0(i),
969 C---------------------- GB or BP potential -----------------------------
971 read (isidep,*,end=116,err=116)(eps(i,j),j=i,ntyp)
973 read (isidep,*,end=116,err=116)(sigma0(i),i=1,ntyp)
974 read (isidep,*,end=116,err=116)(sigii(i),i=1,ntyp)
975 read (isidep,*,end=116,err=116)(chip(i),i=1,ntyp)
976 read (isidep,*,end=116,err=116)(alp(i),i=1,ntyp)
978 c 30 read (isidep,*,end=116,err=116)((eps(i,j),j=i,ntyp),i=1,ntyp),
979 c & (sigma0(i),i=1,ntyp),(sigii(i),i=1,ntyp),(chip(i),i=1,ntyp),
980 c & (alp(i),i=1,ntyp)
981 C For the GB potential convert sigma'**2 into chi'
984 chip(i)=(chip(i)-1.0D0)/(chip(i)+1.0D0)
988 write (iout,'(/a/)') 'Parameters of the BP potential:'
989 write (iout,'(a/)') 'The epsilon array:'
990 call printmat(ntyp,ntyp,ntyp,iout,restyp,eps)
991 write (iout,'(/a)') 'One-body parameters:'
992 write (iout,'(a,4x,4a)') 'residue',' sigma ','s||/s_|_^2',
994 write (iout,'(a3,6x,4f10.5)') (restyp(i),sigma0(i),sigii(i),
995 & chip(i),alp(i),i=1,ntyp)
998 C--------------------- GBV potential -----------------------------------
999 40 read (isidep,*,end=116,err=116)((eps(i,j),j=i,ntyp),i=1,ntyp),
1000 & (sigma0(i),i=1,ntyp),(rr0(i),i=1,ntyp),(sigii(i),i=1,ntyp),
1001 & (chip(i),i=1,ntyp),(alp(i),i=1,ntyp)
1003 write (iout,'(/a/)') 'Parameters of the GBV potential:'
1004 write (iout,'(a/)') 'The epsilon array:'
1005 call printmat(ntyp,ntyp,ntyp,iout,restyp,eps)
1006 write (iout,'(/a)') 'One-body parameters:'
1007 write (iout,'(a,4x,5a)') 'residue',' sigma ',' r0 ',
1008 & 's||/s_|_^2',' chip ',' alph '
1009 write (iout,'(a3,6x,5f10.5)') (restyp(i),sigma0(i),rr0(i),
1010 & sigii(i),chip(i),alp(i),i=1,ntyp)
1014 C-----------------------------------------------------------------------
1015 C Calculate the "working" parameters of SC interactions.
1023 sigma(i,j)=dsqrt(sigma0(i)**2+sigma0(j)**2)
1024 sigma(j,i)=sigma(i,j)
1025 rs0(i,j)=dwa16*sigma(i,j)
1029 if (lprint) write (iout,'(/a/10x,7a/72(1h-))')
1030 & 'Working parameters of the SC interactions:',
1031 & ' a ',' b ',' augm ',' sigma ',' r0 ',
1036 if (ipot.eq.1 .or. ipot.eq.3 .or. ipot.eq.4) then
1045 sigeps=dsign(1.0D0,epsij)
1047 aa(i,j)=epsij*rrij*rrij
1048 bb(i,j)=-sigeps*epsij*rrij
1052 sigt1sq=sigma0(i)**2
1053 sigt2sq=sigma0(j)**2
1056 ratsig1=sigt2sq/sigt1sq
1057 ratsig2=1.0D0/ratsig1
1058 chi(i,j)=(sigii1-1.0D0)/(sigii1+ratsig1)
1059 if (j.gt.i) chi(j,i)=(sigii2-1.0D0)/(sigii2+ratsig2)
1060 rsum_max=dsqrt(sigii1*sigt1sq+sigii2*sigt2sq)
1064 c if (ipot.eq.1 .or. ipot.eq.3 .or. ipot.eq.4) then
1065 sigmaii(i,j)=rsum_max
1066 sigmaii(j,i)=rsum_max
1068 c sigmaii(i,j)=r0(i,j)
1069 c sigmaii(j,i)=r0(i,j)
1071 cd write (iout,*) i,j,r0(i,j),sigma(i,j),rsum_max
1072 if ((ipot.eq.2 .or. ipot.eq.5) .and. r0(i,j).gt.rsum_max) then
1073 r_augm=sigma(i,j)*(rrij-sigma(i,j))/rrij
1074 augm(i,j)=epsij*r_augm**(2*expon)
1075 c augm(i,j)=0.5D0**(2*expon)*aa(i,j)
1082 write (iout,'(2(a3,2x),3(1pe10.3),5(0pf8.3))')
1083 & restyp(i),restyp(j),aa(i,j),bb(i,j),augm(i,j),
1084 & sigma(i,j),r0(i,j),chi(i,j),chi(j,i)
1090 C Define the SC-p interaction constants (hard-coded; old style)
1093 C "Soft" SC-p repulsion (causes helices to be too flat, but facilitates
1095 c aad(i,1)=0.3D0*4.0D0**12
1096 C Following line for constants currently implemented
1097 C "Hard" SC-p repulsion (gives correct turn spacing in helices)
1098 aad(i,1)=1.5D0*4.0D0**12
1099 c aad(i,1)=0.17D0*5.6D0**12
1101 C "Soft" SC-p repulsion
1103 C Following line for constants currently implemented
1104 c aad(i,1)=0.3D0*4.0D0**6
1105 C "Hard" SC-p repulsion
1106 bad(i,1)=3.0D0*4.0D0**6
1107 c bad(i,1)=-2.0D0*0.17D0*5.6D0**6
1116 C 8/9/01 Read the SC-p interaction constants from file
1119 read (iscpp,*,end=118,err=118) (eps_scp(i,j),rscp(i,j),j=1,2)
1122 aad(i,1)=dabs(eps_scp(i,1))*rscp(i,1)**12
1123 aad(i,2)=dabs(eps_scp(i,2))*rscp(i,2)**12
1124 bad(i,1)=-2*eps_scp(i,1)*rscp(i,1)**6
1125 bad(i,2)=-2*eps_scp(i,2)*rscp(i,2)**6
1129 write (iout,*) "Parameters of SC-p interactions:"
1131 write (iout,'(4f8.3,4e12.4)') eps_scp(i,1),rscp(i,1),
1132 & eps_scp(i,2),rscp(i,2),aad(i,1),bad(i,1),aad(i,2),bad(i,2)
1137 C Define the constants of the disulfide bridge
1141 c Old arbitrary potential - commented out.
1146 c Constants of the disulfide-bond potential determined based on the RHF/6-31G**
1147 c energy surface of diethyl disulfide.
1148 c A. Liwo and U. Kozlowska, 11/24/03
1165 write (iout,'(/a)') "Disulfide bridge parameters:"
1166 write (iout,'(a,f10.2)') 'S-S bridge energy: ',ebr
1167 write (iout,'(2(a,f10.2))') 'd0cm:',d0cm,' akcm:',akcm
1168 write (iout,'(2(a,f10.2))') 'akth:',akth,' akct:',akct
1169 write (iout,'(3(a,f10.2))') 'v1ss:',v1ss,' v2ss:',v2ss,
1173 111 write (iout,*) "Error reading bending energy parameters."
1175 112 write (iout,*) "Error reading rotamer energy parameters."
1177 113 write (iout,*) "Error reading torsional energy parameters."
1180 & "Error reading side-chain torsional energy parameters."
1182 114 write (iout,*) "Error reading double torsional energy parameters."
1185 & "Error reading cumulant (multibody energy) parameters."
1187 116 write (iout,*) "Error reading electrostatic energy parameters."
1189 117 write (iout,*) "Error reading side chain interaction parameters."
1191 118 write (iout,*) "Error reading SCp interaction parameters."
1193 119 write (iout,*) "Error reading SCCOR parameters"
1196 call MPI_Finalize(Ierror)
1203 subroutine getenv_loc(var, val)
1204 character(*) var, val
1207 character(2000) line
1210 open (196,file='env',status='old',readonly,shared)
1212 c write(*,*)'looking for ',var
1213 10 read(196,*,err=11,end=11)line
1214 iread=index(line,var)
1215 c write(*,*)iread,' ',var,' ',line
1216 if (iread.eq.0) go to 10
1217 c write(*,*)'---> ',line
1223 iread=iread+ilen(var)+1
1224 read (line(iread:),*,err=12,end=12) val
1225 c write(*,*)'OK: ',var,' = ',val
1231 #elif (defined CRAY)
1232 integer lennam,lenval,ierror
1234 c getenv using a POSIX call, useful on the T3D
1235 c Sept 1996, comment out error check on advice of H. Pritchard
1238 if(lennam.le.0) stop '--error calling getenv--'
1239 call pxfgetenv(var,lennam,val,lenval,ierror)
1240 c-HP- if(ierror.ne.0) stop '--error returned by pxfgetenv--'
1242 call getenv(var,val)