next up previous contents
suivant: Faire tourner le modèle: monter: main précédent: Organisation informatique et compilation   Table des matières

Sous-sections


Entrées/Sorties

format NetCDF

Les entrées/sorties du GCM sont écrites au format NetCDF (Network Common Data Form). NetCDF est une interface pour le stockage et l'accès aux données géophysiques, et une librairie qui fournit une implémentation de cette interface. La librairie NetCDF définit aussi un format indépendant de la machine pour représenter les données scientifiques. Ensembles, interface, librairie et format permettent la création, l`accès et le partage des données scientifiques. NetCDF a été développé par le centre de programme Unidata à Boulder, Colorado. Les sources sont disponibles gratuitement depuis le site web d'Unidata.

Un jeu de données sous format NetCDF se compose d'un seul fichier, car il est auto-descriptif.

L'éditeur de fichiers NetCDF: ncdump

L'éditeur est inclu dans la librairie NetCDF. Par defaut il permet de générer une représentation ASCII en sortie standard du fichier NetCDF spécifié en entrée.

Principales commandes de ncdump

ncdump histmth.nc

édite le fichier NetCDF "histmth.nc".

ncdump -c histmth.nc

Affiche les valeurs des variables coordonnées (variables qui sont aussi des dimensions), ainsi que les déclarations, variables et valeurs d'attribut. Les valeurs des données de variables non coordonnées ne sont pas affichées en sortie.

ncdump -h histmth.nc

Montre seulement l'en-tête informative du fichier, qui est la déclaration des dimensions, variables et attribut, mais pas les valeurs de ces variables. La sortie est identique à celle de l'option -c sauf que les valeurs de variables coordonnées ne sont pas incluses.

ncdump -v var1,...,varn histmth.nc

La sortie inclue les valeurs des variables spécifiées, en plus des déclarations de toutes les dimensions, variables et attributs. Plus d'une variable peut être spécifiée dans la liste suivant cette option. La liste doit être un argument simple pour la commande et ne pas contenir d'espace. Si aucune variable n'est spécifiée, la commande affichera par défaut la valeur de toutes les variables du fichier.

Les commandes NCO

L'ensemble de commandes nco permet de

Visualisation graphique des fichiers NetCDF sous GrAds

GrAdS (The Grid Analysis and Display System) est un logiciel graphique du domaine publique qui a été développé par Brian Doty au "Center for Ocean-Land-Atmosphere (COLA)".

Il permet entre autre de visualiser directement des données stockées sous le format NetCDF. On peut voir par exemple figure 6.1 la visualisation sous GrADS des données de température à un instant donné.

Figure 6.1: Exemple de visualisation sous GrADS des données de temperature à un instant donné
Cependant, contrairement à NetCDF, GrADS ne reconnait que des fichiers où toutes les variables sont stockées sur la même grille horizontale. Ces variables peuvent être de 1, 2, 3 ou 4 dimensions (X,Y,Z et t).

GrADS est également accessible par le WWW.

Le fichier de données (.nc)

Le fichier de données est un fichier binaire à accès direct. Il comprend deux parties:

La figure 6.2 représente le stockage dans le fichier .nc des vents u et v (champs 4D: X,Y,Z et t), et de la pression de surface ps (champ 3D: X,Y et t).

Figure 6.2: Exemple de stockage des vents u et v (champs 4D: X,Y,Z et t), et de la pression de surface ps (champ 3D: X,Y et t)
\includegraphics[width=8cm]{Fig/gdata.eps}

Entrées

Des exemples de fichiers d'initialisation se trouvent dans le répertoire

$PATH1/LMDZ.MARS/deftank

Le GCM 3D a besoin en entrée de deux fichiers (NetCDF) d'initialisation:

-start.nc contenant les états initiaux des variables de la dynamique.

-startphy.nc contenant les états initiaux des variables de la physique.

-limit.nc contenant les conditions aux limites en surface (température de surface des océans, rugosité de surface, albédo).

et les fichiers (ascii) de paramètres:

-run.def.def les paramètres principaux contr^olant la longueur de simulations et le nom des autres fichiers de configuration.

-gcm.def les paramètres de contr^ole de la partie dynamique.

-physiq.def les paramètres de contr^ole des paramétrisations physiques.

-traceur.def les paramètres de contr^ole des traceurs.

run.def

