update
[unres.git] / source / wham / src-M / initialize_p.F
index 710496d..3ab5712 100644 (file)
@@ -21,6 +21,7 @@ C
       include "COMMON.WEIGHTS"
       include "COMMON.NAMES"
       include "COMMON.TIME1"
+      include "COMMON.TORCNSTR"
 C
 C The following is just to define auxiliary variables used in angle conversion
 C
@@ -62,6 +63,8 @@ C
       ihist=30
       iweight=31
       izsc=32
+C Lipidic input file for parameters range 60-79
+      iliptranpar=60
 C
 C Set default weights of the energy terms.
 C
@@ -88,8 +91,10 @@ C
       enddo
       do i=1,ntyp
        do j=1,ntyp
-         aa(i,j)=0.0D0
-         bb(i,j)=0.0D0
+         aa_lip(i,j)=0.0D0
+         bb_lip(i,j)=0.0D0
+          aa_aq(i,j)=0.0D0
+          bb_aq(i,j)=0.0D0
          augm(i,j)=0.0D0
          sigma(i,j)=0.0D0
          r0(i,j)=0.0D0
@@ -104,9 +109,13 @@ C
        sigii(i)=0.0D0
        rr0(i)=0.0D0
        a0thet(i)=0.0D0
-       do j=1,2
-         athet(j,i)=0.0D0
-         bthet(j,i)=0.0D0
+        do j=1,2
+         do ichir1=-1,1
+          do ichir2=-1,1
+          athet(j,i,ichir1,ichir2)=0.0D0
+          bthet(j,i,ichir1,ichir2)=0.0D0
+          enddo
+         enddo
         enddo
        do j=0,3
          polthet(j,i)=0.0D0
@@ -132,15 +141,37 @@ C
       enddo
       nlob(ntyp1)=0
       dsc(ntyp1)=0.0D0
-      do i=1,maxtor
-       itortyp(i)=0
-       do j=1,maxtor
-         do k=1,maxterm
-           v1(k,j,i)=0.0D0
-           v2(k,j,i)=0.0D0
+      do i=-maxtor,maxtor
+        itortyp(i)=0
+       do iblock=1,2
+        do j=-maxtor,maxtor
+          do k=1,maxterm
+            v1(k,j,i,iblock)=0.0D0
+            v2(k,j,i,iblock)=0.0D0
           enddo
         enddo
+        enddo
       enddo
+      do iblock=1,2
+       do i=-maxtor,maxtor
+        do j=-maxtor,maxtor
+         do k=-maxtor,maxtor
+          do l=1,maxtermd_1
+            v1c(1,l,i,j,k,iblock)=0.0D0
+            v1s(1,l,i,j,k,iblock)=0.0D0
+            v1c(2,l,i,j,k,iblock)=0.0D0
+            v1s(2,l,i,j,k,iblock)=0.0D0
+          enddo !l
+          do l=1,maxtermd_2
+           do m=1,maxtermd_2
+            v2c(m,l,i,j,k,iblock)=0.0D0
+            v2s(m,l,i,j,k,iblock)=0.0D0
+           enddo !m
+          enddo !l
+        enddo !k
+       enddo !j
+      enddo !i
+      enddo !iblock
       do i=1,maxres
        itype(i)=0
        itel(i)=0
@@ -158,6 +189,12 @@ C Initialize the bridge arrays
       do i=1,maxres
        ihpb(i)=0
        jhpb(i)=0
+        dyn_ss_mask(i)=.false.
+      enddo
+      do i=1,maxres-1
+        do j=i+1,maxres
+          dyn_ssbond_ij(i,j)=1.0d300
+        enddo
       enddo
 C
 C Initialize timing.
@@ -218,28 +255,37 @@ c-------------------------------------------------------------------------
       include 'COMMON.NAMES'
       include 'COMMON.WEIGHTS'
       include 'COMMON.FFIELD'
+      include 'COMMON.SHIELD'
       data restyp /
+     &'DD','DAU','DAI','DDB','DSM','DPR','DLY','DAR','DHI','DAS','DGL',
+     & 'DSG','DGN','DSN','DTH',
+     &'DYY','DAL','DTY','DTR','DVA','DLE','DIL','DPN','MED','DCY','ZER',
      &'CYS','MET','PHE','ILE','LEU','VAL','TRP','TYR','ALA','GLY','THR',
-     &'SER','GLN','ASN','GLU','ASP','HIS','ARG','LYS','PRO','D'/
+     &'SER','GLN','ASN','GLU','ASP','HIS','ARG','LYS','PRO','SME','DBZ',
+     &'AIB','ABU','D'/
       data onelet /
