参见下面的示例
program test
character(10),dimension(5):: models = (/"feddes.swp", "jarvis89.swp", "jarvis10.swp" , "pem.swp", "van.swp"/)
end
返回以下错误:
数组构造函数中的不同CHARACTER长度(10/12)(1)
ifort编译器没有错误。为什么gfortran会发生这种情况?有没有办法解决这个问题?
答案 0 :(得分:10)
构造函数中有一些长度为12,因此使用长度12可能更好。
另外,请改用
character(len=12), dimension(5) :: models = [character(len=12) :: "feddes.swp", &
"jarvis89.swp", "jarvis10.swp", "pem.swp", "van.swp"]
如果你有编译器支持,可能会更好
character(len=*), dimension(*) :: ...
答案 1 :(得分:0)
原始代码被ifort接受,但它不是标准的fortran,因此来自gfortran的错误。如果为ifort提供选项-std
,当编译器允许这样的扩展时,它将打印警告。