X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=source%2Funres%2FMREMD.F90;h=e901e60742dcb8237a8338cd13487a7d26f2437d;hb=41585054482bea08de6120a0ec991bc5288c9fe5;hp=75062ede2e03d1566e18db4b8cd0a9a20efc18c0;hpb=f2b6c10194606cb27a4c4ceb30a82e6614d7e82a;p=unres4.git diff --git a/source/unres/MREMD.F90 b/source/unres/MREMD.F90 index 75062ed..e901e60 100644 --- a/source/unres/MREMD.F90 +++ b/source/unres/MREMD.F90 @@ -107,7 +107,7 @@ 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 + i_mult1,i_iset1,i_mset1,ierror,itime,mnum integer,dimension(4,nres/3) :: iharp !(4,nres/3)(4,maxres/3) !deb imin_itime_old=0 integer :: nres2 !el @@ -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,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 call rescale_weights(t_bath) endif @@ -616,7 +637,7 @@ ugamma_cache(i,ntwx_cache)=ugamma(i) uscdiff_cache(i,ntwx_cache)=uscdiff(i) enddo -! call returnbox + call returnbox do i=1,nres*2 do j=1,3 c_cache(j,i,ntwx_cache)=c(j,i) @@ -1296,6 +1317,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()