Fortran 77中"Invalid character in name"错误求助
解释Fortran 77编译错误:Invalid character in name
这个错误的根源是你使用调试标记D的方式不符合Fortran 77固定格式的语法规则,我来给你拆解清楚:
在支持-xl[d]选项的Fortran编译器(比如IBM的xlf)中,D作为调试标记的正确用法是放在固定格式源文件的第6列——这是Fortran 77里约定的特殊位置,用来标记“仅在调试模式下编译的代码行”。
但你的代码里直接把D写在了TYPE语句的前面(和语句连在一起),编译器会把D和TYPE当成一个整体的标识符去解析。而Fortran 77的标识符只能以字母开头,后续跟字母、数字或下划线,DTYPE既不是合法的关键字,也不符合命名规则,所以编译器会抛出Invalid character in name的错误。
修正方法
针对固定格式的.f文件,你只需要调整D的位置,把它放在代码行的第6列,然后从第7列开始写你的输出语句:
BZANGL=BZRANG(IM) D TYPE *, 'BZANGL=',BZANGL ! 第6列是D,前面留5个空格 BANGLE=BZANGL/RDN
这样编译器就能识别出这是一行调试代码,开启-xl[d]选项时就会编译执行这条输出语句,正常编译时会忽略它。
内容的提问来源于stack exchange,提问作者 CG1
相关产品推荐
相关产品推荐

