Module de clés namelists PHYEX 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. Dependencies: - définir les interfaces propres - créer des codes pour le driver - liste dans document Interfaces - pour AROME placés, en attendant, dans phyex/externals 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 Ecrire doc sur marche à suivre pour intégrer un nouveau développement: - dev dans MNH à faire en array-syntax - dev dans AROME à faire en boucles do - intégration dans PHYEX: en array-syntax avec directives mnh_expand - les 3 tests suivants doivent donner les mêmes résultats (au bit près) dans chacun des deux modèles: - compilation directe sans activer mnh_expand - compilation en activant mnh_expand - exécution en changeant le nombre de processeurs Merge pb: - rain_ice_old a rebrancher dans Meso-NH - appels à condensation temporairement supprimés de src/mesonh/micro/radtr_satel.f90, src/mesonh/micro/ice_adjust_elec.f90 et src/mesonh/micro/lima_adjust_split.f90 - shallow_mf (appels dans aro_shallow et arp_shallow): Dans Méso-NH: shallow_mf doit être appelé avec PDX=XDXHAT(1) et PDY=XDYHAT(1) Dans AROME/ARP: où trouver la taille de maille? - arp_shallow_mf non phasé Pb identifiés à corriger 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) - arome/ini_cmfshall devrait s'appeler ini_param_mfshall - th_r_from_thl_rt appelée partout, il faudrait limiter à OTEST - doute sur le codage de MODD_PRECISION - appel à abort à travers print_msg non testé - indentation inorrecte dans les blocs mnh_expand - sedimentation momentum non branchée (et à trasformer comme sedim_stat) - 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) 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 ayadevront avoir été fournies par ailleurs Budgets/DDH - Le code dans budget_DDH devra être transféré dans mode_budget - les routines arome specifiques aux budgets sont dans mpa/micro, il faudrait les mettre dans aux - Le module modd_dyn n'est utilisé que pour les budgets, voir s'il peut être supprimé - Le code des budgets devrait être revu: pas en phase avec celui de Méso-NH et phasage a priori inutile car très peu de code semble réellement utile pour AROME 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 SPP - modd_spp_type est pour l'instant dans mpa/micro/externals mais n'est pas de la microphysique Nettoyage apl_arome non fait (pb a la compilation) ==> 4 arguments dans aro_turb_mnh supprimés (non utilisés) turb.F90 : il reste un CALL à SOURCES_NEG_CORRECT à ajouter. Regarder s'il ne serait pas possible/souhaitable de supprimer modd_lunit de PHYEX. On pourrait se contenter de recevoir le numero d'unité logique Nettoyage des répertoires aux nécessaire Initialiser dans AROME la variable ldiag_in_run de MODD_DIAG_IN_RUN pour pouvoir phaser le modd Faire une branche GPU qui contient les codes utilisés pour générer les fichiers pour Philippe. Ajouter un répertoire pour héberger un pseudo-modèle qui contiendrait les cas tests de Philippe. La taille du buffer utilisé pour th_r_from_thl_rt doit être mise en module et utilisée pour déclarer le module dans les routines appelantes et dans th_r_from_thl_rt 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 LLMICRO + découpage en sous-blocs en respectant les colonnes, en passant tous les points) - mettre le code des interpolations linéaires et bi-linéaires dans des routines avec deux implémentations: avec et sans packing