Opened 14 years ago
Last modified 5 years ago
#32 new incoherences
Concervation de la masse des traceurs dans la dynamique
Reported by: | Ehouarn Millour | Owned by: | ghattas |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | Tracers | Keywords: | traceurs, dynamique, conservation |
Cc: |
Description
Il semble qu'il y ait des problèmes de conservation de la masse totale des traceurs dans la dynamique. En pratique, avec des simulations en mode newtonien, pour un traceur initialisé à une quantité homogène en tout point de grille, on observe que sa masse totale est conservée. Mais ce n'est pas le cas lorsqu'on initialise la quantité de traceur de façon "discontinue" (par ex. une seule colonne d'atmosphère; ou même simplement deux valeurs différentes suivant l'hémisphère).
Pistes à explorer:
- la collecte des flux de masse au cours des appels.
- le calcul de l'advection (schéma de Van Leer).
- ...
Attachments (1)
Change History (4)
comment:1 Changed 13 years ago by
Changed 5 years ago by
Attachment: | 20190517_084439_small.jpg added |
---|
comment:2 Changed 5 years ago by
Toujours le pb dans le modèle actuel. Pour aider à débroussailler: l'arbre et la séquence d'appel:
- Sur la gauche: les états des variables entre itération temporelle t et t+1
- Petite nomenclature sur les arguments: encadré en rouge pour une variable écrasée (i.e. intent(out)) par la routine et en pointillés rouge si variable en entrée-sortie (intent(inout)).
- la masse de maille au temps t+1 est calculée dans integrd alors que qt+1 est calculée via advtrac ; la question devient alors comment s'assurer que qt+1 et masset+1 sont cohérents.
comment:3 Changed 5 years ago by
Type: | defect → incoherences |
---|
Remarque: le IF( forward. OR . leapf ) THEN dans leapfrog.F est clairement faux, il faudrait un IF( (.not.forward.) OR . leapf ) THEN puisqu'on devrait collecter les flux de masse durant les pas Matsuno backward et leapfrog
Mais des tests préliminaires ont montré que cela ne règle pas le problème initialement soulevé. Il y a donc (aussi) un problème ailleurs.