主题:程序问题
program pressure_main
DOUBLE PRECISION dimension, U(99,99),V(99,99),P(99,1),D(99,1),E(99,1)
integer n,i,j
DOUBLE PRECISION a,b
a=2*pi/n
do i=1,n-1
U(i,i)=-(1+b*cos((i+1/2)*a))**3-(1+b*cos((i-1/2)*a))**3
U(i+1,i)=(1+b*cos((i-1/2)*a))**3
U(i,i+1)=(1+b*cos((i+1/2)*a))**3
end do
do i=1,n-2
V(1,1)=U(1,1)
V(i,i+1)=U(i,i+1)
V(i+1,i+1)=U(i+1,i+1)-U(i+1,i)*U(i,i+1)/U(i,i)
end do
do i=1,n-1
D(i,1)=3*b*(cos((i+1/2)*a)-cos((i-1/2)*a))
end do
do i=1,n-2
E(1,1)=D(1,1)
E(i+1,1)=D(i+1,1)-U(i+1,i)*D(i,1)/U(i,i)
end do
do i=98,1,-1
P(99,1)=E(99,1)/V(99,99)
P(i,1)=(E(i,1)-V(i,i)*P(i+1,1))/V(i,i)
end do
PRINT *,'Input integer n and DOUBLE PRECISION b ?'
read (*,*) n,b
write(*,100) 'P=',P
100 format(d4.8)
end program pressure_main
请问这个程序有什么问题?编译时没问题,运行时没结果。
DOUBLE PRECISION dimension, U(99,99),V(99,99),P(99,1),D(99,1),E(99,1)
integer n,i,j
DOUBLE PRECISION a,b
a=2*pi/n
do i=1,n-1
U(i,i)=-(1+b*cos((i+1/2)*a))**3-(1+b*cos((i-1/2)*a))**3
U(i+1,i)=(1+b*cos((i-1/2)*a))**3
U(i,i+1)=(1+b*cos((i+1/2)*a))**3
end do
do i=1,n-2
V(1,1)=U(1,1)
V(i,i+1)=U(i,i+1)
V(i+1,i+1)=U(i+1,i+1)-U(i+1,i)*U(i,i+1)/U(i,i)
end do
do i=1,n-1
D(i,1)=3*b*(cos((i+1/2)*a)-cos((i-1/2)*a))
end do
do i=1,n-2
E(1,1)=D(1,1)
E(i+1,1)=D(i+1,1)-U(i+1,i)*D(i,1)/U(i,i)
end do
do i=98,1,-1
P(99,1)=E(99,1)/V(99,99)
P(i,1)=(E(i,1)-V(i,i)*P(i+1,1))/V(i,i)
end do
PRINT *,'Input integer n and DOUBLE PRECISION b ?'
read (*,*) n,b
write(*,100) 'P=',P
100 format(d4.8)
end program pressure_main
请问这个程序有什么问题?编译时没问题,运行时没结果。