--- /dev/null
+1.1970470 5.3667307 0 0 0 0 3.0000000
+1.5539975 5.6438808 0 0 0 0 3.0000000
+1.6679316 5.6689787 0 0 0 0 3.0000000
+1.6606077 5.9381499 0 0 0 0 3.0000000
+1.7428987 5.8625088 0 0 0 0 3.0000000
+1.7310307 5.9950466 0 0 0 0 3.0000000
+1.6322831 5.8318806 0 0 0 0 3.0000000
+1.5348705 5.4955850 0 0 0 0 3.0000000
+1.3603992 5.3937664 0 0 0 0 3.0000000
+1.3228511 5.4371481 0 0 0 0 3.0000000
+1.1970470 5.3667307 0 0 0 0 3.0000000
+1.0325602 5.5439558 0 0 0 0 3.0000000
+0.98513186 5.3780737 0 0 0 0 3.0000000
+0.97556829 5.3995867 0 0 0 0 3.0000000
+0.90197319 5.4184709 0 0 0 0 3.0000000
+0.77024281 5.4679136 0 0 0 0 3.0000000
+0.75456488 5.4686551 0 0 0 0 3.0000000
+1.1983876 5.3466215 0 0 0 0 3.0000000
+0.96779823 5.2968884 0 0 0 0 3.0000000
+0.92065424 5.3752089 0 0 0 0 3.0000000
+1.1218165 5.6721835 0 0 0 0 3.0000000
+1.6679316 5.7029562 0 0 0 0 3.0000000
+1.6606077 5.9355397 0 0 0 0 3.0000000
+1.3228511 5.4343948 0 0 0 0 3.0000000
+1.3228511 5.4343948 0 0 0 0 3.0000000
& nstart_seq,ishift_pdb
double precision boxxsize,boxysize,boxzsize,enecut,sscut,sss,
&sssgrad,
- & buflipbot, bufliptop,bordlipbot,bordliptop,lipbufthick,lipthick
+ & buflipbot, bufliptop,bordlipbot,bordliptop,lipbufthick,lipthick,
+ & tubecenter,tubeR0,
+ & buftubebot, buftubetop,bordtubebot,bordtubetop,tubebufthick
common /box/ boxxsize,boxysize,boxzsize,enecut,sscut,sss,sssgrad,
& buflipbot, bufliptop,bordlipbot,bordliptop,lipbufthick,lipthick
+ common /tube/ tubecenter(3),tubeR0,
+ & buftubebot, buftubetop,bordtubebot,bordtubetop,tubebufthick
integer iscode,indpdb,outpdb,outmol2,icomparfunc,pdbint,
- & ensembles,constr_dist,symetr,shield_mode,tor_mode
+ & ensembles,constr_dist,symetr,shield_mode,tor_mode,
+ & tubelog,genconstr
logical refstr,pdbref,punch_dist,print_rms,caonly,verbose,
& merge_helices,bxfile,cxfile,histfile,entfile,zscfile,
& rmsrgymap,with_dihed_constr,check_conf,histout,with_theta_constr
& merge_helices,bxfile,cxfile,histfile,entfile,zscfile,rmsrgymap,
& ensembles,with_dihed_constr,constr_dist,check_conf,histout,
& with_theta_constr,
- &symetr,tor_mode,shield_mode
+ &symetr,tor_mode,shield_mode,
+ & tubelog,genconstr
+
integer inp,iout,igeom,intin,ipdb,imol2,ipdbin,ithep,irotam,
& itorp,itordp,ifourier,ielep,isidep,iscpp,isccor,icbase,
& istat,ientin,ientout,isidep1,ibond,ihist,izsc,idistr,
- & iliptranpar
+ & iliptranpar,itube
common /iounits/ inp,iout,igeom,intin,ipdb,imol2,ipdbin,ithep,
& irotam,itorp,itordp,ifourier,ielep,isidep,iscpp,isccor,
& icbase,istat,ientin,ientout,isidep1,ibond,ihist,izsc,
- & idistr,iliptranpar
+ & idistr,iliptranpar,itube
character*256 outname,intname,pdbname,mol2name,statname,intinname,
& entname,restartname,prefix,scratchdir,sidepname,pdbfile,
& histname,zscname
C Parameter files
character*256 bondname,thetname,rotname,torname,tordname,
& fouriername,elename,sidename,scpname,sccorname,patname,
- & liptranname
+ & liptranname,tubename
common /parfiles/ thetname,rotname,torname,tordname,bondname,
& fouriername,elename,sidename,scpname,sccorname,patname,
- & liptranname
+ & liptranname,tubename
character*3 pot
C-----------------------------------------------------------------------
C INP - main input file
c Maximum number of structures in the database, energy components, proteins,
c and structural classes
c#ifdef JUBL
- parameter (maxstr=200000,max_ene=25,maxprot=7,maxclass=5000)
+ parameter (maxstr=200000,max_ene=26,maxprot=7,maxclass=5000)
parameter (maxclass1=10)
c Maximum number of structures to be dealt with by one processor
parameter (maxstr_proc=10000)
call Eliptransfer(eliptran)
endif
+ if (TUBElog.eq.1) then
+ print *,"just before call"
+ call calctube(Etube)
+ print *,"just after call",etube
+ elseif (TUBElog.eq.2) then
+ call calctube2(Etube)
+ elseif (TUBElog.eq.3) then
+ call calcnano(Etube)
+ else
+ Etube=0.0d0
+ endif
+
C
C 12/1/95 Multi-body terms
C
& +wturn3*fact(2)*eello_turn3+wturn6*fact(5)*eturn6
& +wel_loc*fact(2)*eel_loc+edihcnstr+wtor_d*fact(2)*etors_d
& +wbond*estr+wsccor*fact(1)*esccor+ethetacnstr
- & +wliptran*eliptran
+ & +wliptran*eliptran+wtube*Etube
else
etot=wsc*(evdw+fact(6)*evdw_t)+wscp*evdw2+welec*fact(1)*ees
& +wvdwpp*evdw1
& +wturn3*fact(2)*eello_turn3+wturn6*fact(5)*eturn6
& +wel_loc*fact(2)*eel_loc+edihcnstr+wtor_d*fact(2)*etors_d
& +wbond*estr+wsccor*fact(1)*esccor+ethetacnstr
- & +wliptran*eliptran
+ & +wliptran*eliptran+wtube*Etube
endif
#else
if (shield_mode.gt.0) then
& +wturn3*fact(2)*eello_turn3+wturn6*fact(5)*eturn6
& +wel_loc*fact(2)*eel_loc+edihcnstr+wtor_d*fact(2)*etors_d
& +wbond*estr+wsccor*fact(1)*esccor+ethetacnstr
- & +wliptran*eliptran
+ & +wliptran*eliptran+wtube*Etube
else
etot=wsc*(evdw+fact(6)*evdw_t)+wscp*evdw2
& +welec*fact(1)*(ees+evdw1)
& +wturn3*fact(2)*eello_turn3+wturn6*fact(5)*eturn6
& +wel_loc*fact(2)*eel_loc+edihcnstr+wtor_d*fact(2)*etors_d
& +wbond*estr+wsccor*fact(1)*esccor+ethetacnstr
- & +wliptran*eliptran
+ & +wliptran*eliptran+wtube*Etube
endif
#endif
energia(0)=etot
energia(21)=evdw_t
energia(24)=ethetacnstr
energia(22)=eliptran
+ energia(25)=Etube
c detecting NaNQ
#ifdef ISNAN
#ifdef AIX
& +wturn4*gshieldc_loc_t4(j,i)
& +wel_loc*gshieldc_ll(j,i)
& +wel_loc*gshieldc_loc_ll(j,i)
+ & +wtube*gg_tube(j,i)
+
gradx(j,i,icg)=wsc*gvdwx(j,i)+wscp*gradx_scp(j,i)+
& wbond*gradbx(j,i)+
& +wturn4*gshieldc_loc_t4(j,i)
& +wel_loc*gshieldc_ll(j,i)
& +wel_loc*gshieldc_loc_ll(j,i)
+ & +wtube*gg_tube(j,i)
+
gradx(j,i,icg)=fact(1)*wsc*gvdwx(j,i)
& +fact(1)*wscp*gradx_scp(j,i)+
& +wturn3*gshieldx_t3(j,i)
& +wturn4*gshieldx_t4(j,i)
& +wel_loc*gshieldx_ll(j,i)
+ & +wtube*gg_tube_sc(j,i)
+
else
gradc(j,i,icg)=fact(1)*wsc*gvdwc(j,i)+
& +wturn3*gshieldx_t3(j,i)
& +wturn4*gshieldx_t4(j,i)
& +wel_loc*gshieldx_ll(j,i)
+ & +wtube*gg_tube_sc(j,i)
+
endif
enddo
estr=energia(18)
ethetacnstr=energia(24)
eliptran=energia(22)
+ Etube=energia(25)
#ifdef SPLITELE
write (iout,10) evdw,wsc,evdw2,wscp,ees,welec*fact(1),evdw1,
& wvdwpp,
& eel_loc,wel_loc*fact(2),eello_turn3,wturn3*fact(2),
& eello_turn4,wturn4*fact(3),eello_turn6,wturn6*fact(5),
& esccor,wsccor*fact(1),edihcnstr,ethetacnstr,ebr*nss,
- & eliptran,wliptran,etot
+ & eliptran,wliptran,etube,wtube ,etot
10 format (/'Virtual-chain energies:'//
& 'EVDW= ',1pE16.6,' WEIGHT=',1pD16.6,' (SC-SC)'/
& 'EVDW2= ',1pE16.6,' WEIGHT=',1pD16.6,' (SC-p)'/
& 'ETHETC= ',1pE16.6,' (valence angle constraints)'/
& 'ESS= ',1pE16.6,' (disulfide-bridge intrinsic energy)'/
& 'ELT=',1pE16.6, ' WEIGHT=',1pD16.6,' (Lipid transfer energy)'/
+ & 'ETUBE=',1pE16.6, ' WEIGHT=',1pD16.6,' (Lipid transfer energy)'/
& 'ETOT= ',1pE16.6,' (total)')
#else
write (iout,10) evdw,wsc,evdw2,wscp,ees,welec*fact(1),estr,wbond,
& ecorr6,wcorr6*fact(5),eel_loc,wel_loc*fact(2),
& eello_turn3,wturn3*fact(2),eello_turn4,wturn4*fact(3),
& eello_turn6,wturn6*fact(5),esccor*fact(1),wsccor,
- & edihcnstr,ethetacnstr,ebr*nss,eliptran,wliptran,etot
+ & edihcnstr,ethetacnstr,ebr*nss,eliptran,wliptran,etube,wtube,etot
10 format (/'Virtual-chain energies:'//
& 'EVDW= ',1pE16.6,' WEIGHT=',1pD16.6,' (SC-SC)'/
& 'EVDW2= ',1pE16.6,' WEIGHT=',1pD16.6,' (SC-p)'/
include 'COMMON.LOCAL'
include 'COMMON.CHAIN'
include 'COMMON.DERIV'
- include 'COMMON.NAMES'
include 'COMMON.INTERACT'
include 'COMMON.IOUNITS'
include 'COMMON.CALC'
include 'COMMON.LOCAL'
include 'COMMON.CHAIN'
include 'COMMON.DERIV'
- include 'COMMON.NAMES'
include 'COMMON.INTERACT'
include 'COMMON.IOUNITS'
include 'COMMON.CALC'
include 'COMMON.LOCAL'
include 'COMMON.CHAIN'
include 'COMMON.DERIV'
- include 'COMMON.NAMES'
include 'COMMON.INTERACT'
include 'COMMON.IOUNITS'
include 'COMMON.CALC'
& gshieldc, gshieldc_loc, gshieldx_ec, gshieldc_ec,
& gshieldc_loc_ec, gshieldx_t3,gshieldc_t3,gshieldc_loc_t3,
& gshieldx_t4, gshieldc_t4,gshieldc_loc_t4,gshieldx_ll,
- & gshieldc_ll, gshieldc_loc_ll
+ & gshieldc_ll, gshieldc_loc_ll,gg_tube,gg_tube_sc
integer nfl,icg
logical calc_grad
& gshieldx_t4(3,-1:maxres), gshieldc_t4(3,-1:maxres),
& gshieldc_loc_t4(3,-1:maxres),
& gshieldx_ll(3,-1:maxres), gshieldc_ll(3,-1:maxres),
- & gshieldc_loc_ll(3,-1:maxres),
+ & gshieldc_loc_ll(3,-1:maxres),gg_tube(3,-1:maxres),
+ & gg_tube_sc(3,-1:maxres),
& gvdwc_scp(3,maxres),ghpbx(3,maxres),ghpbc(3,maxres),
& gloc(maxvar,2),gradcorr(3,maxres),gradxorr(3,maxres),
& gradcorr5(3,maxres),gradcorr6(3,maxres),
double precision wsc,wscp,welec,wstrain,wtor,wtor_d,wang,wscloc,
& wcorr,wcorr4,wcorr5,wcorr6,wsccor,wel_loc,wturn3,wturn4,
& wturn6,wvdwpp,wbond,weights,scal14,cutoff_corr,delt_corr,
- & r0_corr,wliptran
+ & r0_corr,wliptran,wtube
integer ipot,n_ene_comp
common /ffield/ wsc,wscp,welec,wstrain,wtor,wtor_d,wang,wscloc,
& wcorr,wcorr4,wcorr5,wcorr6,wsccor,wel_loc,wturn3,wturn4,
- & wturn6,wvdwpp,wbond,wliptran,weights(max_ene),
+ & wturn6,wvdwpp,wbond,wliptran,weights(max_ene),wtube,
& scal14,cutoff_corr,delt_corr,r0_corr,ipot,n_ene_comp
common /potentials/ potname(5)
character*3 potname
double precision aa_aq,bb_aq,augm,aad,bad,app,bpp,ael6,ael3,
- & aa_lip,bb_lip
+ & aa_lip,bb_lip,sc_aa_tube_par,sc_bb_tube_par,
+ & pep_aa_tube,pep_bb_tube,dcavtub,acavtub,bcavtub,ccavtub,
+ & dcavtubpep,acavtubpep,bcavtubpep,ccavtubpep
+
integer nnt,nct,nint_gr,istart,iend,itype,itel,itypro,ielstart,
& ielend,nscp_gr,iscpstart,iscpend,iatsc_s,iatsc_e,iatel_s,
& iatel_e,iatscp_s,iatscp_e,ispp,iscp,expon,expon2
& eps_orig,epslip
common /body/eps(ntyp,ntyp),sigma(ntyp,ntyp),sigmaii(ntyp,ntyp),
&epslip(ntyp,ntyp),
+ & sc_aa_tube_par(ntyp),sc_bb_tube_par(ntyp),
+ & pep_aa_tube,pep_bb_tube,acavtub(ntyp),dcavtub(ntyp),
+ & bcavtub(ntyp),ccavtub(ntyp),acavtubpep,dcavtubpep,
+ & bcavtubpep,ccavtubpep,
& rs0(ntyp,ntyp),chi(ntyp,ntyp),chip(ntyp),chip0(ntyp),alp(ntyp),
& sigma0(ntyp),sigii(ntyp),rr0(ntyp),r0(ntyp,ntyp),r0e(ntyp,ntyp),
& r0d(ntyp,2),rpp(2,2),epp(2,2),elpp6(2,2),elpp3(2,2),
& distchainmax,nbondterm(ntyp)
&,vbldpDUM
C 01/29/15 Lipidic parameters
- double precision pepliptran,liptranene
+ double precision pepliptran,liptranene,
+ &tubetranene, tubetranenepep
+
common /lipid/ pepliptran,liptranene(ntyp)
+ common /tubepar/ tubetranene(ntyp), tubetranenepep
& iphi_end,iphid_start,iphid_end,ibond_start,ibond_end,
& ibondp_start,ibondp_end,ivec_start,ivec_end,iset_start,iset_end,
& iturn3_start,iturn3_end,iturn4_start,iturn4_end,iint_start,
- & iint_end,iphi1_start,iphi1_end,itau_start,itau_end
+ & iint_end,iphi1_start,iphi1_end,itau_start,itau_end,itube_start,
+ & itube_end
common /peptbond/ vbl,vblinv,vblinv2,vbl_cis,vbl0
common /indices/ loc_start,loc_end,ithet_start,ithet_end,
& iphi_start,iphi_end,iphid_start,iphid_end,ibond_start,ibond_end,
& ibondp_start,ibondp_end,ivec_start,ivec_end,iset_start,iset_end,
& iturn3_start,iturn3_end,iturn4_start,iturn4_end,iint_start,
- & iint_end,iphi1_start,iphi1_end,itau_start,itau_end
+ & iint_end,iphi1_start,iphi1_end,itau_start,itau_end,itube_start,
+ & itube_end
C Inverses of the actual virtual bond lengths
common /invlen/ vbld_inv(maxres2)
ihist=30
iweight=31
izsc=32
+ itube=45
C Lipidic input file for parameters range 60-79
iliptranpar=60
C
& "ECORR6 ","EELLO ","ETURN3 ","ETURN4 ","ETURN6 ",
& "EBE bend","ESC SCloc","ETORS ","ETORSD ","EHPB","EVDWPP",
& "EVDW2_14","ESTR","ESCCOR","EDIHC","EVDW_T","ELIPTRAN",
- & "EAFM","ETHETC","EMPTY"/
+ & "EAFM","ETHETC","EMPTY","ETUBE"/
data wname /
& "WSC","WSCP","WELEC","WCORR","WCORR5","WCORR6","WEL_LOC",
& "WTURN3","WTURN4","WTURN6","WANG","WSCLOC","WTOR","WTORD",
& "WHPB","WVDWPP","WSCP14","WBOND","WSCCOR","WDIHC","WSC",
- & "WLIPTRAN","WAFM","WTHETC","WSHIELD"/
+ & "WLIPTRAN","WAFM","WTHETC","WSHIELD","WTUBE"/
data ww0 /1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,
& 1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,1.0d0,0.4d0,1.0d0,1.0d0,
- & 0.0d0,0.0,0.0d0,0.0d0,0.0d0,0.0d0/
+ & 0.0d0,0.0,0.0d0,0.0d0,0.0d0,0.0d0,0.0d0/
data nprint_ene /22/
data print_order /1,2,3,18,11,12,13,14,4,5,6,7,8,9,10,19,
- & 16,15,17,20,21,24,22,23,1/
+ & 16,15,17,20,21,24,22,23,1,25/
end
c---------------------------------------------------------------------------
subroutine init_int_table
call int_bounds(nres-3,itau_start,itau_end)
itau_start=itau_start+3
itau_end=itau_end+3
+ call int_bounds(nres-1,itube_start,itube_end)
+ itube_start=itube_start
+ itube_end=itube_end
if (lprint) then
write (iout,*) 'Processor:',MyID,
& ' loc_start',loc_start,' loc_end',loc_end,
iphi_end=nct
itau_start=4
itau_end=nres
+ itube_start=1
+ itube_end=nres-1
#endif
return
end
double precision fT(6),fTprim(6),fTbis(6),quot,quotl1,quotl,kfacl,
& eprim,ebis,temper,kfac/2.4d0/,T0/300.0d0/
double precision etot,evdw,evdw_t,evdw2,ees,evdw1,ebe,etors,
- & escloc,eliptran,
+ & escloc,eliptran,etube,
& ehpb,ecorr,ecorr5,ecorr6,eello_turn4,eello_turn3,
& eturn6,eel_loc,edihcnstr,etors_d,estr,evdw2_14,esccor,tt
integer i,ii,ik,iproc,iscor,j,k,l,ib,iparm,iprot,nlist
esccor=enetb(19,i,iparm)
edihcnstr=enetb(20,i,iparm)
eliptran=enetb(22,i,iparm)
+ etube=enetb(25,i,iparm)
+
#ifdef SPLITELE
if (shield_mode.gt.0) then
etot=ft(1)*wsc*(evdw+ft(6)*evdw_t)+ft(1)*wscp*evdw2
& +ft(2)*wturn3*eello_turn3
& +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc
& +edihcnstr+ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
- & +wbond*estr+wliptran*eliptran
+ & +wbond*estr+wliptran*eliptran+wtube*etube
else
etot=wsc*(evdw+ft(6)*evdw_t)+wscp*evdw2+ft(1)*welec*ees
& +wvdwpp*evdw1
& +ft(2)*wturn3*eello_turn3
& +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc
& +edihcnstr+ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
- & +wbond*estr+wliptran*eliptran
+ & +wbond*estr+wliptran*eliptran+wtube*etube
endif
#else
if (shield_mode.gt.0) then
& +ft(2)*wturn3*eello_turn3
& +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc+edihcnstr
& +ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
- & +wbond*estr+wliptran*eliptran
+ & +wbond*estr+wliptran*eliptran+wtube*etube
else
etot=wsc*(evdw+ft(6)*evdw_t)+wscp*evdw2
& +ft(1)*welec*(ees+evdw1)
& +ft(2)*wturn3*eello_turn3
& +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc+edihcnstr
& +ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
- & +wbond*estr+wliptran*eliptran
+ & +wbond*estr+wliptran*eliptran+wtube*etube
endif
#endif
open (isidep1,file=sidepname,status="old")
call mygetenv('LIPTRANPAR',liptranname)
open (iliptranpar,file=liptranname,status='old',action='read')
+ call mygetenv('TUBEPAR',tubename)
+ open (itube,file=tubename,status='old')
+
#ifndef OLDSCP
C
C 8/9/01 In the newest version SCp interaction constants are read from a file
character*1 toronelet(-2:2) /"p","a","G","A","P"/
logical lprint
dimension blower(3,3,maxlob)
- character*800 controlcard
+ character*900 controlcard
character*256 bondname_t,thetname_t,rotname_t,torname_t,
& tordname_t,fouriername_t,elename_t,sidename_t,scpname_t,
- & sccorname_t
+ & sccorname_t,tubename_t
integer ilen
external ilen
character*16 key
wstrain=ww(15)
wliptran=ww(22)
wshield=ww(25)
+ wtube=ww(26)
endif
call card_concat(controlcard,.false.)
call reads(controlcard,"SCPPAR",scpname_t,scpname)
open (iscpp,file=scpname_t,status='old')
rewind(iscpp)
+ call reads(controlcard,"TUBEPAR",tubename_t,tubename)
+ write(iout,*) tubename_t
+ write(iout,*) tubename
+ open (itube,file=tubename_t,status='old')
+ rewind(itube)
+
write (iout,*) "Parameter set:",iparm
write (iout,*) "Energy-term weights:"
do i=1,n_ene
endif
enddo
enddo
+ write(iout,*) "tube param"
+ read(itube,*) epspeptube,sigmapeptube,acavtubpep,bcavtubpep,
+ & ccavtubpep,dcavtubpep,tubetranenepep
+ sigmapeptube=sigmapeptube**6
+ sigeps=dsign(1.0D0,epspeptube)
+ epspeptube=dabs(epspeptube)
+ pep_aa_tube=4.0d0*epspeptube*sigmapeptube**2
+ pep_bb_tube=-sigeps*4.0d0*epspeptube*sigmapeptube
+ write(iout,*) pep_aa_tube,pep_bb_tube,tubetranenepep
+ do i=1,ntyp
+ read(itube,*) epssctube,sigmasctube,acavtub(i),bcavtub(i),
+ & ccavtub(i),dcavtub(i),tubetranene(i)
+ sigmasctube=sigmasctube**6
+ sigeps=dsign(1.0D0,epssctube)
+ epssctube=dabs(epssctube)
+ sc_aa_tube_par(i)=4.0d0*epssctube*sigmasctube**2
+ sc_bb_tube_par(i)=-sigeps*4.0d0*epssctube*sigmasctube
+ write(iout,*) sc_aa_tube_par(i), sc_bb_tube_par(i),tubetranene(i)
+ enddo
+
C
C Define the SC-p interaction constants
C
call reada(controlcard,'BOXX',boxxsize,100.0d0)
call reada(controlcard,'BOXY',boxysize,100.0d0)
call reada(controlcard,'BOXZ',boxzsize,100.0d0)
+ call readi(controlcard,'TUBEMOD',tubelog,0)
+ write (iout,*) TUBElog,"TUBEMODE"
+ call readi(controlcard,'GENCONSTR',genconstr,0)
+
c Cutoff range for interactions
call reada(controlcard,"R_CUT",r_cut,15.0d0)
call reada(controlcard,"LAMBDA",rlamb,0.3d0)
write (iout,*) "einicheck",einicheck
write (iout,*) "rescale_mode",rescale_mode
call flush(iout)
+ if (TUBElog.gt.0) then
+ call reada(controlcard,"XTUBE",tubecenter(1),0.0d0)
+ call reada(controlcard,"YTUBE",tubecenter(2),0.0d0)
+ call reada(controlcard,"ZTUBE",tubecenter(3),0.0d0)
+ call reada(controlcard,"RTUBE",tubeR0,0.0d0)
+ call reada(controlcard,"TUBETOP",bordtubetop,boxzsize)
+ call reada(controlcard,"TUBEBOT",bordtubebot,0.0d0)
+ call reada(controlcard,"TUBEBUF",tubebufthick,1.0d0)
+ buftubebot=bordtubebot+tubebufthick
+ buftubetop=bordtubetop-tubebufthick
+ endif
bxfile=index(controlcard,"BXFILE").gt.0
cxfile=index(controlcard,"CXFILE").gt.0
if (nslice .eq. 1 .and. .not.bxfile .and. .not.cxfile)
double precision etot,evdw,evdw_t,evdw2,ees,evdw1,ebe,etors,
& escloc,ehpb,ecorr,ecorr5,ecorr6,eello_turn4,eello_turn3,
& eturn6,eel_loc,edihcnstr,etors_d,estr,evdw2_14,esccor,
- & eliptran
+ & eliptran,etube
integer ind_point(maxpoint),upindE,indE
character*16 plik
esccor=enetb(19,i,iparm)
edihcnstr=enetb(20,i,iparm)
eliptran=enetb(22,i,iparm)
+ etube=enetb(25,i,iparm)
+
#ifdef DEBUG
write (iout,'(3i5,6f5.2,14f12.3)') i,ib,iparm,(ft(l),l=1,6),
& +ft(2)*wturn3*eello_turn3
& +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc
& +edihcnstr+ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
- & +wbond*estr+wliptran*eliptran
+ & +wbond*estr+wliptran*eliptran+wtube*Etube
else
etot=wsc*(evdw+ft(6)*evdw_t)+wscp*evdw2+ft(1)*welec*ees
& +wvdwpp*evdw1
& +ft(2)*wturn3*eello_turn3
& +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc
& +edihcnstr+ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
- & +wbond*estr+wliptran*eliptran
+ & +wbond*estr+wliptran*eliptran+wtube*Etube
endif
#else
if (shield_mode.gt.0) then
& +ft(2)*wturn3*eello_turn3
& +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc+edihcnstr
& +ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
- & +wbond*estr+wliptran*eliptran
+ & +wbond*estr+wliptran*eliptran+wtube*Etube
else
etot=wsc*(evdw+ft(6)*evdw_t)+wscp*evdw2
& +ft(1)*welec*(ees+evdw1)
& +ft(2)*wturn3*eello_turn3
& +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc+edihcnstr
& +ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
- & +wbond*estr+wliptran*eliptran
+ & +wbond*estr+wliptran*eliptran+wtube*Etube
endif
#endif
edihcnstr=enetb(20,i,iparm)
C edihcnstr=0.0d0
eliptran=enetb(22,i,iparm)
+ etube=enetb(25,i,iparm)
+
#ifdef SPLITELE
if (shield_mode.gt.0) then
etot=ft(1)*wsc*(evdw+ft(6)*evdw_t)+ft(1)*wscp*evdw2
& +ft(2)*wturn3*eello_turn3
& +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc
& +edihcnstr+ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
- & +wbond*estr+wliptran*eliptran
+ & +wbond*estr+wliptran*eliptran+wtube*Etube
else
etot=wsc*(evdw+ft(6)*evdw_t)+wscp*evdw2+ft(1)*welec*ees
& +wvdwpp*evdw1
& +ft(2)*wturn3*eello_turn3
& +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc
& +edihcnstr+ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
- & +wbond*estr+wliptran*eliptran
+ & +wbond*estr+wliptran*eliptran+wtube*Etube
endif
#else
if (shield_mode.gt.0) then
& +ft(2)*wturn3*eello_turn3
& +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc+edihcnstr
& +ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
- & +wbond*estr+wliptran*eliptran
+ & +wbond*estr+wliptran*eliptran+wtube*Etube
else
etot=wsc*(evdw+ft(6)*evdw_t)+wscp*evdw2
& +ft(1)*welec*(ees+evdw1)
& +ft(2)*wturn3*eello_turn3
& +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc+edihcnstr
& +ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
- & +wbond*estr+wliptran*eliptran
+ & +wbond*estr+wliptran*eliptran+wtube*Etube
endif
#endif
edihcnstr=enetb(20,t,iparm)
C edihcnstr=0.0d0
eliptran=enetb(22,i,iparm)
+ etube=enetb(25,i,iparm)
do k=0,nGridT
betaT=startGridT+k*delta_T
& +ft(2)*wturn3*eello_turn3
& +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc
& +edihcnstr+ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
- & +wbond*estr+wliptran*eliptran
+ & +wbond*estr+wliptran*eliptran+wtube*Etube
eprim=ftprim(1)*(ft(6)*evdw_t+evdw)
C & +ftprim(6)*evdw_t
& +ftprim(1)*wscp*evdw2
& +ft(2)*wturn3*eello_turn3
& +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc
& +edihcnstr+ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
- & +wbond*estr+wliptran*eliptran
+ & +wbond*estr+wliptran*eliptran+wtube*Etube
eprim=ftprim(6)*evdw_t+ftprim(1)*welec*ees
& +ftprim(1)*wtor*etors+
& ftprim(3)*wcorr*ecorr+ftprim(4)*wcorr5*ecorr5+
& +ft(2)*wturn3*eello_turn3
& +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc+edihcnstr
& +ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
- & +wbond*estr+wliptran*eliptran
+ & +wbond*estr+wliptran*eliptran+wtube*Etube
eprim=ftprim(1)*(evdw+ft(6)*evdw_t)
& +ftprim(1)*welec*(ees+evdw1)
& +ftprim(1)*wtor*etors+
& +ft(2)*wturn3*eello_turn3
& +ft(5)*wturn6*eturn6+ft(2)*wel_loc*eel_loc+edihcnstr
& +ft(2)*wtor_d*etors_d+ft(1)*wsccor*esccor
- & +wbond*estr+wliptran*eliptran
+ & +wbond*estr+wliptran*eliptran+wtube*Etube
eprim=ftprim(6)*evdw_t+ftprim(1)*welec*(ees+evdw1)
& +ftprim(1)*wtor*etors+
& ftprim(3)*wcorr*ecorr+ftprim(4)*wcorr5*ecorr5+