Module Documentation

Last modified: Fri Feb 11 14:23:42 2005.


List of Modules


Module Descriptions

BINARY_FILE_UTILITY

[Next Module] [List of Modules]
 NAME:
       Binary_File_Utility

 PURPOSE:
       Module for utility routines for "Binary" datafiles (unformatted,
       sequential) that conform to the required format.

 CATEGORY:
       Utility

 CALLING SEQUENCE:
       USE Binary_File_Utility

 OUTPUTS:
       None.

 MODULES:
       Type_Kinds:             Module containing data type kind definitions.

       File_Utility:           Module containing generic file utility routines

       Error_Handler:          Module to define error codes and handle error
                               conditions.
                               USEs: FILE_UTILITY module

       Endian_Utility:         Module containing functions to byte-swap intrinsic
                               data types.
                               USEs: TYPE_KINDS module

 CONTAINS:
       PUBLIC routines
       ---------------

         Open_Binary_File:     Function to open the sequential access
                               unformatted files.

       PRIVATE routines
       ----------------

         Check_Binary_File:    Function to determine if the Binary
                               file is in the correct format, endian-wise.

 EXTERNALS:
       None

 COMMON BLOCKS:
       None.

 SIDE EFFECTS:
       None known.

 RESTRICTIONS:
       None.

 CREATION HISTORY:
       Written by:     Paul van Delst, CIMSS/SSEC 12-Jun-2000
                       paul.vandelst@ssec.wisc.edu

  Copyright (C) 2000,2003,2004 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 binary_file_utility.f90)


COMPARE_FLOAT_NUMBERS

[Previous Module] [Next Module] [List of Modules]
 NAME:
       Compare_Float_Numbers

 PURPOSE:
       Module containing routines to perform equality and relational
       comparisons on floating point numbers.

 CATEGORY:
       Utility

 LANGUAGE:
       Fortran-95

 CALLING SEQUENCE:
       USE Compare_Numbers

 MODULES:
       Type_Kinds:         Module containing definitions for kinds
                           of variable types.

 CONTAINS:
       .EqualTo.           Relational operator to test the equality of
                           floating point numbers.

       .GreaterThan.       Relational operator to test if one operand
                           is greater than another.

       .LessThan.          Relational operator to test if one operand
                           is less than another.

       Compare_Float:      Function to compare floating point scalars
                           and arrays with adjustible precision tolerance.

 INCLUDE FILES:
       None.

 EXTERNALS:
       None.

 COMMON BLOCKS:
       None.

 CREATION HISTORY:
       Written by:     Paul van Delst, CIMSS/SSEC 01-Apr-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 compare_float_numbers.f90)


DATE_UTILITY

[Previous Module] [Next Module] [List of Modules]
 NAME:
       Date_Utility

 PURPOSE:
       Module containing date conversion routines

 CATEGORY:
       Utility

 LANGUAGE:
       Fortran-95

 CALLING SEQUENCE:
       USE Date_Utility

 MODULES:
       Error_Handler:   Module to define error codes and handle
                        error conditions

 CONTAINS:
       Is_Leap_year:            Function to test if a year is a leap year.

       Day_of_Year_to_Date:     Function to convert the day of year into 
                                either a numeric or character string date.

       Date_to_Day_of_Year:     Function to convert input numeric date
                                (e.g. DD,MM,YYYY) date information to
                                a day of year.

 EXTERNALS:
       None.

 COMMON BLOCKS:
       None.

 CREATION HISTORY:
       Written by:     Paul van Delst, CIMSS/SSEC 03-Apr-2000
                       paul.vandelst@ssec.wisc.edu

  Copyright (C) 2000, 2004 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 date_utility.f90)


ENDIAN_UTILITY

