小编Tha*_*les的帖子

Fortran 暗示做不起作用

我正在使用 Fortran90,但我对它不太熟悉。

在代码的某些地方,我想在 t0 和 tf 之间创建一个由 n 个线性等距点组成的数组,所以我尝试了这个:

t = t0+(/(i,i=0,n-1)/)*(tf-t0)/(n-1)
Run Code Online (Sandbox Code Playgroud)

这与以下内容相同:

do while(i<=n)
    t(i) = i-1
    i=i+1
end do

t = t*(tf-t0)/(n-1)+t0
Run Code Online (Sandbox Code Playgroud)

但是,如果 n 太大(n=2000001 或更大),则第一个选项不起作用。我收到错误:

forrtl: 严重 (170): 程序异常 - 堆栈溢出

这是为什么?我该怎么做才能使隐含的 do 循环适用于 n 大?

fortran

5
推荐指数
1
解决办法
204
查看次数

标签 统计

fortran ×1