+++ /dev/null
-c-----------------------------------------------------------
- subroutine random_vel
- implicit real*8 (a-h,o-z)
- include 'DIMENSIONS'
- include 'COMMON.CONTROL'
- include 'COMMON.VAR'
- include 'COMMON.MD'
-#ifndef LANG0
- include 'COMMON.LANGEVIN'
-#else
- include 'COMMON.LANGEVIN.lang0'
-#endif
- include 'COMMON.CHAIN'
- include 'COMMON.DERIV'
- include 'COMMON.GEO'
- include 'COMMON.LOCAL'
- include 'COMMON.INTERACT'
- include 'COMMON.IOUNITS'
- include 'COMMON.NAMES'
- include 'COMMON.TIME1'
- double precision xv,sigv,lowb,highb
-c Generate random velocities from Gaussian distribution of mean 0 and std of KT/m
-c First generate velocities in the eigenspace of the G matrix
-c write (iout,*) "Calling random_vel dimen dimen3",dimen,dimen3
-c call flush(iout)
- xv=0.0d0
- ii=0
- do i=1,dimen
- do k=1,3
- ii=ii+1
- sigv=dsqrt((Rb*t_bath)/geigen(i))
- lowb=-5*sigv
- highb=5*sigv
- d_t_work_new(ii)=anorm_distr(xv,sigv,lowb,highb)
-c write (iout,*) "i",i," ii",ii," geigen",geigen(i),
-c & " d_t_work_new",d_t_work_new(ii)
- enddo
- enddo
-c diagnostics
-c Ek1=0.0d0
-c ii=0
-c do i=1,dimen
-c do k=1,3
-c ii=ii+1
-c Ek1=Ek1+0.5d0*geigen(i)*d_t_work_new(ii)**2
-c enddo
-c enddo
-c write (iout,*) "Ek from eigenvectors",Ek1
-c end diagnostics
-c Transform velocities to UNRES coordinate space
- do k=0,2
- do i=1,dimen
- ind=(i-1)*3+k+1
- d_t_work(ind)=0.0d0
- do j=1,dimen
- d_t_work(ind)=d_t_work(ind)
- & +Gvec(i,j)*d_t_work_new((j-1)*3+k+1)
- enddo
-c write (iout,*) "i",i," ind",ind," d_t_work",d_t_work(ind)
-c call flush(iout)
- enddo
- enddo
-c Transfer to the d_t vector
- do j=1,3
- d_t(j,0)=d_t_work(j)
- enddo
- ind=3
- do i=nnt,nct-1
- do j=1,3
- ind=ind+1
- d_t(j,i)=d_t_work(ind)
- enddo
- enddo
- do i=nnt,nct
- if (itype(i).ne.10) then
- do j=1,3
- ind=ind+1
- d_t(j,i+nres)=d_t_work(ind)
- enddo
- endif
- enddo
-c call kinetic(EK)
-c write (iout,*) "Kinetic energy",Ek,EK1," kinetic temperature",
-c & 2.0d0/(dimen3*Rb)*EK,2.0d0/(dimen3*Rb)*EK1
-c call flush(iout)
- return
- end