2017-09-21 5 views
0

Je travaille actuellement sur la compréhension du processus d'une simulation multi-échelle construite en fortran qui n'a pas été très bien commentée, et couplée à mon manque de connaissances sur le fortran rend cette tâche difficile. J'ai principalement un problème en comprenant une déclaration concernant la commande de lecture fortran. Un squelette de la déclaration est ci-dessous.Fortran Lire en plusieurs variables

read(somestring, *, iostat = iospara) outstring, & 
(someint, somearray(index), index = 1, statenum) 

maintenant someString est lu à partir d'un fichier d'entrée et a la forme de:

'label  1 2' 

où la paire de numéros dépend de statenum qui est lu à partir d'une autre ligne dans le fichier d'entrée. Par exemple, si statenum = 2 alors somestring a la forme:

'label  1 2 2 2' 

Ma question est de savoir comment la parenthèse dans la liste des variables de sortie affectent l'état de lecture? Ce serait le:

(someint, somearray(index), index=1, statenum) 

Je n'ai pas trouvé d'information sur cette documentation de READ. C'est dans fortran 2008. Je ne peux pas vraiment fournir un exemple de travail complet car le code est extrêmement volumineux et mes tentatives pour recréer cette déclaration séparément n'ont pas réussi.

Répondre

0

Ceci est un implicite faire, vous trouverez de nombreuses questions et réponses sur cette fonctionnalité sur ce site. Parfois, les gens l'appellent aussi implicitement, mais ce n'est pas le nom standard.

il répète la partie avant de l'indice: someint, somearray(index), pour les valeurs de l'index i avec des valeurs de 1 à statenum.

Cela se traduit par la liste d'entrée comme:

outstring, someint, somearray(1) 

pour statenum = 1, et

outstring, someint, somearray(1), someint, somearray(2) 

pour statenum = 2.

Notez que someint ne doit pas apparaître deux fois dans la même liste d'entrée ou sa valeur ne sera pas définie.

+0

Merci beaucoup, j'essayais de comprendre comment faire référence à cette déclaration et avait quelques problèmes. J'apprécie ton aide. –

+0

Pourquoi dites-vous que 'someint' deviendrait indéfini? – francescalus

+0

Ou peut-être pas ... Parfois, je me souviens de mauvaises choses. –