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
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)
#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.
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
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
endif
enddo
enddo
+ first_pass=.false.
cd write (iout,*) "exchange completed"
cd call flush(iout)
ELSE
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
& 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
& 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
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')
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
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
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
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
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