source: palm/trunk/DOC/app/chapter_4.5.1.html @ 189

Last change on this file since 189 was 97, checked in by raasch, 17 years ago

New:
---
ocean version including prognostic equation for salinity and equation of state for seawater. Routine buoyancy can be used with both temperature and density.
+ inipar-parameters bc_sa_t, bottom_salinityflux, ocean, sa_surface, sa_vertical_gradient, sa_vertical_gradient_level, top_salinityflux

advec_s_bc, average_3d_data, boundary_conds, buoyancy, check_parameters, data_output_2d, data_output_3d, diffusion_e, flow_statistics, header, init_grid, init_3d_model, modules, netcdf, parin, production_e, prognostic_equations, read_var_list, sum_up_3d_data, swap_timelevel, time_integration, user_interface, write_var_list, write_3d_binary

New:
eqn_state_seawater, init_ocean

Changed:


inipar-parameter use_pt_reference renamed use_reference

hydro_press renamed hyp, routine calc_mean_pt_profile renamed calc_mean_profile

format adjustments for the ocean version (run_control)

advec_particles, buoyancy, calc_liquid_water_content, check_parameters, diffusion_e, diffusivities, header, init_cloud_physics, modules, production_e, prognostic_equations, run_control

Errors:


Bugfix: height above topography instead of height above level k=0 is used for calculating the mixing length (diffusion_e and diffusivities).

Bugfix: error in boundary condition for TKE removed (advec_s_bc)

advec_s_bc, diffusion_e, prognostic_equations

  • Property svn:keywords set to Id
