Ignore:
Timestamp:
Apr 12, 2018 2:47:44 PM (3 years ago)
Author:
suehring
Message:

Minor revision of static input file checks, bugfix in initialization of surface-fractions in LSM; minor bugfix in initialization of albedo at window-surfaces; for clearer access of albedo and emissivity introduce index for vegetation/wall, pavement/green-wall and water/window surfaces

File:
1 edited

Legend:

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

    r2943 r2963  
    2828! -----------------
    2929! $Id$
     30! Introduce index for vegetation/wall, pavement/green-wall and water/window
     31! surfaces, for clearer access of surface fraction, albedo, emissivity, etc. .
     32!
     33! 2943 2018-04-03 16:17:10Z suehring
    3034! Calculate exner function at all height levels and remove some un-used
    3135! variables.
     
    322326        ONLY:  hom, statistic_regions
    323327
    324     USE surface_mod
     328    USE surface_mod,                                                           &
     329        ONLY:  get_topography_top_index_ji, get_topography_top_index,          &
     330               ind_pav_green, ind_veg_wall, ind_wat_win, surf_usm_h,           &
     331               surf_usm_v, surface_restore_elements
    325332
    326333
     
    24582465                    j = surf_usm_h%j(m)
    24592466                    k = surf_usm_h%k(m)
    2460                     temp_pf(k,j,i) = surf_usm_h%frac(0,m)     *                   &
    2461                                      surf_usm_h%albedo(0,m) +                     &
    2462                                      surf_usm_h%frac(1,m)     *                   &
    2463                                      surf_usm_h%albedo(1,m) +                     &
    2464                                      surf_usm_h%frac(2,m)     *                   &
    2465                                      surf_usm_h%albedo(2,m)
     2467                    temp_pf(k,j,i) = surf_usm_h%frac(ind_veg_wall,m)     *     &
     2468                                     surf_usm_h%albedo(ind_veg_wall,m)  +      &
     2469                                     surf_usm_h%frac(ind_pav_green,m)    *     &
     2470                                     surf_usm_h%albedo(ind_pav_green,m) +      &
     2471                                     surf_usm_h%frac(ind_wat_win,m)      *     &
     2472                                     surf_usm_h%albedo(ind_wat_win,m)
    24662473                 ENDDO
    24672474              ELSE
     
    24712478                    j = surf_usm_v(l)%j(m)
    24722479                    k = surf_usm_v(l)%k(m)
    2473                     temp_pf(k,j,i) = surf_usm_v(l)%frac(0,m)     *             &
    2474                                      surf_usm_v(l)%albedo(0,m) +               &
    2475                                      surf_usm_v(l)%frac(1,m)     *             &
    2476                                      surf_usm_v(l)%albedo(1,m) +               &
    2477                                      surf_usm_v(l)%frac(2,m)     *             &
    2478                                      surf_usm_v(l)%albedo(2,m)
     2480                    temp_pf(k,j,i) = surf_usm_v(l)%frac(ind_veg_wall,m)     *  &
     2481                                     surf_usm_v(l)%albedo(ind_veg_wall,m)  +   &
     2482                                     surf_usm_v(l)%frac(ind_pav_green,m)    *  &
     2483                                     surf_usm_v(l)%albedo(ind_pav_green,m) +   &
     2484                                     surf_usm_v(l)%frac(ind_wat_win,m)      *  &
     2485                                     surf_usm_v(l)%albedo(ind_wat_win,m)
    24792486                 ENDDO
    24802487              ENDIF
     
    24872494                    j = surf_usm_h%j(m)
    24882495                    k = surf_usm_h%k(m)
    2489                     temp_pf(k,j,i) =  surf_usm_h%frac(0,m)     *                  &
    2490                                       surf_usm_h%emissivity(0,m) +                &
    2491                                       surf_usm_h%frac(1,m)     *                  &
    2492                                       surf_usm_h%emissivity(1,m) +                &
    2493                                       surf_usm_h%frac(2,m)     *                  &
    2494                                       surf_usm_h%emissivity(2,m)
     2496                    temp_pf(k,j,i) =  surf_usm_h%frac(ind_veg_wall,m)      *   &
     2497                                      surf_usm_h%emissivity(ind_veg_wall,m)  + &
     2498                                      surf_usm_h%frac(ind_pav_green,m)     *   &
     2499                                      surf_usm_h%emissivity(ind_pav_green,m) + &
     2500                                      surf_usm_h%frac(ind_wat_win,m)       *   &
     2501                                      surf_usm_h%emissivity(ind_wat_win,m)
    24952502                 ENDDO
    24962503              ELSE
     
    25002507                    j = surf_usm_v(l)%j(m)
    25012508                    k = surf_usm_v(l)%k(m)
    2502                     temp_pf(k,j,i) = surf_usm_v(l)%frac(0,m)       *           &
    2503                                      surf_usm_v(l)%emissivity(0,m) +           &
    2504                                      surf_usm_v(l)%frac(1,m) *                 &
    2505                                      surf_usm_v(l)%emissivity(1,m) +           &
    2506                                      surf_usm_v(l)%frac(2,m)     *             &
    2507                                      surf_usm_v(l)%emissivity(2,m)
     2509                    temp_pf(k,j,i) = surf_usm_v(l)%frac(ind_veg_wall,m)       *&
     2510                                     surf_usm_v(l)%emissivity(ind_veg_wall,m) +&
     2511                                     surf_usm_v(l)%frac(ind_pav_green,m)      *&
     2512                                     surf_usm_v(l)%emissivity(ind_pav_green,m)+&
     2513                                     surf_usm_v(l)%frac(ind_wat_win,m)        *&
     2514                                     surf_usm_v(l)%emissivity(ind_wat_win,m)
    25082515                 ENDDO
    25092516              ENDIF
     
    36773684!
    36783685!--        Initialize relatvie wall- (0), green- (1) and window (2) fractions
    3679            surf_usm_h%frac(0,m)  = building_pars(ind_wall_frac,building_type)   
    3680            surf_usm_h%frac(1,m) = building_pars(ind_green_frac_r,building_type) 
    3681            surf_usm_h%frac(2,m)  = building_pars(ind_win_frac,building_type) 
    3682            surf_usm_h%lai(m)     = building_pars(ind_green_frac_r,building_type) 
     3686           surf_usm_h%frac(ind_veg_wall,m)  = building_pars(ind_wall_frac,building_type)   
     3687           surf_usm_h%frac(ind_pav_green,m) = building_pars(ind_green_frac_r,building_type) 
     3688           surf_usm_h%frac(ind_wat_win,m)   = building_pars(ind_win_frac,building_type) 
     3689           surf_usm_h%lai(m)                = building_pars(ind_green_frac_r,building_type) 
    36833690
    36843691           surf_usm_h%rho_c_wall(nzb_wall,m)   = building_pars(ind_hc1,building_type) 
     
    37113718!
    37123719!--        emissivity of wall-, green- and window fraction
    3713            surf_usm_h%emissivity(0,m)        = building_pars(ind_emis_wall,building_type)
    3714            surf_usm_h%emissivity(1,m)        = building_pars(ind_emis_green,building_type)
    3715            surf_usm_h%emissivity(2,m)        = building_pars(ind_emis_win,building_type)
     3720           surf_usm_h%emissivity(ind_veg_wall,m)  = building_pars(ind_emis_wall,building_type)
     3721           surf_usm_h%emissivity(ind_pav_green,m) = building_pars(ind_emis_green,building_type)
     3722           surf_usm_h%emissivity(ind_wat_win,m)   = building_pars(ind_emis_win,building_type)
    37163723
    37173724           surf_usm_h%transmissivity(m)      = building_pars(ind_trans,building_type)
     
    37223729!
    37233730!--        albedo type for wall fraction, green fraction, window fraction
    3724            surf_usm_h%albedo_type(0,m)       = INT( building_pars(ind_alb_wall,building_type)  )
    3725            surf_usm_h%albedo_type(1,m)      = INT( building_pars(ind_alb_green,building_type) )
    3726            surf_usm_h%albedo_type(2,m)       = INT( building_pars(ind_alb_win,building_type)   )
     3731           surf_usm_h%albedo_type(ind_veg_wall,m)  = INT( building_pars(ind_alb_wall,building_type)  )
     3732           surf_usm_h%albedo_type(ind_pav_green,m) = INT( building_pars(ind_alb_green,building_type) )
     3733           surf_usm_h%albedo_type(ind_wat_win,m)   = INT( building_pars(ind_alb_win,building_type)   )
    37273734
    37283735           surf_usm_h%zw(nzb_wall,m)         = building_pars(ind_thick_1,building_type)
     
    37963803!
    37973804!--           Initialize relatvie wall- (0), green- (1) and window (2) fractions
    3798               surf_usm_v(l)%frac(0,m)              = building_pars(ind_wall_frac,building_type)   
    3799               surf_usm_v(l)%frac(1,m)              = building_pars(ind_green_frac_w,building_type)
    3800               surf_usm_v(l)%frac(2,m)              = building_pars(ind_win_frac,building_type) 
     3805              surf_usm_v(l)%frac(ind_veg_wall,m)   = building_pars(ind_wall_frac,building_type)   
     3806              surf_usm_v(l)%frac(ind_pav_green,m)  = building_pars(ind_green_frac_w,building_type)
     3807              surf_usm_v(l)%frac(ind_wat_win,m)    = building_pars(ind_win_frac,building_type) 
    38013808              surf_usm_v(l)%lai(m)                 = building_pars(ind_lai_w,building_type) 
    38023809
     
    38353842!
    38363843!--           emissivity of wall-, green- and window fraction
    3837               surf_usm_v(l)%emissivity(0,m)        = building_pars(ind_emis_wall,building_type)
    3838               surf_usm_v(l)%emissivity(1,m)        = building_pars(ind_emis_green,building_type)
    3839               surf_usm_v(l)%emissivity(2,m)        = building_pars(ind_emis_win,building_type)
     3844              surf_usm_v(l)%emissivity(ind_veg_wall,m)  = building_pars(ind_emis_wall,building_type)
     3845              surf_usm_v(l)%emissivity(ind_pav_green,m) = building_pars(ind_emis_green,building_type)
     3846              surf_usm_v(l)%emissivity(ind_wat_win,m)   = building_pars(ind_emis_win,building_type)
    38403847
    38413848              surf_usm_v(l)%transmissivity(m)      = building_pars(ind_trans,building_type)
     
    38453852              surf_usm_v(l)%z0q(m)                 = building_pars(ind_z0qh,building_type)
    38463853
    3847               surf_usm_v(l)%albedo_type(0,m)       = INT( building_pars(ind_alb_wall,building_type) )
    3848               surf_usm_v(l)%albedo_type(1,m)      = INT( building_pars(ind_alb_green,building_type) )
    3849               surf_usm_v(l)%albedo_type(2,m)       = INT( building_pars(ind_alb_win,building_type) )
     3854              surf_usm_v(l)%albedo_type(ind_veg_wall,m)  = INT( building_pars(ind_alb_wall,building_type) )
     3855              surf_usm_v(l)%albedo_type(ind_pav_green,m) = INT( building_pars(ind_alb_green,building_type) )
     3856              surf_usm_v(l)%albedo_type(ind_wat_win,m)   = INT( building_pars(ind_alb_win,building_type) )
    38503857
    38513858              surf_usm_v(l)%zw(nzb_wall,m)         = building_pars(ind_thick_1,building_type)
     
    39263933!
    39273934!--              Initialize relatvie wall- (0), green- (1) and window (2) fractions
    3928                  surf_usm_h%frac(0,m)   = building_pars(ind_wall_frac,st)   
    3929                  surf_usm_h%frac(1,m)  = building_pars(ind_green_frac_r,st) 
    3930                  surf_usm_h%frac(2,m)   = building_pars(ind_win_frac,st) 
    3931                  surf_usm_h%lai(m)      = building_pars(ind_green_frac_r,st) 
     3935                 surf_usm_h%frac(ind_veg_wall,m)  = building_pars(ind_wall_frac,st)   
     3936                 surf_usm_h%frac(ind_pav_green,m) = building_pars(ind_green_frac_r,st) 
     3937                 surf_usm_h%frac(ind_wat_win,m)   = building_pars(ind_win_frac,st) 
     3938                 surf_usm_h%lai(m)                = building_pars(ind_green_frac_r,st) 
    39323939
    39333940                 surf_usm_h%rho_c_wall(nzb_wall,m)   = building_pars(ind_hc1,st) 
     
    39623969!
    39633970!--              emissivity of wall-, green- and window fraction
    3964                  surf_usm_h%emissivity(0,m)        = building_pars(ind_emis_wall,st)
    3965                  surf_usm_h%emissivity(1,m)        = building_pars(ind_emis_green,st)
    3966                  surf_usm_h%emissivity(2,m)        = building_pars(ind_emis_win,st)
     3971                 surf_usm_h%emissivity(ind_veg_wall,m)  = building_pars(ind_emis_wall,st)
     3972                 surf_usm_h%emissivity(ind_pav_green,m) = building_pars(ind_emis_green,st)
     3973                 surf_usm_h%emissivity(ind_wat_win,m)   = building_pars(ind_emis_win,st)
    39673974
    39683975                 surf_usm_h%transmissivity(m)      = building_pars(ind_trans,st)
     
    39733980!
    39743981!--              albedo type for wall fraction, green fraction, window fraction
    3975                  surf_usm_h%albedo_type(0,m)       = INT( building_pars(ind_alb_wall,st) )
    3976                  surf_usm_h%albedo_type(1,m)      = INT( building_pars(ind_alb_green,st) )
    3977                  surf_usm_h%albedo_type(2,m)       = INT( building_pars(ind_alb_win,st) )
     3982                 surf_usm_h%albedo_type(ind_veg_wall,m)  = INT( building_pars(ind_alb_wall,st) )
     3983                 surf_usm_h%albedo_type(ind_pav_green,m) = INT( building_pars(ind_alb_green,st) )
     3984                 surf_usm_h%albedo_type(ind_wat_win,m)   = INT( building_pars(ind_alb_win,st) )
    39783985
    39793986                 surf_usm_h%zw(nzb_wall,m)         = building_pars(ind_thick_1,st)
     
    40544061!
    40554062!--                 Initialize relatvie wall- (0), green- (1) and window (2) fractions
    4056                     surf_usm_v(l)%frac(0,m) = building_pars(ind_wall_frac,st)   
    4057                     surf_usm_v(l)%frac(1,m) = building_pars(ind_green_frac_w,st) 
    4058                     surf_usm_v(l)%frac(2,m) = building_pars(ind_win_frac,st)   
    4059                     surf_usm_v(l)%lai(m)    = building_pars(ind_lai_w,st) 
     4063                    surf_usm_v(l)%frac(ind_veg_wall,m) = building_pars(ind_wall_frac,st)   
     4064                    surf_usm_v(l)%frac(ind_pav_green,m) = building_pars(ind_green_frac_w,st) 
     4065                    surf_usm_v(l)%frac(ind_wat_win,m)  = building_pars(ind_win_frac,st)   
     4066                    surf_usm_v(l)%lai(m)                = building_pars(ind_lai_w,st) 
    40604067
    40614068                    surf_usm_v(l)%rho_c_wall(nzb_wall,m)   = building_pars(ind_hc1,st) 
     
    40934100!
    40944101!--                 emissivity of wall-, green- and window fraction
    4095                     surf_usm_v(l)%emissivity(0,m)        = building_pars(ind_emis_wall,st)
    4096                     surf_usm_v(l)%emissivity(1,m)        = building_pars(ind_emis_green,st)
    4097                     surf_usm_v(l)%emissivity(2,m)        = building_pars(ind_emis_win,st)
     4102                    surf_usm_v(l)%emissivity(ind_veg_wall,m)  = building_pars(ind_emis_wall,st)
     4103                    surf_usm_v(l)%emissivity(ind_pav_green,m) = building_pars(ind_emis_green,st)
     4104                    surf_usm_v(l)%emissivity(ind_wat_win,m)   = building_pars(ind_emis_win,st)
    40984105
    40994106                    surf_usm_v(l)%transmissivity(m)      = building_pars(ind_trans,st)
     
    41034110                    surf_usm_v(l)%z0q(m)                 = building_pars(ind_z0qh,st)
    41044111
    4105                     surf_usm_v(l)%albedo_type(0,m)       = INT( building_pars(ind_alb_wall,st) )
    4106                     surf_usm_v(l)%albedo_type(1,m)      = INT( building_pars(ind_alb_green,st) )
    4107                     surf_usm_v(l)%albedo_type(2,m)       = INT( building_pars(ind_alb_win,st) )
     4112                    surf_usm_v(l)%albedo_type(ind_veg_wall,m)  = INT( building_pars(ind_alb_wall,st) )
     4113                    surf_usm_v(l)%albedo_type(ind_pav_green,m) = INT( building_pars(ind_alb_green,st) )
     4114                    surf_usm_v(l)%albedo_type(ind_wat_win,m)   = INT( building_pars(ind_alb_win,st) )
    41084115
    41094116                    surf_usm_v(l)%zw(nzb_wall,m)         = building_pars(ind_thick_1,st)
     
    41854192!--           Initialize relatvie wall- (0), green- (1) and window (2) fractions
    41864193              IF ( building_pars_f%pars_xy(ind_wall_frac,j,i) /= building_pars_f%fill )    &
    4187                  surf_usm_h%frac(0,m)  = building_pars_f%pars_xy(ind_wall_frac,j,i)   
     4194                 surf_usm_h%frac(ind_veg_wall,m)  = building_pars_f%pars_xy(ind_wall_frac,j,i)   
    41884195              IF ( building_pars_f%pars_xy(ind_green_frac_r,j,i) /= building_pars_f%fill ) &
    4189                  surf_usm_h%frac(1,m) = building_pars_f%pars_xy(ind_green_frac_r,j,i)
     4196                 surf_usm_h%frac(ind_pav_green,m) = building_pars_f%pars_xy(ind_green_frac_r,j,i)
    41904197              IF ( building_pars_f%pars_xy(ind_win_frac,j,i) /= building_pars_f%fill )     &
    4191                  surf_usm_h%frac(2,m)  = building_pars_f%pars_xy(ind_win_frac,j,i)
     4198                 surf_usm_h%frac(ind_wat_win,m)   = building_pars_f%pars_xy(ind_win_frac,j,i)
    41924199
    41934200 
     
    42514258
    42524259              IF ( building_pars_f%pars_xy(ind_emis_wall,j,i) /= building_pars_f%fill ) &
    4253                  surf_usm_h%emissivity(0,m)        = building_pars_f%pars_xy(ind_emis_wall,j,i)
     4260                 surf_usm_h%emissivity(ind_veg_wall,m)  = building_pars_f%pars_xy(ind_emis_wall,j,i)
    42544261              IF ( building_pars_f%pars_xy(ind_emis_green,j,i) /= building_pars_f%fill )&
    4255                  surf_usm_h%emissivity(1,m)        = building_pars_f%pars_xy(ind_emis_green,j,i)
     4262                 surf_usm_h%emissivity(ind_pav_green,m) = building_pars_f%pars_xy(ind_emis_green,j,i)
    42564263              IF ( building_pars_f%pars_xy(ind_emis_win,j,i) /= building_pars_f%fill )  &
    4257                  surf_usm_h%emissivity(2,m)        = building_pars_f%pars_xy(ind_emis_win,j,i)
     4264                 surf_usm_h%emissivity(ind_wat_win,m)   = building_pars_f%pars_xy(ind_emis_win,j,i)
    42584265
    42594266              IF ( building_pars_f%pars_xy(ind_trans,j,i) /= building_pars_f%fill )    &
     
    42684275
    42694276              IF ( building_pars_f%pars_xy(ind_alb_wall,j,i) /= building_pars_f%fill )    &
    4270                  surf_usm_h%albedo_type(0,m)       = building_pars_f%pars_xy(ind_alb_wall,j,i)
     4277                 surf_usm_h%albedo_type(ind_veg_wall,m)  = building_pars_f%pars_xy(ind_alb_wall,j,i)
    42714278              IF ( building_pars_f%pars_xy(ind_alb_green,j,i) /= building_pars_f%fill )    &
    4272                  surf_usm_h%albedo_type(1,m)      = building_pars_f%pars_xy(ind_alb_green,j,i)
     4279                 surf_usm_h%albedo_type(ind_pav_green,m) = building_pars_f%pars_xy(ind_alb_green,j,i)
    42734280              IF ( building_pars_f%pars_xy(ind_alb_win,j,i) /= building_pars_f%fill )    &
    4274                  surf_usm_h%albedo_type(2,m)       = building_pars_f%pars_xy(ind_alb_win,j,i)
     4281                 surf_usm_h%albedo_type(ind_wat_win,m)   = building_pars_f%pars_xy(ind_alb_win,j,i)
    42754282
    42764283              IF ( building_pars_f%pars_xy(ind_thick_1,j,i) /= building_pars_f%fill )    &
     
    43644371                 IF ( building_pars_f%pars_xy(ind_wall_frac,j,i) /=                     &
    43654372                      building_pars_f%fill )                                            &
    4366                     surf_usm_v(l)%frac(0,m)  = building_pars_f%pars_xy(ind_wall_frac,j,i)   
     4373                    surf_usm_v(l)%frac(ind_veg_wall,m)  =                               &
     4374                                      building_pars_f%pars_xy(ind_wall_frac,j,i)   
    43674375                 IF ( building_pars_f%pars_xy(ind_green_frac_w,j,i) /=                  &
    43684376                      building_pars_f%fill )                                            &
    4369                     surf_usm_v(l)%frac(1,m)  = building_pars_f%pars_xy(ind_green_frac_w,j,i)
     4377                    surf_usm_v(l)%frac(ind_pav_green,m) =                               &
     4378                                      building_pars_f%pars_xy(ind_green_frac_w,j,i)
    43704379                 IF ( building_pars_f%pars_xy(ind_win_frac,j,i) /=                      &
    43714380                      building_pars_f%fill )                                            &
    4372                     surf_usm_v(l)%frac(2,m)  = building_pars_f%pars_xy(ind_win_frac,j,i)
     4381                    surf_usm_v(l)%frac(ind_wat_win,m)   =                               &
     4382                                      building_pars_f%pars_xy(ind_win_frac,j,i)
    43734383 
    43744384                 IF ( building_pars_f%pars_xy(ind_lai_w,j,i) /= building_pars_f%fill )  &
     
    44384448
    44394449                 IF ( building_pars_f%pars_xy(ind_emis_wall,j,i) /= building_pars_f%fill ) &
    4440                     surf_usm_v(l)%emissivity(0,m)        = building_pars_f%pars_xy(ind_emis_wall,j,i)
     4450                    surf_usm_v(l)%emissivity(ind_veg_wall,m)  = building_pars_f%pars_xy(ind_emis_wall,j,i)
    44414451                 IF ( building_pars_f%pars_xy(ind_emis_green,j,i) /= building_pars_f%fill )&
    4442                     surf_usm_v(l)%emissivity(1,m)        = building_pars_f%pars_xy(ind_emis_green,j,i)
     4452                    surf_usm_v(l)%emissivity(ind_pav_green,m) = building_pars_f%pars_xy(ind_emis_green,j,i)
    44434453                 IF ( building_pars_f%pars_xy(ind_emis_win,j,i) /= building_pars_f%fill )  &
    4444                     surf_usm_v(l)%emissivity(2,m)        = building_pars_f%pars_xy(ind_emis_win,j,i)
     4454                    surf_usm_v(l)%emissivity(ind_wat_win,m)   = building_pars_f%pars_xy(ind_emis_win,j,i)
    44454455
    44464456                 IF ( building_pars_f%pars_xy(ind_trans,j,i) /= building_pars_f%fill )    &
     
    44554465
    44564466                 IF ( building_pars_f%pars_xy(ind_alb_wall,j,i) /= building_pars_f%fill )    &
    4457                     surf_usm_v(l)%albedo_type(0,m)       = building_pars_f%pars_xy(ind_alb_wall,j,i)
     4467                    surf_usm_v(l)%albedo_type(ind_veg_wall,m)  = building_pars_f%pars_xy(ind_alb_wall,j,i)
    44584468                 IF ( building_pars_f%pars_xy(ind_alb_green,j,i) /= building_pars_f%fill )    &
    4459                     surf_usm_v(l)%albedo_type(1,m)      = building_pars_f%pars_xy(ind_alb_green,j,i)
     4469                    surf_usm_v(l)%albedo_type(ind_pav_green,m) = building_pars_f%pars_xy(ind_alb_green,j,i)
    44604470                 IF ( building_pars_f%pars_xy(ind_alb_win,j,i) /= building_pars_f%fill )    &
    4461                     surf_usm_v(l)%albedo_type(2,m)       = building_pars_f%pars_xy(ind_alb_win,j,i)
     4471                    surf_usm_v(l)%albedo_type(ind_wat_win,m)   = building_pars_f%pars_xy(ind_alb_win,j,i)
    44624472
    44634473                 IF ( building_pars_f%pars_xy(ind_thick_1,j,i) /= building_pars_f%fill )    &
     
    46834693                                         - t_wall_h(nzb_wall,m) ) *                &
    46844694                                         surf_usm_h%ddz_wall(nzb_wall+1,m)         &
    4685                                        + surf_usm_h%frac(0,m)                      &
    4686                                          / (surf_usm_h%frac(0,m)                   &
    4687                                            + surf_usm_h%frac(1,m) )                &
     4695                                       + surf_usm_h%frac(ind_veg_wall,m)           &
     4696                                         / (surf_usm_h%frac(ind_veg_wall,m)        &
     4697                                           + surf_usm_h%frac(ind_pav_green,m) )    &
    46884698                                         * surf_usm_h%wghf_eb(m)                   &
    4689                                        - surf_usm_h%frac(1,m)                      &
    4690                                           / (surf_usm_h%frac(0,m)                  &
    4691                                             + surf_usm_h%frac(1,m) )               &
     4699                                       - surf_usm_h%frac(ind_pav_green,m)          &
     4700                                          / (surf_usm_h%frac(ind_veg_wall,m)       &
     4701                                            + surf_usm_h%frac(ind_pav_green,m) )   &
    46924702                                         * ( surf_usm_h%lambda_h_green(nzt_wall,m) &
    46934703                                           * surf_usm_h%ddz_green(nzt_wall,m)      &
     
    48534863                                         - t_wall_v(l)%t(nzb_wall,m) ) *              &
    48544864                                         surf_usm_v(l)%ddz_wall(nzb_wall+1,m)         &
    4855                                        + surf_usm_v(l)%frac(0,m)                      &
    4856                                          / (surf_usm_v(l)%frac(0,m)                   &
    4857                                            + surf_usm_v(l)%frac(1,m) )                &
     4865                                       + surf_usm_v(l)%frac(ind_veg_wall,m)           &
     4866                                         / (surf_usm_v(l)%frac(ind_veg_wall,m)        &
     4867                                           + surf_usm_v(l)%frac(ind_pav_green,m) )    &
    48584868                                         * surf_usm_v(l)%wghf_eb(m)                   &
    4859                                        - surf_usm_v(l)%frac(1,m)                      &
    4860                                          / (surf_usm_v(l)%frac(0,m)                    &
    4861                                            + surf_usm_v(l)%frac(1,m) )                &
     4869                                       - surf_usm_v(l)%frac(ind_pav_green,m)          &
     4870                                         / (surf_usm_v(l)%frac(ind_veg_wall,m)        &
     4871                                           + surf_usm_v(l)%frac(ind_pav_green,m) )    &
    48624872                                         * ( surf_usm_v(l)%lambda_h_green(nzt_wall,m) &
    48634873                                           * surf_usm_v(l)%ddz_green(nzt_wall,m)      &
     
    67726782!
    67736783!--        Albedo
    6774            IF ( surf_usm_h%albedo(0,m) < 0.0_wp )  THEN
     6784           IF ( surf_usm_h%albedo(ind_veg_wall,m) < 0.0_wp )  THEN
    67756785              surf_usm_h%albedo(:,m) = surface_params(ialbedo,ip)
    67766786           ENDIF
     
    69446954!
    69456955!--           Albedo
    6946               IF ( surf_usm_v(l)%albedo(0,m) < 0.0_wp )  THEN
     6956              IF ( surf_usm_v(l)%albedo(ind_veg_wall,m) < 0.0_wp )  THEN
    69476957                 surf_usm_v(l)%albedo(:,m) = surface_params(ialbedo,ip)
    69486958              ENDIF
     
    72407250!--           is used
    72417251           coef_1 = surf_usm_h%rad_net_l(m) +                                  &
    7242                  ( 3.0_wp + 1.0_wp ) * surf_usm_h%emissivity(0,m) * sigma_sb * &
    7243                                        t_surf_h(m) ** 4 +                      & 
    7244                                        f_shf * surf_usm_h%pt1(m) +                           &
     7252                 ( 3.0_wp + 1.0_wp ) * surf_usm_h%emissivity(ind_veg_wall,m) * &
     7253                                       sigma_sb * t_surf_h(m) ** 4 +           & 
     7254                                       f_shf * surf_usm_h%pt1(m) +             &
    72457255                                       lambda_surface * t_wall_h(nzb_wall,m)
    7246            coef_window_1 = surf_usm_h%rad_net_l(m) +                                  &
    7247                    ( 3.0_wp + 1.0_wp ) * surf_usm_h%emissivity(2,m) * sigma_sb * &
    7248                                        t_surf_window_h(m) ** 4 +                      & 
    7249                                        f_shf_window * surf_usm_h%pt1(m) +                           &
     7256           coef_window_1 = surf_usm_h%rad_net_l(m) +                           &
     7257                   ( 3.0_wp + 1.0_wp ) * surf_usm_h%emissivity(ind_wat_win,m) &
     7258                                       * sigma_sb * t_surf_window_h(m) ** 4 +  & 
     7259                                       f_shf_window * surf_usm_h%pt1(m) +      &
    72507260                                       lambda_surface_window * t_window_h(nzb_wall,m)
    7251            coef_green_1 = surf_usm_h%rad_net_l(m) +                                  &
    7252                    ( 3.0_wp + 1.0_wp ) * surf_usm_h%emissivity(1,m) * sigma_sb * &
    7253                                        t_surf_green_h(m) ** 4 +                      & 
    7254                                        f_shf_green * surf_usm_h%pt1(m) +                           &
     7261           coef_green_1 = surf_usm_h%rad_net_l(m) +                            &
     7262                 ( 3.0_wp + 1.0_wp ) * surf_usm_h%emissivity(ind_pav_green,m) *&
     7263                                       sigma_sb * t_surf_green_h(m) ** 4 +     & 
     7264                                       f_shf_green * surf_usm_h%pt1(m) +       &
    72557265                                       lambda_surface_green * t_wall_h(nzb_wall,m)
    72567266
    72577267!--        denominator of the prognostic equation
    7258            coef_2 = 4.0_wp * surf_usm_h%emissivity(0,m) * sigma_sb *          &
    7259                              t_surf_h(m) ** 3                                 &
     7268           coef_2 = 4.0_wp * surf_usm_h%emissivity(ind_veg_wall,m) *           &
     7269                             sigma_sb * t_surf_h(m) ** 3                       &
    72607270                           + lambda_surface + f_shf / exn(k)
    7261            coef_window_2 = 4.0_wp * surf_usm_h%emissivity(2,m) * sigma_sb *  &
    7262                              t_surf_window_h(m) ** 3                              &
     7271           coef_window_2 = 4.0_wp * surf_usm_h%emissivity(ind_wat_win,m) *     &
     7272                             sigma_sb * t_surf_window_h(m) ** 3                &
    72637273                           + lambda_surface_window + f_shf_window / exn(k)
    7264            coef_green_2 = 4.0_wp * surf_usm_h%emissivity(1,m) * sigma_sb *    &
    7265                              t_surf_green_h(m) ** 3                               &
     7274           coef_green_2 = 4.0_wp * surf_usm_h%emissivity(ind_pav_green,m) *    &
     7275                             sigma_sb * t_surf_green_h(m) ** 3                 &
    72667276                           + lambda_surface_green + f_shf_green / exn(k)
    72677277
     
    72877297!
    72887298!--        Store surface temperature       
    7289            surf_usm_h%pt_surface(m) = ( surf_usm_h%frac(0,m) * t_surf_h_p(m)   &
    7290                                + surf_usm_h%frac(2,m) * t_surf_window_h_p(m)   &
    7291                                + surf_usm_h%frac(1,m) * t_surf_green_h_p(m) )  &
     7299           surf_usm_h%pt_surface(m) = ( surf_usm_h%frac(ind_veg_wall,m) * t_surf_h_p(m)   &
     7300                               + surf_usm_h%frac(ind_wat_win,m) * t_surf_window_h_p(m)   &
     7301                               + surf_usm_h%frac(ind_pav_green,m) * t_surf_green_h_p(m) )  &
    72927302                               / exn(k)
    72937303                       
     
    73287338!--        rad_net_l is never used!           
    73297339           surf_usm_h%rad_net_l(m) = surf_usm_h%rad_net_l(m) +                           &
    7330                                      surf_usm_h%frac(0,m) *                              &
    7331                                      sigma_sb * surf_usm_h%emissivity(0,m) *             &
     7340                                     surf_usm_h%frac(ind_veg_wall,m) *                   &
     7341                                     sigma_sb * surf_usm_h%emissivity(ind_veg_wall,m) *  &
    73327342                                     ( t_surf_h_p(m)**4 - t_surf_h(m)**4 )               &
    7333                                     + surf_usm_h%frac(2,m) *                         &
    7334                                      sigma_sb * surf_usm_h%emissivity(2,m) *             &
     7343                                    + surf_usm_h%frac(ind_wat_win,m) *                   &
     7344                                     sigma_sb * surf_usm_h%emissivity(ind_wat_win,m) *   &
    73357345                                     ( t_surf_window_h_p(m)**4 - t_surf_window_h(m)**4 ) &
    7336                                     + surf_usm_h%frac(1,m) *                         &
    7337                                      sigma_sb * surf_usm_h%emissivity(1,m) *            &
     7346                                    + surf_usm_h%frac(ind_pav_green,m) *                 &
     7347                                     sigma_sb * surf_usm_h%emissivity(ind_pav_green,m) * &
    73387348                                     ( t_surf_green_h_p(m)**4 - t_surf_green_h(m)**4 )
    73397349
     
    73487358!--        ground/wall/roof surface heat flux
    73497359           surf_usm_h%wshf_eb(m)   = - f_shf  * ( surf_usm_h%pt1(m) - t_surf_h_p(m) / exn(k) ) *               &
    7350                                        surf_usm_h%frac(0,m)                         &
     7360                                       surf_usm_h%frac(ind_veg_wall,m)         &
    73517361                                     - f_shf_window  * ( surf_usm_h%pt1(m) - t_surf_window_h_p(m) / exn(k) ) * &
    7352                                        surf_usm_h%frac(2,m)                          &
     7362                                       surf_usm_h%frac(ind_wat_win,m)          &
    73537363                                     - f_shf_green  * ( surf_usm_h%pt1(m) - t_surf_green_h_p(m) / exn(k) ) *   &
    7354                                        surf_usm_h%frac(1,m)
     7364                                       surf_usm_h%frac(ind_pav_green,m)
    73557365!           
    73567366!--        store kinematic surface heat fluxes for utilization in other processes
     
    74317441!--           numerator of the prognostic equation
    74327442              coef_1 = surf_usm_v(l)%rad_net_l(m) +                            & ! coef +1 corresponds to -lwout included in calculation of radnet_l
    7433              ( 3.0_wp + 1.0_wp ) * surf_usm_v(l)%emissivity(0,m) * sigma_sb *  &
    7434                                      t_surf_v(l)%t(m) ** 4 +                   & 
    7435                                      f_shf * surf_usm_v(l)%pt1(m) +                             &
     7443             ( 3.0_wp + 1.0_wp ) * surf_usm_v(l)%emissivity(ind_veg_wall,m) *  &
     7444                                     sigma_sb *  t_surf_v(l)%t(m) ** 4 +       & 
     7445                                     f_shf * surf_usm_v(l)%pt1(m) +            &
    74367446                                     lambda_surface * t_wall_v(l)%t(nzb_wall,m)
    7437               coef_window_1 = surf_usm_v(l)%rad_net_l(m) +                            & ! coef +1 corresponds to -lwout included in calculation of radnet_l
    7438                ( 3.0_wp + 1.0_wp ) * surf_usm_v(l)%emissivity(2,m) * sigma_sb * &
    7439                                      t_surf_window_v(l)%t(m) ** 4 +                 
    7440                                      f_shf * surf_usm_v(l)%pt1(m) +                             &
     7447              coef_window_1 = surf_usm_v(l)%rad_net_l(m) +                     & ! coef +1 corresponds to -lwout included in calculation of radnet_l
     7448               ( 3.0_wp + 1.0_wp ) * surf_usm_v(l)%emissivity(ind_wat_win,m) * &
     7449                                     sigma_sb * t_surf_window_v(l)%t(m) ** 4 +
     7450                                     f_shf * surf_usm_v(l)%pt1(m) +            &
    74417451                                     lambda_surface_window * t_window_v(l)%t(nzb_wall,m)
    74427452
    74437453              coef_green_1 = surf_usm_v(l)%rad_net_l(m) +                            & ! coef +1 corresponds to -lwout included in calculation of radnet_l
    7444                ( 3.0_wp + 1.0_wp ) * surf_usm_v(l)%emissivity(1,m) * sigma_sb *  &
    7445                                      t_surf_green_v(l)%t(m) ** 4 +                   & 
    7446                                      f_shf * surf_usm_v(l)%pt1(m) +                             &
     7454              ( 3.0_wp + 1.0_wp ) * surf_usm_v(l)%emissivity(ind_pav_green,m) *&
     7455                                     sigma_sb * t_surf_green_v(l)%t(m) ** 4 +  & 
     7456                                     f_shf * surf_usm_v(l)%pt1(m) +            &
    74477457                                     lambda_surface_green * t_wall_v(l)%t(nzb_wall,m)
    74487458
    74497459!--           denominator of the prognostic equation
    7450               coef_2 = 4.0_wp * surf_usm_v(l)%emissivity(0,m) * sigma_sb *     &
    7451                                 t_surf_v(l)%t(m) ** 3                          &
     7460              coef_2 = 4.0_wp * surf_usm_v(l)%emissivity(ind_veg_wall,m) *     &
     7461                                sigma_sb * t_surf_v(l)%t(m) ** 3               &
    74527462                              + lambda_surface + f_shf / exn(k)
    7453               coef_window_2 = 4.0_wp * surf_usm_v(l)%emissivity(2,m) * sigma_sb *     &
    7454                                 t_surf_window_v(l)%t(m) ** 3                         &
     7463              coef_window_2 = 4.0_wp * surf_usm_v(l)%emissivity(ind_wat_win,m) *&
     7464                                sigma_sb * t_surf_window_v(l)%t(m) ** 3        &
    74557465                              + lambda_surface_window + f_shf / exn(k)
    7456               coef_green_2 = 4.0_wp * surf_usm_v(l)%emissivity(1,m) * sigma_sb *       &
    7457                                 t_surf_green_v(l)%t(m) ** 3                          &
     7466              coef_green_2 = 4.0_wp * surf_usm_v(l)%emissivity(ind_pav_green,m) *&
     7467                                sigma_sb * t_surf_green_v(l)%t(m) ** 3         &
    74587468                              + lambda_surface_green + f_shf / exn(k)
    74597469
     
    74827492!
    74837493!--           Store surface temperature       
    7484               surf_usm_v(l)%pt_surface(m) =  ( surf_usm_v(l)%frac(0,m) * t_surf_v_p(l)%t(m)  &
    7485                                       + surf_usm_v(l)%frac(2,m) * t_surf_window_v_p(l)%t(m)  &
    7486                                       + surf_usm_v(l)%frac(1,m) * t_surf_green_v_p(l)%t(m) ) &
     7494              surf_usm_v(l)%pt_surface(m) =  ( surf_usm_v(l)%frac(ind_veg_wall,m) * t_surf_v_p(l)%t(m)  &
     7495                                      + surf_usm_v(l)%frac(ind_wat_win,m) * t_surf_window_v_p(l)%t(m)  &
     7496                                      + surf_usm_v(l)%frac(ind_pav_green,m) * t_surf_green_v_p(l)%t(m) ) &
    74877497                                      / exn(k)
    74887498           
     
    75237533!--           calculate fluxes
    75247534!--           prognostic rad_net_l is used just for output!           
    7525               surf_usm_v(l)%rad_net_l(m) = surf_usm_v(l)%frac(0,m) *                             &
     7535              surf_usm_v(l)%rad_net_l(m) = surf_usm_v(l)%frac(ind_veg_wall,m) *                      &
    75267536                                           ( surf_usm_v(l)%rad_net_l(m) +                            &
    75277537                                           3.0_wp * sigma_sb *                                       &
    75287538                                           t_surf_v(l)%t(m)**4 - 4.0_wp * sigma_sb *                 &
    75297539                                           t_surf_v(l)%t(m)**3 * t_surf_v_p(l)%t(m) )                &
    7530                                          + surf_usm_v(l)%frac(2,m) *                              &
     7540                                         + surf_usm_v(l)%frac(ind_wat_win,m) *                       &
    75317541                                           ( surf_usm_v(l)%rad_net_l(m) +                            &
    75327542                                           3.0_wp * sigma_sb *                                       &
    75337543                                           t_surf_window_v(l)%t(m)**4 - 4.0_wp * sigma_sb *          &
    75347544                                           t_surf_window_v(l)%t(m)**3 * t_surf_window_v_p(l)%t(m) )  &
    7535                                          + surf_usm_v(l)%frac(1,m) *                            &
     7545                                         + surf_usm_v(l)%frac(ind_pav_green,m) *                     &
    75367546                                           ( surf_usm_v(l)%rad_net_l(m) +                            &
    75377547                                           3.0_wp * sigma_sb *                                       &
     
    75497559              surf_usm_v(l)%wshf_eb(m)   =                                     &
    75507560                 - f_shf  * ( surf_usm_v(l)%pt1(m) -                           &
    7551                  t_surf_v_p(l)%t(m) / exn(k) ) * surf_usm_v(l)%frac(0,m)       &
     7561                 t_surf_v_p(l)%t(m) / exn(k) ) * surf_usm_v(l)%frac(ind_veg_wall,m)       &
    75527562                 - f_shf_window  * ( surf_usm_v(l)%pt1(m) -                    &
    7553                  t_surf_window_v_p(l)%t(m) / exn(k) ) * surf_usm_v(l)%frac(2,m)&
     7563                 t_surf_window_v_p(l)%t(m) / exn(k) ) * surf_usm_v(l)%frac(ind_wat_win,m)&
    75547564                 - f_shf_green  * ( surf_usm_v(l)%pt1(m) -                     &
    7555                  t_surf_green_v_p(l)%t(m) / exn(k) ) * surf_usm_v(l)%frac(1,m)
     7565                 t_surf_green_v_p(l)%t(m) / exn(k) ) * surf_usm_v(l)%frac(ind_pav_green,m)
    75567566
    75577567!           
Note: See TracChangeset for help on using the changeset viewer.