为什么这个 Fortran 函数在打印两个 Hello World 之间需要永远

问题描述

以下 Fortran 函数在打印 Hello World 2 后需要永远打印 Hello World 1

program Test_Long_Run

    implicit none

    ! Variables

    integer,allocatable,dimension(:) :: test
    integer :: i,j,k,l,m,int
    
    allocate(test(1000*100)); test = 0
    ! Body of Test_Long_Run
    print *,'Hello World 1'
    do k = 1,100
        do j = 1,100
            do i = 1,100
                do m = 1,100
                    do l = 1,1000
                        test(l*m) = 2
                        int = 2
                    enddo
                enddo
            enddo
        enddo
    enddo
    
    print *,'Hello World 2'

end program Test_Long_Run

如果我注释掉test(l*m) = 2

,它运行得非常快

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)