【发布时间】:2015-02-16 10:33:09
【问题描述】:
我正在尝试编写一个子程序以某种方式访问数组。 子例程的一个输入参数是一个字符,其中包含需要访问的数组的名称。这是一个相当简化的代码示例,说明我通常认为它是如何工作的:
PROGAM prog
real, dimension(3,3) :: array1(3,3)
real, dimension(3,3) :: array2(3,3)
real value1
real value2
... fill 'array1' and 'array2'...
call sub(array1,2,2,value1)
call sub(array2,2,2,value2)
... do something with 'value1' and 'value2'...
END
SUBROUTINE sub(name,x,y,out)
character(len=*), intent(in) :: name
integer, intent(in) :: x
integer, intent(in) :: y
real, intent(out) :: out
out = name(x,y)
RETURN
END
我想要的是按照参数中的要求访问array1(2,2) 并将这个值返回给value1 的子例程。然后访问array2(2,2)并将这个值返回给value2。上面的代码 sn-p 不起作用 - 难怪。如何将name(x,y) 分别替换为array1(x,y) array2(x,y)?
非常感谢和最好的问候!
【问题讨论】: