tpictr |
Table of contents
ProcedureTPICTR ( Create a Time Format Picture ) SUBROUTINE TPICTR ( SAMPLE, PICTUR, OK, ERRMSG ) AbstractCreate a time format picture suitable for use by the routine TIMOUT from a given sample time string. Required_ReadingNone. KeywordsTIME DeclarationsIMPLICIT NONE CHARACTER*(*) SAMPLE CHARACTER*(*) PICTUR LOGICAL OK CHARACTER*(*) ERRMSG Brief_I/OVARIABLE I/O DESCRIPTION -------- --- -------------------------------------------------- SAMPLE I is a sample date time string PICTUR O is a format picture that describes SAMPLE OK O indicates success or failure to parse SAMPLE ERRMSG O a diagnostic returned if SAMPLE cannot be parsed Detailed_InputSAMPLE is a representative time string that to use as a model to format time strings. Detailed_OutputPICTUR is a format picture suitable for use with the SPICE routine TIMOUT. This picture when used to format the appropriate epoch via TIMOUT will yield the same time components in the same order as the components in SAMPLE. Picture should be declared to be at least 80 characters in length. If Picture is not sufficiently large to contain the format picture, the picture will be truncated on the right. OK is a logical flag. If all of the components of SAMPLE are recognizable, OK will be returned with the value .TRUE. If some part of PICTUR cannot be parsed, OK will be returned with the value .FALSE. ERRMSG is a diagnostic message that indicates what part of SAMPLE was not recognizable. If SAMPLE can be successfully parsed, OK will be .TRUE. and ERRMSG will be returned as a blank string. If ERRMSG does not have sufficient room (up to 400 characters) to contain the full message, the message will be truncated on the right. ParametersNone. ExceptionsError free. 1) All problems with the inputs are reported via OK and ERRMSG. 2) If a format picture can not be created from the sample time string, PICTUR is returned as a blank string. FilesNone. ParticularsAlthough the routine TIMOUT provides SPICE users with a great deal of flexibility in formatting time strings, users must master the means by which a time picture is constructed suitable for use by TIMOUT. This routine allows SPICE users to supply a sample time string from which a corresponding time format picture can be created, freeing users from the task of mastering the intricacies of the routine TIMOUT. Note that TIMOUT can produce many time strings whose patterns can not be discerned by this routine. When such outputs are called for, the user must consult TIMOUT and construct the appropriate format picture "by hand." However, these exceptional formats are not widely used and are not generally recognizable to an uninitiated reader. ExamplesThe numerical results shown for this example may differ across platforms. The results depend on the SPICE kernels used as input, the compiler and supporting libraries, and the machine specific arithmetic implementation. 1) Given a sample with the format of the UNIX date string local to California, create a SPICE time picture for use in TIMOUT. Using that SPICE time picture, convert a series of ephemeris times to that picture format. Use the LSK kernel below to load the leap seconds and time constants required for the conversions. naif0012.tls Example code begins here. PROGRAM TPICTR_EX1 IMPLICIT NONE C C Local parameters. C INTEGER ERRLEN PARAMETER ( ERRLEN = 400 ) INTEGER TIMLEN PARAMETER ( TIMLEN = 64 ) C C Local variables C CHARACTER*(ERRLEN) ERR CHARACTER*(TIMLEN) PICTUR CHARACTER*(TIMLEN) SAMPLE CHARACTER*(TIMLEN) TIMSTR CHARACTER*(TIMLEN) UTCSTR DOUBLE PRECISION ET LOGICAL OK C C Load LSK file. C CALL FURNSH ( 'naif0012.tls' ) C C Create the required time picture. C SAMPLE = 'Thu Oct 01 11:11:11 PDT 1111' CALL TPICTR ( SAMPLE, PICTUR, OK, ERR ) IF ( .NOT. OK ) THEN WRITE(*,*) 'Invalid time picture.' WRITE(*,*) ERR ELSE C C Convert the input UTC time to ephemeris time. C UTCSTR = '24 Mar 2018 16:23:00 UTC' CALL STR2ET ( UTCSTR, ET ) C C Now convert ET to the desired output format. C CALL TIMOUT ( ET, PICTUR, TIMSTR ) WRITE (*,*) 'Sample format: ', SAMPLE WRITE (*,*) 'Time picture : ', PICTUR WRITE (*,*) WRITE (*,*) 'Input UTC : ', UTCSTR WRITE (*,*) 'Output : ', TIMSTR END IF END When this program was executed on a Mac/Intel/gfortran/64-bit platform, the output was: Sample format: Thu Oct 01 11:11:11 PDT 1111 Time picture : Wkd Mon DD HR:MN:SC PDT YYYY ::UTC-7 Input UTC : 24 Mar 2018 16:23:00 UTC Output : Sat Mar 24 09:23:00 PDT 2018 RestrictionsNone. Literature_ReferencesNone. Author_and_InstitutionJ. Diaz del Rio (ODC Space) W.L. Taber (JPL) VersionSPICELIB Version 1.1.0, 25-AUG-2021 (JDR) Changed output argument name ERROR to ERRMSG for consistency with other routines. Edited the header to comply with NAIF standard. Converted the existing code fragments into complete example and added reference to required LSK. SPICELIB Version 1.0.1, 16-MAR-1999 (WLT) Corrected a minor spelling error in the header comments. SPICELIB Version 1.0.0, 10-AUG-1996 (WLT) |
Fri Dec 31 18:37:03 2021