回 帖 发 新 帖 刷新版面

主题:[讨论]fortran module问题请教,谢谢!!!

module中可以对变量赋值吗,可以的话怎样赋值,下边一段代码编译出错
module global
integer:: r
r=100
end module

Error: This statement must not appear in the specification part of a module [r]

还有:下边的定义数组的形式可以吗?

subroutine eample(r,y)
integer,intent(in):: r
real,intent(out):: y(r)
....
end subroutine

其中r是传入的参数,我照上述编是通不过的
Error: A specification expression object must be a dummy argument, a COMMON block object, or an object accessible through host or use association   [R]
或者是:Error: prPromoteSym : Illegal KIND & CLASS mix   [R1]
这该如何解决?必须用变大小的数组定义吗?就是必须用allocate吗?

还有请高手看看上面几个具体的错误是什么原因,那几个错误指的是什么意思,请指导!
谢谢,不甚感激[em18][color=000000][/color][size=3][/size]

回复列表 (共3个回复)

沙发

第一个问题, integer:: r=100
第二个问题, ivf11编译通过

板凳

Any executable statements in a module can only be specified in a module subprogram.

3 楼


在 module中是不可以有可执行语句的。
如:r=100 是不行的。
但可以使用data语句赋初值。
如: data i /100/
是可以的。

我来回复

您尚未登录,请登录后再回复。点此登录或注册