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