program linear_motion_wall_room_mouse character*1 char 1001 write(*,*)'x?' read(*,*)x write(*,*)'y?' read(*,*)y write(*,*)'Vx?' read(*,*)vx write(*,*)'Vy?' read(*,*)vy xold=x yold=y c w_left=5.0 c w_right=7.5 c w_top=7.0 c w_bottom=3.0 x_min=0.0 x_max=10.0 y_min=0.0 y_max=10.0 r=0.1 if(pgopen('/xwin')<=0)stop call pgenv(x_min,x_max,y_min,y_max,1,-1) idummy=pgband(0,1,5.0,5.0,x1,y1,char) idummy=pgband(2,1,x1,y1,x2,y2,char) if(x1x_max)vx=(-1)*vx c if(xx_max))vx=(-1)*vx c if(yy_max)vy=(-1)*vy if((yy_max))vy=(-1)*vy end subroutine pbc(x,y,x_min,x_max,y_min,y_max) if(xx_max) x = x - (x_max-x_min) if(yy_max) y = y - (y_max-y_min) end subroutine wall(x,y,xo,yo,vx,vy,wl,wr,wt,wb) if((ywb))then if((xowl))vx=(-1)*vx if((xo>wr).and.(xwl))then if((yowb))vy=(-1)*vy if((yo>wt).and.(y