Skip to content
Snippets Groups Projects
TODO 5.1 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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
    
      - 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
      - arp_shallow_mf non phasé
    
      - LIMA à faire
      - KFB ?
    
    Pb identifiés à corriger plus tard:
    
      - 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)
    
      - 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
    
    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)