source: configs/testing/bash/xml.sh

Last change on this file was 1036, checked in by dubos, 4 years ago

testing : porting to Jean Zay

  • Property svn:executable set to *
File size: 17.4 KB
Line 
1function xml_iodef() {
2cat <<EOF
3<?xml version="1.0"?>
4<simulation> 
5        <context  id="xios">
6                <variable_definition>
7                <variable id="print_file" type="bool"> true </variable>
8                <variable_group id="buffer">
9                </variable_group>
10
11                <variable_group id="parameters" >
12                        <variable id="using_server" type="bool">false</variable>
13                        <variable id="info_level" type="int">1</variable>
14                </variable_group>
15                </variable_definition>
16        </context>
17        <context id="icosagcm" src="./icosa.xml" />
18</simulation>
19EOF
20}
21
22function xml_icosa() {
23cat <<EOF
24<context id="icosagcm" >
25  <calendar type="d360" start_date="2000-01-01 00:00:00" time_origin="2000-01-01 00:00:00"/>
26 
27  <field_definition src="./field_def.xml" />
28
29  <file_definition src="./filedef_dcmip2016.xml" />
30
31  <file_definition type="one_file" par_access="collective">
32
33    <file id="output" name="output" enabled=".FALSE."  output_freq="2h" sync_freq="2h" output_level="10" >
34      <field_group group_ref="standard_output"/>
35    </file>
36
37    <file id="restart" name="restart" enabled="true">
38       <field_group id="group_restart" operation="once">
39          <field id="it_restart" name="iteration"  grid_ref="scalar" />
40          <field id="q_restart" name="q"  grid_ref="grid_q" />
41          <field_group domain_ref="i">
42             <field id="ps_restart" name="ps" />
43             <field id="phis_restart" name="phis" />
44             <field_group axis_ref="lev" >
45                <field id="theta_rhodz_restart" name="theta_rhodz" />
46                <field id="u_restart" name="u" domain_ref="u"/>
47                <field id="ulon_restart" name="ulon" />
48                <field id="ulat_restart" name="ulat" />
49             </field_group>
50             <field_group axis_ref="levp1" >
51                <field id="W_restart" name="W" />
52                <field id="geopot_restart" name="geopot" />
53             </field_group>
54          </field_group>
55       </field_group>
56    </file>
57
58    <file id="start" name="start" enabled="false" mode="read">
59       <field_group id="group_start" operation="once">
60          <field id="it_start" name="iteration"  grid_ref="scalar" enabled="false"/>
61          <field id="q_start" name="q"  grid_ref="grid_q_read" />
62          <field_group domain_ref="i">
63             <field id="ps_start" name="ps" />
64             <field id="phis_start" name="phis" />
65             <field_group axis_ref="lev_read" >
66                <field id="theta_rhodz_start" name="theta_rhodz" />
67                <field id="u_start" name="u" domain_ref="u"/>
68                <field id="ulon_start" name="ulon" />
69                <field id="ulat_start" name="ulat" />
70             </field_group>
71             <field_group axis_ref="levp1" >
72                <field id="W_start" name="W" />
73                <field id="geopot_start" name="geopot" />
74             </field_group>
75          </field_group>
76       </field_group>
77    </file>
78
79   
80  </file_definition>
81   
82  <axis_definition>
83    <axis id="lev" name="lev" positive="down" standard_name="atmopshere_hybrid_sigma_pressure_coordinate" long_name="hybrid level at midpoints" />
84    <axis id="lev_read" />
85    <axis id="levp1" name="ilev"  unit="level" positive="down" standard_name="atmopshere_hybride_sigma_pressure_coordinate" long_name="hybrid level at interface" />
86    <axis id="lev_pressure" positive="down"  n_glo="2" unit="Pa" value="(0,1)[85000 50000]" >
87      <interpolate_axis order="1" coordinate="p" />
88    </axis>   
89    <axis id="nq" name="nq" n_glo="5" value="(0,4)[1 2 3 4 5]"/>
90    <axis id="presnivs_mb" >
91      <interpolate_axis order="1" />
92    </axis>
93  </axis_definition>   
94 
95  <domain_definition>
96   
97     <domain_group id="i">
98       <domain id="i" name="mesh"/>     
99     </domain_group>
100     
101     
102     <domain id="v" />
103     <domain id="u" />
104     
105     <domain id="regular_half_degree" type="rectilinear" ni_glo="720" nj_glo="360" >
106       <generate_rectilinear_domain />
107       <interpolate_domain order="1"/>
108     </domain>
109     
110     <domain id="regular_one_degree" type="rectilinear" ni_glo="360" nj_glo="180" >
111       <generate_rectilinear_domain />
112       <interpolate_domain order="1"/>
113     </domain>
114     
115     <domain id="regular_two_degree" type="rectilinear" ni_glo="180" nj_glo="90" >
116       <generate_rectilinear_domain />
117       <interpolate_domain order="1"/>
118     </domain>
119     
120  </domain_definition>   
121 
122  <grid_definition>   
123    <grid id="scalar">
124      <scalar />
125    </grid>
126   
127    <grid id="grid_q">
128      <domain domain_ref="i" />
129      <axis axis_ref="lev" />
130      <axis axis_ref="nq" />
131    </grid >
132
133    <grid id="grid_q_read">
134      <domain domain_ref="i" />
135      <axis axis_ref="lev_read" />
136      <axis axis_ref="nq" />
137    </grid >
138 
139    <grid id="grid_q_regular">
140      <domain domain_ref="regular_two_degree" />
141      <axis axis_ref="lev" />
142      <axis axis_ref="nq" />
143    </grid >
144  </grid_definition>   
145 
146</context>
147EOF
148}
149
150function xml_field_def() {
151    cat <<EOF
152<field_definition level="1" enabled=".TRUE." operation="instant">
153 
154  <field_group id="standard_output">
155   
156    <field id="timestep" grid_ref="scalar" unit="s"/>
157    <field id="preff" grid_ref="scalar"    unit="Pa"/>
158    <field id="ap" axis_ref="levp1"   long_name="hybrid A coefficient at layer interface" />
159    <field id="bp" axis_ref="levp1"  long_name="hybrid B coefficient at layer interface" />
160    <field id="mid_ap" axis_ref="lev"   long_name="hybrid A coefficient at midpoints" />
161    <field id="mid_bp" axis_ref="lev"  long_name="hybrid B coefficient at midpoints" />
162   
163    <field_group domain_ref="i">
164      <field id="ps" />
165      <field id="dps"  />
166      <field id="Ai" />
167      <field id="phis" />
168      <field id="phi" />
169      <field id="precl" />
170      <field id="Q1_col_int" />     
171      <field id="Q2_col_int" />     
172      <field id="ps_init" />
173     
174      <field_group axis_ref="lev">
175        <field id="mass" />
176        <field id="p" />
177        <field id="dmass"/>
178        <field id="theta" />
179        <field id="dyn_q" />
180        <field id="pk"/>
181        <field id="ulon"/>
182        <field id="ulat"/>
183        <field id="uz"/>
184        <field id="omega"/>
185        <field id="temp"/>
186       
187        <field id="kinetic_trisk" />
188        <field id="kinetic" />
189
190        <field id="mass_init" />
191        <field id="p_init" />
192        <field id="theta_init" />
193        <field id="dyn_q_init" />
194        <field id="ulon_init"/>
195        <field id="ulat_init"/>
196        <field id="uz_init"/>
197        <field id="temp_init"/>
198       
199        <field id="kinetic_trisk_init" />
200        <field id="kinetic_init" />
201
202        <field id="mass_t"           long_name="Time-averaged air mass"   unit="kg/m2"/>
203        <field id="massflux_lon"     long_name="Time-averaged air mass flux, zonal"   unit="kg/m/s"/>
204        <field id="massflux_lat"     long_name="Time-averaged air mass flux, meridional"   unit="kg/m/s"/>
205
206        <field id="ulon_t"           long_name="Time-averaged zonal momentum"   unit="kg/m/s"/>
207        <field id="ulonflux_lon"     long_name="Time-averaged zonal momentum flux, zonal"   unit="kg/s2"/>
208        <field id="ulonflux_lat"     long_name="Time-averaged zonal momentum flux, meridional"   unit="kg/s2"/>
209
210        <field id="theta_t"          long_name="Time-averaged potential temperature"   unit="K.kg/m2"/>
211        <field id="thetaflux_lon"    long_name="Time-averaged potential temperature flux, zonal"   unit="K.kg/m/s"/>
212        <field id="thetaflux_lat"    long_name="Time-averaged potential temperature flux, meridional"   unit="K/kg/m/s"/>
213
214        <field id="epot_t"           long_name="Time-averaged potential energy"   unit="J/m2"/>
215        <field id="epotflux_lon"     long_name="Time-averaged potential energy flux, zonal"   unit="J/m/s"/>
216        <field id="epotflux_lat"     long_name="Time-averaged potential energy flux, meridional"   unit="J/m/s"/>
217
218        <field id="ekin_t"           long_name="Time-averaged kinetic energy"   unit="J/m2"/>
219        <field id="ekinflux_lon"     long_name="Time-averaged kinetic energy flux, zonal"   unit="J/m/s"/>
220        <field id="ekinflux_lat"     long_name="Time-averaged kinetic energy flux, meridional"   unit="J/m/s"/>
221       
222        <field id="enthalpy_t"       long_name="Time-averaged enthalpy"   unit="J/m2"/>
223        <field id="enthalpyflux_lon" long_name="Time-averaged enthalpy flux, zonal"   unit="J/m/s"/>
224        <field id="enthalpyflux_lat" long_name="Time-averaged enthalpy flux, meridional"   unit="J/m/s"/>
225
226        <field id="dulon_diss1"/>
227        <field id="dulon_diss2"/>
228        <field id="dulat_diss1"/>
229        <field id="dulat_diss2"/>
230
231        <field id="dulon_phys"       long_name="Physics tendency for zonal velocity"   unit="m/s^2"/>
232        <field id="dulat_phys"       long_name="Physics tendency for meridional velocity"   unit="m/s^2"/>
233
234      </field_group>
235
236      <field id="u850" />
237      <field id="v850" />
238      <field id="w850" />
239      <field id="t850" />
240      <field id="omega850"/>                 
241      <field id="u500" />
242      <field id="v500" />
243      <field id="w500" />
244      <field id="t500" />
245      <field id="omega500"/>                 
246      <field id="SST"/>
247     
248      <field id="ulon_850_500" field_ref="p" axis_ref="lev_pressure" />
249     
250      <field_group axis_ref="levp1">
251        <field id="geopot"/>
252        <field id="geopot_init"/>
253      </field_group>
254    </field_group>
255
256    <field_group grid_ref="grid_q">
257      <field id="q_init" />
258      <field id="q" />
259      <field id="qmass_t" />
260      <field id="qflux_lon" />
261      <field id="qflux_lat" />
262    </field_group>
263
264    <field_group domain_ref="v" axis_ref="lev">
265      <field id="vort" />
266      <field id="pv" />
267    </field_group>
268   
269  </field_group>
270 
271 
272</field_definition>
273
274EOF
275}
276
277function xml_dcmip() { # EXPNAME OUTPUT_GRID OUTPUT_FREQ
278    echo '<file_definition >' 
279    xml_dcmip_native $*
280    xml_dcmip_regular $*
281    echo '</file_definition>'
282}
283
284function xml_dcmip_native() {
285EXPNAME=$1
286OUTPUT_GRID=$2
287OUTPUT_FREQ=$3
288NBP=80 # FIXME
289LLM=10 # FIXME
290cat <<EOF
291  <file id="output_dcmip2016_native" convention="CF" enabled="false" output_freq="$OUTPUT_FREQ" sync_freq="$OUTPUT_FREQ" output_level="10" timeseries="none" description="$EXPNAME" >
292
293<!-- FIXME
294    <field_group id="dcmip2016_output_field_once" operation="once" freq_offset="0ts" ts_enabled="true">
295      <field field_ref="timestep" name="mdt" />
296      <field field_ref="preff" name="P0" long_name="reference pressure" />
297      <field field_ref="ap" name="hyai"   />
298      <field field_ref="bp" name="hybi"   />
299      <field field_ref="mid_ap" name="hyam"   />
300      <field field_ref="mid_bp" name="hybm"   />
301    </field_group>
302-->
303   
304    <field_group id="init_fields" operation="once" freq_offset="0ts" ts_enabled="true">
305      <field field_ref="temp_init"   />
306      <field field_ref="uz_init"     />
307      <field field_ref="ulon_init"   />
308      <field field_ref="ulat_init"   />
309      <field field_ref="p_init"      />
310      <field field_ref="ps_init"     />
311      <field field_ref="mass_init"   />
312      <field field_ref="geopot_init" />
313    </field_group>
314   
315    <field_group id="dcmip2016_output_field" ts_enabled="true">
316      <field field_ref="ps" name="PS"       standard_name="surface_pressure" long_name="Surface pressure"         unit="Pa" />
317      <field field_ref="phis" operation="once" freq_offset="0ts" name="PHIS"   standard_name="surface_geopotential" long_name="Surface geopotential" unit="m2/m2"/>
318      <field field_ref="geopot"  name="PHI"   standard_name="geopotential" long_name="geopotential" unit="m2/s2"/>
319      <field field_ref="ulon" name="U"      standard_name="eastward_wind" long_name="Zonal wind"                  unit="m/s"/>
320      <field field_ref="ulat" name="V"      standard_name="northward_wind" long_name="Meridional wind"            unit="m/s"/>
321      <field field_ref="uz" name="W"        standard_name="upward_air_velocity" long_name="Vertical velocity"     unit="m/s"/>
322      <field field_ref="omega" name="OMEGA"        standard_name="lagrangian_tendency_of_air_pressure" long_name="Vertical pressure velocity"     unit="Pa/s"/>
323      <field field_ref="p"  name="P"        standard_name="air_pressure" long_name="Pressure"     unit="Pa"/>
324      <field field_ref="temp"  name="T"        standard_name="air_temperature" long_name="Temperature"     unit="K"/>
325      <field field_ref="kinetic_trisk" />
326      <field field_ref="kinetic" />
327
328      <field field_ref="precl"  name="PRECT"     standard_name="rainfall_rate"  long_name="Large Scale precipitation rate"  unit="m/s"/>
329      <field field_ref="Q1_col_int"  name="Q1_col_int"      long_name="Single chlorine column integrated mixing ratio"  unit="kg/m2"/>
330      <field field_ref="Q2_col_int"  name="Q2_col_int"      long_name="Chlorine gas column integrated mixing ratio"  unit="kg/m2"/>
331      <field field_ref="u850" name="U850"       long_name="Zonal wind at 850 hPa"      unit="m/s"/>
332      <field field_ref="v850" name="V850"       long_name="Meridional wind at 850 hPa"   unit="m/s"/>
333      <field field_ref="w850" name="W850"       long_name="Vertical velocity at 850 hPa"     unit="m/s"/>
334      <field field_ref="t850" name="T850"       long_name="Temperature at 850 hPa"   unit="K"/>
335      <field field_ref="omega850" name="OMEGA850"   long_name="Vertical pressure velocity at 850 hPa"     unit="Pa/s"/>
336      <field field_ref="u500" name="U500"       long_name="Zonal wind at 500 hPa"      unit="m/s"/>
337      <field field_ref="v500" name="V500"       long_name="Meridional wind at 850 hPa"   unit="m/s"/>
338      <field field_ref="w850" name="W500"       long_name="Vertical velocity at 500 hPa"     unit="m/s"/>
339      <field field_ref="t500" name="T500"       long_name="Temperature at 850 hPa"   unit="K"/>
340      <field field_ref="omega500" name="OMEGA500"   long_name="Vertical pressure velocity at 500 hPa"     unit="Pa/s"/>
341      <field field_ref="SST" name="SST"       long_name="Sea surface temperature"   unit="K"/>
342     
343      <field field_ref="mass_t" name="mass_t"                   long_name="Time-averaged air mass"   unit="kg/m2"/>
344      <field field_ref="massflux_lon" name="massflux_lon"       long_name="Time-averaged air mass flux, zonal"   unit="kg/m/s"/>
345      <field field_ref="massflux_lat" name="massflux_lat"       long_name="Time-averaged air mass flux, meridional"   unit="kg/m/s"/>
346
347      <field field_ref="epot_t" name="epot_t"                   long_name="Time-averaged potential energ"   unit="J/m2"/>
348      <field field_ref="epotflux_lon" name="epotflux_lon"       long_name="Time-averaged potential energy flux, zonal"   unit="J/m/s"/>
349      <field field_ref="epotflux_lat" name="epotflux_lat"       long_name="Time-averaged potential energy flux, meridional"   unit="J/m/s"/>
350
351      <field field_ref="ekin_t" name="ekin_t"                   long_name="Time-averaged kinetic energ"   unit="J/m2"/>
352      <field field_ref="ekinflux_lon" name="ekinflux_lon"       long_name="Time-averaged kinetic energy flux, zonal"   unit="J/m/s"/>
353      <field field_ref="ekinflux_lat" name="ekinflux_lat"       long_name="Time-averaged kinetic energy flux, meridional"   unit="J/m/s"/>
354
355      <field field_ref="enthalpy_t" name="enthalpy_t"                   long_name="Time-averaged enthalpy"   unit="J/m2"/>
356      <field field_ref="enthalpyflux_lon" name="enthalpyflux_lon"       long_name="Time-averaged enthalpy flux, zonal"   unit="J/m/s"/>
357      <field field_ref="enthalpyflux_lat" name="enthalpyflux_lat"       long_name="Time-averaged enthalpy flux, meridional"   unit="J/m/s"/>
358
359    </field_group>
360
361    <variable name="model" type="string" > dynamico </variable>
362    <variable name="test_case" type="string" > $EXPNAME </variable>
363    <variable name="horizontal_resolution" type="string" > native (grid points : 80x80x10) </variable>
364    <variable name="levels" type="string" > L10 </variable>
365    <variable name="grid" type="string" > hex </variable>
366    <variable name="equation" type="string" > hydro </variable>
367    <variable name="time_frequency" type="string" > $OUTPUT_FREQ </variable>   
368
369  </file>
370
371EOF
372}
373
374function xml_dcmip_regular() { # EXPNAME OUTPUT_GRID OUTPUT_FREQ
375EXPNAME=$1
376OUTPUT_GRID=$2
377OUTPUT_FREQ=$3
378NBP=80 # FIXME
379LLM=10 # FIXME
380cat <<EOF
381<file_definition > 
382
383  <file id="output_dcmip2016_regular" enabled="true" output_freq="$OUTPUT_FREQ" sync_freq="$OUTPUT_FREQ" output_level="10" description="$EXPNAME" timeseries="none" >
384   
385    <field_group group_ref="dcmip2016_output_field_once"/>
386
387    <field_group group_ref="dcmip2016_output_field" domain_ref="regular_$OUTPUT_GRID" />
388
389<!--
390
391    <field_group group_ref="init_fields" domain_ref="regular_$OUTPUT_GRID" />
392   
393    <field_group id="transport" ts_enabled="true" grid_ref="grid_q_regular" >
394          <field field_ref="q" name="q"  />
395          <field field_ref="qmass_t" name="qmass_t"  long_name="Time-averaged tracer mass"   unit="kg/m2"/>
396          <field field_ref="qflux_lon" name="qflux_lon"  long_name="Time-averaged tracer mass flux, zonal"   unit="kg/m/s"/>
397          <field field_ref="qflux_lat" name="qflux_lat"  long_name="Time-averaged tracer mass flux, meridional"   unit="kg/m/s"/>
398    </field_group>
399-->
400
401    <variable name="model" type="string" > dynamico </variable>
402    <variable name="test_case" type="string" > $EXPNAME </variable>
403    <variable name="horizontal_resolution" type="string" > $OUTPUT_GRID interpolated (grid points : $NBP x $NBP x $LLM) </variable>
404    <variable name="levels" type="string" > L30 </variable>
405    <variable name="grid" type="string" > hex </variable>
406    <variable name="equation" type="string" > hydro </variable>
407    <variable name="time_frequency" type="string" > $OUTPUT_FREQ </variable>   
408
409  </file>
410
411
412</file_definition>
413EOF
414}
Note: See TracBrowser for help on using the repository browser.