update
[unres.git] / source / wham / src-M / cxread.F
index 7bb2f6a..82d05c2 100644 (file)
       double precision ts(MaxSlice),te(MaxSlice),time_slice
       integer slice
       logical conf_check
+      write (iout,*) "cxread"
+      call flush(iout)
       call set_slices(is,ie,ts,te,iR,ib,iparm)
-
+      write (iout,*) "after set_slices"
+      call flush(iout)
       do i=1,nQ
         rprop(i)=0.0d0
       enddo
@@ -58,13 +61,20 @@ c      print *,"bumbum"
 c      print *,"rtime",rtime," iret",iret
       call xdrffloat_(ixdrf, rpotE, iret)
 c      write (iout,*) "rpotE",rpotE," iret",iret
-      call flush(iout)
+c      call flush(iout)
       call xdrffloat_(ixdrf, ruconst, iret)
       call xdrffloat_(ixdrf, rt_bath, iret)
       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), iret)
+            call xdrfint(ixdrf, jdssb(j), iret)
+        idssb(j)=idssb(j)-nres
+        jdssb(j)=jdssb(j)-nres
+           else
+            call xdrfint_(ixdrf, ihpb(j), iret)
+            call xdrfint_(ixdrf, jhpb(j), iret)
+           endif
       enddo
       call xdrfint_(ixdrf, nprop, iret)
       if (umbrella(iparm) .or. read_iset(iparm) .or. hamil_rep) 
@@ -76,13 +86,20 @@ c      write (iout,*) "rpotE",rpotE," iret",iret
       call xdrffloat(ixdrf, rtime, iret)
       call xdrffloat(ixdrf, rpotE, iret)
 c      write (iout,*) "rpotE",rpotE," iret",iret
-      call flush(iout)
+c      call flush(iout)
       call xdrffloat(ixdrf, ruconst, iret)
       call xdrffloat(ixdrf, rt_bath, iret)
       call xdrfint(ixdrf, nss, iret)
+c      write (iout,*) "ruconst",ruconst," rt_bath",rt_bath," nss",nss
+c      call flush(iout)
       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), iret)
+            call xdrfint(ixdrf, jdssb(j), iret)
+           else
+            call xdrfint(ixdrf, ihpb(j), iret)
+            call xdrfint(ixdrf, jhpb(j), iret)
+           endif
       enddo
       call xdrfint(ixdrf, nprop, iret)
 c      write (iout,*) "nprop",nprop
@@ -160,9 +177,21 @@ c      call flush(iout)
         ii=ii+1
         kk(islice)=kk(islice)+1
         mm(islice)=mm(islice)+1
+#ifdef DEBUG
+        write (iout,*) "islice",islice," ii",ii," kk",kk(islice),
+     &    " mm",mm(islice)
+        write (iout,*) "itraj",itraj," nstep",nstep(itraj),
+     &    " isampl",isampl(iparm)
+        call flush(iout)
+#endif
         if (mod(nstep(itraj),isampl(iparm)).eq.0 .and. 
      &     conf_check(ll(islice)+1,1)) then
           if (replica(iparm)) then
+             if (rt_bath.eq.0.0d0) then
+               write (iout,*) "ERROR: zero temperature",
+     &         islice,kk(islice),mm(islice)
+               call flush(iout)
+             endif
              rt_bath=1.0d0/(rt_bath*1.987D-3)
              do i=1,nT_h(iparm)
                if (abs(real(beta_h(i,iparm))-rt_bath).lt.1.0e-4) then
@@ -206,13 +235,15 @@ c               call MPI_Abort(MPI_COMM_WORLD,IERROR,ERRCODE)
           write (iout,*) "ntraj",ntraj," itraj",itraj,
      &      " nstep",nstep(itraj)
           write (iout,*) "pote",rpotE," time",rtime
+          write (iout,*) "nss",nss
+          write (iout,*) (ihpb(k),jhpb(k),k=1,nss)
 c          if (replica(iparm)) then
 c            write (iout,*) "TEMP",1.0d0/(rt_bath*1.987D-3)
 c            write (iout,*) "TEMP list"
 c            write (iout,*)
 c     &       (1.0d0/(beta_h(i,iparm)*1.987D-3),i=1,nT_h(iparm))
 c          endif
-          write (iout,*) "iparm",iparm," ib",ib," iR",iR," nQ",nQ
+c          write (iout,*) "iparm",iparm," ib",ib," iR",iR," nQ",nQ
 c          write (iout,*) "nres",nres," nnt",nnt," nct",nct," nss",nss
 c          write (iout,*) "length",nres*4+(nct-nnt+1)*4+4+2*nss*4
           call flush(iout)