9
votes

Parseur de fichier de configuration en Fortran

J'aimerais pouvoir utiliser un fichier de configuration simple pour passer des paramètres à mon programme. Ce fichier de configuration serait constitué d'une liste d'arguments avec des valeurs pouvant être de types différents (entier, réel, logique, liste des mots, etc.).

Voici un exemple de configuration que j'aimerais pouvoir analyser de manière simple: p>

! This is a first comment
param1 = 1234;
param2 = TRUE;                    ! This is a second comment

param3 = abc def ghi jkl mno   
             pqr stu vwx yz;

! Another type of instruction, 
! i.e. to specify that var1-var3 depend on var4-var10:
var1 var2 var3 ~ var4 var5 var6
                 var7 var8 var9 var10;


2 commentaires

Vous pouvez utiliser des commentaires dans les namelistes (ce n'est peut-être pas standard mais je sais que Intel Fortran le permet). Je ne connais pas de bibliothèques de Fortrans pour lire ce que vous voyez ici, mais avez-vous envisagé d'utiliser un analyseur C ou C ++ disponible et enveloppez-vous votre code FORTRAN autour de cela?


Extension du commentaire de @ Brady. Si vous décidez que vous aimez l'une des bibliothèques C, vous pouvez l'appeler à l'aide de la liaison FORTRAN ISO C. Ceci est facile pour les types numériques et utilisable pour les chaînes.


6 Réponses :


-1
votes

Peut-être quelque chose comme ça? http://gbenthien.net/strings/ d'abord frappé dans Google pour analyseur de caractères Fortran.


0 commentaires

3
votes

Nous avons une bibliothèque appelée Aotus, qui permet l'utilisation des scripts Lua en tant que fichiers de configuration dans les applications Fortran: Aotus Pourrait être que cela vous est utile pour vous.


0 commentaires

1
votes

Une autre option est Ttutil utilisé dans le modèle hydrologique d'échange d'Alterra. J'ai mis en place un Reliures rugueuses R autour de lui.

Bien que je ne sais pas comment traiter la dernière partie de votre exemple en utilisant cette bibliothèque soit: (


0 commentaires

1
votes

Je recommanderais clair et facile C Config-parser libconfig << / fort>

Vous pouvez facilement relier le module libconfig-alimenté (écrit sur C) avec votre code FORTRAN à l'aide de GCC ou de Compilateur Intel.


0 commentaires

5
votes

Je recommanderais toujours d'utiliser un format standard pour vos fichiers de configuration. Cela peut payer des dividendes plus tard si vous souhaitez dire, script votre programme ou générer ou lire vos fichiers de configuration dans une autre langue de programmation. Il existe maintenant (en 2015) plusieurs bons analyseurs de fichiers de configuration standard disponibles pour Fortran, il n'est donc pas nécessaire d'utiliser d'autres langues. Voir, par exemple:

  • json - JSON-FORTRAN
  • ini - FINER

    Notez que celles-ci sont à la fois pour Modern Fortran et nécessitent l'un des nouveaux compilateurs (disons, gfortran 4.9 ou ultérieure).


0 commentaires

1
votes

Il y a quelques années, lorsque j'ai commencé à utiliser Fortran, j'ai également été surpris qu'il n'y ait pas d'analyseurs de fichiers de configuration. C'est pourquoi j'ai décidé d'écrire mon propre analyseur: fortran_config . La syntaxe a été intentionnellement maintenue très simple:

nom_of_variable = value1 [valeur2 Value3 ...] # Commentaire facultatif

où les variables peuvent être des entiers, des réelles, des cordes ou des logiques.


0 commentaires