- Timestamp:
- Jul 16, 2018 2:48:21 PM (6 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/land_surface_model_mod.f90
r3133 r3136 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Limit also roughness length for heat and moisture where necessary; 28 ! Limit surface resistance to positive values 29 ! 30 ! 3133 2018-07-16 11:46:50Z maronga 27 31 ! Bugfix for last commit. 28 32 ! 29 ! 3127 2018-07-15 08:01:25Z maronga30 33 ! Some adjustments for pavement parameters 31 34 ! Limit magnus formula to avoid negative q_s (leads to model crash) … … 2150 2153 (surf%qsws(m) + 1.0E-20) - surf%r_a(m) 2151 2154 ENDIF 2152 2155 ! 2156 !-- Limit resistance resistance 2157 surf%r_s(m) = MAX( surf%r_s(m), 1.0_wp ) 2153 2158 ! 2154 2159 !-- Calculate change in liquid water reservoir due to dew fall or … … 4531 4536 ENDDO 4532 4537 ! 4533 !-- Check if roughness length exceed surface-layer height and decrease 4534 !-- local roughness length where necessary. 4538 !-- Check if roughness length for momentum, heat, or moisture exceed 4539 !-- surface-layer height and decrease local roughness length where 4540 !-- necessary. 4535 4541 DO m = 1, surf_lsm_h%ns 4536 4542 IF ( surf_lsm_h%z0(m) >= surf_lsm_h%z_mo(m) ) THEN … … 4543 4549 surf_lsm_h%i(m), surf_lsm_h%j(m) 4544 4550 CALL message( 'land_surface_model_mod', 'PA0503', & 4551 0, 0, 0, 6, 0 ) 4552 ENDIF 4553 IF ( surf_lsm_h%z0h(m) >= surf_lsm_h%z_mo(m) ) THEN 4554 4555 surf_lsm_h%z0h(m) = 0.9_wp * surf_lsm_h%z_mo(m) 4556 surf_lsm_h%z0q(m) = 0.9_wp * surf_lsm_h%z_mo(m) 4557 4558 WRITE( message_string, * ) 'z0h exceeds surface-layer height ' // & 4559 'at horizontal natural surface and is ' // & 4560 'decreased appropriately at grid point (i,j) = ', & 4561 surf_lsm_h%i(m), surf_lsm_h%j(m) 4562 CALL message( 'land_surface_model_mod', 'PA0507', & 4545 4563 0, 0, 0, 6, 0 ) 4546 4564 ENDIF … … 4561 4579 0, 0, 0, 6, 0 ) 4562 4580 ENDIF 4581 IF ( surf_lsm_v(l)%z0h(m) >= surf_lsm_v(l)%z_mo(m) ) THEN 4582 4583 surf_lsm_v(l)%z0h(m) = 0.9_wp * surf_lsm_v(l)%z_mo(m) 4584 surf_lsm_v(l)%z0q(m) = 0.9_wp * surf_lsm_v(l)%z_mo(m) 4585 4586 WRITE( message_string, * ) 'z0h exceeds surface-layer height '//& 4587 'at vertical natural surface and is ' // & 4588 'decreased appropriately at grid point (i,j) = ', & 4589 surf_lsm_v(l)%i(m)+surf_lsm_v(l)%ioff, & 4590 surf_lsm_v(l)%j(m)+surf_lsm_v(l)%joff 4591 CALL message( 'land_surface_model_mod', 'PA0507', & 4592 0, 0, 0, 6, 0 ) 4593 ENDIF 4563 4594 ENDDO 4564 4595 ENDDO 4565 4566 4567 4596 4568 4597 END SUBROUTINE lsm_init -
palm/trunk/SOURCE/urban_surface_mod.f90
r3123 r3136 28 28 ! ----------------- 29 29 ! $Id$ 30 ! Limit also roughness length for heat and moisture where necessary 31 ! 32 ! 3123 2018-07-12 16:21:53Z suehring 30 33 ! Correct working precision for INTEGER number 31 34 ! … … 4602 4605 ! 4603 4606 !-- Check for consistent initialization. 4604 !-- Check if roughness length exceed surface-layer height and decrease4605 !-- local roughness length where necessary.4607 !-- Check if roughness length for momentum, or heat, exceed surface-layer 4608 !-- height and decrease local roughness length where necessary. 4606 4609 DO m = 1, surf_usm_h%ns 4607 4610 IF ( surf_usm_h%z0(m) >= surf_usm_h%z_mo(m) ) THEN … … 4616 4619 0, 0, 0, 6, 0 ) 4617 4620 ENDIF 4621 IF ( surf_usm_h%z0h(m) >= surf_usm_h%z_mo(m) ) THEN 4622 4623 surf_usm_h%z0h(m) = 0.9_wp * surf_usm_h%z_mo(m) 4624 surf_usm_h%z0q(m) = 0.9_wp * surf_usm_h%z_mo(m) 4625 4626 WRITE( message_string, * ) 'z0h exceeds surface-layer height ' // & 4627 'at horizontal urban surface and is ' // & 4628 'decreased appropriately at grid point (i,j) = ', & 4629 surf_usm_h%i(m), surf_usm_h%j(m) 4630 CALL message( 'urban_surface_model_mod', 'PA0507', & 4631 0, 0, 0, 6, 0 ) 4632 ENDIF 4618 4633 ENDDO 4619 4634 … … 4630 4645 surf_usm_v(l)%j(m)+surf_usm_v(l)%joff 4631 4646 CALL message( 'urban_surface_model_mod', 'PA0503', & 4647 0, 0, 0, 6, 0 ) 4648 ENDIF 4649 IF ( surf_usm_v(l)%z0h(m) >= surf_usm_v(l)%z_mo(m) ) THEN 4650 4651 surf_usm_v(l)%z0h(m) = 0.9_wp * surf_usm_v(l)%z_mo(m) 4652 surf_usm_v(l)%z0q(m) = 0.9_wp * surf_usm_v(l)%z_mo(m) 4653 4654 WRITE( message_string, * ) 'z0h exceeds surface-layer height '//& 4655 'at vertical urban surface and is ' // & 4656 'decreased appropriately at grid point (i,j) = ', & 4657 surf_usm_v(l)%i(m)+surf_usm_v(l)%ioff, & 4658 surf_usm_v(l)%j(m)+surf_usm_v(l)%joff 4659 CALL message( 'urban_surface_model_mod', 'PA0507', & 4632 4660 0, 0, 0, 6, 0 ) 4633 4661 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.