主题:谁有解三维问题的迭代法的fortran程序?
我有二维的程序,修改了一下,但是不出结果。不知谁用迭代法做过三维问题,可以共享一下么?
下面是二维的迭代法程序
subroutine ssor(a,n,b,x,eps,om,ii)
parameter(imax=100000)
real a(n,n),b(n),x(n)
integer i,j,ii
real r,rx
do i=1,n
r=1/a(i,i)
b(i)=b(i)*r
do j=1,n
a(i,j)=a(i,j)*r
end do
end do
do ii=1,imax
rx=0.0
do i=1,n
r=b(i)
do j=1,n
r=r-a(i,j)*x(j)
enddo
if (abs(r)>rx)rx=abs(r)
x(i)=x(i)+om*r
enddo
if(om*rx<=eps) return
enddo
pause 'too many iterations'
end subroutine ssor
下面是二维的迭代法程序
subroutine ssor(a,n,b,x,eps,om,ii)
parameter(imax=100000)
real a(n,n),b(n),x(n)
integer i,j,ii
real r,rx
do i=1,n
r=1/a(i,i)
b(i)=b(i)*r
do j=1,n
a(i,j)=a(i,j)*r
end do
end do
do ii=1,imax
rx=0.0
do i=1,n
r=b(i)
do j=1,n
r=r-a(i,j)*x(j)
enddo
if (abs(r)>rx)rx=abs(r)
x(i)=x(i)+om*r
enddo
if(om*rx<=eps) return
enddo
pause 'too many iterations'
end subroutine ssor