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