106 '$Id: CRTM_SpcCoeff.f90 60152 2015-08-13 19:19:13Z paul.vandelst@noaa.gov $' 108 INTEGER,
PARAMETER ::
ml = 256
207 Sensor_ID , & ! Input
208 File_Path , & ! Optional input
209 Quiet , & ! Optional input
210 Process_ID , & ! Optional input
214 CHARACTER(*),
INTENT(IN) :: sensor_id(:)
215 CHARACTER(*),
OPTIONAL,
INTENT(IN) :: file_path
216 LOGICAL ,
OPTIONAL,
INTENT(IN) :: quiet
217 INTEGER ,
OPTIONAL,
INTENT(IN) :: process_id
218 INTEGER ,
OPTIONAL,
INTENT(IN) :: output_process_id
222 CHARACTER(*),
PARAMETER :: routine_name =
'CRTM_SpcCoeff_Load' 224 CHARACTER(ML) :: msg, pid_msg
225 CHARACTER(ML) :: path
226 CHARACTER(ML) :: spccoeff_file
228 INTEGER :: alloc_stat
229 INTEGER :: n, n_sensors
234 IF (
PRESENT(file_path) )
THEN 235 path = adjustl(file_path)
241 IF (
PRESENT(quiet) ) noisy = .NOT. quiet
243 IF ( noisy .AND.
PRESENT(process_id) .AND.
PRESENT(output_process_id) )
THEN 244 IF ( process_id /= output_process_id ) noisy = .false.
247 IF (
PRESENT(process_id) )
THEN 248 WRITE( pid_msg,
'("; Process ID: ",i0)' ) process_id
255 n_sensors =
SIZE(sensor_id)
256 ALLOCATE(
sc(n_sensors), stat = alloc_stat )
257 IF ( alloc_stat /= 0 )
THEN 259 WRITE( msg,
'("SpcCoeff structure array allocation failed. STAT=",i0)') alloc_stat
260 CALL display_message( routine_name, trim(msg)//trim(pid_msg), err_stat );
RETURN 266 spccoeff_file = trim(path)//trim(adjustl(sensor_id(n)))//
'.SpcCoeff.bin' 270 quiet = .NOT. noisy )
271 IF ( err_stat /=
success )
THEN 272 WRITE( msg,
'("Error reading SpcCoeff file #",i0,", ",a)') n, trim(spccoeff_file)
273 CALL display_message( routine_name, trim(msg)//trim(pid_msg), err_stat );
RETURN 327 INTEGER,
OPTIONAL,
INTENT(IN) :: process_id
331 CHARACTER(*),
PARAMETER :: routine_name =
'CRTM_SpcCoeff_Destroy' 333 CHARACTER(ML) :: msg, pid_msg
334 INTEGER :: alloc_stat
339 IF (
PRESENT(process_id) )
THEN 340 WRITE( pid_msg,
'("; Process ID: ",i0)' ) process_id
350 msg =
'Error deallocating SpcCoeff shared data structures'//trim(pid_msg)
357 DEALLOCATE(
sc, stat = alloc_stat )
358 IF ( alloc_stat /= 0 )
THEN 360 WRITE( msg,
'("Error deallocating SpcCoeff structure array. STAT=",i0)') alloc_stat
361 CALL display_message( routine_name, trim(msg)//trim(pid_msg), err_stat );
RETURN 390 isloaded =
ALLOCATED(
sc)
integer, parameter, public lc_polarization
integer, parameter, public second_stokes_component
integer, parameter, public invalid_polarization
integer function, public crtm_spccoeff_destroy(Process_ID)
integer, parameter, public failure
logical function, public crtm_spccoeff_isloaded()
integer, parameter, public warning
elemental logical function, public spccoeff_iszeeman(SpcCoeff, ChannelIndex)
integer, parameter, public hl_polarization
character(*), dimension(0:n_polarization_types), parameter, public polarization_type_name
elemental subroutine, public spccoeff_destroy(SpcCoeff)
integer function, public spccoeff_binary_readfile(Filename, SpcCoeff, Quiet, Debug)
integer, parameter, public third_stokes_component
integer, parameter, public plus45l_polarization
integer, parameter, public hl_mixed_polarization
subroutine, public crtm_reset_max_nchannels()
elemental logical function, public spccoeff_ismicrowavesensor(SpcCoeff)
elemental logical function, public spccoeff_isinfraredsensor(SpcCoeff)
elemental logical function, public spccoeff_isvisiblesensor(SpcCoeff)
character(*), parameter module_version_id
integer, parameter, public vl_mixed_polarization
integer, parameter, public first_stokes_component
integer, parameter, public vl_polarization
recursive subroutine, public display_message(Routine_Name, Message, Error_State, Message_Log)
elemental logical function, public spccoeff_issolar(SpcCoeff, ChannelIndex)
subroutine, public crtm_set_max_nchannels(Value)
integer, parameter, public intensity
integer, parameter, public fourth_stokes_component
integer function, public crtm_spccoeff_load(Sensor_ID, File_Path, Quiet, Process_ID, Output_Process_ID)
type(spccoeff_type), dimension(:), allocatable, save, public sc
integer, parameter, public unpolarized
elemental logical function, public spccoeff_isultravioletsensor(SpcCoeff)
integer, parameter, public minus45l_polarization
integer, parameter, public n_polarization_types
integer, parameter, public rc_polarization
integer, parameter, public success
elemental logical function, public spccoeff_associated(SpcCoeff)