CHARACTER*10 FUNCTION HHMMSS ( JTIME ) C*********************************************************************** C Version "$Id: hhmmss.f 1 2017-06-10 18:05:20Z coats $" C EDSS/Models-3 I/O API. C Copyright (C) 1992-2002 MCNC and Carlie J. Coats, Jr., C (C) 2003-2010 by Baron Advanced Meteorological Systems. C Distributed under the GNU LESSER GENERAL PUBLIC LICENSE version 2.1 C See file "LGPL.txt" for conditions of use. C......................................................................... C function body starts at line 57 C C FUNCTION: format and return the time as a character string C "HH:MM:SS" C C C PRECONDITIONS REQUIRED: valid time HHMMSS with hours component C at most 9999 C C RETURN VALUE: time, as "HH:MM:SS" C C C SUBROUTINES AND FUNCTIONS CALLED: none C C C REVISION HISTORY: C prototype 10/90 by CJC C Modified 03/2010 by CJC: F9x changes for I/O API v3.1 C*********************************************************************** IMPLICIT NONE C........... ARGUMENTS and their descriptions: INTEGER, INTENT(IN ) :: JTIME ! Julian time, coded YYYYDDD C........... PARAMETERs CHARACTER*1, PARAMETER :: DIGITS( 0:9 ) = & (/ '0','1','2','3','4','5','6','7','8','9' /) C........... SCRATCH LOCAL VARIABLES and their descriptions: INTEGER HOUR INTEGER MINS INTEGER SECS INTEGER J , K CHARACTER*10 CHRBUF C*********************************************************************** C begin body of function HHMMSS CHRBUF = ' ' HOUR = JTIME SECS = MOD ( HOUR , 100 ) HOUR = HOUR / 100 MINS = MOD ( HOUR , 100 ) HOUR = HOUR / 100 J = 1 K = HOUR / 1000 IF ( K .GT. 9 ) THEN HHMMSS = '' RETURN ELSE IF ( K .NE. 0 ) THEN CHRBUF( J:J ) = DIGITS( K ) J = J + 1 END IF K = MOD( HOUR / 100 , 10 ) IF ( K .NE. 0 ) THEN CHRBUF( J:J ) = DIGITS( K ) J = J + 1 END IF K = MOD( HOUR / 10 , 10 ) IF ( K .NE. 0 ) THEN CHRBUF( J:J ) = DIGITS( K ) J = J + 1 END IF CHRBUF( J:J ) = DIGITS( MOD( HOUR, 10 ) ) J = J + 1 CHRBUF( J:J ) = ':' J = J + 1 CHRBUF( J:J ) = DIGITS( MINS / 10 ) J = J + 1 CHRBUF( J:J ) = DIGITS( MOD( MINS, 10 ) ) J = J + 1 CHRBUF( J:J ) = ':' J = J + 1 CHRBUF( J:J ) = DIGITS( SECS / 10 ) J = J + 1 CHRBUF( J:J ) = DIGITS( MOD( SECS, 10 ) ) HHMMSS = CHRBUF RETURN END FUNCTION HHMMSS