Changes between Version 77 and Version 78 of doc/app/userint/output
- Timestamp:
- Apr 6, 2016 3:02:16 PM (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
doc/app/userint/output
v77 v78 25 25 The identification number (user_pr_index) must be within the range [ {{{pr_palm+1 , pr_palm+max_pr_user}}} ], where {{{max_pr_user}}} is the number of user-defined profiles as given by parameter [../../userpar#data_output_pr_user data_output_pr_user] in the respective {{{PALM}}} run. The physical unit has to be given with respect to the netCDF conventions. If no unit is given, {{{PALM}}} will abort. The vertical grid has to be either {{{zu}}} ({{{u}}}-grid) or {{{zw}}} ({{{w}}}-grid). 26 26 27 3. The quantity has to be calculated for all grid points (subroutine user_statistics): \\\\27 3. The quantity has to be calculated for all grid points (subroutine user_statistics): \\\\ 28 28 {{{!$OMP DO}}} \\ 29 29 {{{DO i = nxl, nxr}}} \\ … … 38 38 {{{ENDDO}}} \\ 39 39 40 The turbulent resolved-scale momentum flux ''u*v*'' is defined as the product of the deviations of the horizontal velocities from their respective horizontally averaged mean values. These mean values are stored in array {{{hom(..,1,1,sr)}}} and {{{hom(..,1,2,sr)}}} for the u- and v-component, respectively. Since due to the staggered grid, u and v are not defined at the same grid points, they have to be interpolated appropriately (here to the center of the gridbox). The result of the calculation is stored in array {{{sums_l}}}. The second index of this array is the identification number of the profile which must match the one given in the previous step 2. \\\\41 42 [=#part_2 '''2. Output of user-defined time series'''] \\\\43 This example shows the output of two time series for the absolut extremalvalues of the horizontal velocities u and v. If more than one user-defined quantity shall be output, the following steps have to be carried out in the same way for each of the quantities.\\\\40 The turbulent resolved-scale momentum flux ''u*v*'' is defined as the product of the deviations of the horizontal velocities from their respective horizontally averaged mean values. These mean values are stored in array {{{hom(..,1,1,sr)}}} and {{{hom(..,1,2,sr)}}} for the u- and v-component, respectively. Since due to the staggered grid, u and v are not defined at the same grid points, they have to be interpolated appropriately (here to the center of the grid box). The result of the calculation is stored in array {{{sums_l}}}. The second index of this array is the identification number of the profile which must match the one given in the previous step 2. \\\\ 41 42 [=#part_2 '''2. Output of user-defined time series'''] \\\\ 43 This example shows the output of two time series for the maxima of the absolute values of the horizontal velocities u and v. If more than one user-defined quantity shall be output, the following steps have to be carried out in the same way for each of the quantities.\\\\ 44 44 1. For each time series quantity you have to give a label and a unit (subroutine [../int#user_init user_init]), which will be used for the netCDF file. They must not contain more than '''13''' characters. The value of {{{dots_num}}} has to be increased by the number of new time series quantities. Its old value has to be stored in {{{dots_num_palm}}}. 45 45 … … 72 72 {{{ data_output_masks_user(1,:) = 'u2', }}} 73 73 74 3. In order to store the quantities' grid pointdata within PALM, a 3d data array has to be declared in module [../int#user user] (user_module.f90): \\74 3. In order to store the quantities' data within PALM, a 3d data array has to be declared in module [../int#user user] (user_module.f90): \\ 75 75 76 76 {{{ REAL, DIMENSION(:,:,:), ALLOCATABLE :: u2, u2_av }}} // … … 95 95 As the example shows, this grid has to be defined for the 3d volume data as well as for all of the three cross sections. \\ 96 96 97 7. After each time step, the quantity has to be calculated at all gridpoints and to be stored. This has to be done in subroutine [../int#user_actions user_actions] at location 'after_integration': \\97 7. After each time step, the quantity has to be calculated at all grid points and to be stored. This has to be done in subroutine [../int#user_actions user_actions] at location 'after_integration': \\ 98 98 99 99 {{{ CASE ( 'after_integration' ) }}} \\ … … 142 142 {{{ ENDDO }}} \\ 143 143 144 9. For output of '''2d cross sections''', the gridpointdata of the quantity has to be resorted to array {{{local_pf}}} in subroutine [../int#user_data_output_2d user_data_output_2d]. Also the vertical grid, on which the quantity is defined, has to be set again: \\144 9. For output of '''2d cross sections''', the data of the quantity has to be resorted to array {{{local_pf}}} in subroutine [../int#user_data_output_2d user_data_output_2d]. Also the vertical grid, on which the quantity is defined, has to be set again: \\ 145 145 146 146 {{{ CASE ( 'u2_xy', 'u2_xz', 'u2_yz' ) }}} \\ … … 188 188 Note that {{{two_d = .TRUE.}}} is necessary for output of a 2d data slice. \\ 189 189 190 10. For output of '''3d volume data''', the gridpointdata of the quantity has to be resorted to {{{array local_pf}}} in subroutine [../int#user_data_output_3d user_data_output_3d].:190 10. For output of '''3d volume data''', the data of the quantity has to be resorted to {{{array local_pf}}} in subroutine [../int#user_data_output_3d user_data_output_3d].: 191 191 192 192 {{{ CASE ( 'u2' ) }}} \\ … … 211 211 The {{{ELSE}}} case is only needed in case that output of time-averaged data is requested. 212 212 213 11. For output of '''masked data''', the gridpointdata of the quantity has to be resorted to {{{array local_pf}}} in subroutine [../int#user_data_output_mask user_data_output_mask].:213 11. For output of '''masked data''', the data of the quantity has to be resorted to {{{array local_pf}}} in subroutine [../int#user_data_output_mask user_data_output_mask].: 214 214 215 215 {{{ CASE ( 'u2' ) }}} \\ … … 278 278 \\\\ 279 279 [=#part_4 '''4. Output of user-defined DVRP objects'''] \\\\ 280 This example shows the output of the quantity "square of the u-component", u^2^. If more than one user-defined quantity shall be output, the following steps have to be carried out in the same way for each of the quantities. First, steps 1 - 6 of part [#part_3 (2d cross section or 3d volume data)] are required. Second, the gridpointdata of the quantity has to be resorted to array {{{local_pf}}} in subroutine [../int#user_data_output_dvrp user_data_output_dvrp] as follows:280 This example shows the output of the quantity "square of the u-component", u^2^. If more than one user-defined quantity shall be output, the following steps have to be carried out in the same way for each of the quantities. First, steps 1 - 6 of part [#part_3 (2d cross section or 3d volume data)] are required. Second, the data of the quantity has to be resorted to array {{{local_pf}}} in subroutine [../int#user_data_output_dvrp user_data_output_dvrp] as follows: 281 281 282 282 {{{ CASE ( '}}}[[span({{{u2}}},style=color: red)]]{{{', '}}}[[span({{{u2}}},style=color: red)]]{{{_xy', '}}}[[span({{{u2}}},style=color: red)]]{{{_xz', '}}}[[span({{{u2}}},style=color: red)]]{{{_yz' ) }}}\\