我可以在fortran模块中声明意图变量吗?

我可以在fortran模块中声明意图变量吗?

问题描述:

我可以在fortran模块中声明变量吗? 我要让通用模块可调用的其他子程序我可以在fortran模块中声明意图变量吗?

module fmod 
real b 
integer n, i 
integer, dimension(6), intent(inout) :: indata1 
real, dimension(7,8), intent(inout) :: indata2 
end module fmod 

subroutine temp_f(indata1, indata2) 
use fmod 

do i=1,8 
    print *, indata4(i) 
end do 

end 

没有,目的是用于子程序的参数,而不模块变量。模块变量通常可用于“使用”它们的任何实体。你可以声明它们是“私人的”,这将阻止它们在模块外的可视性。也许你正在考虑将模块作为包含文件,它将源代码行复制到复制的位置。这不是模块的概念......它是一个独立的源代码实体。

虽然它超出了语言标准,但很多Fortran编译器都支持通过从第一列开始的“#include”使用包含文件。有些编译器使用文件类型“F90”(大写)。与其他人一起,你必须使用编译器选项来运行C风格预处理器。这种用法会使您的代码移植性降低。

+0

那我可以这样吗? http://codepad.org/wmbePIPb – wonjun 2012-02-21 05:52:04

+0

是的,你可以。这种形式的include是标准的Fortran 90语句,而不是预处理宏。 – 2012-02-21 08:41:08