#
# $Header: /users/lmdz/cvsroot/LMDZ.3.3/run.def,v 1.2.2.3 2002/07/12 14:11:18 lmdzadmin Exp $
#
INCLUDEDEF=physiq.def
INCLUDEDEF=gcm.def
INCLUDEDEF=orchidee.def
## Jour de l'etat initial ( = 350  si 20 Decembre ,par expl. ,comme ici )
dayref=1
##  Annee de l'etat  initial (   avec  4  chiffres   )
anneeref=1979
## Nombre de jours d'integration
nday=30
## periode de sortie des variables de controle (en pas)
iconser=10
## periode d'ecriture du fichier histoire (en jour)
iecri=1
## periode de stockage fichier dyn_hist_ave et dynzon (en jour)
periodav=30.


gcm.def

Un fichier gcm.def typique est donné en exemple ci-dessous. Le choix des variables à règler est simple (e.g. durée de l'intégration nday), tandis que d`autres n'ont pas à être modifiées dans le cadre d'une utilisation normale. Quelques remarques cependant :

Contenu de gcm.def:

## $Header$
## nombre de pas par jour (multiple de iperiod) ( ici pour  dt = 1 min )      
day_step=480
iapp_tracvl=5
## periode pour le pas Matsuno (en pas)
iperiod=5
## periode de la dissipation (en pas)
idissip=5
## choix de l'operateur de dissipation (star ou  non star )
lstardis=y
## nombre d'iterations de l'operateur de dissipation   gradiv
nitergdiv=1
## nombre d'iterations de l'operateur de dissipation  nxgradrot
nitergrot=2
## nombre d'iterations de l'operateur de dissipation  divgrad            
niterh=2
## temps de dissipation des plus petites long.d ondes pour u,v (gradiv)  
tetagdiv=43200.
## temps de dissipation des plus petites long.d ondes pour u,v(nxgradrot)
tetagrot=21600.
## temps de dissipation des plus petites long.d ondes pour  h ( divgrad) 
tetatemp=21600.
## coefficient pour gamdissip                                            
coefdis=0.
## choix du shema d'integration temporelle (Matsuno ou Matsuno-leapfrog) 
purmats=n
## avec ou sans physique                                                 
iflag_phys=1
## periode de la physique (en pas)                                       
iphysiq=10
## frequence (en  jours ) de l'ecriture du fichier histphy               
ecritphy=0.02
##  Cycle diurne  ou non                 
cycle_diurne=y
##  Soil Model  ou non               
soil_model=y
##  Choix ou non  de  New oliq               
new_oliq=y
##  Orodr  ou  non   pour l orographie              
ok_orodr=y
##  Orolf  ou  non   pour l orographie              
ok_orolf=y
##   Si = .T. ,  lecture du fichier limit avec la bonne annee             
ok_limitvrai=n
## Nombre  d'appels des routines de rayonnements ( par jour)                 
nbapp_rad=12
##  Flag  pour la convection (1 pour LMD, 2 pour Tiedtke, 3 KE, 4 KE vect)
iflag_con=3
## longitude en degres du centre du zoom                                 
clon=0.
## latitude en degres du centre du zoom                                  
clat=0.
## facteur de grossissement du zoom,selon longitude                      
grossismx=1.0
## facteur de grossissement du zoom ,selon latitude                      
grossismy=1.0
##  Fonction  f(y)  hyperbolique  si = .true.  , sinon  sinusoidale         
fxyhypb=y
## extension en longitude  de la zone du zoom  ( fraction de la zone totale)
dzoomx=0.0
## extension en latitude de la zone  du zoom  ( fraction de la zone totale)
dzoomy=0.0
##raideur du zoom en  X
taux=3.
##raideur du zoom en  Y
tauy=3.
##  Fonction  f(y) avec y = Sin(latit.) si = .true. , sinon y = latit.         
ysinus=y


physiq.def

#
## $Header: /users/lmdz/cvsroot/LMDZ.3.3/physiq.def,v 1.1.2.1 2002/07/12
14:11:18 lmdzadmin Exp $
#
#
# Automatically generated make config: don't edit
#

OCEAN=force
VEGET=n
OK_journe=y
OK_mensuel=y
OK_instan=n
#
# parametres KE
#
epmax = .99
ok_adj_ema = n
iflag_clw = 1
#
# parametres nuages
#
cld_lc_lsc = 2.6e-4
cld_lc_con = 2.6e-4
cld_tau_lsc = 3600.
cld_tau_con = 3600.
ffallv_lsc = 1.
ffallv_con = 1.
coef_eva = 2.e-5
reevap_ice = y
iflag_cldcon = 3
iflag_pdf = 1
fact_cldcon = 1.
facttemps = 1.e-4
ok_newmicro = y
ratqsbas = 0.005
ratqshaut = 0.33
rad_froid = 35
rad_chau1 = 12
rad_chau2 = 11
if_ebil = 2
R_ecc = 0.016715
R_peri = 102.7
R_incl = 23.441
solaire = 1365.
co2_ppm = 348.
#RCO2 = co2_ppm * 1.0e-06  * 44.011/28.97
#RCO2 = 348. * 1.0e-06  * 44.011/28.97
#RCO2 =   5.286789092164308E-04
CH4_ppb = 1650.
#RCH4 = 1.65E-06* 16.043/28.97
#RCH4 =   9.137366240938903E-07
N2O_ppb = 306.
#RN2O = 306.E-09* 44.013/28.97
#RN2O =    4.648939592682085E-07
CFC11_ppt = 280.
#RCFC11 = 280.E-12* 137.3686/28.97
#RCFC11 =    1.327690990680013E-09
CFC12_ppt = 484.
#RCFC12 = 484.E-12* 120.9140/28.97
#RCFC12 =    2.020102726958923E-09
#
# parametres simulateur ISCCP
#
#top_height = 1 ou 3
top_height = 1
#overlap = 1, 2 ou 3
overlap = 3
#cdmmax
cdmmax = 2.5E-3
#cdhmax
cdhmax = 2.0E-3
#kstable en dehors des terres
ksta = 1.0e-10
#kstable sur terres
ksta_ter = 1.0e-7
#ok_kzmin : calcul Kzmin dans la CL de surface
ok_kzmin=y

iflag_thermals = 0
nsplit_thermals = 10
iflag_pbl=1


traceur.def

4
10 10 q01
10 10 q02
10 10 q03
10 10 q04

les fichiers d'initialisation: start et startphy

Figure 6.3: Organisation des fichiers NetCDF
Les fichiers start et startphy, comme tous les fichier NetCDF du GCM, sont bâtis sur le même modèle (voir la composition d'un fichier NetCDF figure 6.3). Ils contiennent:
- un en-tête constitué d'une variable "contrôle" suivie d'une série de variables définissant la grille (physique ou dynamique).
- une série de variables non temporelles donnant des informations sur les conditions de surface de la planète.
- une variable "temps" donnant les valeurs des différents instants auxquels les variables temporelles sont stockées (une seule valeur de temps (t=0) pour start et startphy, puisqu'il s`agit des conditions intiales).
- les variables d'état du modèle sur la grille correspondante aux différents instants de la simulation sélectionnés (réglage avec un pas de temps) pour les fichiers de sortie en cours de simulation (histmth, histADEF, etc... ).

Visualisons à l`aide de l'éditeur ncdump le contenu d'un fichier start:

ncdump -h start.nc

netcdf start {
dimensions:
	index = 100 ;
	rlonu = 97 ;
	rlatu = 72 ;
	rlonv = 97 ;
	rlatv = 71 ;
	sigs = 19 ;
	sig = 20 ;
	temps = UNLIMITED ; // (1 currently)
variables:
	float controle(index) ;
		controle:title = "Parametres de controle" ;
	float rlonu(rlonu) ;
		rlonu:title = "Longitudes des points U" ;
	float rlatu(rlatu) ;
		rlatu:title = "Latitudes des points U" ;
	float rlonv(rlonv) ;
		rlonv:title = "Longitudes des points V" ;
	float rlatv(rlatv) ;
		rlatv:title = "Latitudes des points V" ;
	float nivsigs(sigs) ;
		nivsigs:title = "Numero naturel des couches s" ;
	float nivsig(sig) ;
		nivsig:title = "Numero naturel des couches sigma" ;
	float ap(sig) ;
		ap:title = "Coefficient A pour hybride" ;
	float bp(sig) ;
		bp:title = "Coefficient B pour hybride" ;
	float presnivs(sigs) ;
	float cu(rlatu, rlonu) ;
		cu:title = "Coefficient de passage pour U" ;
	float cv(rlatv, rlonv) ;
		cv:title = "Coefficient de passage pour V" ;
	float aire(rlatu, rlonv) ;
		aire:title = "Aires de chaque maille" ;
	float phisinit(rlatu, rlonv) ;
		phisinit:title = "Geopotentiel au sol" ;
	float temps(temps) ;
		temps:title = "Temps de simulation" ;
		temps:units = "days since 1979-12-01 00:00:00" ;
	float ucov(temps, sigs, rlatu, rlonu) ;
		ucov:title = "Vitesse U" ;
	float vcov(temps, sigs, rlatv, rlonv) ;
		vcov:title = "Vitesse V" ;
	float teta(temps, sigs, rlatu, rlonv) ;
		teta:title = "Temperature" ;
	float q01(temps, sigs, rlatu, rlonv) ;
		q01:title = "Traceurs q01" ;
	float q02(temps, sigs, rlatu, rlonv) ;
		q02:title = "Traceurs q02" ;
	float q03(temps, sigs, rlatu, rlonv) ;
		q03:title = "Traceurs q03" ;
	float q04(temps, sigs, rlatu, rlonv) ;
		q04:title = "Traceurs q04" ;
	float masse(temps, sigs, rlatu, rlonv) ;
		masse:title = "C est quoi ?" ;
	float ps(temps, rlatu, rlonv) ;
		ps:title = "Pression au sol" ;

// global attributes:
		:title = "Fichier demmarage dynamique" ;
}

Listing du contenu d'un fichier startphy:

ncdump -h startphy.nc

netcdf startphy {
dimensions:
	index = 100 ;
	points_physiques = 6722 ;
	horizon_vertical = 127718 ;
variables:
	float controle(index) ;
		controle:title = "Parametres de controle" ;
	float longitude(points_physiques) ;
		longitude:title = "Longitudes de la grille physique" ;
	float latitude(points_physiques) ;
		latitude:title = "Latitudes de la grille physique" ;
	float masque(points_physiques) ;
		masque:title = "masque terre mer" ;
	float FTER(points_physiques) ;
		FTER:title = "fraction de continent" ;
	float FLIC(points_physiques) ;
		FLIC:title = "fraction glace de terre" ;
	float FOCE(points_physiques) ;
		FOCE:title = "fraction ocean" ;
	float FSIC(points_physiques) ;
		FSIC:title = "fraction glace mer" ;
	float TS01(points_physiques) ;
		TS01:title = "Temperature de surface No.01" ;
	float TS02(points_physiques) ;
		TS02:title = "Temperature de surface No.02" ;
	float TS03(points_physiques) ;
		TS03:title = "Temperature de surface No.03" ;
	float TS04(points_physiques) ;
		TS04:title = "Temperature de surface No.04" ;
	float Tsoil01srf01(points_physiques) ;
		Tsoil01srf01:title = "Temperature du sol No.01srf01" ;
	float Tsoil02srf01(points_physiques) ;
		Tsoil02srf01:title = "Temperature du sol No.02srf01" ;
	float Tsoil03srf01(points_physiques) ;
		Tsoil03srf01:title = "Temperature du sol No.03srf01" ;
	float Tsoil04srf01(points_physiques) ;
		Tsoil04srf01:title = "Temperature du sol No.04srf01" ;
	float Tsoil05srf01(points_physiques) ;
		Tsoil05srf01:title = "Temperature du sol No.05srf01" ;
	float Tsoil06srf01(points_physiques) ;
		Tsoil06srf01:title = "Temperature du sol No.06srf01" ;
	float Tsoil07srf01(points_physiques) ;
		Tsoil07srf01:title = "Temperature du sol No.07srf01" ;
	float Tsoil08srf01(points_physiques) ;
		Tsoil08srf01:title = "Temperature du sol No.08srf01" ;
	float Tsoil09srf01(points_physiques) ;
		Tsoil09srf01:title = "Temperature du sol No.09srf01" ;
	float Tsoil10srf01(points_physiques) ;
		Tsoil10srf01:title = "Temperature du sol No.10srf01" ;
	float Tsoil11srf01(points_physiques) ;
		Tsoil11srf01:title = "Temperature du sol No.11srf01" ;
	float Tsoil01srf02(points_physiques) ;
		Tsoil01srf02:title = "Temperature du sol No.01srf02" ;
	float Tsoil02srf02(points_physiques) ;
		Tsoil02srf02:title = "Temperature du sol No.02srf02" ;
	float Tsoil03srf02(points_physiques) ;
		Tsoil03srf02:title = "Temperature du sol No.03srf02" ;
	float Tsoil04srf02(points_physiques) ;
		Tsoil04srf02:title = "Temperature du sol No.04srf02" ;
	float Tsoil05srf02(points_physiques) ;
		Tsoil05srf02:title = "Temperature du sol No.05srf02" ;
	float Tsoil06srf02(points_physiques) ;
		Tsoil06srf02:title = "Temperature du sol No.06srf02" ;
	float Tsoil07srf02(points_physiques) ;
		Tsoil07srf02:title = "Temperature du sol No.07srf02" ;
	float Tsoil08srf02(points_physiques) ;
		Tsoil08srf02:title = "Temperature du sol No.08srf02" ;
	float Tsoil09srf02(points_physiques) ;
		Tsoil09srf02:title = "Temperature du sol No.09srf02" ;
	float Tsoil10srf02(points_physiques) ;
		Tsoil10srf02:title = "Temperature du sol No.10srf02" ;
	float Tsoil11srf02(points_physiques) ;
		Tsoil11srf02:title = "Temperature du sol No.11srf02" ;
	float Tsoil01srf03(points_physiques) ;
		Tsoil01srf03:title = "Temperature du sol No.01srf03" ;
	float Tsoil02srf03(points_physiques) ;
		Tsoil02srf03:title = "Temperature du sol No.02srf03" ;
	float Tsoil03srf03(points_physiques) ;
		Tsoil03srf03:title = "Temperature du sol No.03srf03" ;
	float Tsoil04srf03(points_physiques) ;
		Tsoil04srf03:title = "Temperature du sol No.04srf03" ;
	float Tsoil05srf03(points_physiques) ;
		Tsoil05srf03:title = "Temperature du sol No.05srf03" ;
	float Tsoil06srf03(points_physiques) ;
		Tsoil06srf03:title = "Temperature du sol No.06srf03" ;
	float Tsoil07srf03(points_physiques) ;
		Tsoil07srf03:title = "Temperature du sol No.07srf03" ;
	float Tsoil08srf03(points_physiques) ;
		Tsoil08srf03:title = "Temperature du sol No.08srf03" ;
	float Tsoil09srf03(points_physiques) ;
		Tsoil09srf03:title = "Temperature du sol No.09srf03" ;
	float Tsoil10srf03(points_physiques) ;
		Tsoil10srf03:title = "Temperature du sol No.10srf03" ;
	float Tsoil11srf03(points_physiques) ;
		Tsoil11srf03:title = "Temperature du sol No.11srf03" ;
	float Tsoil01srf04(points_physiques) ;
		Tsoil01srf04:title = "Temperature du sol No.01srf04" ;
	float Tsoil02srf04(points_physiques) ;
		Tsoil02srf04:title = "Temperature du sol No.02srf04" ;
	float Tsoil03srf04(points_physiques) ;
		Tsoil03srf04:title = "Temperature du sol No.03srf04" ;
	float Tsoil04srf04(points_physiques) ;
		Tsoil04srf04:title = "Temperature du sol No.04srf04" ;
	float Tsoil05srf04(points_physiques) ;
		Tsoil05srf04:title = "Temperature du sol No.05srf04" ;
	float Tsoil06srf04(points_physiques) ;
		Tsoil06srf04:title = "Temperature du sol No.06srf04" ;
	float Tsoil07srf04(points_physiques) ;
		Tsoil07srf04:title = "Temperature du sol No.07srf04" ;
	float Tsoil08srf04(points_physiques) ;
		Tsoil08srf04:title = "Temperature du sol No.08srf04" ;
	float Tsoil09srf04(points_physiques) ;
		Tsoil09srf04:title = "Temperature du sol No.09srf04" ;
	float Tsoil10srf04(points_physiques) ;
		Tsoil10srf04:title = "Temperature du sol No.10srf04" ;
	float Tsoil11srf04(points_physiques) ;
		Tsoil11srf04:title = "Temperature du sol No.11srf04" ;
	float DELTAT(points_physiques) ;
		DELTAT:title = "Ecart de la SST (pour slab-ocean)" ;
	float QS01(points_physiques) ;
		QS01:title = "Humidite de surface No.01" ;
	float QS02(points_physiques) ;
		QS02:title = "Humidite de surface No.02" ;
	float QS03(points_physiques) ;
		QS03:title = "Humidite de surface No.03" ;
	float QS04(points_physiques) ;
		QS04:title = "Humidite de surface No.04" ;
	float QSOL(points_physiques) ;
		QSOL:title = "Eau dans le sol (mm)" ;
	float ALBE01(points_physiques) ;
		ALBE01:title = "albedo de surface No.01" ;
	float ALBE02(points_physiques) ;
		ALBE02:title = "albedo de surface No.02" ;
	float ALBE03(points_physiques) ;
		ALBE03:title = "albedo de surface No.03" ;
	float ALBE04(points_physiques) ;
		ALBE04:title = "albedo de surface No.04" ;
	float ALBLW01(points_physiques) ;
		ALBLW01:title = "albedo LW de surface No" ;
	float ALBLW02(points_physiques) ;
		ALBLW02:title = "albedo LW de surface No" ;
	float ALBLW03(points_physiques) ;
		ALBLW03:title = "albedo LW de surface No" ;
	float ALBLW04(points_physiques) ;
		ALBLW04:title = "albedo LW de surface No" ;
	float EVAP01(points_physiques) ;
		EVAP01:title = "Evaporation de surface No.01" ;
	float EVAP02(points_physiques) ;
		EVAP02:title = "Evaporation de surface No.02" ;
	float EVAP03(points_physiques) ;
		EVAP03:title = "Evaporation de surface No.03" ;
	float EVAP04(points_physiques) ;
		EVAP04:title = "Evaporation de surface No.04" ;
	float SNOW01(points_physiques) ;
		SNOW01:title = "Neige de surface No.01" ;
	float SNOW02(points_physiques) ;
		SNOW02:title = "Neige de surface No.02" ;
	float SNOW03(points_physiques) ;
		SNOW03:title = "Neige de surface No.03" ;
	float SNOW04(points_physiques) ;
		SNOW04:title = "Neige de surface No.04" ;
	float RADS(points_physiques) ;
		RADS:title = "Rayonnement net a la surface" ;
	float solsw(points_physiques) ;
		solsw:title = "Rayonnement solaire a la surface" ;
	float sollw(points_physiques) ;
		sollw:title = "Rayonnement IF a la surface" ;
	float fder(points_physiques) ;
		fder:title = "Derive de flux" ;
	float rain_f(points_physiques) ;
		rain_f:title = "precipitation liquide" ;
	float snow_f(points_physiques) ;
		snow_f:title = "precipitation solide" ;
	float RUG01(points_physiques) ;
		RUG01:title = "rugosite de surface No." ;
	float RUG02(points_physiques) ;
		RUG02:title = "rugosite de surface No." ;
	float RUG03(points_physiques) ;
		RUG03:title = "rugosite de surface No." ;
	float RUG04(points_physiques) ;
		RUG04:title = "rugosite de surface No." ;
	float AGESNO01(points_physiques) ;
		AGESNO01:title = "Age de la neige" ;
	float AGESNO02(points_physiques) ;
		AGESNO02:title = "Age de la neige" ;
	float AGESNO03(points_physiques) ;
		AGESNO03:title = "Age de la neige" ;
	float AGESNO04(points_physiques) ;
		AGESNO04:title = "Age de la neige" ;
	float ZMEA(points_physiques) ;
	float ZSTD(points_physiques) ;
	float ZSIG(points_physiques) ;
	float ZGAM(points_physiques) ;
	float ZTHE(points_physiques) ;
	float ZPIC(points_physiques) ;
	float ZVAL(points_physiques) ;
	float RUGSREL(points_physiques) ;
	float TANCIEN(horizon_vertical) ;
	float QANCIEN(horizon_vertical) ;
	float RUGMER(points_physiques) ;
		RUGMER:title = "Longueur de rugosite sur mer" ;
	float CLWCON(points_physiques) ;
		CLWCON:title = "Eau liquide convective" ;
	float RNEBCON(points_physiques) ;
		RNEBCON:title = "Nebulosite convective" ;
	float RATQS(points_physiques) ;
		RATQS:title = "Ratqstitle" ;

// global attributes:
		:title = "Fichier redemmarage physique" ;
}

En-têtes physiques et dynamiques

Il y a deux types d'en-têtes: un pour les fichiers physiques et un pour les fichiers dynamiques. Cet en-tête commence toujours par une variable "contrôle" (décrite un peu plus loin), que l'on affecte différemment pour la physique et pour la dynamique. Les autres variables de l'entête concernent les grilles (physique et dynamique). On retrouve donc:

les coordonnées horizontales
- rlonu, rlatu, rlonv, rlatv pour la dynamique,
- lati, long pour la physique,

les coordonnées verticales
- sig ,s ,sig_s pour la dynamique,
- surf_coor, vert2_coor, vert_coor, hor_coor pour la physique,

des coefficients de passages de la grille physique à la grille dynamique
- cu,cv dans l'entête dynamique uniquement

et pour finir l`aire des mailles
- aire pour la dynamique,
- area pour la physique.

Conditions de surface

Des conditions de surface sont données essentiellement dans les fichiers NetCDF physiques par les variables:
- phisfi pour le géopotentiel au sol initial,
- albedodat pour l`albedo du sol nu,
- inertiedat pour l'inertie thermique du sol,
- zmea, zstd, zsig, zgam et zthe pour le relief sous-maille.

Pour la dynamique:
- physinit pour le géopotentiel au sol initial

Remarque: les variables phisfi et physinit contiennent les mêmes informations (géopotentiel au sol), mais physfi donne les valeurs du géopotentiel sur la grille physique tandis que physinit les donne sur la grille dynamique.

Variables d'état physiques et dynamiques

Pour des raisons de commodité, on stocke dans les fichiers d'initialisation, non pas les variables "naturelles", mais directement les variables utilisées par le modèle.

Pour la dynamique:

-ucov et vcov les vents covariants
Ces variables sont reliées aux vents "naturels" par
ucov = cu * u et vcov = cv * v
-teta la température potentielle,
ou plus précisément l'enthalpie potentielle reliée à T la temperature par $\theta = T\left( \frac{P}{Pref} \right) ^-K$
-q01, q02, etc... les traceurs,
-ps la pression au sol.
-masse la masse d'atmosphère dnas chaque maille.

ucov et vcov, variables "vectorielles", sont stockées respectivement sur les grilles u et v "décalées" de la dynamique (voir section 2.2).
h, q01, ps, masse, variables scalaires, sont stockées sur la grille dite "scalaire" de la dynamique.

Pour la physique:

-co2ice la glace carbonique en surface,
-tsurf la température de surface,
-tsoil la température dans différentes couches sous la surface,
-emis l'emissivité de la surface,
-q2 la variance du vent,
ou plus précisement la racine carrée de l'énergie cinétique turbulente.
-qsurf01, qsurf02, etc... le budget de ``traceur'' en surface (kg.m$^{-2}$),

Toutes ces variables sont stockées sur la grille "physique" (voir section 2.2).

La variable "contrôle"

Qu'ils soient physiques ou dynamiques, les entêtes des fichiers NetCDF du GCM commencent tous par une variable contrôle. Cette variables est un tableau de 100 réels (tableau appellé "tab_cntrl" dans le programme), qui contient les paramètres de contrôle du programme. Ces paramètres, différents pour la physique et la dynamique, sont listés ci-dessous. On peut également visualiser le contenu du tableau tab_cntrl en tapant la commande "ncdump -v controle".

-------------------------------------------------------
tab_cntrl(1)  = FLOAT(iim)      ! nombre de points en longitude
tab_cntrl(2)  = FLOAT(jjm)      ! nombre de points en latitude
tab_cntrl(3)  = FLOAT(llm)      ! nombre de couches
tab_cntrl(4)  = FLOAT(idayref)  ! jour 0
tab_cntrl(5)  = FLOAT(anneeref) ! annee 0
tab_cntrl(6)  = rad     ! rayon de mars(m) ~3397200
tab_cntrl(7)  = omeg    ! vitesse de rotation (rad.s-1)
tab_cntrl(8)  = g       ! gravite (m.s-2) ~3.72
tab_cntrl(9)  = cpp
tab_cntrl(10) = kappa   ! = r/cp  ~0.256793 (=rcp dans physique)
tab_cntrl(11) = daysec ! duree du sol (s)  ~88775
tab_cntrl(12) = dtvr   ! pas de temps de la dynamique (s)
tab_cntrl(13) = etot0  ! energie totale
tab_cntrl(14) = ptot0  ! pression totale
tab_cntrl(15) = ztot0  ! enstrophie totale
tab_cntrl(16) = stot0  ! enthalpie totale
tab_cntrl(17) = ang0   ! moment cinetique
tab_cntrl(18) = pa     
tab_cntrl(19) = preff  ! pression de reference ~670

tab_cntrl(20)  = clon       ! longitude en degres du centre du zoom
tab_cntrl(21)  = clat       ! latitude en degres du centre du zoom
tab_cntrl(22)  = grossismx  ! facteur de grossissement du zoom,selon longitude
tab_cntrl(23)  = grossismy  ! facteur de grossissement du zoom ,selon latitude

tab_cntrl(25) = dzoomx    ! extension en longitude de la zone du zoom
tab_cntrl(26) = dzoomy    ! extension en latitude de la zone du zoom
tab_cntrl(28) = taux      ! raideur du zoom en x 
tab_cntrl(29) = tauy      ! raideur du zoom en y

La variable "contrôle" de l'entête d'un fichier NetCDF physique: startphy

_______________________________________________________
c Info sur la grille physique
      tab_cntrl(1) = float(ngridmx)  ! nombre de points de la grille physique
      tab_cntrl(2) = float(nlayermx) ! nombre de couches
      tab_cntrl(3) = float(idayref)  ! jour 0
 
c Info sur la Planete Mars pour la dynamique et la physique
      tab_cntrl(5) = rad      ! rayon de mars(m) ~3397200
      tab_cntrl(6) = omeg     ! vitesse de rotation (rad.s-1)
      tab_cntrl(7) = g        ! gravite (m.s-2) ~3.72
      tab_cntrl(8) = mugaz    ! Masse molaire de l'atm (g.mol-1) ~43.49
      tab_cntrl(9) = rcp      !  = r/cp  ~0.256793 (=kappa dans dynamique)
      tab_cntrl(10) = daysec  ! duree du sol (s)  ~88775
 
      tab_cntrl(11) = dtphys  ! pas de temps de la physique 
      tab_cntrl(12) = 0.
      tab_cntrl(13) = 0.
 
c Info sur la Planete Mars pour la physique uniquement
      tab_cntrl(14) = year_day  ! duree de l'annee (sols) ~668.6
      tab_cntrl(15) = periheli  ! dist.min. soleil-mars (Mkm) ~206.66
      tab_cntrl(16) = aphelie   ! dist.max. soleil-mars (Mkm) ~249.22
      tab_cntrl(17) = peri_day  ! date du perihelie (sols depuis printemps)
      tab_cntrl(18) = obliquit  ! Obliquite de la planete (deg) ~23.98
 
c Couche limite et Turbulence
      tab_cntrl(19) = z0        ! surface roughness (m) ~0.01
      tab_cntrl(20) = lmixmin   ! longueur de melange ~100
      tab_cntrl(21) = emin_turb ! energie minimale ~1.e-8
 
c propriete optiques des calottes et emissivite du sol
      tab_cntrl(22) = albedice(1)  ! Albedo calotte nord ~0.5
      tab_cntrl(23) = albedice(2)  ! Albedo calotte sud ~0.5
      tab_cntrl(24) = emisice(1)   ! Emissivite calotte nord ~0.95
      tab_cntrl(25) = emisice(2)   ! Emissivite calotte sud ~0.95
      tab_cntrl(26) = emissiv      ! Emissivite du sol martien ~.95
      tab_cntrl(31) = iceradius(1) ! mean scat radius of CO2 snow (north)
      tab_cntrl(32) = iceradius(2) ! mean scat radius of CO2 snow (south)
      tab_cntrl(33) = dtemisice(1) ! time scale for snow metamorphism (north)
      tab_cntrl(34) = dtemisice(2) ! time scale for snow metamorphism (south)
 
c Proprietes des poussiere aerosol
      tab_cntrl(27) = tauvis      ! profondeur optique visible moyenne
 
      tab_cntrl(28) = 0.
      tab_cntrl(29) = 0.
      tab_cntrl(30) = 0.
-------------------------------------------------------

Sorties

fichiers NetCDF de redemarrage restart et restartphy

Pour les utilisations courantes, il est recommandé d'utiliser pour les diagnostics les fichiers de sorties de la physique :

histmth.nc  : sorties mensuelles
histday.nc  : sorties journalieres
histhf.nc   : sorties instantanees toutes les 6h

Les deux premieres sortent des variables moyennées dans le temps entre deux écritures. Les fréquences mensuelles ou journalières peuvent en fait ^etre régéles différemment pour chacun des deux fichiers.

Le fichier histmth.nc

Entete du fichier histmth.nc

On règle la fréquence de stockage des variables dans le fichier "histmth" par le paramètre ecritphy du fichier "gcm.def" (voir 6.2.2)

Figure 6.4: Entrées/Sorties
[1.4][c]\includegraphics[width=1.2\textwidth]{Fig/inout.eps}


next up previous contents
suivant: Faire tourner le modèle: monter: main précédent: Organisation informatique et compilation   Table des matières
Compte generique LMDZ 2004-04-05