folle numero di righe di continuazione in FORTRAN (ifort)
-
25-09-2019 - |
Domanda
apparentemente, un limite esiste nel numero di righe di continuazione permessi in Fortran. Ho un caso patologico temporaneo (fatta a scopo di test rapidi) in cui sono tenuto per inizializzare una matrice enorme senza aprire i file o fare qualsiasi inganno, proprio schiaffo dati come letterali. La matrice è abbastanza grande (360000 voci).
Come faccio a impostare il limite del compilatore a illimitata, o quale strategia alternativa che può utilizzare per ospitare questa inizializzazione array?
Soluzione
Non so su eventuali impostazioni del compilatore per un numero illimitato di righe di continuazione, ma vorrei suggerire queste alternative:
- assegnare ciascun valore su una sola riga
- mettere i valori in un file e lo lesse:)
- chiamare una funzione C per riempire la matrice FORTRAN
Altri suggerimenti
Si potrebbe assegnarli in batch usando loop DO
implicite, fino al limite prosecuzione imposto dal vostro compilatore:
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 /
Ho visto questo in un sacco di codice Fortran scientifica.
scrivere del codice per creare i file di origine con i dati da un file di testo. Dividere le assegnazioni per riga o qualcosa per aiutare ad evitare di creare una dichiarazione enorme per inizializzare l'array in un colpo solo. Ricordate codice che genera il codice può essere molto flessibile.