[Previous Module] [Next Module] [List of Modules]
 NAME:
       Endian_Utility

 PURPOSE:
       Module containing functions to byte-swap intrinsic data types.

 CATEGORY:
       Utility

 LANGUAGE:
       Fortran-95

 CALLING SEQUENCE:
       USE Endian_Utility

 MODULES:
       Type_Kinds:   Module to hold specification kinds for variable
                     declaration.

 CONTAINS:
       Big_Endian:   Logical function that returns .TRUE. if platform
                     is big endian.

       Swap_Endian:  Function that byte-swaps input arguments.

 INCLUDE FILES:
       None.

 EXTERNALS:
       None.

 COMMON BLOCKS:
       None.

 FILES ACCESSED:
       None.

 SIDE EFFECTS:
       None.

 RESTRICTIONS:
       None.

 CREATION HISTORY:
         Written by:   Paul van Delst, CIMSS/SSEC, 17-Mar-2000
                       paul.vandelst@ssec.wisc.edu

  Copyright (C) 2000 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 endian_utility.f90)


ERROR_HANDLER

[Previous Module] [Next Module] [List of Modules]
 NAME:
       Error_Handler

 PURPOSE:
       Module to define simple error codes and output messages.

 CATEGORY:
       Utility

 LANGUAGE:
       Fortran-95

 CALLING SEQUENCE:
       USE Error_Handler

 OUTPUTS:
       SUCCESS:     Code specifying successful completion.
                    UNITS:      N/A
                    TYPE:       INTEGER
                    DIMENSION:  Scalar
                    ATTRIBUTES: PARAMETER, PUBLIC

       INFORMATION: Code specifying information output.
                    UNITS:      N/A
                    TYPE:       INTEGER
                    DIMENSION:  Scalar
                    ATTRIBUTES: PARAMETER, PUBLIC

       WARNING:     Code specifying warning state. Execution can
                    continue but results may be incorrect.
                    UNITS:      N/A
                    TYPE:       INTEGER
                    DIMENSION:  Scalar
                    ATTRIBUTES: PARAMETER, PUBLIC

       FAILURE:     Code specifying severe error. Execution cannot
                    continue.
                    UNITS:      N/A
                    TYPE:       INTEGER
                    DIMENSION:  Scalar
                    ATTRIBUTES: PARAMETER, PUBLIC

       UNDEFINED:   Code specifying undefined completion status.
                    UNITS:      N/A
                    TYPE:       INTEGER
                    DIMENSION:  Scalar
                    ATTRIBUTES: PARAMETER, PUBLIC


 MODULES:
       File_Utility:     Module containing generic file utility routines.

 CONTAINS:
       Display_Message:  Subroutine to display error/status messages either
                         to standard output (default) or to a log file.

       Open_Message_Log: Function to open the message log file.

 EXTERNALS:
       None

 COMMON BLOCKS:
       None.

 SIDE EFFECTS:
       None known.

 RESTRICTIONS:
       None.

 EXAMPLE:
       USE Error_Handler
       Error_Status = calculate_widget_size()
       IF ( Error_Status /= SUCCESS ) THEN
         CALL Display_Message( Routine_Name, &
                               'Error calculating widget size', &
                               Error_Status, &
                               Message_Log = 'error_log.txt' )
         RETURN
       END IF

 CREATION HISTORY:
       Written by:     Paul van Delst, CIMSS/SSEC 12-Jun-2000
                       paul.vandelst@ssec.wisc.edu

  Copyright (C) 2000, 2004 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 error_handler.f90)


FILE_UTILITY

[Previous Module] [Next Module] [List of Modules]
 NAME:
       File_Utility

 PURPOSE:
       Module containing generic file utility routines

 CATEGORY:
       Utility

 LANGUAGE:
       Fortran-95

 CALLING SEQUENCE:
       USE File_Utility

 MODULES:
       None.

 CONTAINS:
       Get_Lun:      Function to return a free logical unit number for
                     file access.

       File_Exists:  Function to determine if a named file exists.

       File_Open:    Function to determine if a file is open.

 EXTERNALS:
       None

 COMMON BLOCKS:
       None.

 SIDE EFFECTS:
       None.

 RESTRICTIONS:
       None.

 CREATION HISTORY:
       Written by:     Paul van Delst, CIMSS/SSEC 12-Jul-2000
                       paul.vandelst@ssec.wisc.edu

  Copyright (C) 2000, 2004 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 file_utility.f90)


