+++ /dev/null
-c-------------------------------------------------------------
- subroutine sd_verlet1
-c Applying stochastic velocity Verlet algorithm - step 1 to velocities
- 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'
- double precision stochforcvec(MAXRES6)
- common /stochcalc/ stochforcvec
- logical lprn /.false./
-
-c write (iout,*) "dc_old"
-c do i=0,nres
-c write (iout,'(i5,3f10.5,5x,3f10.5)')
-c & i,(dc_old(j,i),j=1,3),(dc_old(j,i+nres),j=1,3)
-c enddo
- do j=1,3
- dc_work(j)=dc_old(j,0)
- d_t_work(j)=d_t_old(j,0)
- d_a_work(j)=d_a_old(j,0)
- enddo
- ind=3
- do i=nnt,nct-1
- do j=1,3
- dc_work(ind+j)=dc_old(j,i)
- d_t_work(ind+j)=d_t_old(j,i)
- d_a_work(ind+j)=d_a_old(j,i)
- enddo
- ind=ind+3
- enddo
- do i=nnt,nct
- if (itype(i).ne.10) then
- do j=1,3
- dc_work(ind+j)=dc_old(j,i+nres)
- d_t_work(ind+j)=d_t_old(j,i+nres)
- d_a_work(ind+j)=d_a_old(j,i+nres)
- enddo
- ind=ind+3
- endif
- enddo
-#ifndef LANG0
- if (lprn) then
- write (iout,*)
- & "pfric_mat, vfric_mat, afric_mat, prand_mat, vrand_mat1,",
- & " vrand_mat2"
- do i=1,dimen
- do j=1,dimen
- write (iout,'(2i5,6e15.5)') i,j,pfric_mat(i,j),
- & vfric_mat(i,j),afric_mat(i,j),
- & prand_mat(i,j),vrand_mat1(i,j),vrand_mat2(i,j)
- enddo
- enddo
- endif
- do i=1,dimen
- ddt1=0.0d0
- ddt2=0.0d0
- do j=1,dimen
- dc_work(i)=dc_work(i)+vfric_mat(i,j)*d_t_work(j)
- & +afric_mat(i,j)*d_a_work(j)+prand_mat(i,j)*stochforcvec(j)
- ddt1=ddt1+pfric_mat(i,j)*d_t_work(j)
- ddt2=ddt2+vfric_mat(i,j)*d_a_work(j)
- enddo
- d_t_work_new(i)=ddt1+0.5d0*ddt2
- d_t_work(i)=ddt1+ddt2
- enddo
-#endif
- do j=1,3
- dc(j,0)=dc_work(j)
- d_t(j,0)=d_t_work(j)
- enddo
- ind=3
- do i=nnt,nct-1
- do j=1,3
- dc(j,i)=dc_work(ind+j)
- d_t(j,i)=d_t_work(ind+j)
- enddo
- ind=ind+3
- enddo
- do i=nnt,nct
- if (itype(i).ne.10) then
- inres=i+nres
- do j=1,3
- dc(j,inres)=dc_work(ind+j)
- d_t(j,inres)=d_t_work(ind+j)
- enddo
- ind=ind+3
- endif
- enddo
- return
- end