correction for idihconstr_end_homo, no differ in wham now
[unres.git] / source / unres / src_MD / initialize_p.F
index 7db117d..2b88edf 100644 (file)
@@ -37,8 +37,9 @@ cMS$ATTRIBUTES C ::  proc_proc
       include 'COMMON.MINIM' 
       include 'COMMON.DERIV'
       include 'COMMON.SPLITELE'
+      include 'COMMON.MD'
 c Common blocks from the diagonalization routines
-      COMMON /IOFILE/ IR,IW,IP,IJK,IPK,IDAF,NAV,IODA(400)
+      COMMON /IOFILE/ IR,IW,IPP,IJK,IPK,IDAF,NAV,IODA(400)
       COMMON /MACHSW/ KDIAG,ICORFL,IXDR
       logical mask_r
 c      real*8 text1 /'initial_i'/
@@ -245,6 +246,7 @@ C
 #ifndef SPLITELE
       nprint_ene=nprint_ene-1
 #endif
+      usampl=.true.
       return
       end
 c-------------------------------------------------------------------------
@@ -264,15 +266,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"," "," ",
+     &   "Ehomology","DFA DIS","DFA TOR","DFA NEI","DFA BET"/
       data wname /
      &   "WSC","WSCP","WELEC","WCORR","WCORR5","WCORR6","WEL_LOC",
      &   "WTURN3","WTURN4","WTURN6","WANG","WSCLOC","WTOR","WTORD",
      &   "WSTRAIN","WVDWPP","WBOND","SCAL14","     ","    ","WSCCOR",
-     &   " "," "/
-      data nprint_ene /20/
+     &   " "," ","EHOMO","WDFAD","WDFAT","WDFAN","WDFAB"/
+      data nprint_ene /25/
       data print_order/1,2,3,11,12,13,14,4,5,6,7,8,9,10,19,18,15,17,16,
-     & 21,0,0,0/
+     & 21,24,25,26,27,28,0,0,0/
       end 
 c---------------------------------------------------------------------------
       subroutine init_int_table
@@ -292,11 +295,12 @@ c---------------------------------------------------------------------------
       include 'COMMON.IOUNITS'
       include 'COMMON.DERIV'
       include 'COMMON.CONTACTS'
-      common /przechowalnia/ iturn3_start_all(0:MaxProcs),
-     & iturn3_end_all(0:MaxProcs),iturn4_start_all(0:MaxProcs),
-     & iturn4_end_all(0:MaxProcs),iatel_s_all(0:MaxProcs),
-     & iatel_e_all(0:MaxProcs),ielstart_all(maxres,0:MaxProcs-1),
-     & ielend_all(maxres,0:MaxProcs-1),
+      include 'COMMON.MD'
+      common /przechowalnia/ iturn3_start_all(0:max_fg_procs),
+     & iturn3_end_all(0:max_fg_procs),iturn4_start_all(0:max_fg_procs),
+     & iturn4_end_all(0:max_fg_procs),iatel_s_all(0:max_fg_procs),
+     &iatel_e_all(0:max_fg_procs),ielstart_all(maxres,0:max_fg_procs-1),
+     & ielend_all(maxres,0:max_fg_procs-1),
      & ntask_cont_from_all(0:max_fg_procs-1),
      & itask_cont_from_all(0:max_fg_procs-1,0:max_fg_procs-1),
      & ntask_cont_to_all(0:max_fg_procs-1),
@@ -345,6 +349,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.
@@ -557,6 +562,7 @@ C Partition local interactions
       call int_bounds(nres-2,ithet_start,ithet_end)
       ithet_start=ithet_start+2
       ithet_end=ithet_end+2
+      write (iout,*) "ithet_start",ithet_start," ithet_end",ithet_end
       call int_bounds(nct-nnt-2,iturn3_start,iturn3_end) 
       iturn3_start=iturn3_start+nnt
       iphi_start=iturn3_start+2
@@ -1116,15 +1122,16 @@ c---------------------------------------------------------------------------
       include "COMMON.INTERACT"
       include "COMMON.SETUP"
       include "COMMON.IOUNITS"
-      integer ii,jj,itask(4),ntask_cont_to,itask_cont_to(0:MaxProcs-1)
+      integer ii,jj,itask(4),
+     & ntask_cont_to,itask_cont_to(0:max_fg_procs-1)
       logical flag
       integer iturn3_start_all,iturn3_end_all,iturn4_start_all,
      & iturn4_end_all,iatel_s_all,iatel_e_all,ielstart_all,ielend_all
-      common /przechowalnia/ iturn3_start_all(0:MaxProcs),
-     & iturn3_end_all(0:MaxProcs),iturn4_start_all(0:MaxProcs),
-     & iturn4_end_all(0:MaxProcs),iatel_s_all(0:MaxProcs),
-     & iatel_e_all(0:MaxProcs),ielstart_all(maxres,0:MaxProcs-1),
-     & ielend_all(maxres,0:MaxProcs-1)
+      common /przechowalnia/ iturn3_start_all(0:max_fg_procs),
+     & iturn3_end_all(0:max_fg_procs),iturn4_start_all(0:max_fg_procs),
+     & iturn4_end_all(0:max_fg_procs),iatel_s_all(0:max_fg_procs),
+     &iatel_e_all(0:max_fg_procs),ielstart_all(maxres,0:max_fg_procs-1),
+     & ielend_all(maxres,0:max_fg_procs-1)
       integer iproc,isent,k,l
 c Determines whether to send interaction ii,jj to other processors; a given
 c interaction can be sent to at most 2 processors.
