c main program parameter(nx=11,ny=11,nx2=nx*2,nxy=nx*ny,ico=7) parameter(nx0=nx-1,ny0=ny-1,nxy0=nx0*ny0) parameter(nxa=nx0-1,nya=ny0-1) parameter(x0=0.0,y0=0.0,z0=0.0) parameter(xll=4.0,yll=4.0,zll=4.0) dimension v(nxy0),u(nxy),p(nx2) c icc=1:x-y plane, 2:y-z plane, 3:x-z plane c pi=3.1415926 amp=1.0 c do 100 ii=1,2 do 10 j=1,ny0 do 10 i=1,nx0 i1=i+nx0*(j-1) if(ii.eq.1) v(i1)=0.5+float(i-1) if(ii.eq.2) v(i1)=0.5+float(j-1) c if(ii.eq.1) v(i1)=1.0+2.0*float(i-1) c if(ii.eq.2) v(i1)=1.0+2.0*float(j-1) 10 continue c call trans1(nx,ny,v,u) c write(6,24) do 20 j=1,ny0 i1=1+nx0*(j-1) i2=i1+nxa write(6,22) (v(i),i=i1,i2) 22 format(1h ,11f4.1) 24 format(1h ) 20 continue c write(6,24) do 30 j=1,ny i1=1+nx*(j-1) i2=i1+nx0 write(6,22) (u(i),i=i1,i2) 30 continue 100 continue c stop end c c subroutine trans1 subroutine trans1(nx,ny,v,u) dimension v(1),u(1) c nx0=nx-1 ny0=ny-1 nxa=nx0-1 nya=ny0-1 c do 10 j=1,nya do 10 i=1,nxa i1=i+1+nx*j j1=i+nx0*(j-1) u(i1)=0.25*(v(j1)+v(j1+1)+v(j1+nx0)+v(j1+nx)) 10 continue c do 20 i=1,nxa i1=i+1 i2=i1+nx*ny0 j1=i+1 j2=i+1+nx0*nya u(i1)=0.75*(v(j1-1)+v(j1))-0.25*(v(j1-1+nx0)+v(j1+nx0)) u(i2)=0.75*(v(j2-1)+v(j2))-0.25*(v(j2-1-nx0)+v(j2-nx0)) 20 continue c do 30 j=1,nya i1=1+nx*j i2=i1+nx0 j1=1+nx0*j j2=j1+nxa u(i1)=0.75*(v(j1-nx0)+v(j1))-0.25*(v(j1-nx0+1)+v(j1+1)) u(i2)=0.75*(v(j2-nx0)+v(j2))-0.25*(v(j2-nx0-1)+v(j2-1)) 30 continue c i1=1 i2=i1+nx0 i3=1+nx*ny0 i4=i3+nx0 j1=1 j2=j1+nxa j3=1+nx0*nya j4=j3+nxa u(i1)=0.5*(3.0*v(j1)-v(j1+nx)) u(i2)=0.5*(3.0*v(j2)-v(j2+nxa)) u(i3)=0.5*(3.0*v(j3)-v(j3-nxa)) u(i4)=0.5*(3.0*v(j4)-v(j4-nx)) c write(6,*) i1,i2,i3,i4 write(6,*) j1,j2,j3,j4 write(6,*) nx,nx0,nxa,ny,ny0,nya c return end