Ignore:
Timestamp:
Jun 28, 2018 4:20:35 PM (6 years ago)
Author:
suehring
Message:

Limit aerodynamic resistance at vertial building walls; check for roughness not exceeding surface-layer height

File:
1 edited

Legend:

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

    r3065 r3091  
    2828! -----------------
    2929! $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
    3035! Unused array dxdir was removed, dz was replaced by dzu to consider vertical
    3136! grid stretching
     
    45774582            ENDIF
    45784583        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   
    45794618
    45804619!--     Intitialization of the surface and wall/ground/roof temperature
     
    74647503                              0.01_wp ) )                                      &
    74657504                           )  - 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                           
    74677510             f_shf         = rho_cp / surf_usm_v(l)%r_a(m)
    74687511             f_shf_window  = rho_cp / surf_usm_v(l)%r_a(m)
     
    74897532                                     lambda_surface_window * t_window_v(l)%t(nzb_wall,m)
    74907533
    7491               coef_green_1 = surf_usm_v(l)%rad_net_l(m) +                            & ! coef +1 corresponds to -lwout included in calculation of radnet_l
     7534              coef_green_1 = surf_usm_v(l)%rad_net_l(m) +                      & ! coef +1 corresponds to -lwout included in calculation of radnet_l
    74927535              ( 3.0_wp + 1.0_wp ) * surf_usm_v(l)%emissivity(ind_pav_green,m) *&
    74937536                                     sigma_sb * t_surf_green_v(l)%t(m) ** 4 +  & 
Note: See TracChangeset for help on using the changeset viewer.