簡體   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