Version 2.2 Septembre 2008 ESCI
Accès au modèle système terre et Analyse des résultats IPSL - Pôle de modélisation du climat Le modèle système terre : de IPSLCM4_v1 vers le ESM Principes retenus Fonctionnement simplifié de MODIPSL (SVN) Les nouveaux scripts basés sur libIGCM Les fichiers de résultats Le parallélisme Les simulations déjà réalisées NetCDF et les utilitaires nco, cdo
Les laboratoires et les tutelles
IPSL 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) 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 Projets fédératifs : –Pôle de modélisation du climat - 80 personnes - Pascale Braconnot
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érences –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 NEMO/OPA NEMO/TOP/PISCES INCA
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 : J.-L. Dufresne P. Braconnot, L. Fairhead, M.-A. Foujols P. Friedlingstein F. Hourdin, C. Lévy, O. Marti 20e-21eme J.L Dufresne, P. Friedlingstein Tropiques J.P. Duvel, S. Janicot Expertise compl é mentaire F. Lott, L. Li, S. Bekki, G. Krinner,Th. Fichefet G. Ramstein
Contraintes liées aux différentes activités scientifiques : IPSL_CM4(IPCC) Tests sensibilité -KE/Ti -Flux eau -Paleo -??? IPSL_CM4+(IPCC) IPSL_CM4(loop) IPSL_CM4(chimie-aérosols) Utilisation des sols Paléo végétation Cycle du carbone (Pisces, flux de carbone, transport carbone) INCA Passage LMDZ4 IPSL_CM4(//) Passage Versions // des modèles Evolution des composantes Haute résolution Nouveau modèle Nouvel exercice GIEC 2009 IPSLCM4_v1 IPSLCM4_v2 IPSLCM5 IPSL_ESM_V1
Historique des versions du modèle couplé IPSLCM4_v1 : figé en juillet 2004 pour réalisations IPCC IPSLCM4_v1_OASIS3 - version recommandée jusqu’en juillet 2007 : –Intègre LMDZ4 tag IPCC –Résolutions 144x96x19 et 144X142x19 ajoutées pour essais –Utilisation de OASIS3 (fichiers en NetCDF, compilation type PRISM) –Utilisation de IOIPSL 2, version Fortran 90 –Peut tourner avec nouveaux scripts communs (libIGCM) IPSLCM4_LOOP - référence LOOP : –Ajout cycle du carbone : stomate (ORCHIDEE), PISCES (OPA) –Intègre LMDZ4 IPSLCM4_v2 - version recommandée depuis juillet –Nouveaux scripts (libIGCM) –Modipsl, IOIPSL et CONFIG gérés sous svn/forge –Trac pour wiki et suivi tickets –Dernières versions LMDZ et Orchidee (inclus parallélisme) IPSL_ESM_V1, IPSLCM5 : en cours Principes similaires, utilisables pour toute configuration NEW
Land surface, vegetation ORCHIDEE CO 2 Evaporation, rivers... Circulation, precip... SST, ice extent.. Vegetation, soil carbon Biogeochemistry Chemistry DMS Aérosols Atmosphere LMDZ Ocean, sea-ice ORCA-LIM CH4, COVs, Aérosols CH4, COVs, Aérosols Sea salt Iron NO x, O 3 Energy, water cycle Carbon cycle Chemistry, aerosols Human activities CO2 emissions Polluant emissions Déforestation, land use
Deux centres de calcul privilégiés: IDRIS/CNRS et CCRT/CEA IDRIS/CNRSCCRT/CEA Calculateurbrodie.idris.fr NEC SX-8, été noeuds 80 processeurs mercure.ccc.cea.fr NEC SX-8R, nov noeuds 64 processeurs Connexionbrodie.idris.fr (filtrage par adresse) idefix1.saclay.cea.fr puis mercure.ccc.cea.fr Compilationbrodie (tx7)mercure (tx7) Exécutionbrodie[01-10]mercure[10-17] Fichiersgayafer Post-traitementrhodesmercure (tx7) Serveur DODSdods.idris.frdods.extra.cea.fr/data/
Et sur mon poste de travail? CalculateursServeur local, PC/Linux, Mac OSX,... CVS : accès aux sourcesTout système Unix-like SVN : accès aux sourcesA installer en plus du système de base. Voir et packages Compilateur Fortran 90 avec jeu d’options testées Compilateur sur tout système orienté calcul Compilateur conseillé : g95 Compilateur gnu : gfortran PGI : pgf90 NAG : f95 Intel : ifort Bibliothèque d’échanges de messages pour coupleur Tout système orienté calcul parallèle : MPI Bibliothèque NetCDF 3.6.2Tout système orienté calcul ou soi-même Interface Fortran 90 NetCDFÀ compiler avec le même compilateur Espace fichiers de stockagen Gigaoctets Utilitaires nco, cdoTout système orienté calcul climat Python, FerretTout système orienté calcul Assistance-SupportGroupe ESCI Retour d’expérienceApprécié
Historique des versions de référence du modèle couplé IPSL depuis IPSLCM4_v1 IPSLCM4_v1 : LMDZ-ORCHIDEE-OASIS-ORCA-LIM-IOIPSL Cette version n’évolue plus. Base des réalisations pour IPCC IPSLCM4_LOOP : LMDZ-ORCHIDEE (stomate)- OASIS-ORCA-LIM-PISCES-IOIPSL2 IPSLCM4_v1_OASIS3 : LMDZ4-ORCHIDEE-OASIS3-ORCA-LIM-IOIPSL2 Cette version a évolué pour inclure LMDZ4, OASIS3, une troisième résolution pour LMDZ et a été portée sur brodie (SX-8 de l’IDRIS) et mercure (SX-8R du CCRT). Elle n’évolue plus. IPSLCM4_v2 : version en cours de validation finale, inclut toutes les évolutions récentes. Premier couplé avec LMDZ/ORCHIDEE parallèle IPSL_ESM_V1 : première version du Earth System Model incluant Chimie: LMDZ-ORCHIDEE-OASIS-ORCA-LIM-IOIPSL-INCA IPSLCM5 : En cours. Premier couplé avec NEMO. NEW
Version de référence Chaque composante est validée en forcé par les personnes ad hoc – tag fixé – atlas sur les serveurs dods IDRIS et CCRT. Une expérience type est disponible (site – IPSLCM4_v1 : 2L24 (préindustrielle - base simulation IPCC), 2L20 (actuel) – IPSLCM4_v2 : CDT5v2CT (144x142) Poursuite de la démarche itérative – Nouvelle étude – Suivi des nouveautés Orchidee 1_9_2 LMDZ4 avec parallélisme LMDZ4_V3_4 Nouveaux scripts (libIGCM_v1) Configurations cohérentes en plus grand nombre – LMDZ4INCA_v2, ORCA2LIM_v2, LMDZ4OR_v2 – IPSL_ESM_V1, IPSLCM5
A. Caubel, MA Foujols et groupe CPLIPSL Compilation et fichiers d’entrée IPSLCM4_v2 key_orca_r2 key_ice_lln … 72x45x19, 96x71x19, 144x96x19, 144x143x19 Information A. Caubel et CERFACS CPL J. Bellierv2_1_3IOIPSL Équipe système OPA ipsl_cm4_v2 ORCA_LIM M. Manciporchidee_1_9_2ORCHIDEE L. Fairhead LMDZ4_V3_4 LMDZ4 Responsables ESCI TagComposante IPSLCM4_v2_2 OASIS 3 Head Différentes composantes du modèle couplé IPSLCM4_v2 S Denvil, P Brockmann, M Mancip Nouveaux scripts exécution et post-traitements libIGCM libIGCM_v1 NEW SVN
Documentations Wiki Pôle : – 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. – Compte commun : climato/climato – Machine commune de gestion des projets - Olivier Thauvin (SA) Wiki IPSL (intranet) : Wiki IPSLCM4_v2 : Documentation libIGCM (inclut exemple IPSLCM4_v2) :
Documentation forge.ipsl.jussieu.fr/igcmg WIKISources SVN Tickets
Principes (1/7) ATMOSPHERE LMDZ
ORCHIDEE_OLORCHIDEELMDZ Principes (2/7) PROCESSUS de SURFACE « DRIVER OFFLINE »
Principes (3/7) ORCHIDEE_OLORCHIDEELMDZ LMDZOR Expérience type : 1 an ORCHIDEE_OL Expérience type : 1 an sur le site Cabauw
LMDZ OPALIMTRC Principes (4/7) OCEAN GLACE TRACEUR ORCHIDEE
LMDZOPALIMTRC Principes (5/7) ORCA2_LIM Expérience type : 1 an ORCA2_LIM_TRC Expérience type : 1 an
ORCHIDEELMDZOPALIMOASIS Principes (6/7) COUPLEUR CERFACS IPSLCM4_v2 Expérience type : 10 ans Etats initiaux
ORCHIDEE_OLORCHIDEELMDZOPALIMTRCOASIS Principes (7/7) IOIPSL/ NETCDF fichiers
Accès au modèle IPSLCM4_v2 (1/9) 1. Accès à modipsl (SVN) brodie ou mercure : mkdir IPSLCM4_v2 brodie ou mercure : cd IPSLCM4_v2 brodie ou mercure : svn co modipsl IPSLCM4_v2 modipsl modeleslibdoc.svnbin tmp util config
modipsl IPSLCM4_v2 modelesconfigdoc.svn bin tmputil Installation et configuration des Makefiles Installation et configuration des scripts de lancement Définition pour chaque configuration de leurs composantes et de leurs tags Extraction des modèles validés disponibles mod.def model ins_make ins_job Accès au modèle IPSLCM4_v2 (2/9) 1. Accès à modipsl (SVN) brodie ou mercure : cd modipsl/util lib
1 #- $Id$ 2 # #-This file is the definition file of the script "model". 4 # #- Each model is defined by 6 #- (prefix #-H-) model informations, 7 #- (prefix #-M-) the 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 # #- Repository informations 20 #- 21 #-S- 1 cvs 22 #-S- 2 cvs 23 #-S- 3 cvs 24 #-S- 4 cvs 25 #-S- 5 cvs 26 #-S- 6 cvs 27 #-S- 7 svn --username nemo_user 28 #-S- 8 svn 29 # Accès au modèle IPSLCM4_v2 (3/9) - fichier mod.def -
85#- 87 #-H- IPSLCM4_v2 IPSLCM4_v2 configuration with parallel LMDZ4 and ORCHIDEE 88 #-H- IPSLCM4_v2 official release : october #-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 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 ? #-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 (3/9 - suite) - fichier mod.def -
1. Accès à MODIPSL (SVN) svn_ano ; cd modipsl/util 2. Accès à IPSLCM4_v2 brodie ou mercure :./ model IPSLCM4_v2 (la 1 ère fois, voir Annexe 1 pour login et mots de passe).svn Accès au modèle IPSLCM4_v2 (4/9) util modipsl IPSLCM4_v2 modeleslibIGCMdoc bin tmp UTIL OPA LMDZ4 ORCHIDEECVSIOIPSLCPL config IPSLCM4_v2 prismlib
1. Accès à MODIPSL (SVN) svn_ano ; cd modipsl/util 2. Accès à IPSLCM4_v2./model IPSLCM4_v2 3. Installation des Makefiles brodie ou mercure :./ins_make Accès au modèle IPSLCM4_v2 (5/9) util modipsl IPSLCM4_v2 prismmodeleslibdoc bin tmp.svn IPSLCM4_v2 AA_make.gdef Makefile AA_make.ldef AA_make configlibIGCM
1. Accès à MODIPSL (SVN) svn_ano ; cd modipsl/util 2. Accès à IPSLCM4_v2./model IPSLCM4_v2 3. Installation des Makefiles./ins_make 4. Installation de l’expérience type brodie ou mercure : # Editer../config/IPSLCM4_v2/EXP00/config.card # Modifier JobName, JobNumProcTot, JobClass(Brodie)./ins_job util modipsl IPSLCM4_v2 modeles lib doc bin tmp.svn IPSLCM4_v2 Accès au modèle IPSLCM4_v2 (6/9) EXP00 Job_JobName config NEW libIGCM AA_job config.card
libIGCM modipsl IPSLCM4_v2 modeles Accès au modèle IPSLCM4_v2 (7/9) AA_atlas_LMDZ AA_atlas_ORCHIDEE AA_atlas_ORCA_LIM AA_create_ts AA_create_se atlas_LMDZ.job atlas_ORCHIDEE.job atlas_ORCA_LIM.job create_ts.job create_se.job 1. Accès à MODIPSL svn_ano ; cd modipsl/util 2. Accès à IPSLCM4_v2./model IPSLCM4_v2 3. Installation des Makefiles./ins_make vi../config/IPSLCM4_v2/EXP00/config.card 4. Installation de l’expérience type (partie post-traitement) brodie ou mercure :./ins_job config NEW
1. Accès à MODIPSL (SVN) svn_ano ; cd modipsl/util 2. Acces à IPSLCM4_v2./model IPSLCM4_v2 3. Installation des Makefiles./ins_make 4. Installation de l’expérience type vi../config/IPSLCM4_v2/EXP00/config.card./ins_job 5. Compilation brodie ou mercure : cd../config/IPSLCM4_v2 brodie ou mercure : gmake util modipsl IPSLCM4_v2 configlibdoc bin tmp.svn IPSLCM4_v2 Accès au modèle IPSLCM4_v2 (8/9) create_etat0_limit.e gcm.e oasis opa NEW Makefile
1. Accès à MODIPSL (SVN) svn_ano ; cd modipsl/util 2. Acces à IPSLCM4_v2./model IPSLCM4_v2 3. Installation des Makefiles./ins_make 4. Installation de l’expérience type vi../config/IPSLCM4_v2/EXP00/config.card./ins_job 5. Compilation cd../config/IPSLCM4_v2 gmake # attention brodie 6. Soumission du Job de lancement brodie ou mercure : cd EXP00 brodie ou mercure : qsub Job_JobName Accès au modèle IPSLCM4_v2 (9/9) modipsl IPSLCM4_v2 config IPSLCM4_v2 dynami.param gcm.def geogram.para m inice.param namcouple namelist offline.def orchidee.def output.param physiq.def run.def run.param.li thermo.param EXP00 Job_JobName COMPPARAM 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 1. Accès à MODIPSL (SVN) svn co modipsl 2. Acces à IPSLCM4_v2 cd modipsl/util ;./model IPSLCM4_v2 3. Installation des Makefiles./ins_make 4. Installation de l’expérience type (et post-traitements) Modifier «JobName» dans../config/IPSLCM4_v2/EXP00/config.card./ins_job 5. Compilation cd../config/IPSLCM4_v2 ; gmake 6. Soumission du Job de lancement cd EXP00 qsub Job_JobName
Nouveaux scripts : libIGCM Infrastructure commune cohérente de script : – libIGCM : libIGCM/AA_job : un script commun à toutes les configurations 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 – 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 – config.card : une fiche descriptive d’une configuration pour une simulation donnée – run.card (run.card.init): Une fiche d’information sur la simulation en cours d’exécution NEW
Script de référence : libIGCM/AA_job
Schéma synoptique de la libIGCM
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= DateEnd= #============================ 23 #-- 1Y, 1M, 5D, 1D 24 PeriodLength=1M 25 #============================ config.card : UserChoices
25 #============================ 26 #-- PBS Class (required on brodie mono/multi) 27 #JobClass=mono 28 JobClass=multi 29 #============================ 30 #-- Total Number of Processors (minimum is 2 for a coupled configuration) 31 #JobNumProcTot=2 32 JobNumProcTot=4 config.card : Batch
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)
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= #D- Define restart simulation name (=> JOB_OS) 61 RestartJobName=CD1 62 #D- Path Server Group Login (=> PSGL) 63 RestartPath=/u/rech/ces/rces452/IGCM_OUT/IPSLCM4_v1_OASIS3 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 : Restarts 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
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= #D- Define restart simulation name (=> JOB_OS) 61 RestartJobName=CD1 62 #D- Path Server Group Login (=> PSGL) 63 RestartPath=/u/rech/ces/rces452/IGCM_OUT/IPSLCM4_v1_OASIS3 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 : Post
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= # Define restart simulation name 92 RestartJobName=2L18 93 RestartPath=${ARCHIVE}/p86denv/SORTIES_CPL_IPSL 94 # Old component name for restart (if empty, use new name) 95 OldName= #======================================================================== 98 #D-- OCE - 99 [OCE] 100 WriteFrequency="1M 1D" 101 Restart= n 102 ##-- Last day of the experience used as restart 103 RestartDate= # Define restart simulation name 105 RestartJobName=2L RestartPath=${ARCHIVE}/p86denv/SORTIES_CPL_IPSL 107 # Old component name for restart (if empty, use new name) 108 OldName= config.card : une composante type ATM 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
# contient la date du run en cours ou du run en attente # last date of loop ==.suivi [Configuration] #last PREFIX OldPrefix= HVMPSTOI_ #Compute date of loop ==.suivi PeriodDateBegin= PeriodDateEnd= 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= run.card : le fichier de suivi
[Log] # Executable Size LastExeSize= ( 0, ) # CumulPeriod | PeriodDateBegin | PeriodDateEnd | RunDateBegin | RunDateEnd | RealCpuTime | UserCpuTime | SysCpuTime | ExeDate 1 | | | _12:00:03 | _13:02:12 | 3049 | 2895 | 135 | ATM_Aug_2_15:35-CPL_Aug_1_16:28 2 | | | _12:00:03 | _13:02:12 | 3065 | 2959 | 125 | ATM_Aug_2_15:35-CPL_Aug_1_16:28 run.card : le fichier de suivi
Job_JobName 1. Définition de la mémoire limite #PBS -l memsz_job=4.0gb limite mémoire 2. Définition du nombre de processeurs #PBS -v PBS_NUM_PROC_TOT=::JobNumProcTot:: provient de config.card 3. 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 Initialisation des paramètres de batch (exemple PBS) NEW
Job_JobName : PBS tableau des classes* IDRIS brodie : news class ^ -l cputim_job (limite en temps CPU par job) | 10:00: (10H) | | | | | t2 | t2L | | | | | | | TMPDIR <= 30Gb | TMPDIR <= 90Gb | t2XL | 2:00: | (2H) | | | | | t1 | t1L | TMPDIR <= 90Gb | | | | | | TMPDIR <= 30Gb | TMPDIR <= 30Gb | | 0:30: (1/2H) | | | | t0 | t0XL | | | | | TMPDIR <= 30Gb | TMPDIR <= 90Gb | > 6Gb 10Gb 20Gb -l memsz_job (limite memoire par job) * Susceptible de changement permanent
Job_JobName : PBS tableau des classes* IDRIS brodie : news class (suite) ======================================================================= Classes multiprocesseurs (<=8) au sein d'un noeud (MPI ou OpenMP) ======================================================================== Parametres NQSII a specifier : #PBS -q multi #PBS -l cpunum_job= # Nombre de processeurs (1 <= Nproc <= 8) ^ -l cputim_job (limite en temps CPU par job) | 12:00: (12H) | | | p2t2 | | | | 1 <= Nproc <= 2 | | TMPDIR <= 45Gb | 1:00: (1H) | | | p2t1 | | | | 1 <= Nproc <= 2 | | TMPDIR <= 45Gb | > -l memsz_job (limite memoire par job) 15Gb * Susceptible de changement permanent NEW
Job_JobName : PBS tableau des classes* IDRIS brodie : news class (suite) ^ -l cputim_job (limite en temps CPU par job) | 24:00: (24H) | | | p4t2 | | | | 3 <= Nproc <= 4 | | TMPDIR <= 90Gb | 1:00: | (1H) | | | | p4t1 | | | | | | 3 <= Nproc <= 4 | | TMPDIR <= 45Gb | | > -l memsz_job 15Gb 30Gb ^ -l cputim_job 24:00: (24H) | | | p6t2 | | | | 5 <= Nproc <= 6 | | TMPDIR <= 90Gb | 1:00: | (1H) | | | p6t1 | | | | 5 <= Nproc <= 6 | | TMPDIR <= 90Gb | > -l memsz_job 30Gb * Susceptible de changement permanent NEW ^ -l cputim_job | 48:00: (48H) | | p8t2 | | 7 <= Nproc <= 8 | TMPDIR <= 300Gb 2:00: (2H) | | p8t1 | | 7 <= Nproc <= 8 | TMPDIR <= 100Gb > -l memsz_job 60Gb
Job_JobName : PBS tableau des classes* CCRT * Susceptible de changement permanent mercure : class QUEUE ACT TYPE CPU NODE TIME MEM LIM/USER HOSTS test Oui Urgent 1 1 1h00 32G 8 2 mercure10,mercure11,…,mercure17 prod Oui Normal h00 20G - -(20) mercure10,mercure11,…,mercure17 bigmem Oui Normal h00 64G - - mercure10,mercure11 bigtime Oui Normal h00 32G 3 -(1) mercure16,mercure17 testpara Oui Urgent m00 52G 3 1 mercure10,mercure11,…,mercure17 parallel Oui Normal h00 32G - - mercure10,mercure11,…,mercure17 para8 Oui Normal h00 52G - - mercure10,mercure11,…,mercure17 scalaire Oui h00 8G 8 3 mercure NEW
1000 à 1700 s 1200 à 1600 s Temps CPU 3.7 Gb (4.1 Gb 1 er mois) 1000 à 1700 s Mercure : 4 procs 2.5 Gb (3.2 Gb 1 er mois) 1100 à 1300 s Mercure : 2 procs 3.7 Gb (4.1 Gb 1 er mois) 520 à 700 s Brodie : 4 procs 2.5 Gb (3.2 Gb 1 er mois) 1200 à 1800 s Brodie : 2 procs MémoireTemps écouléPlateforme 1600 à 1700 s 450 à 700 s Job_JobName : PBS Caractéristiques pour une expérience de 1 mois ORCA2xLMD9671 Classe du job: brodie t1, p2t2, p4t2 mercure prod, parallel NEW
Job_JobName : PBS_NUM_PROC_TOT Pour gagner en temps de restitution, il est possible de lancer LMDZ/ORCHIDEE sur plusieurs processeurs en parallèle. Cela est efficace sur les NEC tant que l’on garde des domaines de taille suffisante pour garder la vectorisation efficace. A la résolution standard (96x71), il est recommandé d’utiliser 4 processeurs en tout : 3 processeurs pour LMDZ/ORCHIDEE et 1 processeur qu’oasis et OPA se partagent. A préciser par le paramètre JobNumProcTot de config.card avant le lancement de la commande ins_job A changer dans les entêtes batch de Job_JobName Attention! Modifier aussi le paramètre PBS de la mémoire en conséquence. #PBS -l memsz_job=5.0gb Lancement de LMDZ/ORCHIDEE sur plusieurs processeurs
Job_JobName : PeriodNb 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. 1. 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 Lancement de plusieurs périodes par job
Job_JobName : DRYRUN 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. Tests de l’expérience
Les utilitaires de post-traitement CCRT, IDRIS modipsl IPSLCM4_v2 libIGCM create_ts create_se atlas_... create_ts.job : create_se.job : Retour des jobs 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 :
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 (1/6)
Flux des données (2/6) [UserChoices] OPA_NPDT_JOURS=15 [InitialStateFiles] List=() [BoundaryFiles] List=() 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) [Post_1M_grid_T] Patches = () GatherWithInternal = (nav_lon, nav_lat, deptht, time_counter) MonitoringVars = (sosstsst, sossheig, sohefldo, sowaflup, sosaline, soicecov) TimeSeriesVars = (iowaflup, sohtc300, sohefldo, soicecov, somxl010, sorunoff, sosaline, sossheig, sosstsst, sowaflep, sowaflcd, sowaflup) [Post_1M_diaznl] Patches = () GatherWithInternal = (lon, lat, deptht, time_counter) MonitoringVars = (sozonfha, sozonfhd, sozonfhe) TimeSeriesVars = (zotempeg, zotempea, zosaling, zosalina, sozonfha, sozanfha, sozonfhd, sozanfhd, sozonfhe, sozanfhe, sozonfhg, sozanfhg, sozonfho, sozanfho, sozonfsd, sozanfsd, sozonfsg, sozanfsg, sozonfso, sozanfso)
OPA + LIM Flux des données (4/6) 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_... À analyser avec les outils de post-traitements restart.nc rest_ice.om orcaini.nc rest.om …_grid_ … …_diaznl_… …icemod… meshmask.nc ocean.output solver.stat time.step ice_evolu ice_mouchard
OASIS3 flxat.nc sstoc.nc flxat.nc sstoc.nc cf_name_table.txt namcouple _ORCA2xLMD9671 _ORCA2xLMD7245 … grids.nc masks.nc areas.nc wa2o.flx wa2o.run wa2o.cal wo2a.tsg 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 Flux des données (5/6) OASIS À analyser avec les outils de post-traitements
LMDZ + ORCHIDEE restart.nc restartphy.nc sechiba_rest.nc start.nc startphy.nc start_sech.nc physiq.def gcm.def run.def orchidee.def Flux des données (6/6) 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.cd f ECDYN.nc ECPHY.nc Relief.nc Rugos.nc landiceref.nc o2a.nc lai2D.nc create_etat0_limit.e À analyser avec les outils de post-traitements 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
Nomenclature des noms des fichiers de sortie Output, Analyse, Debug, … ${JobName}_${PeriodDateBegin}_${PeriodDateEnd}_XX_NomFichier Output/DA et Analyse/TS_DA: XX1D Output/MO et Analyse/TS_MO XX 1M Analyse/SE : ${JobName}_SE_${PeriodDateBegin}_${PeriodDateEnd}_NomFichier Restart : ${JobName}_${PeriodDateEnd}_NomFichier
Arborescence sur serveur fichiers TS_DA TS_MO IPSLCM4_v2 OCE SRF CPL Exe JobName ATM ATLAS ICE Restart Analyse Output [INS]DA[HF] MO Debug SE_1860_1969 rhodes : cd $HOMEGAYA/IGCM_OUT mercure : cd $DMFDIR/IGCM_OUT Out OCE_[TUVW]SRF ATMICE SE
Arborescence sur serveur fichiers 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 | |-- Analyse | | `-- SE | |-- Debug | |-- Output | | `-- MO | `-- Restart |-- Exe |-- ICE | |-- Analyse | | |-- SE | | `-- TS_MO | |-- Debug | |-- Output | | `-- MO | `-- Restart |-- MONITORING |-- OCE | |-- Analyse | | |-- SE | | `-- TS_MO | |-- Debug | |-- Output | | |-- DA | | `-- MO | `-- Restart |-- Out `-- SRF |-- Analyse | |-- SE | `-- TS_MO |-- Debug |-- Output | `-- MO `-- Restart
mc2.ipsl.jussieu.fr
mc2.ipsl.jussieu.fr/simules.html
mc2.ipsl.jussieu.fr/testing.php?exp=VV20 Time Series UtilitaireRépertoire gaya LancementDods IDRIS : dods.ipsl.jussieu.fr Dods IPSL : dods.ipsl.jussieu.fr/ mc2ipsl/calculo/ Nouveaux scripts 1xYearly 1 fichier par variable create_ts_yeAtm/Analyse /TS_YE À la mainOK_DODS_MO2ST=n Atm/TS_YE Synchro IPSL (SD)Pas encore 1xMonthly idem create_tsAtm/Analyse /TS OK_POST_MO2ST=nOK_DODS_MO2ST=n Atm/TS Synchro IPSL (SD)Oui Atm/TS_MO 1xDaily idem create_tsAtm/Analyse /DA2TS A la mainOK_DODS_MO2ST=n Atm/DA Synchro IPSL (SD)Oui Atm/TS_DA 4xDaily idem create_tsAtm/Analyse /HF2TS A la mainOK_DODS_MO2ST=n Atm/HF Synchro IPSL (SD)Oui Atm/TS_HF
mc2.ipsl.jussieu.fr/testing.php?exp=VV20 Seasonnal cycle UtilRépertoire gayaLancementDods IDRIS : dods.ipsl.jussieu.fr Dods IPSL : dods.ipsl.jussieu.fr/ mc2ipsl/calculo/ Nouveaux scripts MO2SE base atlas, 1 fichier, 12 mois, moyenne 10 ans mo2seAtm/Analyse/MO2SEOK_POST_S E=y Toujours Atm/MO2SE Synchro IPSL (SD)Oui Atm/MO2SE MO2YE 1 fichier 1 moyenne annuelle mo2yeAtm/Analyse/MO2YEOK_POST_M O2YE=y OK_DODS_MO2 YE=y Atm/MO2YE NonPas encore MO2SNmo2snAtm/Analyse/MO2SNOK_POST_M O2SN=y OK_DODS_MO2 SN=y Atm/MO2SN NonPas encore
mc2.ipsl.jussieu.fr/testing.php?exp=VV20 UtilitaireRépertoire gayaLancementDods IDRIS : dods.ipsl.jussieu.fr Dods IPSL : dods.ipsl.jussieu.fr/ mc2ipsl/calculo/ Nouveaux scripts Monitoring create_tsMore/Monit/WW W/Monitoring OK_POST_monitor ing=y toujours Monitoring Synchro IPSL (SD)Pas encore Atlasmo2yeMore/Atlas/WW W/VV20/SE_186 0_1869 OK_POST_ATAS_ SE=y toujours SE_1860_1869 Synchro IPSL (SD)Oui Atm/MO2SE Ocean additionals mo2snMore/Atlas/WW W/VV20/Images A la main TKE2.jobToujours (si dispo) Images Synchro IPSL (SD)Pas encore
LMDZ OPA ORCHIDEE IOIPSL Annexe 1 : Accès au modèle IPSLCM4_v2 Accès direct aux fichiers sur les serveurs SVN et CVS brodie ou mercure : svn co modipsl’ brodie ou mercure : cvs –d login (passwd=opa2000) brodie ou mercure : cvs –d login (passwd=lmdzb2000) brodie ou mercure : cvs –d login (passwd=ipsl2000) Création du fichier $HOME/.cvspass MODIPSL CPL brodie ou mercure : svn co src brodie ou mercure : cvs login (passwd=anonymous) Création du répertoire./.svn
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 Annexe 2:Caractéristiques d’un fichier netCDF
Informations sur les dimensions Informations sur les attributs (voir conventions CF) Informations sur les attributs des variables ( sans leurs valeurs) (voir conventions CF) Structure du fichier netCDF – En-tête 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 = f ; presnivs:valid_max = f ; presnivs:title = "presnivs" ; presnivs:long_name = "Vertical levels" ; float time_counter(time_counter) ; time_counter:units = "seconds since :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 = f ; tsol:associate = "time_counter nav_lat nav_lon" ; ncdump -h COURS_1m_ _ _histmth.nc
données de taille fixe données de taille variable Structure du fichier netCDF - Données data: tsol = , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , …
Utilitaires netCDF - ncgen - ncgen : génère un fichier netCDF ou un programme C ou FORTRAN permettant de créer un fichier netCDF. Si aucune option n’est spécifiée lors de l’invocation de ncgen, le programme se limite à vérifier la syntaxe de l’entrée CDL produisant des erreurs lors de la violation de la syntaxe
Utilitaires netCDF - ncgen - Syntaxe UNIX : ncgen [ -b ] [ -o netcdf-file] [-c] [-f] [-n] [input-file] -b : Créée un fichier (binaire) netCDF. Si l’option « -o » est absente un nom par défaut sera construit à partir du nom netCDF (spécifié après le mot clef netcdf) en y ajoutant l’extension «.nc » ATTENTION : si un fichier portant ce nom existe, il sera écrasé. -o netcdf-file : spécifie le nom du fichier créé. Si cette option est présente, elle implique la présence de l’option « -b ». -c : Génère un code source en C qui va créer un ficier netCDF correspondant à la spécification netCDF. Le code source est écrit sur la sortie standard. Ce n’est utile que pour des fichiers CDL relativement petits, du fait que toutes les données sont incluses dans les variables d’initialisation du programme généré.
Utilitaires netCDF - ncgen - -f : Génère un code source en FORTRAN qui va créer un fichier netCDF correspondant à la spécification netCDF. Le code source est écrit sur la sortie standard. Ce n’est utile que pour des fichiers CDL relativement petits, du fait que toutes les données sont incuses dans les variables d’initialisation du programme généré. -n : Cette option est dépréciée. Fonctionne selon le même principe que l’option « -b » sauf que l’extension est «.cdf ». Cette option n’est supportée que pour assurer la compatibilité ascendante.
Utilitaires netCDF - ncdump - 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 ncdump et ncgen peuvent donc être utilisées comme fonctions inverses pour passer d’une représentation textuelle à une représentation binaire et inversement. ncdump peut être aussi simplement utilisée pour explorer les fichiers netCDF dans le but d’afficher : les noms et longueurs des dimensions les noms, types et formes des variables les noms et valeurs des attributs et optionnellement les valeurs des données pour les variables d’un fichier netCDF
Utilitaires netCDF - ncdump - Syntaxe UNIX : ncdump [ -c | -h ] [ -v var1, …] [-b lang] [-f lang] [-l len] [-p fdig[, ddig]] [-n name] [input-file] -c : affiche les valeurs des variables coordonnées ainsi que les déclarations de toutes les dimensions, variables, et attributs des valeurs. La valeur des données des variables non coordonnées ne sont pas affichées. Cette option et la plus adaptée pour une rapide visualisation de la structure et du contenu d’un ensemble de données netCDF -h : affiche seulement l’information d’en-tête. C’est à dire seulement les déclarations des dimensions, variables et attributs d’un fichier mais pas les valeurs des variables. Le résultat de l’utilisation de cette option est identique à celui de l’option « -c » à l’exception du fait que les valeurs de variables coordonnées ne sont pas incluses.
Utilitaires netCDF - ncdump - -v var1, … : le résultat va inclure la valeur des données des variables spécifiées, en plus des déclarations des dimensions, variables et des attributs. Une liste d’une ou plusieurs variables, séparées par des virgules, doit être spécifiée à la suite de l’option. La liste doit représenter un seul argument pour l’option. Elle ne doit donc pas contenir de blanc ou autre caractère espace. Les noms des variables indiquées doivent effectivement exister dans le fichier d’entrée netCDF. Par défaut, en l’absence de cette option et en l’absence des options « -c » ou « -h » les valeurs des données de toutes les variables sont affichées.
Utilitaires netCDF - ncdump - -b lang : une brève annotation, au format CDL (texte commencant par les caractères’//’) sera incluse dans la section des données à l’affichage pour chaque ‘ligne’ de données afin d’identifier les valeurs des données des variables multi-dimensionnelles. Si lang débute avec la lettre ‘C’ ou ‘c’ les conventions du langage C seront utilisées (indices basés sur zéro et dernière dimension variant la plus vite) Si lang débute avec la lettre ‘F’ ou ‘f’, les convention du langage FORTRAN seront utilisées (indices basés sur un et première dimension variant la plus vite) - f lang : Même principe que précédemment à l’exception que l’annotation sera complète. - l len : Change la valeur par défaut de la longueur d’une ligne à l’affichage (80 caractères)
-p float_digits[,double_digits] spécifié la précision par défaut (nombre de chiffre significatifs) à utiliser lors de l’affichage des valeurs des données, double précision ou flottant, des attributs et des variables. Si spécifiée, cette valeur surchage la valeur de l’attribut C_format, s’il existe, d’une variable. Les flottants seront affichés avec float_digits pour les nombres significatifs. Si le champ double_digits est aussi spécifié, les valeurs en double précision seront affichées avec le nombre de chiffres significatifs correspondant. En l’absence de l’option « -p » les valeurs par défaut de la précision sont respectivement 7 et 15 pour les flottant et la double-précision. La précision requise influe sur la taille du fichier CDL. Si les deux champs sont spécifiés, ils doivent être séparés par une virgule et apparaître comme un seul argument pour l’option (pas de blancs). Utilitaires netCDF - ncdump -
Utilitaires netCDF - ncdump - - n name : CDL requière un nom pour un ensemble de données netCDF afin d’être utilisé par « ncgen –b » pour la génération du nom par défaut d’un ensemble de données netCDF. Par défaut ncdump construit ce nom à partir du dernier champ du nom de l’ensemble des données netCDF d’entrée, en y enlevant toute extension. L’option « -n » sert à spécifier un autre nom. Même si le nom du fichier de sortie utilisé par « ncgen –b » peut être spécifié, il est préférable : - d’utiliser ncdump pour changer le nom par défaut afin d’éviter d’écraser un ensemble de données netCDF lors de l’utilisation de ncdump. - d’éditer le fichier CDL résultant - et d’utiliser « ncgen –b » pour générer un ensemble de données netCDF à partir du fichier CDL édité.
rhodes : cd ${HOMEGAYA}/IGCM_OUT/IPSLCM4_V2/COURS/ATM/Output/MO mercure : cd ${DMFDIR}/IGCM_OUT/IPSLCM4_V2/COURS/ATM/Output/MO rhodes ou mercure : ncdump -h COURS_1m_ _ _histmth.nc rhodes ou mercure : ncdump -h COURS_1m_ _ _histmth.nc > toto rhodes ou mercure : ncdump -c COURS_1m_ _ _histmth.nc > tata rhodes ou mercure: diff toto tata rhodes ou mercure : \rm –f toto tata Utilitaires netCDF - ncdump - - ncgen - Affiche sur la sortie standard les valeurs des variables coordonnées
Utilitaires netCDF - ncdump - - ncgen - rhodes ou mercure : ncdump –p15 –b f COURS_1m_ _ _histmth.nc > COURS_1m_ _ cdl rhodes ou mercure : emacs COURS_1m_ _ cdl & rhodes ou mercure : ncgen –o COURS_1m_ _ nc COURS_1m_ _ cdl Permet de faire des modifs « à la main » dans les fichiers netCDF
ncrcat [-A] [-C] [-c] [-D dbg] [-d dim,[min][,[max]][,[stride]]] [-F] [-h] [-l path] [-n loop] [-O] [-p path] [-R] |-r] [-v var[,…]] [-x] input-files output-files 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. Utilitaires nco - ncrcat -
Utilitaires nco - ncrcat - 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_ _ _TSOL.nc Série temporelle de la variable TSOL sur 10 ans
Utilitaires nco - ncra - ncra [-A] [-C] [-c] [-D dbg] [-d dim,[min][,[max]][,[stride]]] [-F] [-h] [-l path] [-n loop] [-O] [-p path] [-R] |-r] [-v var[,…]] [-x] [-y op_typ] input-files output-files 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.
ncra COURS_1m_19??0101_19??0130_histmth.nc COURS_SE01_1979_1988_histmth.nc ncra COURS_1m_ _ _histmth.nc COURS_1m_198[0-8]0101_*_histmth.nc COURS_SE01_1979_1988_histmth.nc Permet de faire une moyenne sur tous les mois 01 de 1979 à 1988 Permet de faire une moyenne sur tous les mois 01 présents dans le répertoire Utilitaires nco - ncra - ncrcat COURS_SE*_1979_1988_histmth.nc COURS_SE_1979_1988_histmth.nc Moyenne saisonnière sur 10 ans
Utilitaires nco - ncea - ncea [-A] [-C] [-c] [-D dbg] [-d dim,[min][,[max]][,[stride]]] [-F] [-h] [-l path] [-n loop] [-O] [-p path] [-R] |-r] [-v var[,…]] [-x] [-y op_typ] input-files output-files ncea calcule la moyenne sur un nombre variable de fichiers d’entrée. C’est une moyenne spatiale sur une grille temporelle. Ce qui donne autant de valeurs de moyenne que de pas de temps.
Utilitaires nco - ncea - ncea COURS_1m_1979??01_1979??30_histmth.nc 1979.nc ncea COURS_1m_1988??01_1988??30_histmth.nc 1988.nc ncea –n 10,4,1 COURS_1m_ 1979_1988 _histmth.nc Moyenne saisonnière sur 10 ans Car 1 sortie mensuelle par fichier ATTENTION : ncea fait la moyenne « fichier à fichier » sur chaque point de l’axe des temps ATTENTION : ncra fait la moyenne « fichier à fichier » sur l’ensemble des points de l’axe des temps t t t Nombre de valeurs de moyenne égale au nombre de sorties par fichiers 1 unique valeur de moyenne
Utilitaires nco - ncks - ncks [-A] [-a] [-B] [-b binary-files] [-C] [-c] [-D dbg] [-d dim,[min][,[max]][,[stride]]] [-F] [-H] [-h] [-l path] [-M] [-m] [-O] [-p path] [-q] [-R] |-r] [-s format] [-u] [-v var[,…]] [-x] input-files output-files 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.
Utilitaires nco - ncks - ncks -v sosstsst COURS_1m_ _ _grid_T.nc COURS_1m_ _ _SOSSTSST.nc … ncks -v sosstsst COURS_1m_ _ _grid_T.nc COURS_1m_ _ _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[1 9]01_19880[1-9]30_grid_T.nc COURS_1m_19881[0-2]01_19881[0 2]30_grid_T.nc COURS_1m_ _ _grid_T.nc Série temporelle de la variable SOSSTSST sur 10 ans
Utilitaires nco - ncdiff - ncdiff [-A] [-C] [-c] [-D dbg] [-d dim,[min][,[max]][,[stride]]] [-F] [-h] [-l path] [-n loop] [-O] [-p path] [-R] |-r] [-v var[,…]] [-x] file_1 file_2 file_3 ncdiff soustrait des variables dans file_2 des variables correspondantes dans file_1 et stockent les résultats dans file_3.
Utilitaires nco - ncdiff - ncdiff –v tsol COURS_1m_ _ _histmth.nc COURS_1m_ _ _histmth.nc COURS_1m_ _ _TSOL_D.nc Différence sur la grille spatiale de la variable TSOL
Utilitaires cdo (Climate Data Operator)
File information (info, sinfo, diff,...) 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)
Utilitaires cdo (Climate Data Operator) Interrogation des fichiers cdo infov OCE/Analyse/TS_MO/TEST1Y_ _ _1M_sosstsst.nc -1 : Date Time Varname Level Size Miss : Minimum Mean Maximum 1 : :00 sosstsst : : :00 sosstsst : …… 48 : :00 sosstsst : cdo infov: Processed values from 1 variable over 48 timesteps. ( 0.09s ) cdo sinfov OCE/Analyse/TS_MO/TEST1Y_ _ _1M_sosstsst.nc File format: netCDF -1 : Institut Source Varname Time Typ Grid Size Num Levels Num 1 : unknown unknown sosstsst variable F Horizontal grids : 1 : curvilinear > size : dim = nx = 182 ny = 149 …
Utilitaires cdo (Climate Data Operator) Cycle diurne moyen T500.nc : un fichier toute les 6 heures cdo timselmean,30 -seltimestep,1/72000/4 T500.nc final_01.nc cdo timselmean,30 -seltimestep,2/72000/4 T500.nc final_02.nc cdo timselmean,30 -seltimestep,3/72000/4 T500.nc final_03.nc cdo timselmean,30 -seltimestep,4/72000/4 T500.nc final_04.nc cdo mergetime final_0* final.nc cdo -r settaxis, ,03:00,180hou final.nc final2.nc
Utilitaires cdo (Climate Data Operator) Changement de grille En interpolant directement : cdo setgrid,IPSL.ORCA2_gridCF.nc sst.nc inter.nc cdo remapbic,r360x180 inter.nc sst_regular.nc En pré calculant le fichier de poids : cdo setgrid,IPSL.ORCA2_gridCF.nc sst.nc inter.nc cdo genbic,r360x180 inter.nc remapweight.nc cdo remap, remapweight.nc inter.nc sst_regular.nc
netCDF, nco Convention CF
Contributions L’ensemble du groupe ESCI : équipe système climat IPSL