作业帮 > 综合 > 作业

英语翻译ALLOCATE(VX(NZ,NX),VZ(NZ,NX),PR(NZ,NX))ALLOCATE(RHO(NZ,N

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/06 00:32:29
英语翻译
ALLOCATE(VX(NZ,NX),VZ(NZ,NX),PR(NZ,NX))
ALLOCATE(RHO(NZ,NX),VP(NZ,NX),K(NZ,NX))
ALLOCATE(PRXL(NZ,PML),PRXR(NZ,NX-PML+1:NX))
ALLOCATE(PRXU(PML,NX),PRXD(NZ-PML+1:NZ,NX))
ALLOCATE(PRZL(NZ,PML),PRZR(NZ,NX-PML+1:NX))
ALLOCATE(PRZU(PML,NX),PRZD(NZ-PML+1:NZ,NX))
PR=0.0
VZ=0.0
VX=0.0
PRXL=0.0
PRXR=0.0
PRXU=0.0
PRXD=0.0
PRZL=0.0
PRZR=0.0
PRZU=0.0
PRZD=0.0
!)是Fortran里的注释.
很多语句可以举一反三.
integer row,i,j,k,n
! 声明了五个整型变量
real s
! 声明实型变量
real,dimension(:,:),allocatable::a,l,u
! 声明实型二维数组
real,dimension(:),allocatable::b,x,y
! 声明实型一维数组
read*,row
! 从键盘读数据row
allocate(a(row,row))
! 给二维数组a分配内存空间
read*,((a(i,j),j=1,row),i=1,row)
! 从键盘读数组a
allocate(b(row))
read*,(b(i),i=1,row)
allocate(y(row))
allocate(x(row))
do k=1,row-1
! 循环语句,k从1循环到row-1
do i=k+1,row
a(i,k)=a(i,k)/a(k,k)
do j=k+1,row
a(i,j)=a(i,j)-a(i,k)*a(k,j)
end do
! 变量j的循环体结束
end do
end do
allocate(l(row,row))
do i=1,row
do j=1,row
if(i>j)then
! 判断语句,i是否大于j
l(i,j)=a(i,j)
elseif(i==j)then
l(i,j)=1
else if(i<j)then
l(i,j)=0
end if
end do
end do
allocate(u(row,row))
do i=1,row
do j=i,row
u(i,j)=a(i,j)
if(i>j)then
u(i,j)=0
end if
end do
end do
print*,'a=',((a(i,j),j=1,row),i=1,row)
! 在屏幕上输出数组a
print*,'l=',((l(i,j),j=1,row),i=1,row)
print*,'u=',((u(i,j),j=1,row),I=1,row)
n=10
do while(n>0)
! 满足n>0时循环
y(1)=b(1)/l(1,1)
do i=2,row
sum=0
do j=1,i-1
sum=sum+l(i,j)*y(j)
end do
y(i)=(b(i)-sum)/l(i,i)
end do
print*,(y(i),i=1,row)
x(row)=y(row)/u(row,row)
do i=row-1,1,-1
! i从row-1循环到1,步长是-1,也就是倒着循环
sum1=o
do j=i+1,row
sum1=sum1+u(i,j)*x(j)
end do
x(i)=(y(i)-sum1)/u(i,i)
end do
print*,(x(i),i=1,row)
s=abs(x(1))
! abs是绝对值函数
do j=2,row
if(abs(x(j))>s)then
s=abs(x(j))
end if
end do
do i=1,row
b(i)=x(i)/s
end do
n=n-1
end do
end
! 最后的end代表程序结束
! 这里应该是开始了一个子程序
INTEGER ROW,COL,I,J,N
REAL,DIMENSION(:,:),ALLOCATABLE::B
REAL,DIMENSION(:),ALLOCATABLE::X,G
READ*,row,col
allocate(b(row,col))
read*,((b(i,j),j=1,col),i=1,row)
allocate(x(col),g(col))
read*,(x(i),i=1,col)
read*,(g(i),i=1,col)
read*,n
do while(n.ne.0)
! .ne.是not equal的意思,也就是判断n是否不等于0
do i=1,col
sum=0
do j=1,col
sum=sum+b(i,j)*x(j)
end do
x(i)=sum+g(i)
end do
n=n-1
print*,(x(i),i=1,col)
end do
end