Merge branch 'bartek2' into bartek
[unres.git] / source / unres / src_CSA_DiL / parmread.F
index 08126c6..48da6c0 100644 (file)
@@ -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):',
@@ -313,10 +348,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 +370,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,6 +504,7 @@ C
       read (itorp,*,end=113,err=113) (itortyp(i),i=1,ntyp)
       do iblock=1,2
       do i=-ntyp,-1
+<<<<<<< HEAD
        itortyp(i)=-itortyp(-1)
       enddo
 c      write (iout,*) 'ntortyp',ntortyp
@@ -462,24 +514,44 @@ c      write (iout,*) 'ntortyp',ntortyp
      &          nlor(i,j,iblock)
            nterm(-i,-j,iblock)=nterm(i,j,iblock)
            nlor(-i,-j,iblock)=nlor(i,j,iblock)
+=======
+       itortyp(i)=-itortyp(-i)
+      enddo
+c      write (iout,*) 'ntortyp',ntortyp
+      do i=0,ntortyp-1
+       do j=-ntortyp,ntortyp
+         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)
+>>>>>>> bartek2
           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)
+<<<<<<< HEAD
             v2(k,-i,-j,iblock)=-v2(k,i,j,iblock) 
+=======
+            v2(k,-i,-j,iblock)=-v2(k,i,j,iblock)
+>>>>>>> bartek2
             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:'
@@ -521,6 +593,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 +604,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 +629,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
@@ -587,7 +664,8 @@ cc      if (lprint) then
           enddo
         enddo
       enddo
-cc      endif
+      enddo
+      endif
 #endif
 C
 C 5/21/07 (AL) Read coefficients of the backbone-local sidechain-local
@@ -634,20 +712,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 +745,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 +757,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 +769,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 +781,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