This module sets up surface albedo for SW radiation and surface emissivity for LW radiation. More...
Modules | |
| module | module_radiation_surface |
| This module sets up surface albedo for SW radiation and surface emissivity for LW radiation. | |
Functions/Subroutines | |
| subroutine, public | module_radiation_surface::sfc_init (mpicomm, mpirank, mpiroot, ialbflg, iemsflg, semis_file, con_pi, errmsg, errflg) |
| This subroutine is the initialization program for surface radiation related quantities (albedo, emissivity, etc.) | |
| subroutine, public | module_radiation_surface::setalb (slmsk, lsm, lsm_noahmp, lsm_ruc, use_cice_alb, snodi, sncovr, sncovr_ice, snoalb, zorlf, coszf, tsknf, tairf, hprif, frac_grid, lakefrac, alvsf, alnsf, alvwf, alnwf, facsf, facwf, fice, tisfc, lsmalbdvis, lsmalbdnir, lsmalbivis, lsmalbinir, icealbdvis, icealbdnir, icealbivis, icealbinir, imax, albppert, pertalb, fracl, fraco, fraci, icy, ialbflg, con_ttp, sfcalb) |
| This subroutine computes four components of surface albedos (i.e., vis-nir, direct-diffused) according to control flag ialbflg. 1) climatological surface albedo scheme ([27]) 2) MODIS retrieval based scheme from Boston univ. | |
| subroutine, public | module_radiation_surface::setemis (lsm, lsm_noahmp, lsm_ruc, frac_grid, cplice, use_lake_model, lakefrac, xlon, xlat, slmsk, snodl, snodi, sncovr, sncovr_ice, zorlf, tsknf, tairf, hprif, semis_lnd, semis_ice, semis_wat, imax, fracl, fraco, fraci, icy, semisbase, sfcemis) |
| This subroutine computes surface emissivity for LW radiation. | |
Variables | |
| integer, parameter, public | module_radiation_surface::imxems = 360 |
| integer, parameter, public | module_radiation_surface::jmxems = 180 |
| real(kind=kind_phys), parameter, public | module_radiation_surface::f_zero = 0.0 |
| real(kind=kind_phys), parameter, public | module_radiation_surface::f_one = 1.0 |
| real(kind=kind_phys), parameter, public | module_radiation_surface::epsln = 1.0e-6 |
This module sets up surface albedo for SW radiation and surface emissivity for LW radiation.
In the module, the externally callable subroutines are :
SW surface albedo (namelist control parameter - IALB=1)
IALB=1: MODIS retrievals based monthly mean climatology
IALB=2: use surface albedo from land model
LW surface emissivity (namelist control parameter - IEMS=1)
IEMS=1: surface type based climatology in \(1^o\) horizontal resolution
IEMS=2: use surface emissivity from land model
| subroutine, public module_radiation_surface::setalb | ( | real (kind=kind_phys), dimension(:), intent(in) | slmsk, |
| integer, intent(in) | lsm, | ||
| integer, intent(in) | lsm_noahmp, | ||
| integer, intent(in) | lsm_ruc, | ||
| logical, intent(in) | use_cice_alb, | ||
| real (kind=kind_phys), dimension(:), intent(in) | snodi, | ||
| real (kind=kind_phys), dimension(:), intent(in) | sncovr, | ||
| real (kind=kind_phys), dimension(:), intent(in) | sncovr_ice, | ||
| real (kind=kind_phys), dimension(:), intent(in) | snoalb, | ||
| real (kind=kind_phys), dimension(:), intent(in) | zorlf, | ||
| real (kind=kind_phys), dimension(:), intent(in) | coszf, | ||
| real (kind=kind_phys), dimension(:), intent(in) | tsknf, | ||
| real (kind=kind_phys), dimension(:), intent(in) | tairf, | ||
| real (kind=kind_phys), dimension(:), intent(in) | hprif, | ||
| logical, intent(in) | frac_grid, | ||
| real (kind=kind_phys), dimension(:), intent(in) | lakefrac, | ||
| real (kind=kind_phys), dimension(:), intent(in) | alvsf, | ||
| real (kind=kind_phys), dimension(:), intent(in) | alnsf, | ||
| real (kind=kind_phys), dimension(:), intent(in) | alvwf, | ||
| real (kind=kind_phys), dimension(:), intent(in) | alnwf, | ||
| real (kind=kind_phys), dimension(:), intent(in) | facsf, | ||
| real (kind=kind_phys), dimension(:), intent(in) | facwf, | ||
| real (kind=kind_phys), dimension(:), intent(in) | fice, | ||
| real (kind=kind_phys), dimension(:), intent(in) | tisfc, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | lsmalbdvis, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | lsmalbdnir, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | lsmalbivis, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | lsmalbinir, | ||
| real (kind=kind_phys), dimension(:), intent(in), optional | icealbdvis, | ||
| real (kind=kind_phys), dimension(:), intent(in), optional | icealbdnir, | ||
| real (kind=kind_phys), dimension(:), intent(in), optional | icealbivis, | ||
| real (kind=kind_phys), dimension(:), intent(in), optional | icealbinir, | ||
| integer, intent(in) | imax, | ||
| real (kind=kind_phys), dimension(:), intent(in) | albppert, | ||
| real (kind=kind_phys), intent(in) | pertalb, | ||
| real (kind=kind_phys), dimension(:), intent(in) | fracl, | ||
| real (kind=kind_phys), dimension(:), intent(in) | fraco, | ||
| real (kind=kind_phys), dimension(:), intent(in) | fraci, | ||
| logical, dimension(:), intent(in) | icy, | ||
| integer, intent(in) | ialbflg, | ||
| real (kind=kind_phys), intent(in) | con_ttp, | ||
| real (kind=kind_phys), dimension(:,:), intent(out) | sfcalb | ||
| ) |
This subroutine computes four components of surface albedos (i.e., vis-nir, direct-diffused) according to control flag ialbflg.
1) climatological surface albedo scheme ([27])
2) MODIS retrieval based scheme from Boston univ.
| slmsk | sea(0),land(1),ice(2) mask on fcst model grid |
| lsm | flag for land surface model |
| lsm_noahmp | flag for NOAH MP land surface model |
| lsm_ruc | flag for RUC land surface model |
| use_cice_alb | flag for using uce albedos from CICE when coupled |
| snodi | snow depth water equivalent in mm over ice |
| sncovr | snow cover over land |
| snoalb | maximum snow albedo over land (for deep snow) |
| zorlf | surface roughness in cm |
| coszf | cosin of solar zenith angle |
| tsknf | ground surface temperature in K |
| tairf | lowest model layer air temperature in K |
| hprif | topographic sdv in m |
| frac_grid | flag for fractional landmask |
| lakefrac | fraction of horizontal grid area occupied by lake |
| alvsf | visible black sky albedo at zenith 60 degree |
| alnsf | near-ir black sky albedo at zenith 60 degree |
| alvwf | visible white sky albedo |
| alnwf | near-ir white sky albedo |
| facsf | fractional coverage with strong cosz dependency |
| facwf | fractional coverage with weak cosz dependency |
| fice | sea-ice fraction |
| tisfc | sea-ice surface temperature |
| lsmalbdvis | direct surface albedo visible band over land |
| lsmalbdnir | direct surface albedo NIR band over land |
| lsmalbivis | diffuse surface albedo visible band over land |
| lsmalbinir | diffuse surface albedo NIR band over land |
| icealbdvis | direct surface albedo visible band over ice |
| icealbdnir | direct surface albedo NIR band over ice |
| icealbivis | diffuse surface albedo visible band over ice |
| icealbinir | diffuse surface albedo NIR band over ice |
| IMAX | array horizontal dimension |
| albppert | a probability value in the interval [0,1] |
| pertalb | (5), magnitude of perturbation of surface albedo |
| fracl | land fraction for emissivity and albedo calculation |
| fraco | ocean fraction for emissivity of albedo calculation |
| fraci | ice fraction for emissivity of albedo calculation |
| icy | flag for ice surfce |
| sfcalb | mean sfc albedo ( :, 1) - near ir direct beam albedo ( :, 2) - near ir diffused albedo ( :, 3) - uv+vis direct beam albedo ( :, 4) - uv+vis diffused albedo |
Definition at line 347 of file radiation_surface.f.
References surface_perturbation::ppfbet().
| subroutine, public module_radiation_surface::setemis | ( | integer, intent(in) | lsm, |
| integer, intent(in) | lsm_noahmp, | ||
| integer, intent(in) | lsm_ruc, | ||
| logical, intent(in) | frac_grid, | ||
| logical, intent(in) | cplice, | ||
| integer, dimension(:), intent(in) | use_lake_model, | ||
| real (kind=kind_phys), dimension(:), intent(in) | lakefrac, | ||
| real (kind=kind_phys), dimension(:), intent(in) | xlon, | ||
| real (kind=kind_phys), dimension(:), intent(in) | xlat, | ||
| real (kind=kind_phys), dimension(:), intent(in) | slmsk, | ||
| real (kind=kind_phys), dimension(:), intent(in) | snodl, | ||
| real (kind=kind_phys), dimension(:), intent(in) | snodi, | ||
| real (kind=kind_phys), dimension(:), intent(in) | sncovr, | ||
| real (kind=kind_phys), dimension(:), intent(in) | sncovr_ice, | ||
| real (kind=kind_phys), dimension(:), intent(in) | zorlf, | ||
| real (kind=kind_phys), dimension(:), intent(in) | tsknf, | ||
| real (kind=kind_phys), dimension(:), intent(in) | tairf, | ||
| real (kind=kind_phys), dimension(:), intent(in) | hprif, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | semis_lnd, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | semis_ice, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | semis_wat, | ||
| integer, intent(in) | imax, | ||
| real (kind=kind_phys), dimension(:), intent(in) | fracl, | ||
| real (kind=kind_phys), dimension(:), intent(in) | fraco, | ||
| real (kind=kind_phys), dimension(:), intent(in) | fraci, | ||
| logical, dimension(:), intent(in) | icy, | ||
| real (kind=kind_phys), dimension(:), intent(out) | semisbase, | ||
| real (kind=kind_phys), dimension(:), intent(out) | sfcemis | ||
| ) |
This subroutine computes surface emissivity for LW radiation.
| lsm | flag for land surface model |
| lsm_noahmp | flag for NOAH MP land surface model |
| lsm_ruc | flag for RUC land surface model |
| frac_grid | flag for fractional grid |
| cplice | flag for controlling cplice collection |
| use_flake | flag for indicating lake points using flake model |
| lakefrac | fraction of horizontal grid area occupied by lake |
| xlon | longitude in radiance, ok for both 0->2pi or -pi -> +pi ranges |
| xlat | latitude in radiance, default to pi/2 -> -pi/2 range, otherwise see in-line comment |
| slmsk | landmask: sea/land/ice =0/1/2 |
| snodl | snow depth water equivalent in mm land |
| snodi | snow depth water equivalent in mm ice |
| sncovr | snow cover over land |
| sncovr_ice | surface snow area fraction over ice |
| zorlf | surface roughness in cm |
| tsknf | ground surface temperature in K |
| tairf | lowest model layer air temperature in K |
| hprif | topographic standard deviation in m |
| semis_lnd | surface LW emissivity in fraction over land |
| semis_ice | surface LW emissivity in fraction over ice |
| semis_wat | surface LW emissivity in fraction over water |
| IMAX | array horizontal dimension |
| fracl | land fraction for emissivity and albedo calculation |
| fraco | ocean fraction for emissivity of albedo calculation |
| fraci | ice fraction for emissivity of albedo calculation |
| icy | flag for ice surfce |
| semisbase | baseline surface LW emissivity in fraction |
| sfcemis | (IMAX), surface emissivity |
Definition at line 753 of file radiation_surface.f.
| subroutine, public module_radiation_surface::sfc_init | ( | type(mpi_comm), intent(in) | mpicomm, |
| integer, intent(in) | mpirank, | ||
| integer, intent(in) | mpiroot, | ||
| integer, intent(in) | ialbflg, | ||
| integer, intent(in) | iemsflg, | ||
| character(len=26), intent(in) | semis_file, | ||
| real(kind=kind_phys), intent(in) | con_pi, | ||
| character(len=*), intent(out) | errmsg, | ||
| integer, intent(out) | errflg | ||
| ) |
This subroutine is the initialization program for surface radiation related quantities (albedo, emissivity, etc.)
Definition at line 143 of file radiation_surface.f.
| real (kind=kind_phys), parameter, public module_radiation_surface::epsln = 1.0e-6 |
Definition at line 127 of file radiation_surface.f.
| real (kind=kind_phys), parameter, public module_radiation_surface::f_one = 1.0 |
Definition at line 126 of file radiation_surface.f.
| real (kind=kind_phys), parameter, public module_radiation_surface::f_zero = 0.0 |
Definition at line 125 of file radiation_surface.f.
| integer, parameter, public module_radiation_surface::imxems = 360 |
Definition at line 123 of file radiation_surface.f.
| integer, parameter, public module_radiation_surface::jmxems = 180 |
Definition at line 124 of file radiation_surface.f.