FUNDAMENTAL_CONSTANTS

[Previous Module] [Next Module] [List of Modules]
 NAME:
       Fundamental_Constants

 PURPOSE:
       Module containing various fundamental physical constants.

 CATEGORY:
       Utility

 LANGUAGE:
       Fortran-95

 CALLING SEQUENCE:
       USE Fundamental_Constants

 MODULES:
       Type_Kinds:      Module containing definitions for kinds of variable
                        types

 OUTPUTS:
       Irrational numbers
       ------------------

       PI:                        Value of pi.
                                  UNITS:      N/A.
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       PI_RECIPROCAL:             Reciprocal value of pi, 1/pi.
                                  UNITS:      N/A.
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       PI_SQUARED:                Squared value of pi, pi^2.
                                  UNITS:      N/A.
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       PI_SQUARE_ROOT:            Square root value of pi, pi^0.5.
                                  UNITS:      N/A.
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       PI_LN:                     Natural logarithm of pi, LN(pi).
                                  UNITS:      N/A.
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       PI_LOG10:                  Base-10 logarithm of pi, LOG(pi).
                                  UNITS:      N/A.
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       E:                         Value of e, base of the natural logarithm.
                                  UNITS:      N/A.
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       E_RECIPROCAL:              Reciprocal value of e, 1/e.
                                  UNITS:      N/A.
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       E_SQUARED:                 Squared value of e, e^2.
                                  UNITS:      N/A.
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       E_LOG10:                   Base-10 logarithm of e, LOG(e).
                                  UNITS:      N/A.
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       Universal Constants
       -------------------

       SPEED_OF_LIGHT:            Speed of light in a vacuum, c
                                  UNITS:      metres/second, m/s
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       PERMEABILITY:              Permeability of free space, mu0, where
                                    mu0 = 4.PI x 10^-7
                                  UNITS:      Newton/Ampere^2, N/A^2
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       PERMITTIVITY:              Permittivity of free space, epsilon0, where
                                                    1
                                    epsilon0 = -----------
                                                mu0 . c^2
                                  UNITS:      Farad/metre, F/m
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       PLANCK_CONSTANT:           Planck's constant, h
                                  UNITS:      Joule.seconds, Js
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       GRAVITATIONAL_CONSTANT:    Universal, or Newtonian, gravitation
                                  constant, G
                                  UNITS:      m^3/(kg.s^2)
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       Conversion Factors
       ------------------

       ELECTRON_VOLT:             Electron volt, the work required to move
                                  one electron through a potential difference
                                  of one volt.
                                  UNITS:      Joules, J
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       UNIFIED_ATOMIC_MASS_UNIT:  Unified atomic mass unit, u. This is a
                                  unit of mass equal to the mass of 1/12 of
                                  a mole of Carbon-12 atoms
                                  UNITS:      kg
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       STANDARD_ATMOSPHERE:       Standard atmospheric pressure.
                                  UNITS:      Pascals, Pa
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       STANDARD_TEMPERATURE:      Standard atmospheric temperature.
                                  Note that the unit of thermodynamic temperature,
                                  the Kelvin, is the fraction 1/273.16 of the
                                  thermodynamic temperature of the triple point
                                  of water. The standard temperature is the ice
                                  point of water, 273.15, NOT the triple point.
                                  UNITS:      Kelvin, K
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       STANDARD_GRAVITY:          Standard acceleration of gravity.
                                  UNITS:      m/s^2
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       Physicochemical Constants
       -------------------------

       AVOGADRO_CONSTANT:         Avogadro's number, N(A). The number of atoms or
                                  molecules required such that the number of grams
                                  of a substance equals its atomic mass. This number
                                  of atoms or molecules is a mole.
                                  UNITS:      mol^-1
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       MOLAR_GAS_CONSTANT:        Universal gas constant, R.
                                  UNITS:      J/(mol.K)
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       BOLTZMANN_CONSTANT:        Boltzmann's constant, k, where
                                          R
                                    k = ------
                                         N(A)
                                  UNITS:      J/K
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       STEFAN_BOLTZMANN_CONSTANT: Stefan-Boltzmann constant, sigma, where
                                              pi^2
                                              ----.k^4
                                               60                     h
                                    sigma = ------------   ( hbar = ----- )
                                             hbar^3.c^2              2pi
                                  UNITS:      W/(m^2.K^4)
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       C_1:                       First radiation constant for spectral
                                  radiance, c1, where
                                    c1 = 2.h.c^2
                                  UNITS:      W.m^2.sr^-1
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       C_2:                       Second radiation constant, c2, where
                                          h.c
                                    c2 = -----
                                           k
                                  UNITS:      K.m
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       STP_MOLAR_VOLUME:          Molar volume, Vm, of an ideal gas at standard
                                  temperature and pressure, where
                                          R.T0
                                    Vm = ------
                                           P0
                                  UNITS:      m^3/mol
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC

       LOSCHMIDT_CONSTANT:        The number density, n0, of one mole of an
                                  ideal gas at standard temperature and
                                  pressure, where
                                          N(A).P0     N(A)      P0
                                    n0 = --------- = ------ = ------
                                           R.T0        Vm      k.T0
                                  UNITS:      m^-3
                                  TYPE:       REAL( fp_kind )
                                  DIMENSION:  Scalar
                                  ATTRIBUTES: PARAMETER, PUBLIC


 CONTAINS:
       None.

 INCLUDE FILES:
       None.

 EXTERNALS:
       None.

 COMMON BLOCKS:
       None.

 FILES ACCESSED:
       None.

 SIDE EFFECTS:
       None.

 RESTRICTIONS:
       None.

 PROCEDURE:
       The fundamental constants and equations used are taken from the
       NIST Reference on Constants, Units, and Uncertainty website:

         http://physics.nist.gov/cuu/Constants/

       See also:

         Mohr, P.J. and B.N. Taylor, "CODATA recommended values of the
           fundamental physical constants: 1998", Reviews of Modern Physics, 
           Vol.72, No.2, 2000.

 CREATION HISTORY:
       Written by:     Paul van Delst, CIMSS/SSEC 02-May-2000
                       paul.vandelst@ssec.wisc.edu

  Copyright (C) 2000 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 fundamental_constants.f90)


