Last modified: Fri Sep 3 16:32:04 2004.
NAME:
Associated_SRF
PURPOSE:
Function to test if ALL the pointer members of a SRF structure
are associated.
CATEGORY:
Instrument Information: SRF
LANGUAGE:
Fortran-95
CALLING SEQUENCE:
Association_Status = Associated_SRF( SRF, & ! Input
ANY_Test = Any_Test ) ! Optional input
INPUT ARGUMENTS:
SRF: SRF structure which is to have its pointer
member's association status tested.
UNITS: N/A
TYPE: SRF_type
DIMENSION: Scalar
ATTRIBUTES: INTENT( IN )
OPTIONAL INPUT ARGUMENTS:
ANY_Test: Set this argument to test if ANY of the
SRF structure pointer members are associated.
The default is to test if ALL the pointer members
are associated.
If ANY_Test = 0, test if ALL the pointer members
are associated. (DEFAULT)
ANY_Test = 1, test if ANY of the pointer members
are associated.
UNITS: N/A
TYPE: INTEGER
DIMENSION: Scalar
ATTRIBUTES: INTENT( IN ), OPTIONAL
OUTPUT ARGUMENTS:
None.
OPTIONAL OUTPUT ARGUMENTS:
None.
FUNCTION RESULT:
Association_Status: The return value is a logical value indicating the
association status of the SRF pointer members.
.TRUE. - if ALL the SRF pointer members are
associated, or if the ANY_Test argument
is set and ANY of the SRF pointer
members are associated.
.FALSE. - some or all of the SRF pointer
members are NOT associated.
UNITS: N/A
TYPE: LOGICAL
DIMENSION: Scalar
CALLS:
Display_Message: Subroutine to output Messages
SOURCE: ERROR_HANDLER module
SIDE EFFECTS:
None.
RESTRICTIONS:
This function tests the association status of the SRF structure
pointer members, Therefore this function must only be called after
the input SRF structure has had its pointer members initialized.
CREATION HISTORY:
Written by: Paul van Delst, CIMSS/SSEC 25-Aug-2003
paul.vandelst@ssec.wisc.edu
(See SRF_Define.f90)
NAME:
Destroy_SRF
PURPOSE:
Function to re-initialize the scalar and pointer members of SRF
data structures.
CATEGORY:
Instrument Information: SRF
LANGUAGE:
Fortran-95
CALLING SEQUENCE:
Error_Status = Destroy_SRF( SRF, & ! Output
RCS_Id = RCS_Id, & ! Revision control
Message_Log = Message_Log ) ! Error messaging
INPUT ARGUMENTS:
None.
OPTIONAL INPUT ARGUMENTS:
Message_Log: Character string specifying a filename in which any
messages will be logged. If not specified, or if an
error occurs opening the log file, the default action
is to output messages to standard output.
UNITS: None
TYPE: CHARACTER(*)
DIMENSION: Scalar
ATTRIBUTES: INTENT( IN ), OPTIONAL
OUTPUT ARGUMENTS:
SRF: Re-initialised SRF structure.
UNITS: N/A
TYPE: SRF_type
DIMENSION: Scalar or Rank-1 array
ATTRIBUTES: INTENT( IN OUT )
OPTIONAL OUTPUT ARGUMENTS:
RCS_Id: Character string containing the Revision Control
System Id field for the module.
UNITS: None
TYPE: CHARACTER(*)
DIMENSION: Scalar
ATTRIBUTES: INTENT( OUT ), OPTIONAL
FUNCTION RESULT:
Error_Status: The return value is an integer defining the error status.
The error codes are defined in the ERROR_HANDLER module.
If == SUCCESS the structure re-initialisation was successful
== FAILURE - an error occurred, or
- the structure internal allocation counter
is not equal to zero (0) upon exiting this
function. This value is incremented and
decremented for every structure allocation
and deallocation respectively.
UNITS: N/A
TYPE: INTEGER
DIMENSION: Scalar
CALLS:
Display_Message: Subroutine to output messages
SOURCE: ERROR_HANDLER module
SIDE EFFECTS:
None.
RESTRICTIONS:
None.
COMMENTS:
Note the INTENT on the output SRF argument is IN OUT rather than
just OUT. This is necessary because the argument may be defined upon
input. To prevent memory leaks, the IN OUT INTENT is a must.
CREATION HISTORY:
Written by: Paul van Delst, CIMSS/SSEC 03-Oct-2001
paul.vandelst@ssec.wisc.edu
(See SRF_Define.f90)
NAME:
Allocate_SRF
PURPOSE:
Function to allocate the pointer members of the SRF data structure.
CATEGORY:
Instrument Information: SRF
LANGUAGE:
Fortran-95
CALLING SEQUENCE:
Error_Status = Allocate_SRF( n_Points, & ! Input
SRF, & ! Output
RCS_Id = RCS_Id, & ! Revision control
Message_Log = Message_Log ) ! Error messaging
INPUT ARGUMENTS:
n_Points: Required dimension of SRF structure pointer members.
Must be > 0.
UNITS: N/A
TYPE: INTEGER
DIMENSION: Scalar
ATTRIBUTES: INTENT( IN )
OPTIONAL INPUT ARGUMENTS:
Message_Log: Character string specifying a filename in which any
messages will be logged. If not specified, or if an
error occurs opening the log file, the default action
is to output messages to standard output.
UNITS: None
TYPE: CHARACTER(*)
DIMENSION: Scalar
ATTRIBUTES: INTENT( IN ), OPTIONAL
OUTPUT ARGUMENTS:
SRF: SRF structure with allocated pointer members
UNITS: N/A
TYPE: SRF_type
DIMENSION: Scalar
ATTRIBUTES: INTENT( IN OUT )
OPTIONAL OUTPUT ARGUMENTS:
RCS_Id: Character string containing the Revision Control
System Id field for the module.
UNITS: None
TYPE: CHARACTER(*)
DIMENSION: Scalar
ATTRIBUTES: INTENT( OUT ), OPTIONAL
FUNCTION RESULT:
Error_Status: The return value is an integer defining the error status.
The error codes are defined in the ERROR_HANDLER module.
If == SUCCESS the structure re-initialisation was successful
== FAILURE - an error occurred, or
- the structure internal allocation counter
is not equal to one (1) upon exiting this
function. This value is incremented and
decremented for every structure allocation
and deallocation respectively.
UNITS: N/A
TYPE: INTEGER
DIMENSION: Scalar
CALLS:
Associated_SRF: Function to test the association status of the
pointer members of a SRF structure.
Destroy_SRF: Function to re-initialize the scalar and pointer
members of SRF data structures.
Display_Message: Subroutine to output messages
SOURCE: ERROR_HANDLER module
SIDE EFFECTS:
None.
RESTRICTIONS:
None.
COMMENTS:
Note the INTENT on the output SRF argument is IN OUT rather than
just OUT. This is necessary because the argument may be defined upon
input. To prevent memory leaks, the IN OUT INTENT is a must.
CREATION HISTORY:
Written by: Paul van Delst, CIMSS/SSEC 08-Jan-2002
paul.vandelst@ssec.wisc.edu
(See SRF_Define.f90)
NAME:
Assign_SRF
PURPOSE:
Function to copy valid SRF structures.
CATEGORY:
Instrument Information: SRF
LANGUAGE:
Fortran-95
CALLING SEQUENCE:
Error_Status = Assign_SRF( SRF_in, & ! Input
SRF_out, & ! Output
Scalar_Only = Scalar_Only, & ! Opotional input
RCS_Id = RCS_Id, & ! Revision control
Message_Log = Message_Log ) ! Error messaging
INPUT ARGUMENTS:
SRF_in: SRF structure which is to be copied.
UNITS: N/A
TYPE: SRF_type
DIMENSION: Scalar
ATTRIBUTES: INTENT( IN )
OPTIONAL INPUT ARGUMENTS:
Scalar_Only: Set this argument to copy *only* the scalar components.
The default action is to copy all components, allocating
the arrays as required.
If == 0, Copy ALL components, allocating arrays as required.
== 1, Copy scalar components ONLY. No array allocation
is performed.
UNITS: N/A
TYPE: INTEGER
DIMENSION: Scalar
ATTRIBUTES: INTENT( IN ), OPTIONAL
Message_Log: Character string specifying a filename in which any
messages will be logged. If not specified, or if an
error occurs opening the log file, the default action
is to output messages to standard output.
UNITS: N/A
TYPE: CHARACTER(*)
DIMENSION: Scalar
ATTRIBUTES: INTENT( IN ), OPTIONAL
OUTPUT ARGUMENTS:
SRF_out: Copy of the input structure, SRF_in.
UNITS: N/A
TYPE: SRF_type
DIMENSION: Scalar
ATTRIBUTES: INTENT( IN OUT )
OPTIONAL OUTPUT ARGUMENTS:
RCS_Id: Character string containing the Revision Control
System Id field for the module.
UNITS: None
TYPE: CHARACTER(*)
DIMENSION: Scalar
ATTRIBUTES: INTENT( OUT ), OPTIONAL
FUNCTION RESULT:
Error_Status: The return value is an integer defining the error status.
The error codes are defined in the ERROR_HANDLER module.
If == SUCCESS the structure assignment was successful
== FAILURE an error occurred
UNITS: N/A
TYPE: INTEGER
DIMENSION: Scalar
CALLS:
Associated_SRF: Function to test the association status of the
pointer members of a SRF structure.
Allocate_SRF: Function to allocate the pointer members of
the SRF data structure.
Display_Message: Subroutine to output messages
SOURCE: ERROR_HANDLER module
SIDE EFFECTS:
None.
RESTRICTIONS:
None.
COMMENTS:
Note the INTENT on the output SRF argument is IN OUT rather than
just OUT. This is necessary because the argument may be defined upon
input. To prevent memory leaks, the IN OUT INTENT is a must.
CREATION HISTORY:
Written by: Paul van Delst, CIMSS/SSEC 03-Oct-2001
paul.vandelst@ssec.wisc.edu
(See SRF_Define.f90)
NAME:
Frequency_SRF
PURPOSE:
Function to compute the frequency grid for a supplied SRF data
structure.
CATEGORY:
Instrument Information: SRF
LANGUAGE:
Fortran-95
CALLING SEQUENCE:
Error_Status = Frequency_SRF( SRF, & ! In/Output
Message_Log = Message_Log ) ! Error messaging
INPUT ARGUMENTS:
SRF: SRF structure with fields containing the begin and
end frequencies of the frequency grid to compute.
UNITS: N/A
TYPE: SRF_type
DIMENSION: Scalar
ATTRIBUTES: INTENT( IN OUT )
OPTIONAL INPUT ARGUMENTS:
Message_Log: Character string specifying a filename in which any
messages will be logged. If not specified, or if an
error occurs opening the log file, the default action
is to output messages to standard output.
UNITS: None
TYPE: CHARACTER(*)
DIMENSION: Scalar
ATTRIBUTES: INTENT( IN ), OPTIONAL
OUTPUT ARGUMENTS:
SRF: SRF structure with the frequency component filled.
UNITS: N/A
TYPE: SRF_type
DIMENSION: Scalar
ATTRIBUTES: INTENT( IN OUT )
OPTIONAL OUTPUT ARGUMENTS:
None.
FUNCTION RESULT:
Error_Status: The return value is an integer defining the error status.
The error codes are defined in the ERROR_HANDLER module.
If == SUCCESS the frequency grid calculation was successful
== FAILURE an error occurred processing the input
UNITS: N/A
TYPE: INTEGER
DIMENSION: Scalar
CALLS:
Display_Message: Subroutine to output messages
SOURCE: ERROR_HANDLER module
SIDE EFFECTS:
The FREQUENCY field of the input SRF structure is filled.
RESTRICTIONS:
SRF structure must contain at least 2 points of frequency and response
data.
CREATION HISTORY:
Written by: Paul van Delst, CIMSS/SSEC 07-May-2002
paul.vandelst@ssec.wisc.edu
(See SRF_Define.f90)
NAME:
Integrate_SRF
PURPOSE:
Function to integrate the response supplied in an SRF data
structure.
CATEGORY:
Instrument Information: SRF
LANGUAGE:
Fortran-95
CALLING SEQUENCE:
Error_Status = Integrate_SRF( SRF, & ! In/Output
Message_Log = Message_Log ) ! Error messaging
INPUT ARGUMENTS:
SRF: SRF structure with fields containing the frequency
and response arrays.
UNITS: N/A
TYPE: SRF_type
DIMENSION: Scalar
ATTRIBUTES: INTENT( IN OUT )
OPTIONAL INPUT ARGUMENTS:
Message_Log: Character string specifying a filename in which any
messages will be logged. If not specified, or if an
error occurs opening the log file, the default action
is to output messages to standard output.
UNITS: None
TYPE: CHARACTER(*)
DIMENSION: Scalar
ATTRIBUTES: INTENT( IN ), OPTIONAL
OUTPUT ARGUMENTS:
SRF: SRF structure with the integration components filled.
UNITS: N/A
TYPE: SRF_type
DIMENSION: Scalar
ATTRIBUTES: INTENT( IN OUT )
OPTIONAL OUTPUT ARGUMENTS:
None.
FUNCTION RESULT:
Error_Status: The return value is an integer defining the error status.
The error codes are defined in the ERROR_HANDLER module.
If == SUCCESS the integration was successful
== FAILURE an error occurred processing the input
UNITS: N/A
TYPE: INTEGER
DIMENSION: Scalar
CALLS:
Display_Message: Subroutine to output messages
SOURCE: ERROR_HANDLER module
SIDE EFFECTS:
The INTEGRATED_SRF and SUMMATION_SRF fields of the input SRF structure
are filled.
RESTRICTIONS:
SRF structure must contain at least 2 points of frequency and response
data.
CREATION HISTORY:
Written by: Paul van Delst, CIMSS/SSEC 27-Aug-2003
paul.vandelst@ssec.wisc.edu
(See SRF_Define.f90)
NAME:
Information_SRF
PURPOSE:
Subroutine to return a string containing information about the
SRF data structure.
CATEGORY:
Instrument Information : SRF
LANGUAGE:
Fortran-95
CALLING SEQUENCE:
CALL Information_SRF( SRF, & ! Input
Information, & ! Output
RCS_Id = RCS_Id ) ! Revision control
INPUT ARGUMENTS:
SRF: Filled SRF structure.
UNITS: N/A
TYPE: SRF_type
DIMENSION: Scalar
ATTRIBUTES: INTENT( IN )
OPTIONAL INPUT ARGUMENTS:
None.
OUTPUT ARGUMENTS:
Information: String containing information about the passed
SRF data structure.
UNITS: N/A
TYPE: CHARACTER(*)
DIMENSION: Scalar
ATTRIBUTES: INTENT( OUT )
OPTIONAL OUTPUT ARGUMENTS:
RCS_Id: Character string containing the Revision Control
System Id field for the module.
UNITS: None
TYPE: CHARACTER(*)
DIMENSION: Scalar
ATTRIBUTES: INTENT( OUT ), OPTIONAL
CALLS:
None.
SIDE EFFECTS:
None.
RESTRICTIONS:
None.
CREATION HISTORY:
Written by: Paul van Delst, CIMSS/SSEC 25-Aug-2003
paul.vandelst@ssec.wisc.edu
(See SRF_Define.f90)