Fortran:如何在模块中分配值

时间:2016-08-29 15:13:18

标签: list fortran

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

他通过写作

来做到这一点
DataEntry

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

所以起初我试过这个:

<html>
<body>

 <a href="Mytransfers.aspx#__tab_Main_ctl00_TabCodntainer1_TabPanel4"  data-toggle="TabPanel4"><u><b>how to transfer funds ?</b></u></a>


</body>
</html>`

但是我得到了

  

&#34;错误#6274:此声明不得出现在规范部分中   一个模块&#34;

我做错了什么?

2 个答案:

答案 0 :(得分:2)

你需要一个隐含的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

答案 1 :(得分:1)

错误很明确。您无法在模块中执行计算。模块设计用于承载变量声明和子例程接口。您有两种选择:

  • 只需在模块中声明数组的类型和维度,然后使用您建议的循环在主程序中初始化它(使用模块)。

  • 或者正如@francescalus所指出的,您可以在模块中声明期间直接使用数组构造函数。这样的事情:[(i, i=500, 3500)]