53 '$Id: CRTM_SEcategory.f90 60152 2015-08-13 19:19:13Z paul.vandelst@noaa.gov $' 55 INTEGER,
PARAMETER ::
ml = 256
156 REAL(fp) ,
INTENT(IN) :: frequency
157 INTEGER ,
INTENT(IN) :: surface_type
158 REAL(fp) ,
INTENT(OUT) :: emissivity
163 CHARACTER(*),
PARAMETER :: routine_name =
'SEcategory_Emissivity' 166 REAL(fp) :: reflectance
171 IF ( surface_type < 1 .OR. &
172 surface_type > secategory%n_Surface_Types )
THEN 175 msg =
'Invalid surface type index specified' 179 IF ( .NOT. secategory%Surface_Type_IsValid(surface_type) )
THEN 182 msg =
'Invalid surface type index specified for '//&
183 trim(secategory%Classification_Name)//
' classification' 189 ivar%x_int =
max(
min(secategory%Frequency(secategory%n_Frequencies),&
191 secategory%Frequency(1))
192 CALL find_index(secategory%Frequency, ivar%x_int, ivar%i1, ivar%i2, ivar%x_outbound)
193 ivar%x = secategory%Frequency(ivar%i1:ivar%i2)
197 CALL lpoly( ivar%x, ivar%x_int, &
202 CALL interp_1d( secategory%Reflectance(ivar%i1:ivar%i2, surface_type), ivar%xlp, reflectance )
203 emissivity =
one - reflectance
integer, parameter, public failure
real(fp), parameter, public zero
integer, parameter, public fp
character(*), parameter module_version_id
subroutine, public interp_1d_ad(z, ulp, z_int_AD, z_AD, ulp_AD)
subroutine, public clear_lpoly(p)
subroutine, public lpoly_ad(x, x_int, p, p_AD, x_AD, x_int_AD)
real(fp), parameter, public one
recursive subroutine, public display_message(Routine_Name, Message, Error_State, Message_Log)
subroutine, public interp_1d_tl(z, ulp, z_TL, ulp_TL, z_int_TL)
integer function, public secategory_emissivity(SEcategory, Frequency, Surface_Type, Emissivity, iVar)
subroutine, public lpoly(x, x_int, p)
integer, parameter, public npts
subroutine, public lpoly_tl(x, x_int, p, x_TL, x_int_TL, p_TL)
subroutine, public interp_1d(z, ulp, z_int)
integer, parameter, public success