[英]How do I pass a character array to a subroutine in Fortran? [on hold]
我想将一个一维字符数组从我的主程序传递给一个大小为 static 的子程序。 我还传递了字符长度和数组的维度。 当我尝试使用传递的维度在子例程中创建数组时,我只得到该数组的第一行。 如果我自己填写尺寸,一切正常。 谁能告诉我问题是什么? 非常感谢。
例如
PROGRAM main
IMPLICIT NONE
INTEGER :: length
INTEGER :: size
CHARACTER(LEN = 100), DIMENSION(20) :: array
length = 100
size = 20
CALL somefunction(array,length,size)
STOP
END
SUBROUTINE somefunction(ARRAY,LENGTH,SIZE)
IMPLICIT NONE
INTEGER :: LENGTH
INTEGER :: SIZE
CHARACTER(LEN = LENGTH), DIMENSION(SIZE) :: ARRAY
RETURN
END
谢谢@Vladimir F 给出提示,我如何检查数组的大小。 我将 arrays 添加到 Visual Studios 2015 的监视列表中并检查了那里的尺寸。 在主程序中,监视列表中的维度与实际维度相匹配,但在子程序中不匹配。 所以程序正确地传递了数组,但是您在 Visual Studio 2015 的监视列表中看不到它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.