Fixed a MAJOR error in WHAM; energies were computed inconsistently
[unres.git] / source / wham / src / enecalc1.F
index 01e5684..5ef4d77 100644 (file)
@@ -33,7 +33,8 @@
       double precision rmsnat,gyrate
       external rmsnat,gyrate
       double precision tole /1.0d-1/
-      integer i,itj,ii,iii,j,k,l,licz
+      integer i,itj,ii,iii,j,k,l,licz,scme,itmp
+      integer ires
       integer ir,ib,ipar,iparm
       integer iscor,islice
       real*4 csingle(3,maxres2)
@@ -159,7 +160,14 @@ c     &   " kfac",kfac,"quot",quot," fT",fT
         call enerprint(energia(0),fT)
 c        write (iout,'(2i5,21f8.2)') i,iparm,(energia(k),k=1,21)
 c        write (iout,*) "ftors",ftors
-c        call intout
+      write (iout,'(a,3(3x,a5),5x,3(3x,a5))')
+     & "Residue","X(CA)","Y(CA)","Z(CA)","X(SC)","Y(SC)","Z(SC)"
+      do ires=1,nres
+        write (iout,'(a3,1x,i3,3f8.3,5x,3f8.3)')
+     &    restyp(itype(ires)),ires,(c(j,ires),j=1,3),
+     &    (c(j,ires+nres),j=1,3)
+      enddo
+        call intout
 #endif
         if (energia(0).ge.1.0d20) then
           write (iout,*) "NaNs detected in some of the energy",
@@ -196,9 +204,18 @@ c        call pdbout(ii+1,beta_h(ib,ipar),efree,energia(0),0.0d0,rmsdev)
      &         iii+1,indstart(me1)+iii," T",
      &         1.0d0/(1.987D-3*beta_h(ib,ipar))
              call enerprint(energia(0),fT)
-             call pdbout(iii+1,beta_h(ib,ipar),
-     &                   eini,energia(0),0.0d0,rmsdev)
+            write (iout,'(4f10.5,2i5)') 0.0,energia(0),0.0,
+     &       1.0d0/(beta_h(ib,ipar)*1.987D-3),
+     &       0,0
+            write(iout,'(8f10.5)')
+     &       ((c(l,k),l=1,3),k=1,nres),
+     &       ((c(l,k+nres),l=1,3),k=nnt,nct)
+c             itmp=ipdb
+c             ipdb=iout
+c             call pdbout(iii+1,beta_h(ib,ipar),
+c     &                   eini,energia(0),0.0d0,rmsdev)
              write (iout,*)
+             ipdb=itmp
 
               errmsg_count=errmsg_count+1
               if (errmsg_count.gt.maxerrmsg_count) 
@@ -215,7 +232,7 @@ c        call pdbout(ii+1,beta_h(ib,ipar),efree,energia(0),0.0d0,rmsdev)
             endif
           endif
           potE(iii+1,iparm)=energia(0)
-          do k=1,21
+          do k=1,max_ene
             enetb(k,iii+1,iparm)=energia(k)
           enddo
 c          write(iout,*) "iCHUJ TU STRZELI",i,iii,entfac(i)
@@ -273,6 +290,7 @@ c     &   " snk",snk_p(iR,ib,ipar)
       write (iout,*) "Me",me," scount",scount(me)
       call flush(iout)
 c  Master gathers updated numbers of conformations written by all procs.
+      scme = scount(me)
       call MPI_AllGather( scount(me), 1, MPI_INTEGER, scount(0), 1, 
      &  MPI_INTEGER, WHAM_COMM, IERROR)
       indstart(0)=1