nombre fou de lignes de continuation en Fortran (de ifort)
-
25-09-2019 - |
Question
apparemment, il existe une limite dans le nombre de lignes de continuation autorisées dans Fortran. J'ai un cas pathologique temporaire (fait à des fins de tests rapides) où je suis nécessaire d'initialiser un tableau énorme sans ouvrir les fichiers ou faire une supercherie, juste gifler données comme littéraux. Le tableau est assez grand (360000 entrées).
Comment puis-je régler la limite du compilateur à un nombre illimité, ou quelle stratégie alternative puis-je utiliser pour héberger cette initialisation de tableau?
La solution
Je ne sais pas les paramètres du compilateur pour les lignes de continuation illimitées, mais je suggère ces alternatives:
- attribuer chaque valeur sur une seule ligne
- mettre les valeurs dans un fichier et le lire:)
- appeler une fonction C pour remplir votre tableau Fortran
Autres conseils
Vous pouvez les assigner en lots en utilisant des boucles de DO
implicites, jusqu'à la limite de continuation imposée par votre compilateur:
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 /
Je l'ai vu dans beaucoup de code Fortran scientifique.
Ecrire un code pour créer vos fichiers source avec des données à partir d'un fichier texte. Diviser les affectations par ligne ou quelque chose pour éviter de créer une déclaration énorme pour initialiser le tableau d'un seul coup. Rappelez-vous du code qui génère du code peut être assez flexible.