162 | | 8. For output of 2d cross sections, the gridpoint 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: |
163 | | |
164 | | CASE ( 'u2_xy', 'u2_xz', 'u2_yz' ) |
165 | | IF ( av == 0 ) THEN |
166 | | DO i = nxl-1, nxr+1 |
167 | | DO j = nys-1, nyn+1 |
168 | | DO k = nzb, nzt+1 |
169 | | local_pf(i,j,k) = u2(k,j,i) |
170 | | ENDDO |
171 | | ENDDO |
172 | | ENDDO |
173 | | ELSE |
174 | | DO i = nxl-1, nxr+1 |
175 | | DO j = nys-1, nyn+1 |
176 | | DO k = nzb, nzt+1 |
177 | | local_pf(i,j,k) = u2_av(k,j,i) |
178 | | ENDDO |
179 | | ENDDO |
180 | | ENDDO |
181 | | ENDIF |
182 | | |
183 | | grid = 'zu' |
184 | | |
185 | | The ELSE case is only needed in case that output of time-averaged data is requested. |
186 | | |
187 | | As a special case, xy cross section output can also be defined at one single level at height k=nzb+1 on the u-grid. This features is useful for output of surface data (e.g. heat fluxes). In this case, the corresponding 2d data has to be resorted to the array local_pf(i,j,nzb+1). In addition to this, the grid in user_define_netcdf_grid as well as in user_data_output_2d must be set to grid = 'zu1'. |
188 | | |
189 | | CASE ( 'u2_xy' ) |
190 | | IF ( av == 0 ) THEN |
191 | | DO i = nxl-1, nxr+1 |
192 | | DO j = nys-1, nyn+1 |
193 | | local_pf(i,j,nzb+1) = u2(j,i) |
194 | | ENDDO |
195 | | ENDDO |
196 | | ELSE |
197 | | DO i = nxl-1, nxr+1 |
198 | | DO j = nys-1, nyn+1 |
199 | | local_pf(i,j,nzb+1) = u2_av(j,i) |
200 | | ENDDO |
201 | | ENDDO |
202 | | ENDIF |
203 | | |
204 | | grid = 'zu1' |
205 | | two_d = .TRUE. |
206 | | |
207 | | Note that two_d = .TRUE. is necessary for output of a 2d data slice. |
| 162 | 8. For output of 2d cross sections, the gridpoint 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: \\ |
| 163 | |
| 164 | {{{ CASE ( 'u2_xy', 'u2_xz', 'u2_yz' ) }}} \\ |
| 165 | {{{ IF ( av == 0 ) THEN }}} \\ |
| 166 | {{{ DO i = nxld, nxrd }}} \\ |
| 167 | {{{ DO j = nysd, nynd }}} \\ |
| 168 | {{{ DO k = nzb, nzt+1 }}} \\ |
| 169 | {{{ local_pf(i,j,k) = u2(k,j,i) }}} \\ |
| 170 | {{{ ENDDO }}} \\ |
| 171 | {{{ ENDDO }}} \\ |
| 172 | {{{ ENDDO }}} \\ |
| 173 | {{{ ELSE }}} \\ |
| 174 | {{{ DO i = nxld, nxrd }}} \\ |
| 175 | {{{ DO j = nysd, nynd }}} \\ |
| 176 | {{{ DO k = nzb, nzt+1 }}} \\ |
| 177 | {{{ local_pf(i,j,k) = u2_av(k,j,i) }}} \\ |
| 178 | {{{ ENDDO }}} \\ |
| 179 | {{{ ENDDO }}} \\ |
| 180 | {{{ ENDDO }}} \\ |
| 181 | {{{ ENDIF }}} \\ |
| 182 | {{{ grid = 'zu' }}} \\ |
| 183 | |
| 184 | The {{{ELSE}}} case is only needed in case that output of time-averaged data is requested. \\ |
| 185 | |
| 186 | As a special case, ''xy'' cross section output can also be defined at one single level at height {{{k=nzb+1}}} on the u-grid. This features is useful for output of surface data (e.g. heat fluxes). In this case, the corresponding 2d data has to be resorted to the array {{{local_pf(i,j,nzb+1)}}}. In addition to this, the grid in [../int#user_define_netcdf_grid user_define_netcdf_grid] as well as in [../#user_data_output_2d user_data_output_2d] must be set to {{{grid = 'zu1'}}}. |
| 187 | |
| 188 | {{{ CASE ( 'u2_xy' ) }}} \\ |
| 189 | {{{ IF ( av == 0 ) THEN }}} \\ |
| 190 | {{{ DO i = nxld, nxrd }}} \\ |
| 191 | {{{ DO j = nysd, nynd }}} \\ |
| 192 | {{{ local_pf(i,j,nzb+1) = u2(j,i) }}} \\ |
| 193 | {{{ ENDDO }}} \\ |
| 194 | {{{ ENDDO }}} \\ |
| 195 | {{{ ELSE }}} \\ |
| 196 | {{{ DO i = nxld, nxrd }}} \\ |
| 197 | {{{ DO j = nysd, nynd }}} \\ |
| 198 | {{{ local_pf(i,j,nzb+1) = u2_av(j,i) }}} \\ |
| 199 | {{{ ENDDO }}} \\ |
| 200 | {{{ ENDDO }}} \\ |
| 201 | {{{ ENDIF }}} \\ |
| 202 | |
| 203 | {{{ grid = 'zu1' }}} \\ |
| 204 | {{{ two_d = .TRUE. }}} \\ |
| 205 | |
| 206 | Note that {{{two_d = .TRUE.}}} is necessary for output of a 2d data slice. |