Changeset 94 for palm/trunk/SOURCE/diffusion_e.f90
- Timestamp:
- Jun 1, 2007 3:25:22 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/diffusion_e.f90
r77 r94 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! Adjustment of mixing length calculation for the ocean version. zw added to 7 ! argument list. 8 ! This is also a bugfix, because the height above the topography is now 9 ! used instead of the height above level k=0. 7 10 ! 8 11 ! Former revisions: … … 48 51 !------------------------------------------------------------------------------! 49 52 SUBROUTINE diffusion_e( ddzu, dd2zu, ddzw, diss, e, km, l_grid, theta, & 50 rif, tend, zu )53 rif, tend, zu, zw ) 51 54 52 55 USE control_parameters … … 60 63 REAL :: dpt_dz, l_stable, phi_m 61 64 REAL :: ddzu(1:nzt+1), dd2zu(1:nzt), ddzw(1:nzt+1), & 62 l_grid(1:nzt), zu(0:nzt+1) 65 l_grid(1:nzt), zu(0:nzt+1), zw(0:nzt+1) 63 66 REAL, DIMENSION(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1) :: diss, tend 64 67 REAL, DIMENSION(:,:), POINTER :: rif … … 98 101 !-- Adjustment of the mixing length 99 102 IF ( wall_adjustment ) THEN 100 l(k,j) = MIN( wall_adjustment_factor * zu(k), l_grid(k),& 101 l_stable ) 102 ll(k,j) = MIN( wall_adjustment_factor * zu(k), l_grid(k) ) 103 l(k,j) = MIN( wall_adjustment_factor * & 104 ( zu(k) - zw(nzb_s_inner(j,i)) ), & 105 l_grid(k), l_stable ) 106 ll(k,j) = MIN( wall_adjustment_factor * & 107 ( zu(k) - zw(nzb_s_inner(j,i)) ), & 108 l_grid(k) ) 103 109 ELSE 104 110 l(k,j) = MIN( l_grid(k), l_stable ) … … 106 112 ENDIF 107 113 IF ( adjust_mixing_length .AND. prandtl_layer ) THEN 108 l(k,j) = MIN( l(k,j), kappa * zu(k) / phi_m ) 109 ll(k,j) = MIN( ll(k,j), kappa * zu(k) / phi_m ) 114 l(k,j) = MIN( l(k,j), kappa * & 115 ( zu(k) - zw(nzb_s_inner(j,i)) ) & 116 / phi_m ) 117 ll(k,j) = MIN( ll(k,j), kappa * & 118 ( zu(k) - zw(nzb_s_inner(j,i)) ) & 119 / phi_m ) 110 120 ENDIF 111 121 … … 180 190 !-- Adjustment of the mixing length 181 191 IF ( wall_adjustment ) THEN 182 l(k,j) = MIN( wall_adjustment_factor * zu(k), l_grid(k),& 183 l_stable ) 184 ll(k,j) = MIN( wall_adjustment_factor * zu(k), l_grid(k) ) 192 l(k,j) = MIN( wall_adjustment_factor * & 193 ( zu(k) - zw(nzb_s_inner(j,i)) ), & 194 l_grid(k), l_stable ) 195 ll(k,j) = MIN( wall_adjustment_factor * & 196 ( zu(k) - zw(nzb_s_inner(j,i)) ), & 197 l_grid(k) ) 185 198 ELSE 186 199 l(k,j) = MIN( l_grid(k), l_stable ) … … 188 201 ENDIF 189 202 IF ( adjust_mixing_length .AND. prandtl_layer ) THEN 190 l(k,j) = MIN( l(k,j), kappa * zu(k) / phi_m ) 191 ll(k,j) = MIN( ll(k,j), kappa * zu(k) / phi_m ) 203 l(k,j) = MIN( l(k,j), kappa * & 204 ( zu(k) - zw(nzb_s_inner(j,i)) ) & 205 / phi_m ) 206 ll(k,j) = MIN( ll(k,j), kappa * & 207 ( zu(k) - zw(nzb_s_inner(j,i)) ) & 208 / phi_m ) 192 209 ENDIF 193 210 … … 253 270 !------------------------------------------------------------------------------! 254 271 SUBROUTINE diffusion_e_ij( i, j, ddzu, dd2zu, ddzw, diss, e, km, l_grid, & 255 theta, rif, tend, zu )272 theta, rif, tend, zu, zw ) 256 273 257 274 USE control_parameters … … 265 282 REAL :: dpt_dz, l_stable, phi_m 266 283 REAL :: ddzu(1:nzt+1), dd2zu(1:nzt), ddzw(1:nzt+1), & 267 l_grid(1:nzt), zu(0:nzt+1) 284 l_grid(1:nzt), zu(0:nzt+1), zw(0:nzt+1) 268 285 REAL, DIMENSION(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1) :: diss, tend 269 286 REAL, DIMENSION(:,:), POINTER :: rif … … 301 318 !-- Adjustment of the mixing length 302 319 IF ( wall_adjustment ) THEN 303 l(k) = MIN( wall_adjustment_factor * zu(k), l_grid(k), l_stable ) 304 ll(k) = MIN( wall_adjustment_factor * zu(k), l_grid(k) ) 320 l(k) = MIN( wall_adjustment_factor * & 321 ( zu(k) - zw(nzb_s_inner(j,i)) ), l_grid(k), & 322 l_stable ) 323 ll(k) = MIN( wall_adjustment_factor * & 324 ( zu(k) - zw(nzb_s_inner(j,i)) ), l_grid(k) ) 305 325 ELSE 306 326 l(k) = MIN( l_grid(k), l_stable ) … … 308 328 ENDIF 309 329 IF ( adjust_mixing_length .AND. prandtl_layer ) THEN 310 l(k) = MIN( l(k), kappa * zu(k) / phi_m ) 311 ll(k) = MIN( ll(k), kappa * zu(k) / phi_m ) 330 l(k) = MIN( l(k), kappa * & 331 ( zu(k) - zw(nzb_s_inner(j,i)) ) / phi_m ) 332 ll(k) = MIN( ll(k), kappa * & 333 ( zu(k) - zw(nzb_s_inner(j,i)) ) / phi_m ) 312 334 ENDIF 313 335
Note: See TracChangeset
for help on using the changeset viewer.