Bugfix for SS wham and introduction SS to cluster analysis
[unres.git] / source / wham / src / parmread.F
index ee048d8..36730f5 100644 (file)
@@ -51,10 +51,31 @@ C Assign virtual-bond length
         key = wname(i)(:ilen(wname(i)))
         call reada(controlcard,key(:ilen(key)),ww(i),1.0d0)
       enddo
-
+      call reada(controlcard,"D0CM",d0cm,3.78d0)
+      call reada(controlcard,"AKCM",akcm,15.1d0)
+      call reada(controlcard,"AKTH",akth,11.0d0)
+      call reada(controlcard,"AKCT",akct,12.0d0)
+      call reada(controlcard,"V1SS",v1ss,-1.08d0)
+      call reada(controlcard,"V2SS",v2ss,7.61d0)
+      call reada(controlcard,"V3SS",v3ss,13.7d0)
+      call reada(controlcard,"EBR",ebr,-5.50D0)
+c      dyn_ss=(index(controlcard,'DYN_SS').gt.0)
       write (iout,*) "iparm",iparm," myparm",myparm
-c If reading not own parameters, skip assignment
+c      do i=1,maxres
+c        dyn_ss_mask(i)=.false.
+c      enddo
+      do i=1,maxres-1
+        do j=i+1,maxres
+          dyn_ssbond_ij(i,j)=1.0d300
+        enddo
+      enddo
+      call reada(controlcard,"HT",Ht,0.0D0)
 
+c      if(me.eq.king.or..not.out1file) then
+c       print *,'indpdb=',indpdb,' pdbref=',pdbref
+c      endif
+c If reading not own parameters, skip assignment
+cc      write(iout,*) "KURWA", ww(15)
       if (iparm.eq.myparm .or. .not.separate_parset) then
 
 c
@@ -75,10 +96,12 @@ c
       wtor=ww(13)
       wtor_d=ww(14)
       wvdwpp=ww(16)
+      wstrain=ww(15)
       wbond=ww(18)
       wsccor=ww(19)
 
       endif
+cc      write(iout,*) "KURWA", wstrain,akcm,akth,wsc,dyn_ss
 
       call card_concat(controlcard,.false.)
 
@@ -582,32 +605,58 @@ C
       enddo
       endif
 #endif
-C
-C 5/21/07 (AL) Read coefficients of the backbone-local sidechain-local
-C         correlation energies.
-C
-      read (isccor,*) nterm_sccor
-      do i=1,20
-        do j=1,20
-          read (isccor,'(a)')
-          do k=1,nterm_sccor
-            read (isccor,*) 
-     &        kk,v1sccor(k,i,j),v2sccor(k,i,j)
+C Read of Side-chain backbone correlation parameters
+C Modified 11 May 2012 by Adasko
+CCC
+C
+      read (isccor,*) nsccortyp
+      read (isccor,*) (isccortyp(i),i=1,ntyp)
+c      write (iout,*) 'ntortyp',ntortyp
+      maxinter=3
+cc maxinter is maximum interaction sites
+      do l=1,maxinter
+      do i=1,nsccortyp
+        do j=1,nsccortyp
+          read (isccor,*) nterm_sccor(i,j),nlor_sccor(i,j)
+          v0ijsccor=0.0d0
+          si=-1.0d0
+
+          do k=1,nterm_sccor(i,j)
+            read (isccor,*) 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)
+            read (isccor,*) kk,vlor1sccor(k,i,j),
+     &        vlor2sccor(k,i,j),vlor3sccor(k,i,j)
+            v0ijsccor=v0ijsccor+vlor1sccor(k,i,j)/
+     &(1+vlor3sccor(k,i,j)**2)
           enddo
+          v0sccor(i,j)=v0ijsccor
         enddo
       enddo
+      enddo
       close (isccor)
+
       if (lprint) then
-        write (iout,'(/a/)') 'Torsional constants of SCCORR:'
-        do i=1,20
-          do j=1,20
+        write (iout,'(/a/)') 'Torsional constants:'
+        do i=1,nsccortyp
+          do j=1,nsccortyp
             write (iout,*) 'ityp',i,' jtyp',j
