错误:名称中的字符无效(1)

时间:2011-10-19 14:21:05

标签: gcc fortran fortran90 gfortran mixed

我正在尝试在FORTRAN中编译fortran文件和一些.h文件。 .h文件包含常见变量块的定义。当我在Fortran中编译它们时,我收到以下错误:

integer knue,ke,knumu,kmu,knutau,ktau,ku,kd,kc,ks,kt,kb,kgamma,
                                      1
Error: Invalid character in name at (1)

发生此错误的代码是

现在我的问题是,这个“1”点是错误的吗?

此错误指向的代码行是

integer knue,ke,knumu,kmu,knutau,ktau,ku,kd,kc,ks,kt,kb,kgamma, 
     &     kw,kz,kgluon,kh1,kh2,kh3,khc,ksnue,kse1,kse2,ksnumu,ksmu1,
     &     ksmu2,ksnutau,kstau1,kstau2,ksu1,ksu2,ksd1,ksd2,ksc1,ksc2,
     &     kss1,kss2,kst1,kst2,ksb1,ksb2,kn1,kn2,kn3,kn4,kcha1,kcha2,
     &     kgluin,kgold0,kgoldc

此外,使用延续的方式是否有问题。我正在使用gfortran来编译这个文件。

4 个答案:

答案 0 :(得分:5)

看起来您正在使用Fortran 77样式行延续并尝试使用Fortran 90样式的自由格式代码进行编译。您需要使用gfortran -ffixed-form选项进行编译,或使用Fortran 90样式行连续格式化代码:

integer knue,ke,knumu,kmu,knutau,ktau,ku,kd,kc,ks,kt,kb,kgamma, &
          kw,kz,kgluon,kh1,kh2,kh3,khc,ksnue,kse1,kse2,ksnumu,ksmu1, &
          ksmu2,ksnutau,kstau1,kstau2,ksu1,ksu2,ksd1,ksd2,ksc1,ksc2, &
          kss1,kss2,kst1,kst2,ksb1,ksb2,kn1,kn2,kn3,kn4,kcha1,kcha2, &
          kgluin,kgold0,kgoldc 

答案 1 :(得分:1)

修改scipy并尝试编译时遇到此问题。以下标识对于使其工作是必要的,星号*位于第5列。它适用于Fortran 77和90样式。

      double precision a,abseps,abserr,alist,area,area1,area12,area2,
     * a1,a2,b,blist,b1,b2,correc,dabs,defabs,defab1,defab2,d1mach,
     * dmax1,dres,elist,epmach,epsabs,epsrel,erlarg,erlast,errbnd,
     * errmax,error1,error2,erro12,errsum,ertest,f,oflow,resabs,
     * reseps,result,res3la,rlist,rlist2,small,uflow,areav

答案 2 :(得分:0)

对于您的第一个问题,是“1”通常表示代码中发生错误的点。这样的代码看起来不错。

答案 3 :(得分:0)

实际上Fortran 77延续专栏是第六名。

http://web.stanford.edu/class/me200c/tutorial_77/03_basics.html