corrections
[unres.git] / source / unres / src-HCD-5D / energy_split-sep.F
index c4f6dd4..11ea406 100644 (file)
@@ -44,6 +44,13 @@ c        if (fg_rank.eq.0) call int_from_cart1(.false.)
 #endif
       endif
 #ifdef MPI      
+      edfadis=0.0d0
+      edfator=0.0d0
+      edfanei=0.0d0
+      edfabet=0.0d0
+      ehomology_constr=0.0d0
+      Uconst=0.0d0
+      Uconst_back=0.0d0
 c      write(iout,*) "ETOTAL_LONG Processor",fg_rank,
 c     & " absolute rank",myrank," nfgtasks",nfgtasks
 c      call flush(iout)
@@ -75,7 +82,13 @@ C FG slaves as WEIGHTS array.
           weights_(17)=wbond
           weights_(18)=scal14
           weights_(21)=wsccor
+          weights_(22)=wliptran
+          weights_(25)=wtube
           weights_(26)=wsaxs
+          weights_(28)=wdfa_dist
+          weights_(29)=wdfa_tor
+          weights_(30)=wdfa_nei
+          weights_(31)=wdfa_beta
 C FG Master broadcasts the WEIGHTS_ array
           call MPI_Bcast(weights_(1),n_ene,
      &        MPI_DOUBLE_PRECISION,king,FG_COMM,IERROR)
@@ -102,7 +115,13 @@ C FG slaves receive the WEIGHTS array
           wbond=weights(17)
           scal14=weights(18)
           wsccor=weights(21)
+          wliptran=weights(22)
+          wtube=weights(25)
           wsaxs=weights(26)
+          wdfa_dist=weights_(28)
+          wdfa_tor=weights_(29)
+          wdfa_nei=weights_(30)
+          wdfa_beta=weights_(31)
         endif
         call MPI_Bcast(dc(1,1),6*nres,MPI_DOUBLE_PRECISION,
      &    king,FG_COMM,IERR)
@@ -115,6 +134,15 @@ c      write (iout,*) 'Processor',myrank,
 c     &  ' calling etotal_short ipot=',ipot
 c      call flush(iout)
 c      print *,'Processor',myrank,' nnt=',nnt,' nct=',nct
+      if (nfgtasks.gt.1) then
+        call MPI_Bcast(itime_mat,1,MPI_INT,king,FG_COMM,IERROR)
+      endif
+      if (mod(itime_mat,imatupdate).eq.0) then
+        call make_SCp_inter_list
+        call make_SCSC_inter_list
+        call make_pp_inter_list
+        call make_pp_vdw_inter_list
+      endif
 #endif     
 cd    print *,'nnt=',nnt,' nct=',nct
 C
@@ -209,7 +237,17 @@ c     &" ecorr",ecorr," ecorr5",ecorr5," ecorr6",ecorr6," eturn6",eturn6
       endif
       if ((wcorr4.eq.0.0d0 .and. wcorr.gt.0.0d0) .and. ipot.lt.6) then
          call multibody_hb(ecorr,ecorr5,ecorr6,n_corr,n_corr1)
+      else
+         ecorr=0.0d0
+         ecorr5=0.0d0
+         ecorr6=0.0d0
+         eturn6=0.0d0
       endif
+#else
+         ecorr=0.0d0
+         ecorr5=0.0d0
+         ecorr6=0.0d0
+         eturn6=0.0d0
 #endif
 C 
 C If performing constraint dynamics, call the constraint energy
@@ -318,6 +356,18 @@ c      call flush(iout)
       edfanei=0.0d0
       edfabet=0.0d0
 #endif
+      evdw=0.0d0
+      ees=0.0d0
+      evdw1=0.0d0
+      eel_loc=0.0d0
+      eello_turn3=0.0d0
+      eello_turn4=0.0d0
+      evdw2=0
+      evdw2_14=0
+      ecorr=0.0d0
+      ecorr5=0.0d0
+      ecorr6=0.0d0
+      eturn6=0.0d0
 c      write(iout,*) "ETOTAL_SHORT Processor",fg_rank,
 c     & " absolute rank",myrank," nfgtasks",nfgtasks
 c      call flush(iout)
@@ -498,6 +548,28 @@ C energy function
         etors=0.0d0
       endif
       edihcnstr=0.0d0
+c Lipid transfer
+      if (wliptran.gt.0) then
+        call Eliptransfer(eliptran)
+      else
+        eliptran=0.0d0
+      endif
+      if (AFMlog.gt.0) then
+        call AFMforce(Eafmforce)
+      else if (selfguide.gt.0) then
+        call AFMvel(Eafmforce)
+      else 
+        Eafmforce=0.0d0
+      endif
+      if (TUBElog.eq.1) then
+C      print *,"just before call"
+        call calctube(Etube)
+      elseif (TUBElog.eq.2) then
+        call calctube2(Etube)
+      else
+        Etube=0.0d0
+      endif
+
       if (ndih_constr.gt.0) call etor_constr(edihcnstr)
 c      print *,"Processor",myrank," computed Utor"
 C