MODIFICATION DE LA STRUCTURE POUR LE CALCUL DES QUANTITÉS STATIQUES
(EFFECTUÉE PAR STEVE ALLEN)

Table des matières

1- Pourquoi modifier la structure?
2- Changements apportés au programme
3- Automatisation du calcul au second ordre


1- Pourquoi modifier la structure?

Avant cette modification, le programme n'effectuait de "prise de mesure" que si la condition L=1 était remplie (L est un indice de boucle variant de 1 à TRAN).  Cela s'avère nécessaire lors de l'évaluation de quantités dynamiques, mais représente une importante perte de temps lorsque seulement des quantités statiques sont évaluées.  À présent, le programme est automatisé pour prendre des mesures à toutes les tranches de temps si aucune quantité dynamique n'est évaluée.
 

2- Changements apportés au programme

Dans le module CONSTANTES, un tableau logique AUTO de dimension 2 a été ajouté.  La première dimension se rapporte à la structure tandis que la seconde dimension se rapporte à l'automatisation du calcul au second ordre .

Dans le programme principal, les mesures se font à toutes les valeurs de L si AUTO(1)=.FALSE.; autrement, l'ancienne structure est conservée.

C'est dans la sous-routine INITGRN que sont déterminées les valeurs de AUTO(1) et AUTO(2).  Si l'évaluation d'une quantité dynamique est nécessaire lors de l'exécution du programme, alors la variable AUTO(1) aura automatiquement la valeur .TRUE.
 

3- Automatisation du calcul au second ordre

Auparavant, il fallait enlever les commentaires du programme et recompiler pour effectuer le calcul au second ordre.  Seulement, cette option pouvait être automatisée, car ce calcul n'est d'intérêt que pour certaines quantités (susceptibilité de paires, susceptibilité magnétique et fonction de corrélation courant-courant).

Ainsi, dans la sous-routine INITGRN, la variable AUTO(2) se voit assignée la valeur .TRUE. si le calcul d'une de ces quantités est nécessaire dans le déroulement du programme.  Dans ce cas, on calculera H2M et H2P dans la sous-routine INITH3 et on effectuera le calcul au second ordre dans la sous-routine MACGD.