Fichiers Meso–NH (FM)

Transcription

Fichiers Meso–NH (FM)
Fichiers Meso–NH (FM)
1 Fichier FM
1.1 synchrone ou diachronique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2
2 Utilitaires: les outils annexes
2.1 Parties DES et LFI . . . . . . . .
2.2 Visualiser le contenu . . . . . . . .
2.3 Compression . . . . . . . . . . . . .
2.4 Conversion synchrone-diachronique
2.5 Logiciel graphique . . . . . . . . . .
2.6 Post-traitements . . . . . . . . . .
4
4
5
7
7
7
8
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 Noms des variables d’un fichier synchrone
9
4 Les différents temps d’un fichier synchrone
10
A Routines Fortran90
A.1 Ecriture/lecture dans un fichier synchrone . . . . . . . . . . . . . . . . . . . . .
A.2 Ecriture/lecture dans un fichier diachronique . . . . . . . . . . . . . . . . . . . .
A.3 Les différents niveaux des routines d’écriture/lecture et ouverture/fermeture de
fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
11
12
B Référence
C. Fischer, 1994: File structure and content in the Meso-NH model. Meso-NH note.
D. Gazen, 1999: Parallel IO routines. Man page on Meso-NH web site . . . . . . .
1
13
1
Fichier FM
FM (File Manager)1: c’est le format de stockage des données assurant la communication des E/S entre les différents programmes Meso–NH.
1.1
synchrone ou diachronique
• fichier synchrone: contient la totalité des variables décrivant l’atmosphère
sur tout le domaine de simulation à un instant donné,
permet la communication entre les programmes:
- préparation des champs initiaux (idéaux ou réels),
- simulation (start: début d’un segment
ou restart: reprise d’un segment),
- calcul de diagnostics à un instant donné.
Dans un fichier synchrone, les dimensions du domaine et l’instant
(indiqués par des scalaires) sont communs à tous les champs vectoriels
(1D, 2D et 3D).
• fichier diachronique: contient quelques variables, tendances, flux, moyennes
stockés à différents instants au cours de la simulation sur une partie du
domaine,
Dans un fichier diachronique, chaque champ vectoriel est documenté
(par 6 articles) indiquant son domaine spatial et ses différents instants
de stockage.
c’est le format utilisé par les “outils annexes” (post-traitements off-line):
- logiciel graphique (diaprog),
- sélection de champs et conversion de format de fichier (extractdia),
- comparaison à des observations (obs2mesonh, mesonh2obs, exrwdia).
1
C. Fischer, 1994: File structure and content in the Meso-NH model. Meso-NH note.
2
PGD.lfi
prepmodel
MAINPROG=
PREP_PGD
PREP_NEST_PGD
PGD.lfi
INIT.des
INIT.lfi
fm2deslfi
CEXP.1.CSEG.00n.des
CEXP.1.CSEG.00n.lfi
MODEL
t1,t2,...,tn
t0
synchronous output
INIT
INIT.des
(on the computer where
INIT.des
INIT.lfi
SPAWNING
PREP_IDEAL_CASE
PREP_REAL_CASE
DIAG
t0
physiographic output
PGD.lfi
CEXP.1.CSEG.00n.des
CEXP.1.CSEG.00n.lfi
INIT.lfi
t
synchronous outputs
CEXP.1.CSEG.00n
CEXP.1.CSEG.00n.des
CEXP.1.CSEG.00n.lfi
the file was created)
conv2dia
conv2dia
3
PGD.dia.lfi
conv2dia
INIT.dia.lfi
conv2dia
CEXP.1.CSEG.00n.dia.lfi
synchronuous files: PGD.lfi, INIT.lfi, CEXP.1.CSEG.00n.lfi
diachronic file: CEXP.1.CSEG.000.lfi
’pseudo-diachronic’ PGD.dia.lfi
INIT.dia.lfi
CEXP.1.CSEG.00n.dia.lfi
diachronic output
CEXP.1.CSEG.000
CEXP.1.CSEG.000.des
CEXP.1.CSEG.000.lfi
2
Utilitaires: “les outils annexes”
2.1
Parties DES et LFI
DESFM
FMname.des
fichier descriptif,
ASCII
namelists
LFIFM
index
FMname.lfi
fichier de données,
binaire à accès direct,
de type lfi 1
1
commandes
MesoNH :
----> deslfi2fm
<---- fm2deslfi
(commande
Unix : "cpio")
&NAM_NAME
N1=5,
CSTR=’toto’
/
NIMAX
ZS
FMname
UT
THT
articles
RVT
scalaires
champs 3D
champs 2D
champs 1D
...
J. Clochard: Logiciel de Fichiers Indexés. Note ARPEGE n ◦ 12 (1989), Technical report (1991).
Création du fichier FM sous forme éclaté: fmname.des, fmname.lfi
Stockage en .des, .lfi sur l’espace workdir du calculateur supc
Stockage en éclaté ou regroupé suivant la machine archiv
fm2deslfi fmname
-> crée fmname.des et fmname.lfi
deslfi2fm fmname
Rq1: à utiliser sur le calculateur où le fichier a été créé.
Rq2: les fichiers PGD ont une partie .des vide: seule la partie .lfi est
stockée.
4
2.2
Visualiser le contenu
fmmore fmname
-> édite la liste des articles et fmname.des
a. Liste des articles du fichier .lfi
///// LFILAF - Catalogue de l’Unite Logique LFI 12 dans l’ordre *PHYSIQUE* (sequentiel) des articles
3 article(s) "physique(s)" de gestion, 3072 mots chacun, occupant donc 9216 mots; detail:
Article documentaire de la position 1 a 3072
1 paire(s) d’articles d’index prereserves, de la position 3073 a 9216
----- pas de paire d’articles d’index inutilises ni excedentaires ----1-eme
2-eme
3-eme
4-eme
5-eme
6-eme
7-eme
8-eme
9-eme
10-eme
11-eme
12-eme
13-eme
...
article
article
article
article
article
article
article
article
article
article
article
article
article
de
de
de
de
de
de
de
de
de
de
de
de
de
donnees:
donnees:
donnees:
donnees:
donnees:
donnees:
donnees:
donnees:
donnees:
donnees:
donnees:
donnees:
donnees:
"MASDEV ", 103 mots, position 9217 a 9319
"BUGFIX ", 103 mots, position 9320 a 9422
"BIBUSER ", 112 mots, position 9423 a 9534
"PROGRAM ", 108 mots, position 9535 a 9642
"MY_NAME ", 130 mots, position 9643 a 9772
"DAD_NAME ", 130 mots, position 9773 a 9902
"DXRATIO ", 103 mots, position 9903 a 10005
"DYRATIO ", 103 mots, position 10006 a 10108
"XOR ", 103 mots, position 10109 a 10211
"YOR ", 103 mots, position 10212 a 10314
"STORAGE_TYPE ", 104 mots, position 10315 a 10418
"IMAX ", 103 mots, position 10419 a 10521
"JMAX ", 103 mots, position 10522 a 10624
b. Valeur des paramètres “intouchables”
################################################################
################ COMMENTS ##########################
################################################################
################################################################
#### MASDEV = 46
####
#### BUGFIX = 0
####
#### BIBUSER =
####
#### PROGRAM = MESONH
####
#### STORAGE_TYPE = MT
####
#### SURF = EXTE
####
#### L1D = F L2D = F PACK = T
####
#### MY_NAME = 16J46.2.12B18.002
####
#### DAD_NAME= 16J46.1.12B18.002
####
#### NIMAX = 72 NJMAX = 60 NKMAX = 50
####
#### DXRATIO= 4
#### DYRATIO= 4
####
#### XOR= 40
#### YOR= 16
####
#### LCARTESIAN = F
#### LTHINSHELL = F
#### XBETA = 0.0000000000000000E+000
#### XLAT0 = 50.0000000000000000
5
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
####
XLON0 = -2.7999999999999998
XRPK = 0.5800000000000000
XLONORI = -18.2965451766260827
XLATORI = 36.9218374500469224
left-bottom mass point:
XLONOR = -1.6363619921207595
XLATOR = 43.0188612340985941
X mesh = 9.0000000000000000E+03
XHAT(1:2) = 1.4130000000000000E+06 1.4220000000000000E+06
Y mesh = 9.0000000000000000E+03
YHAT(1:2) = 5.4900000000000000E+05 5.5800000000000000E+05
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
XZHAT(
DTEXP
DTMOD
DTSEG
DTCUR
1) = -60.00000
2) = 0.00000
3) = 60.00000
4) = 125.40000
5) = 196.68600
6) = 274.38774
7) = 359.08264
8) = 451.40007
9) = 552.02608
10) = 661.70843
11) = 781.26219
12) = 911.57578
13) = 1053.61760
14) = 1208.44319
15) = 1377.20307
16) = 1561.15135
17) = 1761.65497
18) = 1980.20392
19) = 2218.42227
20) = 2478.08028
21) = 2761.10750
22) = 3063.94663
23) = 3387.98450
24) = 3734.70502
25) = 4105.69598
26) = 4502.65631
27) = 4927.40385
28) = 5381.88373
29) = 5868.17720
30) = 6388.51120
31) = 6945.26859
32) = 7540.99900
33) = 8178.43054
34) = 8860.48228
35) = 9560.48228
36) = 10260.48228
37) = 10960.48228
38) = 11660.48228
39) = 12360.48228
40) = 13060.48228
41) = 13760.48228
42) = 14460.48228
43) = 15160.48228
44) = 15860.48228
45) = 16560.48228
46) = 17260.48228
47) = 17960.48228
48) = 18660.48228
49) = 19360.48228
50) = 20060.48228
51) = 20760.48228
52) = 21460.48228
=
=
=
=
1998
1998
1998
1998
1
1
1
1
15
16
16
16
4.3200000000000000E+04
0.0000000000000000E+000
0.0000000000000000E+000
2.1600000000000000E+04
6
c. Edition du fichier .des
-------------------------------------------------------------------------CONTENT OF THE DESCRIPTIVE PART OF FILE 16J36.2.12B18.002
-------------------------------------------------------------------------&NAM_LUNITN CINIFILE = "16J36_00_MNH2 " ,
CCPLFILE= " "," " ,
" "," " ,
" "," " ,
" "," " /
&NAM_CONFN LUSERV=T,LUSERC=T,LUSERR=T,LUSERI=F,LUSERS=F,LUSERG=F, LUSERH=F,LUSECI=F,NSV_USER=0/
&NAM_DYNN XTSTEP = 18.750 , CPRESOPT = "RICHA" , NITR = 8 , XRELAX = 1.0000 , LHORELAX_UVWTH = F,
LHORELAX_RV = F, LHORELAX_RC = F , LHORELAX_RR = F, LHORELAX_RI = F, LHORELAX_RS = F, LHORELAX_RG = F ,
LHORELAX_RH = F, LHORELAX_TKE = F, LHORELAX_EPS = F, LHORELAX_SV =
F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F
LVE_RELAX = T , NRIMX = 0 , NRIMY = 0 , XRIMKMAX = 0.00016667 , XT4DIFF = 1500.0000 /
&NAM_ADVN CMET_ADV_SCHEME="FCT2ND",CSV_ADV_SCHEME="FCT2ND",CFV_ADV_SCHEME="MPDATA", NLITER=2/
&NAM_PARAMN CTURB="TKEL",CRAD="ECMW",CDRAG="NONE",CGROUND="ISBA", CCLOUD="KESS",CDCONV="KAFR"/
...
2.3
Compression
lfiz fmname.lfi
-> crée fmname.Z.lfi (compression minimum de 4)
(par ex: après le programme DIAG, le fichier est par défaut compressé.)
2.4
Conversion synchrone-diachronique
conv2dia: transforme un fichier synchrone en format diachronique lisible
par le logiciel de tracé diaprog (à appliquer sur les sorties .00n avec n>1,
la sortie diachronique .000 n’est pas à convertir).
(par ex: après le programme DIAG, le fichier est converti par défaut en
fichier diachronique compressé pour utilisation de diaprog.)
2.5
Logiciel graphique
diaprog
(voir cours suivant)
7
2.6
Post-traitements
IN
synchronous FM file
Uncompressed
OUT
synchro- Uncomp.
nuous
FM file Comp.
Compressed
diachronic FM file
Uncompressed
Compressed
PREP_PGD
(&NAM_DUMMY_PGD)
unlfiz
PREP_PGD
+
lfiz
lfiz
all var.
conv2dia
Uncomp.
diachronicvar. list
FM file all var.
Comp.
unlfiz
extractdia
conv2dia+lfiz
GRIB
file
lfi2grb
Vis5D
file
lfi2v5d
lfi2cdf
CONVLFI
CONVLFI
unlfiz+lfi2cdf
extractdia
obs2mesonh
extractdia
obs2mesonh
+
lfiz
lfiz
extractdia+lfiz
var. list
NetCDF all var.
file var. list
extractdia in future
MAINPROG : main program of MesoNH
(run it on supc with prepmode
extractdia in future
tool : one of the libtools package
(run it interactively on local host)
lfi2cdf
unlfiz+lfi2cdf
(tool with change of file format)
extractdia
extractdia
diaprog ->FICVAL
extractdia
mesonh2obs
ASCII
file
NCAR-CGM
file
diaprog
exrwdia (readvar, writevar,
zinter,pinter,lalo)
other treatments,
other formats
ex: diachronic file
(Lag. var.)
ASCII file
DIAG with LTRAJ =TRUE
compute_r00_pc
(voir cours 3ème jour)
8
3
Noms des variables d’un fichier FM synchrone
• after initialization or simulation programs:
2D variables
ZS : [2D] orography (m)
INPRT : [2D] instantaneous precipitations (m)
ACPRT : [2D] accumulated precipitations (m)
PRCONV : [2D] instantaneous convective precipitations (m)
PACCONV : [2D] accumulated convective precipitations (m)
Pronostic dynamic variables (T at t time, M at t-dt time)
UM, VM : [3D] horizontal components of wind (m/s)
WM : [3D] vertical component of wind (m/s)
PABSM : [3D] pression (Pa)
THM : [3D] potential temperature (K)
RVM : [3D] mixing ratio of vapor (kg/kg)
RCM : [3D] mixing ratio of cloud water (kg/kg)
RRM : [3D] mixing ratio of rain water (kg/kg)
RIM : [3D] mixing ratio of ice (kg/kg)
RSM : [3D] mixing ratio of snow (kg/kg)
RGM : [3D] mixing ratio of graupel (kg/kg)
TKEM : [3D] turbulent kinetic energy (m2/s2 )
Large Scale variables
LSUM, LSVM, LSWM, LSRVM : [3D] (time-dependant if coupling files provided)
Physical schemes
DTHRAD : [3D] radiative tendancy for TH (K/s)
DTHCONV : [3D] convective tendancy for TH (K/s)
• after diagnostics program: see chapter 6.3 of the MesoNH user’s guide
9
4
Les différents temps d’un fichier synchrone
EXPerience time
MODel time
SEGment time
CURrent time
Année,
Année,
Année,
Année,
mois,
mois,
mois,
mois,
jour,
jour,
jour,
jour,
heure
heure
heure
heure
(s)
(s)
(s)
(s)
du
du
du
du
début de l’expérience
début du modèle
début du segment
temps courant
• Ex1:
TEXP = TM OD1 et TM OD1 < TM OD2
TM OD2 = TSEG et TSEG < TCU R
pour une simulation grid-nesting où le modèle fils a démarré après le modèle
père durant un segment.
• Ex2:
TEXP = TM OD1
TM OD1 < TSEG et TSEG < TCU R
pour une simulation mono-modèle avec 2 segments.
10
A
Routines Fortran90
A.1
Ecriture/lecture dans un fichier synchrone
USE MODE_FMWRIT
CALL FMWRIT(’fmname’,’varname’,HLUOUT,HDIR,ZFIELD, &
KGRID,KLENCH,HCOMMENT,KRESP)
fmname: nom du fichier (sans extensions)
varname: mnémonique du champ
ZFIELD: variable 3D, 2D, 1D ou 0D contenant le champ
(caractère, réel, entier, logique; scalaire ou vecteur; type dérivé DATE TIME)
HDIR: profil du champ
’XY’: ch(x,y,...)
’XX’: ch(x,...)
’YY’: ch(y,...)
’--’: logique, caractère, ch(z)
KGRID: indicateur sur la grille C
2
1
U
5
T
3
V
ζ
z
6
4
y
w
η
8
0: constantes
1: point de masse:
T, Rv, Pabs,...
2: point de vent u
3: point de vent v
4: point de vent w
5-7: quantités
dérivées
7
x
ξ
HCOMMENT: commentaire du champ (KLENCH: nombre de caractères)
KRESP: code de retour (écrit dans le fichier HLUOUT).
de même: USE MODE FMREAD
CALL FMREAD(’fmname’,’varname’,...)
11
A.2
Ecriture/lecture dans un fichier diachronique
Routines qui servent dans les “outils annexes” de post-traitements (exrwdia).
USE MODI_WRITE_DIACHRO
CALL WRITE_DIACHRO(’fmname’,HLUOUT,’varname’, &
HTYPE,KGRID,ZDATIME,ZFIELD, &
ZTRAJT,HTITRE,HUNIT,HCOMMENT, &
LICP,LJCP,LKCP,KIL,KIH,KJL,KJH,KKL,KKH)
fmname: nom du fichier (sans extensions)
varname: mnémonique du champ
HTYPE: type du champ
’CART’: 3D,2D,1D ou 0D (ex: champs résultants de conv2dia)
’MASK’: contient une expression logique 1D ou 0D évoluant dans le temps
’SPXY’: vecteurs de coefficients spectraux
’SSOL’, ’DRST’, ’RSPL’, ’RAPL’: observations synthétiques
KGRID: indicateur sur la grille C
ZFIELD: variable 6D (x,y,z,t,n,p) contenant le champ
x,y,z: dimensions horizontales et verticale,
t: indice temporel,
n: indice de masque,
p: indice de processus.
ZTRAJT: variable (t,n) contenant les différents temps du champ
HTITRE: variable (p) contenant le titre de chaque processus du champ
LICP,LJCP,LKCP: logiques de compression sur les 3 dimensions,
KIL,KIH,KJL,KJH,KKL,KKH: bornes dans le domaine de simulation pour le type ’CART’
pour lire: USE MODI READ DIACHRO
CALL READ DIACHRO(’fmname’,HLUOUT,’varname’)
(voir la documentation:
creation et exploitation de fichiers diachroniques, J. Duron, octobre 2001 )
12
Les différents niveaux des routines d’écriture/lecture et ouverture/fermetures de fichiers
routine FM
routine LFI instruction
F90
(surcouche //)
FMOPEN_ll
OPEN
OPEN_ll
des
routine
MesoNH
OPEN
lfi
OPEN_ll
LFIOUV
READ_DIACHRO
FMLOOK_ll
lfi
FMREAD
LFINFO
LFILEC
WRITE_DIACHRO
FMLOOK_ll
lfi
FMWRIT
LFIECR
CLOSE
FMCLOS_ll
des
CLOSE_ll
LFIFER
lfi
A.3
CLOSE_ll
CLOSE
CALL SYSTEM
13