Changeset 3178
- Timestamp:
- Jul 27, 2018 10:40:19 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/radiation_model_mod.f90
r3175 r3178 28 28 ! ----------------- 29 29 ! $Id$ 30 ! Revise concept for calculation of effective radiative temperature and mapping 31 ! of radiative heating 32 ! 33 ! 3175 2018-07-26 14:07:38Z suehring 30 34 ! Bugfix for commit 3172 31 35 ! … … 3021 3025 k_topo = get_topography_top_index_ji( j, i, 's' ) 3022 3026 DO k = k_topo+1, nzt+1 3023 rad_lw_hr(k,j,i) = rrtm_lwhr(0,k ) * d_hours_day3024 rad_lw_cs_hr(k,j,i) = rrtm_lwhrc(0,k ) * d_hours_day3027 rad_lw_hr(k,j,i) = rrtm_lwhr(0,k-k_topo) * d_hours_day 3028 rad_lw_cs_hr(k,j,i) = rrtm_lwhrc(0,k-k_topo) * d_hours_day 3025 3029 ENDDO 3026 3030 ENDDO … … 3359 3363 !-- Save heating rates (convert from K/d to K/h) 3360 3364 DO k = k_topo+1, nzt+1 3361 rad_lw_hr(k,j,i) = rrtm_lwhr(0,k ) * d_hours_day3362 rad_lw_cs_hr(k,j,i) = rrtm_lwhrc(0,k ) * d_hours_day3365 rad_lw_hr(k,j,i) = rrtm_lwhr(0,k-k_topo) * d_hours_day 3366 rad_lw_cs_hr(k,j,i) = rrtm_lwhrc(0,k-k_topo) * d_hours_day 3363 3367 ENDDO 3364 3368 … … 4974 4978 !-- See below for more explanation. 4975 4979 !-- (3) temperature 4976 ! t_rad_urb = ( (pemitlw - pabslw + emissivity_urb*pinlw) / & 4977 ! (emissivity_urb*sigma_sb * area_hor) )**0.25_wp 4978 4980 !-- first we calculate an effective horizontal area to account for 4981 !-- the effect of vertical surfaces (which contributes to LW emission) 4982 !-- We simply use the ratio of the total LW to the incoming LW flux 4983 area_hor = pinlw/rad_lw_in_diff(nyn,nxl) 4984 t_rad_urb = ( (pemitlw - pabslw + emissivity_urb*pinlw) / & 4985 (emissivity_urb*sigma_sb * area_hor) )**0.25_wp 4986 write(9,*) t_rad_urb 4987 flush(9) 4979 4988 ! 4980 4989 !-- It has been turned out that the effective radiative temperature is far … … 4983 4992 !-- surface temperature from all surface elements, resulting in more 4984 4993 !-- physically meaningful radiative forcings. 4985 pt_surf_urb_l = 0.0_wp4986 count_surfaces_l = 0.0_wp4987 DO m = 1, surf_lsm_h%ns4988 k = surf_lsm_h%k(m)4989 pt_surf_urb_l = pt_surf_urb_l + surf_lsm_h%pt_surface(m) &4990 * ( hyp(k) / 100000.0_wp )**0.286_wp4991 count_surfaces_l = count_surfaces_l + 1.0_wp4992 ENDDO4993 DO m = 1, surf_usm_h%ns4994 k = surf_usm_h%k(m)4995 pt_surf_urb_l = pt_surf_urb_l + surf_usm_h%pt_surface(m) &4996 * ( hyp(k) / 100000.0_wp )**0.286_wp4997 count_surfaces_l = count_surfaces_l + 1.0_wp4998 ENDDO4999 DO l = 0, 35000 DO m = 1, surf_lsm_v(l)%ns5001 k = surf_lsm_v(l)%k(m)5002 pt_surf_urb_l = pt_surf_urb_l + surf_lsm_v(l)%pt_surface(m) &5003 * ( hyp(k) / 100000.0_wp )**0.286_wp5004 count_surfaces_l = count_surfaces_l + 1.0_wp5005 ENDDO5006 DO m = 1, surf_usm_v(l)%ns5007 k = surf_usm_v(l)%k(m)5008 pt_surf_urb_l = pt_surf_urb_l + surf_usm_v(l)%pt_surface(m) &5009 * ( hyp(k) / 100000.0_wp )**0.286_wp5010 count_surfaces_l = count_surfaces_l + 1.0_wp5011 ENDDO5012 ENDDO5013 5014 pt_surf_urb = 0.0_wp5015 count_surfaces = 0.0_wp5016 5017 #if defined( __parallel )5018 CALL MPI_ALLREDUCE( count_surfaces_l, count_surfaces, 1, MPI_REAL, &5019 MPI_SUM, comm2d, ierr)5020 CALL MPI_ALLREDUCE( pt_surf_urb_l, pt_surf_urb, 1, MPI_REAL, &5021 MPI_SUM, comm2d, ierr)5022 #else5023 count_surfaces_l = count_surfaces5024 pt_surf_urb_l = pt_surf_urb5025 #endif5026 5027 t_rad_urb = pt_surf_urb / count_surfaces4994 ! pt_surf_urb_l = 0.0_wp 4995 ! count_surfaces_l = 0.0_wp 4996 ! DO m = 1, surf_lsm_h%ns 4997 ! k = surf_lsm_h%k(m) 4998 ! pt_surf_urb_l = pt_surf_urb_l + surf_lsm_h%pt_surface(m) & 4999 ! * ( hyp(k) / 100000.0_wp )**0.286_wp 5000 ! count_surfaces_l = count_surfaces_l + 1.0_wp 5001 ! ENDDO 5002 ! DO m = 1, surf_usm_h%ns 5003 ! k = surf_usm_h%k(m) 5004 ! pt_surf_urb_l = pt_surf_urb_l + surf_usm_h%pt_surface(m) & 5005 ! * ( hyp(k) / 100000.0_wp )**0.286_wp 5006 ! count_surfaces_l = count_surfaces_l + 1.0_wp 5007 ! ENDDO 5008 ! DO l = 0, 3 5009 ! DO m = 1, surf_lsm_v(l)%ns 5010 ! k = surf_lsm_v(l)%k(m) 5011 ! pt_surf_urb_l = pt_surf_urb_l + surf_lsm_v(l)%pt_surface(m) & 5012 ! * ( hyp(k) / 100000.0_wp )**0.286_wp 5013 ! count_surfaces_l = count_surfaces_l + 1.0_wp 5014 ! ENDDO 5015 ! DO m = 1, surf_usm_v(l)%ns 5016 ! k = surf_usm_v(l)%k(m) 5017 ! pt_surf_urb_l = pt_surf_urb_l + surf_usm_v(l)%pt_surface(m) & 5018 ! * ( hyp(k) / 100000.0_wp )**0.286_wp 5019 ! count_surfaces_l = count_surfaces_l + 1.0_wp 5020 ! ENDDO 5021 ! ENDDO 5022 ! 5023 ! pt_surf_urb = 0.0_wp 5024 ! count_surfaces = 0.0_wp 5025 ! 5026 ! #if defined( __parallel ) 5027 ! CALL MPI_ALLREDUCE( count_surfaces_l, count_surfaces, 1, MPI_REAL, & 5028 ! MPI_SUM, comm2d, ierr) 5029 ! CALL MPI_ALLREDUCE( pt_surf_urb_l, pt_surf_urb, 1, MPI_REAL, & 5030 ! MPI_SUM, comm2d, ierr) 5031 ! #else 5032 ! count_surfaces_l = count_surfaces 5033 ! pt_surf_urb_l = pt_surf_urb 5034 ! #endif 5035 ! 5036 ! t_rad_urb = pt_surf_urb / count_surfaces 5028 5037 5029 5038 CONTAINS
Note: See TracChangeset
for help on using the changeset viewer.