Question

I am trying to compile a fortran file along with some .h files in FORTRAN. The .h files contain definition for common blocks of variable. When I compile them in Fortran, I get the following error:

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

The code where this error occurs is,

Now my question is, does this "1" point where the error is?

The lines of code which this errors points is,

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

Also, is there something wrong with the way continuation are used. I am using gfortran to compile this file.

Was it helpful?

Solution

It looks like you are using Fortran 77 style line continuations and trying to compile with Fortran 90 style free format code. You either need to compile using the gfortran -ffixed-form option, or format the code using Fortran 90 style line continuations:

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 

OTHER TIPS

I had this problem when modifying scipy and trying to compile it. The following identation was necessary to make it work, with the star * at column 5. It works for both Fortran 77 and 90 styles.

      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

To your first question, yes the "1" normally denotes the point in the code where the error occurs. The code as such looks ok otherwise.

Actually the Fortran 77 continuation column is number six.

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top