繁体   English   中英

如何将字符数组传递给 Fortran 中的子程序? [等候接听]

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM