69 '$Id: CRTM_MW_Ice_SfcOptics.f90 60152 2015-08-13 19:19:13Z paul.vandelst@noaa.gov $' 167 GeometryInfo, & ! Input
168 SensorIndex , & ! Input
169 ChannelIndex, & ! Input
171 result( error_status )
175 INTEGER,
INTENT(IN) :: sensorindex
176 INTEGER,
INTENT(IN) :: channelindex
179 INTEGER :: error_status
181 CHARACTER(*),
PARAMETER :: routine_name =
'Compute_MW_Ice_SfcOptics' 182 REAL(fp),
PARAMETER :: default_emissivity = 0.92_fp
183 REAL(fp),
PARAMETER :: not_used(4) = -99.9_fp
184 INTEGER,
PARAMETER :: amsre_v_index(6) = (/1, 3, 5, 7, 9, 11/)
185 INTEGER,
PARAMETER :: amsre_h_index(6) = (/2, 4, 6, 8, 10, 12/)
186 INTEGER,
PARAMETER :: amsua_index(4) = (/1, 2, 3, 15/)
187 INTEGER,
PARAMETER :: ssmis_index(8) = (/13,12,14,16,15,17,18,8/)
190 REAL(fp) :: sensor_zenith_angle
199 sensor_type:
SELECT CASE( surface%SensorData%WMO_Sensor_ID )
203 DO i = 1, sfcoptics%n_Angles
205 sfcoptics%Angle(i), &
206 sc(sensorindex)%Frequency(channelindex), &
207 surface%Ice_Temperature, &
208 surface%SensorData%Tb(amsua_index), &
210 sfcoptics%Emissivity(i,2), &
211 sfcoptics%Emissivity(i,1) )
216 DO i = 1, sfcoptics%n_Angles
218 sfcoptics%Angle(i), &
219 sc(sensorindex)%Frequency(channelindex), &
220 surface%Ice_Temperature, &
222 surface%SensorData%Tb(1:2), &
223 sfcoptics%Emissivity(i,2), &
224 sfcoptics%Emissivity(i,1) )
229 DO i = 1, sfcoptics%n_Angles
231 sfcoptics%Angle(i), &
232 sc(sensorindex)%Frequency(channelindex), &
233 surface%Ice_Temperature, &
234 surface%SensorData%Tb(1:2), &
235 sfcoptics%Emissivity(i,2), &
236 sfcoptics%Emissivity(i,1) )
241 DO i = 1, sfcoptics%n_Angles
243 sfcoptics%Angle(i), &
244 surface%SensorData%Tb(amsre_v_index), &
245 surface%SensorData%Tb(amsre_h_index), &
246 surface%Ice_Temperature, &
247 surface%Ice_Temperature, &
248 sfcoptics%Emissivity(i,2), &
249 sfcoptics%Emissivity(i,1) )
254 DO i = 1, sfcoptics%n_Angles
256 sfcoptics%Angle(i), &
257 surface%Ice_Temperature, &
258 surface%SensorData%Tb, &
259 surface%Ice_Thickness, &
260 sfcoptics%Emissivity(i,2), &
261 sfcoptics%Emissivity(i,1) )
266 DO i = 1, sfcoptics%n_Angles
268 sfcoptics%Angle(i), &
269 surface%Ice_Temperature, &
270 surface%SensorData%Tb(ssmis_index), &
271 surface%Ice_Thickness, &
272 sfcoptics%Emissivity(i,2), &
273 sfcoptics%Emissivity(i,1) )
278 DO i = 1, sfcoptics%n_Angles
285 sfcoptics%Emissivity(i,1:2) = default_emissivity
288 END SELECT sensor_type
293 sfcoptics%Reflectivity =
zero 294 DO i = 1, sfcoptics%n_Angles
295 sfcoptics%Reflectivity(i,1,i,1) =
one-sfcoptics%Emissivity(i,1)
296 sfcoptics%Reflectivity(i,2,i,2) =
one-sfcoptics%Emissivity(i,2)
354 CHARACTER(*),
PARAMETER :: routine_name =
'Compute_MW_Ice_SfcOptics_TL' 364 sfcoptics_tl%Reflectivity =
zero 365 sfcoptics_tl%Emissivity =
zero 425 CHARACTER(*),
PARAMETER :: routine_name =
'Compute_MW_Ice_SfcOptics_AD' 435 sfcoptics_ad%Reflectivity =
zero 436 sfcoptics_ad%Emissivity =
zero
integer, parameter, public wmo_ssmi
subroutine, public nesdis_ssmi_siceem(frequency, Angle, Ts, tb, Depth, Emissivity_H, Emissivity_V)
integer, parameter, public wmo_mhs
subroutine, public nesdis_sice_phy_em(Frequency, Angle, Ts_ice, Salinity, Emissivity_H, Emissivity_V)
integer, parameter, public wmo_amsre
real(fp), parameter, public zero
subroutine, public nesdis_ssmis_iceem(frequency, Angle, Ts, tb, Depth, Emissivity_H, Emissivity_V)
integer, parameter, public fp
character(*), parameter module_version_id
integer, parameter, public wmo_ssmis
integer, parameter, public wmo_msu
real(fp), parameter, public one
integer, parameter, public wmo_amsua
integer function, public compute_mw_ice_sfcoptics_ad(SfcOptics_AD)
subroutine, public nesdis_iceem_amsu(Satellite_Angle, User_Angle, frequency, Ts, tba, tbb, Emissivity_H, Emissivity_V)
type(spccoeff_type), dimension(:), allocatable, save, public sc
integer, parameter, public wmo_amsub
integer function, public compute_mw_ice_sfcoptics(Surface, GeometryInfo, SensorIndex, ChannelIndex, SfcOptics)
integer function, public compute_mw_ice_sfcoptics_tl(SfcOptics_TL)
subroutine, public nesdis_amsre_ssiceem(frequency, User_Angle, tv, th, Ts, Tice, Emissivity_H, Emissivity_V)
integer, parameter, public success
elemental subroutine, public crtm_geometryinfo_getvalue(gInfo, Geometry, iFOV, Longitude, Latitude, Surface_Altitude, Sensor_Scan_Angle, Sensor_Zenith_Angle, Sensor_Azimuth_Angle, Source_Zenith_Angle, Source_Azimuth_Angle, Flux_Zenith_Angle, Year, Month, Day, Distance_Ratio, Sensor_Scan_Radian, Sensor_Zenith_Radian, Sensor_Azimuth_Radian, Secant_Sensor_Zenith, Cosine_Sensor_Zenith, Source_Zenith_Radian, Source_Azimuth_Radian, Secant_Source_Zenith, Flux_Zenith_Radian, Secant_Flux_Zenith, Trans_Zenith_Radian, Secant_Trans_Zenith, AU_ratio2)
subroutine, public nesdis_iceem_mhs(Satellite_Angle, User_Angle, frequency, Ts, tbb, Emissivity_H, Emissivity_V)