Aries 发表于 2016-3-16 19:55:34

关于模块中的变量

大家好,有几个小问题想请教一下:
1,module中contains的subroutine或function里定义的变量在主程序里也不能有重名吗?(主程序use了module)
2,fortran中的include是把另外一个.f90文件的代码完全复制在这个位置是吗?
3,external 一定要用吗?没用好像也可以直接调用外部(写在另外一个.f90文件里)的函数...

谢谢!

vvt 发表于 2016-3-16 20:26:01

本帖最后由 vvt 于 2016-3-16 20:27 编辑

1. 可以重名。use module 只使用了 module 的公共变量,而没有使用contains下subroutine或function的局部变量
2. include 是完全复制粘贴。甚至与 fortran 语法都无关的。你可以参考下面的图片,完全不是fortran语法的文字,也可以利用 include 进行预处理




3. 外部subroutine可以不写 extrnal,外部 function 如果定义了也可以不写 external。实际上,当你把所有函数都封在 module 里,压根不需要 external,反正我很多年不写这个关键字了。

希望对你有用~

Aries 发表于 2016-3-17 18:37:45

vvt 发表于 2016-3-16 20:26
1. 可以重名。use module 只使用了 module 的公共变量,而没有使用contains下subroutine或function的局部变 ...

好详细啊,多谢~
页: [1]
查看完整版本: 关于模块中的变量