-            do k=1,nterm_sccor
-              write (iout,'(2(1pe15.5))') v1sccor(k,i,j),v2sccor(k,i,j)
+            write (iout,*) 'Fourier constants'
+            do k=1,nterm_sccor(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)
+              write (iout,'(3(1pe15.5))')
+     &         vlor1sccor(k,i,j),vlor2sccor(k,i,j),vlor3sccor(k,i,j)
             enddo
           enddo
         enddo
       endif
+
 C
 C 9/18/99 (AL) Read coefficients of the Fourier expansion of the local
 C         interaction energy of the Gly, Ala, and Pro prototypes.
@@ -845,6 +894,25 @@ c           augm(i,j)=0.5D0**(2*expon)*aa(i,j)
 C
 C Define the SC-p interaction constants
 C
+      if (dyn_ss) then
+        ss_depth=ebr/wsc-0.25*eps(1,1)
+        Ht=Ht/wsc-0.25*eps(1,1)
+        akcm=akcm*wstrain/wsc
+        akth=akth*wstrain/wsc
+        akct=akct*wstrain/wsc
+        v1ss=v1ss*wstrain/wsc
+        v2ss=v2ss*wstrain/wsc
+        v3ss=v3ss*wstrain/wsc
+      else
+        ss_depth=ebr/wstrain-0.25*eps(1,1)*wsc/wstrain
+      endif
+       write (iout,*) "Parameters of the SS-bond potential:"
+       write (iout,*) "D0CM",d0cm," AKCM",akcm," AKTH",akth,
+     & " AKCT",akct
+       write (iout,*) "V1SS",v1ss," V2SS",v2ss," V3SS",v3ss
+       write (iout,*) "EBR",ebr," SS_DEPTH",ss_depth
+       write (iout,*)" HT",Ht
+
 #ifdef OLDSCP
       do i=1,20
 C "Soft" SC-p repulsion (causes helices to be too flat, but facilitates 
@@ -893,7 +961,7 @@ C
 C
 C Define the constants of the disulfide bridge
 C
-      ebr=-5.50D0
+c      ebr=-5.50D0
 c
 c Old arbitrary potential - commented out.
 c
@@ -904,21 +972,21 @@ c Constants of the disulfide-bond potential determined based on the RHF/6-31G**
 c energy surface of diethyl disulfide.
 c A. Liwo and U. Kozlowska, 11/24/03
 c
-      D0CM = 3.78d0
-      AKCM = 15.1d0
-      AKTH = 11.0d0
-      AKCT = 12.0d0
-      V1SS =-1.08d0
-      V2SS = 7.61d0
-      V3SS = 13.7d0
+c      D0CM = 3.78d0
+c      AKCM = 15.1d0
+c      AKTH = 11.0d0
+c      AKCT = 12.0d0
+c      V1SS =-1.08d0
+c      V2SS = 7.61d0
+c      V3SS = 13.7d0
 
-      if (lprint) then
-      write (iout,'(/a)') "Disulfide bridge parameters:"
-      write (iout,'(a,f10.2)') 'S-S bridge energy: ',ebr
-      write (iout,'(2(a,f10.2))') 'd0cm:',d0cm,' akcm:',akcm
-      write (iout,'(2(a,f10.2))') 'akth:',akth,' akct:',akct
-      write (iout,'(3(a,f10.2))') 'v1ss:',v1ss,' v2ss:',v2ss,
-     & ' v3ss:',v3ss
-      endif
+c      if (lprint) then
+c      write (iout,'(/a)') "Disulfide bridge parameters:"
+c      write (iout,'(a,f10.2)') 'S-S bridge energy: ',ebr
+c      write (iout,'(2(a,f10.2))') 'd0cm:',d0cm,' akcm:',akcm
+c      write (iout,'(2(a,f10.2))') 'akth:',akth,' akct:',akct
+c      write (iout,'(3(a,f10.2))') 'v1ss:',v1ss,' v2ss:',v2ss,
+c     & ' v3ss:',v3ss
+c      endif
       return
       end