2010-09-10 12 views
0

J'ai une grande quantité de tableaux de différentes dimensions. Cependant, je les nomme avec un ordre séquentiel, disons var1, var2, et ainsi de suite. Pour les lire, je serais intéressé par une boucle sur eux quelque chose comme:Looping noms de variables dans fortran 90

do i=1,n 
    read(1,*) var<i> 
enddo 

Bien sûr, étant donné que les tableaux sont de dimensions différentes, je ne peux pas simplement ajouter une dimension et les réduire en une seule. J'ai l'impression que Fortran ne permet pas de convertir des chaînes en noms de variables ou quelque chose de similaire, alors quelqu'un sait-il comment faire face à cela?

Merci!

Répondre

1

Ce que vous demandez serait essentiellement metaprogramming dans un langage compilé traditionnel (très). Tu ne peux pas vraiment faire ça. Le plus proche que je peux penser pour Fortran serait d'obtenir un compilateur qui prend en charge certaines des choses OO en Fortran 2003, et d'utiliser son polymorphisme d'exécution. De cette façon, vous pouvez créer une classe de tableau parent, puis une sous-classe pour chaque ensemble différent de limites de tableau, puis passer en boucle dans un tableau de ceux-ci.