【发布时间】:2017-02-06 02:38:41
【问题描述】:
我试图了解如何将一些带值的变量从另一个子例程传递给一个子例程。
我有代码:
program pg
call sub()
end
subroutine sub()
character :: P(12,12)
character :: D(20), N(26), userInput
integer :: A,B
A = 5
B = 2
userInput = "hello"
call test(P,D,N,userInput,A,B)
end subroutine
subroutine test(P,D,N,userInput,A,B)
end subroutine test
但这给了我一个警告:
Warning: Type mismatch in argument 'p' at (1); passed CHARACTER(1) to REAL(4)
我不确定如何消除此警告,更不用说子例程调用是否正确(语法方面)。任何帮助将不胜感激。
【问题讨论】:
-
您应该完成子程序
test。就目前而言,您尚未在此处声明参数的类型,因此使用了默认类型规则。看起来您的编译器正在检查接口并发现它们不匹配。 -
我对 fortran 很陌生,我将如何在那里声明参数的类型?我真的不知道该怎么做。
-
这可能有点过于宽泛,无法在这里回答,但documentation 可能会有所帮助。
标签: fortran fortran90 subroutine