Фортран 77 вложенный цикл до (умножение) - PullRequest
0 голосов
/ 05 сентября 2018

Часть моего кода выглядит следующим образом

           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) могут быть распечатаны, но не лемда (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), все три значения могут быть распечатаны. Я не мог понять, почему моя программа перестала работать. Опасно ли увеличивать размерность при умножении?

...