在Fortran中将字符串解释为变量名称

时间:2012-02-13 21:37:17

标签: string fortran gfortran

我想访问一个名称等于我拥有的字符串的实变量。像这样的东西(我会尽可能地让这个例子干净):

character(len=5) :: some_string
real :: value
value = 100.0
some_string = 'value'

此时,如何在字符数组value和我的实变量name的名称之间创建关联,以便我可以通过引用字符串{{1}来写入值100.0 }?

2 个答案:

答案 0 :(得分:1)

在Fortran中几乎不会发生这种情况。此语言中没有此类“动态”语言功能。变量名是仅编译时的东西,并且在运行时根本不存在(编译器已将名称转换为机器地址)。

答案 1 :(得分:1)

这是我解决这个问题的方法:

character(100) :: s
integer        :: val  
val = 100   
write(s,*) val   
print *,trim(s)

这将100打印到屏幕上。然而,有些奇怪的东西我不明白,角色需要非常大(在他的情况下为100)。例如,如果您使用3而不是100,则它不起作用。这不是一件至关重要的事情,因为使用修剪可以解决这个问题,但如果有人能够回答为什么会这样,那就太好了。

无论哪种方式,这都应该有用。