SRF_DEFINE.F90 Subprograms

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


List of Subprograms


Subprogram Descriptions

ASSOCIATED_SRF

[Next Subprogram] [List of Subprograms]
 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)


DESTROY_SRF

[Previous Subprogram] [Next Subprogram] [List of Subprograms]
 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)


ALLOCATE_SRF

[Previous Subprogram] [Next Subprogram] [List of Subprograms]
 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)


ASSIGN_SRF

[Previous Subprogram] [Next Subprogram] [List of Subprograms]
 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)


FREQUENCY_SRF

[Previous Subprogram] [Next Subprogram] [List of Subprograms]
 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)


INTEGRATE_SRF

[Previous Subprogram] [Next Subprogram] [List of Subprograms]
 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)


INFORMATION_SRF

[Previous Subprogram] [List of Subprograms]
 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)