+     &'z','z','z','z','z','p','k','r','h','d','e','n','q','s','t','g',
+     &'a','y','w','v','l','i','f','m','c','x',
      &'C','M','F','I','L','V','W','Y','A','G','T',
-     &'S','Q','N','E','D','H','R','K','P','X'/
+     &'S','Q','N','E','D','H','R','K','P','z','z','z','z','X'/
       data potname /'LJ','LJK','BP','GB','GBV'/
       data ename / 
      &   "EVDW SC-SC","EVDW2 SC-p","EES p-p","ECORR4 ","ECORR5 ",
      &   "ECORR6 ","EELLO ","ETURN3 ","ETURN4 ","ETURN6 ",
      &   "EBE bend","ESC SCloc","ETORS ","ETORSD ","EHPB","EVDWPP",
-     &   "EVDW2_14","ESTR","ESCCOR","EDIHC","EVDW_T"/
+     &   "EVDW2_14","ESTR","ESCCOR","EDIHC","EVDW_T","ELIPTRAN",
+     &   "EAFM","ETHETC","EMPTY"/
       data wname /
      &   "WSC","WSCP","WELEC","WCORR","WCORR5","WCORR6","WEL_LOC",
      &   "WTURN3","WTURN4","WTURN6","WANG","WSCLOC","WTOR","WTORD",
-     &   "WHPB","WVDWPP","WSCP14","WBOND","WSCCOR","WDIHC","WSC"/
+     &   "WHPB","WVDWPP","WSCP14","WBOND","WSCCOR","WDIHC","WSC",
+     &   "WLIPTRAN","WAFM","WTHETC","WSHIELD"/
       data ww0 /1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,
      &    1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,0.4d0,1.0d0,1.0d0,
-     &    0.0d0,0.0/
-      data nprint_ene /21/
+     &    0.0d0,0.0,0.0d0,0.0d0,0.0d0,0.0d0/
+      data nprint_ene /22/
       data print_order /1,2,3,18,11,12,13,14,4,5,6,7,8,9,10,19,
-     &  16,15,17,20,21/
+     &  16,15,17,20,21,24,22,23,1/
       end 
 c---------------------------------------------------------------------------
       subroutine init_int_table
@@ -257,26 +303,8 @@ c---------------------------------------------------------------------------
       include 'COMMON.LOCAL'
       include 'COMMON.SBRIDGE'
       include 'COMMON.IOUNITS'
+      include "COMMON.TORCNSTR"
       logical scheck,lprint
-#ifdef MPL
-      integer my_sc_int(0:max_fg_Procs-1),my_sc_intt(0:max_fg_Procs),
-     & my_ele_int(0:max_fg_Procs-1),my_ele_intt(0:max_fg_Procs)
-C... Determine the numbers of start and end SC-SC interaction 
-C... to deal with by current processor.
-      lprint=.false.
-      if (lprint)
-     &write (iout,*) 'INIT_INT_TABLE nres=',nres,' nnt=',nnt,' nct=',nct
-      n_sc_int_tot=(nct-nnt+1)*(nct-nnt)/2-nss
-      MyRank=MyID-(MyGroup-1)*fgProcs
-      call int_bounds(n_sc_int_tot,my_sc_inds,my_sc_inde)
-      if (lprint)
-     &  write (iout,*) 'Processor',MyID,' MyRank',MyRank,
-     &  ' n_sc_int_tot',n_sc_int_tot,' my_sc_inds=',my_sc_inds,
-     &  ' my_sc_inde',my_sc_inde
-      ind_sctint=0
-      iatsc_s=0
-      iatsc_e=0
-#endif
       lprint=.false.
       do i=1,maxres
         nint_gr(i)=0
@@ -296,6 +324,7 @@ cd    write (iout,*) 'ns=',ns,' nss=',nss,' ihpb,jhpb',
 cd   &   (ihpb(i),jhpb(i),i=1,nss)
       do i=nnt,nct-1
         scheck=.false.
+        if (dyn_ss) goto 10
         do ii=1,nss
           if (ihpb(ii).eq.i+nres) then
             scheck=.true.
@@ -307,66 +336,30 @@ cd   &   (ihpb(i),jhpb(i),i=1,nss)
 cd      write (iout,*) 'i=',i,' scheck=',scheck,' jj=',jj
         if (scheck) then
           if (jj.eq.i+1) then
-#ifdef MPL
-            write (iout,*) 'jj=i+1'
-            call int_partition(ind_scint,my_sc_inds,my_sc_inde,i,
-     & iatsc_s,iatsc_e,i+2,nct,nint_gr(i),istart(i,1),iend(i,1),*12)
-#else
             nint_gr(i)=1
             istart(i,1)=i+2
             iend(i,1)=nct
