TABLE OF CONTENTS
- MLT_RSS/AMSU_Level_1B.f90/compare_header_calibration_data_for_critical_changes
- MLT_RSS/AMSU_Level_1B.f90/decode_amsu_l1b_orbit_file_header
- MLT_RSS/AMSU_Level_1B.f90/decode_amsu_l1b_orbit_scan
- MLT_RSS/AMSU_Level_1B.f90/decode_calibration_data
- MLT_RSS/AMSU_Level_1B.f90/encode_amsu_l1b_orbit_file_header
- MLT_RSS/AMSU_Level_1B.f90/get_temps_from_L1B_scan
- MLT_RSS/AMSU_Level_1B.f90/read_AMSU_Header_Data_List
- MLT_RSS/AMSU_Level_1B.f90/read_AMSU_L1A_orbit_file
- MLT_RSS/AMSU_Level_1B.f90/read_AMSU_L1B_orbit_file
- MLT_RSS/AMSU_Level_1B.f90/read_AMSU_L1B_orbit_file_header
- MLT_RSS/AMSU_Level_1B.f90/write_AMSU_Header_Data_List
- MLT_RSS/AMSU_Level_1B.f90/write_AMSU_L1B_orbit_file
- MLT_RSS/AMSU_Level_1B.f90/zero_amsu_l1b_orbit_file_header
- MLT_RSS/AMSU_Level_1B.f90/zero_amsu_l1b_scan
- MLT_RSS/AMSU_Level_1B.f90
MLT_RSS/AMSU_Level_1B.f90/compare_header_calibration_data_for_critical_changes [ Subroutines ]
[ Top ] [ Subroutines ]
NAME
compare_header_calibration_data_for_critical_changes
PURPOSE
compares two sets of header data for important (i.e. calibration related) changes
INPUTS
type(AMSU_A_Data_to_Keep_from_Header) :: calibration_data ! calibration data from new file type(AMSU_A_Data_to_Keep_from_Header) :: calibration_data_last_file ! calibration data from last file logical :: write_log ! set to true to write results to log file
OUTPUTS
logical :: change_critical ! set to true if important change is detected logical :: header_is_nonsense ! set to true if new header is garbled
USAGE
call compare_header_calibration_data_for_critical_changes(calibration_data,calibration_data_last_file,change_critical,header_is_nonsense,write_log)
MLT_RSS/AMSU_Level_1B.f90/decode_amsu_l1b_orbit_file_header [ Subroutines ]
[ Top ] [ Subroutines ]
NAME
decode_amsu_l1b_orbit_file_header
PURPOSE
Decodes header data from binary form to structured form
INPUTS
character(len=2560) :: header ! orbit header data in binary form
OUTPUTS
type(amsu_L1B_orbit_header) :: amsu_orbit_header ! orbit header data in structured form
USAGE
call encode_amsu_l1b_orbit_file_header(header,amsu_orbit_header)
MLT_RSS/AMSU_Level_1B.f90/decode_amsu_l1b_orbit_scan [ Subroutines ]
[ Top ] [ Subroutines ]
NAME
decode_amsu_l1b_orbit_scan
PURPOSE
Decodes scan data from binary form to structured form
INPUTS
character(len = AMSU_LEVEL_1_RECORD_LENGTH) :: raw_scan ! orbit scan data in binary form
OUTPUTS
type(AMSU_A_L1B_swath_Data) :: AMSU_L1B_scan ! orbit scan data in structured form integer(4) :: error 1 error flag, set to 0 if all OK
USAGE
call decode_amsu_L1B_orbit_scan(raw_scan,AMSU_L1B_scan,error)
MLT_RSS/AMSU_Level_1B.f90/decode_calibration_data [ Subroutines ]
[ Top ] [ Subroutines ]
NAME
decode_calibration_data
PURPOSE
Decodes AMSU calibration data from binary form to structured form
INPUTS
character(len = 462) :: calibration_data ! calibration data in binary form
OUTPUTS
type(AMSU_A_L1B_Calibration_Data) :: decoded_calibration_data ! calibration data in structured form
USAGE
call decode_calibration_data(calibration_data,decoded_calibration_data)
MLT_RSS/AMSU_Level_1B.f90/encode_amsu_l1b_orbit_file_header [ Subroutines ]
[ Top ] [ Subroutines ]
NAME
encode_amsu_l1b_orbit_file_header
PURPOSE
Encodes header data into binary form for writing
INPUTS
type(amsu_L1B_orbit_header) :: amsu_orbit_header ! orbit header data in structured form
OUTPUTS
character(len=2560) :: header ! orbit header data in binary form
USAGE
call encode_amsu_l1b_orbit_file_header(amsu_orbit_header,header)
MLT_RSS/AMSU_Level_1B.f90/get_temps_from_L1B_scan [ Subroutines ]
[ Top ] [ Subroutines ]
NAME
get_temps_from_L1B_scan
PURPOSE
extracts intrument temperature data from L1B scan
INPUTS
type(AMSU_A_L1B_Swath_Data) :: L1B_scan type(AMSU_A_Data_to_Keep_from_Header) :: calibration_data :: write_log ! set to true to write results to log file
OUTPUTS
real(4),dimension(45) :: instrument_temperatures ! array of instrument temperatures integer(4) :: error ! error flag
USAGE
call get_temps_from_L1B_scan( L1B_scan,Calibration_data,instrument_temperatures,error)
MLT_RSS/AMSU_Level_1B.f90/read_AMSU_Header_Data_List [ Subroutines ]
[ Top ] [ Subroutines ]
NAME
read_AMSU_Header_Data_List
PURPOSE
reads list of unique header data (includes calibration data)
INPUTS
character(len=7) :: satellite_name ! satellite name (NOAA-15, etc)
OUTPUTS
integer(4) :: num_in_list ! number of unique headers type(AMSU_A_Data_to_Keep_from_Header),dimension(15) :: AMSU_header_data_list ! list of header data, including calibration data
USAGE
read_AMSU_Header_Data_List(satellite_name,num_in_list,header_list)
MLT_RSS/AMSU_Level_1B.f90/read_AMSU_L1A_orbit_file [ Subroutines ]
[ Top ] [ Subroutines ]
NAME
read_AMSU_L1A_orbit_file
PURPOSE
reads AMSU_L1A_orbit_file
INPUTS
character(len=7) :: satellite_name integer(4) :: orbit_number
OUTPUTS
type(amsu_L1B_orbit_header) :: amsu_orbit_header ! AMSU L1B header in structured form type(amsu_L1A_orbit_data) :: amsu_orbit_data ! AMSU L1A orbit data integer(4) :: error ! error flag
USAGE
call read_AMSU_L1A_orbit_file(satellite_name,orbit_number,amsu_orbit_header,amsu_orbit_data,error)
MLT_RSS/AMSU_Level_1B.f90/read_AMSU_L1B_orbit_file [ Subroutines ]
[ Top ] [ Subroutines ]
NAME
read_AMSU_L1B_orbit_file
PURPOSE
reads AMSU_L1B_orbit_file
INPUTS
character(len=7) :: satellite_name ! satellite name (NOAA-15, etc) integer(4) :: orbit_number ! AMSU orbit number
OUTPUTS
type(amsu_L1B_orbit_header) :: amsu_orbit_header ! orbit header in structured form type(amsu_L1B_orbit_data) :: amsu_orbit_data ! orbit data in structured form integer(4) :: error ! error flag
USAGE
call read_AMSU_L1A_orbit_file(satellite_name,orbit_number,amsu_orbit_header,amsu_orbit_data,error)
MLT_RSS/AMSU_Level_1B.f90/read_AMSU_L1B_orbit_file_header [ Subroutines ]
[ Top ] [ Subroutines ]
NAME
read_AMSU_L1B_orbit_file_header
PURPOSE
reads header from AMSU_L1B_orbit_file
INPUTS
character(len=7) :: satellite_name ! satellite name (NOAA-15, etc) integer(4) :: orbit_number ! AMSU orbit number
OUTPUTS
type(amsu_L1B_orbit_header) :: amsu_orbit_header ! orbit header in structured form integer(4) :: error ! error flag
USAGE
call read_AMSU_L1A_orbit_file_header(satellite_name,orbit_number,amsu_orbit_header,error)
MLT_RSS/AMSU_Level_1B.f90/write_AMSU_Header_Data_List [ Subroutines ]
[ Top ] [ Subroutines ]
NAME
write_AMSU_Header_Data_List
PURPOSE
writes list of unique header data (includes calibration data)
INPUTS
character(len=7) :: satellite_name ! satellite name (NOAA-15, etc) integer(4) :: num_in_list ! number of unique headers type(AMSU_A_Data_to_Keep_from_Header),dimension(15) :: AMSU_header_data_list ! list of header data, including calibration data
USAGE
write_AMSU_Header_Data_List(satellite_name,num_in_list,header_list)
MLT_RSS/AMSU_Level_1B.f90/write_AMSU_L1B_orbit_file [ Subroutines ]
[ Top ] [ Subroutines ]
NAME
write_AMSU_L1B_orbit_file
PURPOSE
writes AMSU_L1B_orbit_file
INPUTS
character(len=7) :: satellite_name ! satellite name (NOAA-15, etc) integer(4) :: orbit_number ! AMSU orbit number type(amsu_L1B_orbit_data) :: amsu_orbit_data ! orbit data in structured form integer(4) :: num_scans ! number of scans (not used) real(8) :: eqx_rd_2000 ! ascending node crossing time type(AMSU_A_Data_to_Keep_from_Header),dimension(15) :: AMSU_header_data_list ! list of header data, including calibration data
OUTPUTS
integer(4),dimension(10) :: tot_err ! accumulated errors, sorted by type. integer(4) :: error ! error flag
USAGE
call write_AMSU_L1A_orbit_file( satellite_name,orbit_number,amsu_orbit_data,num_scans,eqx_rd_2000,AMSU_header_data_list,tot_err,error)
MLT_RSS/AMSU_Level_1B.f90/zero_amsu_l1b_orbit_file_header [ Subroutines ]
[ Top ] [ Subroutines ]
NAME
zero_amsu_l1b_orbit_file_header
PURPOSE
Zeros header data from binary form to structured form
INPUTS_OUTPUTS
type(amsu_L1B_orbit_header) :: amsu_orbit_header ! orbit header data in structured form
USAGE
call zero_amsu_l1b_orbit_file_header(amsu_orbit_header)
MLT_RSS/AMSU_Level_1B.f90/zero_amsu_l1b_scan [ Subroutines ]
[ Top ] [ Subroutines ]
NAME
zero_amsu_l1b_scan
PURPOSE
Zeros AMSU L1B scan data
INPUTS_OUTPUTS
type(AMSU_A_L1B_Swath_Data) :: amsu_L1B_scan ! L1B scan data in structured form
USAGE
zero_amsu_l1b_scan(amsu_L1B_scan)
MLT_RSS/AMSU_Level_1B.f90 [ Methods ]
NAME
AMSU_Level_1B.f90
PURPOSE
Module for read, writing and storing AMSU L1B data
DESCRIPTION
Module for read, writing and storing AMSU L1B data
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE COPYRIGHT 2012 REMOTE SENSING SYSTEMS. THEY ARE PROVIDED FOR INFORMATIONAL AND ALGORITHM VERIFICATION PURPOSES ONLY AND MAY NOT BE USED IN WHOLE OR IN PART FOR ANY OTHER PURPOSE WITHOUT WRITTEN PERMISSION FROM REMOTE SENSING SYSTEMS. THEY ARE FURNISHED "AS IS." THE AUTHORS, THE UNITED STATES GOVERNMENT, ITS INSTRUMENTALITIES, OFFICERS, EMPLOYEES, AND AGENTS MAKE NO WARRANTY, EXPRESS OR IMPLIED, AS TO THE USEFULNESS OF THE SOFTWARE AND DOCUMENTATION FOR ANY PURPOSE. THEY ASSUME NO RESPONSIBILITY (1) FOR THE USE OF THE SOFTWARE AND DOCUMENTATION; OR (2) TO PROVIDE TECHNICAL SUPPORT TO USERS.
HISTORY
8/15/2012 Initial Version prepared for NCDC
USAGE
use AMSU_Level_1B