2013-12-11 18 views
1

在F90编码的程序中,我有一组11个向量,每个大小为(7),名称从“S1”到“S11”。 我需要能够从一个向量中读取多个元素,并给出后者的名称。 虽然这个问题似乎是一个初级的,我的初学者水平,我无法找到一种方法来编码它...Fortran通过指定其名称来选择一个向量

任何帮助吗?

回答

4

当Fortran程序执行时,它并没有真正的信息来根据包含变量名称的字符串的值来标识变量。你可以写的if语句序列,如

if (mystr=='S1') x = s1 
if (mystr=='S2') x = s2 
... 

你可以漂亮这件事有点用select case建设

select case (mystr) 
case ('S1') 
    x = s1 
case ('S2') 
    x = s2 
... 

但是,可能无法吸引更多。

迄今为止更好的办法是宣布你的向量作为秩2数组的元素:

real, dimension(11,7) :: s 

,然后你可以做各种计算的,在运行时,选择矢量你想要

myrow = an_expression_returning_an_integer_between_1_and_11_inclusive 
x = s(myrow,:) 
相关问题