Changes between Version 80 and Version 81 of doc/app/userint/output
- Timestamp:
- Sep 6, 2018 9:00:23 AM (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
doc/app/userint/output
v80 v81 75 75 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): \\ 76 76 77 {{{ REAL , DIMENSION(:,:,:), ALLOCATABLE :: u2, u2_av }}} //77 {{{ REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: u2, u2_av }}} // 78 78 79 79 The second array {{{u2_av}}} is needed in case that output of time averaged data is requested. It is used to store the sum of the data of the respective time levels over which the average has to be carried out. \\ … … 124 124 {{{ ... }}} \\ 125 125 {{{ CASE ( 'u2' ) }}} \\ 126 {{{ DO i = nxlg, nxrg }}} \\ 127 {{{ DO j = nysg, nyng }}} \\ 128 {{{ DO k = nzb, nzt+1 }}} \\ 129 {{{ u2_av(k,j,i) = u2_av(k,j,i) + u2(k,j,i) }}} \\ 126 {{{ IF ( ALLOCATED( u2_av ) ) THEN }}} \\ 127 {{{ DO i = nxlg, nxrg }}} \\ 128 {{{ DO j = nysg, nyng }}} \\ 129 {{{ DO k = nzb, nzt+1 }}} \\ 130 {{{ u2_av(k,j,i) = u2_av(k,j,i) + u2(k,j,i) }}} \\ 131 {{{ ENDDO }}} \\ 130 132 {{{ ENDDO }}} \\ 131 133 {{{ ENDDO }}} \\ 132 {{{ END DO}}} \\134 {{{ ENDIF}}} \\ 133 135 {{{ ... }}} \\ 134 136 {{{ ELSEIF ( mode == 'average' ) THEN }}} \\ 135 137 {{{ ... }}} \\ 136 138 {{{ CASE ( 'u2' ) }}} \\ 137 {{{ DO i = nxlg, nxrg }}} \\ 138 {{{ DO j = nysg, nyng }}} \\ 139 {{{ DO k = nzb, nzt+1 }}} \\ 140 {{{ u2_av(k,j,i) = u2_av(k,j,i) / REAL( average_count_3d ) }}} \\ 139 {{{ IF ( ALLOCATED( u2_av ) ) THEN }}} \\ 140 {{{ DO i = nxlg, nxrg }}} \\ 141 {{{ DO j = nysg, nyng }}} \\ 142 {{{ DO k = nzb, nzt+1 }}} \\ 143 {{{ u2_av(k,j,i) = u2_av(k,j,i) / REAL( average_count_3d, KIND=wp ) }}} \\ 144 {{{ ENDDO }}} \\ 141 145 {{{ ENDDO }}} \\ 142 146 {{{ ENDDO }}} \\ 143 {{{ ENDDO }}} \\ 147 {{{ ENDIF}}} \\ 148 {{{ ... }}} \\ 144 149 145 150 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: \\ … … 147 152 {{{ CASE ( 'u2_xy', 'u2_xz', 'u2_yz' ) }}} \\ 148 153 {{{ IF ( av == 0 ) THEN }}} \\ 149 {{{ DO i = nxl g, nxrg}}} \\150 {{{ DO j = nys g, nyng}}} \\151 {{{ DO k = nzb , nzt+1}}} \\154 {{{ DO i = nxl, nxr }}} \\ 155 {{{ DO j = nys, nyn }}} \\ 156 {{{ DO k = nzb_do, nzt_do }}} \\ 152 157 {{{ local_pf(i,j,k) = u2(k,j,i) }}} \\ 153 158 {{{ ENDDO }}} \\ … … 155 160 {{{ ENDDO }}} \\ 156 161 {{{ ELSE }}} \\ 157 {{{ DO i = nxlg, nxrg }}} \\ 158 {{{ DO j = nysg, nyng }}} \\ 159 {{{ DO k = nzb, nzt+1 }}} \\ 162 {{{ IF ( .NOT. ALLOCATED( u2_av ) ) THEN }}} \\ 163 {{{ ALLOCATE( u2_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) }}} \\ 164 {{{ u2_av = REAL( fill_value, KIND = wp ) }}} \\ 165 {{{ ENDIF }}} \\ 166 {{{ DO i = nxl, nxr }}} \\ 167 {{{ DO j = nys, nyn }}} \\ 168 {{{ DO k = nzb_do, nzt_do }}} \\ 160 169 {{{ local_pf(i,j,k) = u2_av(k,j,i) }}} \\ 161 170 {{{ ENDDO }}} \\