Last modified: Fri Sep 3 16:32:04 2004.
NAME:
SRF_Define
PURPOSE:
Module defining the SRF data structure and containing routines to
manipulate it.
CATEGORY:
Instrument Information : SRF
LANGUAGE:
Fortran-95
CALLING SEQUENCE:
USE SRF_Define
MODULES:
Type_Kinds: Module containing definitions for kinds
of variable types.
Error_Handler: Module to define simple error codes and
handle error conditions
USEs: FILE_UTILITY module
Integrate: Module containing integration routines.
USEs: TYPE_KINDS module
ERROR_HANDLER module
INTERPOLATE module
CONTAINS:
Associated_SRF: Function to test the association status
of the pointer members of a SRF
structure.
Destroy_SRF: Function to re-initialize an SRF structure.
Allocate_SRF: Function to allocate the pointer members
of an SRF structure.
Assign_SRF: Function to copy an SRF structure.
Frequency_SRF: Function to compute the frequency grid for
a supplied SRF data structure.
Integrate_SRF: Function to integrate the SRF for
a supplied SRF data structure.
Information_SRF: Subroutine to return a string containing information
about the SRF data structure.
DERIVED TYPES:
SRF_type: Definition of the public SRF data structure.
Fields are,
n_Points: Number of points defining the current
SRF spectral dimension.
UNITS: N/A
TYPE: INTEGER
DIMENSION: Scalar
Sensor_Name: Character string containing the name of the
sensor for the current SRF.
UNITS: N/A
TYPE: CHARACTER(*)
DIMENSION: Scalar
Platform_Name: Character string containing the name of the
platform containing the sensor for the current
SRF.
UNITS: N/A
TYPE: CHARACTER(*)
DIMENSION: Scalar
NCEP_Sensor_ID: An "in-house" value used at NOAA/NCEP/EMC
to identify a satellite/sensor combination.
UNITS: N/A
TYPE: INTEGER
DIMENSION: Scalar
WMO_Satellite_ID: The WMO code for identifying satellite
platforms. Taken from the WMO common
code tables at:
http://www.wmo.ch/web/ddbs/Code-tables.html
The Satellite ID is from Common Code
table C-5, or code table 0 01 007 in BUFR
UNITS: N/A
TYPE: INTEGER
DIMENSION: Scalar
WMO_Sensor_ID: The WMO code for identifying a satelite
sensor. Taken from the WMO common
code tables at:
http://www.wmo.ch/web/ddbs/Code-tables.html
The Sensor ID is from Common Code
table C-8, or code table 0 02 019 in BUFR
UNITS: N/A
TYPE: INTEGER
DIMENSION: Scalar
Channel: Sensor channel number of the currently
defined SRF
UNITS: N/A
TYPE: INTEGER
DIMENSION: Scalar
Begin_Frequency: The frequency of the first SRF point.
UNITS: cm^-1
TYPE: REAL( fp_kind )
DIMENSION: Scalar
End_Frequency: The frequency of the last SRF point.
UNITS: cm^-1
TYPE: REAL( fp_kind )
DIMENSION: Scalar
Frequency: The frequency grid of the SRF data.
UNITS: inverse centimetres (cm^-1)
TYPE: REAL( fp_kind )
DIMENSION: Rank-1
ATTRIBUTES: POINTER
Response: Array containing the channel
spectral response data.
UNITS: None
TYPE: REAL( fp_kind )
DIMENSION: Rank-1
ATTRIBUTES: POINTER
Integrated_SRF: The integrated area of the SRF determined using
an integration formula.
UNITS: None.
TYPE: REAL( fp_kind )
DIMENSION: Scalar
Summation_SRF: The integrated area of the SRF determined by
simple summation.
UNITS: None.
TYPE: REAL( fp_kind )
DIMENSION: Scalar
*!IMPORTANT!*
-------------
Note that the SRF_type is PUBLIC and its members are not
encapsulated; that is, they can be fully accessed outside the
scope of this module. This makes it possible to manipulate
the structure and its data directly rather than, for e.g., via
get() and set() functions. This was done to eliminate the
overhead of the get/set type of structure access in using the
structure. *But*, it is recommended that the user destroy,
allocate, assign, and concatenate the structure using only
the routines in this module where possible to eliminate --
or at least minimise -- the possibility of memory leakage
since some of the structure members are pointers.
INCLUDE FILES:
None.
EXTERNALS:
None.
COMMON BLOCKS:
None.
FILES ACCESSED:
None.
CREATION HISTORY:
Written by: Paul van Delst, CIMSS/SSEC 03-Oct-2001
paul.vandelst@ssec.wisc.edu
Copyright (C) 2001 Paul van Delst
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
(See srf_define.f90)
NAME:
SRF_ASCII_IO
PURPOSE:
Module containing routines to read and write ASCII format
SRF data files.
CATEGORY:
Instrument Information : SRF
LANGUAGE:
Fortran-95
CALLING SEQUENCE:
USE SRF_Define
MODULES:
Type_Kinds: Module containing definitions for kinds
of variable types.
File_Utility: Module containing generic file utility routines
Error_Handler: Module to define simple error codes and
handle error conditions
USEs: FILE_UTILITY module
String_Utility Module containing string utility routines
SRF_Define: Module defining the SRF data structure and
containing routines to manipulate it.
USEs: TYPE_KINDS module
ERROR_HANDLER module
INTEGRATE module
CONTAINS:
Read_SRF_ASCII_Header: Function to read the header from an ASCII format
SRF data file.
Write_SRF_ASCII_Header: Function to write the header to an ASCII format
SRF data file.
Read_SRF_ASCII: Function to read an SRF from an ASCII format
SRF data file.
Write_SRF_ASCII: Function to write an SRF to an ASCII format
SRF data file.
INCLUDE FILES:
None.
EXTERNALS:
None.
COMMON BLOCKS:
None.
FILES ACCESSED:
None.
CREATION HISTORY:
Written by: Paul van Delst, CIMSS/SSEC 27-Aug-2003
paul.vandelst@ssec.wisc.edu
Copyright (C) 2001 Paul van Delst
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
(See srf_ascii_io.f90)
NAME:
SRF_netCDF_IO
PURPOSE:
Module containing routines to read and write netCDF format
SRF data files.
CATEGORY:
Instrument Information : SRF
LANGUAGE:
Fortran-95
CALLING SEQUENCE:
USE SRF_Reader
MODULES:
Type_Kinds: Module containing definitions for kinds
of variable types.
Error_Handler: Module to define simple error codes and
handle error conditions
USEs: FILE_UTILITY module
SRF_Define: Module defining the SRF data structure and
containing routines to manipulate it.
USEs: TYPE_KINDS module
FILE_UTILITY module
ERROR_HANDLER module
netcdf: Module supplied with the Fortran 90 version
of the netCDF libraries (at least v3.5.0).
See http://www.unidata.ucar.edu/packages/netcdf
netCDF_Utility: Module containing utility routines for
netCDF file access.
USEs: NETCDF_DIMENSION_UTILITY module
NETCDF_ATTRIBUTE_UTILITY module
NETCDF_VARIABLE_UTILITY module
CONTAINS:
Create_SRF_netCDF: Function to create a netCDF SRF data file for
writing.
Inquire_SRF_netCDF: Function to inquire a netCDF SRF format file
to obtain the number of channels and the
channel list.
Write_SRF_netCDF: Function to write SRF data to a netCDF format
SRF file.
Read_SRF_netCDF: Function to read a selected channels' SRF data
from a netCDF SRF format file.
INCLUDE FILES:
None.
EXTERNALS:
None.
COMMON BLOCKS:
None.
CREATION HISTORY:
Written by: Paul van Delst, CIMSS/SSEC 03-Oct-2001
paul.vandelst@ssec.wisc.edu
Copyright (C) 2001 Paul van Delst
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
(See srf_netcdf_io.f90)
NAME:
SRF_Utility
PURPOSE:
Module containing routines for application of SRF data.
CATEGORY:
Instrument Information : SRF
LANGUAGE:
Fortran-95
CALLING SEQUENCE:
USE SRF_Utility
MODULES:
Type_Kinds: Module containing definitions for kinds
of variable types.
Error_Handler: Module to define simple error codes and
handle error conditions
USEs: FILE_UTILITY module
Compare_Float_Numbers: Module containing routines to perform equality
and relational comparisons on floating point
numbers.
USEs: TYPE_KINDS module
Interpolate: Module containing interpolation routines.
USEs: TYPE_KINDS module
ERROR_HANDLER module
Integrate: Module containing integration routines.
USEs: TYPE_KINDS module
ERROR_HANDLER module
INTERPOLATE module
SRF_Define: Module defining the SRF data structure and
containing routines to manipulate it.
USEs: TYPE_KINDS module
ERROR_HANDLER module
CONTAINS:
Interpolate_SRF: Function to interpolate input SRFs to another
frequency grid.
Convolve_with_SRF: Function to convolve an spectrum with an SRF.
INCLUDE FILES:
None.
EXTERNALS:
None.
COMMON BLOCKS:
None.
CREATION HISTORY:
Written by: Paul van Delst, CIMSS/SSEC 18-Mar-2003
paul.vandelst@ssec.wisc.edu
Copyright (C) 2003 Paul van Delst
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
(See srf_utility.f90)