主题:关于函数参数为数组及返回值为数组的问题
这是我编的一个小程序,大家帮看看,小弟刚学Fortran,很困惑啊,非常感激
program TSS1
implicit none
real a(20),b(20),c(19),f(20),u(20),l(20),y(20),x(20)
integer k
a(1)=0.0
b(20)=4.0
f(20)=3.0
do k=1,19
b(k)=4.0
c(k)=-1.0
a(k+1)=-1.0
f(k)=2
end do
f(1)=3.0
call TSS(a,b,c,f,20,x)
end
subroutine TSS(a,b,c,d,n,x)
real a(n),b(n),c(n-1),d(n),x(n),l(n),u(n),y(n)
integer n,k
u(1)=b(1)
y(1)=d(1)
do k=2,n
l(k)=a(k)/u(k-1)
u(k)=b(k)-l(k)*c(k-1)
y(k)=f(k)-l(k)*y(k-1)
end do
x(n)=y(n)/u(n)
do k=n-1,1,-1
x(k)=(y(k)-c(k)*x(k+1))/u(k)
end do
end subroutine
program TSS1
implicit none
real a(20),b(20),c(19),f(20),u(20),l(20),y(20),x(20)
integer k
a(1)=0.0
b(20)=4.0
f(20)=3.0
do k=1,19
b(k)=4.0
c(k)=-1.0
a(k+1)=-1.0
f(k)=2
end do
f(1)=3.0
call TSS(a,b,c,f,20,x)
end
subroutine TSS(a,b,c,d,n,x)
real a(n),b(n),c(n-1),d(n),x(n),l(n),u(n),y(n)
integer n,k
u(1)=b(1)
y(1)=d(1)
do k=2,n
l(k)=a(k)/u(k-1)
u(k)=b(k)-l(k)*c(k-1)
y(k)=f(k)-l(k)*y(k-1)
end do
x(n)=y(n)/u(n)
do k=n-1,1,-1
x(k)=(y(k)-c(k)*x(k+1))/u(k)
end do
end subroutine