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