X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=source%2Funres%2Fsrc-HCD-5D%2FMREMD.F;h=f22e2f6acc0f08f35e39e28652a5e9266d8a9712;hb=57038e4bdff4cc9534106b25bfbd4b9a844d47fd;hp=919140289105d8e35958eee767f68575dd8d05df;hpb=32caa3b64eb94b90fa9fd402b77263ea89efffa1;p=unres.git diff --git a/source/unres/src-HCD-5D/MREMD.F b/source/unres/src-HCD-5D/MREMD.F index 9191402..f22e2f6 100644 --- a/source/unres/src-HCD-5D/MREMD.F +++ b/source/unres/src-HCD-5D/MREMD.F @@ -57,7 +57,7 @@ cold integer nup(0:maxprocs),ndown(0:maxprocs) integer rep2i(0:maxprocs),ireqi(maxprocs) integer icache_all(maxprocs) integer status(MPI_STATUS_SIZE),statusi(MPI_STATUS_SIZE,maxprocs) - logical synflag,end_of_run,file_exist /.false./,ovrtim + logical synflag,end_of_run,file_exist /.false./,ovrtim,first_pass double precision t_bath_temp,delta,ene_iex_iex,ene_i_i,ene_iex_i, & ene_i_iex,xxx,tmp,econstr_temp_iex,econstr_temp_i integer iran_num @@ -145,8 +145,8 @@ cold endif cd print '(i4,a6,100i4)',me,' ndown',(ndown(i),i=0,ndown(0)) - write (*,*) "Processor",me," rest",rest," - & restart1fie",restart1file +c write (*,*) "Processor",me," rest",rest," +c & restart1fie",restart1file if(rest.and.restart1file) then if (me.eq.king) & inquire(file=mremd_rst_name,exist=file_exist) @@ -424,6 +424,8 @@ c Entering the MD loop #endif itime=0 end_of_run=.false. + first_pass=.not.rest +c write (iout,*) "first_pass",first_pass do while(.not.end_of_run) itime=itime+1 if(itime.eq.n_timestep.and.me.eq.king) end_of_run=.true. @@ -942,7 +944,10 @@ c write (iout,*) "ene_i_i",remd_ene(0,i) c call flush(iout) c write (iout,*) "rescaling weights with temperature", c & remd_t_bath(iex) - if (real(ene_i_i).ne.real(remd_ene(0,i))) then +c write (iout,*) "first_pass",first_pass + if (.not.first_pass.and. + & real(ene_i_i).ne.real(remd_ene(0,i))) + & then write (iout,*) "ERROR: inconsistent energies:",i, & ene_i_i,remd_ene(0,i) endif @@ -960,7 +965,8 @@ c write (iout,*) "0,iex",remd_t_bath(iex) c call enerprint(remd_ene(0,iex)) call sum_energy(remd_ene(0,iex),.false.) - if (real(ene_iex_iex).ne.real(remd_ene(0,iex))) then + if (.not.first_pass.and. + & real(ene_iex_iex).ne.real(remd_ene(0,iex))) then write (iout,*) "ERROR: inconsistent energies:",iex, & ene_iex_iex,remd_ene(0,iex) endif @@ -1065,6 +1071,7 @@ c call flush(iout) endif enddo enddo + first_pass=.false. cd write (iout,*) "exchange completed" cd call flush(iout) ELSE @@ -1383,7 +1390,7 @@ c----------------------------------------------------------------------- include 'COMMON.SBRIDGE' include 'COMMON.INTERACT' - real d_restart1(3,2*maxres*maxprocs),r_d(3,2*maxres), + real d_restart1(3,2*maxres*maxprocs),r_d(3,0:2*maxres-1), & d_restart2(3,2*maxres*maxprocs) real t5_restart1(5) integer iret,itmp @@ -1403,7 +1410,7 @@ c----------------------------------------------------------------------- & t_restart1,5,mpi_real,king,CG_COMM,ierr) - do i=1,2*nres + do i=0,2*nres-1 do j=1,3 r_d(j,i)=d_t(j,i) enddo @@ -1413,7 +1420,7 @@ c----------------------------------------------------------------------- & CG_COMM,ierr) - do i=1,2*nres + do i=0,2*nres-1 do j=1,3 r_d(j,i)=dc(j,i) enddo @@ -1794,14 +1801,14 @@ c end debugging include 'COMMON.CHAIN' include 'COMMON.SBRIDGE' include 'COMMON.INTERACT' - real d_restart1(3,2*maxres*maxprocs),r_d(3,2*maxres), + real d_restart1(3,2*maxres*maxprocs),r_d(3,0:2*maxres-1), & t5_restart1(5) integer*2 i_index & (maxprocs/4,maxprocs/20,maxprocs/200,maxprocs/200) common /przechowalnia/ d_restart1 integer i,j,il,il1,ixdrf,iret,itmp integer ierr - write (*,*) "Processor",me," called read1restart" +c write (*,*) "Processor",me," called read1restart" if(me.eq.king)then open(irest2,file=mremd_rst_name,status='unknown') @@ -1888,7 +1895,7 @@ c & (d_restart1(j,i+2*nres*il),j=1,3) call mpi_scatter(d_restart1,3*2*nres,mpi_real, & r_d,3*2*nres,mpi_real,king,CG_COMM,ierr) - do i=1,2*nres + do i=0,2*nres-1 do j=1,3 d_t(j,i)=r_d(j,i) enddo @@ -1910,7 +1917,7 @@ c & (d_restart1(j,i+2*nres*il),j=1,3) endif call mpi_scatter(d_restart1,3*2*nres,mpi_real, & r_d,3*2*nres,mpi_real,king,CG_COMM,ierr) - do i=1,2*nres + do i=0,2*nres-1 do j=1,3 dc(j,i)=r_d(j,i) enddo @@ -1991,7 +1998,7 @@ c & CG_COMM,ierr) include 'COMMON.CHAIN' include 'COMMON.SBRIDGE' include 'COMMON.INTERACT' - real d_restart1(3,2*maxres*maxprocs),r_d(3,2*maxres), + real d_restart1(3,2*maxres*maxprocs),r_d(3,0:2*maxres-1), & t5_restart1(5) common /przechowalnia/ d_restart1 integer i,j,il,itmp @@ -2027,7 +2034,7 @@ c & CG_COMM,ierr) call mpi_scatter(d_restart1,3*2*nres,mpi_real, & r_d,3*2*nres,mpi_real,king,CG_COMM,ierr) - do i=1,2*nres + do i=0,2*nres-1 do j=1,3 d_t(j,i)=r_d(j,i) enddo @@ -2042,7 +2049,7 @@ c & CG_COMM,ierr) endif call mpi_scatter(d_restart1,3*2*nres,mpi_real, & r_d,3*2*nres,mpi_real,king,CG_COMM,ierr) - do i=1,2*nres + do i=0,2*nres-1 do j=1,3 dc(j,i)=r_d(j,i) enddo