Fortran Coder

标题: 关于模块中的变量 [打印本页]

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

谢谢!


作者: vvt    时间: 2016-3-16 20:26
本帖最后由 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
vvt 发表于 2016-3-16 20:26
1. 可以重名。use module 只使用了 module 的公共变量,而没有使用contains下subroutine或function的局部变 ...

好详细啊,多谢~




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2