X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=source%2Funres%2Fsrc_CSA_DiL%2Fparmread.F;h=44d0370eb440288bf544e2dc65934adedb59e559;hb=f690e8b70bab14132839afebf080d4a28363b226;hp=08126c6a2ac7b78fd377a7ea53c00ea33ca496a6;hpb=03f945f08803ac33d94abb35d001684a49080647;p=unres.git diff --git a/source/unres/src_CSA_DiL/parmread.F b/source/unres/src_CSA_DiL/parmread.F index 08126c6..44d0370 100644 --- a/source/unres/src_CSA_DiL/parmread.F +++ b/source/unres/src_CSA_DiL/parmread.F @@ -103,13 +103,47 @@ C Read the parameters of the probability distribution/energy expression C of the virtual-bond valence angles theta C do i=1,ntyp - read (ithep,*,err=111,end=111) a0thet(i),(athet(j,i),j=1,2), - & (bthet(j,i),j=1,2) + read (ithep,*,err=111,end=111) a0thet(i),(athet(j,i,1,1),j=1,2), + & (bthet(j,i,1,1),j=1,2) read (ithep,*,err=111,end=111) (polthet(j,i),j=0,3) read (ithep,*,err=111,end=111) (gthet(j,i),j=1,3) read (ithep,*,err=111,end=111) theta0(i),sig0(i),sigc0(i) sigc0(i)=sigc0(i)**2 enddo + do i=1,ntyp + athet(1,i,1,-1)=athet(1,i,1,1) + athet(2,i,1,-1)=athet(2,i,1,1) + bthet(1,i,1,-1)=-bthet(1,i,1,1) + bthet(2,i,1,-1)=-bthet(2,i,1,1) + athet(1,i,-1,1)=-athet(1,i,1,1) + athet(2,i,-1,1)=-athet(2,i,1,1) + bthet(1,i,-1,1)=bthet(1,i,1,1) + bthet(2,i,-1,1)=bthet(2,i,1,1) + enddo + do i=-ntyp,-1 + a0thet(i)=a0thet(-i) + athet(1,i,-1,-1)=athet(1,-i,1,1) + athet(2,i,-1,-1)=-athet(2,-i,1,1) + bthet(1,i,-1,-1)=bthet(1,-i,1,1) + bthet(2,i,-1,-1)=-bthet(2,-i,1,1) + athet(1,i,-1,1)=athet(1,-i,1,1) + athet(2,i,-1,1)=-athet(2,-i,1,1) + bthet(1,i,-1,1)=-bthet(1,-i,1,1) + bthet(2,i,-1,1)=bthet(2,-i,1,1) + athet(1,i,1,-1)=-athet(1,-i,1,1) + athet(2,i,1,-1)=athet(2,-i,1,1) + bthet(1,i,1,-1)=bthet(1,-i,1,1) + bthet(2,i,1,-1)=-bthet(2,-i,1,1) + theta0(i)=theta0(-i) + sig0(i)=sig0(-i) + sigc0(i)=sigc0(-i) + do j=0,3 + polthet(j,i)=polthet(j,-i) + enddo + do j=1,3 + gthet(j,i)=gthet(j,-i) + enddo + enddo close (ithep) if (lprint) then if (.not.LaTeX) then @@ -120,7 +154,7 @@ C & ' B1 ',' B2 ' do i=1,ntyp write(iout,'(a3,i4,2x,5(1pe14.5))') restyp(i),i, - & a0thet(i),(athet(j,i),j=1,2),(bthet(j,i),j=1,2) + & a0thet(i),(athet(j,i,1,1),j=1,2),(bthet(j,i,1,1),j=1,2) enddo write (iout,'(/a/9x,5a/79(1h-))') & 'Parameters of the expression for sigma(theta_c):', @@ -147,7 +181,8 @@ C & ' b1*10^1 ',' b2*10^1 ' do i=1,ntyp write(iout,'(a3,1h&,2x,5(f8.3,1h&))') restyp(i), - & a0thet(i),(100*athet(j,i),j=1,2),(10*bthet(j,i),j=1,2) + & a0thet(i),(100*athet(j,i,1,1),j=1,2), + $ (10*bthet(j,i,1,1),j=1,2) enddo write (iout,'(/a/9x,5a/79(1h-))') & 'Parameters of the expression for sigma(theta_c):', @@ -279,8 +314,9 @@ C endif write (2,*) "Start reading THETA_PDB" do i=1,ntyp - read (ithep_pdb,*,err=111,end=111) a0thet(i),(athet(j,i),j=1,2), - & (bthet(j,i),j=1,2) + read (ithep_pdb,*,err=111,end=111) a0thet(i), + & (athet(j,i,1,1),j=1,2), + & (bthet(j,i,1,1),j=1,2) read (ithep_pdb,*,err=111,end=111) (polthet(j,i),j=0,3) read (ithep_pdb,*,err=111,end=111) (gthet(j,i),j=1,3) read (ithep_pdb,*,err=111,end=111) theta0(i),sig0(i),sigc0(i) @@ -313,10 +349,18 @@ C bsc(1,i)=0.0D0 read(irotam,*,end=112,err=112)(censc(k,1,i),k=1,3), & ((blower(k,l,1),l=1,k),k=1,3) + censc(1,1,-i)=censc(1,1,i) + censc(2,1,-i)=censc(2,1,i) + censc(3,1,-i)=-censc(3,1,i) + do j=2,nlob(i) read (irotam,*,end=112,err=112) bsc(j,i) read (irotam,*,end=112,err=112) (censc(k,j,i),k=1,3), & ((blower(k,l,j),l=1,k),k=1,3) + censc(1,j,-i)=censc(1,j,i) + censc(2,j,-i)=censc(2,j,i) + censc(3,j,-i)=-censc(3,j,i) +C BSC is amplitude of Gaussian enddo do j=1,nlob(i) do k=1,3 @@ -327,6 +371,14 @@ C enddo gaussc(k,l,j,i)=akl gaussc(l,k,j,i)=akl + if (((k.eq.3).and.(l.ne.3)) + & .or.((l.eq.3).and.(k.ne.3))) then + gaussc(k,l,j,-i)=-akl + gaussc(l,k,j,-i)=-akl + else + gaussc(k,l,j,-i)=akl + gaussc(l,k,j,-i)=akl + endif enddo enddo enddo @@ -453,33 +505,38 @@ C read (itorp,*,end=113,err=113) (itortyp(i),i=1,ntyp) do iblock=1,2 do i=-ntyp,-1 - itortyp(i)=-itortyp(-1) + itortyp(i)=-itortyp(-i) enddo c write (iout,*) 'ntortyp',ntortyp - do i=0,ntortyp,ntortyp-1 - do j=-ntortyp,ntortyp + do i=0,ntortyp-1 + do j=-ntortyp+1,ntortyp-1 read (itorp,*,end=113,err=113) nterm(i,j,iblock), - & nlor(i,j,iblock) - nterm(-i,-j,iblock)=nterm(i,j,iblock) - nlor(-i,-j,iblock)=nlor(i,j,iblock) + & nlor(i,j,iblock) + nterm(-i,-j,iblock)=nterm(i,j,iblock) + nlor(-i,-j,iblock)=nlor(i,j,iblock) v0ij=0.0d0 si=-1.0d0 do k=1,nterm(i,j,iblock) read (itorp,*,end=113,err=113) kk,v1(k,i,j,iblock), & v2(k,i,j,iblock) v1(k,-i,-j,iblock)=v1(k,i,j,iblock) - v2(k,-i,-j,iblock)=-v2(k,i,j,iblock) + v2(k,-i,-j,iblock)=-v2(k,i,j,iblock) v0ij=v0ij+si*v1(k,i,j,iblock) si=-si +c write(iout,*) i,j,k,iblock,nterm(i,j,iblock) +c write(iout,*) v1(k,-i,-j,iblock),v1(k,i,j,iblock), +c &v2(k,-i,-j,iblock),v2(k,i,j,iblock) enddo do k=1,nlor(i,j,iblock) read (itorp,*,end=113,err=113) kk,vlor1(k,i,j), & vlor2(k,i,j),vlor3(k,i,j) v0ij=v0ij+vlor1(k,i,j)/(1+vlor3(k,i,j)**2) enddo - v0(i,j)=v0ij + v0(i,j,iblock)=v0ij + v0(-i,-j,iblock)=v0ij enddo enddo + enddo close (itorp) if (lprint) then write (iout,'(/a/)') 'Torsional constants:' @@ -507,8 +564,8 @@ C do j=-ntortyp+1,ntortyp-1 do k=-ntortyp+1,ntortyp-1 read (itordp,'(3a1)',end=114,err=114) t1,t2,t3 - write (iout,*) "OK onelett", - & i,j,k,t1,t2,t3 +c write (iout,*) "OK onelett", +c & i,j,k,t1,t2,t3 if (t1.ne.toronelet(i) .or. t2.ne.toronelet(j) & .or. t3.ne.toronelet(k)) then @@ -521,6 +578,8 @@ C endif read (itordp,*,end=114,err=114) ntermd_1(i,j,k,iblock), & ntermd_2(i,j,k,iblock) + ntermd_1(-i,-j,-k,iblock)=ntermd_1(i,j,k,iblock) + ntermd_2(-i,-j,-k,iblock)=ntermd_2(i,j,k,iblock) read (itordp,*,end=114,err=114) (v1c(1,l,i,j,k,iblock),l=1, & ntermd_1(i,j,k,iblock)) read (itordp,*,end=114,err=114) (v1s(1,l,i,j,k,iblock),l=1, @@ -530,11 +589,13 @@ C read (itordp,*,end=114,err=114) (v1s(2,l,i,j,k,iblock),l=1, & ntermd_1(i,j,k,iblock)) C Matrix of D parameters for one dimesional foureir series - do l=1, ntermd_1(i,j,k,iblock) + do l=1,ntermd_1(i,j,k,iblock) v1c(1,l,-i,-j,-k,iblock)=v1c(1,l,i,j,k,iblock) v1s(1,l,-i,-j,-k,iblock)=-v1s(1,l,i,j,k,iblock) v1c(2,l,-i,-j,-k,iblock)=v1c(2,l,i,j,k,iblock) v1s(2,l,-i,-j,-k,iblock)=-v1s(2,l,i,j,k,iblock) +c write(iout,*) "whcodze" , +c & v1s(2,l,-i,-j,-k,iblock),v1s(2,l,i,j,k,iblock) enddo read (itordp,*,end=114,err=114) ((v2c(l,m,i,j,k,iblock), & v2c(m,l,i,j,k,iblock),v2s(l,m,i,j,k,iblock), @@ -553,9 +614,10 @@ C Matrix of D parameters for two dimesional fourier series enddo!j enddo!i enddo!iblock -cc if (lprint) then + if (lprint) then write (iout,*) write (iout,*) 'Constants for double torsionals' + do iblock=1,2 do i=1,ntortyp do j=-ntortyp,ntortyp do k=-ntortyp,ntortyp @@ -580,14 +642,15 @@ cc if (lprint) then write (iout,'(3x,20i10)') (l,l=1,ntermd_2(i,j,k,iblock)) do l=1,ntermd_2(i,j,k,iblock) write (iout,'(i5,20f10.5)') - & l,(v2s(l,m,i,j,k,iblock),m=1,ntermd_2(i,j,k,iblock)) + & l,(v2s(l,m,i,j,k,iblock),m=1,ntermd_2(i,j,k,iblock)), & (v2s(l,m,-i,-j,-k,iblock),m=1,ntermd_2(i,j,k,iblock)) enddo write (iout,*) enddo enddo enddo -cc endif + enddo + endif #endif C C 5/21/07 (AL) Read coefficients of the backbone-local sidechain-local @@ -624,7 +687,6 @@ C write (iout,*) "Coefficients of the cumulants" endif read (ifourier,*) nloctyp - do i=1,nloctyp do i=0,nloctyp-1 read (ifourier,*,end=115,err=115) read (ifourier,*,end=115,err=115) (b(ii),ii=1,13) @@ -634,20 +696,31 @@ C endif B1(1,i) = b(3) B1(2,i) = b(5) + B1(1,-i) = b(3) + B1(2,-i) = -b(5) c b1(1,i)=0.0d0 c b1(2,i)=0.0d0 B1tilde(1,i) = b(3) - B1tilde(2,i) =-b(5) + B1tilde(2,i) =-b(5) + B1tilde(1,-i) =-b(3) + B1tilde(2,-i) =b(5) c b1tilde(1,i)=0.0d0 c b1tilde(2,i)=0.0d0 B2(1,i) = b(2) B2(2,i) = b(4) + B2(1,-i) =b(2) + B2(2,-i) =-b(4) + c b2(1,i)=0.0d0 c b2(2,i)=0.0d0 CC(1,1,i)= b(7) CC(2,2,i)=-b(7) CC(2,1,i)= b(9) CC(1,2,i)= b(9) + CC(1,1,-i)= b(7) + CC(2,2,-i)=-b(7) + CC(2,1,-i)=-b(9) + CC(1,2,-i)=-b(9) c CC(1,1,i)=0.0d0 c CC(2,2,i)=0.0d0 c CC(2,1,i)=0.0d0 @@ -656,6 +729,10 @@ c CC(1,2,i)=0.0d0 Ctilde(1,2,i)=b(9) Ctilde(2,1,i)=-b(9) Ctilde(2,2,i)=b(7) + Ctilde(1,1,-i)=b(7) + Ctilde(1,2,-i)=-b(9) + Ctilde(2,1,-i)=b(9) + Ctilde(2,2,-i)=b(7) c Ctilde(1,1,i)=0.0d0 c Ctilde(1,2,i)=0.0d0 c Ctilde(2,1,i)=0.0d0 @@ -664,6 +741,10 @@ c Ctilde(2,2,i)=0.0d0 DD(2,2,i)=-b(6) DD(2,1,i)= b(8) DD(1,2,i)= b(8) + DD(1,1,-i)= b(6) + DD(2,2,-i)=-b(6) + DD(2,1,-i)=-b(8) + DD(1,2,-i)=-b(8) c DD(1,1,i)=0.0d0 c DD(2,2,i)=0.0d0 c DD(2,1,i)=0.0d0 @@ -672,6 +753,10 @@ c DD(1,2,i)=0.0d0 Dtilde(1,2,i)=b(8) Dtilde(2,1,i)=-b(8) Dtilde(2,2,i)=b(6) + Dtilde(1,1,-i)=b(6) + Dtilde(1,2,-i)=-b(8) + Dtilde(2,1,-i)=b(8) + Dtilde(2,2,-i)=b(6) c Dtilde(1,1,i)=0.0d0 c Dtilde(1,2,i)=0.0d0 c Dtilde(2,1,i)=0.0d0 @@ -680,6 +765,10 @@ c Dtilde(2,2,i)=0.0d0 EE(2,2,i)=-b(10)+b(11) EE(2,1,i)= b(12)-b(13) EE(1,2,i)= b(12)+b(13) + EE(1,1,-i)= b(10)+b(11) + EE(2,2,-i)=-b(10)+b(11) + EE(2,1,-i)=-b(12)+b(13) + EE(1,2,-i)=-b(12)-b(13) c ee(1,1,i)=1.0d0 c ee(2,2,i)=1.0d0 c ee(2,1,i)=0.0d0