program checkv integer i,j,nx,ny parameter(nx=64,ny=64) double precision h,x,y,urad,r double precision u(nx,ny),v(nx,ny) h = 1.D0/64.D0 do 5 j=1,ny y = (dble(j)-0.5D0)*h-0.5D0 do 5 i=1,nx x = (dble(i)-0.5D0)*h-0.5D0 r = dsqrt(x*x + y*y) u(i,j) = -urad(r)*y/r v(i,j) = urad(r)*x/r 5 continue read(21,101) ((u(i,j),i=1,nx),j=1,ny) read(21,101) ((v(i,j),i=1,nx),j=1,ny) write(22,102) (dble(j),dsqrt(v(j,j)**2+u(j,j)**2),j=1,64) * ***************************************************** 101 format(e16.10) 102 format(2(f12.8,2x)) end function urad(r) double precision urad,r,u0,eps parameter (eps=5.D-2,u0=0.07*eps) if( r .le. eps ) then urad = u0/eps else urad = u0/r endif end