Version 28 (modified by weinreis, 14 years ago) (diff) |
---|
Masked data output
General
From release 3.7a (r483) output of masked data is implemented in PALM. This feature allows to output quantities at different mask locations, e.g. 3d volume data or 2d cross sections of arbitrary extension within the model domain; 0d or 1d data at any positions and of any amount.
NetCDF4 file format is already available for masked data output.
Default quantities (instantaneous and time averaged) can be declared with the parameter data_output_masks, user-defined quantities can be output with data_output_masks_user.
Output steering
Different runtime parameters defines the masks and steers the output of the quantities assigned with data_output_masks and/or data_output_masks_user:
dt_domask | temporal interval at which instantaneous masked data shall be output (in s) |
mask_scale_x | scaling length for masked data output in x-direction |
mask_scale_y | scaling length for masked data output in y-direction |
mask_scale_z | scaling length for masked data output in z-direction |
mask_x | all x-coordinates of mask locations (in m) |
mask_y | all y-coordinates of mask locations (in m) |
mask_z | all z-coordinates of mask locations (in m) |
mask_x_loop | loop begin, end and stride for x-coordinates of mask locations for masks (in multiples of mask scale) |
mask_y_loop | loop begin, end and stride for y-coordinates of mask locations for masks (in multiples of mask scale) |
mask_z_loop | loop begin, end and stride for z-coordinates of mask locations for masks (in multiples of mask scale) |
skip_time_domask | no output of masked data before this interval has passed (in s) |
So far 20 different masks can be defined. Each mask is output to one local file:
Instantaneous data of mask 1 are output to file DATA_MASK_01_NETCDF, time-averaged data to file DATA_MASK_01_AV_NETCDF.
Instantaneous data of mask 2 are output to file DATA_MASK_02_NETCDF, time-averaged data to file DATA_MASK_02_AV_NETCDF.
Instantaneous data of mask 3 are output to file DATA_MASK_03_NETCDF, time-averaged data to file DATA_MASK_03_AV_NETCDF.
...
Instantaneous data of mask 20 are output to file DATA_MASK_20_NETCDF, time-averaged data to file DATA_MASK_20_AV_NETCDF.
Besides assigning the parameters listed above, the required output files have to be comment out in the mrun-configuration file?:
#---------------------------------------------------------------------------- # List of output-files #---------------------------------------------------------------------------- DATA_MASK_01_NETCDF out:loc ma#:maf $output_data _m01 nc DATA_MASK_01_AV_NETCDF out:loc ma#:maf $output_data _m01_av nc DATA_MASK_02_NETCDF out:loc ma#:maf $output_data _m02 nc DATA_MASK_02_AV_NETCDF out:loc ma#:maf $output_data _m02_av nc #DATA_MASK_03_NETCDF out:loc ma#:maf $output_data _m03 nc #DATA_MASK_03_AV_NETCDF out:loc ma#:maf $output_data _m03_av nc ... #DATA_MASK_20_NETCDF out:loc ma#:maf $output_data _m20 nc #DATA_MASK_20_AV_NETCDF out:loc ma#:maf $output_data _m20_av nc
Here output of masks 1 and 2 is done. Masks 3 to 20 will not be output even if the parameters are assigned.
Within the mrun call ma# has to be added to the mrun-option -r:
mrun -d example_cbl -h... -r "d3# ma#"
Examples
The following examples are given for the example_cbl run with a model domain of 2000m x 2000m x 2000m and a resolution of 50.0m.
Output of one mask
Mask 1: 3d volume data with an extension of 500m x 200m x 2000m from x=0m to x=500m, from y=800m to y=1000m and from the bottom to the top of the model domain of instantaneous data of the wind components
&inipar nx = 39, ny = 39, nz = 40, dx = 50.0, dy = 50.0, dz = 50.0, .../ &d3par ... data_output_masks (1,:) = 'u','v','w', mask_x_loop (1,:) = 0., 500. ,50. , mask_y_loop (1,:) = 800., 1000., 50. ,/
If mask_z or mask_z_loop are not assigned, all gridpoints are used along the z-direction.
Output is done at t = dt_data_output? since dt_domask is not assigned.
Output of two different masks
Mask 1: xy cross section from x=500m to x=1000m and from y=1000m to 2000m at heights 0m, 50m, 100m, 500m, 1000m and 1200m of instantaneous and time averaged data of the wind components
Mask 2: every second gridpoint in all directions of the potential temperature
&inipar nx = 39, ny = 39, nz = 40, dx = 50.0, dy = 50.0, dz = 50.0, .../ &d3par ... data_output_masks (1,:) = 'u','v','w','u_av','v_av','w_av', data_output_masks (2,:) = 'pt' mask_x_loop (1,:) = 500.,1000.,50. , mask_y_loop (1,:) = 1000.,2000.,50. , mask_z (1,:) = 0.,50.,100.,500.,1000.,1200., mask_x_loop (2,:) = 0.,2000.,100., mask_y_loop (2,:) = 0.,2000.,100., mask_z_loop (2,:) = 0.,2000.,100.,/