zmiana do DiL
[unres.git] / source / unres / src_MD / parmread.F
index be1a193..2e953a2 100644 (file)
@@ -312,10 +312,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
@@ -326,6 +334,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
@@ -450,25 +466,38 @@ C Read torsional parameters
 C
       read (itorp,*,end=113,err=113) ntortyp
       read (itorp,*,end=113,err=113) (itortyp(i),i=1,ntyp)
-c      write (iout,*) 'ntortyp',ntortyp
-      do i=1,ntortyp
-       do j=1,ntortyp
-         read (itorp,*,end=113,err=113) nterm(i,j),nlor(i,j)
+      do iblock=1,2
+      do i=-ntyp,-1
+       itortyp(i)=-itortyp(-i)
+      enddo
+      write (iout,*) '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)
           v0ij=0.0d0
           si=-1.0d0
-         do k=1,nterm(i,j)
-           read (itorp,*,end=113,err=113) kk,v1(k,i,j),v2(k,i,j) 
-            v0ij=v0ij+si*v1(k,i,j)
+         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)
+            v0ij=v0ij+si*v1(k,i,j,iblock)
             si=-si
+         write(iout,*) i,j,k,iblock,nterm(i,j,iblock),v1(k,-i,-j,iblock)
           enddo
-         do k=1,nlor(i,j)
+         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:'
@@ -476,11 +505,12 @@ c      write (iout,*) 'ntortyp',ntortyp
          do j=1,ntortyp
             write (iout,*) 'ityp',i,' jtyp',j
             write (iout,*) 'Fourier constants'
-            do k=1,nterm(i,j)
-             write (iout,'(2(1pe15.5))') v1(k,i,j),v2(k,i,j)
+            do k=1,nterm(i,j,iblock)
+             write (iout,'(2(1pe15.5))') v1(k,i,j,iblock),
+     &        v2(k,i,j,iblock)
             enddo
             write (iout,*) 'Lorenz constants'
-            do k=1,nlor(i,j)
+            do k=1,nlor(i,j,iblock)
              write (iout,'(3(1pe15.5))') 
      &         vlor1(k,i,j),vlor2(k,i,j),vlor3(k,i,j)
             enddo
@@ -558,19 +588,25 @@ C Modified 11 May 2012 by Adasko
 CCC
 C
       read (isccor,*,end=113,err=113) nsccortyp
+#ifdef SCCORPDB
       read (isccor,*,end=113,err=113) (isccortyp(i),i=1,ntyp)
+#else
+      read (isccor,*,end=113,err=113) (isccortyp(i),i=-ntyp,ntyp)
+#endif
 c      write (iout,*) 'ntortyp',ntortyp
       maxinter=3
 cc maxinter is maximum interaction sites
-      do l=1,maxinter
+      do l=1,maxinter    
       do i=1,nsccortyp
        do j=1,nsccortyp
          read (isccor,*,end=113,err=113) nterm_sccor(i,j),nlor_sccor(i,j)
           v0ijsccor=0.0d0
           si=-1.0d0
+  
          do k=1,nterm_sccor(i,j)
-           read (isccor,*,end=113,err=113) kk,v1sccor(k,i,j),v2sccor(k,i,j) 
-            v0ijsccor=v0ijsccor+si*v1sccor(k,i,j)
+           read (isccor,*,end=113,err=113) kk,v1sccor(k,l,i,j)
+     &    ,v2sccor(k,l,i,j) 
+            v0ijsccor=v0ijsccor+si*v1sccor(k,l,i,j)
             si=-si
           enddo
          do k=1,nlor_sccor(i,j)
@@ -592,7 +628,7 @@ cc maxinter is maximum interaction sites
             write (iout,*) 'ityp',i,' jtyp',j
             write (iout,*) 'Fourier constants'
             do k=1,nterm_sccor(i,j)
-             write (iout,'(2(1pe15.5))') v1sccor(k,i,j),v2sccor(k,i,j)
+      write (iout,'(2(1pe15.5))') v1sccor(k,l,i,j),v2sccor(k,l,i,j)
             enddo
             write (iout,*) 'Lorenz constants'
             do k=1,nlor_sccor(i,j)
@@ -612,7 +648,7 @@ 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)
         if (lprint) then
@@ -621,20 +657,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
@@ -643,6 +690,11 @@ 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
@@ -651,6 +703,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
@@ -659,6 +715,11 @@ 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
@@ -667,6 +728,11 @@ 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