LIST_FILE_UTILITY

[Previous Module] [Next Module] [List of Modules]
 NAME:
       List_File_Utility

 PURPOSE:
       Module containing routines for reading list files, i.e. ASCII files
       that contain lists of character or integer data, one item per line.

 CATEGORY:
       Utility

 LANGUAGE:
       Fortran-95

 CALLING SEQUENCE:
       USE List_File_Utility

 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

 CONTAINS:
       PUBLIC routines
       ---------------

       Read_List_File:           Function to read a list file and populate 
                                 a List File structure.

       Get_List_Size:            Fucntion to return the size of the List File
                                 structure.

       Get_List_Entry:           Function to return requested entries in a 
                                 populated List File structure.

       PRIVATE routines
       ----------------
       Clear_List:               Subroutine to clear the scalar members of a
                                 List_File structure.

       Associated_List:          Function to test the association status of
                                 the pointer members of a List File structure.

       Destroy_List:             Function to re-initialize the scalar and
                                 pointer members of List File data structures.

       Allocate_List:            Function to allocate the pointer members of
                                 the List File data structure.

       Open_List_File:           Function to open a list file for reading.

       Count_List_File_Entries:  Function to count the number of entries in a
                                 list file

 DERIVED TYPES:
       All derived types defined in this module are declared PUBLIC but 
       with PRIVATE components. The public routines above must be used to
       access the contents of the structures.

       Character_List_File_type:   Definition of the List File structure for
                                   character data. Fields are:

         n_Entries:                     Number of list file entries.
                                        UNITS:      N/A
                                        TYPE:       INTEGER
                                        DIMENSION:  Scalar

         Entry:                         Array of list file entries.
                                        UNITS:      N/A
                                        TYPE:       CHARACTER(5000)
                                        DIMENSION:  Rank-1 (n_Entries)
                                        ATTRIBUTES: POINTER


       Integer_List_File_type:     Definition of the List File structure for
                                   integer data. Fields are:

         n_Entries:                     Number of list file entries.
                                        UNITS:      N/A
                                        TYPE:       INTEGER
                                        DIMENSION:  Scalar

         Entry:                         Array of list file entries.
                                        UNITS:      N/A
                                        TYPE:       INTEGER
                                        DIMENSION:  Rank-1 (n_Entries)
                                        ATTRIBUTES: POINTER

 INCLUDE FILES:
       None.

 EXTERNALS:
       None.

 COMMON BLOCKS:
       None.

 FILES ACCESSED:
       None.

 SIDE EFFECTS:
       None.

 RESTRICTIONS:
       None.

 CREATION HISTORY:
       Written by:     Paul van Delst, CIMSS/SSEC 07-Feb-2003
                       paul.vandelst@ssec.wisc.edu

  Copyright (C) 2003, 2004 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 list_file_utility.f90)


