c----------------------------------------------------------------- subroutine tnp_respa_step1 c Applying Nose-Poincare algorithm - step 1 to vel for RESPA 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 double precision energia(0:n_ene) d_time_s=d_time*0.5*s_np do j=1,3 d_t_old(j,0)=d_t_old(j,0)+d_a(j,0)*d_time_s enddo do i=nnt,nct-1 do j=1,3 d_t_old(j,i)=d_t_old(j,i)+d_a(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_old(j,inres)=d_t_old(j,inres)+d_a(j,inres)*d_time_s enddo endif enddo c C_np=0.5*d_time*(dimen*Rb*t_bath*(1.0+log(s_np))-EK+potE-H0) c & -pi_np c c pistar=-2.0*C_np/(1.0+sqrt(1.0-C_np*d_time/Q_np)) c tmp=0.5*d_time*pistar/Q_np c s12_np=s_np*(1.0+tmp)/(1.0-tmp) c write(iout,*) 'tnp_respa_step1',s_np,s12_np,EK,potE,C_np,pistar,tmp ct1 pi_np=pistar c sold_np=s_np c s_np=s12_np c------------------------------------- c test of reviewer's comment pi_np=pi_np-0.5*d_time*(E_long+Csplit-H0) cr print '(a,3f)','1 pi_np,s_np',pi_np,s_np,E_long c------------------------------------- return end