[[PageOutline]] = Pages d'information sur la ré-écriture de la physique LMDZ = == Liste de liens divers == * la chaîne mattermost 'Portage accélérateurs' : [https://mattermost.lmd.ipsl.fr/lmdz/channels/portage-accelerateurs] * la chaîne mattermost 'Codage Physique' : [https://mattermost.lmd.ipsl.fr/lmdz/channels/codage-physique] * Analyse par gcov des routines ''vraiment'' utilisées par le modèle dans une configuration NPv7.0 [https://web.lmd.jussieu.fr/~fairhead/Labo/LMDZ_coverage/gcm.html tri alphabétique] ou [https://web.lmd.jussieu.fr/~fairhead/Labo/LMDZ_coverage_percent/gcm-p.html tri par pourcentage de lignes effectivement utilisées dans chaque routine] [[BR]] == Principes == Des différentes discussions préliminaires et de la réunion de lancement du 19 juin, deux niveaux de ré-écriture de la physique sont apparents: * au niveau des paramétrisations: une ré-écriture 'brute-force' au format 'Replay' pour faciliter la portabilité et le portage vers accélérateurs et simplifier le code * au niveau du contrôleur de la physique: une ré-écriture plus complexe qui doit amener à une refonte complète de physiq_mod.F90 et de ses interfaces avec les paramétrisations. C'est au niveau des interfaces que se jouent aussi les interactions avec les forçages, initialisations, sorties diagnostiques et restart. === Principes de codage === * renommage des modules avec le préfixe ''lmdz_'' pour éviter des 'collisions', par extension les noms des fichiers contenant les modules sont à renommer aussi * au niveau des paramétrisations: CodageParam == Chantiers == * ré-écriture des différentes paramétrisations à la norme ''**replay**'', on peut prioritiser les routines en s'aidant des rapports issus de gcov (voir dans les liens en début de page) * portage GPU et optimisation des paramétrisations une fois ré-écrites, à faire individuellement * optimisation du code en passant à du simple précision les calculs * écriture d'une maquette d'un contrôleur simplifié de la physique (simplifié mais qui contiendrait tous les blocs de la physique) * utilisation de cette maquette pour préciser et ré-écrire les interfaces entre le contrôleur et les paramétrisations == Réunions et comptes-rendus == === 2023/06/27 Atelier présentation replay === === 2023/06/19 Journée de lancement du groupe de travail ===