+++ /dev/null
- subroutine etotal_long(energia)
- implicit real*8 (a-h,o-z)
- include 'DIMENSIONS'
-c
-c Compute the long-range slow-varying contributions to the energy
-c
-#ifndef ISNAN
- external proc_proc
-#ifdef WINPGI
-cMS$ATTRIBUTES C :: proc_proc
-#endif
-#endif
-
- include 'COMMON.IOUNITS'
- double precision energia(0:n_ene),energia1(0:n_ene+1)
- include 'COMMON.FFIELD'
- include 'COMMON.DERIV'
- include 'COMMON.INTERACT'
- include 'COMMON.SBRIDGE'
- include 'COMMON.CHAIN'
- include 'COMMON.VAR'
- include 'COMMON.MD'
-c
-c Zero out energy components
-c
- evdw=0.0d0
- evdw2=0.0d0
- evdw2_14=0.0d0
- ees=0.0d0
- evdw1=0.0d0
- ecorr=0.0d0
- ecorr5=0.0d0
- ecorr6=0.0d0
- eel_loc=0.0d0
- eello_turn3=0.0d0
- eello_turn4=0.0d0
- eturn6=0.0d0
- ebe=0.0d0
- escloc=0.0d0
- etors=0.0d0
- etors_d=0.0d0
- ehpb=0.0d0
- edihcnstr=0.0d0
- estr=0.0d0
- esccor=0.0d0
-
- call int_from_cart1(.false.)
-cd print '(a,i2)','Calling etotal ipot=',ipot
-cd print *,'nnt=',nnt,' nct=',nct
-C
-C Compute the side-chain and electrostatic interaction energy
-C
- goto (101,102,103,104,105,106) ipot
-C Lennard-Jones potential.
- 101 call elj(evdw)
-cd print '(a)','Exit ELJ'
- goto 107
-C Lennard-Jones-Kihara potential (shifted).
- 102 call eljk(evdw)
- goto 107
-C Berne-Pechukas potential (dilated LJ, angular dependence).
- 103 call ebp(evdw)
- goto 107
-C Gay-Berne potential (shifted LJ, angular dependence).
- 104 call egb(evdw)
- goto 107
-C Gay-Berne-Vorobjev potential (shifted LJ, angular dependence).
- 105 call egbv(evdw)
- goto 107
-C Soft-sphere potential
- 106 call e_softsphere(evdw)
-C
-C Calculate electrostatic (H-bonding) energy of the main chain.
-C
- 107 continue
-c print *,"Processor",myrank," computed USCSC"
- call vec_and_deriv
-c print *,"Processor",myrank," left VEC_AND_DERIV"
- if (ipot.lt.6) then
-#ifdef SPLITELE
- if (welec.gt.0d0.or.wvdwpp.gt.0d0.or.wel_loc.gt.0d0.or.
- & wturn3.gt.0d0.or.wturn4.gt.0d0) then
-#else
- if (welec.gt.0d0.or.wel_loc.gt.0d0.or.
- & wturn3.gt.0d0.or.wturn4.gt.0d0) then
-#endif
- call eelec(ees,evdw1,eel_loc,eello_turn3,eello_turn4)
- else
- ees=0
- evdw1=0
- eel_loc=0
- eello_turn3=0
- eello_turn4=0
- endif
- else
-c write (iout,*) "Soft-spheer ELEC potential"
- call eelec_soft_sphere(ees,evdw1,eel_loc,eello_turn3,
- & eello_turn4)
- endif
-C
-C Calculate excluded-volume interaction energy between peptide groups
-C and side chains.
-C
- if (ipot.lt.6) then
- call escp(evdw2,evdw2_14)
- else
-c write (iout,*) "Soft-sphere SCP potential"
- call escp_soft_sphere(evdw2,evdw2_14)
- endif
-C
-C 12/1/95 Multi-body terms
-C
- n_corr=0
- n_corr1=0
- if ((wcorr4.gt.0.0d0 .or. wcorr5.gt.0.0d0 .or. wcorr6.gt.0.0d0
- & .or. wturn6.gt.0.0d0) .and. ipot.lt.6) then
- call multibody_eello(ecorr,ecorr5,ecorr6,eturn6,n_corr,n_corr1)
-c write (2,*) 'n_corr=',n_corr,' n_corr1=',n_corr1,
-c &" ecorr",ecorr," ecorr5",ecorr5," ecorr6",ecorr6," eturn6",eturn6
- else
- ecorr=0.0d0
- ecorr5=0.0d0
- ecorr6=0.0d0
- eturn6=0.0d0
- 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)
- endif
-#ifndef CRYST_THET
-C
-C Calculate the virtual-bond-angle energy.
-C
-c call ebend(ebe)
-#endif
-C
-C Calculate the SC local energy.
-C
-#ifndef CRYST_SC
-c call esc(escloc)
-#endif
-#ifndef CRYST_TOR
-C
-C Calculate the virtual-bond torsional energy.
-C
- call etor(etors,edihcnstr)
-#endif
-C
-C 6/23/01 Calculate double-torsional energy
-C
- call etor_d(etors_d)
-C
-C Sum the energies
-C
- if (wsccor.gt.0.0d0) then
- call eback_sc_corr(esccor)
- else
- esccor=0.0d0
- endif
-C
-C If performing constraint dynamics, call the constraint energy
-C after the equilibration time
- if(usampl.and.totT.gt.eq_time) then
- call EconstrQ
- call Econstr_back
- else
- Uconst=0.0d0
- Uconst_back=0.0d0
- endif
-c print *,"Processor",myrank," computed Uconstr"
-c
-C Sum the energies
-C
- energia(1)=evdw
-#ifdef SCP14
- energia(2)=evdw2-evdw2_14
- energia(18)=evdw2_14
-#else
- energia(2)=evdw2
- energia(18)=0.0d0
-#endif
-#ifdef SPLITELE
- energia(3)=ees
- energia(16)=evdw1
-#else
- energia(3)=ees+evdw1
- energia(16)=0.0d0
-#endif
- energia(4)=ecorr
- energia(5)=ecorr5
- energia(6)=ecorr6
- energia(7)=eel_loc
- energia(8)=eello_turn3
- energia(9)=eello_turn4
- energia(10)=eturn6
- energia(11)=ebe
- energia(12)=escloc
- energia(13)=etors
- energia(14)=etors_d
- energia(15)=ehpb
- energia(19)=edihcnstr
- energia(17)=estr
- energia(20)=Uconst+Uconst_back
- energia(21)=esccor
- call sum_energy(energia,.true.)
- return
- end
-c------------------------------------------------------------------------------
- subroutine etotal_short(energia)
- implicit real*8 (a-h,o-z)
- include 'DIMENSIONS'
-c
-c Compute the short-range fast-varying contributions to the energy
-c
-#ifndef ISNAN
- external proc_proc
-#ifdef WINPGI
-cMS$ATTRIBUTES C :: proc_proc
-#endif
-#endif
- include 'COMMON.IOUNITS'
- double precision energia(0:n_ene)
- include 'COMMON.FFIELD'
- include 'COMMON.DERIV'
- include 'COMMON.INTERACT'
- include 'COMMON.SBRIDGE'
- include 'COMMON.CHAIN'
- include 'COMMON.VAR'
-c
-c Zero out energy components
-c
- evdw=0.0d0
- evdw2=0.0d0
- evdw2_14=0.0d0
- ees=0.0d0
- evdw1=0.0d0
- ecorr=0.0d0
- ecorr5=0.0d0
- ecorr6=0.0d0
- eel_loc=0.0d0
- eello_turn3=0.0d0
- eello_turn4=0.0d0
- eturn6=0.0d0
- ebe=0.0d0
- escloc=0.0d0
- etors=0.0d0
- etors_d=0.0d0
- ehpb=0.0d0
- edihcnstr=0.0d0
- estr=0.0d0
- esccor=0.0d0
-
- call int_from_cart1(.false.)
-c
-c Calculate the bond-stretching energy
-c
- call ebond(estr)
-C
-C Calculate the disulfide-bridge and other energy and the contributions
-C from other distance constraints.
- call edis(ehpb)
-c#ifdef CRYST_THET
-C
-C Calculate the virtual-bond-angle energy.
-C
- call ebend(ebe)
-c#endif
-C
-C Calculate the SC local energy.
-C
-c#ifdef CRYST_SC
- call vec_and_deriv
- call esc(escloc)
-c#endif
-#ifdef CRYST_TOR
-C
-C Calculate the virtual-bond torsional energy.
-C
- call etor(etors,edihcnstr)
-#endif
-c
-C Sum the energies
-C
- energia(1)=evdw
-#ifdef SCP14
- energia(2)=evdw2-evdw2_14
- energia(18)=evdw2_14
-#else
- energia(2)=evdw2
- energia(18)=0.0d0
-#endif
-#ifdef SPLITELE
- energia(3)=ees
- energia(16)=evdw1
-#else
- energia(3)=ees+evdw1
- energia(16)=0.0d0
-#endif
- energia(4)=ecorr
- energia(5)=ecorr5
- energia(6)=ecorr6
- energia(7)=eel_loc
- energia(8)=eello_turn3
- energia(9)=eello_turn4
- energia(10)=eturn6
- energia(11)=ebe
- energia(12)=escloc
- energia(13)=etors
- energia(14)=etors_d
- energia(15)=ehpb
- energia(19)=edihcnstr
- energia(17)=estr
- energia(20)=Uconst+Uconst_back
- energia(21)=esccor
- call sum_energy(energia,.true.)
- return
- end