subroutine twodinit( a, b, f, nx, sx, ex, sy, ey )
integer nx, sx, ex, sy, ey
double precision a(sx-1:ex+1, sy-1:ey+1), b(sx-1:ex+1, sy-1:ey+1),
& f(sx-1:ex+1, sy-1:ey+1)
c
integer i, j
c
do 10 j=sy-1,ey+1
do 10 i=sx-1,ex+1
a(i,j) = 0.0d0
b(i,j) = 0.0d0
f(i,j) = 0.0d0
10 continue
c
c Handle boundary conditions
c
if (sx .eq. 1) then
do 20 j=sy,ey
a(0,j) = 1.0d0
b(0,j) = 1.0d0
20 continue
endif
if (ex .eq. nx) then
do 21 j=sy,ey
a(nx+1,j) = 0.0d0
b(nx+1,j) = 0.0d0
21 continue
endif
if (sy .eq. 1) then
do 30 i=sx,ex
a(i,0) = 1.0d0
b(i,0) = 1.0d0
30 continue
endif
c
return
end