我试图从二维数组中获取值,但我在索引处获得的值不是我得到的。这是程序:
subroutine stlstp(y,n,np,ns,nt,nl,isdeg,itdeg,ildeg,nsjump,ntjump,nljump,ni,userw,rw,season,trend,work)
! implicit none
! Arg
integer n,np,ns,nt,nl,isdeg,itdeg,ildeg,nsjump,ntjump,nljump,ni
logical userw
double precision y(n),rw(n),season(n),trend(n),work(20,5)
! Var
integer i,j
do 80 j = 1,1
do 1 i = 1,n
work(i,1) = y(i)-trend(i)
1 continue
call stlss(y,n,np,ns,isdeg,nsjump,userw,rw,season)
PRINT *, 'WORK 1,2 ....',work(1,2)
PRINT *, 'WORK ....',work
call stlfts(work(1,2),n+2*np,np,work(1,3),work(1,1))
PRINT *, 'WORK...',work
打印
根据此输出,PRINT *, 'Work1,2....'
不应返回193.0000
?但我得到0.000000
作为输出。有人可以帮忙吗?我错过了什么?
答案 0 :(得分:1)
Fortran对数组使用列主要排序,因此对于(20,5)的形状,元素(1,2)是数组的第21个元素。令人困惑的是,print *,
将按行打印元素。你圈出的元素是(2,1)。元素(1,2)是位于输出图像第5行第一列的0.000
。