1 subroutine parmread(iparm,*)
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 implicit real*8 (a-h,o-z)
8 include 'DIMENSIONS.ZSCOPT'
9 include 'DIMENSIONS.FREE'
10 include 'COMMON.IOUNITS'
11 include 'COMMON.CHAIN'
12 include 'COMMON.INTERACT'
14 include 'COMMON.LOCAL'
15 include 'COMMON.TORSION'
16 include 'COMMON.FFIELD'
17 include 'COMMON.NAMES'
18 include 'COMMON.SBRIDGE'
19 include 'COMMON.WEIGHTS'
20 include 'COMMON.ENEPS'
21 include 'COMMON.SCCOR'
22 include 'COMMON.SCROT'
24 include 'COMMON.CONTROL'
25 include 'COMMON.LANGEVIN'
27 character*1 onelett(4) /"G","A","P","D"/
28 character*1 toronelet(-2:2) /"p","a","G","A","P"/
30 dimension blower(3,3,maxlob)
31 character*800 controlcard
32 character*256 bondname_t,thetname_t,rotname_t,torname_t,
33 & tordname_t,fouriername_t,elename_t,sidename_t,scpname_t,
43 C Set LPRINT=.TRUE. for debugging
44 dwa16=2.0d0**(1.0d0/6.0d0)
47 C Assign virtual-bond length
51 call card_concat(controlcard,.true.)
54 key = wname(i)(:ilen(wname(i)))
55 call reada(controlcard,key(:ilen(key)),ww(i),1.0d0)
58 write (iout,*) "iparm",iparm," myparm",myparm
59 c If reading not own parameters, skip assignment
60 call reada(controlcard,"D0CM",d0cm,3.78d0)
61 call reada(controlcard,"AKCM",akcm,15.1d0)
62 call reada(controlcard,"AKTH",akth,11.0d0)
63 call reada(controlcard,"AKCT",akct,12.0d0)
64 call reada(controlcard,"V1SS",v1ss,-1.08d0)
65 call reada(controlcard,"V2SS",v2ss,7.61d0)
66 call reada(controlcard,"V3SS",v3ss,13.7d0)
67 call reada(controlcard,"EBR",ebr,-5.50D0)
68 call reada(controlcard,"DTRISS",dtriss,1.0D0)
69 call reada(controlcard,"ATRISS",atriss,0.3D0)
70 call reada(controlcard,"BTRISS",btriss,0.02D0)
71 call reada(controlcard,"CTRISS",ctriss,1.0D0)
72 dyn_ss=(index(controlcard,'DYN_SS').gt.0)
73 write(iout,*) "ATRISS",atriss
74 write(iout,*) "BTRISS",btriss
75 write(iout,*) "CTRISS",ctriss
76 write(iout,*) "DTRISS",dtriss
79 C dyn_ss_mask(i)=.false.
83 c Old arbitrary potential - commented out.
88 c Constants of the disulfide-bond potential determined based on the RHF/6-31G**
89 c energy surface of diethyl disulfide.
90 c A. Liwo and U. Kozlowska, 11/24/03
102 dyn_ssbond_ij(i,j)=1.0d300
105 call reada(controlcard,"HT",Ht,0.0D0)
107 C ss_depth=ebr/wsc-0.25*eps(1,1)
108 C write(iout,*) HT,wsc,eps(1,1),'KURWA'
109 C Ht=Ht/wsc-0.25*eps(1,1)
118 C ss_depth=ebr/whpb-0.25*eps(1,1)*wsc/whpb
121 if (iparm.eq.myparm .or. .not.separate_parset) then
124 c Setup weights for UNRES
147 call card_concat(controlcard,.false.)
149 c Return if not own parameters
151 if (iparm.ne.myparm .and. separate_parset) return
153 call reads(controlcard,"BONDPAR",bondname_t,bondname)
154 open (ibond,file=bondname_t,status='old')
156 call reads(controlcard,"THETPAR",thetname_t,thetname)
157 open (ithep,file=thetname_t,status='old')
159 call reads(controlcard,"ROTPAR",rotname_t,rotname)
160 open (irotam,file=rotname_t,status='old')
162 call reads(controlcard,"TORPAR",torname_t,torname)
163 open (itorp,file=torname_t,status='old')
165 call reads(controlcard,"TORDPAR",tordname_t,tordname)
166 open (itordp,file=tordname_t,status='old')
168 call reads(controlcard,"SCCORPAR",sccorname_t,sccorname)
169 open (isccor,file=sccorname_t,status='old')
171 call reads(controlcard,"FOURIER",fouriername_t,fouriername)
172 open (ifourier,file=fouriername_t,status='old')
174 call reads(controlcard,"ELEPAR",elename_t,elename)
175 open (ielep,file=elename_t,status='old')
177 call reads(controlcard,"SIDEPAR",sidename_t,sidename)
178 open (isidep,file=sidename_t,status='old')
180 call reads(controlcard,"SCPPAR",scpname_t,scpname)
181 open (iscpp,file=scpname_t,status='old')
183 write (iout,*) "Parameter set:",iparm
184 write (iout,*) "Energy-term weights:"
186 write (iout,'(a16,f10.5)') wname(i),ww(i)
188 write (iout,*) "Sidechain potential file : ",
189 & sidename_t(:ilen(sidename_t))
191 write (iout,*) "SCp potential file : ",
192 & scpname_t(:ilen(scpname_t))
194 write (iout,*) "Electrostatic potential file : ",
195 & elename_t(:ilen(elename_t))
196 write (iout,*) "Cumulant coefficient file : ",
197 & fouriername_t(:ilen(fouriername_t))
198 write (iout,*) "Torsional parameter file : ",
199 & torname_t(:ilen(torname_t))
200 write (iout,*) "Double torsional parameter file : ",
201 & tordname_t(:ilen(tordname_t))
202 write (iout,*) "Backbone-rotamer parameter file : ",
203 & sccorname(:ilen(sccorname))
204 write (iout,*) "Bond & inertia constant file : ",
205 & bondname_t(:ilen(bondname_t))
206 write (iout,*) "Bending parameter file : ",
207 & thetname_t(:ilen(thetname_t))
208 write (iout,*) "Rotamer parameter file : ",
209 & rotname_t(:ilen(rotname_t))
212 c Read the virtual-bond parameters, masses, and moments of inertia
213 c and Stokes' radii of the peptide group and side chains
216 read (ibond,*) vbldp0,vbldpdum,akp,mp,ip,pstok
219 read (ibond,*) vbldsc0(1,i),aksc(1,i),msc(i),isc(i),restok(i)
220 dsc(i) = vbldsc0(1,i)
224 dsc_inv(i)=1.0D0/dsc(i)
228 read (ibond,*) ijunk,vbldp0,vbldpdum,akp,rjunk,mp,ip,pstok
230 read (ibond,*) nbondterm(i),(vbldsc0(j,i),aksc(j,i),abond0(j,i),
231 & j=1,nbondterm(i)),msc(i),isc(i),restok(i)
232 dsc(i) = vbldsc0(1,i)
236 dsc_inv(i)=1.0D0/dsc(i)
241 write(iout,'(/a/)')"Force constants virtual bonds:"
242 write (iout,'(a10,a3,6a10)') 'Type','N','VBL','K',
244 write(iout,'(a10,i3,6f10.5)') "p",1,vbldp0,akp,0.0d0
246 write (iout,'(a10,i3,6f10.5)') restyp(i),nbondterm(i),
247 & vbldsc0(1,i),aksc(1,i),abond0(1,i)
249 write (iout,'(13x,3f10.5)')
250 & vbldsc0(j,i),aksc(j,i),abond0(j,i)
256 C Read the parameters of the probability distribution/energy expression
257 C of the virtual-bond valence angles theta
260 read (ithep,*) a0thet(i),(athet(j,i,1,1),j=1,2),
261 & (bthet(j,i,1,1),j=1,2)
262 read (ithep,*) (polthet(j,i),j=0,3)
263 read (ithep,*) (gthet(j,i),j=1,3)
264 read (ithep,*) theta0(i),sig0(i),sigc0(i)
268 athet(1,i,1,-1)=athet(1,i,1,1)
269 athet(2,i,1,-1)=athet(2,i,1,1)
270 bthet(1,i,1,-1)=-bthet(1,i,1,1)
271 bthet(2,i,1,-1)=-bthet(2,i,1,1)
272 athet(1,i,-1,1)=-athet(1,i,1,1)
273 athet(2,i,-1,1)=-athet(2,i,1,1)
274 bthet(1,i,-1,1)=bthet(1,i,1,1)
275 bthet(2,i,-1,1)=bthet(2,i,1,1)
279 athet(1,i,-1,-1)=athet(1,-i,1,1)
280 athet(2,i,-1,-1)=-athet(2,-i,1,1)
281 bthet(1,i,-1,-1)=bthet(1,-i,1,1)
282 bthet(2,i,-1,-1)=-bthet(2,-i,1,1)
283 athet(1,i,-1,1)=athet(1,-i,1,1)
284 athet(2,i,-1,1)=-athet(2,-i,1,1)
285 bthet(1,i,-1,1)=-bthet(1,-i,1,1)
286 bthet(2,i,-1,1)=bthet(2,-i,1,1)
287 athet(1,i,1,-1)=-athet(1,-i,1,1)
288 athet(2,i,1,-1)=athet(2,-i,1,1)
289 bthet(1,i,1,-1)=bthet(1,-i,1,1)
290 bthet(2,i,1,-1)=-bthet(2,-i,1,1)
295 polthet(j,i)=polthet(j,-i)
298 gthet(j,i)=gthet(j,-i)
304 c & 'Parameters of the virtual-bond valence angles:'
305 c write (iout,'(/a/9x,5a/79(1h-))') 'Fourier coefficients:',
306 c & ' ATHETA0 ',' A1 ',' A2 ',
309 c write(iout,'(a3,i4,2x,5(1pe14.5))') restyp(i),i,
310 c & a0thet(i),(athet(j,i),j=1,2),(bthet(j,i),j=1,2)
312 c write (iout,'(/a/9x,5a/79(1h-))')
313 c & 'Parameters of the expression for sigma(theta_c):',
314 c & ' ALPH0 ',' ALPH1 ',' ALPH2 ',
315 c & ' ALPH3 ',' SIGMA0C '
317 c write (iout,'(a3,i4,2x,5(1pe14.5))') restyp(i),i,
318 c & (polthet(j,i),j=0,3),sigc0(i)
320 c write (iout,'(/a/9x,5a/79(1h-))')
321 c & 'Parameters of the second gaussian:',
322 c & ' THETA0 ',' SIGMA0 ',' G1 ',
325 c write (iout,'(a3,i4,2x,5(1pe14.5))') restyp(i),i,theta0(i),
326 c & sig0(i),(gthet(j,i),j=1,3)
329 & 'Parameters of the virtual-bond valence angles:'
330 write (iout,'(/a/9x,5a/79(1h-))')
331 & 'Coefficients of expansion',
332 & ' theta0 ',' a1*10^2 ',' a2*10^2 ',
333 & ' b1*10^1 ',' b2*10^1 '
335 write(iout,'(a3,1h&,2x,5(f8.3,1h&))') restyp(i),
336 & a0thet(i),(100*athet(j,i,1,1),j=1,2),
337 & (10*bthet(j,i,1,1),j=1,2)
339 write (iout,'(/a/9x,5a/79(1h-))')
340 & 'Parameters of the expression for sigma(theta_c):',
341 & ' alpha0 ',' alph1 ',' alph2 ',
342 & ' alhp3 ',' sigma0c '
344 write (iout,'(a3,1h&,2x,5(1pe12.3,1h&))') restyp(i),
345 & (polthet(j,i),j=0,3),sigc0(i)
347 write (iout,'(/a/9x,5a/79(1h-))')
348 & 'Parameters of the second gaussian:',
349 & ' theta0 ',' sigma0*10^2 ',' G1*10^-1',
352 write (iout,'(a3,1h&,2x,5(f8.3,1h&))') restyp(i),theta0(i),
353 & 100*sig0(i),gthet(1,i)*0.1D0,gthet(2,i),gthet(3,i)*10.0D0
358 C Read the parameters of Utheta determined from ab initio surfaces
359 C Kozlowska et al., J. Phys.: Condens. Matter 19 (2007) 285203
361 read (ithep,*) nthetyp,ntheterm,ntheterm2,
362 & ntheterm3,nsingle,ndouble
363 nntheterm=max0(ntheterm,ntheterm2,ntheterm3)
364 read (ithep,*) (ithetyp(i),i=1,ntyp1)
366 ithetyp(i)=-ithetyp(-i)
368 c write (iout,*) "tu dochodze"
370 do i=-maxthetyp,maxthetyp
371 do j=-maxthetyp,maxthetyp
372 do k=-maxthetyp,maxthetyp
373 aa0thet(i,j,k,iblock)=0.0d0
375 aathet(l,i,j,k,iblock)=0.0d0
379 bbthet(m,l,i,j,k,iblock)=0.0d0
380 ccthet(m,l,i,j,k,iblock)=0.0d0
381 ddthet(m,l,i,j,k,iblock)=0.0d0
382 eethet(m,l,i,j,k,iblock)=0.0d0
388 ffthet(mm,m,l,i,j,k,iblock)=0.0d0
389 ggthet(mm,m,l,i,j,k,iblock)=0.0d0
397 C write (iout,*) "KURWA1"
400 do j=-nthetyp,nthetyp
401 do k=-nthetyp,nthetyp
402 read (ithep,'(6a)') res1
403 c write(iout,*) res1,i,j,k
404 read (ithep,*) aa0thet(i,j,k,iblock)
405 read (ithep,*)(aathet(l,i,j,k,iblock),l=1,ntheterm)
407 & ((bbthet(lll,ll,i,j,k,iblock),lll=1,nsingle),
408 & (ccthet(lll,ll,i,j,k,iblock),lll=1,nsingle),
409 & (ddthet(lll,ll,i,j,k,iblock),lll=1,nsingle),
410 & (eethet(lll,ll,i,j,k,iblock),lll=1,nsingle)
413 & (((ffthet(llll,lll,ll,i,j,k,iblock),
414 & ffthet(lll,llll,ll,i,j,k,iblock),
415 & ggthet(llll,lll,ll,i,j,k,iblock)
416 & ,ggthet(lll,llll,ll,i,j,k,iblock),
417 & llll=1,lll-1),lll=2,ndouble),ll=1,ntheterm3)
422 C For dummy ends assign glycine-type coefficients of theta-only terms; the
423 C coefficients of theta-and-gamma-dependent terms are zero.
428 aathet(l,i,j,nthetyp+1,iblock)=0.0d0
429 aathet(l,nthetyp+1,i,j,iblock)=0.0d0
431 aa0thet(i,j,nthetyp+1,iblock)=0.0d0
432 aa0thet(nthetyp+1,i,j,iblock)=0.0d0
435 aathet(l,nthetyp+1,i,nthetyp+1,iblock)=0.0d0
437 aa0thet(nthetyp+1,i,nthetyp+1,iblock)=0.0d0
440 C write(iout,*) "KURWA1.5"
441 C Substitution for D aminoacids from symmetry.
444 do j=-nthetyp,nthetyp
445 do k=-nthetyp,nthetyp
446 aa0thet(i,j,k,iblock)=aa0thet(-i,-j,-k,iblock)
448 aathet(l,i,j,k,iblock)=aathet(l,-i,-j,-k,iblock)
452 bbthet(lll,ll,i,j,k,iblock)=bbthet(lll,ll,-i,-j,-k,iblock)
453 ccthet(lll,ll,i,j,k,iblock)=-ccthet(lll,ll,-i,-j,-k,iblock)
454 ddthet(lll,ll,i,j,k,iblock)=ddthet(lll,ll,-i,-j,-k,iblock)
455 eethet(lll,ll,i,j,k,iblock)=-eethet(lll,ll,-i,-j,-k,iblock)
461 ffthet(llll,lll,ll,i,j,k,iblock)=
462 & ffthet(llll,lll,ll,-i,-j,-k,iblock)
463 ffthet(lll,llll,ll,i,j,k,iblock)=
464 & ffthet(lll,llll,ll,-i,-j,-k,iblock)
465 ggthet(llll,lll,ll,i,j,k,iblock)=
466 & -ggthet(llll,lll,ll,-i,-j,-k,iblock)
467 ggthet(lll,llll,ll,i,j,k,iblock)=
468 & -ggthet(lll,llll,ll,-i,-j,-k,iblock)
478 C Control printout of the coefficients of virtual-bond-angle potentials
481 write (iout,'(//a)') 'Parameter of virtual-bond-angle potential'
485 write (iout,'(//4a)')
486 & 'Type ',onelett(i),onelett(j),onelett(k)
487 write (iout,'(//a,10x,a)') " l","a[l]"
488 write (iout,'(i2,1pe15.5)') 0,aa0thet(i,j,k,iblock)
489 write (iout,'(i2,1pe15.5)')
490 & (l,aathet(l,i,j,k,iblock),l=1,ntheterm)
492 write (iout,'(//2h m,4(9x,a,3h[m,i1,1h]))')
493 & "b",l,"c",l,"d",l,"e",l
495 write (iout,'(i2,4(1pe15.5))') m,
496 & bbthet(m,l,i,j,k,iblock),ccthet(m,l,i,j,k,iblock),
497 & ddthet(m,l,i,j,k,iblock),eethet(m,l,i,j,k,iblock)
501 write (iout,'(//3hm,n,4(6x,a,5h[m,n,i1,1h]))')
502 & "f+",l,"f-",l,"g+",l,"g-",l
505 write (iout,'(i1,1x,i1,4(1pe15.5))') n,m,
506 & ffthet(n,m,l,i,j,k,iblock),
507 & ffthet(m,n,l,i,j,k,iblock),
508 & ggthet(n,m,l,i,j,k,iblock),
509 & ggthet(m,n,l,i,j,k,iblock)
522 C Read the parameters of the probability distribution/energy expression
523 C of the side chains.
526 read (irotam,'(3x,i3,f8.3)') nlob(i),dsc(i)
530 dsc_inv(i)=1.0D0/dsc(i)
541 read(irotam,*)(censc(k,1,i),k=1,3),((blower(k,l,1),l=1,k),k=1,3)
542 censc(1,1,-i)=censc(1,1,i)
543 censc(2,1,-i)=censc(2,1,i)
544 censc(3,1,-i)=-censc(3,1,i)
546 read (irotam,*) bsc(j,i)
547 read (irotam,*) (censc(k,j,i),k=1,3),
548 & ((blower(k,l,j),l=1,k),k=1,3)
549 censc(1,j,-i)=censc(1,j,i)
550 censc(2,j,-i)=censc(2,j,i)
551 censc(3,j,-i)=-censc(3,j,i)
552 C BSC is amplitude of Gaussian
559 akl=akl+blower(k,m,j)*blower(l,m,j)
563 if (((k.eq.3).and.(l.ne.3))
564 & .or.((l.eq.3).and.(k.ne.3))) then
565 gaussc(k,l,j,-i)=-akl
566 gaussc(l,k,j,-i)=-akl
578 write (iout,'(/a)') 'Parameters of side-chain local geometry'
582 write (iout,'(/3a,i2,a,f8.3)') 'Residue type: ',restyp(i),
583 & ' # of gaussian lobes:',nlobi,' dsc:',dsc(i)
584 c write (iout,'(/a,8x,i1,4(25x,i1))') 'Lobe:',(j,j=1,nlobi)
585 c write (iout,'(a,f10.4,4(16x,f10.4))')
586 c & 'Center ',(bsc(j,i),j=1,nlobi)
587 c write (iout,'(5(2x,3f8.4))') ((censc(k,j,i),k=1,3),j=1,nlobi)
588 write (iout,'(1h&,a,3(2h&&,f8.3,2h&&))')
589 & 'log h',(bsc(j,i),j=1,nlobi)
590 write (iout,'(1h&,a,3(1h&,f8.3,1h&,f8.3,1h&,f8.3,1h&))')
591 & 'x',((censc(k,j,i),k=1,3),j=1,nlobi)
598 c blower(k,l,j)=gaussc(ind,j,i)
603 write (iout,'(2h& ,5(2x,1h&,3(f7.3,1h&)))')
604 & ((gaussc(k,l,j,i),l=1,3),j=1,nlobi)
611 C Read scrot parameters for potentials determined from all-atom AM1 calculations
612 C added by Urszula Kozlowska 07/11/2007
620 read(irotam,*) sc_parmin(j,i)
628 C Read torsional parameters in old format
630 read (itorp,*) ntortyp,nterm_old
631 write (iout,*) 'ntortyp,nterm',ntortyp,nterm_old
632 read (itorp,*) (itortyp(i),i=1,ntyp)
637 read (itorp,*) kk,v1(k,j,i),v2(k,j,i)
643 write (iout,'(/a/)') 'Torsional constants:'
646 write (iout,'(2i3,6f10.5)') i,j,(v1(k,i,j),k=1,nterm_old)
647 write (iout,'(6x,6f10.5)') (v2(k,i,j),k=1,nterm_old)
655 C Read torsional parameters
657 read (itorp,*) ntortyp
658 read (itorp,*) (itortyp(i),i=1,ntyp)
659 write (iout,*) 'ntortyp',ntortyp
662 itortyp(i)=-itortyp(-i)
664 c write (iout,*) 'ntortyp',ntortyp
666 do j=-ntortyp+1,ntortyp-1
667 read (itorp,*) nterm(i,j,iblock),
669 nterm(-i,-j,iblock)=nterm(i,j,iblock)
670 nlor(-i,-j,iblock)=nlor(i,j,iblock)
673 do k=1,nterm(i,j,iblock)
674 read (itorp,*) kk,v1(k,i,j,iblock),
676 v1(k,-i,-j,iblock)=v1(k,i,j,iblock)
677 v2(k,-i,-j,iblock)=-v2(k,i,j,iblock)
678 v0ij=v0ij+si*v1(k,i,j,iblock)
681 do k=1,nlor(i,j,iblock)
682 read (itorp,*) kk,vlor1(k,i,j),
683 & vlor2(k,i,j),vlor3(k,i,j)
684 v0ij=v0ij+vlor1(k,i,j)/(1+vlor3(k,i,j)**2)
687 v0(-i,-j,iblock)=v0ij
693 write (iout,'(/a/)') 'Torsional constants:'
696 write (iout,*) 'ityp',i,' jtyp',j
697 write (iout,*) 'Fourier constants'
698 do k=1,nterm(i,j,iblock)
699 write (iout,'(2(1pe15.5))') v1(k,i,j,iblock),
702 write (iout,*) 'Lorenz constants'
703 do k=1,nlor(i,j,iblock)
704 write (iout,'(3(1pe15.5))')
705 & vlor1(k,i,j),vlor2(k,i,j),vlor3(k,i,j)
711 C 6/23/01 Read parameters for double torsionals
715 do j=-ntortyp+1,ntortyp-1
716 do k=-ntortyp+1,ntortyp-1
717 read (itordp,'(3a1)') t1,t2,t3
718 c write (iout,*) "OK onelett",
721 if (t1.ne.toronelet(i) .or. t2.ne.toronelet(j)
722 & .or. t3.ne.toronelet(k)) then
723 write (iout,*) "Error in double torsional parameter file",
726 call MPI_Finalize(Ierror)
728 stop "Error in double torsional parameter file"
730 read (itordp,*) ntermd_1(i,j,k,iblock),
731 & ntermd_2(i,j,k,iblock)
732 ntermd_1(-i,-j,-k,iblock)=ntermd_1(i,j,k,iblock)
733 ntermd_2(-i,-j,-k,iblock)=ntermd_2(i,j,k,iblock)
734 read (itordp,*) (v1c(1,l,i,j,k,iblock),l=1,
735 & ntermd_1(i,j,k,iblock))
736 read (itordp,*) (v1s(1,l,i,j,k,iblock),l=1,
737 & ntermd_1(i,j,k,iblock))
738 read (itordp,*) (v1c(2,l,i,j,k,iblock),l=1,
739 & ntermd_1(i,j,k,iblock))
740 read (itordp,*) (v1s(2,l,i,j,k,iblock),l=1,
741 & ntermd_1(i,j,k,iblock))
742 C Martix of D parameters for one dimesional foureir series
743 do l=1,ntermd_1(i,j,k,iblock)
744 v1c(1,l,-i,-j,-k,iblock)=v1c(1,l,i,j,k,iblock)
745 v1s(1,l,-i,-j,-k,iblock)=-v1s(1,l,i,j,k,iblock)
746 v1c(2,l,-i,-j,-k,iblock)=v1c(2,l,i,j,k,iblock)
747 v1s(2,l,-i,-j,-k,iblock)=-v1s(2,l,i,j,k,iblock)
748 c write(iout,*) "whcodze" ,
749 c & v1s(2,l,-i,-j,-k,iblock),v1s(2,l,i,j,k,iblock)
751 read (itordp,*) ((v2c(l,m,i,j,k,iblock),
752 & v2c(m,l,i,j,k,iblock),v2s(l,m,i,j,k,iblock),
753 & v2s(m,l,i,j,k,iblock),
754 & m=1,l-1),l=1,ntermd_2(i,j,k,iblock))
755 C Martix of D parameters for two dimesional fourier series
756 do l=1,ntermd_2(i,j,k,iblock)
758 v2c(l,m,-i,-j,-k,iblock)=v2c(l,m,i,j,k,iblock)
759 v2c(m,l,-i,-j,-k,iblock)=v2c(m,l,i,j,k,iblock)
760 v2s(l,m,-i,-j,-k,iblock)=-v2s(l,m,i,j,k,iblock)
761 v2s(m,l,-i,-j,-k,iblock)=-v2s(m,l,i,j,k,iblock)
770 write (iout,*) 'Constants for double torsionals'
773 do j=-ntortyp+1,ntortyp-1
774 do k=-ntortyp+1,ntortyp-1
775 write (iout,*) 'ityp',i,' jtyp',j,' ktyp',k,
776 & ' nsingle',ntermd_1(i,j,k,iblock),
777 & ' ndouble',ntermd_2(i,j,k,iblock)
779 write (iout,*) 'Single angles:'
780 do l=1,ntermd_1(i,j,k,iblock)
781 write (iout,'(i5,2f10.5,5x,2f10.5,5x,2f10.5)') l,
782 & v1c(1,l,i,j,k,iblock),v1s(1,l,i,j,k,iblock),
783 & v1c(2,l,i,j,k,iblock),v1s(2,l,i,j,k,iblock),
784 & v1s(1,l,-i,-j,-k,iblock),v1s(2,l,-i,-j,-k,iblock)
787 write (iout,*) 'Pairs of angles:'
788 write (iout,'(3x,20i10)') (l,l=1,ntermd_2(i,j,k,iblock))
789 do l=1,ntermd_2(i,j,k,iblock)
790 write (iout,'(i5,20f10.5)')
791 & l,(v2c(l,m,i,j,k,iblock),m=1,ntermd_2(i,j,k,iblock))
794 write (iout,'(3x,20i10)') (l,l=1,ntermd_2(i,j,k,iblock))
795 do l=1,ntermd_2(i,j,k,iblock)
796 write (iout,'(i5,20f10.5)')
797 & l,(v2s(l,m,i,j,k,iblock),m=1,ntermd_2(i,j,k,iblock)),
798 & (v2s(l,m,-i,-j,-k,iblock),m=1,ntermd_2(i,j,k,iblock))
807 C Read of Side-chain backbone correlation parameters
808 C Modified 11 May 2012 by Adasko
811 read (isccor,*) nsccortyp
812 read (isccor,*) (isccortyp(i),i=1,ntyp)
814 isccortyp(i)=-isccortyp(-i)
816 iscprol=isccortyp(20)
817 c write (iout,*) 'ntortyp',ntortyp
819 cc maxinter is maximum interaction sites
824 &nterm_sccor(i,j),nlor_sccor(i,j)
825 c write (iout,*) nterm_sccor(i,j)
831 nterm_sccor(-i,j)=nterm_sccor(i,j)
832 nterm_sccor(-i,-j)=nterm_sccor(i,j)
833 nterm_sccor(i,-j)=nterm_sccor(i,j)
834 c write (iout,*) nterm_sccor(i,j),nterm_sccor(-i,j),
835 c & nterm_sccor(-i,-j),nterm_sccor(i,-j)
836 do k=1,nterm_sccor(i,j)
837 read (isccor,*) kk,v1sccor(k,l,i,j)
839 if (j.eq.iscprol) then
840 if (i.eq.isccortyp(10)) then
841 v1sccor(k,l,i,-j)=v1sccor(k,l,i,j)
842 v2sccor(k,l,i,-j)=-v2sccor(k,l,i,j)
844 v1sccor(k,l,i,-j)=v1sccor(k,l,i,j)*0.5d0
845 & +v2sccor(k,l,i,j)*dsqrt(0.75d0)
846 v2sccor(k,l,i,-j)=-v2sccor(k,l,i,j)*0.5d0
847 & +v1sccor(k,l,i,j)*dsqrt(0.75d0)
848 v1sccor(k,l,-i,-j)=v1sccor(k,l,i,j)
849 v2sccor(k,l,-i,-j)=-v2sccor(k,l,i,j)
850 v1sccor(k,l,-i,j)=v1sccor(k,l,i,-j)
851 v2sccor(k,l,-i,j)=-v2sccor(k,l,i,-j)
854 if (i.eq.isccortyp(10)) then
855 v1sccor(k,l,i,-j)=v1sccor(k,l,i,j)
856 v2sccor(k,l,i,-j)=-v2sccor(k,l,i,j)
858 if (j.eq.isccortyp(10)) then
859 v1sccor(k,l,-i,j)=v1sccor(k,l,i,j)
860 v2sccor(k,l,-i,j)=-v2sccor(k,l,i,j)
862 v1sccor(k,l,i,-j)=-v1sccor(k,l,i,j)
863 v2sccor(k,l,i,-j)=-v2sccor(k,l,i,j)
864 v1sccor(k,l,-i,-j)=v1sccor(k,l,i,j)
865 v2sccor(k,l,-i,-j)=-v2sccor(k,l,i,j)
866 v1sccor(k,l,-i,j)=v1sccor(k,l,i,-j)
867 v2sccor(k,l,-i,j)=-v2sccor(k,l,i,-j)
871 v0ijsccor=v0ijsccor+si*v1sccor(k,l,i,j)
872 v0ijsccor1=v0ijsccor+si*v1sccor(k,l,-i,j)
873 v0ijsccor2=v0ijsccor+si*v1sccor(k,l,i,-j)
874 v0ijsccor3=v0ijsccor+si*v1sccor(k,l,-i,-j)
877 do k=1,nlor_sccor(i,j)
878 read (isccor,*) kk,vlor1sccor(k,i,j),
879 & vlor2sccor(k,i,j),vlor3sccor(k,i,j)
880 v0ijsccor=v0ijsccor+vlor1sccor(k,i,j)/
881 &(1+vlor3sccor(k,i,j)**2)
883 v0sccor(l,i,j)=v0ijsccor
884 v0sccor(l,-i,j)=v0ijsccor1
885 v0sccor(l,i,-j)=v0ijsccor2
886 v0sccor(l,-i,-j)=v0ijsccor3
892 write (iout,'(/a/)') 'Torsional constants of SCCORR:'
895 write (iout,*) 'ityp',i,' jtyp',j
896 write (iout,*) 'Fourier constants'
897 do k=1,nterm_sccor(i,j)
898 write (iout,'(2(1pe15.5))')
899 & v1sccor(k,l,i,j),v2sccor(k,l,i,j)
901 write (iout,*) 'Lorenz constants'
902 do k=1,nlor_sccor(i,j)
903 write (iout,'(3(1pe15.5))')
904 & vlor1sccor(k,i,j),vlor2sccor(k,i,j),vlor3sccor(k,i,j)
910 C 9/18/99 (AL) Read coefficients of the Fourier expansion of the local
911 C interaction energy of the Gly, Ala, and Pro prototypes.
913 read (ifourier,*) nloctyp
916 read (ifourier,*) (b(ii,i),ii=1,13)
918 write (iout,*) 'Type',i
919 write (iout,'(a,i2,a,f10.5)') ('b(',ii,')=',b(ii,i),ii=1,13)
927 B1tilde(1,i) = b(3,i)
928 B1tilde(2,i) =-b(5,i)
929 B1tilde(1,-i) =-b(3,i)
930 B1tilde(2,-i) =b(5,i)
954 Ctilde(2,1,i)=-b(9,i)
956 Ctilde(1,1,-i)=b(7,i)
957 Ctilde(1,2,-i)=-b(9,i)
958 Ctilde(2,1,-i)=b(9,i)
959 Ctilde(2,2,-i)=b(7,i)
961 c Ctilde(1,1,i)=0.0d0
962 c Ctilde(1,2,i)=0.0d0
963 c Ctilde(2,1,i)=0.0d0
964 c Ctilde(2,2,i)=0.0d0
979 Dtilde(2,1,i)=-b(8,i)
981 Dtilde(1,1,-i)=b(6,i)
982 Dtilde(1,2,-i)=-b(8,i)
983 Dtilde(2,1,-i)=b(8,i)
984 Dtilde(2,2,-i)=b(6,i)
986 c Dtilde(1,1,i)=0.0d0
987 c Dtilde(1,2,i)=0.0d0
988 c Dtilde(2,1,i)=0.0d0
989 c Dtilde(2,2,i)=0.0d0
990 EE(1,1,i)= b(10,i)+b(11,i)
991 EE(2,2,i)=-b(10,i)+b(11,i)
992 EE(2,1,i)= b(12,i)-b(13,i)
993 EE(1,2,i)= b(12,i)+b(13,i)
994 EE(1,1,-i)= b(10,i)+b(11,i)
995 EE(2,2,-i)=-b(10,i)+b(11,i)
996 EE(2,1,-i)=-b(12,i)+b(13,i)
997 EE(1,2,-i)=-b(12,i)-b(13,i)
1003 c ee(2,1,i)=ee(1,2,i)
1008 write (iout,*) 'Type',i
1010 c write (iout,'(f10.5)') B1(:,i)
1011 write(iout,*) B1(1,i),B1(2,i)
1013 c write (iout,'(f10.5)') B2(:,i)
1014 write(iout,*) B2(1,i),B2(2,i)
1017 write (iout,'(2f10.5)') CC(j,1,i),CC(j,2,i)
1021 write (iout,'(2f10.5)') DD(j,1,i),DD(j,2,i)
1025 write (iout,'(2f10.5)') EE(j,1,i),EE(j,2,i)
1030 C Read electrostatic-interaction parameters
1033 write (iout,'(/a)') 'Electrostatic interaction constants:'
1034 write (iout,'(1x,a,1x,a,10x,a,11x,a,11x,a,11x,a)')
1035 & 'IT','JT','APP','BPP','AEL6','AEL3'
1037 read (ielep,*) ((epp(i,j),j=1,2),i=1,2)
1038 read (ielep,*) ((rpp(i,j),j=1,2),i=1,2)
1039 read (ielep,*) ((elpp6(i,j),j=1,2),i=1,2)
1040 read (ielep,*) ((elpp3(i,j),j=1,2),i=1,2)
1045 app (i,j)=epp(i,j)*rri*rri
1046 bpp (i,j)=-2.0D0*epp(i,j)*rri
1047 ael6(i,j)=elpp6(i,j)*4.2D0**6
1048 ael3(i,j)=elpp3(i,j)*4.2D0**3
1050 if (lprint) write(iout,'(2i3,4(1pe15.4))')i,j,app(i,j),bpp(i,j),
1051 & ael6(i,j),ael3(i,j)
1056 C Read side-chain interaction parameters.
1058 read (isidep,*) ipot,expon
1059 if (ipot.lt.1 .or. ipot.gt.5) then
1060 write (iout,'(2a)') 'Error while reading SC interaction',
1061 & 'potential file - unknown potential type.'
1065 write(iout,'(/3a,2i3)') 'Potential is ',potname(ipot),
1066 & ', exponents are ',expon,2*expon
1067 goto (10,20,30,30,40) ipot
1068 C----------------------- LJ potential ---------------------------------
1069 10 read (isidep,*)((eps(i,j),j=i,ntyp),i=1,ntyp),(sigma0(i),i=1,ntyp)
1071 write (iout,'(/a/)') 'Parameters of the LJ potential:'
1072 write (iout,'(a/)') 'The epsilon array:'
1073 call printmat(ntyp,ntyp,ntyp,iout,restyp,eps)
1074 write (iout,'(/a)') 'One-body parameters:'
1075 write (iout,'(a,4x,a)') 'residue','sigma'
1076 write (iout,'(a3,6x,f10.5)') (restyp(i),sigma0(i),i=1,ntyp)
1079 C----------------------- LJK potential --------------------------------
1080 20 read (isidep,*)((eps(i,j),j=i,ntyp),i=1,ntyp),
1081 & (sigma0(i),i=1,ntyp),(rr0(i),i=1,ntyp)
1083 write (iout,'(/a/)') 'Parameters of the LJK potential:'
1084 write (iout,'(a/)') 'The epsilon array:'
1085 call printmat(ntyp,ntyp,ntyp,iout,restyp,eps)
1086 write (iout,'(/a)') 'One-body parameters:'
1087 write (iout,'(a,4x,2a)') 'residue',' sigma ',' r0 '
1088 write (iout,'(a3,6x,2f10.5)') (restyp(i),sigma0(i),rr0(i),
1092 C---------------------- GB or BP potential -----------------------------
1094 read (isidep,*)(eps(i,j),j=i,ntyp)
1096 read (isidep,*)(sigma0(i),i=1,ntyp)
1097 read (isidep,*)(sigii(i),i=1,ntyp)
1098 read (isidep,*)(chip(i),i=1,ntyp)
1099 read (isidep,*)(alp(i),i=1,ntyp)
1101 read (isidep,*)(epslip(i,j),j=i,ntyp)
1102 C write(iout,*) "WARNING!!",i,ntyp
1103 write(iout,*) "epslip", i, (epslip(i,j),j=i,ntyp)
1105 C epslip(i,j)=epslip(i,j)+0.05d0
1108 C For the GB potential convert sigma'**2 into chi'
1111 chip(i)=(chip(i)-1.0D0)/(chip(i)+1.0D0)
1115 write (iout,'(/a/)') 'Parameters of the BP potential:'
1116 write (iout,'(a/)') 'The epsilon array:'
1117 call printmat(ntyp,ntyp,ntyp,iout,restyp,eps)
1118 write (iout,'(/a)') 'One-body parameters:'
1119 write (iout,'(a,4x,4a)') 'residue',' sigma ','s||/s_|_^2',
1121 write (iout,'(a3,6x,4f10.5)') (restyp(i),sigma0(i),sigii(i),
1122 & chip(i),alp(i),i=1,ntyp)
1125 C--------------------- GBV potential -----------------------------------
1126 40 read (isidep,*)((eps(i,j),j=i,ntyp),i=1,ntyp),
1127 & (sigma0(i),i=1,ntyp),(rr0(i),i=1,ntyp),(sigii(i),i=1,ntyp),
1128 & (chip(i),i=1,ntyp),(alp(i),i=1,ntyp)
1130 write (iout,'(/a/)') 'Parameters of the GBV potential:'
1131 write (iout,'(a/)') 'The epsilon array:'
1132 call printmat(ntyp,ntyp,ntyp,iout,restyp,eps)
1133 write (iout,'(/a)') 'One-body parameters:'
1134 write (iout,'(a,4x,5a)') 'residue',' sigma ',' r0 ',
1135 & 's||/s_|_^2',' chip ',' alph '
1136 write (iout,'(a3,6x,5f10.5)') (restyp(i),sigma0(i),rr0(i),
1137 & sigii(i),chip(i),alp(i),i=1,ntyp)
1141 C-----------------------------------------------------------------------
1142 C Calculate the "working" parameters of SC interactions.
1146 epslip(i,j)=epslip(j,i)
1151 sigma(i,j)=dsqrt(sigma0(i)**2+sigma0(j)**2)
1152 sigma(j,i)=sigma(i,j)
1153 rs0(i,j)=dwa16*sigma(i,j)
1157 if (lprint) write (iout,'(/a/10x,7a/72(1h-))')
1158 & 'Working parameters of the SC interactions:',
1159 & ' a ',' b ',' augm ',' sigma ',' r0 ',
1164 epsijlip=epslip(i,j)
1165 if (ipot.eq.1 .or. ipot.eq.3 .or. ipot.eq.4) then
1174 sigeps=dsign(1.0D0,epsij)
1176 aa_aq(i,j)=epsij*rrij*rrij
1177 bb_aq(i,j)=-sigeps*epsij*rrij
1178 aa_aq(j,i)=aa_aq(i,j)
1179 bb_aq(j,i)=bb_aq(i,j)
1180 sigeps=dsign(1.0D0,epsijlip)
1181 epsijlip=dabs(epsijlip)
1182 aa_lip(i,j)=epsijlip*rrij*rrij
1183 bb_lip(i,j)=-sigeps*epsijlip*rrij
1184 aa_lip(j,i)=aa_lip(i,j)
1185 bb_lip(j,i)=bb_lip(i,j)
1187 sigt1sq=sigma0(i)**2
1188 sigt2sq=sigma0(j)**2
1191 ratsig1=sigt2sq/sigt1sq
1192 ratsig2=1.0D0/ratsig1
1193 chi(i,j)=(sigii1-1.0D0)/(sigii1+ratsig1)
1194 if (j.gt.i) chi(j,i)=(sigii2-1.0D0)/(sigii2+ratsig2)
1195 rsum_max=dsqrt(sigii1*sigt1sq+sigii2*sigt2sq)
1199 c if (ipot.eq.1 .or. ipot.eq.3 .or. ipot.eq.4) then
1200 sigmaii(i,j)=rsum_max
1201 sigmaii(j,i)=rsum_max
1203 c sigmaii(i,j)=r0(i,j)
1204 c sigmaii(j,i)=r0(i,j)
1206 cd write (iout,*) i,j,r0(i,j),sigma(i,j),rsum_max
1207 if ((ipot.eq.2 .or. ipot.eq.5) .and. r0(i,j).gt.rsum_max) then
1208 r_augm=sigma(i,j)*(rrij-sigma(i,j))/rrij
1209 augm(i,j)=epsij*r_augm**(2*expon)
1210 c augm(i,j)=0.5D0**(2*expon)*aa(i,j)
1217 write (iout,'(2(a3,2x),3(1pe10.3),5(0pf8.3))')
1218 & restyp(i),restyp(j),aa_aq(i,j),bb_aq(i,j),augm(i,j),
1219 & sigma(i,j),r0(i,j),chi(i,j),chi(j,i)
1224 C Define the SC-p interaction constants
1228 C "Soft" SC-p repulsion (causes helices to be too flat, but facilitates
1230 c aad(i,1)=0.3D0*4.0D0**12
1231 C Following line for constants currently implemented
1232 C "Hard" SC-p repulsion (gives correct turn spacing in helices)
1233 aad(i,1)=1.5D0*4.0D0**12
1234 c aad(i,1)=0.17D0*5.6D0**12
1236 C "Soft" SC-p repulsion
1238 C Following line for constants currently implemented
1239 c aad(i,1)=0.3D0*4.0D0**6
1240 C "Hard" SC-p repulsion
1241 bad(i,1)=3.0D0*4.0D0**6
1242 c bad(i,1)=-2.0D0*0.17D0*5.6D0**6
1251 C 8/9/01 Read the SC-p interaction constants from file
1254 read (iscpp,*) (eps_scp(i,j),rscp(i,j),j=1,2)
1257 aad(i,1)=dabs(eps_scp(i,1))*rscp(i,1)**12
1258 aad(i,2)=dabs(eps_scp(i,2))*rscp(i,2)**12
1259 bad(i,1)=-2*eps_scp(i,1)*rscp(i,1)**6
1260 bad(i,2)=-2*eps_scp(i,2)*rscp(i,2)**6
1264 write (iout,*) "Parameters of SC-p interactions:"
1266 write (iout,'(4f8.3,4e12.4)') eps_scp(i,1),rscp(i,1),
1267 & eps_scp(i,2),rscp(i,2),aad(i,1),bad(i,1),aad(i,2),bad(i,2)
1272 C Define the constants of the disulfide bridge
1276 c Old arbitrary potential - commented out.
1281 c Constants of the disulfide-bond potential determined based on the RHF/6-31G**
1282 c energy surface of diethyl disulfide.
1283 c A. Liwo and U. Kozlowska, 11/24/03
1292 write (iout,*) dyn_ss,'dyndyn'
1294 ss_depth=ebr/wsc-0.25*eps(1,1)
1295 C write(iout,*) akcm,whpb,wsc,'KURWA'
1296 Ht=Ht/wsc-0.25*eps(1,1)
1305 ss_depth=ebr/whpb-0.25*eps(1,1)*wsc/whpb
1309 write (iout,'(/a)') "Disulfide bridge parameters:"
1310 write (iout,'(a,f10.2)') 'S-S bridge energy: ',ebr
1311 write (iout,'(2(a,f10.2))') 'd0cm:',d0cm,' akcm:',akcm
1312 write (iout,'(2(a,f10.2))') 'akth:',akth,' akct:',akct
1313 write (iout,'(3(a,f10.2))') 'v1ss:',v1ss,' v2ss:',v2ss,