fortran 77嵌套do循环(乘法)

时间:2018-09-05 03:25:17

标签: fortran fortran77

我的部分代码如下

           else if (n .le.6) then   
          call DRNUN(6, XX)
             trun(j,1,n)=g1(j,1,n)/(cho(1,1)*1.0d0)
        do 7 l=2,n
         u(j,l-1,n)=DNORIN(XX(l-1)*(1.0d0-DNORDF(trun(j,l-1,n)))
     &       +DNORDF(trun(j,l-1,n)))
             do 17 m=1,l-1
              lemda(m,j,l,n)=cho(l,m)*u(j,m,n)
             print*, u(j,m,n),cho(l,m)!,lemda(m,j,l,n)
  17         continue
                totol(l,n)=sum(test(l,n,1:l-1))
            trun(j,l,n)=(g1(j,l,n)-tot(j,l,n))/cho(l,l)                 
  7         continue

当我运行整个程序时,它不起作用。

我发现关键问题在lemda(m,j,l,n)=cho(l,m)*u(j,m,n)上。可以打印出u(j,m,n)和cho(l,m)的值,但不能打印出lemda(m,j,l,n)的值。

如果我输入lemda(m,l,n)=cho(l,m)*u(j,m,n),则代码有效。但是,如果我不运行整个程序,而只运行此代码块,且其分配的值包含lemda(m,j,l,n)=cho(l,m)*u(j,m,n),则可以打印出所有三个值。我不知道为什么我的程序停止工作。在乘法中增加维数是否有危险?

0 个答案:

没有答案