real(kind=8) :: remd_t_bath(Nprocs) !(maxprocs)
integer :: iremd_iset(Nprocs) !(maxprocs)
- integer(kind=2) :: i_index(Nprocs/2,Nprocs/2,Nprocs/10,Nprocs/10)
+ integer(kind=2) :: i_index(Nprocs,Nprocs/2,Nprocs/10,Nprocs/10)
! (maxprocs/4,maxprocs/20,maxprocs/200,maxprocs/200)
real(kind=8) :: remd_ene(0:n_ene+4,Nprocs) !(0:n_ene+4,maxprocs)
integer :: iremd_acc(Nprocs),iremd_tot(Nprocs) !(maxprocs)
econstr_temp_iex
integer :: k,il,il1,i,j,nharp,ii,ierr,itime_master,irr,iex,&
i_set_temp,itmp,i_temp,i_mult,i_iset,i_mset,i_dir,i_temp1,&
- i_mult1,i_iset1,i_mset1,ierror,itime
- integer,dimension(4,nres/3) :: iharp !(4,nres/3)(4,maxres/3)
+ i_mult1,i_iset1,i_mset1,ierror,itime,mnum
+ integer,dimension(4,nres) :: iharp !(4,nres/3)(4,maxres/3)
!deb imin_itime_old=0
integer :: nres2 !el
WRITE(iout,*) "JUST AFTER CALL"
stdfsc(i,j)=dsqrt(2*Rb*t_bath/d_time)
enddo
enddo
-
+ if (lang.gt.0 .and. .not.surfarea) then
+ do i=nnt,nct-1
+ mnum=(molnum(i))
+ stdforcp(i)=stdfp(mnum)*dsqrt(gamp(mnum))
+ enddo
+ do i=nnt,nct
+ mnum=molnum(i)
+ if (itype(i,mnum).ne.ntyp1) stdforcsc(i)=stdfsc(iabs(itype(i,mnum)),mnum)&
+ *dsqrt(gamsc(iabs(itype(i,mnum)),mnum))
+ enddo
+ endif
! print *,'irep',me,t_bath
if (.not.rest) then
if (me.eq.king .or. .not. out1file) &
stdfsc(i,j)=dsqrt(2*Rb*t_bath/d_time)
enddo
enddo
+ if (lang.gt.0 .and. .not.surfarea) then
+ do i=nnt,nct-1
+ mnum=(molnum(i))
+ stdforcp(i)=stdfp(mnum)*dsqrt(gamp(mnum))
+! write(iout,*) "stdforcp=",stdforcp(i),itype(i,mnum),i
+ enddo
+ do i=nnt,nct
+ mnum=molnum(i)
+ if (itype(i,mnum).ne.ntyp1) stdforcsc(i)=stdfsc(iabs(itype(i,mnum)),mnum)&
+ *dsqrt(gamsc(iabs(itype(i,mnum)),mnum))
+! write(iout,*) "stdforcsc=",stdforcsc(i),itype(i,mnum),i
+ enddo
+ endif
call rescale_weights(t_bath)
endif
stdfsc(i,j)=dsqrt(2*Rb*t_bath/d_time)
enddo
enddo
+!c Compute the standard deviations of stochastic forces for Langevin dynamics
+!c if the friction coefficients do not depend on surface area
+ if (lang.gt.0 .and. .not.surfarea) then
+ do i=nnt,nct-1
+ mnum=(molnum(i))
+ stdforcp(i)=stdfp(mnum)*dsqrt(gamp(mnum))
+ enddo
+ do i=nnt,nct
+ mnum=molnum(i)
+ if (itype(i,mnum).ne.ntyp1) stdforcsc(i)=stdfsc(iabs(itype(i,mnum)),mnum)&
+ *dsqrt(gamsc(iabs(itype(i,mnum)),mnum))
+ enddo
+ endif
!de write(iout,*) 'REMD after',me,t_bath
time08=MPI_WTIME()