Changeset 2963 for palm/trunk/SOURCE/urban_surface_mod.f90
- Timestamp:
- Apr 12, 2018 2:47:44 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/urban_surface_mod.f90
r2943 r2963 28 28 ! ----------------- 29 29 ! $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 30 34 ! Calculate exner function at all height levels and remove some un-used 31 35 ! variables. … … 322 326 ONLY: hom, statistic_regions 323 327 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 325 332 326 333 … … 2458 2465 j = surf_usm_h%j(m) 2459 2466 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) 2466 2473 ENDDO 2467 2474 ELSE … … 2471 2478 j = surf_usm_v(l)%j(m) 2472 2479 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) 2479 2486 ENDDO 2480 2487 ENDIF … … 2487 2494 j = surf_usm_h%j(m) 2488 2495 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) 2495 2502 ENDDO 2496 2503 ELSE … … 2500 2507 j = surf_usm_v(l)%j(m) 2501 2508 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) 2508 2515 ENDDO 2509 2516 ENDIF … … 3677 3684 ! 3678 3685 !-- 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) 3683 3690 3684 3691 surf_usm_h%rho_c_wall(nzb_wall,m) = building_pars(ind_hc1,building_type) … … 3711 3718 ! 3712 3719 !-- 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) 3716 3723 3717 3724 surf_usm_h%transmissivity(m) = building_pars(ind_trans,building_type) … … 3722 3729 ! 3723 3730 !-- 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) ) 3727 3734 3728 3735 surf_usm_h%zw(nzb_wall,m) = building_pars(ind_thick_1,building_type) … … 3796 3803 ! 3797 3804 !-- 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) 3801 3808 surf_usm_v(l)%lai(m) = building_pars(ind_lai_w,building_type) 3802 3809 … … 3835 3842 ! 3836 3843 !-- 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) 3840 3847 3841 3848 surf_usm_v(l)%transmissivity(m) = building_pars(ind_trans,building_type) … … 3845 3852 surf_usm_v(l)%z0q(m) = building_pars(ind_z0qh,building_type) 3846 3853 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) ) 3850 3857 3851 3858 surf_usm_v(l)%zw(nzb_wall,m) = building_pars(ind_thick_1,building_type) … … 3926 3933 ! 3927 3934 !-- 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) 3932 3939 3933 3940 surf_usm_h%rho_c_wall(nzb_wall,m) = building_pars(ind_hc1,st) … … 3962 3969 ! 3963 3970 !-- 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) 3967 3974 3968 3975 surf_usm_h%transmissivity(m) = building_pars(ind_trans,st) … … 3973 3980 ! 3974 3981 !-- 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) ) 3978 3985 3979 3986 surf_usm_h%zw(nzb_wall,m) = building_pars(ind_thick_1,st) … … 4054 4061 ! 4055 4062 !-- 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) 4060 4067 4061 4068 surf_usm_v(l)%rho_c_wall(nzb_wall,m) = building_pars(ind_hc1,st) … … 4093 4100 ! 4094 4101 !-- 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) 4098 4105 4099 4106 surf_usm_v(l)%transmissivity(m) = building_pars(ind_trans,st) … … 4103 4110 surf_usm_v(l)%z0q(m) = building_pars(ind_z0qh,st) 4104 4111 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) ) 4108 4115 4109 4116 surf_usm_v(l)%zw(nzb_wall,m) = building_pars(ind_thick_1,st) … … 4185 4192 !-- Initialize relatvie wall- (0), green- (1) and window (2) fractions 4186 4193 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) 4188 4195 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) 4190 4197 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) 4192 4199 4193 4200 … … 4251 4258 4252 4259 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) 4254 4261 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) 4256 4263 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) 4258 4265 4259 4266 IF ( building_pars_f%pars_xy(ind_trans,j,i) /= building_pars_f%fill ) & … … 4268 4275 4269 4276 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) 4271 4278 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) 4273 4280 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) 4275 4282 4276 4283 IF ( building_pars_f%pars_xy(ind_thick_1,j,i) /= building_pars_f%fill ) & … … 4364 4371 IF ( building_pars_f%pars_xy(ind_wall_frac,j,i) /= & 4365 4372 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) 4367 4375 IF ( building_pars_f%pars_xy(ind_green_frac_w,j,i) /= & 4368 4376 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) 4370 4379 IF ( building_pars_f%pars_xy(ind_win_frac,j,i) /= & 4371 4380 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) 4373 4383 4374 4384 IF ( building_pars_f%pars_xy(ind_lai_w,j,i) /= building_pars_f%fill ) & … … 4438 4448 4439 4449 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) 4441 4451 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) 4443 4453 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) 4445 4455 4446 4456 IF ( building_pars_f%pars_xy(ind_trans,j,i) /= building_pars_f%fill ) & … … 4455 4465 4456 4466 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) 4458 4468 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) 4460 4470 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) 4462 4472 4463 4473 IF ( building_pars_f%pars_xy(ind_thick_1,j,i) /= building_pars_f%fill ) & … … 4683 4693 - t_wall_h(nzb_wall,m) ) * & 4684 4694 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) ) & 4688 4698 * 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) ) & 4692 4702 * ( surf_usm_h%lambda_h_green(nzt_wall,m) & 4693 4703 * surf_usm_h%ddz_green(nzt_wall,m) & … … 4853 4863 - t_wall_v(l)%t(nzb_wall,m) ) * & 4854 4864 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) ) & 4858 4868 * 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) ) & 4862 4872 * ( surf_usm_v(l)%lambda_h_green(nzt_wall,m) & 4863 4873 * surf_usm_v(l)%ddz_green(nzt_wall,m) & … … 6772 6782 ! 6773 6783 !-- Albedo 6774 IF ( surf_usm_h%albedo( 0,m) < 0.0_wp ) THEN6784 IF ( surf_usm_h%albedo(ind_veg_wall,m) < 0.0_wp ) THEN 6775 6785 surf_usm_h%albedo(:,m) = surface_params(ialbedo,ip) 6776 6786 ENDIF … … 6944 6954 ! 6945 6955 !-- Albedo 6946 IF ( surf_usm_v(l)%albedo( 0,m) < 0.0_wp ) THEN6956 IF ( surf_usm_v(l)%albedo(ind_veg_wall,m) < 0.0_wp ) THEN 6947 6957 surf_usm_v(l)%albedo(:,m) = surface_params(ialbedo,ip) 6948 6958 ENDIF … … 7240 7250 !-- is used 7241 7251 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) + & 7245 7255 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) + & 7250 7260 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) + & 7255 7265 lambda_surface_green * t_wall_h(nzb_wall,m) 7256 7266 7257 7267 !-- 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 & 7260 7270 + 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 & 7263 7273 + 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 & 7266 7276 + lambda_surface_green + f_shf_green / exn(k) 7267 7277 … … 7287 7297 ! 7288 7298 !-- 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) ) & 7292 7302 / exn(k) 7293 7303 … … 7328 7338 !-- rad_net_l is never used! 7329 7339 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) * & 7332 7342 ( 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) * & 7335 7345 ( 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) * & 7338 7348 ( t_surf_green_h_p(m)**4 - t_surf_green_h(m)**4 ) 7339 7349 … … 7348 7358 !-- ground/wall/roof surface heat flux 7349 7359 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) & 7351 7361 - 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) & 7353 7363 - 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) 7355 7365 ! 7356 7366 !-- store kinematic surface heat fluxes for utilization in other processes … … 7431 7441 !-- numerator of the prognostic equation 7432 7442 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) + & 7436 7446 lambda_surface * t_wall_v(l)%t(nzb_wall,m) 7437 coef_window_1 = surf_usm_v(l)%rad_net_l(m) + 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) + & 7441 7451 lambda_surface_window * t_window_v(l)%t(nzb_wall,m) 7442 7452 7443 7453 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) + & 7447 7457 lambda_surface_green * t_wall_v(l)%t(nzb_wall,m) 7448 7458 7449 7459 !-- 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 & 7452 7462 + 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 & 7455 7465 + 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 & 7458 7468 + lambda_surface_green + f_shf / exn(k) 7459 7469 … … 7482 7492 ! 7483 7493 !-- 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) ) & 7487 7497 / exn(k) 7488 7498 … … 7523 7533 !-- calculate fluxes 7524 7534 !-- 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) * & 7526 7536 ( surf_usm_v(l)%rad_net_l(m) + & 7527 7537 3.0_wp * sigma_sb * & 7528 7538 t_surf_v(l)%t(m)**4 - 4.0_wp * sigma_sb * & 7529 7539 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) * & 7531 7541 ( surf_usm_v(l)%rad_net_l(m) + & 7532 7542 3.0_wp * sigma_sb * & 7533 7543 t_surf_window_v(l)%t(m)**4 - 4.0_wp * sigma_sb * & 7534 7544 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) * & 7536 7546 ( surf_usm_v(l)%rad_net_l(m) + & 7537 7547 3.0_wp * sigma_sb * & … … 7549 7559 surf_usm_v(l)%wshf_eb(m) = & 7550 7560 - 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) & 7552 7562 - 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)& 7554 7564 - 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) 7556 7566 7557 7567 !
Note: See TracChangeset
for help on using the changeset viewer.