list - Fortran:如何在模块中赋值

标签 list fortran

我正在努力处理从别人那里得到的代码。他使用模块来提供主例程所需的数组。我需要的是一个包含 500 到 3500 之间数字的数组。

他通过写作做到了这一点

INTEGER :: i
REAL :: myArray(3001)

DATA (myArray(i),i=1,100)/&
500., 501., 502., 503., [...] 599./

DATA (myArray(i),i=101,200)/&
600., 601., [...], 699./

[...]

DATA (myArray(i),i=2901,3001)/&
[...] 3498., 3499., 3500./

现在对我来说这看起来非常复杂!另外,我需要 myArray 包含整数,但我当然不想删除所有这些点。

所以一开始我尝试了这个:

Do i=1,3001
    myArray(i) = i+499
End Do

但我明白了

"error #6274: This statement must not appear in the specification part of a module"

我做错了什么?

最佳答案

您需要一个隐含的 do 循环。编译并运行良好

MODULE module1

    INTEGER :: i
    REAL :: myArray(3001) = (/ (i, i=500, 3500) /)

END MODULE

格式为

(/ (exp1, var=start, end) /)

(/ (exp1, var=start, end, step) /)

(/ (exp1, expr2, .., var=start, end, step) /)

<子>参见https://web.stanford.edu/class/me200c/tutorial_90/07_arrays.html

关于list - Fortran:如何在模块中赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39209620/

相关文章:

compiler-errors - 编译使用在同一 fortran 文件中定义的模块的子例程时出错

c++ - C++ 语言中的 FORTRAN EQUIVALENCE

Fortran 数组无法在函数 : not a DUMMY variable 中返回

python - 在python中获取最高有效数字

python - 对 python 列表的所有元素应用模数并获得一些正确的一些不正确的元素

python - 如何从 Python 列表中删除方括号?

Java List 获取最后一个重复对象

java - 如何在我的方法参数中传递 List?

fortran - OpenMP 和 MPI 解释

arrays - Fortran 2008 - 类中的数组变量