correction in tube for parallel code
[unres.git] / source / unres / src_MD-M / initialize_p.F
index 2a6180a..696a931 100644 (file)
@@ -119,6 +119,9 @@ C
       icsa_in=40
 crc for ifc error 118
       icsa_pdb=42
+      itorkcc=43
+      ithetkcc=44
+      itube=45
 C Lipidic input file for parameters range 60-79
       iliptranpar=60
 C input file for transfer sidechain and peptide group inside the
@@ -333,14 +336,16 @@ c-------------------------------------------------------------------------
      &   "EVDW SC-SC","EVDW2 SC-p","EES p-p","ECORR4 ","ECORR5 ",
      &   "ECORR6 ","EELLO ","ETURN3 ","ETURN4 ","ETURN6 ",
      &   "EBE bend","ESC SCloc","ETORS ","ETORSD ","EHPB ","EVDWPP ",
-     &   "ESTR ","EVDW2_14 ","UCONST ", "      ","ESCCOR"/
+     &   "ESTR ","EVDW2_14 ","UCONST ", "      ","ESCCOR",
+     &    "ELIPTRAN", "EAFM", "ETHETCNSTR", " "/
       data wname /
      &   "WSC","WSCP","WELEC","WCORR","WCORR5","WCORR6","WEL_LOC",
      &   "WTURN3","WTURN4","WTURN6","WANG","WSCLOC","WTOR","WTORD",
-     &   "WSTRAIN","WVDWPP","WBOND","SCAL14","     ","    ","WSCCOR"/
+     &   "WSTRAIN","WVDWPP","WBOND","SCAL14","     ","    ","WSCCOR",
+     &    "WLT", "WAFM", "WTHETCNSR", " "/
       data nprint_ene /20/
       data print_order/1,2,3,11,12,13,14,4,5,6,7,8,9,10,19,18,15,17,16,
-     & 21,0/
+     & 21,0,22,23,24,25/
       end 
 c---------------------------------------------------------------------------
       subroutine init_int_table
@@ -380,7 +385,7 @@ C... to deal with by current processor.
         itask_cont_from(i)=fg_rank
         itask_cont_to(i)=fg_rank
       enddo
-      lprint=.false.
+      lprint=energy_dec
       if (lprint)
      &write (iout,*) 'INIT_INT_TABLE nres=',nres,' nnt=',nnt,' nct=',nct
       n_sc_int_tot=(nct-nnt+1)*(nct-nnt)/2-nss
@@ -479,6 +484,7 @@ c            write (iout,*) 'jj=nct'
       iatsc_s=nnt
       iatsc_e=nct-1
 #endif
+      if (iatsc_s.eq.0) iatsc_s=1
 #ifdef MPI
       if (lprint) write (*,*) 'Processor',fg_rank,' CG Group',kolor,
      &   ' absolute rank',myrank,' iatsc_s=',iatsc_s,' iatsc_e=',iatsc_e
@@ -611,6 +617,7 @@ cd        write (iout,*) 'i.gt.nct-iscp'
         endif 
       enddo ! i
 #endif
+      if (iatscp_s.eq.0) iatscp_s=1
       if (lprint) then
         write (iout,'(a)') 'SC-p interaction array:'
         do i=iatscp_s,iatscp_e
@@ -654,6 +661,10 @@ C Partition local interactions
       ibondp_end=ibondp_end+nnt
       call int_bounds(nres,ilip_start,ilip_end)
       ilip_start=ilip_start
+      ilip_end=ilip_end
+      call int_bounds(nres-1,itube_start,itube_end)
+      itube_start=itube_start
+      itube_end=itube_end     
       call int_bounds1(nres-1,ivec_start,ivec_end) 
 c      print *,"Processor",myrank,fg_rank,fg_rank1,
 c     &  " ivec_start",ivec_start," ivec_end",ivec_end
@@ -665,6 +676,13 @@ c     &  " ivec_start",ivec_start," ivec_end",ivec_end
       else
         call int_bounds(ndih_constr,idihconstr_start,idihconstr_end)
       endif
