Вопрос

Я пытаюсь собрать файл Fortran вместе с некоторыми файлами .h в Fortran. Файлы .h содержат определение для общих блоков переменной. Когда я составляю их в Фортране, я получаю следующую ошибку:

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 для составления этого файла.

Это было полезно?

Решение

Похоже, вы используете продолжения линии стиля Fortran 77 и пытаетесь компилировать с кодом формата Fortran 90 Free Format. Вам либо нужно скомпилировать с помощью 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 

Другие советы

У меня была эта проблема при изменении 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

На ваш первый вопрос, да, «1» обычно обозначает точку в коде, где возникает ошибка. Код как такого выглядит нормально в противном случае.

На самом деле столбец продолжения Fortran 77 - это номер шесть.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top