+++ /dev/null
-c---------------------------------------------------------------------
- subroutine tnp_step1
-c Applying Nose-Poincare algorithm - step 1 to coordinates
-c J.Comput.Phys. 151 114 (1999) S.D.Bond B.J.Leimkuhler B.B.Laird
-c
-c d_t is not updated here, it is destroyed
-c
- implicit real*8 (a-h,o-z)
- include 'DIMENSIONS'
- include 'COMMON.CONTROL'
- include 'COMMON.VAR'
- include 'COMMON.MD'
- include 'COMMON.CHAIN'
- include 'COMMON.DERIV'
- include 'COMMON.GEO'
- include 'COMMON.LOCAL'
- include 'COMMON.INTERACT'
- include 'COMMON.IOUNITS'
- include 'COMMON.NAMES'
- double precision C_np,d_time_s,tmp,d_time_ss
-
- d_time_s=d_time*0.5*s_np
-
- do j=1,3
- d_t_new(j,0)=d_t_old(j,0)+d_a_old(j,0)*d_time_s
- enddo
- do i=nnt,nct-1
- do j=1,3
- d_t_new(j,i)=d_t_old(j,i)+d_a_old(j,i)*d_time_s
- enddo
- enddo
- do i=nnt,nct
- if (itype(i).ne.10) then
- inres=i+nres
- do j=1,3
- d_t_new(j,inres)=d_t_old(j,inres)+d_a_old(j,inres)*d_time_s
- enddo
- endif
- enddo
-
- do i=0,2*nres
- do j=1,3
- d_t(j,i)=d_t_new(j,i)
- enddo
- enddo
-
- call kinetic(EK)
- EK=EK/s_np**2
-
- C_np=0.5*d_time*(dimen*Rb*t_bath*(1.0+log(s_np))-EK+potE-H0)
- & -pi_np
-
- pistar=-2.0*C_np/(1.0+sqrt(1.0-C_np*d_time/Q_np))
- tmp=0.5*d_time*pistar/Q_np
- s12_np=s_np*(1.0+tmp)/(1.0-tmp)
-c write(iout,*) 'tnp_step1',s_np,s12_np,EK,potE,C_np,pistar,tmp
-
- d_time_ss=0.5*d_time*(1.0/s12_np+1.0/s_np)
-
- do j=1,3
- dc(j,0)=dc_old(j,0)+d_t_new(j,0)*d_time_ss
- enddo
- do i=nnt,nct-1
- do j=1,3
- dc(j,i)=dc_old(j,i)+d_t_new(j,i)*d_time_ss
- enddo
- enddo
- do i=nnt,nct
- if (itype(i).ne.10) then
- inres=i+nres
- do j=1,3
- dc(j,inres)=dc_old(j,inres)+d_t_new(j,inres)*d_time_ss
- enddo
- endif
- enddo
-
- return
- end