X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=source%2Fwham%2Fsrc-M%2Fenergy_p_new.F;h=a36e177821ebf3f2bdca4c74b1f5d8c1a95eb2e7;hb=d6044e422fadc338f33bb4111e4f18f00f7c7a37;hp=6c943cc99396daa921b2d998324174e3d9a84585;hpb=7d64cc3ff0edffb6aa37e309e4375f58bd5875a2;p=unres.git diff --git a/source/wham/src-M/energy_p_new.F b/source/wham/src-M/energy_p_new.F index 6c943cc..a36e177 100644 --- a/source/wham/src-M/energy_p_new.F +++ b/source/wham/src-M/energy_p_new.F @@ -104,6 +104,18 @@ C 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 @@ -136,7 +148,7 @@ c write (iout,*) "ft(6)",fact(6)," evdw",evdw," evdw_t",evdw_t & +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 @@ -146,7 +158,7 @@ c write (iout,*) "ft(6)",fact(6)," evdw",evdw," evdw_t",evdw_t & +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 @@ -158,7 +170,7 @@ c write (iout,*) "ft(6)",fact(6)," evdw",evdw," evdw_t",evdw_t & +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) @@ -168,7 +180,7 @@ c write (iout,*) "ft(6)",fact(6)," evdw",evdw," evdw_t",evdw_t & +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 @@ -205,6 +217,7 @@ c write (iout,*) "ft(6)",fact(6)," evdw",evdw," evdw_t",evdw_t energia(21)=evdw_t energia(24)=ethetacnstr energia(22)=eliptran + energia(25)=Etube c detecting NaNQ #ifdef ISNAN #ifdef AIX @@ -260,6 +273,8 @@ C & +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)+ @@ -271,6 +286,7 @@ C & +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) @@ -297,6 +313,8 @@ C & +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)+ @@ -309,6 +327,7 @@ C & +wturn3*gshieldx_t3(j,i) & +wturn4*gshieldx_t4(j,i) & +wel_loc*gshieldx_ll(j,i) + & +wtube*gg_tube_SC(j,i) endif @@ -339,6 +358,7 @@ C & +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)+ @@ -350,6 +370,8 @@ C & +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)+ @@ -375,6 +397,7 @@ C & +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)+ @@ -387,6 +410,8 @@ C & +wturn3*gshieldx_t3(j,i) & +wturn4*gshieldx_t4(j,i) & +wel_loc*gshieldx_ll(j,i) + & +wtube*gg_tube_sc(j,i) + endif enddo @@ -446,6 +471,7 @@ C------------------------------------------------------------------------ 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, @@ -455,7 +481,7 @@ C------------------------------------------------------------------------ & 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)'/ @@ -480,6 +506,7 @@ C------------------------------------------------------------------------ & '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, @@ -488,7 +515,7 @@ C------------------------------------------------------------------------ & 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)'/ @@ -2371,8 +2398,12 @@ C fac_shield(j)=0.6 fac_shield(j)=1.0 eesij=(el1+el2) ees=ees+eesij + &*((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0) + endif evdw1=evdw1+evdwij*sss + &*((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0) + c write (iout,'(a6,2i5,0pf7.3,2i5,2e11.3)') c &'evdw1',i,j,evdwij c &,iteli,itelj,aaa,evdw1 @@ -2387,7 +2418,11 @@ C Calculate contributions to the Cartesian gradient. C #ifdef SPLITELE facvdw=-6*rrmij*(ev1+evdwij)*sss + & *((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0) + facel=-3*rrmij*(el1+eesij) + &*((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0) + fac1=fac erij(1)=xj*rmij erij(2)=yj*rmij @@ -2471,8 +2506,13 @@ C ggg(2)=facvdw*yj C ggg(3)=facvdw*zj if (sss.gt.0.0) then ggg(1)=facvdw*xj+sssgrad*rmij*evdwij*xj + & *((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0) ggg(2)=facvdw*yj+sssgrad*rmij*evdwij*yj + & *((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0) + ggg(3)=facvdw*zj+sssgrad*rmij*evdwij*zj + & *((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0) + else ggg(1)=0.0 ggg(2)=0.0 @@ -2483,6 +2523,11 @@ C ggg(3)=facvdw*zj gvdwpp(k,i)=gvdwpp(k,i)+ghalf gvdwpp(k,j)=gvdwpp(k,j)+ghalf enddo + gvdwpp(3,j)=gvdwpp(3,j)+ + & sss*ssgradlipj*evdwij/2.0d0*lipscale**2 + gvdwpp(3,i)=gvdwpp(3,i)+ + & sss*ssgradlipi*evdwij/2.0d0*lipscale**2 + * * Loop over residues i+1 thru j-1. * @@ -2493,6 +2538,8 @@ C ggg(3)=facvdw*zj enddo #else facvdw=(ev1+evdwij)*sss + & *((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0) + facel=el1+eesij fac1=fac fac=-3*rrmij*(facvdw+facvdw+facel) @@ -2537,6 +2584,8 @@ cd & (dcosg(k),k=1,3) do k=1,3 ggg(k)=ecosb*dcosb(k)+ecosg*dcosg(k) & *fac_shield(i)**2*fac_shield(j)**2 + & *((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0) + enddo do k=1,3 ghalf=0.5D0*ggg(k) @@ -2544,11 +2593,15 @@ cd & (dcosg(k),k=1,3) & +(ecosa*(dc_norm(k,j)-cosa*dc_norm(k,i)) & + ecosb*(erij(k)-cosb*dc_norm(k,i)))*vbld_inv(i+1) & *fac_shield(i)**2*fac_shield(j)**2 + & *((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0) + gelc(k,j)=gelc(k,j)+ghalf & +(ecosa*(dc_norm(k,i)-cosa*dc_norm(k,j)) & + ecosg*(erij(k)-cosg*dc_norm(k,j)))*vbld_inv(j+1) & *fac_shield(i)**2*fac_shield(j)**2 + & *((sslipi+sslipj)/2.0d0*lipscale**2+1.0d0) + enddo do k=i+1,j-1 do l=1,3 @@ -2804,9 +2857,11 @@ C fac_shield(j)=0.6 eel_loc_ij=eel_loc_ij & *fac_shield(i)*fac_shield(j) &*((sslipi+sslipj)/2.0d0*lipscale+1.0d0) -c write (iout,*) 'i',i,' j',j,' eel_loc_ij',eel_loc_ij -C write (iout,'(a6,2i5,0pf7.3)') -C & 'eelloc',i,j,eel_loc_ij +C write (iout,'(a3,i4,a3,i4,a8,4f8.3)') +C & 'i',i,' j',j,' eel_loc_ij',eel_loc_ij,sslipi, +C & sslipj,lipscale +C write (iout,'(a6,2i5,0pf7.3,2f7.3)') +C & 'eelloc',i,j,eel_loc_ij,a22*muij(1),a23*muij(2) C write(iout,*) 'muije=',i,j,muij(1),muij(2),muij(3),muij(4) c write (iout,*) a22,muij(1),a23,muij(2),a32,muij(3) C eel_loc=eel_loc+eel_loc_ij @@ -3245,7 +3300,9 @@ C fac_shield(j)=0.6 eello_t3=0.5d0*(pizda(1,1)+pizda(2,2)) & *fac_shield(i)*fac_shield(j) &*((sslipi+sslipj)/2.0d0*lipscale+1.0d0) - + write (iout,'(a3,i4,a3,i4,a8,4f8.3)') + & 'i',i,' j',j,' eturn3',eello_t3,sslipi, + & sslipj,lipscale cd write (2,*) 'i,',i,' j',j,'eello_turn3', cd & 0.5d0*(pizda(1,1)+pizda(2,2)), cd & ' eello_turn3_num',4*eello_turn3_num @@ -3404,6 +3461,8 @@ C fac_shield(j)=0.6 eello_turn4=eello_turn4-(s1+s2+s3) & *fac_shield(i)*fac_shield(j) + &*((sslipi+sslipj)/2.0d0*lipscale+1.0d0) + eello_t4=-(s1+s2+s3) & *fac_shield(i)*fac_shield(j) @@ -9207,7 +9266,6 @@ C simple Kihara potential include 'COMMON.LOCAL' include 'COMMON.CHAIN' include 'COMMON.DERIV' - include 'COMMON.NAMES' include 'COMMON.INTERACT' include 'COMMON.IOUNITS' include 'COMMON.CALC' @@ -9380,7 +9438,6 @@ C simple Kihara potential include 'COMMON.LOCAL' include 'COMMON.CHAIN' include 'COMMON.DERIV' - include 'COMMON.NAMES' include 'COMMON.INTERACT' include 'COMMON.IOUNITS' include 'COMMON.CALC' @@ -9642,7 +9699,6 @@ C simple Kihara potential include 'COMMON.LOCAL' include 'COMMON.CHAIN' include 'COMMON.DERIV' - include 'COMMON.NAMES' include 'COMMON.INTERACT' include 'COMMON.IOUNITS' include 'COMMON.CALC'