Merge branch 'devel' into AFM
[unres.git] / source / unres / src_MD / initialize_p.F
index 75c98de..2eb1489 100644 (file)
@@ -164,8 +164,12 @@ c      call memmon_print_usage()
        rr0(i)=0.0D0
        a0thet(i)=0.0D0
        do j=1,2
-         athet(j,i)=0.0D0
-         bthet(j,i)=0.0D0
+         do k=-1,1
+         do kk=-1,1
+          athet(j,i,k,kk)=0.0D0
+         bthet(j,i,k,kk)=0.0D0
+         enddo
+         enddo
         enddo
        do j=0,3
          polthet(j,i)=0.0D0
@@ -191,15 +195,17 @@ c      call memmon_print_usage()
       enddo
       nlob(ntyp1)=0
       dsc(ntyp1)=0.0D0
+      do iblock=1,2
       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
+           v1(k,j,i,iblock)=0.0D0
+           v2(k,j,i,iblock)=0.0D0
           enddo
         enddo
       enddo
+      enddo
       do i=1,maxres
        itype(i)=0
        itel(i)=0
@@ -292,11 +298,11 @@ 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),
+      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),
@@ -312,7 +318,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
@@ -345,6 +351,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.
@@ -410,6 +417,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
@@ -542,6 +550,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
@@ -564,6 +573,9 @@ C Partition local interactions
       iphi_end=iturn3_end+2
       iturn3_start=iturn3_start-1
       iturn3_end=iturn3_end-1
+      call int_bounds(nres-3,itau_start,itau_end) 
+      itau_start=itau_start+3
+      itau_end=itau_end+3
       call int_bounds(nres-3,iphi1_start,iphi1_end)
       iphi1_start=iphi1_start+3
       iphi1_end=iphi1_end+3
@@ -1090,6 +1102,8 @@ c        write (iout,*) "MPI_ROTAT2",MPI_ROTAT2
       idihconstr_end=ndih_constr
       iphid_start=iphi_start
       iphid_end=iphi_end-1
+      itau_start=4
+      itau_end=nres
       ibond_start=2
       ibond_end=nres-1
       ibondp_start=nnt+1
@@ -1111,15 +1125,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.
@@ -1201,15 +1216,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)
@@ -1261,7 +1276,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
@@ -1370,6 +1385,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) 
@@ -1381,5 +1397,6 @@ c------------------------------------------------------------------------------
       link_start=1
       link_end=nhpb
 #endif
+c      write(2,*)"hpb_partition: link_start=",nhpb," link_end=",link_end
       return
       end