\documentclass{article}
\usepackage[english]{babel}
\usepackage[latin1]{inputenc}

\usepackage{a4wide}
\begin{document}

\def\afaire#1{{\bf Afaire : #1}}
\title{TD1 : prise en main du modèle. \date{\today}}
\author{Formation LMDZ}

\maketitle

Ce premier TD vise principalement à l'installation et à la prise en main d'une version du modèle LMDZ.
L'enoncé est disponible sous forme de pdf sur
\begin{verbatim}
wget http://www.lmd.jussieu.fr/~lmdz/Distrib/TD1.pdf
\end{verbatim}
ce qui peut vous permettre de faire des copier/coller.
%\def\infol#1{#1}
%\def\infol#1{\verb+ #1 +}
\def\infol#1{{\bf #1 }}
%\newcommand{\infol}[1]{\verb\+ #1 \+}

\def\resol#1#2#3{#1$\times$#2-L#3} %

Si vous travaillez sur les machines du reseau LMD, vous allez vous
connecter sous le login "tdlmdz" dont le mot de passe vous sera
donné de vive voix.
Loguez vous puis créez sur le disque local à la
machine un 
répertoire
\begin{verbatim}
cd /home/tdlmdz
mkdir LMDZ201211_votre_nom
cd LMDZ201211_votre_nom
\end{verbatim}

\section{Execution du script install.sh}

La première étape consiste à récupérer le script install.sh disponible sur la page du LMD, puis à l'exécuter {\em en aveugle} (après avoir changé les droits pour le rendre exécutable) :
\begin{verbatim}
wget http://www.lmd.jussieu.fr/~lmdz/Distrib/install.sh
chmod +x install.sh
./install.sh
\end{verbatim}
Par défaut, \verb+ install.sh + essaie d'installer le modèle avec le compilateur
\verb+ gfortran +. Mais la version installée sur le réseau local est trop
ancienne. Le script vous invite donc à remplacer gfortran par un autre compilateur. Choisir \verb+ compilo=g95 + puis relancer \verb+ ./install.sh +.

Ce script est sensé s'exécuter sans encombre jusqu'à la fin. Si ce n'est pas le cas, demandez de l'aide sans plus attendre.
Le script se termine par des lignes comme
\begin{verbatim}
##########################################################
La simulation test est terminee sur ...
vous pouvez la relancer : cd  ...
ou ./bench.sh
##########################################################
\end{verbatim}

Pendant le déroulement du script, qui peut \verb+ prendre + plusieurs minutes,
vous verrez apparaître à la fois des lignes associées à la récupération des différents éléments via des \infol{wget} soit des lignes associées à la compilation. Le déroulement du script se termine par le lancement d'une simulation test sur 5 jours avec une grille régulière \resol{48}{36}{19}.

Pendant l'installation, vous êtes invités à explorer les répertoires
sur une autre fenêtre.
Au lancement de install.sh, vous verrez se créer le répertoire
\infol{LMDZtesting} dans le quel vous trouverez \infol{modipsl} -- qui contient l'arborescence du modèle -- et \infol{netcdf-4.0.1} -- qui contient la librairie \infol{netcdf} installée par \infol{install.sh} --.
Dans \infol{modipsl}, vous trouvez en particulier le répertoire \infol{modeles} et, à l'intérieur de ce dernier, le répertoire \infol{LMDZ5}.
Vous rendre sur celui-ci.
Une fois le cas test lancé, vous verrez apparaître en plus le répertoire \infol{BENCH48x36x19/} sur lequel vous pourrez commencer à visualiser les sorties avant même la fin de la simulation.

Regarder le contenu du répertoire. Faire quelque sorties à partir du fichier \infol{histday.nc}.


\section{Changement de version du modèle}

Le test que vous venez d'effectuer a été réalisé avec la dernière version {\em testing} du modèle, celle du 16 octobre 2012, associée à la {\em release svn} 1669, ce que vous pouvez vérifier à la fin du fichier
\begin{verbatim}
http://www.lmd.jussieu.fr/~lmdz/Distrib/LISMOI.testing
\end{verbatim}
ou sur la page web des versions testing
\begin{verbatim}
http://lmdz.lmd.jussieu.fr/utilisateurs/distribution-du-modele/versions-intermediaires
\end{verbatim}
ou encore directement sur le répertoire LMDZ :
\begin{verbatim}
cd LMDZtesting/modipsl/modeles/LMDZ5
svn info
\end{verbatim}

On peut, à l'aide de svn, changer de version du modèle en se recallant sur une {\em release svn} ulterieure ou antérieure (on va le faire ici à tître d'exercice, bien qu'employer la dernière testing, celle que vous venez d'installer, soit la bonne façon de travailler).
Pour celà, placez vous dans le répertoire \infol{LMDZ5} et lancez la commande:
\begin{verbatim}
svn update --revision 1665
\end{verbatim}
pour revenir à la {\em release svn} 1665 (la {\em testing} précédente); Attention: lors de la mise à jour de la version par svn, un conflit sur {\em makegcm} sera signalé, répondre "mf" (mine-full: pour signaler que vous souhaitez conserver votre version personelle\footnote{Ce conflit provient du fait que lors de l'installation via le script {\em install.sh}, ce dernier modifie le script makegcm, mais que par ailleurs certaines lignes (sans conséquences) du script \infol{makegcm} ont également changées d'une {\em release} svn à l'autre. Du coup svn ne sait pas quelles modifications conserver et
vous demande de trancher.} du script \infol{makegcm}).

Toujours depuis le répertoire \infol{LMDZ5}, lancer la commande
\infol{./makegcm -d 48x36x19 -v true gcm}
L'option \infol{-v true} n'est pas obligatoire. Elle indique qu'on compile avec Orchidee mais on désactive en pratique Orchidee au moment du lancement dans ce TD.
Seule une partie des routines vont être recompilées. Il faut relancer une seconde fois la commande\footnote{Le fait de devoir parfois lance deux fois la commande \infol{makegcm} afin de générer l'exécutable gcm.e provient d'un léger défaut d'estimation des interdépendances entres fichiers sources du script.} pour que le programme \infol{gcm.e} soit produit.

Une fois le modèle recompilé, lancer une nouvelle simulation.
Pour ce faire, créer un nouveau sous-répertoire de \infol{LMDZ5} et y copier les fichiers de conditions au limites et fichiers de paramètres (\infol{*.def, star*nc, limit.nc})
 depuis le répertoire \infol{BENCH48x36x19}, ainsi que l'executable \infol{gcm.e} fraîchement compilé.

Puis lancer \infol{./gcm.e $>$ listing 2$>$\&1} (la redirection des affichages du modèle dans un fichier texte permet de garder une trace de l'exécution).
La simulation terminée, on peut comparer, à l'aide de la commande \infol{diff}, le  résultat des simulations (comparer les fichiers \infol{listing}, \infol{restart.nc} et \infol{restartphy.nc} des deux simulations).
Il se trouve qu'à la date de la formation 2012, les changements entre les dernières {\em testing} ne sont pas sensés changer les résultats numériques (fichiers \infol{restart.nc} et \infol{restartphy.nc}), seuls quelques changements dans les affichages informatifs (fichiers \infol{listing}) devraient apparaître.

Une fois cet exercice fini, revenir à la dernière version {\em testing} du modèle en se plaçant dans le répertoire \infol{LMDZ5}:
\begin{verbatim}
svn update
\end{verbatim}
A noter que utiliser \infol{svn update} sans préciser de numéro de version permet de se mettre à jour sur la version la plus récente de la branche (à utiliser régulièrement et sans modération pour rester à jour avec les évolutions du modèle!).

\section{Lancement d'un test de sensibilité}

Ensuite, on change quelque chose dans un .def.
On peut par exemple désactiver les paramétrisations de l'effet de l'orographie sous-maille en
desactivant les clefs \infol{ok\_orodr} et \infol{ok\_orolf} dans \infol{physiq.def.}
On peut aussi changer la constante d'auto-conversion d'eau nuageuse en pluie avec la constante \infol{cld\_tau\_lsc} dans \infol{physiq.def}, la concentration du CO$_2$ atmosphérique, etc.

Relancer ensuite une simulation (dans un nouveau répertoire) et regarder les différences entre les résultats des deux simulations.


\section{Modification des sorties}

Les sorties du modèle sont contrôlées dans le fichier \infol{config.def} par les lignes suivantes :
\begin{verbatim}
phys_out_filekeys=       y       y       n       y       n
phys_out_filenames=      histmth histday histhf  histins histLES
phys_out_filetimesteps=  5day    1day    1hr     6hr     6hr
phys_out_filelevels=     10      5       0       4       4
phys_out_filetypes=      ave(X)  ave(X)  ave(X) inst(X) inst(X)
\end{verbatim}
Avec ce réglage, vous avez sorti un fichier \verb+ histmth.nc +
qui contient en fait une moyenne sur 5 jours et un fichier
\verb+ histday.nc + contenant des moyennes journalières (5 états).

 Vous pouvez regarder la liste des variables disponibles en exécutant la commande\\
\begin{verbatim}
ncdump -h histmth.nc | grep long_name
\end{verbatim}
dans le répertoire où la simulation de test a tourné.

Vous pouvez aussi relancer la simulation en sortant quelques 
variables à plus haute fréquence (T2m, pression de surface, précipitation ...).
Par exemple en modifiant les lignes :
\begin{verbatim}
phys_out_filekeys=       y       y       y       y       y
phys_out_filenames=      histmth histday histhf  histts histhfm
phys_out_filetimesteps=  10day   1day    1hr     1ts     1hr
phys_out_filelevels=     10      5       0       0       0
phys_out_filetypes=      ave(X)  ave(X)  inst(X) inst(X)  ave(X)
flag_t2m=                10      10       1       1       1
flag_psol=               10      10       1       1       0
flag_precip=             10      10       0       1       1
\end{verbatim}



\end{document}
\begin{verbatim}
		lon: Longitude ;
		lat: Latitude ;
		presnivs: Vertical levels ;
		Ahyb: Ahyb comp of Hyb Cord ;
		Bhyb: Bhyb comp of Hyb Cord ;
		Alt: Height approx for scale heigh of 8km at levels ;
		t_ave_00864000: Time axis ;
		t_t_min_00864000: Time axis ;
		t_t_max_00864000: Time axis ;
		t_inst_00864000: Time axis ;
		aire: Grid area ;
		contfracATM: % sfce ter+lic ;
		phis: Surface geop.height ;
		contfracOR: % sfce terre OR ;
		aireTER: Grid area CONT ;
		flat: Latent heat flux ;
		slp: Sea Level Pressure ;
		tsol: Surface Temperature ;
		t2m: Temperature 2m ;
		t2m_min: Temp 2m min ;
		t2m_max: Temp 2m max ;
		wind10m: 10-m wind speed ;
		wind10max: 10m wind speed max ;
		sicf: Sea-ice fraction ;
		q2m: Specific humidity 2m ;
		u10m: Vent zonal 10m ;
		v10m: Vent meridien 10m ;
		psol: Surface Pressure ;
		qsurf: Surface Air humidity ;
		qsol: Soil watter content ;
		ndayrain: Number of dayrain(liq+sol) ;
		precip: Precip Totale liq+sol ;
		plul: Large-scale Precip. ;
		pluc: Convective Precip. ;
		snow: Snow fall ;
		msnow: Surface snow amount ;
		fsnow: Surface snow area fraction ;
		evap: Evaporat ;
		tops: Solar rad. at TOA ;
		tops0: CS Solar rad. at TOA ;
		topl: IR rad. at TOA ;
		topl0: IR rad. at TOA ;
		SWupTOA: SWup at TOA ;
		SWupTOAclr: SWup clear sky at TOA ;
		SWdnTOA: SWdn at TOA ;
		SWdnTOAclr: SWdn clear sky at TOA ;
		nettop: Net dn radiatif flux at TOA ;
		SWup200: SWup at 200mb ;
		SWup200clr: SWup clear sky at 200mb ;
		SWdn200: SWdn at 200mb ;
		SWdn200clr: SWdn clear sky at 200mb ;
		LWup200: LWup at 200mb ;
		LWup200clr: LWup clear sky at 200mb ;
		LWdn200: LWdn at 200mb ;
		LWdn200clr: LWdn clear sky at 200mb ;
		sols: Solar rad. at surf. ;
		sols0: Solar rad. at surf. ;
		soll: IR rad. at surface ;
		radsol: Rayonnement au sol ;
		soll0: IR rad. at surface ;
		SWupSFC: SWup at surface ;
		SWupSFCclr: SWup clear sky at surface ;
		SWdnSFC: SWdn at surface ;
		SWdnSFCclr: SWdn clear sky at surface ;
		LWupSFC: Upwd. IR rad. at surface ;
		LWdnSFC: Down. IR rad. at surface ;
		LWupSFCclr: CS Upwd. IR rad. at surface ;
		LWdnSFCclr: Down. CS IR rad. at surface ;
		bils: Surf. total heat flux ;
		sens: Sensible heat flux ;
		fder: Heat flux derivation ;
		ffonte: Thermal flux for snow melting ;
		fqcalving: Ice Calving ;
		fqfonte: Land ice melt ;
		taux: Zonal wind stress ;
		tauy: Meridional wind stress ;
		pourc_ter: % ter ;
		fract_ter: Fraction ter ;
		taux_ter: Zonal wind stresster ;
		tauy_ter: Meridional wind stress ter ;
		tsol_ter: Temperature ter ;
		u10m_ter: Vent Zonal 10m ter ;
		evap_ter: evaporation at surface ter ;
		v10m_ter: Vent meredien 10m ter ;
		t2m_ter: Temp 2m ter ;
		sens_ter: Sensible heat flux ter ;
		lat_ter: Latent heat flux ter ;
		flw_ter: LW ter ;
		fsw_ter: SW ter ;
		wbils_ter: Bilan sol ter ;
		wbilo_ter: Bilan eau ter ;
		albe_ter: Albedo VIS surf. ter ;
		rugs_ter: Surface roughness ter ;
		ages_ter: Snow age ;
		pourc_lic: % lic ;
		fract_lic: Fraction lic ;
		taux_lic: Zonal wind stresslic ;
		tauy_lic: Meridional wind stress lic ;
		tsol_lic: Temperature lic ;
		u10m_lic: Vent Zonal 10m lic ;
		evap_lic: evaporation at surface lic ;
		v10m_lic: Vent meredien 10m lic ;
		t2m_lic: Temp 2m lic ;
		sens_lic: Sensible heat flux lic ;
		lat_lic: Latent heat flux lic ;
		flw_lic: LW lic ;
		fsw_lic: SW lic ;
		wbils_lic: Bilan sol lic ;
		wbilo_lic: Bilan eau lic ;
		albe_lic: Albedo VIS surf. lic ;
		rugs_lic: Surface roughness lic ;
		ages_lic: Snow age ;
		pourc_oce: % oce ;
		fract_oce: Fraction oce ;
		taux_oce: Zonal wind stressoce ;
		tauy_oce: Meridional wind stress oce ;
		tsol_oce: Temperature oce ;
		u10m_oce: Vent Zonal 10m oce ;
		evap_oce: evaporation at surface oce ;
		v10m_oce: Vent meredien 10m oce ;
		t2m_oce: Temp 2m oce ;
		sens_oce: Sensible heat flux oce ;
		lat_oce: Latent heat flux oce ;
		flw_oce: LW oce ;
		fsw_oce: SW oce ;
		wbils_oce: Bilan sol oce ;
		wbilo_oce: Bilan eau oce ;
		albe_oce: Albedo VIS surf. oce ;
		rugs_oce: Surface roughness oce ;
		ages_oce: Snow age ;
		pourc_sic: % sic ;
		fract_sic: Fraction sic ;
		taux_sic: Zonal wind stresssic ;
		tauy_sic: Meridional wind stress sic ;
		tsol_sic: Temperature sic ;
		u10m_sic: Vent Zonal 10m sic ;
		evap_sic: evaporation at surface sic ;
		v10m_sic: Vent meredien 10m sic ;
		t2m_sic: Temp 2m sic ;
		sens_sic: Sensible heat flux sic ;
		lat_sic: Latent heat flux sic ;
		flw_sic: LW sic ;
		fsw_sic: SW sic ;
		wbils_sic: Bilan sol sic ;
		wbilo_sic: Bilan eau sic ;
		albe_sic: Albedo VIS surf. sic ;
		rugs_sic: Surface roughness sic ;
		ages_sic: Snow age ;
		alb1: Surface VIS albedo ;
		alb2: Surface Near IR albedo ;
		cdrm: Momentum drag coef. ;
		cdrh: Heat drag coef. ;
		cldl: Low-level cloudiness ;
		cldm: Mid-level cloudiness ;
		cldh: High-level cloudiness ;
		cldt: Total cloudiness ;
		cldq: Cloud liquid water path ;
		lwp: Cloud water path ;
		iwp: Cloud ice water path ;
		ue: Zonal energy transport ;
		ve: Merid energy transport ;
		uq: Zonal humidity transport ;
		vq: Merid humidity transport ;
		cape: Conv avlbl pot ener ;
		pbase: Cld base pressure ;
		ptop: Cld top pressure ;
		fbase: Cld base mass flux ;
		prw: Precipitable water ;
		cape_max: CAPE max. ;
		upwd: saturated updraft ;
		Ma: undilute adiab updraft ;
		dnwd: saturated downdraft ;
		dnwd0: unsat. downdraft ;
		mc: Convective mass flux ;
		ftime_con: Fraction of time convection Occurs ;
		s_pblh: Boundary Layer Height ;
		s_pblt: t at Boundary Layer Height ;
		s_lcl: Condensation level ;
		s_therm: Exces du thermique ;
		u850: Zonal wind 850 hPa ;
		v850: Meridional wind 850 hPa ;
		w850: Vertical wind 850 hPa ;
		z850: Geopotential height 850 hPa ;
		q850: Specific humidity 850 hPa ;
		t850: Temperature 850 hPa ;
		u700: Zonal wind 700 hPa ;
		v700: Meridional wind 700 hPa ;
		w700: Vertical wind 700 hPa ;
		z700: Geopotential height 700 hPa ;
		q700: Specific humidity 700 hPa ;
		t700: Temperature 700 hPa ;
		u500: Zonal wind 500 hPa ;
		v500: Meridional wind 500 hPa ;
		w500: Vertical wind 500 hPa ;
		z500: Geopotential height 500 hPa ;
		q500: Specific humidity 500 hPa ;
		t500: Temperature 500 hPa ;
		u200: Zonal wind 200 hPa ;
		v200: Meridional wind 200 hPa ;
		w200: Vertical wind 200 hPa ;
		z200: Geopotential height 200 hPa ;
		q200: Specific humidity 200 hPa ;
		t200: Temperature 200 hPa ;
		u100: Zonal wind 100 hPa ;
		v100: Meridional wind 100 hPa ;
		w100: Vertical wind 100 hPa ;
		z100: Geopotential height 100 hPa ;
		q100: Specific humidity 100 hPa ;
		t100: Temperature 100 hPa ;
		u50: Zonal wind 50  hPa ;
		v50: Meridional wind 50  hPa ;
		w50: Vertical wind 50  hPa ;
		z50: Geopotential height 50  hPa ;
		q50: Specific humidity 50  hPa ;
		t50: Temperature 50  hPa ;
		u10: Zonal wind 10  hPa ;
		v10: Meridional wind 10  hPa ;
		w10: Vertical wind 10  hPa ;
		z10: Geopotential height 10  hPa ;
		q10: Specific humidity 10  hPa ;
		t10: Temperature 10  hPa ;
		t_oce_sic: Temp mixte oce-sic ;
		weakinv: Weak inversion ;
		dthmin: dTheta mini ;
		rh2m: Relative humidity at 2m ;
		rh2m_min: Min Relative humidity at 2m ;
		rh2m_max: Max Relative humidity at 2m ;
		qsat2m: Saturant humidity at 2m ;
		tpot: Surface air potential temperature ;
		tpote: Surface air equivalent potential temperature ;
		SWnetOR: Sfce net SW radiation OR ;
		SWdownOR: Sfce incident SW radiation OR ;
		LWdownOR: Sfce incident LW radiation OR ;
		snowl: Solid Large-scale Precip. ;
		solldown: Down. IR rad. at surface ;
		dtsvdfo: Boundary-layer dTs(o) ;
		dtsvdft: Boundary-layer dTs(t) ;
		dtsvdfg: Boundary-layer dTs(g) ;
		dtsvdfi: Boundary-layer dTs(g) ;
		rugs: rugosity ;
		ec550aer: Extinction at 550nm ;
		lwcon: Cloud liquid water content ;
		iwcon: Cloud ice water content ;
		temp: Air temperature ;
		theta: Potential air temperature ;
		ovap: Specific humidity ;
		ovapinit: Specific humidity (begin of timestep) ;
		geop: Geopotential height ;
		vitu: Zonal wind ;
		vitv: Meridional wind ;
		vitw: Vertical wind ;
		pres: Air pressure ;
		paprs: Air pressure Inter-Couches ;
		mass: Masse Couches ;
		zfull: Altitude of full pressure levels ;
		zhalf: Altitude of half pressure levels ;
		rneb: Cloud fraction ;
		rnebcon: Convective Cloud Fraction ;
		rhum: Relative humidity ;
		ozone: Ozone mole fraction ;
		dtphy: Physics dT ;
		dqphy: Physics dQ ;
		cldtau: Cloud optical thickness ;
		cldemi: Cloud optical emissivity ;
		pr_con_l: Convective precipitation lic ;
		pr_con_i: Convective precipitation ice ;
		pr_lsc_l: Large scale precipitation lic ;
		pr_lsc_i: Large scale precipitation ice ;
		re: Cloud droplet effective radius ;
		fl: Denominator of Cloud droplet effective radius ;
		kz: Kz melange ;
		kz_max: Kz melange max ;
		clwcon: Convective Cloud Liquid water content ;
		dtdyn: Dynamics dT ;
		dqdyn: Dynamics dQ ;
		dudyn: Dynamics dU ;
		dvdyn: Dynamics dV ;
		dtcon: Convection dT ;
		ducon: Convection du ;
		dqcon: Convection dQ ;
		dtlsc: Condensation dT ;
		dtlschr: Large-scale condensational heating rate ;
		dqlsc: Condensation dQ ;
		dtvdf: Boundary-layer dT ;
		dqvdf: Boundary-layer dQ ;
		dteva: Reevaporation dT ;
		dqeva: Reevaporation dQ ;
		ptconv: POINTS CONVECTIFS ;
		ratqs: RATQS ;
		dtthe: Thermal dT ;
		dtajs: Dry adjust. dT ;
		dqajs: Dry adjust. dQ ;
		dtswr: SW radiation dT ;
		dtsw0: CS SW radiation dT ;
		dtlwr: LW radiation dT ;
		dtlw0: CS LW radiation dT ;
		dtec: Cinetic dissip dT ;
		duvdf: Boundary-layer dU ;
		dvvdf: Boundary-layer dV ;
		rsu: SW upward radiation ;
		rsd: SW downward radiation ;
		rlu: LW upward radiation ;
		rld: LW downward radiation ;
		rsucs: SW CS upward radiation ;
		rsdcs: SW CS downward radiation ;
		rlucs: LW CS upward radiation ;
		rldcs: LW CS downward radiation ;
		tnt: Tendency of air temperature ;
		tntc: Tendency of air temperature due to Moist Convection ;
		tntr: Air temperature tendency due to Radiative heating ;
		tntscpbl: Air temperature tendency due to St cloud and precipitation and BL mixing ;
		tnhus: Tendency of specific humidity ;
		tnhusc: Tendency of specific humidity due to convection ;
		tnhusscpbl: Tendency of Specific humidity due to ST cl, precip and BL mixing ;
		evu: Eddy viscosity coefficient for Momentum Variables ;
		h2o: Mass Fraction of Water ;
		mcd: Downdraft COnvective Mass Flux ;
		dmc: Deep COnvective Mass Flux ;
		ref_liq: Effective radius of convective cloud liquid water particle ;
		ref_ice: Effective radius of startiform cloud ice particle ;
		RN: Tracer RNVL1 ;
		PB: Tracer PBVL1 ;

\end{verbatim}

