Index of Functions: A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X 
Index Page
dxtrct

Table of contents
Procedure
Abstract
Required_Reading
Keywords
Declarations
Brief_I/O
Detailed_Input
Detailed_Output
Parameters
Exceptions
Files
Particulars
Examples
Restrictions
Literature_References
Author_and_Institution
Version

Procedure

     DXTRCT (Extract Double Precision Values From A String)

     SUBROUTINE DXTRCT ( KEYWD,   MAXWDS ,  STRING,
    .                    NFOUND,  PARSED,   VALUES   )

Abstract

     Locate a keyword and succeeding numeric words within a string.
     Parse and store the numeric words. Remove the keyword and
     numeric words from the input string.

Required_Reading

     None.

Keywords

     PARSING
     WORD

Declarations

     IMPLICIT NONE

     CHARACTER*(*)      KEYWD
     INTEGER            MAXWDS
     CHARACTER*(*)      STRING
     INTEGER            NFOUND
     INTEGER            PARSED
     DOUBLE PRECISION   VALUES ( * )

Brief_I/O

     VARIABLE  I/O  DESCRIPTION
     --------  ---  --------------------------------------------------
     KEYWD      I   Keyword used to mark start of a set of numbers.
     MAXWDS     I   Maximum number of numeric words that can be parsed
     STRING    I-O  String potentially containing KEYWD and numbers.
     NFOUND     O   Number of numeric words found following the KEYWD.
     PARSED     O   Number of numeric words translated and returned.
     VALUES     O   The double precision values for the numbers.

Detailed_Input

     KEYWD    is a word used to mark the start of a set of numeric
              words of interest.

     MAXWDS   is the maximum number of numeric words that can be
              parsed and returned.

     STRING   is a string potentially containing KEYWD and numbers.

Detailed_Output

     STRING   is the input string stripped of all parsed
              numeric words. If there was room available to parse
              all of the numeric words associated with KEYWD, the
              keyword that marked the beginning of the parsed
              numbers in the original string will also be removed.

     NFOUND   is the number of numeric words that were found
              following KEYWD but preceding the next non-numeric
              word of the string. If the KEYWD is not present in
              the string, NFOUND is returned as -1. If the keyword
              is located but the next word in the string is
              non-numeric NFOUND will be returned as 0.

     PARSED   is the number of numeric words that were actually
              parsed and stored in the output array VALUES. If no
              values are parsed PARSED is returned as 0.

     VALUES   are the double precision values for the parsed
              numeric words that follow the first occurrence of the
              keyword but precede the next non-numeric word.

Parameters

     None.

Exceptions

     Error free.

Files

     None.

Particulars

     Definitions:

        WORD           is a set of consecutive non-blank characters
                       delimited by blanks or the end of the string
                       that contains them.

        NUMERIC WORD   a word that can be parsed by the
                       SPICELIB routine NPARSD without error. All
                       FORTRAN numeric representations are numeric
                       words. In addition 'PI', 'Pi', 'pI', and 'pi'
                       are all recognized as having the value:

                          3.1415926535897932384626D0

                       See NPARSD FOR A a full description of
                       legitimate numeric words.

     Given a string and a keyword this routine locates the first
     occurrence of the keyword in the string and returns the double
     precision representations of up to MAXWDS succeeding numeric
     words. All parsed numeric words are removed from the string.
     If every numeric word following KEYWD but preceding the next
     non-numeric word is parsed,  KEYWD will also be removed from
     the string.

     If the keyword cannot be located in the string, the variable
     NFOUND will be returned as -1 and the string will be unchanged.

     In all other cases, some part of the string (possibly all of it)
     will be removed.

Examples

     Input   STRING  'LONGITUDE 39.2829  LATITUDE 24.27682'
             KEYWD   'LONGITUDE'
             MAXWDS   4

     Output: STRING  '  LATITUDE 24.27682'
             NFOUND  1
             PARSED  1
             VALUES  3.92829D+01



     Input   STRING  'THIS IS A BAD STRING FOR NUMBERS'
             KEYWD   'RADIUS'
             MAXWDS  2

     Output: STRING  'THIS IS A BAD STRING FOR NUMBERS'
             NFOUND  -1
             PARSED   0
             VALUES   (unchanged)



     Input   STRING  'PRIMES 11  13 17 19 23 NON-PRIMES 12 14 15'
             KEYWD   'PRIMES'
             MAXWDS  3

     Output: STRING  'PRIMES  19 23 NON-PRIMES 12 14 15'
             NFOUND  5
             PARSED  3
             VALUES  1.1D+01
                     1.3D+01
                     1.7D+01

     Input   STRING  'PRIMES 11  13 17 19 23 NON-PRIMES 12 14 15'
             KEYWD   'PRIMES'
             MAXWDS  5

     Output: STRING  ' NON-PRIMES 12 14 15'
             NFOUND  5
             PARSED  5
             VALUES  1.1D+01
                     1.3D+01
                     1.7D+01
                     1.9D+01
                     2.3D+01

Restrictions

     None.

Literature_References

     None.

Author_and_Institution

     J. Diaz del Rio    (ODC Space)
     H.A. Neilan        (JPL)
     W.L. Taber         (JPL)
     I.M. Underwood     (JPL)

Version

    SPICELIB Version 1.2.0, 05-JUN-2021 (JDR)

        Added IMPLICIT NONE statement.

        Edited the header to comply with NAIF standard.

    SPICELIB Version 1.1.1, 10-MAR-1992 (WLT)

        Comment section for permuted index source lines was added
        following the header.

    SPICELIB Version 1.1.0, 23-MAY-1990 (HAN)

        The variable FOUND was changed to NFOUND.

    SPICELIB Version 1.0.0, 31-JAN-1990 (WLT) (IMU)
Fri Dec 31 18:36:17 2021