Errore: Carattere non valido nel nome a (1)
Domanda
Sto cercando di compilare un file FORTRAN insieme ad alcuni file .h in FORTRAN. I file .h contengono definizione per i blocchi comuni di variabile. Quando li compilo in Fortran, ottengo il seguente errore:
integer knue,ke,knumu,kmu,knutau,ktau,ku,kd,kc,ks,kt,kb,kgamma,
1
Error: Invalid character in name at (1)
Il codice in cui si verifica questo errore è,
Ora la mia domanda è, questo punto "1" in cui l'errore è?
Le righe di codice che questa errori punti tra
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
Inoltre, c'è qualcosa di sbagliato nel modo in continuazione vengono utilizzati. Sto usando gfortran per compilare questo file.
Soluzione
Sembra che si sta utilizzando Fortran 77 continuazioni di riga stile e cercando di compilare con Fortran codice formato libero 90 stile. Si sia bisogno di compilare utilizzando l'opzione -ffixed-form
gfortran, o formattare il codice utilizzando Fortran continuazioni di riga 90 stile:
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
Altri suggerimenti
Ho avuto questo problema quando si modificano scipy
e cercando di compilarlo. Il seguente identation è reso necessario per farlo funzionare, con il *
stella alla colonna 5. Funziona sia per Fortran 77 e 90 stili.
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
Per la prima domanda, sì, il "1" normalmente indica il punto del codice in cui si verifica l'errore. Il codice in quanto tale sembra ok altrimenti.
In realtà la colonna prosecuzione Fortran 77 è il numero di sei.
http://web.stanford.edu/class/me200c/tutorial_77/ 03_basics.html