Module 当使用模块变量作为输入变量时,是否有一种方法可以像对待子程序变量那样指定intent(in)属性?

Module 当使用模块变量作为输入变量时,是否有一种方法可以像对待子程序变量那样指定intent(in)属性?,module,fortran,Module,Fortran,为了提醒我,子例程中使用的模块中的变量是输入而不是输出,我通常会添加注释来说明这一点,这对编译器没有任何帮助。Fortran中没有将模块变量作为常量导入的东西。正如roygvib提到的,您可以在模块内声明一个变量protected,使其对所有其他模块都是只读的。但不能在Fortran中以只读方式导入非保护变量 我建议不要将模块变量(实际上只是更好的全局变量)视为输入或输出。如果某个内容显然是子例程的输入或输出,请将其显式设置为参数,并以明确的方式调用它—将全局变量作为实际参数。可能使用“受保护”

为了提醒我,子例程中使用的模块中的变量是输入而不是输出,我通常会添加注释来说明这一点,这对编译器没有任何帮助。

Fortran中没有将模块变量作为常量导入的东西。正如roygvib提到的,您可以在模块内声明一个变量
protected
,使其对所有其他模块都是只读的。但不能在Fortran中以只读方式导入非保护变量

我建议不要将模块变量(实际上只是更好的全局变量)视为输入或输出。如果某个内容显然是子例程的输入或输出,请将其显式设置为参数,并以明确的方式调用它—将全局变量作为实际参数。

可能使用“受保护”吗?(与本页中的“val”类似)(但与intent(in)相比,从呼叫者侧查看可能没有帮助)