Ignore:
Timestamp:
Jan 11, 2018 12:01:27 PM (6 years ago)
Author:
suehring
Message:

Output of resistance also urban-type surfaces

File:
1 edited

Legend:

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

    r2723 r2735  
    2626! -----------------
    2727! $Id$
     28! resistances are saved in surface attributes
     29!
     30! 2723 2018-01-05 09:27:03Z maronga
    2831! Bugfix for spinups (end_time was increased twice in case of LSM + USM runs)
    2932!
     
    826829        ALLOCATE ( surf_usm_h%lai(1:surf_usm_h%ns)             )
    827830        ALLOCATE ( surf_usm_h%emissivity(0:2,1:surf_usm_h%ns)  )
     831        ALLOCATE ( surf_usm_h%r_a(1:surf_usm_h%ns)             )
     832        ALLOCATE ( surf_usm_h%r_a_green(1:surf_usm_h%ns)       )
     833        ALLOCATE ( surf_usm_h%r_a_window(1:surf_usm_h%ns)      )
    828834
    829835!
     
    838844           ALLOCATE ( surf_usm_v(l)%transmissivity(1:surf_usm_v(l)%ns)  )
    839845           ALLOCATE ( surf_usm_v(l)%lai(1:surf_usm_v(l)%ns)             )
    840 
    841846           ALLOCATE ( surf_usm_v(l)%emissivity(0:2,1:surf_usm_v(l)%ns)  )
     847           ALLOCATE ( surf_usm_v(l)%r_a(1:surf_usm_v(l)%ns)             )
     848           ALLOCATE ( surf_usm_v(l)%r_a_green(1:surf_usm_v(l)%ns)       )
     849           ALLOCATE ( surf_usm_v(l)%r_a_window(1:surf_usm_v(l)%ns)      )
    842850        ENDDO
    843851
     
    68596867        REAL(wp)                              :: coef_green_2       !< second  coeficient for prognostic green wall equation
    68606868        REAL(wp)                              :: rho_cp             !< rho_wall_surface * cp
    6861         REAL(wp)                              :: r_a                !< aerodynamic resistance for horizontal and vertical surfaces
    6862         REAL(wp)                              :: r_a_window         !< aerodynamic resistance for horizontal and vertical window surfaces
    6863         REAL(wp)                              :: r_a_green          !< aerodynamic resistance for horizontal and vertical green surfaces
    68646869        REAL(wp)                              :: f_shf              !< factor for shf_eb
    68656870        REAL(wp)                              :: f_shf_window       !< factor for shf_eb window
     
    69186923!--        Workaround: use single r_a as stability is only treated for the
    69196924!--        average temperature
    6920            r_a = ( surf_usm_h%pt1(m) - surf_usm_h%pt_surface(m) ) /                            &
    6921                  ( surf_usm_h%ts(m) * surf_usm_h%us(m) + 1.0E-20_wp )   
    6922            r_a_window = r_a
    6923            r_a_green  = r_a
     6925           surf_usm_h%r_a(m) = ( surf_usm_h%pt1(m) - surf_usm_h%pt_surface(m) ) /&
     6926                               ( surf_usm_h%ts(m) * surf_usm_h%us(m) + 1.0E-20_wp )   
     6927           surf_usm_h%r_a_window(m) = surf_usm_h%r_a(m)
     6928           surf_usm_h%r_a_green(m)  = surf_usm_h%r_a(m)
     6929
    69246930!            r_a = ( surf_usm_h%pt1(m) - t_surf_h(m) / exn(k) ) /                              &
    69256931!                  ( surf_usm_h%ts(m) * surf_usm_h%us(m) + 1.0E-20_wp )
     
    69306936               
    69316937!--        make sure that the resistance does not drop to zero
    6932            IF ( r_a        < 1.0_wp )  r_a        = 1.0_wp
    6933            IF ( r_a_window < 1.0_wp )  r_a_window = 1.0_wp
    6934            IF ( r_a_green  < 1.0_wp )  r_a_green  = 1.0_wp
     6938           IF ( surf_usm_h%r_a(m)        < 1.0_wp )                            &
     6939               surf_usm_h%r_a(m)        = 1.0_wp
     6940           IF ( surf_usm_h%r_a_green(m)  < 1.0_wp )                            &
     6941               surf_usm_h%r_a_green(m) = 1.0_wp
     6942           IF ( surf_usm_h%r_a_window(m) < 1.0_wp )                            &
     6943               surf_usm_h%r_a_window(m) = 1.0_wp
    69356944
    69366945               
     
    69416950!--        A temporary solution would be multiplication by magic constant :-(.
    69426951!--        For the moment this is comment out.
    6943            r_a        = r_a        !* ra_horiz_coef
    6944            r_a_window = r_a_window !* ra_horiz_coef
    6945            r_a_green  = r_a_green  !* ra_horiz_coef
     6952           surf_usm_h%r_a(m)        = surf_usm_h%r_a(m)        !* ra_horiz_coef
     6953           surf_usm_h%r_a_window(m) = surf_usm_h%r_a_window(m) !* ra_horiz_coef
     6954           surf_usm_h%r_a_green(m)  = surf_usm_h%r_a_green(m)  !* ra_horiz_coef
    69466955               
    69476956!--        factor for shf_eb
    6948            f_shf  = rho_cp / r_a
    6949            f_shf_window  = rho_cp / r_a_window
    6950            f_shf_green  = rho_cp / r_a_green
     6957           f_shf  = rho_cp / surf_usm_h%r_a(m)
     6958           f_shf_window  = rho_cp / surf_usm_h%r_a_window(m)
     6959           f_shf_green  = rho_cp / surf_usm_h%r_a_green(m)
    69516960       
    69526961!--        add LW up so that it can be removed in prognostic equation
Note: See TracChangeset for help on using the changeset viewer.