Fortran二维数组问题

时间:2014-07-28 16:17:53

标签: fortran fortran90 gfortran subroutine

我试图从二维数组中获取值,但我在索引处获得的值不是我得到的。这是程序:

 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打印enter image description here

根据此输出,PRINT *, 'Work1,2....'不应返回193.0000?但我得到0.000000作为输出。有人可以帮忙吗?我错过了什么?

1 个答案:

答案 0 :(得分:1)

Fortran对数组使用列主要排序,因此对于(20,5)的形状,元素(1,2)是数组的第21个元素。令人困惑的是,print *,将按行打印元素。你圈出的元素是(2,1)。元素(1,2)是位于输出图像第5行第一列的0.000