Module Documentation

Last modified: Fri Sep 3 16:32:04 2004.


List of Modules


Module Descriptions

SRF_DEFINE

[Next Module] [List of Modules]
 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)


SRF_ASCII_IO

[Previous Module] [Next Module] [List of Modules]
 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)


SRF_NETCDF_IO

[Previous Module] [Next Module] [List of Modules]
 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)


SRF_UTILITY

[Previous Module] [List of Modules]
 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)