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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top