subroutine etotal_long(energia)
- implicit real*8 (a-h,o-z)
+ implicit none
include 'DIMENSIONS'
c
c Compute the long-range slow-varying contributions to the energy
#ifdef MPI
include "mpif.h"
double precision weights_(n_ene)
+ double precision time00,time_Bcast,time_BcastW
+ integer ierror,ierr
#endif
include 'COMMON.SETUP'
include 'COMMON.IOUNITS'
include 'COMMON.CHAIN'
include 'COMMON.VAR'
include 'COMMON.LOCAL'
+ include 'COMMON.QRESTR'
include 'COMMON.MD'
include 'COMMON.CONTROL'
+ double precision evdw,evdw1,evdw2,evdw2_14,ees,eel_loc,
+ & eello_turn3,eello_turn4,edfadis,estr,ehpb,ebe,ethetacnstr,
+ & escloc,etors,edihcnstr,etors_d,esccor,ecorr,ecorr5,ecorr6,eturn6,
+ & eliptran,Eafmforce,Etube,
+ & esaxs_constr,ehomology_constr,edfator,edfanei,edfabet
+ integer i,n_corr,n_corr1
c write(iout,'(a,i2)')'Calling etotal_long ipot=',ipot
if (modecalc.eq.12.or.modecalc.eq.14) then
#ifdef MPI
#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)
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)
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)
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
else
call escp_soft_sphere(evdw2,evdw2_14)
endif
+#ifdef FOURBODY
C
C 12/1/95 Multi-body terms
C
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
C after the equilibration time
#ifdef MPI
include "mpif.h"
double precision weights_(n_ene)
+ double precision time00
+ integer ierror,ierr
#endif
include 'COMMON.SETUP'
include 'COMMON.IOUNITS'
include 'COMMON.VAR'
include 'COMMON.LOCAL'
include 'COMMON.CONTROL'
+ include 'COMMON.SAXS'
include 'COMMON.TORCNSTR'
-
+ double precision evdw,evdw1,evdw2,evdw2_14,ees,eel_loc,
+ & eello_turn3,eello_turn4,edfadis,estr,ehpb,ebe,ethetacnstr,
+ & escloc,etors,edihcnstr,etors_d,esccor,ecorr,ecorr5,ecorr6,eturn6,
+ & eliptran,Eafmforce,Etube,
+ & esaxs_constr,ehomology_constr,edfator,edfanei,edfabet
+ integer i,n_corr,n_corr1
c write(iout,'(a,i2)')'Calling etotal_short ipot=',ipot
c call flush(iout)
if (modecalc.eq.12.or.modecalc.eq.14) then
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)
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