program arrow_anim real x(7),y(7),x_rot(7),y_rot(7),xold(7),yold(7) real k,m x(1)= 1.0 y(1)= 0.0 x(2)= 1.0 y(2)= 0.3 x(3)= 2.0 y(3)= 0.0 x(4)=-2.0 y(4)= 0.0 x(5)=-2.5 y(5)= 0.5 x(6)=-1.5 y(6)= 0.5 x(7)=-1.0 y(7)= 0.0 write(*,*)'Vx=?' read(*,*)vx write(*,*)'Vy=?' read(*,*)vy write(*,*)'k=?' read(*,*)k write(*,*)'m=?' read(*,*)m xcm=0.0 ycm=1.0 dt=0.00001 i_dummy=pgopen('/xwin') call pgenv(0.0,10.0,0.0,10.0,1,0) do while (ycm>=0) v=sqrt(vx**2+vy**2) fd=(-1)*k*v ax=fd*(vx/v)/m ay=-9.8+fd*(vy/v)/m vx=vx+ax*dt vy=vy+ay*dt xcm=xcm+vx*dt ycm=ycm+vy*dt do i=1,7 x_rot(i)=x(i)+xcm y_rot(i)=y(i)+ycm end do call pgbbuf call pgsci(0) call pgline(7,xold,yold) call pgsci(1) call pgline(7,x_rot,y_rot) call pgebuf xcmold=xcm ycmold=ycm do i=1,7 xold(i)=x_rot(i) yold(i)=y_rot(i) end do end do write(*,*)'Distance=',xcm,';Hight=',ycm call pgclos end