Merge branch 'devel' into AFM
[unres.git] / source / wham / src-M / enecalc1.F
index 8e4fa74..fee94cf 100644 (file)
@@ -35,7 +35,7 @@
       double precision tole /1.0d-1/
       integer i,itj,ii,iii,j,k,l,licz
       integer ir,ib,ipar,iparm
-      integer iscor,islice
+      integer iscor,islice,scount_buff(0:99)
       real*4 csingle(3,maxres2)
       double precision energ
       double precision temp
@@ -60,6 +60,8 @@
           enddo
         enddo
       enddo
+      write (iout,*) "indstart(me1),indend(me1)"
+     &,indstart(me1),indend(me1)
       do i=indstart(me1),indend(me1)
 #else
       do iparm=1,nParmSet
@@ -71,6 +73,7 @@
       enddo
       do i=1,ntot
 #endif
+
         read(ientout,rec=i,err=101) 
      &    ((csingle(l,k),l=1,3),k=1,nres),
      &    ((csingle(l,k+nres),l=1,3),k=nnt,nct),
@@ -154,14 +157,17 @@ c     &   " kfac",kfac,"quot",quot," fT",fT
      &      wcorr,wcorr5,wcorr6,wturn4,wturn3,wturn6,wel_loc,
      &      wtor_d,wsccor,wbond
 #endif
+C        write (iout,*) "tuz przed energia"
         call etotal(energia(0),fT)
+C        write (iout,*) "tuz za energia"
+
 #ifdef DEBUG
         write (iout,*) "Conformation",i
           write (iout,'(8f10.5)') ((c(l,k),l=1,3),k=1,nres)
           write (iout,'(8f10.5)') ((c(l,k+nres),l=1,3),k=nnt,nct)
         call enerprint(energia(0),fT)
         write (iout,'(2i5,21f8.2)') i,iparm,(energia(k),k=1,21)
-        write (iout,*) "ftors",ftors
+        write (iout,*) "ftors(1)",ftors(1)
         call briefout(i,energia(0))
         temp=1.0d0/(beta_h(ib,ipar)*1.987D-3)
         write (iout,*) "temp", temp
@@ -220,6 +226,7 @@ c              call intout
               endif
             endif
           endif
+C          write (iout,*) "Czy tu dochodze"
           potE(iii+1,iparm)=energia(0)
           do k=1,21
             enetb(k,iii+1,iparm)=energia(k)
@@ -270,12 +277,15 @@ c     &   " snk",snk_p(iR,ib,ipar)
   121   continue
       enddo   
 #ifdef MPI
-      scount(me)=iii 
-      write (iout,*) "Me",me," scount",scount(me)
+      scount_buff(me)=iii 
+      write (iout,*) "Me",me," scount_buff",scount_buff(me)
       call flush(iout)
 c  Master gathers updated numbers of conformations written by all procs.
-      call MPI_AllGather( scount(me), 1, MPI_INTEGER, scount(0), 1, 
+c      call MPI_AllGather(MPI_IN_PLACE,1,MPI_DATATYPE_NULL,scount(0),1,
+c     &  MPI_INTEGER, WHAM_COMM, IERROR)
+      call MPI_AllGather( scount_buff(me), 1, MPI_INTEGER, scount(0), 1,
      &  MPI_INTEGER, WHAM_COMM, IERROR)
+
       indstart(0)=1
       indend(0)=scount(0)
       do i=1, Nprocs-1
@@ -361,7 +371,7 @@ c------------------------------------------------------------------------------
       double precision energ
       integer ilen,iroof
       external ilen,iroof
-      integer ir,ib,iparm
+      integer ir,ib,iparm, scount_buff(0:99)
       integer isecstr(maxres)
       write (licz2,'(bz,i2.2)') islice
       call opentmp(islice,ientout,bprotfile_temp)
@@ -666,8 +676,13 @@ c      write (iout,*) "xdrf3dfcoord"
 c      call flush(iout)
       call xdrfint_(ixdrf, nss, iret)
       do j=1,nss
-        call xdrfint_(ixdrf, ihpb(j), iret)
-        call xdrfint_(ixdrf, jhpb(j), iret)
+           if (dyn_ss) then
+            call xdrfint(ixdrf, idssb(j)+nres, iret)
+            call xdrfint(ixdrf, jdssb(j)+nres, iret)
+           else
+            call xdrfint_(ixdrf, ihpb(j), iret)
+            call xdrfint_(ixdrf, jhpb(j), iret)
+           endif
       enddo
       call xdrffloat_(ixdrf,real(eini),iret) 
       call xdrffloat_(ixdrf,real(efree),iret) 
@@ -678,8 +693,13 @@ c      call flush(iout)
 
       call xdrfint(ixdrf, nss, iret)
       do j=1,nss
-        call xdrfint(ixdrf, ihpb(j), iret)
-        call xdrfint(ixdrf, jhpb(j), iret)
+           if (dyn_ss) then
+            call xdrfint(ixdrf, idssb(j)+nres, iret)
+            call xdrfint(ixdrf, jdssb(j)+nres, iret)
+           else
+            call xdrfint(ixdrf, ihpb(j), iret)
+            call xdrfint(ixdrf, jhpb(j), iret)
+           endif
       enddo
       call xdrffloat(ixdrf,real(eini),iret) 
       call xdrffloat(ixdrf,real(efree),iret)