X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=source%2Funres%2FMREMD.F90;h=37c772052894c92c3cace6e7e22607a2384b3dc3;hb=bc23440fbe68672d430f71f22f46b11265f003db;hp=341652627d5e293c9e60edd7b5f6650dbd395da6;hpb=d4033f3ee5e94f3f22692d69fea70e36f231ebd1;p=unres4.git diff --git a/source/unres/MREMD.F90 b/source/unres/MREMD.F90 index 3416526..37c7720 100644 --- a/source/unres/MREMD.F90 +++ b/source/unres/MREMD.F90 @@ -85,7 +85,7 @@ 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) @@ -107,8 +107,8 @@ 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" @@ -360,7 +360,17 @@ 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) & @@ -397,6 +407,19 @@ 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 @@ -1296,6 +1319,19 @@ 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()