STRING_UTILITY

[Previous Module] [Next Module] [List of Modules]
 NAME:
       String_Utility

 PURPOSE:
       Module containing string utility routines

 CATEGORY:
       Utility

 LANGUAGE:
       Fortran-95

 CALLING SEQUENCE:
       USE String_Utility

 MODULES:
       None.

 CONTAINS:
       StrUpCase:    Function to convert an input string to upper case.

       StrLowCase:   Function to convert an input string to lower case.

       StrCompress:  Function to return a copy of an input string
                     with all internal whitespace (spaces and tabs)
                     removed.

 EXTERNALS:
       None.

 COMMON BLOCKS:
       None.

 SIDE EFFECTS:
       None.

 RESTRICTIONS:
       None known.

 CREATION HISTORY:
       Written by:     Paul van Delst, CIMSS/SSEC 18-Oct-1999
                       paul.vandelst@ssec.wisc.edu

  Copyright (C) 1999, 2004 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 string_utility.f90)


TYPE_KINDS

[Previous Module] [List of Modules]
 NAME:
       Type_Kinds

 PURPOSE:
       Module to hold specification kinds for variable declaration.

 CATEGORY:
       Utility

 LANGUAGE:
       Fortran-95

 CALLING SEQUENCE:
       USE Type_Kinds

 OUTPUTS:
       Integer Kind Types
       ------------------

       Byte:             Kind type for byte (1-byte) integer variable
                         UNITS:      N/A.
                         TYPE:       INTEGER
                         DIMENSION:  Scalar
                         ATTRIBUTES: PARAMETER, PUBLIC

       Short:            Kind type for short (2-byte) integer variable
                         UNITS:      N/A.
                         TYPE:       INTEGER
                         DIMENSION:  Scalar
                         ATTRIBUTES: PARAMETER, PUBLIC

       Long:             Kind type for long (4-byte) integer variable
                         UNITS:      N/A.
                         TYPE:       INTEGER
                         DIMENSION:  Scalar
                         ATTRIBUTES: PARAMETER, PUBLIC

       LLong:            Kind type for double long (8-byte) integer variable
                         If this kind type is not supported by a compiler, the
                         value defaults to Long.
                         UNITS:      N/A.
                         TYPE:       INTEGER
                         DIMENSION:  Scalar
                         ATTRIBUTES: PARAMETER, PUBLIC

       IP_Kind:          Kind type for a user specified default integer.
                         The actual kind type this value corresponds
                         to is determined by the PRIVATE IIP index.
                         UNITS:      N/A.
                         TYPE:       INTEGER
                         DIMENSION:  Scalar
                         ATTRIBUTES: PARAMETER, PUBLIC


       Floating point Kind Types
       -------------------------

       Single:           Kind type for single precision (4-byte) real variable
                         UNITS:      N/A.
                         TYPE:       INTEGER
                         DIMENSION:  Scalar
                         ATTRIBUTES: PARAMETER, PUBLIC

       Double:           Kind type for double precision (8-byte) real variable
                         UNITS:      N/A.
                         TYPE:       INTEGER
                         DIMENSION:  Scalar
                         ATTRIBUTES: PARAMETER, PUBLIC

       Quad:             Kind type for quad precision (16-byte) real variable
                         If this kind type is not supported by a compiler, the
                         value defaults to Double.
                         UNITS:      N/A.
                         TYPE:       INTEGER
                         DIMENSION:  Scalar
                         ATTRIBUTES: PARAMETER, PUBLIC

       FP_Kind:          Kind for for a user specified default floating point
                         variable. The actual kind type this value corresponds
                         to is determined by the PRIVATE IFP index.
                         UNITS:      N/A.
                         TYPE:       INTEGER
                         DIMENSION:  Scalar
                         ATTRIBUTES: PARAMETER, PUBLIC


       Integer Byte Sizes
       ------------------

       n_Bytes_Byte:     The expected size of a Byte kind integer in units
                         of 8-bit bytes.
                         UNITS:      N/A.
                         TYPE:       INTEGER
                         DIMENSION:  Scalar
                         ATTRIBUTES: PARAMETER, PUBLIC

       n_Bytes_Short:    The expected size of a Short kind integer in units
                         of 8-bit bytes.
                         UNITS:      N/A.
                         TYPE:       INTEGER
                         DIMENSION:  Scalar
                         ATTRIBUTES: PARAMETER, PUBLIC

       n_Bytes_Long:     The expected size of a Long kind integer in units
                         of 8-bit bytes.
                         UNITS:      N/A.
                         TYPE:       INTEGER
                         DIMENSION:  Scalar
                         ATTRIBUTES: PARAMETER, PUBLIC

       n_Bytes_LLong:    The expected size of a LLong kind integer in units
                         of 8-bit bytes.
                         UNITS:      N/A.
                         TYPE:       INTEGER
                         DIMENSION:  Scalar
                         ATTRIBUTES: PARAMETER, PUBLIC

       n_Bytes_IP_kind:  The expected size of the user specified default
                         integer kind in units of 8-bit bytes. The actual
                         kind type size this value corresponds to is
                         determined by the PRIVATE IIP index.
                         UNITS:      N/A.
                         TYPE:       INTEGER
                         DIMENSION:  Scalar
                         ATTRIBUTES: PARAMETER, PUBLIC



       Floating point Byte Sizes
       -------------------------

       n_Bytes_Single:   The expected size of a Single kind real variable
                         in units of 8-bit bytes.
                         UNITS:      N/A.
                         TYPE:       INTEGER
                         DIMENSION:  Scalar
                         ATTRIBUTES: PARAMETER, PUBLIC

       n_Bytes_Double:   The expected size of a Double kind real variable
                         in units of 8-bit bytes.
                         UNITS:      N/A.
                         TYPE:       INTEGER
                         DIMENSION:  Scalar
                         ATTRIBUTES: PARAMETER, PUBLIC

       n_Bytes_Quad:     The expected size of a Quad kind real variable
                         in units of 8-bit bytes.
                         UNITS:      N/A.
                         TYPE:       INTEGER
                         DIMENSION:  Scalar
                         ATTRIBUTES: PARAMETER, PUBLIC

       n_Bytes_FP_kind:  The expected size of the user specified default
                         real kind variable in units of 8-bit bytes. The
                         actual kind type size this value corresponds to 
                         is determined by the PRIVATE IFP index.
                         UNITS:      N/A.
                         TYPE:       INTEGER
                         DIMENSION:  Scalar
                         ATTRIBUTES: PARAMETER, PUBLIC

 MODULES:
       None

 CONTAINS:
       None.

 SIDE EFFECTS:
       If the LLong or Quad kind types are not available they default to the
       Long and Double kind specifications.

 RESTRICTIONS:
       None

 EXAMPLE:
       USE Type_Kinds
       INTEGER( Long ) :: i, j
       REAL( Single )  :: x, y

 CREATION HISTORY:
       Written by:     Paul van Delst, CIMSS/SSEC 12-Jun-2000
                       paul.vandelst@ssec.wisc.edu


  Copyright (C) 2000, 2004 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 type_kinds.f90)