[ Top ] [ Programs ]
NAME
module amsu_zonal
PURPOSE
psuedoclass that defines and manipulates zonal means of AMSU data
DESCRIPTION
psuedoclass that defines and manipulates zonal means of AMSU data Components the pseudoclass defines a zonal average type type amsu_zonal_ave_rec type (date_str) :: begin_date type (date_str) :: end_date type(ave),dimension(NUM_ZONES,NUM_AMSU_FOVS,NUM_NODES,NUM_SURFACES+1) :: dat end type amsu_zonal_ave_rec and a second type that contains the same information, but with the date in rd2000 form. This is easier to write directly to a binary file. type amsu_zonal_output_structure integer(4) :: pentad_num real(8) :: begin_rd real(8) :: end_rd real(4),dimension(4,NUM_ZONES,NUM_AMSU_FOVS,NUM_NODES,NUM_SURFACES+1) :: dat end type amsu_zonal_output_structure
ROUTINES
zero_zonal_ave_rec(z) fills zonal average record z with initial values. put_in_zone(x,lon,lat,date,zone,fov,node,surf,z) adds a single observation to a zonal average record z
INPUTS
lon longitude of observation lat latitude of observation date date of observation, in data_str form fov field of view node ascending or descending z zonal average record to add to
OUTPUTS
zone zonal index of choosen zone surf surface type (land or ocean) of location z updated zonal average record put_scan_in_zone(scan,ok,z,chan,corr_level) adds a single MSU scan to a zonal average record
INPUTS
scan MSU scan structure ok array of fov quality flags z zonal average record to add to chan msu_channel corr_level msu correction level
OUTPUTS
z updated zonal average record put_scan_in_zone_xswath(scan,ok,z,chan,corr_level) adds a single cross-swath difference to a zonal average. deprecated. adds a single MSU scan to a zonal average record
INPUTS
scan MSU scan structure ok array of fov quality flags z zonal average record to add to chan msu_channel corr_level msu correction level
OUTPUTS
z updated zonal average record update_zonal_ave_rec(z) updates a zonal average record -- i.e computed averages from totals so they are consistent
INPUTS
z zonal average record to add to
OUTPUTS
z updated zonal average record write_zonal_ave_rec(z,lu,full,error) writes a zonal average record in standard binary form.
INPUTS
z zonal average record to write lu logical unit to write to full set to true to write "full" set of data
OUTPUTS
error error flag -- if non zero, write was not successful write_zonal_ave_rec_direct(pentad,offset,z,lu,error) writes a zonal average record in standard binary form to fortran direct access file.
INPUTS
pentad pentad number to write data to. offset beginning pentad number in file z zonal average record to write lu logical unit to write to
OUTPUTS
error error flag -- if non zero, write was not successful
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
9/21/2012 Initial Version prepared for NCDC
USAGE
use zonal
[ Top ] [ Programs ]
NAME
amsu_put_in_zone
PURPOSE
adds a single observation to a zonal average record
INPUTS
real(4) :: x ! The number to be added to average real(4) :: lon ! The longitude of the observation real(4) :: lat ! The latitude of the observation type(date_str) :: date ! Time and Date of the observation integer(4) :: zone ! zonal index integer(4) :: fov ! field of view index integer(4) :: node ! nodal index (asc = 1, desc = 2) integer(4) :: surf ! surface type index (1 = sea, 2 = land 3 = both) integer(4) :: lu_lug ! logical unit of log file
INPUTS_OUTPUTS
type(amsu_zonal_ave_rec),intent(INOUT) :: z ! zonal everage record to be added to
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
9/21/2012 Initial Version prepared for NCDC
USAGE
call amsu_put_in_zone(x,lon,lat,date,zone,fov,node,surf,z,lu_log)
[ Top ] [ Programs ]
NAME
amsu_update_zonal_ave_rec
PURPOSE
updates average values in zonal average rec to reflect new total values
INPUTS_OUTPUTS
type(amsu_zonal_ave_rec),intent(INOUT) :: z ! zonal everage record to be updated
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
9/21/2012 Initial Version prepared for NCDC
USAGE
call amsu_update_zonal_ave_rec(z)
[ Top ] [ Programs ]
NAME
amsu_write_zonal_ave_rec
PURPOSE
writes data in a zonal average record to logical unit lu.
INPUTS
type(amsu_zonal_ave_rec),intent(INOUT) :: z ! zonal everage record to be written integer(4) :: lu ! logical unit to write to logical(4) :: full ! flag is true then write a more complete record, otherwise, write num,mean,stddev,loc_time only
OUTPUTS
integer(4) :: error ! error flag, if 0, everything is OK
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
9/21/2012 Initial Version prepared for NCDC
USAGE
call amsu_write_zonal_ave_rec(z,lu,.true.,error)
[ Top ] [ Programs ]
NAME
amsu_write_zonal_ave_rec_direct
PURPOSE
writes data in a zonal average record to direct access file at logical unit lu.
INPUTS
integer(4) :: pentad integer(4) :: offset type(amsu_zonal_ave_rec) :: z ! zonal everage record to be written integer(4) :: lu ! logical unit to write to
OUTPUTS
integer(4) :: error ! error flag, if 0, everything is OK
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
9/21/2012 Initial Version prepared for NCDC
USAGE
call amsu_write_zonal_ave_rec(pentad_number,offset,z,lu,error)
[ Top ] [ Programs ]
NAME
zero_zonal_ave_rec
PURPOSE
fills zonal average record z with initial values.
INPUTS_OUTPUTS
type(amsu_zonal_ave_rec),intent(INOUT) :: z ! zonal everage record to be zeroed
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
9/21/2012 Initial Version prepared for NCDC
USAGE
call zero_zonal_ave_rec(z)
[ Top ] [ Programs ]
NAME
logging
PURPOSE
pseudoclass for producing log files
DESCRIPTION
pseudoclass for producing log files.
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
9/21/2012 Initial Version prepared for NCDC
USAGE
use logging
[ Top ] [ Programs ]
NAME
module convert_date
PURPOSE
converts raw MSU data to type date_str
DESCRIPTION
converts raw MSU data to type date_str
INPUT
scan = type(msu_scan)
OUTPUT
scan = type(msu_scan)
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
2/21/2012 Initial Version prepared for NCDC
USAGE
call convert_date(scan)
[ Top ] [ Programs ]
NAME
module zonal
PURPOSE
psuedoclass that defines and manipulates zonal means of MSU/AMSU data
DESCRIPTION
psuedoclass that defines and manipulates zonal means of MSU/AMSU data Components the pseudoclass defines a zonal average type type zonal_ave_rec type (date_str) :: begin_date type (date_str) :: end_date type(ave),dimension(NUM_ZONES,NUM_FOVS,NUM_NODES,NUM_SURFACES+1) :: dat end type zonal_ave_rec explanation of the grid type flag:
ROUTINES
zero_zonal_ave_rec(z) fills zonal average record z with initial values. put_in_zone(x,lon,lat,date,zone,fov,node,surf,z) adds a single observation to a zonal average record z
INPUTS
lon longitude of observation lat latitude of observation date date of observation, in data_str form fov field of view node ascending or descending z zonal average record to add to
OUTPUTS
zone zonal index of choosen zone surf surface type (land or ocean) of location z updated zonal average record put_scan_in_zone(scan,ok,z,chan,corr_level) adds a single MSU scan to a zonal average record
INPUTS
scan MSU scan structure ok array of fov quality flags z zonal average record to add to chan msu_channel corr_level msu correction level
OUTPUTS
z updated zonal average record put_scan_in_zone_xswath(scan,ok,z,chan,corr_level) adds a single cross-swath difference to a zonal average. deprecated. adds a single MSU scan to a zonal average record
INPUTS
scan MSU scan structure ok array of fov quality flags z zonal average record to add to chan msu_channel corr_level msu correction level
OUTPUTS
z updated zonal average record update_zonal_ave_rec(z) updates a zonal average record -- i.e computed averages from totals so they are consistent
INPUTS
z zonal average record to add to
OUTPUTS
z updated zonal average record write_zonal_ave_rec(z,lu,full,error) writes a zonal average record in standard binary form.
INPUTS
z zonal average record to write lu logical unit to write to full set to true to write "full" set of data
OUTPUTS
error error flag -- if non zero, write was not successful write_zonal_ave_rec_direct(pentad,offset,z,lu,error) writes a zonal average record in standard binary form to fortran direct access file.
INPUTS
pentad pentad number to write data to. offset beginning pentad number in file z zonal average record to write lu logical unit to write to
OUTPUTS
error error flag -- if non zero, write was not successful
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
9/21/2012 Initial Version prepared for NCDC
USAGE
use zonal
[ Top ] [ Constants ]
NAME
AMSU_Constants.f90
PURPOSE
Module containing constants for AMSU processing
DESCRIPTION
Module containing constants for AMSU processing. Contains physical constants, file unit numbers, and constant related to satellite operation
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_Constants
[ Top ] [ Modules ]
NAME
AMSU_Diurnal.f90
PURPOSE
Module for performing diurnal adjustment to AMSU measurements
DESCRIPTION
Module for performing diurnal adjustment to AMSU measurements Uses a model derived diurnal climatology to make the adjustment
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_Diurnal
[ Top ] [ Subroutines ]
NAME
amsu_ccm3_diurnal_tb
PURPOSE
calculates diurnal value from diurnal climatology for given channel,fov,location,date and local_time
INPUTS
chan AMSU_CHANNEL fov AMSU Field of View lon longitude lat latitude date date, to find time of year, in date structure (date_str) defined in date_and_time.f90 local_time local time, defined in time structure (time_str) defined in date_and_time.f90
RETURNED VALUE
diur_tb interpolated value of dirunal Tb
USAGE
tb_diurnal = amsu_ccm3_diurnal_tb(chan,fov,lon,lat,date,local_time)
[ Top ] [ Subroutines ]
NAME
calculate_diurnal_correction
PURPOSE
Calculate Diurnal Correction for a single AMSU scan line
INPUTS
channel AMSU channel number
INPUTS_OUTPUTS
L2A_Scan Structure containing AMSU L2A Scan data
OUTPUTS
Error Error Flag. 0 if everything OK, not zero otherwise
USAGE
Call calculate_diurnal_correction(L2A_scan,channel,error)
[ Top ] [ Subroutines ]
NAME
read_amsu_ccm3_diurnal
PURPOSE
reads CCM3-derived AMSU Diurnal Climatology for the given AMSU channel
INPUTS
chan AMSU channel
OUTPUTS
error error flag. 0 if everything OK, -1 if invalid channel passed
REMARKS
loads climatology into the module variable diur_tb_sim. The number of the channel currently loaded is contained in channel_loaded
USAGE
call read_amsu_ccm3_diurnal(5,error)
[ Top ] [ Modules ]
NAME
AMSU_equator_crossing_times.f90
PURPOSE
Module for finding ascending node equator crossing times for NOAA and EUMETSAT satellites
DESCRIPTION
Module for finding ascending node equator crossing times for NOAA and EUMETSAT satellites
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_equator_crossing_times
[ Top ] [ Subroutines ]
NAME
AMSU_rev_num_from_rd_2000
PURPOSE
Calculates AMSU rev num from time in rd_2000 format
INPUTS
sat_num AMSU satellite number (10 = NOAA-15, 11 = NOAA-16, etc) rd_2000 Time in rd_2000 format
OUTPUTS
Error Error Flag. 0 if everything OK, not zero otherwise
RETURNED VALUE
AMSU orbit number corresponding to given time
USAGE
orbit_num = AMSU_rev_num_from_rd_2000(sat_num,rd_2000,error)
[ Top ] [ Subroutines ]
NAME
equator_crossing_rd_2000_from_AMSU_rev_num
PURPOSE
Calculate Diurnal Correction for a single AMSU scan line
INPUTS
sat_num AMSU satellite number (10 = NOAA-15, 11 = NOAA-16, etc) rev_num AMSU orbit number.
OUTPUTS
Error Error Flag. 0 if everything OK, not zero otherwise
RETURNED VALUE
ascending node eqaotor crossing time in rd_2000 format (days since midnight, jan 1, 2000) (real*8)
USAGE
crossing_time = equator_crossing_rd_2000_from_AMSU_rev_num(sat_num,rev_num,error)
[ Top ] [ Subroutines ]
NAME
load_NOAA_15_eqx_data
PURPOSE
reads equator crossing time data for NOAA-15 SIDE EFFECTS loads climatology into the module variable eq_x_time_NOAA_15, and the equator crossing longitude into eq_x_longitude_NOAA_15.
REMARKS
exactly analogous routines exist for the other NOAA and EUMETSAT satellites. (NOAA-16, etc.) These are: - load_NOAA_16_eqx_data - load_NOAA_17_eqx_data - load_NOAA_18_eqx_data - load_NOAA_19_eqx_data - load_METOP_A_eqx_data
USAGE
load_NOAA_15_eqx_data
[ Top ] [ Constants ]
NAME
AMSU_File_Locations.f90
PURPOSE
Module containing file locations for AMSU processing
DESCRIPTION
Module containing file locations for AMSU processing
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_File_Locations
[ Top ] [ Modules ]
NAME
AMSU_inventory
PURPOSE
AMSU_inventory psuedoclass
DESCRIPTION
pseudoclass for reading and writing AMSU orbit inventories
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
2/21/2012 Initial Version prepared for NCDC
USAGE
use msu_L2A_inventory
[ Top ] [ Subroutines ]
NAME
read_amsu_l1b_inventory_file(sat_num,inv,error)
PURPOSE
reads AMSU L1B Inventory file
INPUTS
sat_num AMSU satellite number (10 = NOAA-15, etc)
OUTPUTS
type(amsu_inventory_str) :: inv ! inventory of AMSU orbits in structured variable. integer(4) :: error ! error flag. 0 if all OK, -1 if out of bounds satellite number passed
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
2/21/2012 Initial Version prepared for NCDC
USAGE
read_amsu_l1b_inventory_file(sat_num,inv,error)
[ Top ] [ Subroutines ]
NAME
read_amsu_l1b_inventory_file_text
PURPOSE
reads AMSU L1B Inventory file from text format
INPUTS
sat_num AMSU satellite number (10 = NOAA-15, etc)
OUTPUTS
type(amsu_inventory_str) :: inv ! inventory of AMSU orbits in structured variable. integer(4) :: error ! error flag. 0 if all OK, -1 if out of bounds satellite number passed
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
2/21/2012 Initial Version prepared for NCDC
USAGE
call read_amsu_l1b_inventory_file_text(sat_num,inv,error)
[ Top ] [ Subroutines ]
NAME
read_amsu_L2A_inventory_file(sat_num,inv,error)
PURPOSE
reads AMSU L1B Inventory file in binary form
INPUTS
sat_num AMSU satellite number (10 = NOAA-15, etc) channel AMSU channel number
OUTPUTS
type(amsu_inventory_str) :: inv ! inventory of AMSU orbits in structured variable. integer(4) :: error ! error flag. 0 if all OK, -1 if out of bounds satellite number passed
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
2/21/2012 Initial Version prepared for NCDC
USAGE
call read_amsu_L2A_inventory_file(sat_num,channel,inv,error)
[ Top ] [ Subroutines ]
NAME
read_amsu_L2A_inventory_file_text
PURPOSE
reads AMSU L1B Inventory file in text form
INPUTS
sat_num AMSU satellite number (10 = NOAA-15, etc) channel AMSU channel number
OUTPUTS
type(amsu_inventory_str) :: inv ! inventory of AMSU orbits in structured variable. integer(4) :: error ! error flag. 0 if all OK, -1 if out of bounds satellite number passed
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
2/21/2012 Initial Version prepared for NCDC
USAGE
call read_amsu_L2A_inventory_file_text(sat_num,channel,inv,error)
[ Top ] [ Subroutines ]
NAME
update_amsu_inventory_data
PURPOSE
updates an amsu L1B inventory data record using data from AMSU L1A orbit structure
INPUTS
type(amsu_inventory_str) :: inv ! inventory of AMSU orbits in structured variable. type(amsu_L1A_orbit_data) :: L1A_orbit_data !L1A orbit data sat_num AMSU satellite number (10 = NOAA-15, etc) ! satellite number (10 == NOAA-15, etc) integer(4) :: orbit_num ! orbit numbers
OUTPUTS
integer(4) :: error ! error flag. 0 if all OK, -1 if out of bounds satellite number passed
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
9/21/2012 Initial Version prepared for NCDC
USAGE
call update_amsu_inventory_data(amsu_inventory,L1A_orbit_data,sat_num,orbit_num)
[ Top ] [ Subroutines ]
NAME
update_amsu_L2A_inventory
PURPOSE
updates an amsu L2A inventory data record using data from AMSU L2A orbit structure
INPUTS
type(amsu_inventory_str) :: L2A_inventory ! inventory of AMSU orbits in structured variable. type(amsu_L1A_orbit_data) :: L2A_orbit ! L2A orbit data sat_num AMSU satellite number (10 = NOAA-15, etc) ! satellite number (10 == NOAA-15, etc) integer(4) :: orbit_num ! orbit numbers
OUTPUTS
integer(4) :: error ! error flag. 0 if all OK, -1 if out of bounds satellite number passed
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
9/21/2012 Initial Version prepared for NCDC
USAGE
call update_AMSU_L2A_inventory(amsu_inventory,L2A_orbit,sat_num,orbit_num)
[ Top ] [ Subroutines ]
NAME
write_amsu_l1b_inventory_file
PURPOSE
writes AMSU L1B Inventory file in binary format
INPUTS
sat_num AMSU satellite number (10 = NOAA-15, etc) type(amsu_inventory_str) :: inv ! inventory of AMSU orbits in structured variable.
OUTPUTS
integer(4) :: error ! error flag. 0 if all OK, -1 if out of bounds satellite number passed
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
9/21/2012 Initial Version prepared for NCDC
USAGE
write_amsu_l1b_inventory_file(sat_num,inv,error)
[ Top ] [ Subroutines ]
NAME
write_amsu_l1b_inventory_file_text
PURPOSE
writes AMSU L1B Inventory file in text format
INPUTS
sat_num AMSU satellite number (10 = NOAA-15, etc) type(amsu_inventory_str) :: inv ! inventory of AMSU orbits in structured variable.
OUTPUTS
integer(4) :: error ! error flag. 0 if all OK, -1 if out of bounds satellite number passed
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
9/21/2012 Initial Version prepared for NCDC
USAGE
write_amsu_l1b_inventory_file_text(sat_num,inv,error)
[ Top ] [ Subroutines ]
NAME
write_amsu_L2A_inventory_file_text
PURPOSE
reads AMSU L1B Inventory file in text form
INPUTS
sat_num AMSU satellite number (10 = NOAA-15, etc) channel AMSU channel number type(amsu_inventory_str) :: inv ! inventory of AMSU orbits in structured variable.
OUTPUTS
integer(4) :: error ! error flag. 0 if all OK, -1 if out of bounds satellite number passed
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
10/21/2012 Initial Version prepared for NCDC
USAGE
call write_amsu_L2A_inventory_file_text(sat_num,channel,inv,error)
[ Top ] [ Subroutines ]
NAME
write_amsu_L2A_inventory_file(sat_num,inv,error)
PURPOSE
writes AMSU L1B Inventory file in binary form
INPUTS
sat_num AMSU satellite number (10 = NOAA-15, etc) channel AMSU channel number type(amsu_inventory_str) :: inv ! inventory of AMSU orbits in structured variable.
OUTPUTS
integer(4) :: error ! error flag. 0 if all OK, -1 if out of bounds satellite number passed
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
2/21/2012 Initial Version prepared for NCDC
USAGE
call write_amsu_L2A_inventory_file(sat_num,channel,inv,error)
[ Top ] [ Modules ]
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
[ 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)
[ 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)
[ 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)
[ 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)
[ 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)
[ 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)
[ 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)
[ 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)
[ 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)
[ 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)
[ 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)
[ 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)
[ 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)
[ 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)
[ Top ] [ Modules ]
NAME
AMSU_Level_2A.f90
PURPOSE
Module for reading, writing and storing AMSU L2A data
DESCRIPTION
Module for reading, writing and storing AMSU L2A data. L2A files are stored in flat binary form, so there is quite a bit of code that converts from the flat binary form to easier to understand fortran structures. Structures are defined in AMSU_types.f90
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_2A
[ Top ] [ Subroutines ]
NAME
decode_AMSU_L2A_Header
PURPOSE
decodes AMSU L2A Header in binary form to structured form
INPUTS
character(len = AMSU_LEVEL_2A_RECORD_LENGTH) :: scan_string ! header and scan valid data in bianry form for writing to L2A file
OUTPUTS
type(AMSU_L2A_orbit_header) :: L2A_orbit_header ! in structured from integer(4),dimension(AMSU_MAX_SCANS_PER_ORBIT) :: scan_valid ! positive value means scan is valid
USAGE
call decode_AMSU_L2A_Header(scan_string,L2A_orbit_header,scan_valid)
[ Top ] [ Subroutines ]
NAME
decode_AMSU_L2A_scan
PURPOSE
decodes AMSU L2A scan to structured from binary form
INPUTS
character(len = AMSU_LEVEL_2A_RECORD_LENGTH) :: scan_string ! header and scan valid data in bianry form for writing to L2A file
OUTPUTS
type(AMSU_A_L2A_Swath_Data) :: AMSU_L2A_scan
USAGE
call encode_AMSU_L2A_scan(AMSU_L2A_scan,scan_string)
[ Top ] [ Subroutines ]
NAME
encode_AMSU_L2A_Header
PURPOSE
encodes AMSU L2A Header from structured to binary form
INPUTS
type(AMSU_L2A_orbit_header) :: L2A_orbit_header ! in structured from integer(4),dimension(AMSU_MAX_SCANS_PER_ORBIT) :: scan_valid ! positive value means scan is valid integer(4) :: channel ! AMSU channel
OUTPUTS
character(len = AMSU_LEVEL_2A_RECORD_LENGTH) :: scan_string ! header and scan valid data in bianry form for writing to L2A file
USAGE
call encode_AMSU_L2A_Header( L2A_orbit_header,scan_valid,scan_string)
[ Top ] [ Subroutines ]
NAME
encode_AMSU_L2A_scan
PURPOSE
encodes AMSU L2A scan from structured to binary form
INPUTS
type(AMSU_A_L2A_Swath_Data) :: AMSU_L2A_scan
OUTPUTS
character(len = AMSU_LEVEL_2A_RECORD_LENGTH) :: scan_string ! header and scan valid data in bianry form for writing to L2A file
USAGE
call encode_AMSU_L2A_scan(AMSU_L2A_scan,scan_string)
[ Top ] [ Subroutines ]
NAME
zero_amsu_L2A_orbit_file_header
PURPOSE
zeros AMSU L2A scan in structured form
INPUTS_OUTPUTS
type(AMSU_L2A_orbit_header) :: L2A_orbit_header
USAGE
callzero_amsu_L2A_orbit_file_header(L2A_orbit_header)
[ Top ] [ Subroutines ]
NAME
read_AMSU_L2A_orbit_file
PURPOSE
reads AMSU_L2A_orbit_file
INPUTS
character(len=7) :: satellite_name ! satellite name (NOAA-15, etc) integer(4) :: orbit_number ! AMSU orbit number integer(4) :: channel ! AMSU channel
OUTPUTS
type(AMSU_L2A_orbit_header) :: L2A_orbit_header ! in structured from type(AMSU_L2A_orbit_data) :: L2A_orbit ! in structured from integer(4) :: error ! error flag
USAGE
call write_AMSU_L1A_orbit_file( satellite_name,orbit_num,channel,L2A_orbit_header,L2A_orbit,error)
[ Top ] [ Subroutines ]
NAME
read_AMSU_L2A_orbit_file_header
PURPOSE
reads AMSU_L2A orbit file header
INPUTS
character(len=7) :: satellite_name ! satellite name (NOAA-15, etc) integer(4) :: orbit_number ! AMSU orbit number integer(4) :: channel ! AMSU channel
OUTPUTS
type(AMSU_L2A_orbit_header) :: L2A_orbit_header ! in structured from integer(4) :: error ! error flag
USAGE
call write_AMSU_L1A_orbit_file_header(satellite_name,orbit_num,channel,L2A_orbit_header,error)
[ Top ] [ Subroutines ]
NAME
write_AMSU_L2A_orbit_file
PURPOSE
writes AMSU_L2A_orbit_file
INPUTS
character(len=7) :: satellite_name ! satellite name (NOAA-15, etc) integer(4) :: orbit_number ! AMSU orbit number integer(4) :: channel ! AMSU channel type(AMSU_L2A_orbit_header) :: L2A_orbit_header ! in structured from type(AMSU_L2A_orbit_data) :: L2A_orbit ! in structured from
OUTPUTS
integer(4) :: error ! error flag
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
2/21/2012 Initial Version prepared for NCDC
USAGE
call write_AMSU_L1A_orbit_file( satellite_name,orbit_num,channel,L2A_orbit_header,L2A_orbit,error)
[ Top ] [ Subroutines ]
NAME
zero_amsu_L2A_scan
PURPOSE
zeros AMSU L2A scan in structured form
INPUTS_OUTPUTS
type(AMSU_A_L2A_Swath_Data) :: AMSU_L2A_scan
USAGE
call zero_amsu_L2A_scan(L2A_Scan)
[ Top ] [ Modules ]
NAME
AMSU_Nadir.f90
PURPOSE
Module for performing incidence angle adjustments to AMSU measurements
DESCRIPTION
Module for performing incidence angle adjustments to AMSU measurements Uses a model derived fov and angle perturbation climatology for the calculations. The climatology is caclulated separately for each AMSU channel
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_Nadir
[ Top ] [ Subroutines ]
NAME
amsu_simulated_tb
PURPOSE
Calculates simulated AMSU Tb for a given channel, incidence angle, field of view, latitude, longitude and date.
INPUTS
integer(4) :: chan ! AMSU channel integer(4) :: fov ! field of view index real(4) :: theta ! earth incidence angle (degrees) real(4) :: lon ! longitude real(4) :: lat ! latitude type(date_Str) :: date ! date, in date structure form
OUTPUTS
Error Error Flag. 0 if everything OK, not zero otherwise
RETURNED VALUE
climatological Tb value for the given parameters
USAGE
Tb = amsu_simulated_tb(chan,fov,theta,lon,lat,date,error)
[ Top ] [ Subroutines ]
NAME
calculate_nadir_correction
PURPOSE
Calculate nadir and incidence angle Corrections for a single AMSU scan line
INPUTS
channel AMSU channel number
INPUTS_OUTPUTS
L2A_Scan Structure containing AMSU L2A Scan data
OUTPUTS
Error Error Flag. 0 if everything OK, not zero otherwise
USAGE
Call calculate_nadir_correction(L2A_scan,channel,error)
[ Top ] [ Subroutines ]
NAME
geometry
PURPOSE
calculates EIA tht for given nadir looking angle tht_nadir
DESCRIPTION
calculates EIA tht for given nadir looking angle tht_nadir at geodesic latitude xlat and height z above ground approximates the surface of the earth by a sphere with radius of curvature rho (c.f. RSS SSM/I Users Manual, DEC1, 1991)
INPUTS
real(4) tht_nadir ! look angle real(4) xlat ! latitude of point on surface real(4) z ! height of satellite above surface
OUTPUTS
real(4) tht ! earth incidence angle
USAGE
call geometry (tht_nadir,xlat,z,tht)
[ Top ] [ Subroutines ]
NAME
read_amsu_tb_sim
PURPOSE
reads in climatological Tb data for a given channel and month and year
INPUTS
integer(4) :: chan integer(4) :: month integer(4) :: year
OUTPUTS
Error Error Flag. 0 if everything OK, not zero otherwise
REMARKS
loads climatological Tb value into module variable tb_sim
USAGE
call read_amsu_tb_sim(chan,month,year,error)
[ Top ] [ Modules ]
NAME
AMSU_Quality.f90
PURPOSE
Module for performing rudimentary quality control for AMSU brightness temperatures
DESCRIPTION
Module for performing rudimentary quality control for AMSU brightness temperatures
ROUTINES
subroutine evaluate_amsu_quality_indicator(quality_indicator,scan_ok) ! evaluates NOAA quality bits for fatal problems subrouinte check_tbs_against_bounds(Tbs,chan,fov_qual) ! checks TBs against reasonableness bounds for each channel
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_quality
[ Top ] [ Modules ]
NAME
check_tbs_against_bounds
PURPOSE
Checks brightness temperatures agains reasonableness bounds.
DESCRIPTION
Checks brightness temperatures agains reasonableness bounds.
INPUTS
integer(4) :: quality indicator ! 4 byte integer of quality indicator flags
OUTPUTS
integer(1),dimension(30) :: fov_qual ! field of view flag -- set to negative number if out of bounds ! or not finite
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
call check_tbs_against_bounds(Tbs,chan,fov_qual)
[ Top ] [ Modules ]
NAME
evaluate_amsu_quality_indicator
PURPOSE
Evaluates NOAA provided quality flags for fatal errors
DESCRIPTION
Evaluates NOAA provided quality flags for fatal errors
INPUTS
integer(4) :: quality indicator ! 4 byte integer of quality indicator flags
OUTPUTS
logical(4) :: scan_ok ! flag -- set true of scan appears to be OK
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
call evaluate_amsu_quality_indicator(quality_indicator,scan_ok)
[ Top ] [ Modules ]
NAME
module AMSU_SAA
PURPOSE
module containing routines for reading and decoding AMSU L1A files from CLASS
DESCRIPTION
module containing routines for reading and decoding AMSU L1A files from CLASS.
ROUTINES
read_SAA_AMSU_archive_header read_raw_AMSU_header get_AMSU_calibration_data_from_header read_SAA_AMSU_header read_SAA_AMSU_swath decode_SAA_AMSU_swath find_rd_2000_from_AMSU_L1A_Swath
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
10/21/2012 Initial Version prepared for NCDC
USAGE
use msu_date
[ Top ] [ Subroutines ]
NAME
decode_date_and_earth_loc_from_SAA_AMSU_swath
PURPOSE
decodes earth location data from AMSU L1A swath
DESCRIPTION
decodes earth location data from AMSU L1A swath
INPUT
character(len = AMSU_LEVEL_1_RECORD_LENGTH) :: raw_scan
OUTPUT
real(8) :: scan_rd_2000 !time of scan, in RD2000 format real(4) :: nadir_latitude !nadir lat of scan real(4) :: nadir_longitude !nadir lon of scan integer(4) :: quality_indicator ! scan quality flag integer(4) :: error ! error flag
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
2/21/2012 Initial Version prepared for NCDC
USAGE
call rdecode_date_and_earth_loc_from_SAA_AMSU_swath(raw_scan,scan_rd_2000, nadir_latitude,nadir_longitude,quality_indicator, error)
[ Top ] [ Subroutines ]
NAME
decode_SAA_AMSU_swath
PURPOSE
fully decodes AMSU L1A swath
DESCRIPTION
fully decodes AMSU L1A swath
INPUT
character*1,dimension(2560) :: raw_swath
OUTPUT
type(AMSU_A_L1B_Swath_Data) :: AMSU_L1A_Swath integer(4) :: error ! error flag
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
10/21/2012 Initial Version prepared for NCDC
USAGE
call decode_SAA_AMSU_swath(raw_swath,AMSU_L1A_Swath,error)
[ Top ] [ Subroutines ]
NAME
find_rd_2000_from_AMSU_L1A_Swath
PURPOSE
calculates scan time in RD2000 format from decoded AMSU L1A swath
DESCRIPTION
calculates scan time in RD2000 format from decoded AMSU L1A swath
INPUT
type(AMSU_A_L1B_Swath_Data) :: AMSU_L1A_Swath
OUTPUT
real(8) :: amsu_rd_2000 integer(4) :: error
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
10/21/2012 Initial Version prepared for NCDC
USAGE
call find_rd_2000_from_AMSU_L1A_Swath(AMSU_L1A_Swath,amsu_rd_2000,error)
[ Top ] [ Subroutines ]
NAME
get_AMSU_calibration_data_from_header
PURPOSE
parses calibration data out of header
DESCRIPTION
parses calibration data out of header
INPUT
character(len = AMSU_LEVEL_1_RECORD_LENGTH) :: raw_header
OUTPUT
type(AMSU_A_Data_to_Keep_from_Header) :: AMSU_header_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
2/21/2012 Initial Version prepared for NCDC
USAGE
call get_AMSU_calibration_data_from_header(raw_Header,AMSU_header_data)
[ Top ] [ Subroutines ]
NAME
read_raw_AMSU_header
PURPOSE
reads header on raw AMSU files
DESCRIPTION
reads header on raw AMSU files
INPUT
AMSU_SAA_LU logical unit number for AMSU SAA file
OUTPUT
character(len = AMSU_LEVEL_1_RECORD_LENGTH) :: raw_header integer(4) :: error
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
2/21/2012 Initial Version prepared for NCDC
USAGE
call read_raw_AMSU_header(AMSU_SAA_LU,raw_Header,error)
[ Top ] [ Subroutines ]
NAME
read_SAA_AMSU_archive_header
PURPOSE
reads SAA Archive header on AMSU files
DESCRIPTION
reads SAA Archive header on AMSU files
INPUT
AMSU_SAA_LU logical unit number for AMSU SAA file
OUTPUT
character(len = 42) :: file_name ! file name from header integer(4) :: error
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
2/21/2012 Initial Version prepared for NCDC
USAGE
call read_SAA_AMSU_archive_header(AMSU_SAA_LU,file_name,error)
[ Top ] [ Subroutines ]
NAME
read_SAA_AMSU_header
PURPOSE
reads and decodes AMSU L1A header
DESCRIPTION
reads and decodes AMSU L1A header
INPUT
AMSU_SAA_LU !logical unit number for AMSU SAA file
OUTPUT
type(AMSU_A_L1A_File_Header) :: AMSU_L1A_Header ! decoded header info integer(4) :: error ! error flag
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
2/21/2012 Initial Version prepared for NCDC
USAGE
call read_SAA_AMSU_header(AMSU_SAA_LU,AMSU_L1A_Header,error)
[ Top ] [ Modules ]
NAME
byte_swapping
PURPOSE
module containing a number of routines that perform byte swapping
DESCRIPTION
module containing a number of routines that perform byte swapping. The function "byte_swap" is overloaded and calls the appropriate of the 4 routines below to perfrom a big endian to little endian byte swap.
ROUTINES
real(4) function real_4_byte_swap(x) real(8) function real_8_byte_swap(x) integer(4) function int_4_byte_swap(x) integer(2) function int_2_byte_swap(x)
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
2/21/2012 Initial Version prepared for NCDC
USAGE
use byte_swap j = byte_swap(i)
[ Top ] [ Modules ]
NAME
module date_and_time
PURPOSE
pseudoclass for date and time calculations
DESCRIPTION
pseudoclass for date and time calculations.
VARIABLES
the pseudoclass has two important types defined type time_str real(8) :: m_secs ! seconds since midnight integer(4) :: hour ! hour of day integer(4) :: minute ! minute of hour real(8) :: sec ! second of minute logical :: updated ! true if m_secs agree with hours,minute and second end type time_str type date_str real(8) :: r_d ! days since Jan 1, 1, gregorian calender real(8) :: rd_2000 ! days since Jan 1, 2000 integer(4) :: year ! year integer(4) :: oday ! ordinal day in the given year integer(4) :: month ! month in year integer(4) :: day ! day in month type(time_str) :: time ! time of day logical :: updated ! true if Jul_day agrees with other info end type date_str
REMARKS
There are 3 overloaded subroutines for setting the date and time set_date set_date_2000 set_time
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
2/21/2012 Initial Version prepared for NCDC
USAGE
use date_and_time
[ Top ] [ Subroutines ]
NAME
set_date
PURPOSE
set_date sets the date and time using 6 different methods. The method is choosen automatically depending on the
DESCRIPTION
set_date sets the date and time using 6 different methods. The method is choosen automatically depending on the number and type of the arguments. here is a list of the methods: -module procedure set_date_int_r_d !(r_d,error) 2 integer(4)'s -module procedure set_date_real_r_d !(r_d,error) 1 real(8) and 1 integer(4) -module procedure set_date_m_d_y !(month,day,year,error) 4 integer(4)'s -module procedure set_date_m_d_y_int_t !(month,day,year,hour,minute,second,error) 7 integer(4)'s -module procedure set_date_m_d_y_real_t !(month,day,year,hour,minute,second,error) 5 integer(4)'s, 1 real(8), 1 integer(4) -module procedure set_date_m_d_y_m_secs !(month,day,year,secs_since_midnight,error) 3 integer(4)'s, 1 real(8), 1 integer(4) -module procedure set_date_od_y_msecs !(secs_since_midnight,ordinal_day#,year,error) 1 real(8), 3 integer(4)'s !
RETURN VALUE
type(date_str) :: date
USAGE
date = set_date(month,day,year,hour,minutes,second,error)
[ Top ] [ Subroutines ]
NAME
set_date_2000
PURPOSE
set_date sets the from the date in rd_2000 format. The method is choosen automatically depending on the
DESCRIPTION
set_date sets the date and time using 4 different methods. The method is choosen automatically depending on the type of the argument. here is a list of the methods: module procedure set_date_2000_real4 module procedure set_date_2000_real8 module procedure set_date_2000_int4 module procedure set_date_2000_int2
RETURN VALUE
type(date_str) :: date
USAGE
date = set_date(rd_2000)
[ Top ] [ Subroutines ]
NAME
set_time
PURPOSE
sets the time of day using two different methods. The method is chosen automatically depending on the number and type of arguments
INPUT
real(8),intent(IN) :: msecs !seconds since midnight
OUTPUT
integer(4),intent(OUT) :: error !set to zero if no error
RETURN VALUE
type(time_str) :: time
USAGE
time = set_time(msecs,error)\ NAME type(time_str) function set_time_hms(hours,minutes,secs,error)
INPUTS
integer(4) :: hours !hour of day (0 - 23) integer(4) :: minutes !minutes in hour real(8),intent(IN) :: secs !seconds in minute
OUTPUT
integer(4),intent(OUT) :: error !set to zero if no error
RETURN VALUE
type(time_str) :: time
USAGE
time =set_time(hour,minutes,secs,error)
[ Top ] [ Subroutines ]
NAME
init_log_file
PURPOSE
Opens log file with name file
DESCRIPTION
Opens log file with name "file". This file is accessible to any routine that includes logging, simplifying log file writing.
INPUTS
character(len = 120) :: file ! file name to open as log file
OUTPUTS
integer(4) :: error ! error flag. 0 mean everything OK
USAGE
call init_log_file(file,error)
[ Top ] [ Subroutines ]
NAME
log
PURPOSE
write a message to the open log file.
INPUTS
character*(*) :: a ! message to write to log file
OUTPUTS
integer(4) :: error ! error flag. 0 mean everything OK
USAGE
call log(file,error)
[ Top ] [ Modules ]
NAME
module maps
PURPOSE
psuedoclass that defines and manipulates a rectangular gridded map type
DESCRIPTION
psuedoclass that defines and manipulates a rectangular gridded map type
VARIABLES
the pseudoclass defines a map type type map_str real(4) :: min_x ! minimum x value real(4) :: max_x ! maximum x value real(4) :: delta_x ! spacing points in x direction integer(4) :: num_x ! number of x points integer(4) :: type_x ! type of grid in x direction (see explantion below) real(4) :: min_y ! minimum y value real(4) :: max_y ! maximum x value real(4) :: delta_y ! spacing points in x direction integer(4) :: num_y ! number of x points integer(4) :: type_y ! type of grid in x direction (see explantion below) integer(4) :: type_bc ! type of boundary conditions real(4),dimension(:,:),pointer :: dat ! map data end type map_str
REMARKS
explanation of the grid type flag: There are basically two types of evenly spaced rectangular gridded map -- 1. Those for which the value represents the value in a cell - I'll call this cell_centered for these maps, the lower left value represents the value in the cell defined by long = (0.0:delta_x), lat = (-90,-90+delta_y), and is associated with at point at (delta_x/2.0, -90+delta_x/2.0) 2. Those for which the value represents the value on the vertex between cells - I'll call this edge_centered for these maps, the lower left value represents the value at the point by long = 0.0, lat = (-90). A peculiar feature of this sort of grid is that the row at -90.0 must be identical, since it all refers to the same point! For now, all routines in the module assume that maps obey spherical boundary conditions For now, all maps are not redundant at the vertical edges This means that for both types of grids, 360.0/(delta_x) longitude points are needed, and the only different is whether the values are offset by 0.5*delta_x For cell_centered grids, 180/(delta_y) latitude points are needed, and for Edge centered grids 180/(delta_y) + 1 latitude points are needed note that mixed grid types are allowed, with the lat and long grids being different types
ROUTINES
set_up_map(min_x,delta_x,num_x,type_x,min_y,delta_y,num_y,type_y,type_bc,mp,error) zero_map(mp,error) deallocate_map(mp,error) get_map_value(mp,xx,yy,value,error) get_map_value_no_interp(mp,xx,yy,value,error) wrap_indices(mp,ix,iy,ix_wrapped,iy_wrapped,error) map_value(mp,ix,iy,error) get_grid_location(mp,ix,iy,x,y,error) get_vertex_location(mp,x,y,ix,iy,error) get_grid_indices(mp,x,y,ix,iy,error) get_vertex_indices(mp,x,y,ix,iy,error)
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
2/21/2012 Initial Version prepared for NCDC
USAGE
use maps
[ Top ] [ Modules ]
NAME
calc_relative_position
PURPOSE
calculates the relative positon of the point x,y relative to the vertex ix,iy.
DESCRIPTION
calculates the relative positon of the point x,y relative to the vertex ix,iy. Since x, y is constrained to be within the bounds of the map, the modulo arithmatic is relatively simple, as long as x,y id within half a delta of the vertex. This is assumed to be the case here
INPUTS
mp ! map to be sampled x ! x location in real space y ! x location in real space ix ! x index iy ! y index
OUTPUTS
x_rel ! relative x distance to vertex y_rel ! relative y distance to vertex error ! error flag
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
10/21/2012 Initial Version prepared for NCDC
USAGE
call calc_relative_position(mp,x,y,ix,iy,x_rel,y_rel,error)
[ Top ] [ Modules ]
NAME
deallocate_map
PURPOSE
deallocates data space in variable of map type
DESCRIPTION
deallocates data space in variable of map type
INPUTS
mp ! map to be deallocated
OUTPUTS
error ! error flag
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
2/21/2012 Initial Version prepared for NCDC
USAGE
call deallocate_map(mp,error)
[ Top ] [ Modules ]
NAME
get_grid_indices
PURPOSE
returns the indices of the grid point in whose cell the point x,y is located
DESCRIPTION
returns the indices of the grid point in whose cell the point x,y is located
INPUTS
mp ! map to be sampled x ! x location in real space y ! x location in real space
OUTPUTS
ix ! x index iy ! y index error ! error flag
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
10/21/2012 Initial Version prepared for NCDC
USAGE
call get_grid_indices(mp,x,y,ix,iy,error)
[ Top ] [ Modules ]
NAME
get_grid_location
PURPOSE
this subroutine returns the location in real map space of the grid point ix,iy
DESCRIPTION
this subroutine returns the location in real map space of the grid point ix,iy
INPUTS
mp ! map to be sampled ix ! x index iy ! y index
OUTPUTS
x ! x location in real space y ! x location in real space error ! error flag
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
10/21/2012 Initial Version prepared for NCDC
USAGE
call get_grid_location(mp,ix,iy,x,y,error)
[ Top ] [ Modules ]
NAME
get_map_value
PURPOSE
this subroutine returns the interpolated value at a point x,y
DESCRIPTION
this subroutine returns the interpolated value at a point x,y note that the interpolation is somewhat different depending on what type of grid is used for the map structure
INPUTS
mp ! map to be sampled xx ! x location yy ! y location
OUTPUTS
value ! interpolated value error ! error flag
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
10/21/2012 Initial Version prepared for NCDC
USAGE
call get_map_value(mp,xx,yy,value,error)
[ Top ] [ Modules ]
NAME
get_map_value_no_interp
PURPOSE
this subroutine returns the non-interpolated value at grid point closest to xx,yy
DESCRIPTION
this subroutine returns the non-interpolated value at grid point closest to xx,yy
INPUTS
mp ! map to be sampled xx ! x location yy ! y location
OUTPUTS
value ! interpolated value error ! error flag
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
10/21/2012 Initial Version prepared for NCDC
USAGE
call get_map_value_no_interp(mp,xx,yy,value,error)
[ Top ] [ Modules ]
NAME
get_vertex_indices
PURPOSE
returns the indices of the vertex point nearest x,y. The vertex point is where the edges of the cells cross
DESCRIPTION
returns the indices of the vertex point nearest x,y. The vertex point is where the edges of the cells cross
INPUTS
mp ! map to be sampled x ! x location in real space y ! x location in real space
OUTPUTS
ix ! x index iy ! y index error ! error flag
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
10/21/2012 Initial Version prepared for NCDC
USAGE
call get_vertex_indices(mp,x,y,ix,iy,error)
[ Top ] [ Modules ]
NAME
get_vertex_location
PURPOSE
this subroutine returns the location in real map space of the vertex point ix,iy
DESCRIPTION
this subroutine returns the location in real map space of the vertex point ix,iy
INPUTS
mp ! map to be sampled ix ! x index iy ! y index
OUTPUTS
x ! x location in real space y ! x location in real space error ! error flag
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
10/21/2012 Initial Version prepared for NCDC
USAGE
call get_vertex_location(mp,ix,iy,x,y,error)
[ Top ] [ Modules ]
NAME
map_value
PURPOSE
this subroutine returns the value of the map at xi,yi even if xi and yi are out of range by applying the appropriate boundary conditions
DESCRIPTION
this subroutine returns the value of the map at xi,yi even if xi and yi are out of range by applying the appropriate boundary conditions
INPUTS
mp ! map to be sampled ix ! x index iy ! y index
OUTPUTS
error ! error flag
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
10/21/2012 Initial Version prepared for NCDC
USAGE
z = map_value(mp,ix,iy,error)
[ Top ] [ Modules ]
NAME
read_map
PURPOSE
reads in map from a standard, self describing format
DESCRIPTION
reads in map from a standard, self describing format allocated map structure according to description in file
INPUTS
unit_num ! logical unit to write to
OUTPUTS
mp ! map variable to be read into error ! error flag
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
10/21/2012 Initial Version prepared for NCDC
USAGE
call ead_map(unit_num,mp,error)
[ Top ] [ Modules ]
NAME
set_up_map
PURPOSE
sets up an instance of the map type
DESCRIPTION
sets up an instance of the map type
INPUTS
min_x ! minimum value of x (longitude) coordinate delta_x ! size of grid cell in longitude direction (degrees) num_x ! number of grid cells in longitude direction type_x ! type of grid in x direction(cell centered or edge defined) min_y ! minimum value of y (latitude) coordinate delta_y ! size of grid cell in latitude direction (degrees) num_y ! number of grid cells in latitude direction type_y ! type of grid in x direction(cell centered or edge defined) type_bc, ! type of boundary conditions (spherical, cylindrical, or no wrapping)
OUTPUTS
mp ! new instance of map type error ! error flag
REMARKS
explanation of the grid type flag: There are basically two types of evenly spaced rectangular gridded map -- 1. Those for which the value represents the value in a cell - I'll call this cell_centered for these maps, the lower left value represents the value in the cell defined by long = (0.0:delta_x), lat = (-90,-90+delta_y), and is associated with at point at (delta_x/2.0, -90+delta_x/2.0) 2. Those for which the value represents the value on the vertex between cells - I'll call this edge_centered for these maps, the lower left value represents the value at the point by long = 0.0, lat = (-90). A peculiar feature of this sort of grid is that the row at -90.0 must be identical, since it all refers to the same point! For now, all routines in the module assume that maps obey spherical boundary conditions For now, all maps are not redundant at the vertical edges This means that for both types of grids, 360.0/(delta_x) longitude points are needed, and the only different is whether the values are offset by 0.5*delta_x For cell_centered grids, 180/(delta_y) latitude points are needed, and for Edge centered grids 180/(delta_y) + 1 latitude points are needed note that mixed grid types are allowed, with the lat and long grids being different types
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
2/21/2012 Initial Version prepared for NCDC
USAGE
call set_up_map(min_x,delta_x,num_x,type_x,min_y,delta_y,num_y,type_y,type_bc,mp,error)
[ Top ] [ Modules ]
NAME
wrap_indices
PURPOSE
wraps map indiced according to boundary conditions
DESCRIPTION
wraps map indiced according to boundary conditions
INPUTS
mp ! map to be sampled ix ! x index iy ! y index
OUTPUTS
ix_wrapped ! x index, wrapped iy_wrapped ! y index, wrapped error ! error flag
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
10/21/2012 Initial Version prepared for NCDC
USAGE
call wrap_indices(mp,ix,iy,ix_wrapped,iy_wrapped,error)
[ Top ] [ Modules ]
NAME
write_map
PURPOSE
writes out map in a standard, self describing format
DESCRIPTION
writes out map in a standard, self describing format
INPUTS
mp ! map to be written unit_num ! logical unit to write to
OUTPUTS
error ! error flag
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
10/21/2012 Initial Version prepared for NCDC
USAGE
call write_map(mp,unit_num,error)
[ Top ] [ Modules ]
NAME
zero_map
PURPOSE
zeros data in variable of map type
DESCRIPTION
zeros data in variable of map type
INPUTS
mp ! map to be zeroed
OUTPUTS
error ! error flag
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
2/21/2012 Initial Version prepared for NCDC
USAGE
call zero_map(mp,error)
[ Top ] [ Modules ]
NAME
mcs
PURPOSE
psuedoclass that reads and write "mcs" self-describing array type
DESCRIPTION
psuedoclass that reads and write "mcs" self-describing array type
ROUTINES
subroutine read_real_4_mcs(lu,mat,error) subroutine write_real_4_mcs(lu,mat,error) deallocate_mcs(mat,error)
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
2/21/2012 Initial Version prepared for NCDC
USAGE
use mcs
[ Top ] [ Subroutines ]
NAME
module MSU_calibration
PURPOSE
psuedoclass for laoding and applying NOAA-supplied MSU calibration parameters
DESCRIPTION
psuedoclass for laoding and applying NOAA-supplied MSU calibration parameters performs MSU counts to antenna temperature conversion step.
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
9/21/2012 Initial Version prepared for NCDC
USAGE
use MSU_calibration
[ Top ] [ Subroutines ]
NAME
calc_raw_TBs
DESCRIPTION
calculates MSU Raw brightness temperatures from thermistor temperature and corrected radiometer counts
INPUTS
type(msu_L2A_scan) :: L2A_scan
OUTPUTS
type(msu_L2A_scan) :: L2A_scan
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
9/21/2012 Initial Version prepared for NCDC
USAGE
call calc_raw_TBs(L2A_scan)
[ Top ] [ Subroutines ]
NAME
calc_resistances
DESCRIPTION
calculates MSU hot load thermistor resistances from instrument counts
INPUTS
type(msu_raw) :: L1b_scan
OUTPUTS
type(msu_L2A_scan) :: L2A_scan
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
9/21/2012 Initial Version prepared for NCDC
USAGE
calc_resistances(L1B_scan,L2A_scan)
[ Top ] [ Subroutines ]
DESCRIPTION
calculates MSU hot load thermistor temperatures from thermistor resistance
INPUTS
type(msu_L2A_scan) :: L2A_scan
OUTPUTS
type(msu_L2A_scan) :: L2A_scan
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
9/21/2012 Initial Version prepared for NCDC
USAGE
call calc_target_temps(L2A_scan)
[ Top ] [ Subroutines ]
NAME
get_Mo_1995_NL_Coeff
DESCRIPTION
This reads in the Mo 1995 version of the NOAA operational non-linearity corrections. Values are stored in module variables.
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
9/21/2012 Initial Version prepared for NCDC
USAGE
call get_Mo_1995_NL_Coeff
[ Top ] [ Subroutines ]
NAME
get_Mo_2001_NL_Coeff
DESCRIPTION
This reads in the Mo 2001 version of the NOAA operational non-linearity corrections. Values are stored in module variables.
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
9/21/2012 Initial Version prepared for NCDC
USAGE
call get_Mo_2001_NL_Coeff
[ Top ] [ Subroutines ]
DESCRIPTION
calculates corrected instrument counts after applying NOAA operational non-linearity correction
INPUTS
integer(4) :: channel ! msu channel number integer(4) :: sat_num ! satellite index (TIROS-N = 1, NOO-06 = 1, etc.) integer(4) :: version ! flag -- which version of NL correction to use. integer(2) :: counts_raw ! raw instrument counts
OUTPUTS
real(8) :: counts_corr ! adjusted counts integer(4) :: error ! error flag == 0 means all OK
AUTHOR
Carl Mears, Remote Sensing Systems
COPYRIGHT
THIS SOFTWARE AND ITS DOCUMENTATION ARE CONSIDERED TO BE IN THE PUBLIC DOMAIN AND THUS ARE AVAILABLE FOR UNRESTRICTED PUBLIC USE. 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
9/21/2012 Initial Version prepared for NCDC
USAGE
call msu_non_linearity_correction(channel,sat_num,version,counts_raw,counts_corr,error)
[ Top ] [ Modules ]
NAME
module NAN_Support
PURPOSE
module containing Not-A-Number wrapper routines for intel compiler and constant parameter NAN valued set equal to 1.0/0.0 emulates behavior of early module for a compiler that did not explicitly support ieee not-a-numbers
DESCRIPTION
module Not-A-Numbers Wrapper routines for intel compiler
ROUTINES
logical function finite(x), overloaded to accept both real(4) and real(8) arguaments
INPUTS
x real number to be tested
OUTPUTS
returns logical true if number is finite, false if number in any type of non-finite number
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
2/21/2012 Initial Version prepared for NCDC
USAGE
use NAN_Support
[ Top ] [ Modules ]
NAME
module NAN_Support
PURPOSE
module containing a number of routines that convert between various fortran types.
DESCRIPTION
module containing a number of routines that convert between various fortran types. it is somewhat mind-boggling that these are not intrinsic functions, at least for our compiler. Used to read and write flat binary files.
ROUTINES
integer(1) function char_to_int_1(a) character(len = 1) function int_1_to_char(i) integer(2) function char_arr_to_int_2(a) integer(2) function string_to_int_2(a) integer(2) function string_to_int_2(a) character(len=2) function int_2_to_string(i) integer(4) function string_to_int_4(a) integer(4) function string_to_int_4(a) real(4) function char_arr_to_real_4(a) real(4) function string_to_real_4(a) character(len=4) function real_4_to_string(x) real(8) function string_to_real_8(a) real(8) function char_arr_to_real_8(a) character(len=8) function real_8_to_string(x)
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
2/21/2012 Initial Version prepared for NCDC
USAGE
use type_conversion