@@ -1206,15 +1213,15 @@ c---------------------------------------------------------------------------
       include "COMMON.SETUP"
       include "COMMON.IOUNITS"
       integer ii,jj,itask(2),ntask_cont_from,
-     & itask_cont_from(0:MaxProcs-1)
+     & itask_cont_from(0:max_fg_procs-1)
       logical flag
       integer iturn3_start_all,iturn3_end_all,iturn4_start_all,
      & iturn4_end_all,iatel_s_all,iatel_e_all,ielstart_all,ielend_all
-      common /przechowalnia/ iturn3_start_all(0:MaxProcs),
-     & iturn3_end_all(0:MaxProcs),iturn4_start_all(0:MaxProcs),
-     & iturn4_end_all(0:MaxProcs),iatel_s_all(0:MaxProcs),
-     & iatel_e_all(0:MaxProcs),ielstart_all(maxres,0:MaxProcs-1),
-     & ielend_all(maxres,0:MaxProcs-1)
+      common /przechowalnia/ iturn3_start_all(0:max_fg_procs),
+     & iturn3_end_all(0:max_fg_procs),iturn4_start_all(0:max_fg_procs),
+     & iturn4_end_all(0:max_fg_procs),iatel_s_all(0:max_fg_procs),
+     &iatel_e_all(0:max_fg_procs),ielstart_all(maxres,0:max_fg_procs-1),
+     & ielend_all(maxres,0:max_fg_procs-1)
       integer iproc,k,l
       do iproc=fg_rank+1,nfgtasks-1
         do k=iturn3_start_all(iproc),iturn3_end_all(iproc)
@@ -1266,7 +1273,7 @@ c---------------------------------------------------------------------------
       subroutine add_task(iproc,ntask_cont,itask_cont)
       implicit none
       include "DIMENSIONS"
-      integer iproc,ntask_cont,itask_cont(0:MaxProcs-1)
+      integer iproc,ntask_cont,itask_cont(0:max_fg_procs-1)
       integer ii
       do ii=1,ntask_cont
         if (itask_cont(ii).eq.iproc) return
@@ -1375,6 +1382,7 @@ c------------------------------------------------------------------------------
       include 'COMMON.IOUNITS'
       include 'COMMON.SETUP'
       include 'COMMON.CONTROL'
+c      write(2,*)"hpb_partition: nhpb=",nhpb
 #ifdef MPI
       call int_bounds(nhpb,link_start,link_end)
       if (.not. out1file) 
@@ -1386,5 +1394,49 @@ c------------------------------------------------------------------------------
       link_start=1
       link_end=nhpb
 #endif
+c      write(2,*)"hpb_partition: link_start=",nhpb," link_end=",link_end
+      return
+      end
+c------------------------------------------------------------------------------
+      subroutine homology_partition
+      implicit real*8 (a-h,o-z)
+      include 'DIMENSIONS'
+#ifdef MPI
+      include 'mpif.h'
+#endif
+      include 'COMMON.SBRIDGE'
+      include 'COMMON.IOUNITS'
+      include 'COMMON.SETUP'
+      include 'COMMON.CONTROL'
+      include 'COMMON.MD'
+      include 'COMMON.INTERACT'
+cd      write(iout,*)"homology_partition: lim_odl=",lim_odl,
+cd     &   " lim_dih",lim_dih
+#ifdef MPI
+      if (me.eq.king .or. .not. out1file) write (iout,*) "MPI"
+      call int_bounds(lim_odl,link_start_homo,link_end_homo)
+      call int_bounds(lim_dih,idihconstr_start_homo,
+     &  idihconstr_end_homo)
+      idihconstr_start_homo=idihconstr_start_homo+nnt-1+3
+      idihconstr_end_homo=idihconstr_end_homo+nnt-1+3
+      if (me.eq.king .or. .not. out1file) 
+     &  write (iout,*) 'Processor',fg_rank,' CG group',kolor,
+     &  ' absolute rank',MyRank,
+     &  ' lim_odl',lim_odl,' link_start=',link_start_homo,
+     &  ' link_end',link_end_homo,' lim_dih',lim_dih,
+     &  ' idihconstr_start_homo',idihconstr_start_homo,
+     &  ' idihconstr_end_homo',idihconstr_end_homo
+#else
+      write (iout,*) "Not MPI"
+      link_start_homo=1
+      link_end_homo=lim_odl
+      idihconstr_start_homo=nnt+3
+      idihconstr_end_homo=lim_dih+nnt-1+3
+      write (iout,*) 
+     &  ' lim_odl',lim_odl,' link_start=',link_start_homo,
+     &  ' link_end',link_end_homo,' lim_dih',lim_dih,
+     &  ' idihconstr_start_homo',idihconstr_start_homo,
+     &  ' idihconstr_end_homo',idihconstr_end_homo
+#endif
       return
       end