2016-03-27 10 views
1

Wenn ich meinen Code zu kompilieren mitCompile Fehler: `fatale Fehler: gfc_todo:`

 gfortran -O2 calpuff.for -o calpuff.exe 

Der folgenden Code:

 REAL FUNCTION R1MACH (I) 
C***BEGIN PROLOGUE R1MACH 
C ... 
     real SMALL(2) 
     real LARGE(2) 
     real RIGHT(2) 
     real DIVER(2) 
     real LOG10(2) 
c --- Set up for IBM PC: declare as reals ..........(DGS) 
C 
     REAL RMACH(5) 
     SAVE RMACH 
C 
     EQUIVALENCE (RMACH(1),SMALL(1)) 
     EQUIVALENCE (RMACH(2),LARGE(1)) 
     EQUIVALENCE (RMACH(3),RIGHT(1)) 
     EQUIVALENCE (RMACH(4),DIVER(1)) 
     EQUIVALENCE (RMACH(5),LOG10(1)) 
C ... 
     DATA SMALL(1)/1.18E-38 /
     DATA LARGE(1)/3.40E+38 /
     DATA RIGHT(1)/0.595E-07 /
     DATA DIVER(1)/1.19E-07 /
     DATA LOG10(1)/0.30102999566/
C ... 
C***FIRST EXECUTABLE STATEMENT R1MACH 
     IF (I .LT. 1 .OR. I .GT. 5) CALL XERMSG ('SLATEC', 'R1MACH', 
    + 'I OUT OF BOUNDS', 1, 2) 
C 
     R1MACH = RMACH(I) 
     RETURN 
C 
     END 

Ergebnis zeigt in dem folgenden Fehler:

calpuff.for: In function ‘r1mach’: 
    calpuff.for:58522: fatal error: gfc_todo: Not Implemented: Initialization of overlapping variables 
    compilation terminated. 

Zeile 58522 entspricht der ersten Zeile des angezeigten Codes.

Warum tritt dieser Fehler auf?

Einige Informationen über meine Compiler: gcc Version 4.1.2 20.080.704 (Red Hat 4.1.2-54)

+4

Bitte Code einbetten, Links sterben und reduzieren Nützlichkeit der Frage für zukünftige Benutzer, und es ist nicht zugänglich. – Tim

+0

Entschuldigung für meine unprofessionelle. Ich werde meinen Fehler korrigieren. –

+0

Hey, mach dir keine Sorgen, ich bin nur ein Rezensent :) – Tim

Antwort

3

Dies ist ein bekannter Compiler Fehler in gfortranhere und here sehen. Dieser Fehler wurde 2007 behoben.

Bitte aktualisieren Sie auf eine neuere Version von gfortran.

+0

Danke für Ihre Antwort. Also meinst du mit der Aktualisierung meines gfortran-Compilers, das Problem könnte gelöst werden? Ich werde es versuchen. –

+0

Ja, das sollte es lösen. Version 4.1.2 ist ** wirklich ** alt. Auf meiner Maschine (gfortran 5.3) kompiliert der Code gut. –

+0

OK! Ich arbeite dran! Eine andere Frage. Ich habe das WRF (Weather Research Forcast) -Modell im Cluster installiert (ich habe gcc 4.2.1 dafür installiert). Wenn ich den gcc aktualisiere, gibt es ein inkompatibles Problem? –