Newer
Older
Module de clés namelists PHYEX. Des modules sont assez généraux et utilisés ailleurs dans Méso-NH (répertoire aux)
- Une solution serait de créer un module propre à PHYEX qui contiendrait des clés de contrôle de haut niveau
pour la physique. Ce module serait initialisé dans Méso-NH à partir de clés actuellement en dehors
de la physique.
- Une autre solution serait de supprimer ces modules de PHYEX et de recevoir ces quelques clés en argument (ex modd_lunit?)
- si certains modules contiennent des clés purement physiques et d'autres purement dynamique, on pourrait scinder le module
Documentation: search for the TODO keys in the *.md files of the docs directory
Intégration de PHYEX dans des cycles/versions officielles:
- Clés de compilation
- Clé de compilation REPRO48 + REPRO55 ajoutées pour permettre de reproduire le cycle 48 MNH-5.5.0, elles:
- contournent des corrections de bug
- modifient l'organisation de calculs
- REPRO48 reproduit les résultats obtenus avant l'introduction de la fraction précipitante froide dans l'ajustement
- Utilisation des clés:
- REPRO48 seule: la version de code qui sera retenue à la fin est celle de Méso-NH 5.5
- REPRO55 seule: la version de code qui sera retenue à la fin est celle du cycle 48 d'AROME
- defined(REPRO48) || defined(REPRO55): la version de code qui sera retenue à la fin est nouvelle
- Ces clés devront être supprimées
- Répertoires ext
- Répertoire arome/ext et mesonh/ext contiennent les codes non PHYEX qu'il faut modifier dans le pack pour qu'il puisse être compilé.
- Ce répertoire devra être vidé à la fin du phasage, les modifications nécessaires devront avoir été fournies par ailleurs
- Code AROME:
- supprimer les répertoires internals et modules de mpa/* qui sont repris par phyex
- supprimer les codes listés dans le fichier src/arome/gmkpack_ignored_files (ceux qui ne sont pas dans phyex)
- reprendre le code de src/arome/ext pour mettre à jour le code IAL
- déplacer dans mpa/conv: aro_convbu
- déplacer dans un nouveau mpa/aux: aro_startbu, aroini_budget, aro_suintbudget, aro_suintbudget_omp, aroini_cstmnh, aroini_frommpa, modd_spp_type
- appels à condensation remis dans src/mesonh/micro/radtr_satel.f90,
src/mesonh/micro/ice_adjust_elec.f90 et src/mesonh/micro/lima_adjust_split.f90
Pb identifiés à corriger plus tard:

RODIER Quentin
committed
- LHGRAD non porté sur GPU (mis en commentaire) : trop de gradient horizontaux à traiter et utilisation de XXHAT (domaine carré seulement). A traiter plus tard
- deposition devrait être déplacée dans ice4_tendencies
- avec les optimisations de Ryad, les tableaux 3D de precip passés à ice4_tendencies
lorsque HSUBG_RC_RR_ACCR=='PRFR' ne sont pas utilisables puisque les K1, K2 et K3
sont relatifs à la boucle IMICRO et que les calculs faits en debut de routine ne
concernent qu'une partie des points
=> à corriger
- seules quelques options sont testées avec les cas test (par exemple, il faudrait tester RMC01 mais
l'option n'est pas remontée en namelist)
- th_r_from_thl_rt appelée partout, il faudrait limiter à OTEST
- sedimentation momentum non branchée
- si possible, modifier ice4_sedimentation_split* dans le même esprit que stat
- il faudrait nettoyer les interfaces pour supprimer les clés passées directement
alors qu'elles sont également disponibles dans les structures (ex: HMF_UPDRAFT)
- il faudrait harmoniser l'utilisation des variables D% (cad faire IKT=D%NKT en haut ou utiliser directement D%NKT)
- La taille du buffer utilisé pour th_r_from_thl_rt doit être mise en module et
utilisée pour déclarer le buffer dans les routines appelantes et dans th_r_from_thl_rt
- shallow_mf_pack devrait être récrit pour appeler directement shallow_mf sans recopier les tableaux pour les changer de forme
- rain_ice:
- séparer l'avance temporelle du découpage en sous-blocs en créant une couche driver supplémentaire. Cette couche pourrait
avoir différentes implémentations (filtre LLMICRO seul, filtre LLMICRO + découpage en sous-blocs, filtre LLMICR
- mettre le code des interpolations linéaires et bi-linéaires dans des routines avec deux implémentations: avec et sans packing

RIETTE Sébastien
committed
- shuman, turb, shuman_mf, apl_arome
- peut-on remettre à jour la partie sous le sol des variables pronostiques avant d'entrer dans EDKFi dans Méso-NH? Si oui, on devrait pouvoir
récrire les shuman_mf pour qu'ils produisent les mêmes résultats qu'aujourd'hui mais sans utiliser les valeurs sous le sol ou dans "l'espace infini"
- si les shuman_mf sont récrits, on doit pouvoir limiter les calculs à NKTB:NKTE dans EDKF (gain de temps calcul sur Méso-NH)
- ces nouveaux shuman_mf (renommés phy) pourrait (?) être utilisés dans la turbulence => une seule version de shuman pour toute la physique
- après ce travail, il serait possible de réétudier la possibilité de limiter les calculs dans la turb à NKTB:NKTE
- ce qui permettrait de supprimer les variables avec niveaux supplémentaires dans apl_arome
Nettoyage ultérieur :
- Budgets/LES
Une fois toutes les routines de la turbulence ont leur dimension horizontale packée et
utilisent LES_MEAN_SUBGRID_PHY a la place de LES_MEAN_SUBGRID_PHY : renommer les routines arome/turb et mesonh/turb en les_mean_subgrid.F90 et remplacer partout dans le code les appels (enlever le _PHY) + supprimer les anciennes routines
Reprendre les différents outils en deux scripts principaux:
- outil pour reprendre toutes les fonctionnalités sur le code: filepp, MNH_Expand_Array, correct_indent.py, verify_mnh_expand.py et renommage
- outil prep_code débarrassé du renommage pour ne faire que la gestion des commit et lancer la manipulation sur le code
Il restera, à part, les scripts de comparaison des résultats (à moins qu'ils puissent être inlinés dans les check_commit correspondant)