= LMDZINCA_v2 = (Auteur : Anne Cozic) ---- == Table des matières == * [wiki:LMDZINCA_v2#FCM FCM] * [wiki:LMDZINCA_v2#ExtraireModipsl Récupérer modipsl] * [wiki:LMDZINCA_v2#ExtrairelaconfigLMDZINCA_v2 Extraire la config LMDZINCA_v2] * [wiki:LMDZINCA_v2#Compilationdelaconfiguration Compilation de la configuration] * [wiki:LMDZINCA_v2#Lancerunesimulation Lancer une simulation] * [wiki:LMDZINCA_v2#Presentationdesrepertoiresexperiences Présentation des répertoires d'expériences] * [wiki:LMDZINCA_v2#Etapesavantlacreationdujobdesimulation Etapes préliminaires à la création du job de simulation] * [wiki:LMDZINCA_v2#Creationdujob Création du job] * [wiki:LMDZINCA_v2#Lancementdelasimulation Lancement de la simulation] * [wiki:LMDZINCA_v2#Commenttravailleraveccettearborescence Comment travailler avec cette arborescence] * [wiki:LMDZINCA_v2#Findelasimulation Fin de la simulation] * [wiki:LMDZINCA_v2#Relancerunesimulation Relancer une simulation à zéro] * [wiki:LMDZINCA_v2#Continuezunesimulation Continuez une simulation existante] * [wiki:LMDZINCA_v2#Lemodesequentiel Le mode sequentiel] * [wiki:LMDZINCA_v2#Lemodenudge Le mode nudge] * [wiki:LMDZINCA_v2#Changerleschemadeconvection Changer le schema de convection] * [wiki:LMDZINCA_v2#Tiedtke Tiedtke] * [wiki:LMDZINCA_v2#KerryEmmanuel Kerry Emmanuel] * [wiki:LMDZINCA_v2#Creationdesfichiersdeconditionsauxlimites Création des fichiers de conditions aux limites pour les runs nudgés] * [wiki:LMDZINCA_v2#Ouchangerlespathsdesfichiersderestart Où changer les paths des fichiers de restart pour une nouvelle simulation ? ] ---- == FCM == Les modèles LMDZ et INCA utilisent tous deux l'outil FCM (libre accès) pour leurs compilations. Donc pour pouvoir compiler vous devez au paravant mettre à jour vos path {{{ Sur Brodie : PATH=$PATH:/TXlocal/pub/svn/svn-1.3.1/bin:/home/rech/psl/rpsl035/fcm/bin Sur Mercure PATH=$PATH:~p86ipsl/fcm/bin }}} Plus d'information sur FCM [http://www.metoffice.gov.uk/research/nwp/external/fcm/ ici] [[BR]] [[BR]] [[BR]] == SVN == Sur mercure l'outil svn est par défaut dans votre path. Par contre sur Brodie vous devez le rajouter {{{ PATH=$PATH:/TXlocal/pub/svn/svn-1.3.1/bin }}} == Extraire Modipsl == {{{ svn co http://forge.ipsl.jussieu.fr/igcmg/svn/modipsl/trunk modipsl }}} Plus d'info ici : http://www.ipsl.jussieu.fr/~ioipsl/WWW2/index.html [[BR]] [[BR]] [[BR]] == Extraire la config LMDZINCA_v2 == {{{ cd modipsl/util/ ./model LMDZINCA_v2 }}} Lors de cette étape on vous demandera un login et un mot de passe. Pour les connaître contactez Anne Cozic à l'adresse suivante anne.coziclsce.ipsl.fr [[BR]] [[BR]] == Compilation de la configuration == Création d'un makefile pour la configuration (à ne faire qu'une fois après l'extraction de la configuration) {{{ cd modipsl/util ./ins_make }}} Lancement d'une compilation {{{ cd modipsl/config/LMDZINCA_v2 gmake _config_inca_xLMD9672 (avec _config_inca_ = CH4 ou CH4_AER ou NMHC ou NMHC_AER ou AER ou GES) Exemple : gmake AERxLMD9672 }}} Cette commande permet dans l'ordre : 1. de compiler IOIPSL 2. de préprocesser le modèle INCA pour la config_inca que vous avez choisis 3. de compiler le modèle INCA avec l'outil FCM 4. de compiler le modèle LMDZ avec l'outil FCM 5. de faire l'édition de lien entre INCA et LMDZ Lorsque la configuration est compilée l'exécutable créé est stocké dans le répertoire modipsl/bin/ [[BR]] Par défaut cette compilation est en mode parallèle. Réportez vous à la rubrique correspondante pour la compilation en mode séquentiel. Cela dit il est conseillé de travailler en mode parallèle. [[BR]] Remarques : - si vous avez déjà compilé une fois le modèle et vous pouvez juste taper ''gmake'' sans spécifier la configuration voulue, modipsl se souvient de ce choix. - si vous voulez recompiler entièrement le modèle vous devez effacer le contenu des répertoires suivants : modipsl/bin/, modipsl/lib/, modipsl/modeles/LMDZ4/libo/, modipsl/modeles/INCA3/config/ [[BR]] [[BR]] == Lancer une simulation == Pour les simulations nous utilisons la librairie libIGCM. Pour plus d'informations dessus vous pouvez consulter la page suivante (intranet IPSL) : http://wiki.ipsl.jussieu.fr/wiki_ipsl/IGCMG/libIGCM/DocUtilisateur === Presentation des repertoires experiences === Dans le répertoire modipsl/config/LMDZINCA_v2 vous trouverez 6 sous répertoires : [[BR]] - EXP_CH4_AER - EXP_AER - EXP_NMHC - EXP_NMHC_AER - EXP_GES - EXP_CH4 Chacun de ces répertoires contient les fichiers nécessaires pour lancer une simulation. [[BR]] Dans un répertoire type vous trouverez : - un fichier config.card - un répertoire COMP/ - un répertoire PARAM/ Le fichier config.card contient la fiche d'identitée de votre simulation (nom - dates de début et de fin - calendrier ...) [[BR]] Le répertoire PARAM/ contient les fichiers .def contentant les paramètres nécessaires à une simulation de LMDZ [[BR]] Le répertoire COMP/ contient deux sortes de fichiers : des cartes (.card) et des drivers (.driver). Les drivers ne sont pas à changer, ils indiquent les opérations à faire pour chaque composantes de votre configuration (ici : INCA et LMDZ). Les cartes elles contiennent les informations nécessaires pour chaque composantes (les fichiers d'états initiaux, les fichiers de conditions aux limites, les fichiers d'émissions ...) ainsi que comment gérer les fichiers sorties des composantes (noms des fichiers que l'on veut conserver, et post-traitement qu'on leur associe) [[BR]] === Etapes avant la creation du job de simulation === ==== config.card ==== Avant de créer un job pour votre simulation vous devez indiquer tous les paramètres nécessaires à cette dernière dans le fichier config.card [[BR]] Voici les rubriques à modifier : {{{ JobName=_nom_simul_ DateBegin=_date_debut_simul_ DateEnd=_date_fin_simul_ PeriodLength= indiquez ici la fréquence de lancement de l'exécutable (1D ou 1M suivant les cas pour LMDZINCA) JobNumProcTot=_nombre_processeurs }}} Exemple pour demander une simulation du mois de janvier 2000 : {{{ DateBegin=2000-01-01 DateEnd=2000-01-30 }}} En ne modifiant que ces champs vous préparer un run climatique utilisant le schéma de convection de Kerry Emmanuel. Je vous conseille de commencer avec ce run type avant de faire varier ces derniers paramêtres (voir rubriques plus bas). ==== répertoire COMP ==== Dans le répertoire COMP vous pouvez indiquer les adresses des fichiers d'état initiaux de votre simulation dans le fichier lmdz.card (suivre l'exemple donné par défaut). Vous pouvez également modifier les fichiers d'émissions dans le fichier inca.card. [[BR]] A chaque fois la syntaxe utilisée est la suivante : [[BR]] ''(path_fichier, fichier)'' [[BR]] Elle est équivalente à : [[BR]] ''cp path_fichier fichier'' [[BR]] Pour d'autres informations sur les scripts vous êtes invités à vous reporter à la documentation indiquée ci-dessus. '''Sur BRODIE Attention''' il faut changer les adresses des fichiers de forçages des vents si vous êtes dans une configuration '''aérosols''' === Creation du job === {{{ cd modipsl/util ./ins_job }}} Cette commande recherche tous les fichiers config.card existant dans des sous-répertoires de modipsl et crée les job associés (en reprenant la rubrique !JobName du fichier config.card). Si jamais un fichier du même nom (Job_nom_simul) existe déjà alors un message d'avertissement apparait et le job n'est pas écrasé. Vous devez l'effacer au préalable pour pouvoir le recréer. [[BR]] Par défaut la simulation tournera sur le disque tmpdir de la machine. Si vous voulez qu'elle ait lieu sur le scratchir, vous devez modifier la variable RUN_DIR_PATH dans le fichier Job_nom_simul [[BR]] N'oubliez pas non plus de modifier les variables '''elapstim_req''' et '''memsz_job''' en entête de job. {{{ #PBS -l memsz_job=6.0gb # limite memoire #PBS -l elapstim_req=00:30:00 # limite en temps elapsed }}} Remarque : Pour connaître les temps autorisés sur les différentes queues de la machine vous pouvez utiliser la commande '''class''' [[BR]] Avant de lancer votre simulation il vous reste une dernière étape : vous devez définir la variable '''!PeriodNb''' dans votre Job. '''!PeriodNb''' peut être définie comme le nombre maximal de '''!PeriodLength''' (dans config.card) pouvant être simulée sur le '''elapstim_req''' demandé ! [[BR]] [[BR]] === Lancement de la simulation === {{{ cd modipsl/config/LMDZINCA_v2/EXP_config_inca_/ qsub Job_nom_simul }}} [[BR]] [[BR]] == Comment travailler avec cette arborescence == Il vous est fortement conseillé de '''recréer un répertoire d'expérience pour chaque nouvelle simulation''' que vous lancez. Pour cela vous pouvez dès le départ conserver le répertoire EXP_config_inca (ex: EXP_AER) dans lequel vous laissez le !JobName de config.card vide (cette manipulation empéchera la création d'un job associé avec la commande ins_job). Vous pourrez ainsi recopier ce répertoire autant de fois que vous le désirerez. [[BR]] Si jamais vous voulez utiliser les modèles sur plusieurs projets différents qui demandent à chaque fois des nouveaux développements et des exécutables différents : il est conseillé de récupérer '''pour chaque projet une architecture modipsl nouvelle'''. [[BR]] [[BR]] == Fin de la simulation == Lorsque votre simulation est finie deux fichiers sont créés dans votre répertoire d'expérience: - run.card - Script_Output_JobName Si la simulation s'est mal déroulée vous aurez un troisième fichier : - !JobName_date_out_gcm.e_error qui contient le journal de sortie de votre simulation Le fichier run.card indique l'état de votre run à la fin de la simulation. Il contient une variable !PeriodState qui vous renseigne {{{ PeriodState= completed ( = simulation bien finie) PeriodState= Fatal (= problème durant la simulation) }}} Lorsque votre simulation est bien finie les fichiers de sorties sont stockés au path suivant : [[BR]] sur mercure: {{{ $DMFDIR/IGCM_OUT/LMDZINCA/_config_inca_/_nom_simul_ Avec les sous répertoires suivant : ATM CHM Out Exe ATM = Output et Restart de LMDZ CHM = Output et Restart de INCA Out = journaux de sorties du run Exe = exécutables utilisés pour le run }}} sur gaya: {{{ IGCM_OUT/LMDZINCA/_config_inca_/_nom_simul_ Avec les sous répertoires suivant : ATM CHM Out Exe ATM = Output et Restart de LMDZ CHM = Output et Restart de INCA Out = journaux de sorties du run Exe = exécutables utilisés pour le run }}} [[BR]] [[BR]] == Relancer une simulation == 1. Vous devez effacer dans votre répertoire d'expérience les fichiers statck_error (si existant) et run.card. 2. Vous devez effacer le répertoire : * sur mercure $DMFDIR/IGCM_OUT/LMDZINCA/_config_inca_/_nom_simul_ * ou sur gaya IGCM_OUT/LMDZINCA/_config_inca_/_nom_simul_ 3. Si vous aviez changer la variable RUN_DIR_PATH vous devez également effacer le répertoire correspondant à votre simulation sur votre scratchdir. [[BR]] [[BR]] == Continuez une simulation == Dans le fichier run.card {{{ PeriodDateBegin=debut de votre prochaine periode de simulation (normalement ce champs est bon par défaut) PeriodDateEnd=fin de votre prochaine période de simulation (normalement ce champs est bon par défaut) PeriodState= OnQueue }}} Dans le fichier config.card {{{ DateEnd=nouvelle_date_fin_simul_ }}} [[BR]] [[BR]] == Le mode sequentiel == === compilation === 1. Dans modipsl/config/LMDZINCA_v2/AA_make : vous devez mettre toutes les options parallel à false (''-parallel false'') 2. Dans le même fichier vous devez modifier le nom de l'exécutable gcm_96x72x19_t..._phylmd_para.e par gcm_96x72x19_t..._phylmd_seq.e 3. Dans modipsl/modeles/INCA3/bld.cfg : vous devez enlever la clef CPP_PARA 4. Recréer le makefile à l'aide de la commande ./ins_make Remarque : vous pouvez faire ces modifications directement dans le fichier Makefile mais dans ce cas là ne relancer surtout pas la commande ins_make qui effacerait tout ce que vous avez changé. === exécution === 1. Dans le fichier modipsl/config/LMDZINCA_v2/EXP_.../config.card : vous devez changer la ligne !JobRunOption {{{ JobNumProcTot=4 JobRunOptions='"-np "${config_UserChoices_JobNumProcTot}' devient JobNumProcTot=1 JobRunOptions='' }}} 2. Toujours dans config.card indiquez que vous n'utilisez qu'un seul processeur. 3. Créez votre job [[BR]] [[BR]] == Le mode nudge == La documentation du mode guide dans LMDZ est [http://lmdz.lmd.jussieu.fr/documentation/notes-techniques ici] [[BR]] - Vous devez ajouter un fichier guide.def au répertoire modipsl/congif/LMDZINCA_v2/PARAM. Ce fichier devra être semblable au suivant : {{{ ncep=.false. # true si necp , false si ecmwf guide_u= y guide_v= y guide_T= n guide_P= n guide_Q= n guide_hr=n ini_anal=.true. tau_min_u=0.0208333 tau_max_u=0.1 tau_min_v=0.0208333 tau_max_v=0.1 tau_min_T=0.0208333 tau_max_T=10 }}} - Ensuite vous devez indiquer au fichier modipsl/config/LMDZINCA_v2/PARAM/run.def de prendre en compte le fichier guide.def que vous venez de rajouter. Pour cela ajouter en entête de run.def la ligne suivante : {{{ INCLUDEDEF=guide.def }}} - Dans le fichier modipsl/config/LMDZINCA_v2/PARAM/gcm.def vous devez changer ok_guide=.false. par ok_guide=.true. - Vous devez indiquer les paths des fichiers de vents dans le fichier modipsl/config/LMDZINCA_v2/COMP/lmdz.card. Et ajoutez le fichier guide.def dans la liste de parameter files {{{ [BoundaryFiles] List= ....\ (/dmnfs/cont003/p24data/ECMWF96x72/AN${year}/u_ecmwf_${year}${month}.nc, u.nc)\ (/dmnfs/cont003/p24data/ECMWF96x72/AN${year}/v_ecmwf_${year}${month}.nc, v.nc)\ .... [ParametersFiles] List= ....\ (${SUBMIT_DIR}/PARAM/guide.def,.) }}} - Pour finir dans modipsl/config/LMDZINCA_v2/config.card vous devez changer le calendrier utilisé. {{{ #============================ #D-- leap, noleap, 360d (leap = 365 bissextile, noleap = 365, 360d = 360) CalendarType=leap }}} [[BR]] [[BR]] == Changer le schema de convection == Le modèle LMDZ permet de choisir entre différents schémas de convection : Tiedtke et Kerry Emmanuel. Pour passer de l'un à l'autre il faut modifier des valeurs dans les fichiers de paramètres du modèle (modipsl/config/LMDZINCA_v2/EXP.../PARAM/). [[BR]] === Tiedtke === {{{ dans gcm.def iflag_con=2 dans physiq.def iflag_cldcon=-1 }}} === Kerry Emmanuel === {{{ dans gcm.def iflag_con=3 dans physiq.def iflag_cldcon=3 }}} Lorsque vous modifiez ces paramètres vous n'êtes pas obligé de recompiler le modèle pour lancer une nouvelle simulation. [[BR]] [[BR]] == Creation des fichiers de conditions aux limites == Lorsque vous récupérez la configuration LMDZINCA_v2 vous récupérez également un répertoire CREATE (modipsl/config/LMDZINCA_v2/CREATE). Ce répertoire permet de créer les fichiers de conditions aux limites pour les runs nudgés. Pour cela il utilise les données amipbc_sic et amipbc_sst (1956 à 2005). Il vous suffit de remplir le fichier config.card avec l'année de début et l'année de fin de votre run et de créer le Job correspondant. [[BR]] Une fois vos fichiers limit.nc créés vous pouvez travailler avec LMDZINCA en indiquant les path pour ces fichiers dans COMP/lmdz.card (attention : il faut les mettre dans la rubrique [!BoundaryFiles] List en non pas !ListNonDel comme ils y sont par défaut !! [[BR]] Des fichiers aux limites ont été préparés pour les années 1979 à 2007 (/dmnfs/cont003/p24data/LIMIT_LMDZ4_96x72) sur mercure [[BR]] [[BR]] == Ou changer les paths des fichiers de restart == Il y a deux solutions pour indiquer à un run quels fichiers initiaux utiliser : [[BR]] 1- dans le fichier '''lmdz.card''' (modipsl/config/LMDZINCA_v2/EXP_.../COMP/) {{{ [UserChoices] [InitialStateFiles] # start and startphy are the clim files computed with CLIM_CREATE (create_etat0_limit) job List= (path/start.nc, start.nc) \ (path/startphy.nc, startphy.nc) }}} Je vous conseille cette solution qui est très simple d'application et vous permets d'utiliser des fichiers d'anciennes simulations stockés sous d'autres architectures que celle de IGCM. [[BR]] 2- dans le fichier '''config.card''' (modipsl/config/LMDZINCA_v2/EXP_.../) [[BR]] Il existe une rubrique à la fin du fichier config.card qui vous permets d'indiquer les paths d'anciennes simulations dont vous voulez utiliser les fichiers de restarts. Attention cela ne s'applique qu'aux architectures de modipsl. [[BR]] [[BR]]