3

我正在尝试在 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

4 回答 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 
于 2011-10-19T14:41:34.587 回答
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
于 2013-07-02T16:43:34.850 回答
0

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

于 2011-10-19T14:37:52.127 回答
0

实际上,Fortran 77 续列是第六列。

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

于 2014-07-24T15:21:19.467 回答