subroutine mindef(f)
implicit real*8(a-h,o-z)
real*8 r(6),com(3)
data r/"en d", "irec","tion","prog","ress","ion "/, &
& nl , ng , np/"l" , "g" , "p"/, "itra1","itra2"/"*" , " "/
我收到以下消息:
fitold.f90:346:39:
& nl , ng , np/"l" , "g" , "p"/, "itra1","itra2"/"*" , " "/
1
Error: Syntax error in DATA statement at (1)
答案 0 :(得分:2)
数据语句采用一对对象列表和值列表,其中一对格式为object-list /value-list/
。要初始化的对象(不包括 data隐含dos 的情况)必须是变量。对于问题的数据陈述,在错误消息标记的周围就违反了这一规定。
让我们看看问题的陈述:
data r / "en d", "irec","tion","prog","ress","ion " / , &
! ^ ^ '----------------------------------------' ^ ^
! | | '- value list | '- pair separator
! | '- separator '- separator
! '- variable name
& nl , ng , np / "l" , "g" , "p" / , "itra1","itra2" /"*" , " "/
! '-----------' ^ '--------------' ^ ^ '--------------'
! '- object | '- value | | '- NOT VARIABLES!
! list | list | '- pair separator
! '- separator '- separator
我们现在看到的是,我们有字符文字,编译器希望在其中看到对象名称。
作为tim18的评论,即使此更正也不会使代码片段成为标准的Fortran。一些编译器接受用于初始化/赋值给实际值(和real*8
)的字符值,但这不是通用的。