program dragged_fly_plot_again_dagger real m,k real daggerx(4),daggery(4) real daggerxold(4),daggeryold(4) real daggerxini(4),daggeryini(4) if(pgopen('/xwin')<=0)stop call pgenv(0.0,10.0,0.0,10.0,1,0) 1000 write(*,*)'Vx ?' read(*,*)vx write(*,*)'Vy ?' read(*,*) vy write(*,*)'Mass ?' read(*,*)m write(*,*)'Air friction ?' read(*,*)k dt=0.000001 x=0.0 y=5.0 daggerxini(1)=0.0 daggeryini(1)=0.2 daggerxini(2)=0.0 daggeryini(2)=-0.2 daggerxini(3)=1.0 daggeryini(3)=0.0 daggerxini(4)=0.0 daggeryini(4)=0.2 do while(y > 0.0) v=sqrt(vx*vx + vy*vy) f_d=(-1)*k*v ax_d=f_d*(vx/v)/m ay_d=f_d*(vy/v)/m ax=0.0 + ax_d ay=-9.8 + ay_d vx=vx+ax*dt vy=vy+ay*dt x=x+vx*dt y=y+vy*dt do i=1,4 c daggerx(i)=x+daggerxini(i)*(vx/v)+daggeryini(i)*(vy/v) c daggery(i)=y+(-1)*daggerxini(i)*(vy/v)+daggeryini(i)*(vx/v) daggerx(i)=x+daggerxini(i)*(vx/v)+(-1)*daggeryini(i)*(vy/v) daggery(i)=y+daggerxini(i)*(vy/v)+daggeryini(i)*(vx/v) end do c call pgpt(1,x,y,20) call pgbbuf call pgsci(0) call pgline(4,daggerxold,daggeryold) call pgsci(1) call pgline(4,daggerx,daggery) call pgebuf do i=1,4 daggerxold(i)=daggerx(i) daggeryold(i)=daggery(i) end do end do write(*,*)'Final hight :',y write(*,*)'Final distance :',x write(*,*)'Again?(1=yes,other=no)' read(*,*)i_again if(i_again==1)goto 1000 c call pgclos end