geisteskrank Anzahl von Fortsetzungslinien in Fortran (ifort)
-
25-09-2019 - |
Frage
anscheinend existiert eine Grenze für die Anzahl der erlaubten Fortsetzungszeilen in Fortran Compiler. Ich habe einen temporären pathologischen Fall (gemacht für schnelle Testzwecke), wo ich verpflichtet bin, eine riesige Palette zu initialisieren, ohne die Dateien zu öffnen oder irgendeinen Trick zu tun, schlägt nur Daten in als Literale. Das Array ist recht groß (360.000 Einträge).
Wie kann ich die Grenze des Compilers auf unbegrenzt eingestellt, oder das, was alternative Strategie kann ich dieses Array Initialisierung hosten?
Lösung
Ich weiß nicht, über alle Einstellungen des Compilers für die unbegrenzte Fortsetzung Linien, aber ich würde diese Alternativen vorschlagen:
- weist den Wert auf einer einzelnen Zeile
- setzen die Werte in einer Datei und lesen Sie es:)
- eine C-Funktion rufen Sie Ihren Fortran-Array zu füllen
Andere Tipps
Sie könnten sie in Chargen zuordnen implizite DO
Loops bis zur Fortsetzung Grenze von Ihrem Compiler auferlegt:
REAL :: xarray(360000)
DATA (xarray(i) i=1,100) /1.0, 2.0, 3.0, 4.0, 5.0, 6.0, &
7.0, 8.0, &
...
98.0, 99.0, 100.0 /
DATA (xarray(i) i=101,200) /101.0, 102.0, 103.0, 104.0, 105.0, 106.0, &
107.0, 108.0, &
...
198.0, 199.0, 200.0 /
Ich habe die von wissenschaftlichem Fortran-Code in einer Menge gesehen.
einige Codes Schreiben Sie Quelldateien mit Daten aus einer Textdatei zu erstellen. Teilen Sie die Zuweisungen für Zeile oder etwas zu helfen, zu vermeiden schaffen eine riesige Aussage das Array auf einen Schlag zu initialisieren. Denken Sie daran, Code, Code generiert kann sehr flexibel sein.