我想访问一个名称等于我拥有的字符串的真实变量。像这样的东西(我会让这个例子尽可能干净):
character(len=5) :: some_string
real :: value
value = 100.0
some_string = 'value'
此时,如何在字符数组value
和我的真实变量的名称 value 之间创建关联,以便我可以通过引用字符串来写入 100.0 的值some_string
?
这在 Fortran 中几乎不会发生。该语言中没有像这样的“动态”语言功能。变量名只是编译时的东西,在运行时根本不存在(名称已被编译器转换为机器地址)。
这就是我解决这个问题的方法:
character(100) :: s
integer :: val
val = 100
write(s,*) val
print *,trim(s)
这会将 100 打印到屏幕上。但是有一些我不明白的奇怪之处,字符 s 需要非常大(在他的情况下为 100)。例如,如果您使用 3 而不是 100,则它不起作用。这不是关键的事情,因为使用 trim 解决了这个问题,但如果有人能回答为什么会这样,那就太好了。
无论哪种方式,这应该工作。