module mymod implicit none contains subroutine trans(u,v,a,u1,v1) real*8, intent(in) :: u,v,a real*8, intent(out) :: u1,v1 u1 = u*cos(a) - v*sin(a) v1 = u*sin(a) + v*cos(a) return end subroutine trans end module mymod program t use mymod implicit none real*8 u,v,a,u1,v1,u2,v2 u=1 v=2 a=0.1d0 print *,'u',u print *,'v',v call trans(u,v,a,u1,v1) print *,'u1',u1 print *,'v1',v1 call trans(u1,v1,-a,u2,v2) print *,'u2',u2 print *,'v2',v2 end program t