Ошибка: неверный символ в имени в (1) - PullRequest
2 голосов
/ 19 октября 2011

Я пытаюсь скомпилировать файл на Фортране вместе с некоторыми файлами .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 для компиляции этого файла.

Ответы [ 4 ]

5 голосов
/ 19 октября 2011

Похоже, вы используете линейные продолжения в стиле 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 голос
/ 02 июля 2013

У меня была эта проблема при изменении 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 голосов
/ 24 июля 2014

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

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

0 голосов
/ 19 октября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...