-#endif
           else if (jj.eq.nct) then
-#ifdef MPL
-            write (iout,*) 'jj=nct'
-            call int_partition(ind_scint,my_sc_inds,my_sc_inde,i,
-     &  iatsc_s,iatsc_e,i+1,nct-1,nint_gr(i),istart(i,1),iend(i,1),*12)
-#else
             nint_gr(i)=1
             istart(i,1)=i+1
             iend(i,1)=nct-1
-#endif
           else
-#ifdef MPL
-            call int_partition(ind_scint,my_sc_inds,my_sc_inde,i,
-     & iatsc_s,iatsc_e,i+1,jj-1,nint_gr(i),istart(i,1),iend(i,1),*12)
-            ii=nint_gr(i)+1
-            call int_partition(ind_scint,my_sc_inds,my_sc_inde,i,
-     & iatsc_s,iatsc_e,jj+1,nct,nint_gr(i),istart(i,ii),iend(i,ii),*12)
-#else
             nint_gr(i)=2
             istart(i,1)=i+1
             iend(i,1)=jj-1
             istart(i,2)=jj+1
             iend(i,2)=nct
-#endif
           endif
         else
-#ifdef MPL
-          call int_partition(ind_scint,my_sc_inds,my_sc_inde,i,
-     &    iatsc_s,iatsc_e,i+1,nct,nint_gr(i),istart(i,1),iend(i,1),*12)
-#else
           nint_gr(i)=1
           istart(i,1)=i+1
           iend(i,1)=nct
           ind_scint=int_scint+nct-i
-#endif
         endif
-#ifdef MPL
-        ind_scint_old=ind_scint
-#endif
       enddo
    12 continue
-#ifndef MPL
       iatsc_s=nnt
       iatsc_e=nct-1
-#endif
-#ifdef MPL
-      if (lprint) then
-        write (iout,*) 'Processor',MyID,' Group',MyGroup
-        write (iout,*) 'iatsc_s=',iatsc_s,' iatsc_e=',iatsc_e
-      endif
-#endif
       if (lprint) then
       write (iout,'(a)') 'Interaction array:'
       do i=iatsc_s,iatsc_e
@@ -375,33 +368,12 @@ cd      write (iout,*) 'i=',i,' scheck=',scheck,' jj=',jj
       enddo
       endif
       ispp=2
-#ifdef MPL
-C Now partition the electrostatic-interaction array
-      npept=nct-nnt
-      nele_int_tot=(npept-ispp)*(npept-ispp+1)/2
-      call int_bounds(nele_int_tot,my_ele_inds,my_ele_inde)
-      if (lprint)
-     & write (iout,*) 'Processor',MyID,' MyRank',MyRank,
-     &  ' nele_int_tot',nele_int_tot,' my_ele_inds=',my_ele_inds,
-     &               ' my_ele_inde',my_ele_inde
-      iatel_s=0
-      iatel_e=0
-      ind_eleint=0
-      ind_eleint_old=0
-      do i=nnt,nct-3
-        ijunk=0
-        call int_partition(ind_eleint,my_ele_inds,my_ele_inde,i,
-     &    iatel_s,iatel_e,i+ispp,nct-1,ijunk,ielstart(i),ielend(i),*13)
-      enddo ! i 
-   13 continue
-#else
       iatel_s=nnt
       iatel_e=nct-3
       do i=iatel_s,iatel_e
-        ielstart(i)=i+2
+        ielstart(i)=i+4
         ielend(i)=nct-1
       enddo
-#endif
       if (lprint) then
         write (iout,'(a)') 'Electrostatic interaction array:'
         do i=iatel_s,iatel_e
@@ -411,40 +383,6 @@ C Now partition the electrostatic-interaction array
 c     iscp=3
       iscp=2
 C Partition the SC-p interaction array
