program main c c ... array declarations. c real coef(120,5), rhs(100), u(100), wksp(600), ubar(1), a rparm(30) integer jcoef(5), iwksp(300), iparm(30), p(100), ip(100) integer patt(2) external sor, sor7 c ndim = 120 mdim = 5 nw = 600 inw = 300 c c ... generate coef, jcoef, and rhs. c nx = 10 ny = 10 nz = 1 n = nx*ny h = 1.0/float(nx + 1) maxnz = 3 do 10 i = 1,n coef(i,1) = 6.0 coef(i,2) = -1.0 coef(i,3) = -2.0 rhs(i) = 0.0 10 continue k = 0 do 30 j = 1,ny y = float(j)*h do 25 i = 1,nx x = float(i)*h k = k + 1 if (j .eq. 1) then rhs(k) = rhs(k) + 2.0 endif if (j .eq. ny) then rhs(k) = rhs(k) + 2.0*(1.0 + x) coef(k,3) = 0.0 endif if (i .eq. 1) then rhs(k) = rhs(k) + 1.0 endif if (i .eq. nx) then rhs(k) = rhs(k) + 1.0 + y coef(k,2) = 0.0 endif 25 continue 30 continue jcoef(1) = 0 jcoef(2) = 1 jcoef(3) = nx call dfault (iparm,rparm) c c ... now, reset some default values. c iparm(3) = 3 iparm(14) = 1 iparm(19) = nx c c ... generate an initial guess for u and call nspcg. c call vfill (n,u,0.0) c nxp = 1 nyp = 2 nzp = 1 patt(1) = 1 patt(2) = 2 call color (nxp,nyp,nzp,nx,ny,nz,patt,p) call nspcg (sor7,sor,ndim,mdim,n,maxnz,coef,jcoef,p,ip, a u,ubar,rhs,wksp,iwksp,nw,inw,iparm,rparm,ier) stop end