Changeset 2963


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

Location:
palm/trunk/SOURCE
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/Makefile

    r2955 r2963  
    2525# -----------------
    2626# $Id$
     27# Introduce index for vegetation/wall, pavement/green-wall and water/window
     28# surfaces, for clearer access of surface fraction, albedo, emissivity, etc. .
     29#
     30# 2955 2018-04-09 15:14:01Z suehring
    2731# Add log-points to measure CPU time of NetCDF data input.
    2832#
     
    11741178        cpulog_mod.o \
    11751179        mod_kinds.o \
    1176         modules.o
     1180        modules.o   \
     1181        surface_mod.o
    11771182netcdf_interface_mod.o: \
    11781183        chemistry_model_mod.o \
  • palm/trunk/SOURCE/data_output_2d.f90

    r2817 r2963  
    2525! -----------------
    2626! $Id$
     27! Introduce index for vegetation/wall, pavement/green-wall and water/window
     28! surfaces, for clearer access of surface fraction, albedo, emissivity, etc. .
     29!
     30! 2817 2018-02-19 16:32:21Z knoop
    2731! Preliminary gust module interface implemented
    2832!
     
    263267
    264268    USE surface_mod,                                                           &
    265         ONLY:  surf_def_h, surf_lsm_h, surf_usm_h
     269        ONLY:  ind_pav_green, ind_veg_wall, ind_wat_win, surf_def_h,           &
     270               surf_lsm_h, surf_usm_h
    266271
    267272    USE turbulence_closure_mod,                                                &
     
    568573                      i                   = surf_usm_h%i(m)           
    569574                      j                   = surf_usm_h%j(m)
    570                       local_pf(i,j,nzb+1) = surf_usm_h%frac(0,m)     *          &
     575                      local_pf(i,j,nzb+1) = surf_usm_h%frac(ind_veg_wall,m)  *  &
    571576                                            surf_usm_h%wghf_eb(m)        +      &
    572                                             surf_usm_h%frac(1,m)     *          &
     577                                            surf_usm_h%frac(ind_pav_green,m) *  &
    573578                                            surf_usm_h%wghf_eb_green(m)  +      &
    574                                             surf_usm_h%frac(2,m)     *          &
     579                                            surf_usm_h%frac(ind_wat_win,m)   *  &
    575580                                            surf_usm_h%wghf_eb_window(m)
    576581                   ENDDO
     
    915920                      j   = surf_usm_h%j(m)
    916921                      local_pf(i,j,nzb+1) =                                          &
    917                                  ( surf_usm_h%frac(0,m) * surf_usm_h%r_a(m)       +  &
    918                                    surf_usm_h%frac(1,m) * surf_usm_h%r_a_green(m) +  &
    919                                    surf_usm_h%frac(2,m) * surf_usm_h%r_a_window(m) )
     922                                 ( surf_usm_h%frac(ind_veg_wall,m)  *                &
     923                                   surf_usm_h%r_a(m)       +                         &
     924                                   surf_usm_h%frac(ind_pav_green,m) *                &
     925                                   surf_usm_h%r_a_green(m) +                         &
     926                                   surf_usm_h%frac(ind_wat_win,m)   *                &
     927                                   surf_usm_h%r_a_window(m) )
    920928                   ENDDO
    921929                ELSE
  • palm/trunk/SOURCE/land_surface_model_mod.f90

    r2938 r2963  
    2525! -----------------
    2626! $Id$
     27! - In initialization of surface types, consider the case that surface_fractions
     28!   is not given in static input file.
     29! - Introduce index for vegetation/wall, pavement/green-wall and water/window
     30!   surfaces, for clearer access of surface fraction, albedo, emissivity, etc. .
     31!
     32! 2938 2018-03-27 15:52:42Z suehring
    2733! Initialization of soil moisture and temperature via Inifor-provided data also
    2834! in nested child domains, even if no dynamic input file is available for
     
    416422
    417423    USE surface_mod,                                                           &
    418         ONLY :  surf_lsm_h, surf_lsm_v, surf_type, surface_restore_elements
     424        ONLY :  ind_pav_green, ind_veg_wall, ind_wat_win, surf_lsm_h,          &
     425                surf_lsm_v, surf_type, surface_restore_elements
    419426
    420427    IMPLICIT NONE
     
    711718                                   'pond        ',                   & ! 4
    712719                                   'fountain    '                    & ! 5
    713                                                                   /)                                                                 
    714 !
    715 !-- IDs for vegetation, pavement and water surfaces
    716     INTEGER(iwp) ::  ind_veg = 0    !< index for vegetation surfaces, used to assess surface-fraction, albedo, etc.     
    717     INTEGER(iwp) ::  ind_pav = 1    !< index for pavement surfaces, used to assess surface-fraction, albedo, etc.       
    718     INTEGER(iwp) ::  ind_wat = 2    !< index for vegetation surfaces, used to assess surface-fraction, albedo, etc.                         
     720                                                                  /)                                                                                 
    719721                   
    720722!
     
    25602562         
    25612563             surf_lsm_h%vegetation_surface = .TRUE.
    2562              surf_lsm_h%frac(ind_veg,:) = 1.0_wp
     2564             surf_lsm_h%frac(ind_veg_wall,:) = 1.0_wp
    25632565             DO  l = 0, 3
    25642566                surf_lsm_v(l)%vegetation_surface = .TRUE.
    2565                 surf_lsm_v(l)%frac(ind_veg,:) = 1.0_wp
     2567                surf_lsm_v(l)%frac(ind_veg_wall,:) = 1.0_wp
    25662568             ENDDO
    25672569   
     
    25692571             
    25702572             surf_lsm_h%water_surface = .TRUE.
    2571              surf_lsm_h%frac(ind_wat,:) = 1.0_wp
     2573             surf_lsm_h%frac(ind_wat_win,:) = 1.0_wp
    25722574!
    25732575!--          Note, vertical water surface does not really make sense.
    25742576             DO  l = 0, 3 
    25752577                surf_lsm_v(l)%water_surface   = .TRUE.
    2576                 surf_lsm_v(l)%frac(ind_wat,:) = 1.0_wp
     2578                surf_lsm_v(l)%frac(ind_wat_win,:) = 1.0_wp
    25772579             ENDDO
    25782580
     
    25802582             
    25812583             surf_lsm_h%pavement_surface = .TRUE.
    2582                 surf_lsm_h%frac(ind_pav,:) = 1.0_wp
     2584                surf_lsm_h%frac(ind_pav_green,:) = 1.0_wp
    25832585             DO  l = 0, 3
    25842586                surf_lsm_v(l)%pavement_surface   = .TRUE.
    2585                 surf_lsm_v(l)%frac(ind_pav,:) = 1.0_wp
     2587                surf_lsm_v(l)%frac(ind_pav_green,:) = 1.0_wp
    25862588             ENDDO
    25872589
     
    26312633!--    In case of netcdf input file, further initialize surface fractions.
    26322634!--    At the moment only 1 surface is given at a location, so that the fraction
    2633 !--    is either 0 or 1. This will be revised later.
    2634        IF ( input_pids_static )  THEN
     2635!--    is either 0 or 1. This will be revised later. If surface fraction
     2636!--    is not given in static input file, relative fractions will be derived
     2637!--    from given surface type. In this case, only 1 type is given at a certain
     2638!--    location (already checked). 
     2639       IF ( input_pids_static  .AND.  surface_fraction_f%from_file )  THEN
    26352640          DO  m = 1, surf_lsm_h%ns
    26362641             i = surf_lsm_h%i(m)
     
    26382643!
    26392644!--          0 - vegetation fraction, 1 - pavement fraction, 2 - water fraction             
    2640              surf_lsm_h%frac(ind_veg,m) = surface_fraction_f%frac(ind_veg,j,i)         
    2641              surf_lsm_h%frac(ind_pav,m) = surface_fraction_f%frac(ind_pav,j,i)       
    2642              surf_lsm_h%frac(ind_wat,m) = surface_fraction_f%frac(ind_wat,j,i)
     2645             surf_lsm_h%frac(ind_veg_wall,m)  =                                &
     2646                                    surface_fraction_f%frac(ind_veg_wall,j,i)         
     2647             surf_lsm_h%frac(ind_pav_green,m) =                                &
     2648                                    surface_fraction_f%frac(ind_pav_green,j,i)       
     2649             surf_lsm_h%frac(ind_wat_win,m)   =                                &
     2650                                    surface_fraction_f%frac(ind_wat_win,j,i)
    26432651
    26442652          ENDDO
     
    26512659!
    26522660!--             0 - vegetation fraction, 1 - pavement fraction, 2 - water fraction       
    2653                 surf_lsm_v(l)%frac(ind_veg,m) = surface_fraction_f%frac(ind_veg,j,i)         
    2654                 surf_lsm_v(l)%frac(ind_pav,m) = surface_fraction_f%frac(ind_pav,j,i)       
    2655                 surf_lsm_v(l)%frac(ind_wat,m) = surface_fraction_f%frac(ind_wat,j,i)
    2656 
     2661                surf_lsm_v(l)%frac(ind_veg_wall,m)  =                          &
     2662                                    surface_fraction_f%frac(ind_veg_wall,j,i)         
     2663                surf_lsm_v(l)%frac(ind_pav_green,m) =                          &
     2664                                    surface_fraction_f%frac(ind_pav_green,j,i)       
     2665                surf_lsm_v(l)%frac(ind_wat_win,m)   =                          &
     2666                                    surface_fraction_f%frac(ind_wat_win,j,i)
     2667
     2668             ENDDO
     2669          ENDDO
     2670       ELSEIF ( input_pids_static  .AND.  .NOT. surface_fraction_f%from_file ) &
     2671       THEN
     2672          DO  m = 1, surf_lsm_h%ns
     2673             i = surf_lsm_h%i(m)
     2674             j = surf_lsm_h%j(m)
     2675
     2676             IF ( vegetation_type_f%var(j,i) /= vegetation_type_f%fill )       &       
     2677                surf_lsm_h%frac(ind_veg_wall,m)  = 1.0_wp
     2678             IF ( pavement_type_f%var(j,i)   /= pavement_type_f%fill   )       &       
     2679                surf_lsm_h%frac(ind_pav_green,m) = 1.0_wp
     2680             IF ( water_type_f%var(j,i)      /= water_type_f%fill      )       &       
     2681                surf_lsm_h%frac(ind_wat_win,m)   = 1.0_wp       
     2682          ENDDO
     2683          DO  l = 0, 3
     2684             DO  m = 1, surf_lsm_v(l)%ns
     2685                i = surf_lsm_v(l)%i(m) + MERGE( 0, surf_lsm_v(l)%ioff,         &
     2686                                                surf_lsm_v(l)%building_covered(m) )
     2687                j = surf_lsm_v(l)%j(m) + MERGE( 0, surf_lsm_v(l)%joff,         &
     2688                                                surf_lsm_v(l)%building_covered(m) )
     2689     
     2690                IF ( vegetation_type_f%var(j,i) /= vegetation_type_f%fill )    &       
     2691                   surf_lsm_v(l)%frac(ind_veg_wall,m)  = 1.0_wp
     2692                IF ( pavement_type_f%var(j,i)   /= pavement_type_f%fill   )    &       
     2693                   surf_lsm_v(l)%frac(ind_pav_green,m) = 1.0_wp
     2694                IF ( water_type_f%var(j,i)      /= water_type_f%fill      )    &       
     2695                   surf_lsm_v(l)%frac(ind_wat_win,m)   = 1.0_wp     
    26572696             ENDDO
    26582697          ENDDO
     
    30163055             surf_lsm_h%f_sw_in(m)          = f_shortwave_incoming
    30173056             surf_lsm_h%c_surface(m)        = c_surface
    3018              surf_lsm_h%albedo_type(ind_veg,m) = albedo_type
    3019              surf_lsm_h%emissivity(ind_veg,m)  = emissivity
     3057             surf_lsm_h%albedo_type(ind_veg_wall,m) = albedo_type
     3058             surf_lsm_h%emissivity(ind_veg_wall,m)  = emissivity
    30203059          ELSE
    30213060             surf_lsm_h%lai(m)   = 0.0_wp
     
    30423081                surf_lsm_v(l)%f_sw_in(m)          = f_shortwave_incoming
    30433082                surf_lsm_v(l)%c_surface(m)        = c_surface
    3044                 surf_lsm_v(l)%albedo_type(ind_veg,m) = albedo_type
    3045                 surf_lsm_v(l)%emissivity(ind_veg,m)  = emissivity
     3083                surf_lsm_v(l)%albedo_type(ind_veg_wall,m) = albedo_type
     3084                surf_lsm_v(l)%emissivity(ind_veg_wall,m)  = emissivity
    30463085             ELSE
    30473086                surf_lsm_v(l)%lai(m)   = 0.0_wp
     
    30773116                surf_lsm_h%f_sw_in(m)          = vegetation_pars(ind_v_f_sw_in,st)
    30783117                surf_lsm_h%c_surface(m)        = vegetation_pars(ind_v_c_surf,st)
    3079                 surf_lsm_h%albedo_type(ind_veg,m) = INT( vegetation_pars(ind_v_at,st) )
    3080                 surf_lsm_h%emissivity(ind_veg,m)  = vegetation_pars(ind_v_emis,st)
     3118                surf_lsm_h%albedo_type(ind_veg_wall,m) = INT( vegetation_pars(ind_v_at,st) )
     3119                surf_lsm_h%emissivity(ind_veg_wall,m)  = vegetation_pars(ind_v_emis,st)
    30813120             ENDIF
    30823121          ENDDO
     
    31033142                   surf_lsm_v(l)%f_sw_in(m)          = vegetation_pars(ind_v_f_sw_in,st)
    31043143                   surf_lsm_v(l)%c_surface(m)        = vegetation_pars(ind_v_c_surf,st)
    3105                    surf_lsm_v(l)%albedo_type(ind_veg,m) = INT( vegetation_pars(ind_v_at,st) )
    3106                    surf_lsm_v(l)%emissivity(ind_veg,m)  = vegetation_pars(ind_v_emis,st)
     3144                   surf_lsm_v(l)%albedo_type(ind_veg_wall,m) = INT( vegetation_pars(ind_v_at,st) )
     3145                   surf_lsm_v(l)%emissivity(ind_veg_wall,m)  = vegetation_pars(ind_v_emis,st)
    31073146                ENDIF
    31083147             ENDDO
     
    31793218                IF ( vegetation_pars_f%pars_xy(ind_v_at,j,i) /=                &
    31803219                     vegetation_pars_f%fill )                                  &
    3181                    surf_lsm_h%albedo_type(ind_veg,m) =                         &
     3220                   surf_lsm_h%albedo_type(ind_veg_wall,m) =                    &
    31823221                                   INT( vegetation_pars_f%pars_xy(ind_v_at,j,i) )
    31833222                IF ( vegetation_pars_f%pars_xy(ind_v_emis,j,i) /=              &
    31843223                     vegetation_pars_f%fill )                                  &
    3185                    surf_lsm_h%emissivity(ind_veg,m)  =                         &
     3224                   surf_lsm_h%emissivity(ind_veg_wall,m)  =                    &
    31863225                                   vegetation_pars_f%pars_xy(ind_v_emis,j,i)
    31873226             ENDIF
     
    32553294                   IF ( vegetation_pars_f%pars_xy(ind_v_at,j,i) /=             &
    32563295                        vegetation_pars_f%fill )                               &
    3257                       surf_lsm_v(l)%albedo_type(ind_veg,m) =                   &
     3296                      surf_lsm_v(l)%albedo_type(ind_veg_wall,m) =              &
    32583297                                   INT( vegetation_pars_f%pars_xy(ind_v_at,j,i) )
    32593298                   IF ( vegetation_pars_f%pars_xy(ind_v_emis,j,i) /=           &
    32603299                        vegetation_pars_f%fill )                               &
    3261                       surf_lsm_v(l)%emissivity(ind_veg,m)  =                   &
     3300                      surf_lsm_v(l)%emissivity(ind_veg_wall,m)  =              &
    32623301                                   vegetation_pars_f%pars_xy(ind_v_emis,j,i)
    32633302                ENDIF
     
    33053344             surf_lsm_h%lambda_surface_u(m) = 1.0E10_wp               
    33063345             surf_lsm_h%c_surface(m)        = 0.0_wp
    3307              surf_lsm_h%albedo_type(ind_wat,m) = albedo_type
    3308              surf_lsm_h%emissivity(ind_wat,m)  = emissivity
     3346             surf_lsm_h%albedo_type(ind_wat_win,m) = albedo_type
     3347             surf_lsm_h%emissivity(ind_wat_win,m)  = emissivity
    33093348          ENDIF
    33103349       ENDDO
     
    33233362                surf_lsm_v(l)%lambda_surface_u(m) = 1.0E10_wp               
    33243363                surf_lsm_v(l)%c_surface(m)        = 0.0_wp
    3325                 surf_lsm_v(l)%albedo_type(ind_wat,m) = albedo_type
    3326                 surf_lsm_v(l)%emissivity(ind_wat,m)  = emissivity
     3364                surf_lsm_v(l)%albedo_type(ind_wat_win,m) = albedo_type
     3365                surf_lsm_v(l)%emissivity(ind_wat_win,m)  = emissivity
    33273366             ENDIF
    33283367          ENDDO
     
    33533392                surf_lsm_h%lambda_surface_u(m) = water_pars(ind_w_lambda_u,st)             
    33543393                surf_lsm_h%c_surface(m)        = 0.0_wp
    3355                 surf_lsm_h%albedo_type(ind_wat,m) = INT( water_pars(ind_w_at,st) )
    3356                 surf_lsm_h%emissivity(ind_wat,m)  = water_pars(ind_w_emis,st)
     3394                surf_lsm_h%albedo_type(ind_wat_win,m) = INT( water_pars(ind_w_at,st) )
     3395                surf_lsm_h%emissivity(ind_wat_win,m)  = water_pars(ind_w_emis,st)
    33573396             ENDIF
    33583397          ENDDO
     
    33783417                                                   water_pars(ind_w_lambda_u,st)           
    33793418                   surf_lsm_v(l)%c_surface(m)     = 0.0_wp
    3380                    surf_lsm_v(l)%albedo_type(ind_wat,m) =                      &
     3419                   surf_lsm_v(l)%albedo_type(ind_wat_win,m) =                  &
    33813420                                                  INT( water_pars(ind_w_at,st) )
    3382                    surf_lsm_v(l)%emissivity(ind_wat,m)  =                      &
     3421                   surf_lsm_v(l)%emissivity(ind_wat_win,m)  =                  &
    33833422                                                  water_pars(ind_w_emis,st)
    33843423                ENDIF
     
    34343473                IF ( water_pars_f%pars_xy(ind_w_at,j,i) /=                     &
    34353474                     water_pars_f%fill )                                       &
    3436                    surf_lsm_h%albedo_type(ind_wat,m) =                         &
     3475                   surf_lsm_h%albedo_type(ind_wat_win,m) =                     &
    34373476                                       INT( water_pars_f%pars_xy(ind_w_at,j,i) )
    34383477
    34393478                IF ( water_pars_f%pars_xy(ind_w_emis,j,i) /=                   &
    34403479                     water_pars_f%fill )                                       &
    3441                    surf_lsm_h%emissivity(ind_wat,m) =                          &
     3480                   surf_lsm_h%emissivity(ind_wat_win,m) =                      &
    34423481                   water_pars_f%pars_xy(ind_w_emis,j,i) 
    34433482             ENDIF
     
    34943533                   IF ( water_pars_f%pars_xy(ind_w_at,j,i) /=                  &
    34953534                        water_pars_f%fill )                                    &
    3496                       surf_lsm_v(l)%albedo_type(ind_wat,m)    =                &
     3535                      surf_lsm_v(l)%albedo_type(ind_wat_win,m) =               &
    34973536                                      INT( water_pars_f%pars_xy(ind_w_at,j,i) )
    34983537
    34993538                   IF ( water_pars_f%pars_xy(ind_w_emis,j,i) /=                &
    35003539                        water_pars_f%fill )                                    &
    3501                       surf_lsm_v(l)%emissivity(ind_wat,m)     =                &
     3540                      surf_lsm_v(l)%emissivity(ind_wat_win,m)  =               &
    35023541                                      water_pars_f%pars_xy(ind_w_emis,j,i) 
    35033542                ENDIF
     
    35763615                                                        * 0.25_wp                                   
    35773616
    3578              surf_lsm_h%albedo_type(ind_pav,m) = albedo_type
    3579              surf_lsm_h%emissivity(ind_pav,m)  = emissivity     
     3617             surf_lsm_h%albedo_type(ind_pav_green,m) = albedo_type
     3618             surf_lsm_h%emissivity(ind_pav_green,m)  = emissivity     
    35803619     
    35813620             IF ( pavement_type /= 0 )  THEN
     
    36113650                                                        * 0.25_wp                                     
    36123651
    3613                 surf_lsm_v(l)%albedo_type(ind_pav,m) = albedo_type
    3614                 surf_lsm_v(l)%emissivity(ind_pav,m)  = emissivity
     3652                surf_lsm_v(l)%albedo_type(ind_pav_green,m) = albedo_type
     3653                surf_lsm_v(l)%emissivity(ind_pav_green,m)  = emissivity
    36153654
    36163655                IF ( pavement_type /= 0 )  THEN
     
    36683707                                                        * dz_soil(nzb_soil)    &
    36693708                                                        * 0.25_wp                               
    3670                 surf_lsm_h%albedo_type(ind_pav,m) = INT( pavement_pars(ind_p_at,st) )
    3671                 surf_lsm_h%emissivity(ind_pav,m)  = pavement_pars(ind_p_emis,st) 
     3709                surf_lsm_h%albedo_type(ind_pav_green,m) = INT( pavement_pars(ind_p_at,st) )
     3710                surf_lsm_h%emissivity(ind_pav_green,m)  = pavement_pars(ind_p_emis,st) 
    36723711
    36733712                DO  k = nzb_soil, surf_lsm_h%nzt_pavement(m)
     
    37183757                                                        * dz_soil(nzb_soil)    &
    37193758                                                        * 0.25_wp                                   
    3720                    surf_lsm_v(l)%albedo_type(ind_pav,m) =                      &
     3759                   surf_lsm_v(l)%albedo_type(ind_pav_green,m) =                &
    37213760                                              INT( pavement_pars(ind_p_at,st) )
    3722                    surf_lsm_v(l)%emissivity(ind_pav,m)  =                      &
     3761                   surf_lsm_v(l)%emissivity(ind_pav_green,m)  =                &
    37233762                                              pavement_pars(ind_p_emis,st)   
    37243763
    37253764                   DO  k = nzb_soil, surf_lsm_h%nzt_pavement(m)
    3726                       surf_lsm_v(l)%lambda_h_def(k,m)    =                    &
     3765                      surf_lsm_v(l)%lambda_h_def(k,m)    =                     &
    37273766                                    pavement_subsurface_pars_1(k,pavement_type)                       
    3728                       surf_lsm_v(l)%rho_c_total_def(k,m) =                    &
     3767                      surf_lsm_v(l)%rho_c_total_def(k,m) =                     &
    37293768                                    pavement_subsurface_pars_2(k,pavement_type)
    37303769                   ENDDO   
     
    37843823                IF ( pavement_pars_f%pars_xy(ind_p_at,j,i) /=                  &
    37853824                     pavement_pars_f%fill )                                    &
    3786                    surf_lsm_h%albedo_type(ind_pav,m) =                         &
     3825                   surf_lsm_h%albedo_type(ind_pav_green,m) =                   &
    37873826                                              INT( pavement_pars(ind_p_at,st) )
    37883827                IF ( pavement_pars_f%pars_xy(ind_p_emis,j,i) /=                &
    37893828                     pavement_pars_f%fill )                                    &
    3790                    surf_lsm_h%emissivity(ind_pav,m)  =                         &
     3829                   surf_lsm_h%emissivity(ind_pav_green,m)  =                   &
    37913830                                              pavement_pars(ind_p_emis,st)
    37923831             ENDIF
     
    38443883                   IF ( pavement_pars_f%pars_xy(ind_p_at,j,i) /=               &
    38453884                        pavement_pars_f%fill )                                 &
    3846                       surf_lsm_v(l)%albedo_type(ind_pav,m) =                   &
     3885                      surf_lsm_v(l)%albedo_type(ind_pav_green,m) =             &
    38473886                                            INT( pavement_pars(ind_p_at,st) )
    38483887
    38493888                   IF ( pavement_pars_f%pars_xy(ind_p_emis,j,i) /=             &
    38503889                        pavement_pars_f%fill )                                 &
    3851                       surf_lsm_v(l)%emissivity(ind_pav,m)  =                   &
     3890                      surf_lsm_v(l)%emissivity(ind_pav_green,m)  =             &
    38523891                                            pavement_pars(ind_p_emis,st) 
    38533892                ENDIF
  • palm/trunk/SOURCE/netcdf_data_input_mod.f90

    r2958 r2963  
    2525! -----------------
    2626! $Id$
     27! - Revise checks for static input variables.
     28! - Introduce index for vegetation/wall, pavement/green-wall and water/window
     29!   surfaces, for clearer access of surface fraction, albedo, emissivity, etc. .
     30!
     31! 2958 2018-04-11 15:38:13Z suehring
    2732! Synchronize longitude and latitude between nested model domains, values are
    2833! taken from the root model.
     
    126131
    127132    USE pegrid
     133
     134    USE surface_mod,                                                           &
     135        ONLY:  ind_pav_green, ind_veg_wall, ind_wat_win
    128136!
    129137!-- Define type for dimensions.
     
    29802988!--    More advanced methods, e.g. a nearest neighbor algorithm as used in GIS
    29812989!--    systems might be implemented later.
     2990!--    Please note, if no terrain height is provided, it is set to 0.
    29822991       IF ( ANY( terrain_height_f%var == terrain_height_f%fill ) )  THEN
    29832992          message_string = 'NetCDF variable orography_2D is not ' //           &
     
    30123021!--    Check for minimum requirement of surface-classification data in case
    30133022!--    static input file is used.
    3014        IF ( .NOT. vegetation_type_f%from_file  .OR.                            &
    3015             .NOT. pavement_type_f%from_file    .OR.                            &
    3016             .NOT. building_type_f%from_file    .OR.                            &
    3017             .NOT. water_type_f%from_file       .OR.                            &
    3018             .NOT. soil_type_f%from_file            )  THEN
     3023       IF ( ( .NOT. vegetation_type_f%from_file  .OR.                          &
     3024              .NOT. pavement_type_f%from_file    .OR.                          &
     3025              .NOT. water_type_f%from_file       .OR.                          &
     3026              .NOT. soil_type_f%from_file             ) .OR.                   &
     3027             ( urban_surface  .AND.  .NOT. building_type_f%from_file ) )  THEN
    30193028          message_string = 'Minimum requirement for surface classification ' //&
    30203029                           'is not fulfilled. At least ' //                    &
    30213030                           'vegetation_type, pavement_type, ' //               &
    3022                            'building_type, soil_type and water_type are '//    &
    3023                            'required.'
     3031                           'soil_type and water_type are '//                   &
     3032                           'required. If urban-surface model is applied, ' //  &
     3033                           'also building_type ist required'
    30243034          CALL message( 'netcdf_data_input_mod', 'NDI016', 1, 2, 0, 6, 0 )
    30253035       ENDIF
     
    31293139                  building_type_f%var(j,i)   == building_type_f%fill    .AND.  &
    31303140                  water_type_f%var(j,i)      == water_type_f%fill )  THEN
    3131                 message_string = 'At least one of the paramters '       //    &
     3141                WRITE( message_string, * ) 'At least one of the parameters '// &
    31323142                                 'vegetation_type, pavement_type, '     //     &
    31333143                                 'building_type, or water_type must be set '// &
    3134                                  'to a non-missing value'
     3144                                 'to a non-missing value. Grid point: ', j, i
    31353145                CALL message( 'netcdf_data_input_mod', 'NDI025', 2, 2, 0, 6, 0 )
    31363146             ENDIF
     
    31883198!--          surface vegetation fraction is zero.
    31893199             IF ( ( vegetation_type_f%var(j,i) /= vegetation_type_f%fill  .AND.&
    3190                  ( surface_fraction_f%frac(0,j,i) == 0.0_wp .OR.               &
    3191                    surface_fraction_f%frac(0,j,i) == surface_fraction_f%fill ) &
     3200                 ( surface_fraction_f%frac(ind_veg_wall,j,i) == 0.0_wp .OR.    &
     3201                   surface_fraction_f%frac(ind_veg_wall,j,i) ==                &
     3202                                                     surface_fraction_f%fill ) &
    31923203                  )  .OR.                                                      &
    31933204                  ( pavement_type_f%var(j,i) /= pavement_type_f%fill     .AND. &
    3194                  ( surface_fraction_f%frac(1,j,i) == 0.0_wp .OR.               &
    3195                    surface_fraction_f%frac(1,j,i) == surface_fraction_f%fill ) &
     3205                 ( surface_fraction_f%frac(ind_pav_green,j,i) == 0.0_wp .OR.   &
     3206                   surface_fraction_f%frac(ind_pav_green,j,i) ==               &
     3207                                                     surface_fraction_f%fill ) &
    31963208                  )  .OR.                                                      &
    31973209                  ( water_type_f%var(j,i) /= water_type_f%fill           .AND. &
    3198                  ( surface_fraction_f%frac(2,j,i) == 0.0_wp .OR.               &
    3199                    surface_fraction_f%frac(2,j,i) == surface_fraction_f%fill ) &
     3210                 ( surface_fraction_f%frac(ind_wat_win,j,i) == 0.0_wp .OR.     &
     3211                   surface_fraction_f%frac(ind_wat_win,j,i) ==                 &
     3212                                                     surface_fraction_f%fill ) &
    32003213                  ) )  THEN
    32013214                WRITE( message_string, * ) 'Mismatch in setting of '     //    &
     
    32103223!--          surface vegetation fraction is non-zero.
    32113224             IF ( ( vegetation_type_f%var(j,i) == vegetation_type_f%fill  .AND.&
    3212                  ( surface_fraction_f%frac(0,j,i) /= 0.0_wp .AND.              &
    3213                    surface_fraction_f%frac(0,j,i) /= surface_fraction_f%fill ) &
     3225                 ( surface_fraction_f%frac(ind_veg_wall,j,i) /= 0.0_wp .AND.   &
     3226                   surface_fraction_f%frac(ind_veg_wall,j,i) /=                &
     3227                                                     surface_fraction_f%fill ) &
    32143228                  )  .OR.                                                      &
    32153229                  ( pavement_type_f%var(j,i) == pavement_type_f%fill     .AND. &
    3216                  ( surface_fraction_f%frac(1,j,i) /= 0.0_wp .AND.              &
    3217                    surface_fraction_f%frac(1,j,i) /= surface_fraction_f%fill ) &
     3230                 ( surface_fraction_f%frac(ind_pav_green,j,i) /= 0.0_wp .AND.  &
     3231                   surface_fraction_f%frac(ind_pav_green,j,i) /=               &
     3232                                                     surface_fraction_f%fill ) &
    32183233                  )  .OR.                                                      &
    32193234                  ( water_type_f%var(j,i) == water_type_f%fill           .AND. &
    3220                  ( surface_fraction_f%frac(2,j,i) /= 0.0_wp .AND.              &
    3221                    surface_fraction_f%frac(2,j,i) /= surface_fraction_f%fill ) &
     3235                 ( surface_fraction_f%frac(ind_wat_win,j,i) /= 0.0_wp .AND.    &
     3236                   surface_fraction_f%frac(ind_wat_win,j,i) /=                 &
     3237                                                     surface_fraction_f%fill ) &
    32223238                  ) )  THEN
    32233239                WRITE( message_string, * ) 'Mismatch in setting of '     //    &
  • palm/trunk/SOURCE/radiation_model_mod.f90

    r2944 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! - Minor bugfix in initialization of albedo for window surfaces
     33!
     34! 2944 2018-04-03 16:20:18Z suehring
    3035! Fixed bad commit
    3136!
     
    361366    USE surface_mod,                                                           &
    362367        ONLY:  get_topography_top_index, get_topography_top_index_ji,          &
     368               ind_pav_green, ind_veg_wall, ind_wat_win,                       &
    363369               surf_lsm_h, surf_lsm_v, surf_type, surf_usm_h, surf_usm_v
    364370
     
    15241530!--       Only if albedo_type is non-zero
    15251531          DO  m = 1, surf_lsm_h%ns
    1526              IF ( surf_lsm_h%albedo_type(0,m) /= 0 )                           &
    1527                 surf_lsm_h%albedo(0,m) =                                       &
    1528                                       albedo_pars(2,surf_lsm_h%albedo_type(0,m))
    1529              IF ( surf_lsm_h%albedo_type(1,m) /= 0 )                           &
    1530                 surf_lsm_h%albedo(1,m) =                                       &
    1531                                       albedo_pars(2,surf_lsm_h%albedo_type(1,m))
    1532              IF ( surf_lsm_h%albedo_type(2,m) /= 0 )                           &
    1533                 surf_lsm_h%albedo(2,m) =                                       &
    1534                                       albedo_pars(2,surf_lsm_h%albedo_type(2,m))
     1532             IF ( surf_lsm_h%albedo_type(ind_veg_wall,m) /= 0 )                &
     1533                surf_lsm_h%albedo(ind_veg_wall,m) =                            &
     1534                           albedo_pars(2,surf_lsm_h%albedo_type(ind_veg_wall,m))
     1535             IF ( surf_lsm_h%albedo_type(ind_pav_green,m) /= 0 )               &
     1536                surf_lsm_h%albedo(ind_pav_green,m) =                           &
     1537                           albedo_pars(2,surf_lsm_h%albedo_type(ind_pav_green,m))
     1538             IF ( surf_lsm_h%albedo_type(ind_wat_win,m) /= 0 )                 &
     1539                surf_lsm_h%albedo(ind_wat_win,m) =                             &
     1540                           albedo_pars(2,surf_lsm_h%albedo_type(ind_wat_win,m))
    15351541          ENDDO
    15361542          DO  m = 1, surf_usm_h%ns
    1537              IF ( surf_usm_h%albedo_type(0,m) /= 0 )                           &
    1538                 surf_usm_h%albedo(0,m) =                                       &
    1539                                       albedo_pars(2,surf_usm_h%albedo_type(0,m))
    1540              IF ( surf_usm_h%albedo_type(1,m) /= 0 )                           &
    1541                 surf_usm_h%albedo(1,m) =                                       &
    1542                                       albedo_pars(2,surf_usm_h%albedo_type(1,m))
    1543              IF ( surf_usm_h%albedo_type(2,m) /= 0 )                           &
    1544                 surf_usm_h%albedo(2,m) =                                       &
    1545                                       albedo_pars(2,surf_usm_h%albedo_type(2,m))
     1543             IF ( surf_usm_h%albedo_type(ind_veg_wall,m) /= 0 )                &
     1544                surf_usm_h%albedo(ind_veg_wall,m) =                            &
     1545                           albedo_pars(2,surf_usm_h%albedo_type(ind_veg_wall,m))
     1546             IF ( surf_usm_h%albedo_type(ind_pav_green,m) /= 0 )               &
     1547                surf_usm_h%albedo(ind_pav_green,m) =                           &
     1548                           albedo_pars(2,surf_usm_h%albedo_type(ind_pav_green,m))
     1549             IF ( surf_usm_h%albedo_type(ind_wat_win,m) /= 0 )                 &
     1550                surf_usm_h%albedo(ind_wat_win,m) =                             &
     1551                           albedo_pars(2,surf_usm_h%albedo_type(ind_wat_win,m))
    15461552          ENDDO
    15471553
    15481554          DO  l = 0, 3
    15491555             DO  m = 1, surf_lsm_v(l)%ns
    1550                 IF ( surf_lsm_v(l)%albedo_type(0,m) /= 0 )                     &
    1551                    surf_lsm_v(l)%albedo(0,m) =                                 &
    1552                                    albedo_pars(2,surf_lsm_v(l)%albedo_type(0,m))
    1553                 IF ( surf_lsm_v(l)%albedo_type(1,m) /= 0 )                     &
    1554                    surf_lsm_v(l)%albedo(1,m) =                                 &
    1555                                    albedo_pars(2,surf_lsm_v(l)%albedo_type(1,m))
    1556                 IF ( surf_lsm_v(l)%albedo_type(2,m) /= 0 )                     &
    1557                    surf_lsm_v(l)%albedo(2,m) =                                 &
    1558                                    albedo_pars(2,surf_lsm_v(l)%albedo_type(2,m))
     1556                IF ( surf_lsm_v(l)%albedo_type(ind_veg_wall,m) /= 0 )          &
     1557                   surf_lsm_v(l)%albedo(ind_veg_wall,m) =                      &
     1558                        albedo_pars(2,surf_lsm_v(l)%albedo_type(ind_veg_wall,m))
     1559                IF ( surf_lsm_v(l)%albedo_type(ind_pav_green,m) /= 0 )         &
     1560                   surf_lsm_v(l)%albedo(ind_pav_green,m) =                     &
     1561                        albedo_pars(2,surf_lsm_v(l)%albedo_type(ind_pav_green,m))
     1562                IF ( surf_lsm_v(l)%albedo_type(ind_wat_win,m) /= 0 )           &
     1563                   surf_lsm_v(l)%albedo(ind_wat_win,m) =                       &
     1564                        albedo_pars(2,surf_lsm_v(l)%albedo_type(ind_wat_win,m))
    15591565             ENDDO
    15601566             DO  m = 1, surf_usm_v(l)%ns
    1561                 IF ( surf_usm_v(l)%albedo_type(0,m) /= 0 )                     &
    1562                    surf_usm_v(l)%albedo(0,m) =                                 &
    1563                                    albedo_pars(2,surf_usm_v(l)%albedo_type(0,m))
    1564                 IF ( surf_usm_v(l)%albedo_type(1,m) /= 0 )                     &
    1565                    surf_usm_v(l)%albedo(1,m) =                                 &
    1566                                    albedo_pars(2,surf_usm_v(l)%albedo_type(1,m))
    1567                 IF ( surf_usm_v(l)%albedo_type(2,m) /= 0 )                     &
    1568                    surf_usm_v(l)%albedo(2,m) =                                 &
    1569                                    albedo_pars(2,surf_usm_v(l)%albedo_type(2,m))
     1567                IF ( surf_usm_v(l)%albedo_type(ind_veg_wall,m) /= 0 )          &
     1568                   surf_usm_v(l)%albedo(ind_veg_wall,m) =                      &
     1569                        albedo_pars(2,surf_usm_v(l)%albedo_type(ind_veg_wall,m))
     1570                IF ( surf_usm_v(l)%albedo_type(ind_pav_green,m) /= 0 )         &
     1571                   surf_usm_v(l)%albedo(ind_pav_green,m) =                     &
     1572                        albedo_pars(2,surf_usm_v(l)%albedo_type(ind_pav_green,m))
     1573                IF ( surf_usm_v(l)%albedo_type(ind_wat_win,m) /= 0 )           &
     1574                   surf_usm_v(l)%albedo(ind_wat_win,m) =                       &
     1575                        albedo_pars(2,surf_usm_v(l)%albedo_type(ind_wat_win,m))
    15701576             ENDDO
    15711577          ENDDO
     
    15821588                j = surf_lsm_h%j(m)
    15831589                IF ( albedo_pars_f%pars_xy(0,j,i) /= albedo_pars_f%fill )  THEN
    1584                    IF ( surf_lsm_h%albedo_type(0,m) == 0 )                     &
    1585                       surf_lsm_h%albedo(0,m) = albedo_pars_f%pars_xy(0,j,i)
    1586                    IF ( surf_lsm_h%albedo_type(1,m) == 0 )                     &
    1587                       surf_lsm_h%albedo(1,m) = albedo_pars_f%pars_xy(0,j,i)
    1588                    IF ( surf_lsm_h%albedo_type(2,m) == 0 )                     &
    1589                       surf_lsm_h%albedo(2,m) = albedo_pars_f%pars_xy(0,j,i)
     1590                   IF ( surf_lsm_h%albedo_type(ind_veg_wall,m) == 0 )          &
     1591                      surf_lsm_h%albedo(ind_veg_wall,m) = albedo_pars_f%pars_xy(0,j,i)
     1592                   IF ( surf_lsm_h%albedo_type(ind_pav_green,m) == 0 )         &
     1593                      surf_lsm_h%albedo(ind_pav_green,m) = albedo_pars_f%pars_xy(0,j,i)
     1594                   IF ( surf_lsm_h%albedo_type(ind_wat_win,m) == 0 )           &
     1595                      surf_lsm_h%albedo(ind_wat_win,m) = albedo_pars_f%pars_xy(0,j,i)
    15901596                ENDIF
    15911597             ENDDO
     
    15941600                j = surf_usm_h%j(m)
    15951601                IF ( albedo_pars_f%pars_xy(0,j,i) /= albedo_pars_f%fill )  THEN
    1596                    IF ( surf_usm_h%albedo_type(0,m) == 0 )                     &
    1597                       surf_usm_h%albedo(0,m) = albedo_pars_f%pars_xy(0,j,i)
    1598                    IF ( surf_usm_h%albedo_type(1,m) == 0 )                     &
    1599                       surf_usm_h%albedo(1,m) = albedo_pars_f%pars_xy(0,j,i)
    1600                    IF ( surf_usm_h%albedo_type(2,m) == 0 )                     &
    1601                       surf_usm_h%albedo(2,m) = albedo_pars_f%pars_xy(0,j,i)
     1602                   IF ( surf_usm_h%albedo_type(ind_veg_wall,m) == 0 )          &
     1603                      surf_usm_h%albedo(ind_veg_wall,m) = albedo_pars_f%pars_xy(0,j,i)
     1604                   IF ( surf_usm_h%albedo_type(ind_pav_green,m) == 0 )         &
     1605                      surf_usm_h%albedo(ind_pav_green,m) = albedo_pars_f%pars_xy(0,j,i)
     1606                   IF ( surf_usm_h%albedo_type(ind_wat_win,m) == 0 )           &
     1607                      surf_usm_h%albedo(ind_wat_win,m) = albedo_pars_f%pars_xy(0,j,i)
    16021608                ENDIF
    16031609             ENDDO
     
    16121618                   j = surf_lsm_v(l)%j(m) + joff
    16131619                   IF ( albedo_pars_f%pars_xy(0,j,i) /= albedo_pars_f%fill )  THEN
    1614                       IF ( surf_lsm_v(l)%albedo_type(0,m) == 0 )               &
    1615                          surf_lsm_v(l)%albedo(1,m) = albedo_pars_f%pars_xy(0,j,i)
    1616                       IF ( surf_lsm_v(l)%albedo_type(1,m) == 0 )               &
    1617                          surf_lsm_v(l)%albedo(1,m) = albedo_pars_f%pars_xy(0,j,i)
    1618                       IF ( surf_lsm_v(l)%albedo_type(2,m) == 0 )               &
    1619                          surf_lsm_v(l)%albedo(2,m) = albedo_pars_f%pars_xy(0,j,i)
     1620                      IF ( surf_lsm_v(l)%albedo_type(ind_veg_wall,m) == 0 )    &
     1621                         surf_lsm_v(l)%albedo(ind_veg_wall,m) = albedo_pars_f%pars_xy(0,j,i)
     1622                      IF ( surf_lsm_v(l)%albedo_type(ind_pav_green,m) == 0 )   &
     1623                         surf_lsm_v(l)%albedo(ind_pav_green,m) = albedo_pars_f%pars_xy(0,j,i)
     1624                      IF ( surf_lsm_v(l)%albedo_type(ind_wat_win,m) == 0 )     &
     1625                         surf_lsm_v(l)%albedo(ind_wat_win,m) = albedo_pars_f%pars_xy(0,j,i)
    16201626                   ENDIF
    16211627                ENDDO
     
    16271633                   j = surf_usm_h%j(m) + joff
    16281634                   IF ( albedo_pars_f%pars_xy(0,j,i) /= albedo_pars_f%fill )  THEN
    1629                       IF ( surf_usm_v(l)%albedo_type(0,m) == 0 )               &
    1630                          surf_usm_v(l)%albedo(1,m) = albedo_pars_f%pars_xy(0,j,i)
    1631                       IF ( surf_usm_v(l)%albedo_type(1,m) == 0 )               &
    1632                          surf_usm_v(l)%albedo(1,m) = albedo_pars_f%pars_xy(0,j,i)
    1633                       IF ( surf_usm_v(l)%albedo_type(2,m) == 0 )               &
    1634                          surf_lsm_v(l)%albedo(2,m) = albedo_pars_f%pars_xy(0,j,i)
     1635                      IF ( surf_usm_v(l)%albedo_type(ind_veg_wall,m) == 0 )    &
     1636                         surf_usm_v(l)%albedo(ind_veg_wall,m) = albedo_pars_f%pars_xy(0,j,i)
     1637                      IF ( surf_usm_v(l)%albedo_type(ind_pav_green,m) == 0 )   &
     1638                         surf_usm_v(l)%albedo(ind_pav_green,m) = albedo_pars_f%pars_xy(0,j,i)
     1639                      IF ( surf_usm_v(l)%albedo_type(ind_wat_win,m) == 0 )     &
     1640                         surf_lsm_v(l)%albedo(ind_wat_win,m) = albedo_pars_f%pars_xy(0,j,i)
    16351641                   ENDIF
    16361642                ENDDO
     
    22882294!--                calculated fluxes below are not actually used as they are
    22892295!--                overwritten in radiation_interaction.
    2290                    surf%rad_sw_out(m) = ( surf%frac(0,m) * surf%albedo(0,m)    &
    2291                                         + surf%frac(1,m) * surf%albedo(1,m)    &
    2292                                         + surf%frac(2,m) * surf%albedo(2,m) )  &
     2296                   surf%rad_sw_out(m) = ( surf%frac(ind_veg_wall,m)  *         &
     2297                                          surf%albedo(ind_veg_wall,m)          &
     2298                                        + surf%frac(ind_pav_green,m) *         &
     2299                                          surf%albedo(ind_pav_green,m)         &
     2300                                        + surf%frac(ind_wat_win,m)   *         &
     2301                                          surf%albedo(ind_wat_win,m) )         &
    22932302                                        * surf%rad_sw_in(m)
    22942303
    2295                    surf%rad_lw_out(m) = ( surf%frac(0,m) * surf%emissivity(0,m)&
    2296                                         + surf%frac(1,m) * surf%emissivity(1,m)&
    2297                                         + surf%frac(2,m) * surf%emissivity(2,m)&
     2304                   surf%rad_lw_out(m) = ( surf%frac(ind_veg_wall,m)  *         &
     2305                                          surf%emissivity(ind_veg_wall,m)      &
     2306                                        + surf%frac(ind_pav_green,m) *         &
     2307                                          surf%emissivity(ind_pav_green,m)     &
     2308                                        + surf%frac(ind_wat_win,m)   *         &
     2309                                          surf%emissivity(ind_wat_win,m)       &
    22982310                                        )                                      &
    22992311                                        * sigma_sb                             &
     
    23012313
    23022314                   surf%rad_lw_out_change_0(m) =                               &
    2303                                       ( surf%frac(0,m) * surf%emissivity(0,m)  &
    2304                                       + surf%frac(1,m) * surf%emissivity(1,m)  &
    2305                                       + surf%frac(2,m) * surf%emissivity(2,m)  &
     2315                                      ( surf%frac(ind_veg_wall,m)  *           &
     2316                                        surf%emissivity(ind_veg_wall,m)        &
     2317                                      + surf%frac(ind_pav_green,m) *           &
     2318                                        surf%emissivity(ind_pav_green,m)       &
     2319                                      + surf%frac(ind_wat_win,m)   *           &
     2320                                        surf%emissivity(ind_wat_win,m)         &
    23062321                                      ) * 3.0_wp * sigma_sb                    &
    23072322                                      * ( surf%pt_surface(m) * exn )** 3
     
    24742489!
    24752490!--                Weighted average according to surface fraction.
    2476                    surf%rad_lw_out(m) = ( surf%frac(0,m) * surf%emissivity(0,m)&
    2477                                         + surf%frac(1,m) * surf%emissivity(1,m)&
    2478                                         + surf%frac(2,m) * surf%emissivity(2,m)&
     2491                   surf%rad_lw_out(m) = ( surf%frac(ind_veg_wall,m)  *         &
     2492                                          surf%emissivity(ind_veg_wall,m)      &
     2493                                        + surf%frac(ind_pav_green,m) *         &
     2494                                          surf%emissivity(ind_pav_green,m)     &
     2495                                        + surf%frac(ind_wat_win,m)   *         &
     2496                                          surf%emissivity(ind_wat_win,m)       &
    24792497                                        )                                      &
    24802498                                      * sigma_sb                               &
     
    24842502                                       + surf%rad_lw_out(m) )                  &
    24852503                                       / ( 1.0_wp -                            &
    2486                                           ( surf%frac(0,m) * surf%albedo(0,m) +&
    2487                                             surf%frac(1,m) * surf%albedo(1,m) +&
    2488                                             surf%frac(1,m) * surf%albedo(1,m) )&
     2504                                          ( surf%frac(ind_veg_wall,m)  *       &
     2505                                            surf%albedo(ind_veg_wall,m)        &
     2506                                         +  surf%frac(ind_pav_green,m) *       &
     2507                                            surf%albedo(ind_pav_green,m)       &
     2508                                         +  surf%frac(ind_wat_win,m)   *       &
     2509                                            surf%albedo(ind_wat_win,m) )       &
    24892510                                         )
    24902511
    2491                    surf%rad_sw_out(m) = ( surf%frac(0,m) * surf%albedo(0,m)    &
    2492                                         + surf%frac(1,m) * surf%albedo(1,m)    &
    2493                                         + surf%frac(2,m) * surf%albedo(2,m) )  &
     2512                   surf%rad_sw_out(m) = ( surf%frac(ind_veg_wall,m)  *         &
     2513                                          surf%albedo(ind_veg_wall,m)          &
     2514                                        + surf%frac(ind_pav_green,m) *         &
     2515                                          surf%albedo(ind_pav_green,m)         &
     2516                                        + surf%frac(ind_wat_win,m)   *         &
     2517                                          surf%albedo(ind_wat_win,m) )         &
    24942518                                      * surf%rad_sw_in(m)
    24952519
     
    30993123!--             surfaces.
    31003124                DO  m = surf_lsm_h%start_index(j,i), surf_lsm_h%end_index(j,i)
    3101                    rrtm_emis = surf_lsm_h%frac(0,m) * surf_lsm_h%emissivity(0,m) +&
    3102                                surf_lsm_h%frac(1,m) * surf_lsm_h%emissivity(1,m) +&
    3103                                surf_lsm_h%frac(2,m) * surf_lsm_h%emissivity(2,m)
    3104                    rrtm_tsfc = pt(surf_lsm_h%k(m)+surf_lsm_h%koff,j,i) *          &
     3125                   rrtm_emis = surf_lsm_h%frac(ind_veg_wall,m)  *              &
     3126                               surf_lsm_h%emissivity(ind_veg_wall,m)  +        &
     3127                               surf_lsm_h%frac(ind_pav_green,m) *              &
     3128                               surf_lsm_h%emissivity(ind_pav_green,m) +        &
     3129                               surf_lsm_h%frac(ind_wat_win,m)   *              &
     3130                               surf_lsm_h%emissivity(ind_wat_win,m)
     3131                   rrtm_tsfc = pt(surf_lsm_h%k(m)+surf_lsm_h%koff,j,i) *       &
    31053132                                       (surface_pressure / 1000.0_wp )**0.286_wp
    31063133                ENDDO             
    31073134                DO  m = surf_usm_h%start_index(j,i), surf_usm_h%end_index(j,i)
    3108                    rrtm_emis = surf_usm_h%frac(0,m) * surf_usm_h%emissivity(0,m) +&
    3109                                surf_usm_h%frac(1,m) * surf_usm_h%emissivity(1,m) +&
    3110                                surf_usm_h%frac(2,m) * surf_usm_h%emissivity(2,m)
    3111                    rrtm_tsfc = pt(surf_usm_h%k(m)+surf_usm_h%koff,j,i) *          &
     3135                   rrtm_emis = surf_usm_h%frac(ind_veg_wall,m)  *              &
     3136                               surf_usm_h%emissivity(ind_veg_wall,m)  +        &
     3137                               surf_usm_h%frac(ind_pav_green,m) *              &
     3138                               surf_usm_h%emissivity(ind_pav_green,m) +        &
     3139                               surf_usm_h%frac(ind_wat_win,m)   *              &
     3140                               surf_usm_h%emissivity(ind_wat_win,m)
     3141                   rrtm_tsfc = pt(surf_usm_h%k(m)+surf_usm_h%koff,j,i) *       &
    31123142                                       (surface_pressure / 1000.0_wp )**0.286_wp
    31133143                ENDDO
  • palm/trunk/SOURCE/sum_up_3d_data.f90

    r2894 r2963  
    2525! -----------------
    2626! $Id$
     27! Introduce index for vegetation/wall, pavement/green-wall and water/window
     28! surfaces, for clearer access of surface fraction, albedo, emissivity, etc. .
     29!
     30! 2894 2018-03-15 09:17:58Z Giersch
    2731! Changed comment
    2832!
     
    223227
    224228    USE surface_mod,                                                           &
    225         ONLY:  surf_def_h, surf_lsm_h, surf_usm_h
     229        ONLY:  ind_pav_green, ind_veg_wall, ind_wat_win,                       &
     230               surf_def_h, surf_lsm_h, surf_usm_h
    226231
    227232    USE turbulence_closure_mod,                                                &
     
    577582                i   = surf_usm_h%i(m)           
    578583                j   = surf_usm_h%j(m)
    579                 ghf_av(j,i) = ghf_av(j,i) + surf_usm_h%frac(0,m)     *          &
    580                                             surf_usm_h%wghf_eb(m)        +      &
    581                                             surf_usm_h%frac(1,m)     *          &
    582                                             surf_usm_h%wghf_eb_green(m)  +      &
    583                                             surf_usm_h%frac(2,m)     *          &
     584                ghf_av(j,i) = ghf_av(j,i) + surf_usm_h%frac(ind_veg_wall,m)  * &
     585                                            surf_usm_h%wghf_eb(m)        +     &
     586                                            surf_usm_h%frac(ind_pav_green,m) * &
     587                                            surf_usm_h%wghf_eb_green(m)  +     &
     588                                            surf_usm_h%frac(ind_wat_win,m)   * &
    584589                                            surf_usm_h%wghf_eb_window(m)
    585590             ENDDO
     
    841846                j   = surf_usm_h%j(m)
    842847                r_a_av(j,i) = r_a_av(j,i) +                                    &
    843                            ( surf_usm_h%frac(0,m) * surf_usm_h%r_a(m)       +  &
    844                              surf_usm_h%frac(1,m) * surf_usm_h%r_a_green(m) +  &
    845                              surf_usm_h%frac(2,m) * surf_usm_h%r_a_window(m) )
     848                           ( surf_usm_h%frac(ind_veg_wall,m)  *                &
     849                             surf_usm_h%r_a(m)       +                         &
     850                             surf_usm_h%frac(ind_pav_green,m) *                &
     851                             surf_usm_h%r_a_green(m) +                         &
     852                             surf_usm_h%frac(ind_wat_win,m)   *                &
     853                             surf_usm_h%r_a_window(m) )
    846854             ENDDO
    847855
  • palm/trunk/SOURCE/surface_mod.f90

    r2942 r2963  
    2626! -----------------
    2727! $Id$
     28! Introduce index for vegetation/wall, pavement/green-wall and water/window
     29! surfaces, for clearer access of surface fraction, albedo, emissivity, etc. .
     30!
     31! 2942 2018-04-03 13:51:09Z suehring
    2832! Bugfix in assigning surface element data after restart
    2933!
     
    435439    TYPE (surf_type), DIMENSION(0:3), TARGET ::  surf_usm_v  !< vertical urban surfaces (North, South, East, West)
    436440
     441    INTEGER(iwp), PARAMETER ::  ind_veg_wall  = 0            !< index for vegetation / wall-surface fraction, used for access of albedo, emissivity, etc., for each surface type   
     442    INTEGER(iwp), PARAMETER ::  ind_pav_green = 1            !< index for pavement / green-wall surface fraction, used for access of albedo, emissivity, etc., for each surface type
     443    INTEGER(iwp), PARAMETER ::  ind_wat_win   = 2            !< index for water / window-surface fraction, used for access of albedo, emissivity, etc., for each surface type
     444
    437445    INTEGER(iwp) ::  ns_h_on_file(0:2)                       !< total number of horizontal surfaces with the same facing, required for writing restart data
    438446    INTEGER(iwp) ::  ns_v_on_file(0:3)                       !< total number of vertical surfaces with the same facing, required for writing restart data
     
    474482!
    475483!-- Public variables
    476     PUBLIC bc_h, ns_h_on_file, ns_v_on_file, surf_def_h, surf_def_v,           &
    477            surf_lsm_h, surf_lsm_v, surf_usm_h, surf_usm_v, surf_type
     484    PUBLIC bc_h, ind_pav_green, ind_veg_wall, ind_wat_win, ns_h_on_file,       &
     485           ns_v_on_file, surf_def_h, surf_def_v, surf_lsm_h, surf_lsm_v,       &
     486           surf_usm_h, surf_usm_v, surf_type
    478487!
    479488!-- Public subroutines and functions
  • 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.