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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top