【发布时间】:2019-01-03 20:41:55
【问题描述】:
我是一名低级 Fortran 程序员。我试图使子程序尽可能通用,我想知道是否可以发送一个信息,说明另一个子程序应该从主程序中的给定信息访问哪个子程序。例如,如果我有:
program main
use test
implicit none
real(8) X
end program main
还有:
module test
contains
subroutine A (X)
real(8) X
X = 2*X
end subroutine A
subroutine B (X)
real(8) X
X = 3*X
end subroutine B
end module test
我想,给定主程序中的子程序名称“A”或“B”,将其转移到模块测试内的第三个子程序C,然后它会进行一些计算并使用转移的名称在计算中选择A 和B。
我知道如果我在主程序中构建该子例程C 的计算,我可以使用过程指针来访问A 或B 子例程。但是,我需要有子程序C。所以我想我会有一个带有内置过程指针的子程序C,它将把主程序中给出的名称作为参数。但我不知道该怎么做。如果可能的话,也不行。如果不是,还有其他方法吗?我不知道,也许是子程序C 读取一个将读取名称与过程指针相关联的txt 文件。但是,怎么做?
提前谢谢你!
【问题讨论】:
-
如果我理解正确你想要什么,你可以阅读虚拟程序
-
Real(8) 太丑了,在这么简单的例子中甚至不需要它。
-
泛型在什么意义上?我不明白你的目的是什么。你能用代码而不是文字来说明吗?