+      if (ntheta_constr.eq.0) then
+        ithetaconstr_start=1
+        ithetaconstr_end=0
+      else
+        call int_bounds
+     &  (ntheta_constr,ithetaconstr_start,ithetaconstr_end)
+      endif
 c      nsumgrad=(nres-nnt)*(nres-nnt+1)/2
 c      nlen=nres-nnt+1
       nsumgrad=(nres-nnt)*(nres-nnt+1)/2
@@ -699,7 +717,10 @@ c      nlen=nres-nnt+1
      & ' ivec_start',ivec_start,' ivec_end',ivec_end,
      & ' iset_start',iset_start,' iset_end',iset_end,
      & ' idihconstr_start',idihconstr_start,' idihconstr_end',
-     &   idihconstr_end
+     &   idihconstr_end,
+     & ' ithetaconstr_start',ithetaconstr_start,' ithetaconstr_end',
+     &   ithetaconstr_end
+
        write (*,*) 'Processor:',fg_rank,myrank,' igrad_start',
      &   igrad_start,' igrad_end',igrad_end,' ngrad_start',ngrad_start,
      &   ' ngrad_end',ngrad_end
@@ -739,7 +760,7 @@ c      nlen=nres-nnt+1
         iaux=iphi1_end-iphi1_start+1
         call MPI_Allgather(iaux,1,MPI_INTEGER,iphi1_count(0),1,
      &    MPI_INTEGER,FG_COMM,IERROR)
-        do i=0,maxprocs-1
+        do i=0,max_fg_procs-1
           do j=1,maxres
             ielstart_all(j,i)=0
             ielend_all(j,i)=0
@@ -984,9 +1005,15 @@ c          call flush(iout)
         call MPI_Group_free(cont_to_group,ierr)
         call MPI_Type_contiguous(3,MPI_DOUBLE_PRECISION,MPI_UYZ,IERROR)
         call MPI_Type_commit(MPI_UYZ,IERROR)
+        call MPI_Type_contiguous(maxcontsshi,MPI_INTEGER,MPI_I50,IERROR)
+        call MPI_Type_commit(MPI_I50,IERROR)
         call MPI_Type_contiguous(18,MPI_DOUBLE_PRECISION,MPI_UYZGRAD,
      &    IERROR)
         call MPI_Type_commit(MPI_UYZGRAD,IERROR)
+         impishi=maxcontsshi*3
+        call MPI_Type_contiguous(impishi,MPI_DOUBLE_PRECISION,
+     &   MPI_SHI,IERROR)
+        call MPI_Type_commit(MPI_SHI,IERROR)
         call MPI_Type_contiguous(2,MPI_DOUBLE_PRECISION,MPI_MU,IERROR)
         call MPI_Type_commit(MPI_MU,IERROR)
         call MPI_Type_contiguous(4,MPI_DOUBLE_PRECISION,MPI_MAT1,IERROR)
@@ -1164,6 +1191,8 @@ c        write (iout,*) "MPI_ROTAT2",MPI_ROTAT2
       iphi1_end=nres
       idihconstr_start=1
       idihconstr_end=ndih_constr
+      ithetaconstr_start=1
+      ithetaconstr_end=ntheta_constr
       iphid_start=iphi_start
       iphid_end=iphi_end-1
       itau_start=4
@@ -1171,7 +1200,8 @@ c        write (iout,*) "MPI_ROTAT2",MPI_ROTAT2
       ibond_start=2
       ibond_end=nres-1
       ibondp_start=nnt
-      ibondp_end=nct-1
+C      ibondp_end=nct-1
+      ibondp_end=nct
       ivec_start=1
       ivec_end=nres-1
       iset_start=3
@@ -1180,6 +1210,9 @@ c        write (iout,*) "MPI_ROTAT2",MPI_ROTAT2
       iint_end=nres-1
       ilip_start=1
       ilip_end=nres
+      itube_start=1
+      itube_end=nres
+
 #endif
       return
       end