Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 在Fortran中将字符串解释为变量名_String_Fortran_Gfortran - Fatal编程技术网

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

String 在Fortran中将字符串解释为变量名,string,fortran,gfortran,String,Fortran,Gfortran,我想访问一个实数变量,其名称等于我拥有的字符串。类似这样的内容(我将尽可能清楚地说明示例): 在这一点上,我如何在字符数组value和实际变量value的名称之间创建关联,以便通过引用字符串some_string?写入100.0的值,这在Fortran中几乎不会发生。该语言中没有类似这样的“动态”语言功能。变量名是编译时唯一的东西,在运行时根本不存在(名称已被编译器转换为计算机地址)。我就是这样解决这个问题的: character(100) :: s integer :: val

我想访问一个实数变量,其名称等于我拥有的字符串。类似这样的内容(我将尽可能清楚地说明示例):


在这一点上,我如何在字符数组
value
和实际变量value的名称之间创建关联,以便通过引用字符串
some_string

写入100.0的值,这在Fortran中几乎不会发生。该语言中没有类似这样的“动态”语言功能。变量名是编译时唯一的东西,在运行时根本不存在(名称已被编译器转换为计算机地址)。

我就是这样解决这个问题的:

character(100) :: s
integer        :: val  
val = 100   
write(s,*) val   
print *,trim(s)
这会在屏幕上打印100。有一些奇怪的地方我不明白,但是,角色s需要非常大(在这个例子中为100)。例如,如果使用3而不是100,则它不起作用。这不是一件很关键的事情,因为使用trim可以解决这一问题,但是如果有人能够回答为什么会出现这种情况,那就太好了


不管怎样,这都应该有效。

Ugh。谢谢你的快速回复。我很害怕。为什么不能一切都像perl一样…有什么继续的建议吗?常用的变通方法?我建议您仔细研究一下为什么您认为需要这样做,然后重新编写代码,这样您就不需要这样做了。总有办法的。我结束了这个稍微老一点的问题,因为这个问题很长时间没有正确标记,而另一个问题得到了更多的关注和更好的答案。不过,这一个有一个更好的标题。有反对意见吗?
character(100) :: s
integer        :: val  
val = 100   
write(s,*) val   
print *,trim(s)