我偶然发现了一个在父模块中运行父程序的方法。我的意思是,这个技巧允许我以上游的方式运行一个进程,与模块的依赖树相关。具体来说,这是一个例子:
module parent
procedure(likefoo),pointer :: to_foo
interface
subroutine likefoo
end subroutine likefoo
end interface
contains
subroutine run
call to_foo
end subroutine
end module
module child
use parent
contains
subroutine foo
print *, 'hola'
end subroutine foo
end module
program main
use parent
use child
to_foo => foo
call run
end program
使用ifort 13.0.0对此示例进行了正面测试。 我想知道,这个代码是标准允许的还是运行正常,因为它是一个编译器依赖功能? 谢谢你的帮助。
答案 0 :(得分:1)
这种方法很好(使用F2003功能),但是为likefoo做了抽象的接口。对模块依赖的有向图的要求是对这些模块中的过程的调用嵌套的正交概念。