homology energy correction
[unres.git] / source / unres / src-HCD-5D / MREMD.F
index 78a7404..38db8a8 100644 (file)
@@ -175,6 +175,19 @@ cd           write (*,*) me," After broadcast: file_exist",file_exist
                enddo
               enddo
            endif 
+           stdfp=dsqrt(2*Rb*t_bath/d_time)
+           do i=1,ntyp
+             stdfsc(i)=dsqrt(2*Rb*t_bath/d_time)
+           enddo
+           if (lang.gt.0 .and. .not.surfarea) then
+             do i=nnt,nct-1
+               stdforcp(i)=stdfp*dsqrt(gamp)
+             enddo
+             do i=nnt,nct
+              if (itype(i).ne.ntyp1) stdforcsc(i)=stdfsc(iabs(itype(i)))
+     &                   *dsqrt(gamsc(iabs(itype(i))))
+             enddo
+           endif
        endif
 
        if(me.eq.king) then
@@ -237,6 +250,20 @@ cd           write (*,*) me," After broadcast: file_exist",file_exist
               write (iout,'(a6,i4,a1,100i4)') "ndowna",il,":",
      &                    (ndowna(i,il),i=1,ndowna(0,il))
              enddo
+             stdfp=dsqrt(2*Rb*t_bath/d_time)
+             do i=1,ntyp
+               stdfsc(i)=dsqrt(2*Rb*t_bath/d_time)
+             enddo
+             if (lang.gt.0 .and. .not.surfarea) then
+               do i=nnt,nct-1
+                 stdforcp(i)=stdfp*dsqrt(gamp)
+               enddo
+             do i=nnt,nct
+              if (itype(i).ne.ntyp1) stdforcsc(i)=stdfsc(iabs(itype(i)))
+     &                   *dsqrt(gamsc(iabs(itype(i))))
+               enddo
+             endif
+
         ELSE IF (.not.(rest.and.file_exist)) THEN
          do il=1,remd_m(1)
           ifirst(il)=il
@@ -1279,6 +1306,17 @@ co     &    " rescaling weights with temperature",t_bath
            stdfsc(i)=dsqrt(2*Rb*t_bath/d_time)
          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
+             stdforcp(i)=stdfp*dsqrt(gamp)
+           enddo
+           do i=nnt,nct
+             if (itype(i).ne.ntyp1) stdforcsc(i)=stdfsc(iabs(itype(i)))
+     &                   *dsqrt(gamsc(iabs(itype(i))))
+           enddo
+         endif
 cde         write(iout,*) 'REMD after',me,t_bath
            time08=MPI_WTIME()
            if (me.eq.king .or. .not. out1file) then