Ignore:
Timestamp:
Jan 22, 2018 11:34:58 AM (6 years ago)
Author:
maronga
Message:

major bugfix in calculation of aerodynamic resistance for vertical surface elements

File:
1 edited

Legend:

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

    r2750 r2765  
    2626! -----------------
    2727! $Id$
     28! Major bugfix in calculation of f_shf. Adjustment of roughness lengths in
     29! building_pars
     30!
     31! 2750 2018-01-15 16:26:51Z knoop
    2832! Move flag plant canopy to modules
    2933!
     
    388392        1000000.0_wp, 1000000.0_wp, 1000000.0_wp, 0.3_wp, 0.3_wp, 0.3_wp,      & !parameter 6-11
    389393        296.15_wp, 293.15_wp, 0.9_wp, 0.9_wp, 0.01_wp, 0.99_wp,                & !parameter 12-17
    390         0.01_wp, 0.001_wp, 4.0_wp,                                             & !parameter 18-20
     394        0.001_wp, 0.0001_wp, 4.0_wp,                                             & !parameter 18-20
    391395        1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 3.0_wp,                                & !parameter 21-25
    392396        1000000.0_wp, 1000000.0_wp, 1000000.0_wp,                              & !parameter 26-28                     
     
    399403        1000000.0_wp, 1000000.0_wp, 1000000.0_wp, 0.3_wp, 0.3_wp, 0.3_wp,      & !parameter 6-11
    400404        296.15_wp, 293.15_wp, 0.9_wp, 0.9_wp, 0.01_wp, 0.99_wp,                & !parameter 12-17
    401         0.01_wp, 0.001_wp, 4.0_wp,                                             & !parameter 18-20
     405        0.001_wp, 0.0001_wp, 4.0_wp,                                             & !parameter 18-20
    402406        1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 3.0_wp,                                & !parameter 21-25
    403407        1000000.0_wp, 1000000.0_wp, 1000000.0_wp,                              & !parameter 26-28                     
     
    410414        1000000.0_wp, 1000000.0_wp, 1000000.0_wp, 0.3_wp, 0.3_wp, 0.3_wp,      & !parameter 6-11
    411415        296.15_wp, 293.15_wp, 0.9_wp, 0.9_wp, 0.01_wp, 0.99_wp,                & !parameter 12-17
    412         0.01_wp, 0.001_wp, 4.0_wp,                                             & !parameter 18-20
     416        0.001_wp, 0.0001_wp, 4.0_wp,                                             & !parameter 18-20
    413417        1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 3.0_wp,                                & !parameter 21-25
    414418        1000000.0_wp, 1000000.0_wp, 1000000.0_wp,                              & !parameter 26-28                     
     
    432436        1000000.0_wp, 1000000.0_wp, 1000000.0_wp, 0.3_wp, 0.3_wp, 0.3_wp,      & !parameter 6-11
    433437        296.15_wp, 293.15_wp, 0.9_wp, 0.9_wp, 0.01_wp, 0.99_wp,                & !parameter 12-17
    434         0.01_wp, 0.001_wp, 4.0_wp,                                             & !parameter 18-20
     438        0.001_wp, 0.0001_wp, 4.0_wp,                                             & !parameter 18-20
    435439        1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 3.0_wp,                                & !parameter 21-25
    436440        1000000.0_wp, 1000000.0_wp, 1000000.0_wp,                              & !parameter 26-28                     
     
    443447        1000000.0_wp, 1000000.0_wp, 1000000.0_wp, 0.3_wp, 0.3_wp, 0.3_wp,      & !parameter 6-11
    444448        296.15_wp, 293.15_wp, 0.9_wp, 0.9_wp, 0.01_wp, 0.99_wp,                & !parameter 12-17
    445         0.01_wp, 0.001_wp, 4.0_wp,                                             & !parameter 18-20
     449        0.001_wp, 0.0001_wp, 4.0_wp,                                             & !parameter 18-20
    446450        1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, 3.0_wp,                                & !parameter 21-25
    447451        1000000.0_wp, 1000000.0_wp, 1000000.0_wp,                              & !parameter 26-28                     
     
    67496753        INTEGER(iwp)                          :: i, j, k, l, d, m   !< running indices
    67506754       
    6751         REAL(wp)                              :: u1,v1,w1           !< near wall u,v,w
    67526755        REAL(wp)                              :: stend              !< surface tendency
    67536756        REAL(wp)                              :: stend_window       !< surface tendency
     
    67666769        REAL(wp)                              :: lambda_surface_window !< current value of lambda_surface (heat conductivity between air and window)
    67676770        REAL(wp)                              :: lambda_surface_green  !< current value of lambda_surface (heat conductivity between air and greeb wall)
    6768         REAL(wp)                              :: Ueff               !< effective wind speed for calculation of heat transfer coefficients
    6769         REAL(wp)                              :: httc               !< heat transfer coefficient
    6770         REAL(wp)                              :: httc_window        !< heat transfer coefficient window
    6771         REAL(wp)                              :: httc_green         !< heat transfer coefficient green wall
    67726771        REAL(wp), DIMENSION(nzub:nzut)        :: exn                !< value of the Exner function in layers
    67736772       
     
    70447043!--          obtained by simple linear interpolation. ( An alternative would
    70457044!--          be an logarithmic interpolation. )
    7046 #if ! defined( __nopointer )
    7047              u1 = ( u(k,j,i) + u(k,j,i+1) ) * 0.5_wp
    7048              v1 = ( v(k,j,i) + v(k,j+1,i) ) * 0.5_wp
    7049              w1 = ( w(k,j,i) + w(k-1,j,i) ) * 0.5_wp
    7050 #endif
    7051                
    7052              Ueff   = SQRT( u1**2 + v1**2 + w1**2 )
    7053              httc   = surf_usm_v(l)%z0(m) *                                    &
    7054                        ( 11.8_wp + 4.2_wp * Ueff ) - 4.0_wp
    7055              f_shf         = httc
    7056              f_shf_window  = httc
    7057              f_shf_green   = httc
     7045!--          A roughness lenght of 0.001 is assumed for concrete (the inverse,
     7046!--          1000 is used in the nominator for scaling)
     7047             surf_usm_v(l)%r_a(m) = rho_cp / ( surf_usm_v(l)%z0(m) * 1000.0_wp &
     7048                        * ( 11.8_wp + 4.2_wp *                                 &
     7049                        SQRT( MAX( ( ( u(k,j,i) + u(k,j,i+1) ) * 0.5_wp )**2 + &
     7050                                   ( ( v(k,j,i) + v(k,j+1,i) ) * 0.5_wp )**2 + &
     7051                                   ( ( w(k,j,i) + w(k-1,j,i) ) * 0.5_wp )**2,  &
     7052                              0.01_wp ) )                                      &
     7053                           )  - 4.0_wp  )
     7054
     7055             f_shf         = rho_cp / surf_usm_v(l)%r_a(m)
     7056             f_shf_window  = rho_cp / surf_usm_v(l)%r_a(m)
     7057             f_shf_green   = rho_cp / surf_usm_v(l)%r_a(m)
     7058
     7059
    70587060
    70597061!--          add LW up so that it can be removed in prognostic equation
Note: See TracChangeset for help on using the changeset viewer.