== netCDF data output == PALM is able to output data of different quantities as time series, vertical profiles (usually horizontally averaged), two-dimensional cross sections or 3d-volume data. Depending on the kind of output (time series, profiles, etc.) and the output format (ASCII or binary) data are written to different files (file descriptions can be found [wiki:doc/app/iofiles here]). By default, all data output files are in netCDF format ([[http://www.unidata.ucar.edu/software/netcdf/]]), which can be processed by many public domain and commercial (graphic) software. Data from netCDF files can also be easily read from FORTRAN programs provided that a netCDF library is available. Due to historical reasons, PALM can also output data in other formats suitable for some special graphic software. The exact format of these files corresponds to the requirements of the respective software. Still available at IMUK is '''AVS''' (e.g. iso-surfaces of 3d volume data). A description of the usage of the '''AVS''' software is given [wiki:doc/app/avs here]. In the following pages, steering of the different data output and how to create plots of the data is described by some examples. Not all details of steering are mentioned. If necessary, these can be found within the description of the respective parameters. For most purposes it should be sufficient to read [wiki:doc/app/ncgen Generation of a PALM netCDF file] and [wiki:doc/app/ncexample Example of a PALM netCDF data set] which explains the PALM-netCDF-output. The standard data output of PALM is netCDF (network Common Data Form) in 64-bit offset format. netCDF is an interface to a library of data access functions for storing and retrieving data in the form of arrays. netCDF is an abstraction that supports a view of data as a collection of self-describing, portable objects that can be accessed through a simple interface (protable means that netCDF data files can be read on any machine regardless of where they have been created). Array values may be accessed directly, without knowing details of how the data are stored. Auxiliary information about the data, such as what units are used, may be stored with the data. Generic utilities and application programs can access netCDF datasets (files) and transform, combine, analyze, or display specified fields of the data, e.g. the contents of a netCDF dataset can be viewed using the command '''ncdump''' (see further below). Many (public domain) graphic software has built in interfaces to read netCDF datasets (e.g. '''ferret''' or '''NCL''' ([wiki:doc/app/ncl see here])). The complete netCDF documentation is available from the netCDF homepage ([[http://www.unidata.ucar.edu/software/netcdf/]]). The netCDF tutorial for FORTRAN90 can also be found on our web server. The general output format of PALM data is determined by the runtime-parameter [wiki:doc/app/d3par#data_output_format data_output_format] (data_output_format = 'netcdf', by default). For historical reasons, some alternative formats can be selected. The accuracy of the netCDF output data can be set with parameter [wiki:doc/app/d3par#netcdf_precision netcdf_precision]. By default, data have single (4 byte) precision. Runtime-parameter [wiki:doc/app/d3par#data_output_format data_output_format] can be used to choose between the different netCDF file formats (classic, 64-bit offset, netCDF4/HDF5). The 64-bit offset format allows creating large files (file size only limited by the underlying file system), but each output variable (array) is still limited to 2GB. In netCDF4 format, there is no limit for the size of variables, and it also allows parallel I/O into one output file. However, some (graphic) software still does not support netCDF4 format. PALM allows the output of various data (e.g. cross sections, vertical profiles, timeseries, etc.) into different files. The following table gives an overview about the different kind of netCDF output data offered by PALM. Beside the local names of the files, the table also lists the minimum parameter settings which are necessary to switch on the output, as well as the parameters to be used to control the output. ||='''Kind of data''' =||='''Local filename''' =||='''Parameter settings necessary \\ to switch on output''' =|| \ ||='''Further parameters for \\ output control''' =|| |---------------- {{{#!td style="vertical-align:top; text-align:left;width: 150px" vertical profiles }}} {{{#!td style="vertical-align:top; text-align:left;style="width: 50px" [wiki:doc/app/iofiles#DATA_1D_PR_NETCDF DATA_1D_PR_NETCDF] }}} {{{#!td style="vertical-align:top; text-align:left;style="width: 75px" [wiki:doc/app/d3par#data_output_pr data_output_pr], [wiki:doc/app/d3par#dt_data_output dt_data_output] (or [wiki:doc/app/d3par#dt_dopr dt_dopr]) }}} {{{#!td [wiki:doc/app/d3par#averaging_interval averaging_interval], (or [wiki:doc/app/d3par#averaging_interval_pr averaging_interval_pr]), [wiki:doc/app/d3par#data_output_format data_output_format], [wiki:doc/app/d3par#dt_averaging_input dt_averaging_input], [wiki:doc/app/d3par#dt_averaging_input_pr dt_averaging_input_pr], [wiki:doc/app/d3par#skip_time_data_output skip_time_data_output] (or [wiki:doc/app/d3par#skip_time_dopr skip_time_dopr]), [wiki:doc/app/d3par#statistic_regions statistic_regions] }}} |---------------- {{{#!td style="vertical-align:top" timeseries }}} {{{#!td style="vertical-align:top" [wiki:doc/app/iofiles#DATA_1D_TS_NETCDF DATA_1D_TS_NETCDF] }}} {{{#!td style="vertical-align:top" [wiki:doc/app/d3par#dt_dots dt_dots] }}} {{{#!td [wiki:doc/app/d3par#data_output_format data_output_format], [wiki:doc/app/d3par#statistic_regions statistic_regions] }}} |---------------- {{{#!td style="vertical-align:top" spectra }}} {{{#!td style="vertical-align:top" [wiki:doc/app/iofiles#DATA_1D_SP_NETCDF DATA_1D_SP_NETCDF] }}} {{{#!td style="vertical-align:top" [wiki:doc/app/sppar#comp_spectra_level comp_spectra_level], [wiki:doc/app/sppar#data_output_sp data_output_sp], [wiki:doc/app/d3par#dt_data_output dt_data_output] (or [wiki:doc/app/sppar#dt_dosp dt_dosp]), [wiki:doc/app/sppar#spectra_direction spectra_direction] }}} {{{#!td [wiki:doc/app/d3par#averaging_interval averaging_interval] (or [wiki:doc/app/sppar#averaging_interval_sp averaging_interval_sp]), [wiki:doc/app/d3par#data_output_format data_output_format], [wiki:doc/app/d3par#dt_averaging_input_pr dt_averaging_input_pr], [wiki:doc/app/d3par#skip_time_data_output skip_time_data_output] (or [wiki:doc/app/sppar#skip_time_dosp skip_time_dosp]) }}} |---------------- {{{#!td style="vertical-align:top" 2d cross section (xy) }}} {{{#!td style="vertical-align:top" [wiki:doc/app/iofiles#DATA_2D_XY_NETCDF DATA_2D_XY_NETCDF] }}} {{{#!td style="vertical-align:top" [wiki:doc/app/d3par#data_output data_output] (or [wiki:doc/app/userpar#data_output_user data_output_user]), [wiki:doc/app/d3par#dt_data_output dt_data_output] (or [wiki:doc/app/d3par#dt_do2d_xy dt_do2d_xy]), [wiki:doc/app/d3par#section_xy section_xy] }}} {{{#!td [wiki:doc/app/d3par#data_output_format data_output_format], [wiki:doc/app/d3par#data_output_2d_on_each_pe data_output_2d_on_each_pe], [wiki:doc/app/d3par#do2d_at_begin do2d_at_begin], [wiki:doc/app/d3par#skip_time_data_output skip_time_data_output] (or [wiki:doc/app/d3par#skip_time_do2d_xy skip_time_do2d_xy]) }}} |---------------- {{{#!td style="vertical-align:top" 2d cross section (xy), time-averaged }}} {{{#!td style="vertical-align:top" [wiki:doc/app/iofiles#DATA_2D_XY_AV_NETCDF DATA_2D_XY_AV_NETCDF] }}} {{{#!td style="vertical-align:top" [wiki:doc/app/d3par#data_output data_output] (or [wiki:doc/app/userpar#data_output_user data_output_user]), [wiki:doc/app/d3par#dt_data_output dt_data_output] (or [wiki:doc/app/d3par#dt_data_output_av dt_data_output_av] or [wiki:doc/app/d3par#dt_do2d_xy dt_do2d_xy), [wiki:doc/app/d3par#section_xy section_xy] }}} {{{#!td [wiki:doc/app/d3par#averaging_interval averaging_interval], [wiki:doc/app/d3par#dt_averaging_input dt_averaging_input], [wiki:doc/app/d3par#data_output_format data_output_format], [wiki:doc/app/d3par#data_output_2d_on_each_pe data_output_2d_on_each_pe], [wiki:doc/app/d3par#do2d_at_begin do2d_at_begin], [wiki:doc/app/d3par#skip_time_data_output skip_time_data_output] (or [wiki:doc/app/d3par#skip_time_data_output_av skip_time_data_output_av], or [wiki:doc/app/d3par#skip_time_do2d_xy skip_time_do2d_xy]) }}} |---------------- {{{#!td style="vertical-align:top" 2d cross section (xz) }}} {{{#!td style="vertical-align:top" [wiki:doc/app/iofiles#DATA_2D_XZ_NETCDF DATA_2D_XZ_NETCDF] }}} {{{#!td style="vertical-align:top" wiki:doc/app/d3par#data_output data_output] (or [wiki:doc/app/userpar#data_output_user data_output_user]), [wiki:doc/app/d3par#dt_data_output dt_data_output] (or [wiki:doc/app/d3par#dt_do2d_xz dt_do2d_xz]), [wiki:doc/app/d3par#section_xz section_xz] }}} {{{#!td [wiki:doc/app/d3par#data_output_format data_output_format], [wiki:doc/app/d3par#data_output_2d_on_each_pe data_output_2d_on_each_pe], [wiki:doc/app/d3par#do2d_at_begin do2d_at_begin], [wiki:doc/app/d3par#skip_time_data_output skip_time_data_output], ([wiki:doc/app/d3par#skip_time_do2d_xz skip_time_do2d_xz] }}} |---------------- {{{#!td style="vertical-align:top" 2d cross section (xz), time-averaged }}} {{{#!td style="vertical-align:top" [wiki:doc/app/iofiles#DATA_2D_XZ_AV_NETCDF DATA_2D_XZ_AV_NETCDF] }}} {{{#!td style="vertical-align:top" [wiki:doc/app/d3par#data_output data_output] (or [wiki:doc/app/userpar#data_output_user data_output_user]), [wiki:doc/app/d3par#dt_data_output dt_data_output] (or [wiki:doc/app/d3par#dt_data_output_av dt_data_output_av] or [wiki:doc/app/d3par#dt_do2d_xz dt_do2d_xz]), [wiki:doc/app/d3par#section_xz section_xz] }}} {{{#!td [wiki:doc/app/d3par#averaging_interval averaging_interval], [wiki:doc/app/d3par#dt_averaging_input dt_averaging_input], [wiki:doc/app/d3par#data_output_format data_output_format], [wiki:doc/app/d3par#data_output_3d_on_each_pe data_output_on_each_pe], [wiki:doc/app/d3par#do2d_at_begin do2d_at_begin], [wiki:doc/app/d3par#skip_time_data_output skip_time_data_output] (or [wiki:doc/app/d3par#skip_time_data_output_av skip_time_data_output_av], or [wiki:doc/app/d3par#skip_time_do2d_xz]) }}} |---------------- {{{#!td style="vertical-align:top" 2d cross section (yz) }}} {{{#!td style="vertical-align:top" [wiki:doc/app/iofiles#DATA_2D_YZ_NETCDF DATA_2D_YZ_NETCDF] }}} {{{#!td style="vertical-align:top" [wiki:doc/app/d3par#data_output data_output], (or [wiki:doc/app/userpar#data_output_user data_output_user]), [wiki:doc/app/d3par#dt_data_output dt_data_output] (or [wiki:doc/app/d3par#dt_do2d_yz dt_do2d_yz], [wiki:doc/app/d3par#section_yz section_yz] }}} {{{#!td [wiki:doc/app/d3par#data_output_format data_output_format], [wiki:doc/app/d3par#data_output_2d_on_each_pe data_output_2d_on_each_pe], [wiki:doc/app/d3par#do2d_at_begin do2d_at_begin], [wiki:doc/app/d3par#skip_time_data_output skip_time_data_output] (or [wiki:doc/app/d3par#skip_time_do2d_yz] }}} |---------------- {{{#!td style="vertical-align:top" 2d cross section (yz), time-averaged }}} {{{#!td style="vertical-align:top" [wiki:doc/app/iofiles#DATA_2D_YZ_AV_NETCDF DATA_2D_YZ_AV_NETCDF] }}} {{{#!td style="vertical-align:top" [wiki:doc/app/d3par#data_output data_output] (or [wiki:doc/app/userpar#data_output_user data_output_user]), [wiki:doc/app/d3par#dt_data_output dt_data_output] (or [wiki:doc/app/d3par#dt_data_output_av dt_data_output_av] or [wiki:doc/app/d3par#dt_do2d_yz dt_do2d_yz]), [wiki:doc/app/d3par#section_yz section_yz] }}} {{{#!td [wiki:doc/app/d3par#averaging_interval averaging_interval], [wiki:doc/app/d3par#dt_averaging_input dt_averaging_input], [wiki:doc/app/d3par#data_output_format data_output_format], [wiki:doc/app/d3par#data_output_2d_on_each_pe data_output_2d_on_each_pe], [wiki:doc/app/d3par#do2d_at_begin do2d_at_begin], [wiki:doc/app/d3par#skip_time_data_output skip_time_data_output] (or [wiki:doc/app/d3par#skip_time_data_output_av skip_time_data_output_av], or [wiki:doc/app/d3par#skip_time_do2d_yz skip_time_do2d_yz], or [wiki:doc/app/d3par#skip_time_do2d_yz skip_time_do2d_yz]) }}} |---------------- {{{#!td style="vertical-align:top" 3d volume }}} {{{#!td style="vertical-align:top" [wiki:doc/app/iofiles#DATA_3D_NETCDF DATA_3D_NETCDF] }}} {{{#!td style="vertical-align:top" [wiki:doc/app/d3par#data_output data_output] (or [wiki:doc/app/userpar#data_output_user data_output_user]), or [wiki:doc/app/d3par#dt_data_output dt_data_output] (or [wiki:doc/app/d3par#dt_do3d dt_do3d]) }}} {{{#!td [wiki:doc/app/d3par#data_output_format data_output_format], [wiki:doc/app/d3par#do3d_at_begin do3d_at_begin], [wiki:doc/app/inipar#nz_do3d nz_do3d], [wiki:doc/app/d3par#skip_time_data_output skip_time_data_output] (or [wiki:doc/app/d3par#skip_time_do3d]) }}} |---------------- {{{#!td style="vertical-align:top" 3d volume, time-averaged }}} {{{#!td style="vertical-align:top" [wiki:doc/app/iofiles#DATA_3D_AV_NETCDF DATA_3D_AV_NETCDF] }}} {{{#!td style="vertical-align:top" [wiki:doc/app/d3par#data_output data_output], (or [wiki:doc/app/userpar#data_output_user data_output_user]), [wiki:doc/app/d3par#dt_data_output dt_data_output] (or [wiki:doc/app/d3par#dt_data_output_av dt_data_output_av] or [wiki:doc/app/d3par#dt_do3d dt_do3d]) }}} {{{#!td [wiki:doc/app/d3par#averaging_interval averaging_interval], [wiki:doc/app/d3par#dt_averaging_input dt_averaging_input], [wiki:doc/app/d3par#data_output_format data_output_format], [wiki:doc/app/d3par#do3d_at_begin do3d_at_begin], [wiki:doc/app/d3par#nz_do3d nz_do3d], [wiki:doc/app/d3par#skip_time_data_output skip_time_data_output] (or [wiki:doc/app/d3par#skip_time_data_output_av skip_time_data_output_av], or [wiki:doc/app/d3par#skip_time_do3d skip_time_do3d]) }}} |---------------- {{{#!td style="vertical-align:top" particle timeseries }}} {{{#!td style="vertical-align:top" [wiki:doc/app/iofiles#DATA_1D_PTS_NETCDF DATA_1D_PTS_NETCDF] }}} {{{#!td style="vertical-align:top" [wiki:doc/app/d3par#dt_data_output dt_data_output] (or [wiki:doc/app/parpar#dt_dopts dt_dopts]) }}} {{{#!td }}} |---------------- {{{#!td style="vertical-align:top" particle attributes }}} {{{#!td style="vertical-align:top" [wiki:doc/app/iofiles#DATA_PRT_NETCDF DATA_PRT_NETCDF] }}} {{{#!td style="vertical-align:top" [wiki:doc/app/parpar#dt_write_particle_data dt_write_particle_data] }}} {{{#!td }}} |----------------