- Timestamp:
- Jun 28, 2018 4:20:35 PM (6 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/land_surface_model_mod.f90
r3051 r3091 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Add check for local roughness length not exceeding surface-layer height and 28 ! limit roughness length where necessary. 29 ! 30 ! 3051 2018-05-30 17:43:55Z suehring 27 31 ! Bugfix in surface-element loops for pavement surfaces 28 32 ! … … 4499 4503 ! 4500 4504 !-- Finally, make some consistency checks. 4501 !-- Ceck for eck forillegal combination of LAI and vegetation coverage.4505 !-- Ceck for illegal combination of LAI and vegetation coverage. 4502 4506 IF ( ANY( .NOT. surf_lsm_h%pavement_surface .AND. & 4503 4507 surf_lsm_h%lai == 0.0_wp .AND. surf_lsm_h%c_veg == 1.0_wp ) & … … 4517 4521 ENDIF 4518 4522 ENDDO 4523 ! 4524 !-- Check if roughness length exceed surface-layer height and decrease 4525 !-- local roughness length where necessary. 4526 DO m = 1, surf_lsm_h%ns 4527 IF ( surf_lsm_h%z0(m) >= surf_lsm_h%z_mo(m) ) THEN 4528 4529 surf_lsm_h%z0(m) = 0.9_wp * surf_lsm_h%z_mo(m) 4530 4531 WRITE( message_string, * ) 'z0 exceeds surface-layer height ' // & 4532 'at horizontal natural surface and is ' // & 4533 'decreased appropriately at grid point (i,j) = ', & 4534 surf_lsm_h%i(m), surf_lsm_h%j(m) 4535 CALL message( 'land_surface_model_mod', 'PA0503', & 4536 0, 0, 0, 6, 0 ) 4537 ENDIF 4538 ENDDO 4539 4540 DO l = 0, 3 4541 DO m = 1, surf_lsm_v(l)%ns 4542 IF ( surf_lsm_v(l)%z0(m) >= surf_lsm_v(l)%z_mo(m) ) THEN 4543 4544 surf_lsm_v(l)%z0(m) = 0.9_wp * surf_lsm_v(l)%z_mo(m) 4545 4546 WRITE( message_string, * ) 'z0 exceeds surface-layer height '//& 4547 'at vertical natural surface and is ' // & 4548 'decreased appropriately at grid point (i,j) = ', & 4549 surf_lsm_v(l)%i(m)+surf_lsm_v(l)%ioff, & 4550 surf_lsm_v(l)%j(m)+surf_lsm_v(l)%joff 4551 CALL message( 'land_surface_model_mod', 'PA0503', & 4552 0, 0, 0, 6, 0 ) 4553 ENDIF 4554 ENDDO 4555 ENDDO 4519 4556 4520 4557 -
palm/trunk/SOURCE/urban_surface_mod.f90
r3065 r3091 28 28 ! ----------------- 29 29 ! $Id$ 30 ! - Limit aerodynamic resistance at vertical walls. 31 ! - Add check for local roughness length not exceeding surface-layer height and 32 ! limit roughness length where necessary. 33 ! 34 ! 3065 2018-06-12 07:03:02Z Giersch 30 35 ! Unused array dxdir was removed, dz was replaced by dzu to consider vertical 31 36 ! grid stretching … … 4577 4582 ENDIF 4578 4583 ENDIF 4584 ! 4585 !-- Check for consistent initialization. 4586 !-- Check if roughness length exceed surface-layer height and decrease 4587 !-- local roughness length where necessary. 4588 DO m = 1, surf_usm_h%ns 4589 IF ( surf_usm_h%z0(m) >= surf_usm_h%z_mo(m) ) THEN 4590 4591 surf_usm_h%z0(m) = 0.9_wp * surf_usm_h%z_mo(m) 4592 4593 WRITE( message_string, * ) 'z0 exceeds surface-layer height ' // & 4594 'at horizontal urban surface and is ' // & 4595 'decreased appropriately at grid point (i,j) = ', & 4596 surf_usm_h%i(m), surf_usm_h%j(m) 4597 CALL message( 'urban_surface_model_mod', 'PA0503', & 4598 0, 0, 0, 6, 0 ) 4599 ENDIF 4600 ENDDO 4601 4602 DO l = 0, 3 4603 DO m = 1, surf_usm_v(l)%ns 4604 IF ( surf_usm_v(l)%z0(m) >= surf_usm_v(l)%z_mo(m) ) THEN 4605 4606 surf_usm_v(l)%z0(m) = 0.9_wp * surf_usm_v(l)%z_mo(m) 4607 4608 WRITE( message_string, * ) 'z0 exceeds surface-layer height '//& 4609 'at vertical urban surface and is ' // & 4610 'decreased appropriately at grid point (i,j) = ', & 4611 surf_usm_v(l)%i(m)+surf_usm_v(l)%ioff, & 4612 surf_usm_v(l)%j(m)+surf_usm_v(l)%joff 4613 CALL message( 'urban_surface_model_mod', 'PA0503', & 4614 0, 0, 0, 6, 0 ) 4615 ENDIF 4616 ENDDO 4617 ENDDO 4579 4618 4580 4619 !-- Intitialization of the surface and wall/ground/roof temperature … … 7464 7503 0.01_wp ) ) & 7465 7504 ) - 4.0_wp ) 7466 7505 ! 7506 !-- Limit aerodynamic resistance 7507 IF ( surf_usm_v(l)%r_a(m) < 1.0_wp ) & 7508 surf_usm_v(l)%r_a(m) = 1.0_wp 7509 7467 7510 f_shf = rho_cp / surf_usm_v(l)%r_a(m) 7468 7511 f_shf_window = rho_cp / surf_usm_v(l)%r_a(m) … … 7489 7532 lambda_surface_window * t_window_v(l)%t(nzb_wall,m) 7490 7533 7491 coef_green_1 = surf_usm_v(l)%rad_net_l(m) + 7534 coef_green_1 = surf_usm_v(l)%rad_net_l(m) + & ! coef +1 corresponds to -lwout included in calculation of radnet_l 7492 7535 ( 3.0_wp + 1.0_wp ) * surf_usm_v(l)%emissivity(ind_pav_green,m) *& 7493 7536 sigma_sb * t_surf_green_v(l)%t(m) ** 4 + &
Note: See TracChangeset
for help on using the changeset viewer.