Adam's corrections to wham from homology branch
authorCezary Czaplewski <czarek@cell.kias.re.kr>
Thu, 17 Mar 2016 01:28:39 +0000 (10:28 +0900)
committerCezary Czaplewski <czarek@cell.kias.re.kr>
Thu, 17 Mar 2016 01:28:39 +0000 (10:28 +0900)
source/wham/src/COMMON.ALLPARM
source/wham/src/enecalc1.F
source/wham/src/wham_calc1.F

index 0dbe565..729dab9 100644 (file)
@@ -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,
index 0ed44d5..c71b9c0 100644 (file)
@@ -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
index 61b9504..868d34a 100644 (file)
@@ -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)