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.