File size: 40.5 KB
RevLine 
[5]1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<html><head>
[62]3<meta content="text/html; charset=windows-1252" http-equiv="CONTENT-TYPE"><title>PALM chapter 4.5.1</title>
4<meta content="StarOffice 7 (Win32)" name="GENERATOR">
5<meta content="Siegfried Raasch" name="AUTHOR"> <meta content="20041022;12155949" name="CREATED"> <meta content="20041117;11232134" name="CHANGED"> <meta content="parallel LES model" name="KEYWORDS"> <style>
[5]6<!--
7@page { size: 21cm 29.7cm }
8-->
9</style></head>
10<body style="direction: ltr;" lang="en-US"><h4 style="line-height: 100%;"><font size="4">4.5.1
11NetCDF data output&nbsp;<span style="color: rgb(255, 0, 0);"></span></font></h4>
12<p style="line-height: 100%;">The standard data output of
13PALM is NetCDF (<span style="font-weight: bold;">Net</span>work
14<span style="font-weight: bold;">C</span>ommon <span style="font-weight: bold;">D</span>ata <span style="font-weight: bold;">F</span>orm). NetCDF is an
15interface to a library of data access functions<br>for
16storing and retrieving data in the form of arrays. NetCDF is an
17abstraction that supports a view of data as a collection of
18self-describing, <span style="font-weight: bold;">portable</span>
19objects that can be accessed through a simple interface (protable means
[62]20that NetCDF data files can be read on any machine regardless of where
21they
[5]22have been created). Array values may be accessed directly, without
23knowing details of how the data are stored. Auxiliary information about
24the data, such as what units are used, may be stored with the data.
25Generic utilities and application programs can access NetCDF datasets
26(files) and transform, combine, analyze, or display specified fields of
27the data, e.g. the contents of a NetCDF dataset can be viewed using the
28command <span style="font-family: monospace;">ncdump</span>
29(see <a href="#ncdump">further below</a>).
30Many (public domain) graphic software has built in interfaces to read
[62]31NetCDF datasets (e.g. <span style="font-weight: bold;">ferret</span>
32or <span style="font-weight: bold;">NCL</span>).
33The complete NetCDF documentation
[5]34is available from the <a href="http://www.unidata.ucar.edu/packages/netcdf/docs.html">NetCDF
35homepage</a>. The NetCDF tutorial for FORTRAN90 can also be found
36on <a href="http://www.muk.uni-hannover.de/%7Eraasch/PALM_group/manual/netcdf/netcdf-3_f90_tutorial.pdf">our
37web server</a>.</p><p style="line-height: 100%;">The
38output format of PALM data is determined by the runtime-parameter <a href="chapter_4.2.html#data_output_format">data_output_format</a>
39(<span style="font-weight: bold;">data_output_format</span>
40= <span style="font-style: italic;">'netcdf'</span>,
41by default). For historical reasons, some alternative formats can be
42selected (see <a href="chapter_4.2.html#data_output_format">data_output_format</a>).
43The accuracy of the NetCDF output data can be set with parameter <a href="chapter_4.1.html#netcdf_precision">netcdf_precision</a>.
44By default, data have single (4 byte) precision. Also by default,
45NetCDF datasets (files) are not allowed to be larger than 2 GByte.
46Larger datasets can be created&nbsp;by setting <a href="chapter_4.2.html#netcdf_64bit">netcdf_64bit</a>
47= <span style="font-style: italic;">.TRUE.</span>.
48These files then have the so-called 64bit-offset format. However,
49currently, many of the existing application programs may not support
50this 64-bit offset format.<br></p>PALM allows the output of
51various
52data (e.g. cross sections, vertical profiles, timeseries, etc.) into
53different files. The following table gives an overview about the
54different kind of NetCDF output data offered by PALM. Beside the local
[62]55names of the files, the table also lists the minimum parameter settings
56which
[5]57are necessary to switch on the output, as well as the parameters to be
58used to control the output.<br><br><table style="text-align: left; width: 750px; height: 226px;" border="1" cellpadding="2" cellspacing="2"><tbody><tr><td align="left" valign="top"><span style="font-weight: bold;">kind of data</span></td><td align="left" valign="top"><span style="font-weight: bold;">local filename</span></td><td align="left" valign="top"><span style="font-weight: bold;">parameter settings necessary to
59switch on output</span></td><td align="left" valign="top"><span style="font-weight: bold;">further
60parameters for output control</span></td></tr><tr><td align="left" valign="top">vertical profiles</td><td align="left" valign="top"><a href="chapter_3.4.html#DATA_1D_PR_NETCDF">DATA_1D_PR_NETCDF</a></td><td align="left" valign="top"><a href="chapter_4.2.html#data_output_pr">data_output_pr</a>,
61<a href="chapter_4.2.html#dt_data_output">dt_data_output</a>
62(or <a href="chapter_4.2.html#dt_dopr">dt_dopr</a>)</td><td align="left" valign="top"><a href="chapter_4.2.html#averaging_interval">averaging_interval</a>,
63(or <a href="chapter_4.2.html#averaging_interval_pr">averaging_interval_pr</a>),
64<a href="chapter_4.2.html#data_output_format">data_output_format</a>,
65<a href="chapter_4.2.html#dt_averaging_input">dt_averaging_input</a>,
66<a href="chapter_4.2.html#dt_averaging_input_pr">dt_averaging_input_pr</a>,
67<a href="chapter_4.2.html#skip_time_data_output">skip_time_data_output</a>
68(or <a href="chapter_4.2.html#skip_time_dopr">skip_time_dopr</a>),
[62]69<a href="chapter_4.1.html#statistic_regions">statistic_regions</a></td></tr><tr><td align="left" valign="top">timeseries</td><td align="left" valign="top"><a href="chapter_3.4.html#DATA_1D_TS_NETCDF">DATA_1D_TS_NETCDF</a></td><td align="left" valign="top"><a href="chapter_4.2.html#dt_dots">dt_dots</a></td><td align="left" valign="top"><a href="chapter_4.2.html#data_output_format">data_output_format</a>,
70<a href="chapter_4.1.html#statistic_regions">statistic_regions</a></td></tr><tr><td align="left" valign="top">spectra</td><td align="left" valign="top"><a href="chapter_3.4.html#DATA_1D_SP_NETCDF">DATA_1D_SP_NETCDF</a></td><td align="left" valign="top"><a href="chapter_4.2.html#comp_spectra_level">comp_spectra_level</a>,
[5]71<a href="chapter_4.2.html#data_output_sp">data_output_sp</a>,
72<a href="chapter_4.2.html#dt_data_output">dt_data_output</a>
73(or <a href="chapter_4.2.html#dt_dosp">dt_dosp</a>),
74<a href="chapter_4.2.html#spectra_direction">spectra_direction</a></td><td align="left" valign="top"><a href="chapter_4.2.html#averaging_interval">averaging_interval</a>&nbsp;(or
75<a href="chapter_4.2.html#averaging_interval_sp">averaging_interval_sp</a>),
76<a href="chapter_4.2.html#data_output_format">data_output_format</a>,
77<a href="chapter_4.2.html#dt_averaging_input_pr">dt_averaging_input_pr</a>,
78<a href="chapter_4.2.html#skip_time_data_output">skip_time_data_output</a>
79(or <a href="chapter_4.2.html#skip_time_dosp">skip_time_dosp)</a></td></tr><tr><td align="left" valign="top">2d cross section (xy)</td><td align="left" valign="top"><a href="chapter_3.4.html#DATA_2D_XY_NETCDF">DATA_2D_XY_NETCDF</a></td><td align="left" valign="top"><a href="chapter_4.2.html#data_output">data_output</a>
80(or <a href="chapter_4.3.html#data_output_user">data_output_user</a>),
81<a href="chapter_4.2.html#dt_data_output">dt_data_output</a>
82(or <a href="chapter_4.2.html#dt_do2d_xy">dt_do2d_xy</a>),
83<a href="chapter_4.2.html#section_xy">section_xy</a></td><td align="left" valign="top"><a href="chapter_4.2.html#data_output_format">data_output_format</a>,
84<a href="chapter_4.2.html#data_output_2d_on_each_pe">data_output_2d_on_each_pe</a>,
85<a href="chapter_4.2.html#do2d_at_begin">do2d_at_begin</a>,
86<a href="chapter_4.2.html#skip_time_data_output">skip_time_data_output</a>
87(or <a href="chapter_4.2.html#skip_time_do2d_xy">skip_time_do2d_xy</a>)</td></tr><tr><td align="left" valign="top">2d cross section (xy),
88time-averaged</td><td align="left" valign="top"><a href="chapter_3.4.html#DATA_2D_XY_AV_NETCDF">DATA_2D_XY_AV_NETCDF</a></td><td align="left" valign="top"><a href="chapter_4.2.html#data_output">data_output</a>
89(or <a href="chapter_4.3.html#data_output_user">data_output_user</a>),
90<a href="chapter_4.2.html#dt_data_output">dt_data_output</a>
91(or <a href="chapter_4.2.html#dt_data_output_av">dt_data_output_av</a>&nbsp;or
92<a href="chapter_4.2.html#dt_do2d_xy">dt_do2d_xy</a>),
93<a href="chapter_4.2.html#section_xy">section_xy</a></td><td align="left" valign="top"><a href="chapter_4.2.html#averaging_interval">averaging_interval</a>,
94<a href="chapter_4.2.html#dt_averaging_input">dt_averaging_input</a>,
95<a href="chapter_4.2.html#data_output_format">data_output_format</a>,
96<a href="chapter_4.2.html#data_output_2d_on_each_pe">data_output_2d_on_each_pe</a>,
97<a href="chapter_4.2.html#do2d_at_begin">do2d_at_begin</a>,
98<a href="chapter_4.2.html#skip_time_data_output">skip_time_data_output</a>
99(or <a href="chapter_4.2.html#skip_time_data_output_av">skip_time_data_output_av</a>,
100or <a href="chapter_4.2.html#skip_time_do2d_xy">skip_time_do2d_xy</a>)</td></tr><tr><td align="left" valign="top">2d cross section (xz)</td><td align="left" valign="top"><a href="chapter_3.4.html#DATA_2D_XZ_NETCDF">DATA_2D_XZ_NETCDF</a></td><td align="left" valign="top"><a href="chapter_4.2.html#data_output">data_output</a>
101(or <a href="chapter_4.3.html#data_output_user">data_output_user</a>),
102<a href="chapter_4.2.html#dt_data_output">dt_data_output</a>
103(or <a href="chapter_4.2.html#dt_do2d_xz">dt_do2d_xz</a>),
104<a href="chapter_4.2.html#section_xz">section_xz</a></td><td align="left" valign="top"><a href="chapter_4.2.html#data_output_format">data_output_format</a>,
105<a href="chapter_4.2.html#data_output_2d_on_each_pe">data_output_2d_on_each_pe</a>,
106<a href="chapter_4.2.html#do2d_at_begin">do2d_at_begin</a>,
107<a href="chapter_4.2.html#skip_time_data_output">skip_time_data_output</a>
108(or <a href="chapter_4.2.html#skip_time_do2d_xz">skip_time_do2d_xz</a>)</td></tr><tr><td align="left" valign="top">2d cross section (xz),
109time-averaged</td><td align="left" valign="top"><a href="chapter_3.4.html#DATA_2D_XZ_AV_NETCDF">DATA_2D_XZ_AV_NETCDF</a></td><td align="left" valign="top"><a href="chapter_4.2.html#data_output">data_output</a>
110(or <a href="chapter_4.3.html#data_output_user">data_output_user</a>),
111<a href="chapter_4.2.html#dt_data_output">dt_data_output</a>
112(or <a href="chapter_4.2.html#dt_data_output_av">dt_data_output_av</a>&nbsp;or
113<a href="chapter_4.2.html#dt_do2d_xz">dt_do2d_xz</a>),
114<a href="chapter_4.2.html#section_xz">section_xz</a></td><td align="left" valign="top"><a href="chapter_4.2.html#averaging_interval">averaging_interval</a>,
115<a href="chapter_4.2.html#dt_averaging_input">dt_averaging_input</a>,
116<a href="chapter_4.2.html#data_output_format">data_output_format</a>,
117<a href="chapter_4.2.html#data_output_2d_on_each_pe">data_output_2d_on_each_pe</a>,
118<a href="chapter_4.2.html#do2d_at_begin">do2d_at_begin</a>,
119<a href="chapter_4.2.html#skip_time_data_output">skip_time_data_output</a>
120(or <a href="chapter_4.2.html#skip_time_data_output_av">skip_time_data_output_av</a>,
121or <a href="chapter_4.2.html#skip_time_do2d_xz">skip_time_do2d_xz</a>)</td></tr><tr><td align="left" valign="top">2d cross section (yz)</td><td align="left" valign="top"><a href="chapter_3.4.html#DATA_2D_YZ_NETCDF">DATA_2D_YZ_NETCDF</a></td><td align="left" valign="top"><a href="chapter_4.2.html#data_output">data_output</a>
122(or <a href="chapter_4.3.html#data_output_user">data_output_user</a>),
123<a href="chapter_4.2.html#dt_data_output">dt_data_output</a>
124(or <a href="chapter_4.2.html#dt_do2d_yz">dt_do2d_yz</a>),
125<a href="chapter_4.2.html#section_yz">section_yz</a></td><td align="left" valign="top"><a href="chapter_4.2.html#data_output_format">data_output_format</a>,
126<a href="chapter_4.2.html#data_output_2d_on_each_pe">data_output_2d_on_each_pe</a>,
127<a href="chapter_4.2.html#do2d_at_begin">do2d_at_begin</a>,
128<a href="chapter_4.2.html#skip_time_data_output">skip_time_data_output</a>
129(or <a href="chapter_4.2.html#skip_time_do2d_yz">skip_time_do2d_yz</a>)</td></tr><tr><td align="left" valign="top">2d cross section (yz),
130time-averaged</td><td align="left" valign="top"><a href="chapter_3.4.html#DATA_2D_YZ_AV_NETCDF">DATA_2D_YZ_AV_NETCDF</a></td><td align="left" valign="top"><a href="chapter_4.2.html#data_output">data_output</a>
131(or <a href="chapter_4.3.html#data_output_user">data_output_user</a>),
132<a href="chapter_4.2.html#dt_data_output">dt_data_output</a>
133(or <a href="chapter_4.2.html#dt_data_output_av">dt_data_output_av</a>&nbsp;or
134<a href="chapter_4.2.html#dt_do2d_yz">dt_do2d_yz</a>),
135<a href="chapter_4.2.html#section_yz">section_yz</a></td><td align="left" valign="top"><a href="chapter_4.2.html#averaging_interval">averaging_interval</a>,
136<a href="chapter_4.2.html#dt_averaging_input">dt_averaging_input</a>,
137<a href="chapter_4.2.html#data_output_format">data_output_format</a>,
138<a href="chapter_4.2.html#data_output_2d_on_each_pe">data_output_2d_on_each_pe</a>,
139<a href="chapter_4.2.html#do2d_at_begin">do2d_at_begin</a>,
140<a href="chapter_4.2.html#skip_time_data_output">skip_time_data_output</a>
141(or <a href="chapter_4.2.html#skip_time_data_output_av">skip_time_data_output_av</a>,
142or <a href="chapter_4.2.html#skip_time_do2d_yz">skip_time_do2d_yz</a>)</td></tr><tr><td align="left" valign="top">3d volume</td><td align="left" valign="top"><a href="chapter_3.4.html#DATA_3D_NETCDF">DATA_3D_NETCDF</a></td><td align="left" valign="top"><a href="chapter_4.2.html#data_output">data_output</a>
143(or <a href="chapter_4.3.html#data_output_user">data_output_user</a>),
144<a href="chapter_4.2.html#dt_data_output">dt_data_output</a>
145(or <a href="chapter_4.2.html#dt_do3d">dt_do3d</a>)</td><td align="left" valign="top"><a href="chapter_4.2.html#data_output_format">data_output_format</a>,
146<a href="chapter_4.2.html#do3d_at_begin">do3d_at_begin</a>,
147<a href="chapter_4.2.html#nz_do3d">nz_do3d</a>, <a href="chapter_4.2.html#skip_time_data_output">skip_time_data_output</a>
148(or <a href="chapter_4.2.html#skip_time_do3d">skip_time_do3d</a>)</td></tr><tr><td align="left" valign="top">3d volume, time-averaged</td><td align="left" valign="top"><a href="chapter_3.4.html#DATA_3D_AV_NETCDF">DATA_3D_AV_NETCDF</a></td><td align="left" valign="top"><a href="chapter_4.2.html#data_output">data_output</a>
149(or <a href="chapter_4.3.html#data_output_user">data_output_user</a>),
150<a href="chapter_4.2.html#dt_data_output">dt_data_output</a>
151(or <a href="chapter_4.2.html#dt_data_output_av">dt_data_output_av</a>&nbsp;or
152<a href="chapter_4.2.html#dt_do3d">dt_do3d</a>)</td><td align="left" valign="top"><a href="chapter_4.2.html#averaging_interval">averaging_interval</a>,
153<a href="chapter_4.2.html#dt_averaging_input">dt_averaging_input</a>,
154<a href="chapter_4.2.html#data_output_format">data_output_format</a>,&nbsp;<a href="chapter_4.2.html#do3d_at_begin">do3d_at_begin</a>,
155<a href="chapter_4.2.html#nz_do3d">nz_do3d</a>, <a href="chapter_4.2.html#skip_time_data_output">skip_time_data_output</a>
156(or <a href="chapter_4.2.html#skip_time_data_output_av">skip_time_data_output_av</a>,
[62]157or <a href="chapter_4.2.html#skip_time_do3d">skip_time_do3d</a>)</td></tr><tr><td align="undefined" valign="undefined">particle
158timeseries</td><td style="vertical-align: top;"><a href="chapter_3.4.html#DATA_1D_PTS_NETCDF">DATA_1D_PTS_NETCDF</a></td><td style="vertical-align: top;"><a href="chapter_4.2.html#dt_data_output">dt_data_output</a>
159(or <a href="chapter_4.2.html#dt_dopts">dt_dopts</a>)</td><td align="undefined" valign="undefined"></td></tr><tr><td align="left" valign="top">particle attributes</td><td align="left" valign="top"><a href="chapter_3.4.html#DATA_PRT_NETCDF">DATA_PRT_NETCDF</a></td><td align="left" valign="top"><a href="chapter_4.2.html#dt_write_particle_data">dt_write_particle_data</a></td><td align="left" valign="top"></td></tr></tbody></table><br><br><span style="font-weight: bold;">Creating, contents and
[5]160post-processing of a PALM NetCDF file</span><br><br>This
161section describes, step-by-step, the creation, storage, and
162post-processing of PALM NetCDF datasets considering the output of 2d
163horizontal (xy) cross sections as example. The parameter settings
164described below are those of the <a href="http://www.muk.uni-hannover.de/%7Eraasch/PALM_group/INSTALL/example_p3d">example
[97]165parameter file</a> (see <a href="chapter_4.4.1.html">chapter
1664.4.1</a>) so this parameter file can be used to retrace the
[5]167following explanations.<br><br><ol><li>Output
168of xy cross
169sections requires to set at least three parameters: first, the temporal
170interval of the output time (run parameter <a href="chapter_4.2.html#dt_data_output">dt_data_output</a>
171or <a href="chapter_4.2.html#dt_do2d_xy"><u>dt_do2d_xy)</u></a><span style="text-decoration: none;">, second<span style="text-decoration: none;"></span>,
172the names of the quantities for which cross section output is wanted</span><span style="text-decoration: none;"><span style="text-decoration: none;"> (<a href="chapter_4.2.html#data_output">data_output</a></span></span>),
173and third, the position (height level given as gridpoint index) of the
174cross sections (<a href="chapter_4.2.html#section_xy">section_xy</a>).
175The string <span style="font-style: italic;">'_xy'</span>
176must be appended to the name strings assigned to <span style="font-weight: bold;">data_output</span> in
177either case. Output times
178cannot be defined
179directly but only via the output time interval, starting from the
180beginning of the initial 3d run (t=0, but no cross sections are
181written at the time t=0; exceptions see <a href="chapter_4.2.html#do2d_at_begin">do2d_at_begin</a>).
182As an exception, the first output time can be set independently with
183parameter <a href="chapter_4.2.html#skip_time_data_output">skip_time_data_output</a>
184(or <a href="chapter_4.2.html#skip_time_do2d_xy">skip_time_do2d_xy</a>).<br><br><span style="font-weight: bold;">Very important:</span><br>If
185no values have been assigned to <b>data_output</b> , <span style="font-weight: bold;">dt_data_output</span> (or <span style="font-weight: bold;">dt_do2d_xy</span>), and <b>section_xy</b>,
186or
187if the values given for <span style="font-weight: bold;">dt_data_output</span>
188(or <b>dt_do2d_xy</b>) or <span style="font-weight: bold;">skip_time_data_output</span>
189(or <span style="font-weight: bold;">skip_time_do2d_xy</span>)
190are
191larger than the simulated time (see <a href="chapter_4.1.html#end_time">end_time</a>),
192<b>then there will be no output!<br><br></b>For
193output of time-averaged data, the string <span style="font-style: italic;">'_av'</span> has to be
194additionally appended to the respective name string (see <a href="chapter_4.2.html#data_output">data_output</a>).<br><br><br></li><li>
[62]195<p style="line-height: 100%;">Instantaneous data are
196output in NetCDF
[5]197format
198into the
199local file&nbsp;<a href="chapter_3.4.html#DATA_2D_XY_NETCDF">DATA_2D_XY_NETCDF</a>.
200This file must be linked with a permanent file by
201using a file connection statement in the <b>mrun</b>
202configuration
203file (see e.g. <a href="chapter_3.2.html">chapter
2043.2</a>). At the end of the run the local file is copied to this
205file. Such a statement can look like this:<br><br><span style="font-family: monospace;">&nbsp;
206&nbsp;DATA_2D_XY_NETCDF out:loc:tr&nbsp;&nbsp;xy#&nbsp;
207~/$fname/OUTPUT/$fname&nbsp; _xy nc &nbsp; .</span><br><br>If
208the respective <b>mrun</b> call is
209like<br><br><span style="font-family: monospace;">&nbsp;
210&nbsp;mrun -d&nbsp; test -r &ldquo;xy#&rdquo; ... </span><br style="font-family: monospace;"><br>then the local
211file <tt><font style="font-size: 10pt;" size="2">DATA_2D_XY_NETCDF</font></tt>
212is copied to the permanent file <tt><font style="font-size: 10pt;" size="2">~/test/OUTPUT/test/test_xy.nc</font>
213</tt>. However, the character string <span style="font-family: mon; font-style: italic;">'</span><tt style="font-style: italic;"><font style="font-size: 10pt;" size="2">xy#</font></tt><span style="font-style: italic;">'</span> activating the
214file connection statement (see third column of the
215statement) must be given in the <b>mrun</b> call as
216argument of the
217option -r (and/or -o)<b>.</b> <span style="text-decoration: none;">If
218t</span>his is forgotten by mistake, the model outputs the data
219to
220the local file, but this is not copied to the permanent file and thus
221the data are not available for the user after the run has finished.<br><br>The
222last (6th) column of the file connection statement, which defines the
223additional file suffix, should be the string <span style="font-style: italic;">'nc'</span>, because many
224application programs expect NetCDF files to have the file extension <span style="font-style: italic;">'.nc'</span>. (This
[62]225additional suffix given in the 6th column is always put at the very end
226of the filename, even
227in case of cycle numbers.)<br><br>Time averaged data are
228output into local file&nbsp;<a href="chapter_3.4.html#DATA_2D_XY_AV_NETCDF">DATA_2D_XY_AV_NETCDF</a>
229which requires an additional file connection statement<br><br><span style="font-family: monospace;">&nbsp;&nbsp;
230DATA_2D_XY_AV_NETCDF out:loc:tr&nbsp; xy#&nbsp;
231~/$fname/OUTPUT/$fname&nbsp; _xy_av nc&nbsp;&nbsp; .</span><br></p></li><li>With
[5]232parallel runs and choice of <a href="chapter_4.2.html#data_output_2d_on_each_pe">data_output_2d_on_each_pe</a>
233= <i>.T.</i>
234each PE outputs the data of its subdomain
235not directly to the NetCDF file but to a separate file with the name
236PLOT2D_XY_&lt;processor-Id&gt;,
237where &lt;processor-Id&gt; is a four digit number (e.g.
238PLOT2D_XY_0000). These files have FORTRAN binary format. After PALM has
239finished, their content is merged into the final local destination file
[62]240DATA_2D_XY_NETCDF by the program <span style="font-family: monospace;">combine_plot_fields</span>.&nbsp;<span style="font-weight: bold;"></span>This is done by
241adding the following output command to the configuration file:<br><br><span style="font-family: monospace;">&nbsp; &nbsp;OC:[[$
[5]242( echo $localhost | cut -c1-3 ) = imbh ]] &amp;&amp;
243combine_plot_fields.x &nbsp; &nbsp; .</span><br><br>Using
244this call, possibly existing
245files of the other cross sections (xz, yz) and of 3d volume data are
246also merged to their respective NetCDF files.&nbsp;The tool writes
247informative messages about the actions accomplished into the job
248protocol, even if no files were found (i.e. the output command
249may remain in the configuration file, even if no appropriate files
250are created during the simulation).&nbsp;<br><br><br></li><li><a name="ncdump"></a>The contents of a NetCDF dataset can
251be simply analyzed with the tool <span style="font-family: monospace;">ncdump</span>
252(which is part of the NetCDF software). It can be used to display the
253dimension (coordinate) names and lengths; variable names, types, and
254shapes; attribute names and values; and optionally,<br>the values
255of
256data for all variables or selected variables in a netCDF dataset. The
257file content (without displaying the gridpoint data of the quantities)
258can be displayed with the command<br><br><span style="font-family: monospace;">&nbsp; &nbsp;ncdump
259-c &lt;filename&gt; &nbsp; &nbsp; .</span><br><br>Usage
260of the <span style="font-family: monospace;">ncdump</span>
261command requires that the path to the NetCDF software is appropriately
262set. On the IMUK-Linux-cluster this path is set by default, on the
263HLRN-IBM-Regatta, the user has to execute the command<br><br><span style="font-family: monospace;">&nbsp; &nbsp;module
264load netcdf &nbsp; &nbsp; .</span><br><br>Please
265refer to the&nbsp;system documentation or system administrator on
266how
267to setup the correct NetCDF path on the respective host.<br><br>An
268example how to interpret the <span style="font-family: monospace;">ncdump</span>-output
269will be given <a href="#NetCDF_example">further below</a>.<br><br></li><li>There
270are several application programs which can be used for graphical
271display of NetCDF datasets. One of the easiest ways to display the PALM
272data is the <a style="font-family: monospace;" href="http://ferret.wrc.noaa.gov/Ferret/">ferret</a>
[62]273graphical user interface (GUI). On the IMUK-Linux-cluster, this can be
274called by
[5]275executing the command<br><br><span style="font-family: monospace;">&nbsp; &nbsp;ferret
276-gui &nbsp; &nbsp; .</span><br><br><span style="font-family: monospace;">ferret</span> is also
277available at <a href="http://www.hlrn.de/doc/ferret/index.html">HLRN</a>.
278Another possible tool is <span style="font-family: monospace;">ncview</span>,
279which is also available at HLRN (see the <a href="http://www.hlrn.de/doc/ncview/index.html">HLRN
280documentation</a>). Beside these general tools, the PALM group
281will develop a&nbsp;graphical interface based on <a href="http://www.ncl.ucar.edu/">NCL</a>
282(NCAR Command Language). This interface will be&nbsp;specially
283designed
284to display the PALM Data. A detailed documentation will be linked here
285as soon as available.<br><br><br></li><li><a name="netcdf_example_program"></a>One
286of the most flexible general ways for postprocessing NetCDF data
[62]287is&nbsp;reading these data into a FORTRAN program. The&nbsp;<a href="http://www.muk.uni-hannover.de/%7Eraasch/PALM_group/INSTALL/read_palm_netcdf_data.f90"><font color="#000080">example program</font></a> shows
288how to read 2d or 3d NetCDF datasets created by PALM. Compiling this
289program requires that the
[5]290NetCDF library is installed (if neccessary, please ask your system
[62]291administrator). Some compilation instructions are given in the header
292of the
[5]293example program.<br><br><br></li><li>By
294default, each PALM job creates its own NetCDF files. If permanent files
295with respective filenames are already existing then new files with
296higher cycle numbers will be created. However, in case of a job chain,
297it is possible to extend the NetCDF datasets created by the initial
[62]298run&nbsp;with data from the restart run(s). As a result, data of
299all
[5]300output times of the complete job chain are contained in one file and
301the number of data files to be handled by the user may be reduced
[62]302significantly.<br>To extend a NetCDF dataset (created by a
303previous run
[5]304of a job chain) with data from the current run requires that this
305dataset must be provided as an INPUT file. This may be difficult in
306case that PALM is running on a remote host because typically the output
[62]307data files from the previous run have been already transferred by <span style="font-weight: bold;">mrun</span> to the local
308workstation with a file connection statement like<br><br><span style="font-family: monospace;">&nbsp;
309&nbsp;DATA_2D_XY_NETCDF
310&nbsp;out:loc:tr&nbsp;&nbsp;xy#:xyf
311&nbsp;~/palm/current_version/JOBS/$fname/OUTPUT
312&nbsp;_xy&nbsp; nc</span><br><br>and thus
313they are not available on the remote host any more. <br>A
[5]314workaround for solving this problem is to create an additional copy of
315the output file on the remote machine by adding the file connection
[62]316statement<br><br><span style="font-family: monospace;">&nbsp;&nbsp;
317DATA_2D_XY_NETCDF&nbsp; out:loc&nbsp; xy#:xyf&nbsp;
318~/palm/current_version/JOBS/$fname/OUTPUT&nbsp; _xy&nbsp; nc</span><br><br>This
319additional copy can then be accessed from a restart job as an input
320file using the file connection statement<br><br><span style="font-family: monospace;">&nbsp;&nbsp;
321DATA_2D_XY_NETCDF&nbsp; in:locopt&nbsp;&nbsp;xyf&nbsp;
322~/palm/current_version/JOBS/$fname/OUTPUT&nbsp; _xy&nbsp; nc</span><br><br>Here
323the file attribut <span style="font-family: monospace;">locopt</span>
[5]324(2nd column) guarantees that the job continues if a permanent file does
325not exist (e.g. in case of an initial run). Otherwise, the job would be
[62]326aborted.<br>Although the dataset created by the last run of a job
327chain
[5]328will contain data from all selected time levels of the complete job
329chain, the main disadvantage of this workaround is that the datasets
330created by the remaining jobs (with lower cycle numbers) still exist
331and may consume large disc space. They have to be deleted "by hand" by
332the user on the local machine as well as on the remote
[62]333machine&nbsp;because they only contain redundant data from the
334earlier
335time levels which are already contained&nbsp;in the dataset created
336by
337the last job of the job chain.<br><br><span style="font-weight: bold;">Note:</span><br>Extension
338of PALM NetCDF datasets of 2d horizontal cross sections requires that
339parameters <a href="chapter_4.2.html#data-output">data_output</a>
340and <a href="chapter_4.2.html#section_xy">section_xy</a>&nbsp;
[5]341for the restart runs are set identical to the initial run. In case of a
342value mismatch between initial and restart runs, a warning is issued in
343the job protocol file and the dataset will contain only data from those
[62]344timelevels calculated within the restart run.<br>Similar
345restrictions apply for all other PALM NetCDF datasets (i.e. profiles,
346vertical cross sections, volume data, etc.).</li></ol><br>&nbsp;<br><span style="font-weight: bold;"><a name="NetCDF_example"></a>Example
347of a PALM NetCDF dataset</span><br><br>The
[5]348NetCDF dataset described here contains data of instantaneous horizontal
349cross sections and has been created using the settings of the <a href="http://www.muk.uni-hannover.de/%7Eraasch/PALM_group/INSTALL/example_p3d">example
[97]350parameter file</a> (see <a href="chapter_4.4.1.html">chapter
3514.4.1</a>),
[5]352i.e. it contains section data of the w-velocity-component and of the
[62]353potential temperature for vertical grid levels with index <span style="font-family: monospace;">k = 2</span> and <span style="font-family: monospace;">k = 10</span>,
354selected by the respective parameter settings <a href="chapter_4.2.html#data_output">data_output</a> = <span style="font-style: italic;">'w_xy'</span>, <span style="font-style: italic;">'pt_xy'</span>, and <a href="chapter_4.2.html#section_xy">section_xy</a> = <span style="font-style: italic;">2</span>, <span style="font-style: italic;">10</span>. Output has been
355created after every 900 s (<a href="chapter_4.2.html#dt_data_output">dt_data_output</a>
356= <span style="font-style: italic;">900.0</span>).
357Because of <a href="chapter_4.2.html#end_time">end_time</a>
358= <span style="font-style: italic;">3600.0</span>,
359the file contains data of 4 time levels (t = 900, 1800, 2700, 3600 s).<br>Supposed
360that the name of the NetCDF dataset is <span style="font-family: monospace;">example_xy.nc</span>,
361an analysis of the file contents using the command<br><br><span style="font-family: monospace;">&nbsp; &nbsp;ncdump
362-c example_xy.nc</span><br><br>will create the
363following output. The original ncdump output is displayed using <span style="font-family: monospace;">fixed spacing</span>,
364additional explanations are given in <span style="font-style: italic; font-family: monospace;">italian</span>.<br><br><div style="margin-left: 40px;"><span style="font-family: monospace;">netcdf&nbsp;example_xy {
365&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
366&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="font-style: italic;">! filename</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">dimensions: &nbsp;
367&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
368&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
369&nbsp; &nbsp; &nbsp;<span style="font-style: italic;">!
37041 gridpoints along x and y, 4 timelevels</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
371time = UNLIMITED ; // (4 currently) &nbsp; &nbsp;<span style="font-style: italic;">! unlimited means
372that&nbsp;additional time levels can be added (e.g. by</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;
373&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
374&nbsp; &nbsp; &nbsp; &nbsp;
375&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
376&nbsp; &nbsp; &nbsp; &nbsp;
377&nbsp;<span style="font-style: italic;">! restart jobs)</span><br>&nbsp;&nbsp;&nbsp;
378zu_xy = 2 ; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
379&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
380&nbsp; &nbsp; &nbsp;<span style="font-style: italic;">!
381vertical dimension (2, because two cross sections are selected);</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
382zw_xy = 2 ; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
383&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
384&nbsp; &nbsp; &nbsp;<span style="font-style: italic;">!
385there are two different vertical dimensions zu and zw because due</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
386zu1_xy = 1 ; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
387&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
388&nbsp; &nbsp; <span style="font-style: italic;">!
389to the staggered grid the z-levels of variables are those of the</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
390x = 41 ; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
391&nbsp; &nbsp; &nbsp; &nbsp;
392&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-style: italic;">! u- or the w-component of the
393velocity</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
394y = 41 ;</span><br style="font-family: monospace;"><span style="font-family: monospace;">variables: &nbsp;
395&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
396&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
397&nbsp; &nbsp; &nbsp; <span style="font-style: italic;">!
398precision, dimensions, and units of the variables</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
399double time(time) ; &nbsp; &nbsp; &nbsp; &nbsp;
400&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="font-style: italic;">! the variables containing the
401time levels and grid point coordinates</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
402&nbsp;&nbsp;&nbsp; time:units = "seconds" ; &nbsp;
403&nbsp; &nbsp; &nbsp; &nbsp; <span style="font-style: italic;">! have the same names as the
404respective dimensions</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
405double zu_xy(zu_xy) ;</span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
406&nbsp;&nbsp;&nbsp; zu_xy:units = "meters" ;</span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
407double zw_xy(zw_xy) ;</span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
408&nbsp;&nbsp;&nbsp; zw_xy:units = "meters" ;</span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
409double zu1_xy(zu1_xy) ;</span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
410&nbsp;&nbsp;&nbsp; zu1_xy:units = "meters" ;</span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
411double ind_z_xy(zu_xy) ;</span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
412&nbsp;&nbsp;&nbsp; ind_z_xy:units = "gridpoints" ;</span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
413double x(x) ;</span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
414&nbsp;&nbsp;&nbsp; x:units = "meters" ;</span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
415double y(y) ;</span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
416&nbsp;&nbsp;&nbsp; y:units = "meters" ;</span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
417float w_xy(time, zw_xy, y, x) ; &nbsp; &nbsp; &nbsp;
418&nbsp;<span style="font-style: italic;">! array of the
419vertical velocity; it has 4 dimensions: x and y,</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
420&nbsp;&nbsp;&nbsp; w_xy:long_name = "w_xy" ; &nbsp;
421&nbsp; &nbsp; &nbsp; &nbsp;<span style="font-style: italic;">! because it is a horizontal
422cross section, zw_xy, which defines</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
423&nbsp;&nbsp;&nbsp; w_xy:units = "m/s" ; &nbsp;
424&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-style: italic;">! the vertical levels of the
425sections, and time, for the time levels</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
426float pt_xy(time, zu_xy, y, x) ; &nbsp; &nbsp; &nbsp; <span style="font-style: italic;">! array of the potential
427temperature, which is defined on the u-grid</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
428&nbsp;&nbsp;&nbsp; pt_xy:long_name = "pt_xy" ;</span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
429&nbsp;&nbsp;&nbsp; pt_xy:units = "K" ;</span><br style="font-family: monospace;"><br style="font-family: monospace;"><span style="font-family: monospace;">// global attributes:</span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
430&nbsp;&nbsp;&nbsp; :Conventions = "COARDS" ;</span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
431&nbsp;&nbsp;&nbsp; :title = "PALM&nbsp;&nbsp;
4323.0&nbsp; run:
433example.00&nbsp; host: ibmh&nbsp; 13-04-06 15:12:43" ;
434&nbsp;<span style="font-style: italic;">! PALM
435run-identifier</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
436&nbsp;&nbsp;&nbsp; :VAR_LIST = ";w_xy;pt_xy;" ; &nbsp;
437&nbsp; &nbsp; <span style="font-style: italic;">!
438the list of output quantities contained in this dataset;</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;
439&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
440&nbsp; &nbsp; &nbsp; &nbsp;
441&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
442&nbsp; &nbsp; &nbsp; &nbsp;
443&nbsp;<span style="font-style: italic;">! this global
444attribute can be used by FORTRAN programs to identify</span><br>&nbsp;
445&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
446&nbsp; &nbsp; &nbsp; &nbsp;
447&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
448&nbsp; &nbsp; &nbsp; &nbsp;
449&nbsp;<span style="font-style: italic;">! and read the
450quantities contained in the file</span><br>data:</span><br style="font-family: monospace;"><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;time = 905.3,
4511808.98, 2711.98, 3603.59 ; <span style="font-style: italic;">!
452values of the four time levels</span></span><br style="font-family: monospace;"><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;zu_xy = 75, 475 ;
453&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
454&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-style: italic;">! heights of the two selected
455cross sections (u-grid)</span></span><br style="font-family: monospace;"><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;zw_xy = 100, 500 ;</span><br style="font-family: monospace;"><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;zu1_xy = 25 ;</span><br style="font-family: monospace;"><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;x = 0, 50, 100,
456150, 200, 250, 300, 350, 400, 450, 500, 550, 600, 650, 700, &nbsp; <span style="font-style: italic;">! x-coordinates of the gridpoints</span></span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
457750, 800, 850, 900, 950, 1000, 1050, 1100, 1150, 1200, 1250, 1300,
4581350, </span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
4591400, 1450, 1500, 1550, 1600, 1650, 1700, 1750, 1800, 1850, 1900, 1950,
460</span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
4612000 ;</span><br style="font-family: monospace;"><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;y = 0, 50, 100,
462150, 200, 250, 300, 350, 400, 450, 500, 550, 600, 650, 700, </span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
463750, 800, 850, 900, 950, 1000, 1050, 1100, 1150, 1200, 1250, 1300,
4641350, </span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
4651400, 1450, 1500, 1550, 1600, 1650, 1700, 1750, 1800, 1850, 1900, 1950,
466</span><br style="font-family: monospace;"><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
4672000 ;</span><br style="font-family: monospace;"><span style="font-family: monospace;">}</span><br></div><br>If
468the option <span style="font-family: monospace;">-c</span>
469is omitted in the <span style="font-family: monospace;">ncdump</span>
470call, then also the complete grid point data of all quantities are
471output to the terminal.<br><br>The &nbsp;<a href="http://www.muk.uni-hannover.de/%7Eraasch/PALM_group/INSTALL/read_palm_netcdf_data.f90"><font color="#000080">example program</font></a><span style="font-weight: bold;"></span> shows how to read
472this 2d
[5]473horizontal cross section dataset from a FORTRAN program (<a href="#netcdf_example_program">see above</a>).<br><hr>
[62]474<p style="line-height: 100%;"><br><font color="#000080"><font color="#000080"><a href="chapter_4.5.html"><font color="#000080"><img name="Grafik1" src="left.gif" align="bottom" border="2" height="32" width="32"></font></a><a href="index.html"><font color="#000080"><img name="Grafik2" src="up.gif" align="bottom" border="2" height="32" width="32"></font></a><a href="chapter_4.5.2.html"><font color="#000080"><img style="border: 2px solid ; width: 32px; height: 32px;" alt="" name="Grafik3" src="right.gif"></font></a></font></font></p><p style="line-height: 100%;"><span style="font-style: italic;">Last
475change:</span> $Id: chapter_4.5.1.html 97 2007-06-21 08:23:15Z letzel $&nbsp;</p>
[5]476</body></html>
Note: See TracBrowser for help on using the repository browser.