Ignore:
Timestamp:
Jul 16, 2018 2:48:21 PM (3 years ago)
Author:
suehring
Message:

Limit roughness for heat and moisture in case it exceeds the model-assumed surface-layer height; Limit surface resistance to positive values.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/urban_surface_mod.f90

    r3123 r3136  
    2828! -----------------
    2929! $Id$
     30! Limit also roughness length for heat and moisture where necessary
     31!
     32! 3123 2018-07-12 16:21:53Z suehring
    3033! Correct working precision for INTEGER number
    3134!
     
    46024605!
    46034606!--    Check for consistent initialization.
    4604 !--    Check if roughness length exceed surface-layer height and decrease
    4605 !--    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.
    46064609       DO  m = 1, surf_usm_h%ns
    46074610          IF ( surf_usm_h%z0(m) >= surf_usm_h%z_mo(m) )  THEN
     
    46164619                            0, 0, 0, 6, 0 )
    46174620          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         
    46184633       ENDDO
    46194634       
     
    46304645                            surf_usm_v(l)%j(m)+surf_usm_v(l)%joff
    46314646                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',             &
    46324660                            0, 0, 0, 6, 0 )
    46334661             ENDIF
Note: See TracChangeset for help on using the changeset viewer.