From 1fbb0a6dc3a2548755d070368f017e5b0657f38a Mon Sep 17 00:00:00 2001 From: Cezary Czaplewski Date: Thu, 17 Mar 2016 10:28:39 +0900 Subject: [PATCH] Adam's corrections to wham from homology branch --- source/wham/src/COMMON.ALLPARM | 2 +- source/wham/src/enecalc1.F | 4 ++-- source/wham/src/wham_calc1.F | 42 ++++++++++++++++++++++++++++------------ 3 files changed, 33 insertions(+), 15 deletions(-) diff --git a/source/wham/src/COMMON.ALLPARM b/source/wham/src/COMMON.ALLPARM index 0dbe565..729dab9 100644 --- a/source/wham/src/COMMON.ALLPARM +++ b/source/wham/src/COMMON.ALLPARM @@ -60,7 +60,7 @@ & ithetyp_all(ntyp1,max_parm),ntheterm_all(max_parm), & ntheterm2_all(max_parm),ntheterm3_all(max_parm), & nsingle_all(max_parm),ndouble_all(max_parm), - & nntheterm_all(max_parm),nterm_sccor_all(max_parm,ntyp,ntyp) + & nntheterm_all(max_parm),nterm_sccor_all(ntyp,ntyp,max_parm) common /allparm/ ww_all,vbldp0_all,akp_all,vbldsc0_all,aksc_all, & abond0_all,aa0thet_all,aathet_all,bbthet_all,ccthet_all, & ddthet_all,eethet_all,ffthet_all,ggthet_all, diff --git a/source/wham/src/enecalc1.F b/source/wham/src/enecalc1.F index 0ed44d5..c71b9c0 100644 --- a/source/wham/src/enecalc1.F +++ b/source/wham/src/enecalc1.F @@ -46,7 +46,7 @@ integer snk_p(MaxR,MaxT_h,Max_parm) integer scount_(0:MaxProcs) logical lerr - character*64 bprotfile_temp + character*128 bprotfile_temp call opentmp(islice,ientout,bprotfile_temp) iii=0 ii=0 @@ -350,7 +350,7 @@ c------------------------------------------------------------------------------ include "COMMON.PROT" character*64 nazwa character*80 bxname,cxname - character*64 bprotfile_temp + character*128 bprotfile_temp character*3 liczba,licz character*2 licz2 integer i,itj,ii,iii,j,k,l diff --git a/source/wham/src/wham_calc1.F b/source/wham/src/wham_calc1.F index 61b9504..868d34a 100644 --- a/source/wham/src/wham_calc1.F +++ b/source/wham/src/wham_calc1.F @@ -531,8 +531,8 @@ c#endif do i=1,nR(ib,iparm) fi(i,ib,iparm)=fi(i,ib,iparm)-avefi enddo - write (iout,'(8f10.5)') (fi(i,ib,iparm),i=1,nR(ib,iparm)) - write (iout,'(8f10.5)') (f(i,ib,iparm),i=1,nR(ib,iparm)) + write (iout,'(6f15.5)') (fi(i,ib,iparm),i=1,nR(ib,iparm)) + write (iout,'(6f15.5)') (f(i,ib,iparm),i=1,nR(ib,iparm)) enddo enddo @@ -732,7 +732,8 @@ C Determine the minimum energes for all parameter sets and temperatures do i=1,nParmSet write (iout,*) "Parameter set",i do j=1,nT_h(i) - write (iout,*) j,PotEmin_all(j,i) + write (iout,*) j,1.0d0/(1.987d-3*beta_h(j,i)), + & PotEmin_all(j,i) enddo enddo write (iout,*) "potEmin_min",potEmin_min @@ -990,24 +991,38 @@ c write (iout,*) "ftprim",ftprim c write (iout,*) "ftbis",ftbis betaT=1.0d0/(1.987D-3*betaT) if (betaT.ge.beta_h(1,iparm)) then - potEmin=potEmin_all(1,iparm) -c write(iout,*) "first",temper,potEmin - else if (betaT.lt.beta_h(nT_h(iparm),iparm)) then - potEmin=potEmin_all(nT_h(iparm),iparm) -c write (iout,*) "last",temper,potEmin + potEmin=potEmin_all(1,iparm)+ + & (potEmin_all(1,iparm)-potEmin_all(2,iparm))/ + & (1.0/beta_h(1,iparm)-1.0/beta_h(2,iparm))* + & (1.0/betaT-1.0/beta_h(1,iparm)) +#ifdef DEBUG + write(iout,*) "first",temper,potEmin +#endif + else if (betaT.le.beta_h(nT_h(iparm),iparm)) then + potEmin=potEmin_all(nT_h(iparm),iparm)+ + &(potEmin_all(nT_h(iparm),iparm)-potEmin_all(nT_h(iparm)-1,iparm))/ + &(1.0/beta_h(nT_h(iparm),iparm)-1.0/beta_h(nT_h(iparm)-1,iparm))* + &(1.0/betaT-1.0/beta_h(nt_h(iparm),iparm)) +#ifdef DEBUG + write (iout,*) "last",temper,potEmin +#endif else do l=1,nT_h(iparm)-1 if (betaT.le.beta_h(l,iparm) .and. & betaT.gt.beta_h(l+1,iparm)) then potEmin=potEmin_all(l,iparm) -c write (iout,*) "l",l, -c & betaT,1.0d0/(1.987D-3*beta_h(l,iparm)), -c & 1.0d0/(1.987D-3*beta_h(l+1,iparm)),temper,potEmin +#ifdef DEBUG + write (iout,*) "l",l, + & betaT,1.0d0/(1.987D-3*beta_h(l,iparm)), + & 1.0d0/(1.987D-3*beta_h(l+1,iparm)),temper,potEmin +#endif exit endif enddo endif -c write (iout,*) ib," PotEmin",potEmin +#ifdef DEBUG + write (iout,*) "k",k," potEmin",potEmin +#endif #ifdef SPLITELE etot=wsc*(evdw+ft(6)*evdw_t)+wscp*evdw2+ft(1)*welec*ees & +wvdwpp*evdw1 @@ -1341,6 +1356,9 @@ c write (iout,*) ib," PotEmin",potEmin endif enddo endif + +c write (iout,*) "i",i," potEmin",potEmin + sumE(i,iparm)=sumE(i,iparm)/sumW(i,iparm) sumEbis(i,iparm)=(startGridT+i*delta_T)*sumEbis(i,iparm)/ & sumW(i,iparm) -- 1.7.9.5