在带有 Intel Fortran 10.1 的 Windows 64 上使用 Visual Studio 9
我有一个调用 Fortran 的 C 函数,传递一个文字字符串“xxxxxx”(非空终止)和隐藏的传递长度 arg 6。
Fortran 正确,因为调试器识别出它是一个 character(6) var 并且具有正确的字符串,但是当我尝试为其分配另一个 Fortran character*6 var 时,我得到了最奇怪的错误。
forrtl: severe (408): fort: (4): Variable Vstring has substring ending point 6 which is greater than the variable length 6
-- C 调用 --
SETPR("abcdef",6);
-- Fortran 子程序 --
subroutine setpr(vstring)
character*(*) vstring
character*6 prd
prd(1:6) = vstring(1:6)
return
end