Erreur: caractère non valide nom à (1)
Question
Je suis en train de compiler un fichier Fortran ainsi que quelques fichiers .h dans FORTRAN. Les fichiers .h contiennent la définition des blocs communs de variable. Quand je les compiles en Fortran, je reçois l'erreur suivante:
integer knue,ke,knumu,kmu,knutau,ktau,ku,kd,kc,ks,kt,kb,kgamma,
1
Error: Invalid character in name at (1)
Le code où cette erreur se produit est,
Maintenant, ma question est, est-ce point « 1 » où l'erreur est?
Les lignes de code qui prévoit cette erreurs est,
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
Aussi, est-il quelque chose de mal avec la poursuite de manière sont utilisés. J'utilise gfortran pour compiler ce fichier.
La solution
Il semble que vous utilisez continuités de ligne de style Fortran 77 et essayer de compiler avec le style Fortran 90 code de format libre. Vous avez besoin soit de compiler en utilisant l'option de gfortran -ffixed-form
ou formater le code en utilisant la ligne de style Fortran 90 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
Autres conseils
J'ai eu ce problème lors de la modification scipy
et d'essayer de le compiler. Le suivant était nécessaire indentation pour le faire fonctionner, avec l'étoile *
à la colonne 5. Il fonctionne à la fois Fortran 77 et 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
Pour votre première question, oui le « 1 » désigne normalement le point dans le code où l'erreur se produit. Le code en tant que tel semble correct contraire.
En fait, la colonne de continuation Fortran 77 est le numéro six.
http://web.stanford.edu/class/me200c/tutorial_77/ 03_basics.html