Merge branch 'devel' into AFM
[unres.git] / source / unres / src_MD-M / initialize_p.F
index 17e59a8..da0d3f9 100644 (file)
@@ -256,20 +256,30 @@ C Initialize the bridge arrays
        jhpb(i)=0
       enddo
 C Initialize correlation arrays
-      do i=-maxtor,maxtor
+      do i=1,maxres
        do k=1,2
         b1(k,i)=0.0
         b2(k,i)=0.0
         b1tilde(k,i)=0.0
 c        b2tilde(k,i)=0.0
         do j=1,2
+C        CC(j,k,i)=0.0
+C        Ctilde(j,k,i)=0.0
+C        DD(j,k,i)=0.0
+C        Dtilde(j,k,i)=0.0
+        EE(j,k,i)=0.0
+        enddo
+       enddo
+      enddo
+      do i=-maxtor,maxtor
+       do k=1,2
+        do j=1,2
         CC(j,k,i)=0.0
         Ctilde(j,k,i)=0.0
         DD(j,k,i)=0.0
         Dtilde(j,k,i)=0.0
-        EE(j,k,i)=0.0
         enddo
-       enddo
+      enddo
       enddo
 C
 C Initialize timing.
@@ -370,7 +380,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
@@ -469,6 +479,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
@@ -601,6 +612,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
@@ -655,6 +667,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
+        idihconstr_start=1
+        idihconstr_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
@@ -689,7 +708,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
@@ -1154,6 +1176,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
@@ -1161,7 +1185,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