错误:(1)处名称中存在无效字符。

4

我正在尝试在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编译此文件。

代码和编译器是否为同一版本(FORTRAN77、FORTRAN90或FORTRAN95)?FORTRAN77是基于列的,而FORTRAN90/95允许更自由的格式。 - Klas Lindbäck
4个回答

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 

2

在修改 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

0

发布链接通常是不鼓励的,因为链接可能会失效,这样答案就失去了价值。最好的建议是在你的答案中引用链接中相关的部分,并将链接用作读者想要更多细节或想要评估来源的参考。 - Matthew Bakaitis

0
对于你的第一个问题,是的,“1”通常表示代码中出现错误的位置。除此之外,代码看起来没什么问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接