Novembre 2008 ESCI
Le modèle couplé de l’IPSL Contexte – Présentation IPSL – Pôle de modélisation du climat Historique du modèle système Terre IPSL Le modèle actuel IPSLCM4_v2 Parallélisme Nouveaux scripts libIGCM Les autres configurations A venir… Utilisation du modèle Les outils de l’IPSL : modipsl, libIGCM,… Les différentes étapes Les simulations réalisées Les outils utiles : nco, cdo,…
Les laboratoires et les tutelles
IPSL Institut PS Laplace Fédération de 5 laboratoires - Observatoire des Sciences de l’Univers : le Centre d’étude des Environnements Terrestre et Planétaires (CETP), le Laboratoire de Météorologie Dynamique (LMD) le Laboratoire d’Océanographie et du Climat : Expérimentation et Approches Numériques (LOCEAN) le Laboratoire des Sciences du Climat et de l’Environnement (LSCE) le Service d’Aéronomie (SA) Au 1/1/2009 : CETP+SA = LATMOS + LISA + LPMAA , 1 FR + 3 OSUS Directeur : Jean Jouzel et à partir du 1/1/2009 Hervé Le Treut 8 tutelles Centre National de la Recherche Scientifique (CNRS), Université Pierre et Marie Curie - Paris 6 Université Versailles Saint-Quentin en Yvelines Commissariat à l’Energie Atomique (CEA) l’Institut de Recherche et Développement (IRD) Ecole Normale Supérieure Ecole Polytechnique Centre National d’Etudes Spatiales (CNES). 800 personnes - 1000 personnes Projets fédératifs : Pôle de modélisation du climat - 80 personnes – Pascale Braconnot et à partir du 1/1/2009 Jean-Louis Dufresne
Le pôle de modélisation Missions : Fédérer les études multidisciplinaires (scientifiques ou techniques) faisant intervenir les composantes du modèle de l'IPSL Identifier et coordonner les simulations de référence Fédérer et rationaliser les moyens, les développements techniques Animation scientifique Modèle climat : Atmosphère Océan et glace de mer Surfaces continentales Cycle du carbone Chimie IPSLCM4_v2 Earth System Model
du pôle de modélisation Conseil scientifique du pôle de modélisation LMDZ F. Hourdin INCA M. Schulz ORCHIDEE N. De Noblet NEMO-OPA S. Masson, G. Madec NEMO-TOP L. Bopp Bureau du CSPOLE Responsable : P. Braconnot J.-L. Dufresne, L. Fairhead, M.-A. Foujols P. Friedlingstein F. Hourdin, C. Lévy, O. Marti 20e-21eme J.L Dufresne, Tropiques J.P. Duvel, S. Janicot Expertise complémentaire F. Lott, L. Li, S. Bekki, G. Krinner,Th. Fichefet G. Ramstein
ESCI Equipe Système Climat IPSL – 20 personnes Mission : Organiser les développements techniques en accord avec les activités scientifiques du pôle Assurer le lien et la cohérence des développements entre les différentes composantes et le modèle couplé Support aux utilisateurs des modèles Documentation Animation technique, formation Veille technique
Le modèle couplé IPSL Définition : infrastructure qui permet de récupérer des versions de références des modèles, de les compiler, de les coupler ensemble, de réaliser une expérience type fournie (y compris fichiers entrée), de suivre sa réalisation, de produire des résultats bruts, de produire, stocker et rendre accessible des ATLAS et analyses systématiques.
Le modèle climat de l’IPSL Oasis
Contraintes liées aux différentes activités scientifiques Tests sensibilité KE/Ti Flux eau Paleo ??? IPSL_CM4(IPCC) IPSLCM4_v1 IPSL_CM4+(IPCC) Utilisation des sols Paléo végétation Cycle du carbone (Pisces, flux de carbone, transport carbone) IPSL_CM4(loop) Passage LMDZ4 Passage Versions // des modèles IPSL_CM4(//) Haute résolution IPSLCM4_v2 IPSL_CM4(chimie-aérosols) INCA IPSL_ESM_V1 Nouvel exercice GIEC 2009 Evolution des composantes IPSLCM5 Nouveau modèle
Historique et court terme Juillet 2004 – IPCC/AR4 IPSLCM4_v1 Jusqu’à juillet 2007 - LMDZ4 tag IPCC Résolutions ajoutées - OASIS3 IPSLCM4_v1_OASIS3 Cycle du carbone Stomate (ORCHIDEE) - PISCES (OPA) IPSLCM4_LOOP Juillet 2007 Parallélisme MPI LMDZ-ORCHIDEE Scripts libIGCM IPSLCM4_v2 Chimie - Aérosols IPSL_ESM_V1 NEMO Parallélisme OpenMP LMDZ-ORCHIDEE LMDZ nouvelle physique IPSLCM6 IPSLCM5 Nouvel exercice GIEC 2009
Composantes du modèle couplé IPSLCM4_v2 Responsables ESCI Composante Information Tag 44x43x19,72x45x19, 96x71x19, 96x95x19, 144x143x19 LMDZ4 LMDZ4_V3_4 L. Fairhead et BOL ORCHIDEE orchidee_1_9_2 M. Mancip orca2 ipsl_cm4_v2 Équipe système NEMO ORCA_LIM IOIPSL SVN v2_1_2 J. Bellier A. Caubel et CERFACS CPL OASIS 3 Head Compilation et fichiers d’entrée A. Caubel, MA Foujols et groupe CPLIPSL IPSLCM4_v2 IPSLCM4_v2_3 Scripts exécution et post- traitements S Denvil, P Brockmann, M Mancip libIGCM libIGCM_v1_1
Version de référence du modèle Chaque composante est validée en mode forcé par les personnes ad hoc tag fixé atlas sur les serveurs dods IDRIS et/ou CCRT Une expérience couplée type est disponible IPSLCM4_v2 : CDT5v2CT (144x142) (site http://mc2.ipsl.jussieu.fr/ensembles.html) Démarche itérative Nouvelles études multiples (paleo, land use, …) Évolutions à intégrer dans la version suivante : liste, qualité Groupe Cplipsl garant de la qualité
Parallélisme LMDZ-ORCHIDEE Parallélisation MPI Machines cibles : Vectoriel et parallélisme modéré o(10) : Mercure (NEC SX8R), Brodie (NEC SX8) Scalaire SMP parallélisme massif o(100) : Platine (BULL Itanium) Performances : 1 an couplé en Orca2xLMD144x142 8 procs mercure/brodie et 40 procs platine 3h sur mercure/brodie et 5h sur platine en temps réel 24h calcul sur mercure/brodie et 200 h calcul sur platine Présentation Y.Meurdesoif - décembre 2008
Deux centres de calcul privilégiés: IDRIS/CNRS et CCRT/CEA Calculateur brodie.idris.fr NEC SX-8, été 2006 10 noeuds 80 processeurs vargas.idris.fr IBM Power 6, 3584 coeurs Portage en cours mercure.ccc.cea.fr NEC SX-8R, nov 2006 8 noeuds 64 processeurs platine.ccc.cea.fr Bull, 6784 coeurs Connexion brodie/vargas.idris.fr (filtrage par adresse) mercure/platine.ccc.cea.fr (filtrage par adresse) Sources (conseil) $WORKDIR Fichiers gaya fer Post-traitement rhodes mercure (tx7), platine Serveur DODS dods.idris.fr dods.extra.cea.fr/data/ Assistance-Support assist@idris.fr hotline.ccrt@cea.fr 01 69 35 85 55 01 69 26 66 66 www.idris.fr www-ccrt.cea.fr
Les nouveaux scripts libIGCM : ensemble de scripts de lancement de simulation et de post- traitement modulaires et portables Documentation : http://forge.ipsl.jussieu.fr/libigcm Configurations cohérentes en plus grand nombre LMDZINCA, ORCA2LIM_v2, LMDZ4OR_v2 IPSLCM4_v2, IPSL_ESM, IPSLCM5
Les configurations utilisant les nouveaux scripts IPSLCM4_v2 : A Caubel, M-A Foujols LMDZ4OR_v2 : J Ghattas ORCHIDEE_OL : M Mancip LMDZINCA : A Cozic IPSL_ESM : A Cozic Recommandation : prévenir lors de nouvelles études basées sur une de ces configurations En cours : ORCA2_LIM, GYRE_LOBSTER : Equipe Système NEMO
Documentation Wiki Pôle : http://forge.ipsl.jussieu.fr/igcmg Introduction générale IGCMG, accessible à tous Accès outils multiples Accès sources SVN Accès aux tickets d’incident Accès aux pages wiki Contrainte : être inscrit dans le projet (demande aux administrateurs) pour pouvoir modifier wiki, tickets et sources. Machine commune de gestion des projets - Olivier Thauvin (SA)
Documentation forge.ipsl.jussieu.fr/igcmg WIKI Sources SVN Tickets
A venir… Futur proche Futur moins proche NEMO // : IPSLCM5 (Exercice IPCC AR5) // mixte MPI OpenMP LMDZ-ORCHIDEE => machines cibles scalaires SMP type platine ou vargas avec plus d’efficacité Nouvelle physique LMDZ : IPSLCM6 Futur moins proche Serveur IO dans les modèles IPSL Coupleur OASIS4 : plus de parallélisme Utilisation machines scalaires MPP ~1000 procs
Utilisation et démonstration 2ème partie Utilisation et démonstration
Principes (1/7) ATMOSPHERE LMDZ
Principes (2/7) « DRIVER OFFLINE » PROCESSUS de SURFACE ORCHIDEE_OL LMDZ
Principes (3/7) ORCHIDEE_OL ORCHIDEE LMDZ ORCHIDEE_OL Expérience type : 1 an sur le site Cabauw LMDZOR Expérience type : 1 an
Principes (4/7) OCEAN GLACE TRACEUR ORCHIDEE LMDZ OPA LIM TRC
Principes (5/7) ORCHIDEE LMDZ OPA LIM TRC ORCA2_LIM ORCA2_LIM_TRC Expérience type : 1 an ORCA2_LIM_TRC Expérience type : 1 an
Principes (6/7) COUPLEUR CERFACS ORCHIDEE LMDZ OASIS OPA LIM IPSLCM4_v2 Expérience type : 10 ans Etats initiaux
Principes (7/7) IOIPSL/ NETCDF ORCHIDEE_OL ORCHIDEE LMDZ OASIS OPA LIM fichiers ORCHIDEE_OL ORCHIDEE LMDZ OASIS OPA LIM TRC Scripts libIGCM
MODIPSL, IOIPSL, Rebuild Modipsl : outil d’extraction, de préparation en fonction de la machine, de compilation des modèles pour créer les exécutables. Introduction – FAQ : http://forge.ipsl.jussieu.fr/igcmg/wiki/ModipslBeginner IOIPSL : librairie commune qui gère les Entrées-Sorties (fichiers de sorties, restarts) au format NetCDF dans les modèles de l’IPSL. Rebuild : outil pour recombiner les fichiers
A savoir sur brodie et IDRIS : http://forge. ipsl. jussieu PATH=/TXlocal/pub/svn/svn-1.3.1/bin:/home/rech/psl/rpsl035/fcm/bin:$PATH pour accéder à svn et fcm. Vérifier par which svn et which fcm. $HOME_BIS sur rhodes est très vaste mais non sauvegardé. Faire les post-traitements là après avoir vérifié que ce répertoire existe ou demander sa création à l'assistance IDRIS. Pour cela créer un répertoire sur $HOME_BIS et son homonyme sur le $HOME en lien. Ce répertoire doit avoir le même nom que sur brodie. cd ; mkdir $HOME_BIS/MONEXPAMOI ; ln -s $HOME_BIS/MONEXPAMOI MONEXPAMOI ; si l'expérience a été préparée sur brodie ainsi : cd $WORKDIR ; mkdir MONEXPAMOI ; cd MONEXPAMOI ; svn_ano ; ... $WORKDIR sur brodie peut être étendu largement (50 Go pour le groupe par exemple). Le demander à l'assistance. Pour vérifier l'occupation et la taille : {{{ quota_u -w }}} sur brodie, remplir le fichier .rhosts avec rhodes Faire marcher les transferts brodie --> gaya par mfget/mfput. Ftuas sur rhodes pour faire connaître le mot de passe gaya à brodie et à toutes les machines. Pour les accès dods, il faut lancer une commande mfdods sur gaya. Cela crée le répertoire. Si l'accès par le web ne passe pas : http://dods.idris.fr/login , demander à l'assistance IDRIS. Pour donner les accès à tous (755 ou drwxr-xr-x) au WORKDIR de brodie, il faut demander à l'assistance IDRIS pour le niveau /u/rech/grp. Idem pour /home_b/rech/grp sur rhodes.
A savoir sur mercure et CCRT : http://forge. ipsl. jussieu PATH=$PATH:/home/cont003/p86ipsl/fcm/bin pour accéder fcm. Vérifier par which fcm.
Accès au modèle IPSLCM4_v2 (1/9) Accès à modipsl (SVN) brodie ou mercure : mkdir MY_EXPERIENCE brodie ou mercure : cd MY_EXPERIENCE brodie ou mercure : svn co http://forge.ipsl.jussieu.fr/igcmg/svn/modipsl/trunk modipsl alias (svn_ano) MY_EXPERIENCE modipsl .svn bin doc lib config modeles tmp util
Accès au modèle IPSLCM4_v2 (2/9) MY_EXPERIENCE Accès à modipsl brodie ou mercure : cd modipsl/util modipsl .svn bin doc lib config modeles tmp util mod.def Définition pour chaque configuration de leurs composantes et de leurs tags associés model ins_make ins_job Extraction des modèles validés disponibles Installation et configuration des Makefiles Installation et configuration des scripts de lancement
Accès au modèle IPSLCM4_v2 (3/9) - fichier mod.def - 1 #- $Id$ 2 #--------------------------------------------------------------------- 3 #-This file is the definition file of the script "model". 4 #--------------------------------------------------------------------- 5 #- Each model is defined by 6 #- (prefix #-H-) model informations, 7 #- (prefix #-M-) the email address of the model manager, 8 #- (prefix #-C-) elements to extract for the model, in the order : 9 #- name of the component in the repository 10 #- tag/revision of the component 11 #- index of the repository in the server table 12 #- installation path in the local working directory 13 #- local working directory in modipsl 14 #- (prefix #-S-) containing the control system and server address. 15 #- 16 #- The tag "?" correspond to the default model version. 17 #- Invoking "model" with -H overrides any tag with "?". 18 #--------------------------------------------------------------------- 19 #- Repository informations 20 #- 21 #-S- 1 cvs anonymous@cvs.ipsl.jussieu.fr:/home/ioipsl/CVSROOT 22 #-S- 2 cvs sechiba@cvs.ipsl.jussieu.fr:/home/ssipsl/CVSREP 23 #-S- 3 cvs lmdzbrowse@cvs.lmd.jussieu.fr:/home/cvsroot 24 #-S- 4 cvs opa@cvs.ipsl.jussieu.fr:/home/opalod/CVSROOT 25 #-S- 5 cvs nemo@cvs.ipsl.jussieu.fr:/home/opalod/NEMOCVSROOT 26 #-S- 6 cvs inca@cvs.ipsl.jussieu.fr:/home/incaipsl/CVSROOT 27 #-S- 7 svn --username nemo_user http://forge.ipsl.jussieu.fr/nemo/svn 28 #-S- 8 svn http://forge.ipsl.jussieu.fr/igcmg/svn 29 #------------------------------------------------------------------
Accès au modèle IPSLCM4_v2 (3/9 - suite) - fichier mod.def - #- 87 #-H- IPSLCM4_v2 IPSLCM4_v2 configuration with parallel LMDZ4 and ORCHIDEE 88 #-H- IPSLCM4_v2 official release : october 2007 89 #-H- IPSLCM4_v2 ORCA tag ipsl_cm4_v2 90 #-H- IPSLCM4_v2 IOIPSL/src svn tags/v2_1_3 91 #-H- IPSLCM4_v2 LMDZ4 tag LMDZ4_V3_4 92 #-H- IPSLCM4_v2 ORCHIDEE tag orchidee_1_9_2 93 #-H- IPSLCM4_v2 OASIS3 tag HEAD 94 #-H- IPSLCM4_v2 IPSLCM4_v2 svn new scripts 95 #-M- IPSLCM4_v2 arnaud.caubel@lsce.ipsl.fr 96 #-C- IPSLCM4_v2 IOIPSL/tags/v2_1_3/src HEAD 8 IOIPSL/src modeles 97 #-C- IPSLCM4_v2 ORCHIDEE orchidee_1_9_2 2 . modeles 98 #-C- IPSLCM4_v2 OASIS3 ? 1 prism . 99 #-C- IPSLCM4_v2 LMDZ4 LMDZ4_V3_4 3 . modeles 100 #-C- IPSLCM4_v2 CONFIG/tags/IPSLCM4_v2/IPSLCM4_v2_2 HEAD 8 IPSLCM4_v2 config 101 #-C- IPSLCM4_v2 tags/libIGCM_v1 ? 1 . . 102 #-C- IPSLCM4_v2 OPA/SRC_ORCA ipsl_cm4_v2 4 . modeles 103 #-C- IPSLCM4_v2 OPA/SRC_UCL ipsl_cm4_v2 4 . modeles 104 #-C- IPSLCM4_v2 UTIL/fait_AA_make ipsl_cm4_v1_8 4 . modeles
Accès au modèle IPSLCM4_v2 (4/9) Accès à MODIPSL svn_ano ; cd modipsl/util Accès à IPSLCM4_v2 brodie ou mercure : ./model IPSLCM4_v2 (4 mots de passe : à demander autour de vous) Annexe 1: logins et serveurs SVN/CVS MY_EXPERIENCE modipsl bin .svn doc lib libIGCM prism config modeles tmp util IPSLCM4_v2 IOIPSL UTIL ORCHIDEE OPA LMDZ4
Accès au modèle IPSLCM4_v2 (5/9) Accès à MODIPSL svn_ano ; cd modipsl/util Accès à IPSLCM4_v2 ./model IPSLCM4_v2 Installation des Makefiles brodie ou mercure : ./ins_make MY_EXPERIENCE modipsl .svn bin doc lib libIGCM config modeles prism tmp util AA_make.gdef IPSLCM4_v2 AA_make.ldef AA_make Makefile
Accès au modèle IPSLCM4_v2 (6/9) Accès à MODIPSL (SVN) svn_ano ; cd modipsl/util Accès à IPSLCM4_v2 ./model IPSLCM4_v2 Installation des Makefiles ./ins_make Installation de l’expérience type brodie ou mercure : # Editer ../config/IPSLCM4_v2/EXP00/config.card # Modifier JobName(LO1), JobNumProcTot(4) ./ins_job MY_EXPERIENCE modipsl .svn bin doc lib libIGCM config modeles tmp util IPSLCM4_v2 AA_job EXP00 Job_JobName config.card
Accès au modèle IPSLCM4_v2 (7/9) Accès à MODIPSL svn_ano ; cd modipsl/util Accès à IPSLCM4_v2 ./model IPSLCM4_v2 Installation des Makefiles ./ins_make vi ../config/IPSLCM4_v2/EXP00/config.card Installation de l’expérience type (partie post-traitement) brodie ou mercure : ./ins_job MY_EXPERIENCE modipsl config modeles libIGCM atlas_LMDZ.job atlas_ORCHIDEE.job atlas_ORCA_LIM.job create_ts.job create_se.job monitoring.job AA_atlas_LMDZ AA_atlas_ORCHIDEE AA_atlas_ORCA_LIM AA_create_ts AA_create_se AA_monitoring
Accès au modèle IPSLCM4_v2 (8/9) Accès à MODIPSL svn_ano ; cd modipsl/util Acces à IPSLCM4_v2 ./model IPSLCM4_v2 Installation des Makefiles ./ins_make Installation de l’expérience type vi ../config/IPSLCM4_v2/EXP00/config.card ./ins_job Compilation brodie ou mercure : cd ../config/IPSLCM4_v2 brodie ou mercure : gmake (défaut ORCA2xLMDZ9671) MY_EXPERIENCE modipsl .svn bin doc lib config tmp util create_etat0_limit.e gcm.e oasis opa IPSLCM4_v2 Makefile
Accès au modèle IPSLCM4_v2 (9/9) MY_EXPERIENCE Accès à MODIPSL svn_ano ; cd modipsl/util Acces à IPSLCM4_v2 ./model IPSLCM4_v2 Installation des Makefiles ./ins_make Installation de l’expérience type vi ../config/IPSLCM4_v2/EXP00/config.card ./ins_job Compilation cd ../config/IPSLCM4_v2 gmake Soumission du Job de lancement brodie ou mercure : cd EXP00 brodie ou mercure : qsub Job_LO1 modipsl config IPSLCM4_v2 EXP00 Job_JobName COMP PARAM dynami.param gcm.def geogram.param inice.param namcouple namelist offline.def orchidee.def output.param physiq.def run.def run.param.li thermo.param lim.card lim.driver lmdz.card lmdz.driver oasis.card oasis.driver opa.card opa.driver orchidee.card orchidee.driver
Récupérer, compiler et lancer le modèle couplé IPSLCM4_v2 Accès à MODIPSL svn co http://forge.ipsl.jussieu.fr/igcmg/svn/modipsl/trunk modipsl Accès à IPSLCM4_v2 cd modipsl/util ; ./model IPSLCM4_v2 # model -h # pour voir les autres configurations disponibles Installation des Makefiles ./ins_make Installation de l’expérience type (et post-traitements) Modifier «JobName» dans ../config/IPSLCM4_v2/EXP00/config.card ./ins_job Compilation cd ../config/IPSLCM4_v2 ; gmake Soumission du Job de lancement cd EXP00 qsub Job_JobName
Un peu plus en détail… MY_EXPERIENCE Répertoire EXP00 prêt : modipsl COMP/* : information sur les composantes config.card : fichier de configuration de la simulation Job_LO1 : Job à soumettre PARAM/* : fichiers de configuration des modèles run.card.init : fichier de suivi original modipsl config IPSLCM4_v2 EXP00 run.card.init config.card Job_LO1 COMP PARAM lim.card lim.driver lmdz.card lmdz.driver oasis.card oasis.driver opa.card opa.driver orchidee.card orchidee.driver dynami.param gcm.def geogram.param inice.param namcouple namelist offline.def orchidee.def output.param physiq.def run.def run.param.li thermo.param
Schéma de la librairie de scripts libIGCM EXP00 EXP00/COMP
Script de référence : Job_LO1 PeriodLength
Nouveaux scripts : libIGCM Infrastructure commune cohérente de script : Job_Jobname Un job de soumission de la simulation config.card : une fiche descriptive d’une configuration pour une simulation donnée CARD : Des couples de fichiers card et driver décrivent les fichiers et programment le fonctionnement de chaque composante d’une configuration PARAM : Des fichiers de paramètres des différentes composantes run.card (run.card.init): Une fiche d’information sur la simulation en cours d’exécution libIGCM : libIGCM/libIGCM_card, liBIGCM_comp, libIGCM_config, libIGCM_date, libIGCM_debug, libIGCM_post, libIGCM_sys.ksh : des bibliothèques de fonctions en ksh utilisées par les jobs libIGCM/libIGCM_sys/libIGCM_sys_brodie.ksh, libIGCM_sys_mercure.ksh, … : des fonctions système spécifique à chaque machine
Un peu plus en détail… MY_EXPERIENCE Répertoire EXP00 prêt : modipsl COMP/* : information sur les composantes config.card : fichier de configuration de la simulation Job_LO1 : Job à soumettre PARAM/* : fichiers de configuration des modèles run.card.init : fichier de suivi original modipsl config IPSLCM4_v2 EXP00 run.card.init config.card Job_LO1 COMP PARAM lim.card lim.driver lmdz.card lmdz.driver oasis.card oasis.driver opa.card opa.driver orchidee.card orchidee.driver dynami.param gcm.def geogram.param inice.param namcouple namelist offline.def orchidee.def output.param physiq.def run.def run.param.li thermo.param
config.card : UserChoices 1 # 2 # This is config.card file for restart with an NEW libIGCM simulation tree. 3 # 4 #======================================================================== 5 #D-- Compatibility - 6 [Compatibility] 7 libIGCM=1.0 8 #D-- UserChoices - 9 [UserChoices] 10 #============================ 11 #-- (<8 chars MAX for JobName) 12 JobName=LO1 13 LongName="SCRIPT_V1" 14 TagName=IPSLCM4_v2 15 #============================ 16 #-- leap, noleap, 360d 17 CalendarType=360d 18 #-- Début et fin de Job 19 #-- "YYYY-MM-DD" 20 DateBegin=1860-01-01 21 DateEnd=1869-12-30 22 #============================ 23 #-- 1Y, 1M, 5D, 1D 24 PeriodLength=1M 25 #============================ Information sur la simulation
config.card : Composantes 33 #======================================================================== 34 #D-- ListOfComponents - 35 [ListOfComponents] 36 #D- For each component, Name of component, Tag of component 37 ATM= (lmdz, LMDZ.4) 38 SRF= (orchidee, ORCHIDEE.1.9) 39 OCE= (opa, OPA8.2) 40 ICE= (lim, LIM.1) 41 CPL= (oasis, OASIS3) 42 #======================================================================== 43 #D-- Executable - 44 [Executable] 45 Name=run_file 46 #D- For each component, Real name of executable, Name of executable for oasis 47 ATM= (gcm.e, lmdz.x) 48 SRF= ("", "") 49 OCE= (opa, opa.xx) 50 ICE= ("", "") 51 CPL= (oasis, oasis)
config.card : Restarts 53 #======================================================================== 54 #D-- Restarts - 55 [Restarts] 56 #D- If you want a GENERAL RULE FOR RESTARTS, put this flag to 'y' 57 OverRule=n 58 #D- Last day of the experience used as restart 59 RestartDate=1869-12-30 60 #D- Define restart simulation name (=> JOB_OS) 61 RestartJobName=CD1 62 #D- Path Server Group Login (=> PSGL) 63 RestartPath=${ARCHIVE}/IGCM_OUT/IPSLCM4_v2 64 # Attention login depend de la machine 66 #======================================================================== 67 #D-- Post - 68 [Post] 69 #D- Do we rebuild parallel output, this flag determines 70 #D- frequency of rebuild submission 71 RebuildFrequency=NONE 72 #D- If you want to monitor variables, this flag determines 73 #D- frequency of post-processing submission 74 MonitoringFrequency=NONE 75 #D- If you want to produce time series, this flag determines 76 #D- frequency of post-processing submission 77 TimeSeriesFrequency=10Y 78 #D- If you want to produce seasonal average, this flag determines 79 #D- the period of this average 80 SeasonalFrequency=10Y y pour un redémarrage depuis une autre simulation Donner la date, le nom de la simulation et le chemin d’accès aux fichiers
config.card : Post 53 #======================================================================== 54 #D-- Restarts - 55 [Restarts] 56 #D- If you want a GENERAL RULE FOR RESTARTS, put this flag to 'y' 57 OverRule=n 58 #D- Last day of the experience used as restart 59 RestartDate=1869-12-30 60 #D- Define restart simulation name (=> JOB_OS) 61 RestartJobName=CD1 62 #D- Path Server Group Login (=> PSGL) 63 RestartPath=${ARCHIVE}/IGCM_OUT/IPSLCM4_v2 64 # Attention login depend de la machine 66 #======================================================================== 67 #D-- Post - 68 [Post] 69 #D- Do we rebuild parallel output, this flag determines 70 #D- frequency of rebuild submission 71 RebuildFrequency=NONE 72 #D- If you want to monitor variables, this flag determines 73 #D- frequency of post-processing submission 74 MonitoringFrequency=NONE 75 #D- If you want to produce time series, this flag determines 76 #D- frequency of post-processing submission 77 TimeSeriesFrequency=10Y 78 #D- If you want to produce seasonal average, this flag determines 79 #D- the period of this average 80 SeasonalFrequency=10Y
config.card : une composante type ATM 82 #======================================================================== 83 #D-- ATM - 84 [ATM] 85 # 86 WriteFrequency="1M 1D HF" 87 # If config_Restarts_OverRule == 'n' all params are read 88 Restart= n 89 # Last day of the experience used as restart 90 RestartDate=1999-12-30 91 # Define restart simulation name 92 RestartJobName=LO1 93 RestartPath=${ARCHIVE}/IGCM_OUT/IPSLCM4_v2 94 # Old component name for restart (if empty, use new name) 95 OldName= 96 97 #======================================================================== 98 #D-- OCE - 99 [OCE] 100 WriteFrequency="1M 1D" 101 Restart= n 102 ##-- Last day of the experience used as restart 103 RestartDate=1999-12-30 104 # Define restart simulation name 105 RestartJobName=LO1 106 RestartPath=${ARCHIVE}/ IGCM_OUT/IPSLCM4_v2 107 # Old component name for restart (if empty, use new name) 108 OldName= y pour un redémarrage ATM depuis une autre simulation Donner la date, le nom de la simulation et le chemin d’accès aux fichiers
Un peu plus en détail… MY_EXPERIENCE Répertoire EXP00 prêt : modipsl COMP/* : information sur les composantes config.card : fichier de configuration de la simulation Job_LO1 : Job à soumettre PARAM/* : fichiers de configuration des modèles run.card.init : fichier de suivi original modipsl config IPSLCM4_v2 EXP00 run.card.init config.card Job_LO1 COMP PARAM lim.card lim.driver lmdz.card lmdz.driver oasis.card oasis.driver opa.card opa.driver orchidee.card orchidee.driver dynami.param gcm.def geogram.param inice.param namcouple namelist offline.def orchidee.def output.param physiq.def run.def run.param.li thermo.param
Job_JobName Initialisation des paramètres de batch (exemple PBS) Définition de la mémoire limite #PBS -l memsz_job=4.0gb limite mémoire Définition du nombre de processeurs #PBS -v PBS_NUM_PROC_TOT=::JobNumProcTot:: provient de config.card via ./ins_job Définition des limites temps CPU Sur Brodie : #PBS -l cputim_job=1:00:00 limite en temps CPU pour l’ensemble du job Sur Mercure : #PBS -l elapstim_req=1:00:00 limite en temps réel ‘elapsed’ pour l’ensemble du job
tableau des classes* IDRIS Job_JobName : PBS tableau des classes* IDRIS brodie : news class ======================================================================= Classes multiprocesseurs (<=8) au sein d'un noeud (MPI ou OpenMP) ======================================================================== Parametres NQSII a specifier : #PBS -q multi #PBS -l cpunum_job=<Nproc> # Nombre de processeurs (1 <= Nproc <= 8) ^ -l cputim_job (limite en temps CPU par job) | 12:00:00 +--------------------------+ (12H) | | | p2t2 | | | | 1 <= Nproc <= 2 | | TMPDIR <= 45Gb | 1:00:00 +---------------------------+ (1H) | | | p2t1 | | | | 1 <= Nproc <= 2 | | TMPDIR <= 45Gb | +----------------------------+--> -l memsz_job (limite memoire par job) 15Gb * Susceptible de changement permanent
tableau des classes* IDRIS Job_JobName : PBS tableau des classes* IDRIS brodie : news class (suite) ^ -l cputim_job | 48:00:00 +----------------------------- (48H) | | p8t2 | 7 <= Nproc <= 8 | TMPDIR <= 300Gb 2:00:00 +----------------------------- (2H) | | p8t1 | TMPDIR <= 100Gb +----------------------------> -l memsz_job 60Gb * Susceptible de changement permanent
tableau des classes* CCRT Job_JobName : PBS tableau des classes* CCRT mercure : class QUEUE ACT TYPE NODE TIME MEM LIM/USER HOSTS test Oui Urgent 1 1h00 32G mercure17 prod Oui Normal 1 24h00 20G mercure10,mercure11,mercure12,mercure13,mercure15,mercure16,mercure17 bigmem Oui Normal 1 24h00 64G mercure10,mercure11 bigtime Oui Normal 1 100h00 32G mercure12,mercure13,mercure16 testpara Oui Urgent 4 30m00 52G mercure10,mercure11,mercure12,mercure13 parallel Oui Normal 4 24h00 40G mercure10,mercure11,mercure12,mercure13,mercure16 para8 Oui Normal 1 24h00 32G mercure14 ipcc Oui Special 1 24h00 32G mercure15,mercure17 scalaire Oui - 1 24h00 8G mercure * Susceptible de changement permanent
Caractéristiques pour une expérience de 1 mois Job_JobName : PBS Caractéristiques pour une expérience de 1 mois ORCA2xLMD9671 Temps CPU 5.4 Gb (5.8 Gb 1er mois) 1700 s Mercure : 4 procs 600 s Brodie : 4 procs Mémoire Temps écoulé Plateforme 1800 s 500 s Classe du job: brodie p4t2 mercure parallel
Caractéristiques pour une expérience de 1 mois Job_JobName : PBS Caractéristiques pour une expérience de 1 mois ORCA2xLMD144142 Temps CPU 18 Gb ( 18.2Gb 1er mois) 6000 s Mercure : 8 procs 18 Gb (18.2 Gb 1er mois) 1050 s Brodie : 8 procs Mémoire Temps écoulé Plateforme 6100 s 950 s Classe du job: brodie p8t2 mercure parallel
Job_JobName : PeriodNb Lancement de plusieurs périodes par job Pour éviter de lancer une foule de petits jobs qui reprennent la file d’attente à chaque fois, il est possible de lancer en boucle n périodes par job. Le paramètre à modifier est dans Job_JobName (1 par défaut) : PeriodNb=1 Attention! Modifier le paramètre PBS du temps en conséquence. Définition des limites temps CPU Sur Brodie : #PBS -l cputim_job=10:00:00 limite en temps CPU pour l’ensemble du job Sur Mercure : #PBS -l elapstim_req=10:00:00 limite en temps réel ‘elapsed’ pour l’ensemble du job
Soumission - Contrôle MY_EXPERIENCE modipsl config qsub Job_LO1 Mercure : qstat, mpp Brodie : qstat Répertoire EXP00 en cours de simulation : COMP/* PARAM/* run.card.init run.card config.card Job_LO1 Script_Output* modipsl config IPSLCM4_v2 EXP00 Script_Output* run.card run.card.init config.card Job_LO1 COMP PARAM
run.card : le fichier de suivi # contient la date du run en cours ou du run en attente # last date of loop == .suivi [Configuration] #last PREFIX OldPrefix= HVMPSTOI_00071231 #Compute date of loop == .suivi PeriodDateBegin= 0008-01-01 PeriodDateEnd= 0015-12-31 CumulPeriod= 2 # State of Job "Start", "Running", "OnQueue", "Completed" PeriodState= Running # contient la trace des executions [PostProcessing] # postraitements state == .date PostState = Start MonitoringRunning=n MonitoringCompleted= TimeSeriesRunning=n TimeSeriesCompleted= SeasonalRunning=n SeasonalCompleted= 62
run.card : le fichier de suivi [Log] # Executable Size LastExeSize= ( 26540674, 0, 16412248, 0, 9897631 ) # CumulPeriod | PeriodDateBegin | PeriodDateEnd | RunDateBegin | RunDateEnd | RealCpuTime | UserCpuTime | SysCpuTime | ExeDate 1 , 18600101 , 18600130 , 2008/07/25 09:12:54 , 2008/07/25 09:28:50 , 956.39111 , 2287.43321 , 4.49284 , ATM_Jul_2_17:19-OCE_Jul_2_16:56-CPL_Jul_2_16:50) \ (2 , 18600201 , 18600230 , 2008/07/25 09:29:47 , 2008/07/25 09:40:00 , 613.02877 , 1347.03011 , 4.11219 , ATM_Jul_2_17:19-OCE_Jul_2_16:56-CPL_Jul_2_16:50) \ 63
Un peu plus en détail… MY_EXPERIENCE Répertoire EXP00 prêt : modipsl COMP/* : information sur les composantes config.card : fichier de configuration de la simulation Job_LO1 : Job à soumettre PARAM/* : fichiers de configuration des modèles run.card.init : fichier de suivi original modipsl config IPSLCM4_v2 EXP00 run.card.init config.card Job_LO1 COMP PARAM dynami.param gcm.def geogram.param inice.param namcouple namelist offline.def orchidee.def output.param physiq.def run.def run.param.li thermo.param lim.card lim.driver lmdz.card lmdz.driver oasis.card oasis.driver opa.card opa.driver orchidee.card orchidee.driver
Flux des données (1/6) Un fichier descriptif par composante (par ex opa.card) Fichiers d’entrée texte (namelist) Fichiers d’entrée binaires : conditions initiales conditions limites (bathymetry) Exécutable (opa.xx) Fichiers de sorties binaires (netCDF) Fichiers de sorties texte (ocean.output) Fichiers de redémarrage (restart.nc)
Flux des données (2/6) opa.card [UserChoices] OPA_NPDT_JOURS=15 [InitialStateFiles] List= () [BoundaryFiles] ListNonDel= (${R_BC}/OCE/${config_UserChoices_TagName}/{RESOL_OCE}/LEVITUS_1m_Temperature_Pot_Ice_nomask.nc, .), \ (${R_BC}/OCE/${config_UserChoices_TagName}/${RESOL_OCE}/runoff_1m_nomask.nc, .) [ParametersFiles] List= (${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE}, namelist) [RestartFiles] List= (${config_UserChoices_JobName}_${PeriodDateEnd}_restart.nc, restart.nc, orcaini.nc) [OutputText] List= (ocean.output, opa.xx.prt, solver.stat, ftrace.out.2.0) [
Flux des données (3/6) [OutputFiles] List= (${PREFIX_NWRITE}_${DATE_OPA}_grid_T.nc, ${R_OUT_OCE_NWRITE}/${PREFIX}_${WF1}_grid_T.nc, Post_1M_grid_T),\ (${PREFIX_NWRITE}_${DATE_OPA}_diaznl.nc, ${R_OUT_OCE_NWRITE}/${PREFIX}_${WF1}_diaznl.nc, Post_1M_diaznl),\ (${PREFIX_NWRIHF}_${DATE_OPA}_grid_V.nc, ${R_OUT_OCE_NWRIHF}/${PREFIX}_${WF2}_grid_V.nc, NONE)
Flux des données (4/6) OPA + LIM OPA + LIM namelist_ORCA2 geogra.param output.param run.param.li thermo.param dynami.param_ORCA2 inice.param coordinates.nc bathymetry… ahmcoef LEVITUS_1m_… runoff_1m_... restart.nc rest_ice.om orcaini.nc rest.om OPA + LIM …_grid_ … …_diaznl_… …icemod… meshmask.nc ocean.output solver.stat time.step ice_evolu ice_mouchard À analyser avec les outils de post-traitements
Flux des données (5/6) OASIS OASIS3 grids.nc masks.nc areas.nc wa2o.flx wa2o.run wa2o.cal wo2a.tsg cf_name_table.txt namcouple _ORCA2xLMD9671 _ORCA2xLMD7245 … flxat.nc sstoc.nc OASIS3 cpl_oce_tau.nc cpl_oce_flx.nc cpl_oce_sst.nc cpl_atm_tauflx.nc cpl_atm_sst.nc Oasis.prt opa.xx.prt0 lmdz.x.prt0 cplout À analyser avec les outils de post-traitements
Flux des données (6/6) LMDZ + ORCHIDEE LMDZ + ORCHIDEE invtab.formated limit.nc carteveg5km.nc soils_param.nc routing.nc flux_iceberg amipbc_sic....nc Albedo.nc Rugos.nc tautab.format so4.run.nat.cdf ECDYN.nc ECPHY.nc Relief.nc landiceref.nc o2a.nc lai2D.nc create_etat0_limit.e physiq.def gcm.def run.def orchidee.def restart.nc restartphy.nc sechiba_rest.nc start.nc startphy.nc start_sech.nc LMDZ + ORCHIDEE etat0_visu.nc dyn_hist[ v_ave].nc dynzon.nc histhf.nc histmth.nc listing nistNMC.nc histREGDYN.nc sechiba_out.nc stomate_history.nc À analyser avec les outils de post-traitements
Post-traitement [OutputFiles] List= (${PREFIX_NWRITE}_${DATE_OPA}_grid_T.nc, ${R_OUT_OCE_NWRITE}/${PREFIX}_${WF1}_grid_T.nc, Post_1M_grid_T),\ (${PREFIX_NWRITE}_${DATE_OPA}_diaznl.nc, ${R_OUT_OCE_NWRITE}/${PREFIX}_${WF1}_diaznl.nc, Post_1M_diaznl),\ (${PREFIX_NWRIHF}_${DATE_OPA}_grid_V.nc, ${R_OUT_OCE_NWRIHF}/${PREFIX}_${WF2}_grid_V.nc, NONE) [Post_1M_grid_T] Patches = () GatherWithInternal = (nav_lon, nav_lat, deptht, time_counter) TimeSeriesVars = (iowaflup, sohtc300, sohefldo, soicecov, somxl010, sorunoff, sosaline, sossheig, sosstsst, sowaflep, sowaflcd, sowaflup) [Post_1M_diaznl] GatherWithInternal = (lon, lat, deptht, time_counter) TimeSeriesVars = (zotempeg, zotempea, zosaling, zosalina, sozonfha, sozanfha, sozonfhd, sozanfhd, sozonfhe, sozanfhe, sozonfhg, sozanfhg, sozonfho, sozanfho, sozonfsd, sozanfsd, sozonfsg, sozanfsg, sozonfso, sozanfso)
Les utilitaires de post-traitement CCRT, IDRIS MY_EXPERIENCE create_ts.job : séries temporelles tous les 10 ans create_se.job : moyennes saisonnières tous les 10 ans Retour des jobs de post-traitement là : rhodes : $WORKDIR/IGCM_OUT/IPSLCM4_v2/JobName mercure : $SCRATCHDIR/IGCM_OUT/IPSLCM4_v2/JobName atlas_ORCA_LIM : pour océan et glace de mer atlas_LMDZ : pour atmosphère atlas_ORCHIDEE : pour surfaces continentales Les atlas sont basés sur ferret et sur fast : http://dods.ipsl.jussieu.fr/fast/ modipsl libIGCM create_ts create_se atlas_... monitoring
Accès aux résultats de simulations Mise en ligne du monitoring et des atlas sur les serveurs dods : Dods IDRIS : http://dods.extra.cea.fr Dods CCRT : http://dods.idris.fr/ Accès aux simulations de référence http://mc2.ipsl.jussieu.fr/ensembles.html
Monitoring
Arborescence sur serveur fichiers IPSLCM4_v2 rhodes : cd $HOMEGAYA/IGCM_OUT mercure : cd $DMFDIR/IGCM_OUT JobName ATM OCE ICE SRF CPL MONITORING ATLAS Output Analyse Restart Debug SE_1860_1969 TS_DA TS_MO SE ATM OCE_[TUVW] ICE SRF DA [HF] MO [INS]
Arborescence sur serveur fichiers |-- ICE | |-- Analyse | | |-- SE | | `-- TS_MO | |-- Debug | |-- Output | | `-- MO | `-- Restart |-- MONITORING |-- OCE | | |-- DA |-- Out `-- SRF |-- Analyse | |-- SE | `-- TS_MO |-- Debug |-- Output | `-- MO `-- Restart rhodes : cd $HOMEGAYA mercure : cd $DMFDIR IGCM_OUT/ `-- IPSLCM4_v2 `-- JobName |-- ATLAS |-- ATM | |-- Analyse | | |-- SE | | |-- TS_DA | | |-- TS_HF | | `-- TS_MO | |-- Debug | |-- Output | | |-- DA | | `-- HF | | `-- MO | `-- Restart |-- CPL | | `-- SE |-- Exe
Nomenclature des noms des fichiers de sortie Output, Analyse, Debug, … ${JobName}_${PeriodDateBegin}_${PeriodDateEnd}_XX_NomFichier Output/DA et Analyse/TS_DA: XX 1D Output/MO et Analyse/TS_MO XX 1M Analyse/SE : ${JobName}_SE_${PeriodDateBegin}_${PeriodDateEnd}_NomFichier Restart : ${JobName}_${PeriodDateEnd}_NomFichier
Job_JobName : DRYRUN Tests de l’expérience Pour tester une nouvelle expérience et ne lancer que certaines étapes de la simulation, il est possible par la variable DRYRUN de diminuer les actions lancées. Elle est positionnée à 0 par défaut. DRYRUN=3 est très pratique pour relancer les post-traitements
Annexe 1 : Accès au modèle IPSLCM4_v2 Accès direct aux fichiers sur les serveurs SVN et CVS MODIPSL brodie ou mercure : svn co http://forge.ipsl.jussieu.fr/igcmg/svn/modipsl/trunk modipsl IOIPSL brodie ou mercure : svn co http://forge.ipsl.jussieu.fr/igcmg/svn/IOIPSL/trunk/src src Création du répertoire ./.svn CPL brodie ou mercure : cvs –d:pserver:anonymous@cvs.ipsl.jussieu.fr:/home/ioipsl/CVSROOT login (passwd=xxxxxxxxx) OPA brodie ou mercure : cvs –d :pserver:opa@cvs.ipsl.jussieu.fr:/home/opalod/CVSROOT login (passwd=xxxxxxx) LMDZ brodie ou mercure : cvs –d :pserver:lmdzbrowse@piaf.lmd.jussieu.fr:/users/lmdz/cvsroot login (passwd=xxxxxxxxx) brodie ou mercure : cvs –d :pserver:sechiba@cvs.ipsl.jussieu.fr:/home/ssipsl/CVSREP login (passwd=xxxxxxxx) ORCHIDEE Création du fichier $HOME/.cvspass
Annexe 2 :Caractéristiques d’un fichier NetCDF Auto descriptif Portable à Accès direct Modifiable Partageable Le fichier contient l’information sur les variables contenues Fichiers accessibles par des machines ayant des modes différents de stockage des entiers, des caractères et des nombres à virgules flottantes Possibilité d’accéder à une donnée sans avoir à parcourir l’ensemble des données qui la précède Possibilité d’ajouter des données dans un fichier Possibilité d’avoir simultanément un accès en écriture et plusieurs accès en lecture
NetCDF, nco, cdo Convention CF
Structure du fichier NetCDF – En-tête Informations sur les dimensions Informations sur les attributs (voir conventions CF) Informations sur les attributs des variables ( sans leurs valeurs) dimensions: lon = 72 ; lat = 46 ; presnivs = 19 ; time_counter = UNLIMITED ; // (1 currently) // global attributes: :Conventions = "GDT 1.3" ; :file_name = "histmth.nc" ; :production = "An IPSL model" ; :TimeStamp = "2003-MAR-05 10:37:38 GMT+0100" ; :associate_file = "dyn_hist_ave.nc dynzon.nc histhf.nc histmth.nc sechiba_out.nc cpl_atm_tauflx.nc cpl_atm_sst.nc" ; variables: float lon(lon) ; lon:units = "degrees_east" ; lon:valid_min = -180.f ; lon:valid_max = 175.f ; lon:long_name = "Longitude" ; lon:nav_model = "Default grid" ; float lat(lat) ; lat:units = "degrees_north" ; lat:valid_min = -90.f ; lat:valid_max = 90.f ; lat:long_name = "Latitude" ; lat:nav_model = "Default grid" ; float presnivs(presnivs) ; presnivs:units = "mb" ; presnivs:positive = "unknown" ; presnivs:valid_min = 388.2433f ; presnivs:valid_max = 100426.5f ; presnivs:title = "presnivs" ; presnivs:long_name = "Vertical levels" ; float time_counter(time_counter) ; time_counter:units = "seconds since 1979-01-01 00:00:00" ; time_counter:calendar = "360d" ; time_counter:title = "Time" ; time_counter:long_name = "Time axis" ; time_counter:time_origin = " 1979-JAN-01 00:00:00" ; float tsol(time_counter, lat, lon) ; tsol:units = "K" ; tsol:missing_value = 1.e+20f ; tsol:valid_min = 1.e+20f ; tsol:valid_max = -1.e+20f ; tsol:long_name = "Surface Temperature" ; tsol:short_name = "tsol" ; tsol:online_operation = "ave(X)" ; tsol:axis = "TYX" ; tsol:interval_operation = 1800.f ; tsol:interval_write = 2592000.f ; tsol:associate = "time_counter nav_lat nav_lon" ; ncdump -h COURS_1m_19790101_19790130_histmth.nc
Structure du fichier NetCDF - Données données de taille fixe données de taille variable data: tsol = 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 246.818, 248.3489, 248.3532, 248.3445, 248.003, 247.5628, 247.1862, 246.7824, …
Utilitaires nco Exemple : ncdump : génère sur la sortie standard une représentation textuelle CDL d’un ensemble de meta-données netCDF avec la possibilité d’exclure tout ou partie de données variables. La sortie de ncdump doit pouvoir servir d’entrée à ncgen. ncgen : génère un fichier netCDF ou un programme C ou FORTRAN permettant de créer un fichier netCDF ncdump et ncgen peuvent donc être utilisées comme fonctions inverses pour passer d’une représentation textuelle à une représentation binaire et inversement. Exemple : rhodes ou mercure : ncdump –p15 –b f COURS_1m_19790101_19790130_histmth.nc > COURS_1m_19790101_19790130.cdl rhodes ou mercure : emacs COURS_1m_19790101_19790130.cdl & rhodes ou mercure : ncgen –o COURS_1m_19790101_19790130.nc COURS_1m_19790101_19790130.cdl
Utilitaires nco Série temporelle de la variable TSOL sur 10 ans ncdiff soustrait les variables d’un fichier file_1 à celles d’un fichier file_2 correspondantes et stocke les résultats dans un fichier file_3. ncrcat concatène des variables enregistrées parmi un nombre arbitraire de fichiers d'entrée. La dimension du fichier netCDF de sortie est par défaut la somme des dimensions des fichiers netCDF d’entrée. Les fichiers d'entrée peuvent avoir des tailles différentes mais tous doivent avoir des dimensions spécifiées. L’enregistrement des coordonnées doit avoir la même syntaxe. Exemple : ncrcat –v tsol COURS_1m_19790[1-9]01_19790[1- 9]30_histmth.nc COURS_1m_19791[0-2]01_19791[0-2]30_histmth.nc COURS_1m_19880[1-9]01_19880[1-9]30_histmth.nc COURS_1m_19881[0-2]01_19881[0-2]30_histmth.nc COURS_1m_19790101_19880130_TSOL.nc Série temporelle de la variable TSOL sur 10 ans
Utilitaires nco ncra calcule la moyenne sur un nombre variable de fichiers d’entrée. C’est une moyenne temporelle sur la grille spatiale. Ce qui donne 1 seule valeur dans les fichiers de sorties. ncra ne calcule pas de moyenne pondérée. ncea calcule la moyenne sur un nombre variable de fichiers d’entrée. C’est une moyenne spatiale sur la grille temporelle. Ce qui donne autant de valeurs moyennes que de pas de temps. ncea fait la moyenne « fichier à fichier » sur chaque point de l’axe des temps Nombre de valeurs de moyenne égale au nombre de sorties par fichiers t ncra fait la moyenne « fichier à fichier » sur l’ensemble des points de l’axe des temps 1 unique valeur de moyenne t
Utilitaires nco Série temporelle de la variable SOSSTSST sur 10 ans ncks permet d’extraire une série de données qu’il écrit sur la sortie standard sous forme ASCII (comme ncdump) et qu’il écrit également sous forme d’un fichier binaire netCDF Exemple : ncks -v sosstsst COURS_1m_19790101_19790130_grid_T.nc COURS_1m_19790101_19790130_SOSSTSST.nc … ncks -v sosstsst COURS_1m_19881201_19881230_grid_T.nc COURS_1m_19881201_19881230_SOSSTSST.nc ncrcat –v sosstsst COURS_1m_19790[1-9]01_19790[1-9]30_grid_T.nc COURS_1m_19791[0-2]01_19791[0-2]30_grid_T.nc COURS_1m_19880[19]01_19880[1-9]30_grid_T.nc COURS_1m_19881[0-2]01_19881[02]30_grid_T.nc COURS_1m_19790101_19880130_grid_T.nc Série temporelle de la variable SOSSTSST sur 10 ans
Utilitaires cdo (Climate Data Operator)
Utilitaires cdo (Climate Data Operator)
Utilitaires cdo (Climate Data Operator) File information (info, sinfo, diff, diffv, ...) File operations (copy, cat, merge, split, ...) Selection (selcode, selvar, sellevel, seltimestep, ...) Missing values (setctomiss, setmisstoc, setrtomiss) Arithmetic (add, sub, mul, div, ...) Mathematical functions (sqrt, exp, log, sin, cos, ...) Comparision (eq, ne, le, lt, ge, gt, ...) Conditions (ifthen, ifnotthen, ifthenc, ifnotthenc) Field statistic (fldsum, fldavg, fldstd, fldmin, fldmax, ...) Vertical statistic (vertsum, vertavg, vertstd, vertmin, ...) Time range statistic (timavg, yearavg, monavg, dayavg, ...) Ensemble statistic (enssum, ensavg, ensstd, ensmin, ...) Regression (detrend) Field interpolation (remapbil, remapcon, remapdis, ...) Vertical interpolation (ml2pl, ml2hl) Time interpolation (inttime, intyear)
L’ensemble du groupe ESCI : équipe système climat IPSL Contributions L’ensemble du groupe ESCI : équipe système climat IPSL esci@ipsl.jussieu.fr