68 '$Id: CRTM_Predictor_Define.f90 60152 2015-08-13 19:19:13Z paul.vandelst@noaa.gov $' 70 INTEGER,
PARAMETER ::
ml = 256
79 LOGICAL :: is_allocated = .false.
136 status = self%Is_Allocated
165 self%Is_Allocated =.false.
217 SensorIndex , & ! Input
221 INTEGER,
INTENT(IN) :: n_layers
222 INTEGER,
INTENT(IN) :: sensorindex
223 INTEGER,
OPTIONAL,
INTENT(IN) :: savefwv
227 LOGICAL :: allocate_success
231 IF ( n_layers < 1 )
RETURN 235 idx =
tc%Sensor_LoIndex(sensorindex)
236 SELECT CASE(
tc%Algorithm_ID(sensorindex) )
244 odas_max_n_predictors , &
245 odas_max_n_absorbers , &
246 maxval(
tc%ODAS(idx)%Max_Order) )
252 i =
tc%ODPS(idx)%Group_Index
254 no_optran = .NOT. ((
tc%ODPS(idx)%n_OCoeffs > 0) .AND.
allow_optran)
258 tc%ODPS(idx)%n_Layers , &
262 no_optran = no_optran )
271 tc%ODPS(idx)%n_Layers , &
274 no_optran = no_optran )
275 allocate_success = allocate_success .AND. &
276 pafv_associated(self%ODPS%PAFV)
283 SELECT CASE(
tc%ODSSU(idx)%subAlgorithm )
290 odas_max_n_predictors, &
291 odas_max_n_absorbers , &
297 i =
tc%ODSSU(idx)%ODPS(1)%Group_Index
299 no_optran = .NOT. ((
tc%ODSSU(idx)%ODPS(1)%n_OCoeffs > 0) .AND.
allow_optran)
303 tc%ODSSU(idx)%ODPS(1)%n_Layers, &
307 no_optran = no_optran )
316 tc%ODSSU(idx)%ODPS(1)%n_Layers, &
319 no_optran = no_optran )
320 allocate_success = allocate_success .AND. &
321 pafv_associated(self%ODPS%PAFV)
328 IF ( .NOT. allocate_success )
RETURN 332 idx =
tc%ZSensor_LoIndex(sensorindex)
333 zeeman_block:
IF ( idx > 0 )
THEN 334 i =
tc%ODZeeman(idx)%Group_index
340 tc%ODZeeman(idx)%n_Layers, &
344 no_optran = no_optran )
349 IF (
PRESENT(savefwv) )
THEN 352 self%ODZeeman%PAFV , &
353 tc%ODZeeman(idx)%n_Layers, &
356 no_optran = no_optran )
357 allocate_success = allocate_success .AND. &
358 pafv_associated(self%ODZeeman%PAFV)
361 IF ( .NOT. allocate_success )
RETURN 366 self%Is_Allocated = .true.
396 WRITE(*,
'(1x,"CRTM_Predictor CONTAINER OBJECT -- BEGIN")')
406 WRITE(*,
'(1x,"CRTM_Predictor CONTAINER OBJECT -- END")')
integer, parameter, public failure
pure integer function, public odps_get_n_components(Group_Index)
subroutine, public crtm_predictor_inspect(self)
elemental subroutine, public odas_predictor_create(self, n_Layers, n_Predictors, n_Absorbers, n_Orders)
integer, parameter, public fp
pure integer function, public odps_get_n_absorbers(Group_Index)
integer, parameter, public max_n_absorbers
integer, parameter, public max_n_predictors
elemental subroutine, public odps_predictor_destroy(self)
elemental subroutine, public crtm_predictor_create(self, n_Layers, SensorIndex, SaveFWV)
subroutine, public odps_predictor_inspect(self)
pure integer function, public get_numofzcomponents()
integer, parameter, public max_n_orders
subroutine, public odas_predictor_inspect(self)
character(*), parameter module_version_id
recursive subroutine, public display_message(Routine_Name, Message, Error_State, Message_Log)
elemental subroutine, public odas_predictor_destroy(self)
pure integer function, public get_numofzpredictors(gIndex)
logical, parameter, public allow_optran
integer, parameter, public odssu_algorithm
elemental subroutine, public odps_predictor_create(self, n_Layers, n_User_Layers, n_Components, n_Predictors, No_OPTRAN)
elemental subroutine, public crtm_predictor_destroy(self)
pure integer function, public odps_get_max_n_predictors(Group_Index)
integer, parameter, public odps_algorithm
integer, parameter, public odas_algorithm
elemental logical function, public odps_predictor_associated(self)
elemental logical function, public odas_predictor_associated(self)
pure integer function, public get_numofzabsorbers()
pure logical function, public odps_get_savefwvflag()
elemental logical function, public crtm_predictor_associated(self)
type(taucoeff_type), save, public tc
integer, parameter, public success