-#ifdef MPL
-      nscp_int_tot=(npept-iscp+1)*(npept-iscp+1)
-      call int_bounds(nscp_int_tot,my_scp_inds,my_scp_inde)
-      if (lprint)
-     & write (iout,*) 'Processor',MyID,' MyRank',MyRank,
-     &  ' nscp_int_tot',nscp_int_tot,' my_scp_inds=',my_scp_inds,
-     &               ' my_scp_inde',my_scp_inde
-      iatscp_s=0
-      iatscp_e=0
-      ind_scpint=0
-      ind_scpint_old=0
-      do i=nnt,nct-1
-        if (i.lt.nnt+iscp) then
-cd        write (iout,*) 'i.le.nnt+iscp'
-          call int_partition(ind_scpint,my_scp_inds,my_scp_inde,i,
-     &      iatscp_s,iatscp_e,i+iscp,nct,nscp_gr(i),iscpstart(i,1),
-     &      iscpend(i,1),*14)
-        else if (i.gt.nct-iscp) then
-cd        write (iout,*) 'i.gt.nct-iscp'
-          call int_partition(ind_scpint,my_scp_inds,my_scp_inde,i,
-     &      iatscp_s,iatscp_e,nnt,i-iscp,nscp_gr(i),iscpstart(i,1),
-     &      iscpend(i,1),*14)
-        else
-          call int_partition(ind_scpint,my_scp_inds,my_scp_inde,i,
-     &      iatscp_s,iatscp_e,nnt,i-iscp,nscp_gr(i),iscpstart(i,1),
-     &      iscpend(i,1),*14)
-          ii=nscp_gr(i)+1
-          call int_partition(ind_scpint,my_scp_inds,my_scp_inde,i,
-     &      iatscp_s,iatscp_e,i+iscp,nct,nscp_gr(i),iscpstart(i,ii),
-     &      iscpend(i,ii),*14)
-        endif
-      enddo ! i
-   14 continue
-#else
       iatscp_s=nnt
       iatscp_e=nct-1
       do i=nnt,nct-1
@@ -464,7 +402,6 @@ cd        write (iout,*) 'i.gt.nct-iscp'
           iscpend(i,2)=nct
         endif 
       enddo ! i
-#endif
       if (lprint) then
         write (iout,'(a)') 'SC-p interaction array:'
         do i=iatscp_s,iatscp_e
@@ -473,40 +410,22 @@ cd        write (iout,*) 'i.gt.nct-iscp'
         enddo
       endif ! lprint
 C Partition local interactions
-#ifdef MPL
-      call int_bounds(nres-2,loc_start,loc_end)
-      loc_start=loc_start+1
-      loc_end=loc_end+1
-      call int_bounds(nres-2,ithet_start,ithet_end)
-      ithet_start=ithet_start+2
-      ithet_end=ithet_end+2
-      call int_bounds(nct-nnt-2,iphi_start,iphi_end) 
-      iphi_start=iphi_start+nnt+2
-      iphi_end=iphi_end+nnt+2
-      if (lprint) then 
-        write (iout,*) 'Processor:',MyID,
-     & ' loc_start',loc_start,' loc_end',loc_end,
-     & ' ithet_start',ithet_start,' ithet_end',ithet_end,
-     & ' iphi_start',iphi_start,' iphi_end',iphi_end
-        write (*,*) 'Processor:',MyID,
-     & ' loc_start',loc_start,' loc_end',loc_end,
-     & ' ithet_start',ithet_start,' ithet_end',ithet_end,
-     & ' iphi_start',iphi_start,' iphi_end',iphi_end
-      endif
-      if (fgprocs.gt.1 .and. MyID.eq.BossID) then
-        write(iout,'(i10,a,i10,a,i10,a/a,i3,a)') n_sc_int_tot,' SC-SC ',
-     & nele_int_tot,' electrostatic and ',nscp_int_tot,
-     & ' SC-p interactions','were distributed among',fgprocs,
-     & ' fine-grain processors.'
-      endif
-#else
       loc_start=2
       loc_end=nres-1
-      ithet_start=3 
+      ithet_start=3
       ithet_end=nres
+      iturn3_start=nnt
+      iturn3_end=nct-3
+      iturn4_start=nnt
+      iturn4_end=nct-4
       iphi_start=nnt+3
       iphi_end=nct
-#endif
+      idihconstr_start=1
+      idihconstr_end=ndih_constr
+      ithetaconstr_start=1
+      ithetaconstr_end=ntheta_constr
+      itau_start=4
+      itau_end=nres
       return
       end 
 c---------------------------------------------------------------------------
@@ -555,15 +474,10 @@ c------------------------------------------------------------------------------
       include 'DIMENSIONS'
       include 'COMMON.SBRIDGE'
       include 'COMMON.IOUNITS'
-#ifdef MPL
-      include 'COMMON.INFO'
-      call int_bounds(nhpb,link_start,link_end)
-#else
       link_start=1
       link_end=nhpb
-#endif
-cd    write (iout,*) 'Processor',MyID,' MyRank',MyRank,
-cd   &  ' nhpb',nhpb,' link_start=',link_start,
-cd   &  ' link_end',link_end
+      write (iout,*) 'HPB_PARTITION',
+     &  ' nhpb',nhpb,' link_start=',link_start,
+     &  ' link_end',link_end
       return
       end