C$Procedure LCLTIM ( Local Time ) SUBROUTINE LCLTIM ( FMT, TIMSTR ) C$ Abstract C C Compose a string in ISO format for the local time. C C$ Copyright C C Copyright (1996), California Institute of Technology. C U.S. Government sponsorship acknowledged. C C$ Required_Reading C C None. C C$ Keywords C C UTILITY C C$ Declarations IMPLICIT NONE CHARACTER*(*) FMT CHARACTER*(*) TIMSTR C$ Brief_I/O C C VARIABLE I/O DESCRIPTION C -------- --- -------------------------------------------------- C FMT I Is the format to use for the output string. C TIMSTR O A string giving the current local time. C C The function returns C C$ Detailed_Input C C FMT is the format to use for the output time string. C Currently two formats 'ISO' and 'STANDARD'. If C anything other than ISO is supplied the format C defaults to 'STANDARD'. C C ISO format strings look like: YYYY-MM-DDTHR:MN:SC. C STANDARD format strings look like: YYYY-MM-DD HR:MN:SC. C C$ Detailed_Output C C TIMSTR Is a time string giving the local time at the moment C this routine was called in the format requested. C YYYY-MM-DDTHR:MN:SC. C C$ Parameters C C None. C C$ Files C C None. C C$ Exceptions C C None. C C$ Particulars C C This routine returns the current local time in ISO format. C The ISO format is suitable for inclusion in PDS and MGSO C labels for SPICE products. C C$ Examples C C None. C C$ Restrictions C C None. C C$ Author_and_Institution C C W.L. Taber (JPL) C C$ Literature_References C C None. C C$ Version C C- SPICELIB Version 1.0.0, 4-DEC-1996 (WLT) C C C-& C-& C C SPICELIB Functions C LOGICAL RETURN LOGICAL FAILED C C Local Variables C INTEGER SMWDSZ PARAMETER ( SMWDSZ = 8 ) CHARACTER*(SMWDSZ) MYFMT DOUBLE PRECISION TIMVEC ( 6 ) INTEGER YEAR INTEGER MONTH INTEGER DAY INTEGER HOURS INTEGER MINUTS INTEGER SECS IF ( RETURN() ) THEN RETURN END IF CALL CHKIN ( 'LCLTIM' ) CALL LJUST ( FMT, MYFMT ) CALL UCASE ( MYFMT, MYFMT ) C C Get the current time and set up a time string. C CALL CPUTIM ( TIMVEC ) IF ( FAILED() ) THEN CALL CHKOUT( 'LCLTIM' ) RETURN END IF C C Make a template based upon the requested format C IF ( MYFMT .EQ. 'ISO' ) THEN TIMSTR = '#-##-##T##:##:##' ELSE TIMSTR = '#-##-## ##:##:##' END IF YEAR = INT ( TIMVEC(1) ) MONTH = INT ( TIMVEC(2) ) DAY = INT ( TIMVEC(3) ) HOURS = INT ( TIMVEC(4) ) MINUTS = INT ( TIMVEC(5) ) SECS = INT ( TIMVEC(6) ) C C Now just fill in the pieces. C CALL REPMI ( TIMSTR, '#', YEAR, TIMSTR ) IF ( MONTH .GE. 10 ) THEN CALL REPMI ( TIMSTR, '##', MONTH, TIMSTR ) ELSE CALL REPMI ( TIMSTR, '#', 0, TIMSTR ) CALL REPMI ( TIMSTR, '#', MONTH, TIMSTR ) END IF IF ( DAY .GE. 10 ) THEN CALL REPMI ( TIMSTR, '##', DAY, TIMSTR ) ELSE CALL REPMI ( TIMSTR, '#', 0, TIMSTR ) CALL REPMI ( TIMSTR, '#', DAY, TIMSTR ) END IF IF ( HOURS .GE. 10 ) THEN CALL REPMI ( TIMSTR, '##', HOURS, TIMSTR ) ELSE CALL REPMI ( TIMSTR, '#', 0, TIMSTR ) CALL REPMI ( TIMSTR, '#', HOURS, TIMSTR ) END IF IF ( MINUTS .GE. 10 ) THEN CALL REPMI ( TIMSTR, '##', MINUTS, TIMSTR ) ELSE CALL REPMI ( TIMSTR, '#', 0, TIMSTR ) CALL REPMI ( TIMSTR, '#', MINUTS, TIMSTR ) END IF IF ( SECS .GE. 10 ) THEN CALL REPMI ( TIMSTR, '##', SECS, TIMSTR ) ELSE CALL REPMI ( TIMSTR, '#', 0, TIMSTR ) CALL REPMI ( TIMSTR, '#', SECS, TIMSTR ) END IF C C That's all. Check out and return. C CALL CHKOUT ( 'LCLTIM' ) RETURN END