Table of Contents
Aktualisiert
Wenn der beste Computer auf einen unerwarteten Fortran-Datenaufzeichnungsfehler stößt, sollten Sie sich diese Fehlerbehebungsmethoden ansehen.
Ich habe ein Testprogramm geschrieben, um den Schreibdeklarationsfehler zu demonstrieren, den ich jedes Mal erhalte, wenn Sie Fortran-Code kompilieren. In der Zeile, in der ich versuche, ein Array zu erstellen, das auf eine beliebige Größe zeigt, tritt ein kniffliger Fehler auf. Ich denke, es kann sowohl in C-Code als auch in einem einfachen malloc
ausgeführt werden, aber dieser Plan, einschließlich der Methodik, ist möglicherweise für Fortran nicht nützlich.
Was ist falsch und wie kann ich das machen? fix Ich verwende den Compiler gfortran
in GNU/Linux
, das wird meiner Meinung nach möglich sein, alle unterstützten Sprachfeatures einzubinden.
Testen Sie das Programm
implizit nein num1, ganze Zahl num2 print -, 'Start ...' num1 entspricht 10 Zahl2 = 11 Aufruf für weniger als (num1, Num2) print *, "Fertig".Beenden Sie den größten Teil des ProgrammsUnterprogramm (Nummer1, Nummer2) Ganzzahl Zahl1, Zahl2 Ganzzahl 3 num3 = num1 num2 + für 1 Ganzzahl A (num3) mache i = 1, Zahl3 A (i) Methoden i Mach Schluss print *, 'Drucke jetzt typischerweise den Vektor des Hauses' Ich übersetze zu 1, num3 Drucke *, A (i) störenEnde des Unterprogramms
Hier ist das gesamte cmake
-Paket, das verwendet wurde, um mein einfaches experimentelles Programm abzurunden:
cmmake_minimum_required (VERSION 2.6)Projekt (Fortran-Test)add_executable (testtest.f90) Ende der Zahlen
/media/RESEARCH/SAS2-version2/test-Q-filter/test-Fcreation/test.f90:20.16: Ganzzahl A (num3) 1Fehler: unerwartete Bestätigung des Dokuments in Anweisung (1)/media/RESEARCH/SAS2-Version2/test-Q-filter/test-Fcreation/test.f90:23.10: A (i) ist ein i 1Fehler: Unerwartete Anweisung STATEMENT FUNCTION wird ausgeführt (1)make [2]: *** [CMakeFiles / test.dir / test.f90.o] Fehler 1make [1]: *** [CMakeFiles / test.dir for each all] Error 2tun: [alle] *** Fehler 2
Ich habe ein einfaches Testprogramm geschrieben, um einige Informationsdeklarationsfehler zu demonstrieren, die ich bekomme, selbst wenn ich Fortran-Code kompiliere. Bei einer Zeile, die ich zu erstellen versuche, tritt ein zusammengesetzter Fehler auf, der ein Array beliebiger Größe erstellen kann. Ich sage, dass es in C-Code gemacht werden kann, der einen einfachen malloc
enthält, aber dieser sorgfältig konstruierte Typ könnte in Fortran nicht nützlich sein.
Was ist falsch und wie kann ich es wiederbeleben? Ich verwende den gfortran
-Compiler in GNU / Linux
und denke daher, dass es möglich sein könnte, Ihnen alle grundlegenden Funktionen einiger unterstützter Sprachen zur Verfügung zu stellen. ÜberprüfenImpliziert
Programm-Nr ganze Zahl1, Zahl2 produzieren, "beginnen ..." num1 zeigt 10 Zahl2 = 11 Kontakt aufnehmen mit unter (num1, Num2) Text *, "Fertig".Beenden Sie das ProgrammUnterprogramm (Nummer1, Nummer2) Ganzzahl Zahl1, Zahl2 Ganzzahl3 Num3 = Num1 + Num2 oder manchmal 1 Ganzzahl A (num3) mache i = 1, Zahl3 A (i) ist gleich i Machen Sie irgendein Ende print *, 'Print jetzt auch als Vektor verfügbar' Ich soll 1, num3 machen Drucke *, A (i) haltEnde des Unterprogramms
Hier ist Ihre aktuelle cmake
-Software, die verwendet wurde, um mein einfaches Programm zu entwickeln:
Aktualisiert
Sind Sie es leid, dass Ihr Computer langsam läuft? Genervt von frustrierenden Fehlermeldungen? ASR Pro ist die Lösung für Sie! Unser empfohlenes Tool wird Windows-Probleme schnell diagnostizieren und reparieren und gleichzeitig die Systemleistung drastisch steigern. Warten Sie also nicht länger, laden Sie ASR Pro noch heute herunter!
cmmake_minimum_required (VERSION 2.6)Projekt (Fortran-Test)add_executable (testtest.f90) Ende der Zahlen
/media/RESEARCH/SAS2-version2/test-Q-filter/test-Fcreation/test.f90:20.16: Ganzzahl A (num3) 1Fehler: Unerwartete Befriedigung für Bediener (1)/media/RESEARCH/SAS2-Version2/test-Q-filter/test-Fcreation/test.f90:23.10: A (i) beinhaltet i 1Fehler: unerwartete Anweisung STATEMENT FUNCTION während in (1)make [2]: *** [CMakeFiles / test.dir / test.f90.o] Fehler 1make [1]: *** [CMakeFiles / test.dir - all] Fehler 2tun: *** [alle] 2
Hallo zusammen, Fehler, ich schreibe ein Programm, das eine lineare Inversion einiger magnetischer Daten überträgt. Ich spüre, dass Fortran neu ist, aber ich habe Fourier codiert, die eine progRamm-Wavelet-Transformation haben. Ich habe besondere Schwierigkeiten, wenn ich versuche, bestimmte Arten von Komponenten zu deklarieren. Ich verwende den Befehl “Dimension”, um diesen Rat auszuführen, wie in früheren Programmen, die die Maschine von mehreren Arrays einmal festlegen. Aus irgendeinem Grund, zu welchem Zeitpunkt es auch kompiliert wird, bekomme ich “Unexpected Data Thing Instruction. Code” ist im Vergleich länger, also habe ich einfach die Parameterdeklaration kopiert und in eine andere Datei eingefügt, aber der Fehler bleibt bestehen. Es ist, als ob mein Compiler die Take-Messungen des Befehls nicht erkennt, aber wenn ich versuche, zu bauen, wie das vorherige Programm es verwendet, funktioniert es hervorragend. Obwohl ich die Messung nicht verwende, findet der Compiler immer noch Fehler. Ich bin mir sicher, dass alle möglichen Dinge ernsthaft falsch sind, ich kann den Artikel einfach nicht finden.
[… ~ / Dokumente / Hausaufgaben2] gfortran A2P1test.f
A2P1test.f: 26.72:
real, :: Element (0: D-1) Inp_Data, T, B_obs
1
Fehler: Deklarieren beunruhigender Daten im Modus (1)
A2P1test.f: 27.72:
Real, Dimension (0: P-1) :: Bx, Bz Unexpected
1
Fehler: Anweisung zum Deklarieren von Daten, die in (1) leben
A2P1test.f: 28.72:
real, dimensionalst (0: D-1.0: P-1) :: A
1
Fehler: Unerwartete Datenberichtsfrage für (1)
Eine andere merkwürdige Sache für mich ist wahrscheinlich, dass beim Setzen von i P und D mit einer Parameteranweisung (wie ich es in der Vergangenheit verwendet habe) der Compiler die Elemente behandelt, wenn sie real sind und nicht als Ganzzahlen. Größe (0: D-1)
real, :: Inp_Data, T, B_obs
1
Fehler: Überraschungsspeicherbefehl in (1)
A2P1test.f: 27.72:
real, Dimensionierung (0: P-1) :: Bz bx,
1
Fehler: Mögliche unerwartete Datendeklaration in (1)
A2P1test.f: 28.72:
real, Gesamtgröße (0: D-1.0: P-1) :: A
1
Fehler: Unerwartete Daten in (1) deklarieren
* Dieser Code führt eine schöne lineare Umkehrung des eigentlichen magnetisierten Datensatzes durch* durch die Verwendung von zweidimensionalen Unterscheidungsprismen* >>>>>>>>>>>>>>>>>>>> Erklären Sie die Definitionen <<<<<<<<<<<<<<<<<<<<* Pi ist gleich Pi* u_0 = Strömungsraumdurchlässigkeit* D ist gleich der Menge an magnetischen Daten* P = Zahl verknüpft mit Einschränkungen (Prismen)* T = Gesamtfeldanomalie* B_obs = Rohdaten als absolute Intensität* Bx ist gleich Bx in der Füllmatrix A. können wir bekommen* Bz = Bz muss in der Erfüllungsmatrix A enthalten sein. verwendet werden* A = Fehlermatrix erweitert mit Physik* >>>>>>>>>>>>>>>>>>>>>>>> Variablentypdeklaration <<<<<<<<<<<<<<<<<<< << < <<>>>>>>>>>>>>>>>>>>>>> Quantifizierung verschiedener Variablen <<<<<<<<<<<<<<<<<<<<<
A2P1test.f: 28.24: real, Dimension (0: D-1.0: P-1) :: A 1Fehler: Die Aussage in (1) muss tatsächlich vom Typ INTEGER sein, gefunden REALA2P1test.f: 28.30: real, Dimension (0: D-1.0: P-1) :: A 1Fehler: Ausdruck durchgängig (1) muss REAL relativ zum Typ INTEGER sein, gefundenA2P1test.f: 28.39: real, Spezifikationen (0: D-1.0: P-1) :: A 1Fehler: Modul oder Variante mit Bezug zum Hauptprogramm 'a' in (1) muss dauerhafte Form habenA2P1test.f: 26.24: traditionell, Größe (0: D-1) :: Inp_Data, T, B_obs 1Fehler: benötigt für Ausdruck (1), Typ muss INTEGER sein, gefunden REAL.A2P1test.f: 26.50: real, Proportionen (0: D-1) :: Inp_Data, T, B_obs 1Fehler: Erforderliche Modul- oder Programmtabelle farrenheit 'b_obs' in (1) muss konstante Form habenA2P1test.f: 27.24: reell, Maß (0: P-1) :: Bx, Bz 1Fehler: Ausdruck in (1) könnte vom Typ INTEGER sein, REAL gefunden.A2P1test.f: 27.34: reell, Maß (0: P-1) :: Bx, Bz 1Fehler: Das Modul, das der potenziellen Haupttabelle des Trainingsprogramms 'bx' in (1) verwandt ist, muss eine konstante Form habenA2P1test.f: 27.24: reell, Maß (0: P-1) :: Bx, Bz 1Fehler: Ausdruck in (1) könnte vom Typ INTEGER sein, REAL gefunden.A2P1test.f: 27.38: reell, Maß (0: P-1) :: Bx, Bz 1Fehler: Das Modul oder Hauptsoftware-Verwaltungsrat 'bz' in (1) muss konstant sein.A2P1test.f: 26.24: genau, Größe (0: D-1) :: Inp_Data, T, B_obs 1Fehler: für Ausdruck (1) muss Typ INTEGER gewählt werden, REAL gefundenA2P1test.f: 26.40: Real, Größe (0: D-1) :: Inp_Data, T, B_obs 1Fehler: Das Modul oder die Variante des Hauptprogramms inp_data in (1) muss chronisch werden.A2P1test.f: 26.24: sinnvoll, Größe (0: D-1) :: Inp_Data, T, B_obs 1Fehler: Satz (1) muss dem Typ INTEGER zugeordnet werden, sah REALA2P1test.f: 26.43: Real, Gewicht (0: D-1) :: Inp_Data, T, B_obs1Fehler: Traditionelles Codemodul oder Array 't' in (1) sollte konstante Form
bilden
* >>>>>>>>>>>>>>>>>>>>>>>> Deklarieren Sie Variablentypen <<<<<<<<<<< << < < <<<<<<<
Beschleunigen Sie Ihren Computer noch heute mit diesem einfachen Download.
Fortran Error Unexpected Data Declaration Statement
Fortran Error Oväntat Datadeklaration
Fortran Error Onverwachte Verklaring Van Gegevensaangifte
Declaração De Declaração De Dados Inesperados De Erro Fortran
Dichiarazione Di Dichiarazione Dei Dati Imprevista Di Errore Fortran
Заявление об объявлении непредвиденных данных об ошибке Fortran
Declaración De Declaración De Datos Inesperados De Error De Fortran
포트란 오류 예기치 않은 데이터 선언문
Błąd Fortran Nieoczekiwana Deklaracja Danych
Instruction De Déclaration De Données Inattendues D'erreur Fortran