TABLE OF CONTENTS


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 ]

[ Top ] [ 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