Viewing contents of file '../idllib/ssw/allpro/atime.pro'
FUNCTION ATIME,UT, PUBLICAT=PUB, Yohkoh=Yohkoh, hxrbs=hxrbs, nopub=nopub,$
date=date, time=time, error=error
on_error,2
;+
; NAME:
; ATIME
; PURPOSE:
; Convert argument UT to string of format YY/MM/DD, HHMM:SS.XXX or
; YY/MM/DD, HH:MM:SS.XXX, if PUB is set
; CALLING SEQUENCE:
; RESULT = ATIME(UT[,/PUB,/yohkoh])
; INPUTS:
; UT - Time to convert to string, in any representation
; double precision seconds since 79/1/1, 0000:00.000
; 7XN integer
; 2XN longword [msod, ds79]
; Structure with .time and .day
; See ANYTIM for allowed types
; OPTIONAL INPUTS:
; /PUB - Resulting string will have a colon (:) between hours and minutes
; using HXRBS format
; /Yohkoh - Forces Yohkoh date format DD-mon-YY HH:MM:SS.MSC
; /hxrbs - Forces HXRBS date pub format yy/mm/dd, hh:mm:ss.xxx
; same effect as /pub
; /nopub - Forces HXRBS date format w 1 colon, yy/mm/dd, hhmm:ss.xxx
; /date - return only the calendar date component of the string, i.e. yy/mm/dd
; /time - return only the time portion of the string, i.e. hh:mm:ss.xxx
; NB, these style booleans may be changed in the code and returned
; that way if you haven't used the /keyword syntax.
;
; MODIFICATION HISTORY:
; Written by Richard Schwartz for IDL Version 2, Feb. 1991
; Modified to vectors 7/9/92, RAS
; " uses DAYCNV.PRO from IDL Astronomy Library
; " uses f_atime.pro to format the output
; " preserves dimensionality of input array, vectors, and scalars, 8/10/92
; Yohkoh keyword/format, 30-apr-93, ras
; Added more style control, Yohkoh/HXRBS, 3-Nov-93
; 29-Nov-93, Protect against OSF bug in total, ras
; 14-Dec-93 (MDM) - Uncommented ATIME_FORMAT line
; 5-jan-94, added time and date keywords, ras
; 3-mar-94, added error keyword
; RAS 8-mar-94 - protect against strings of the form 14-Feb-93 24:00:00
; 15-May-98 (FZ) - Changed loop variable i to long
;-
;
; This common contains atime_format
ans = ''
error = 0
@utstart_time_com
;COMMON UTSTART_TIME, PRINT_START_TIME, ATIME_FORMAT
;;checkvar, atime_format ,'YOHKOH' ;MDM uncommented out 14-Dec-93
atime_format = fcheck(atime_format,'YOHKOH') ;MDM replaced CHECKVAR with FCHECK
if (size(ut))(0) eq 0 then scalar = 1 else scalar=0
typ=datatype(ut)
if typ eq 'DOU' or typ eq 'FLO' or typ eq 'STR' then form = strmid(ut,0,0)
if typ eq 'STC' then form= strarr( n_elements(ut) ) ;simple dimensions only
;29-Nov, ras
;if typ eq 'LON' or typ eq 'INT' then form=strmid( 0*total(ut,1),0,0)
;changed to protect against OSF bug
if typ eq 'LON' or typ eq 'INT' then $
if (size(ut))(0) eq 1 then form=strarr(1) else $
form=strmid( 0*total(ut,1),0,0)
ex = anytim( ut, out='ex',error=error) ;7xN integer representation of time
if error then goto, getout
ex = anytim(/ex, anytim(ex, /sec)) ;RAS 8-mar-94
num = n_elements( ex(0,*) )
ans = strarr(num)
;set up keywords to control output
;Absolute default is HXRBS style
;If Yohkoh environment, then atime_format will be set to 'yohkoh'
;and the Yohkoh style string is the default, which can be overriden
;by the HXRBS keyword. Likewise the YOHKOH keyword will force the YOHKOH
;style.
if STRUPCASE( ATIME_FORMAT ) EQ 'YOHKOH' and not keyword_set(hxrbs) $
then yohkoh=1
if STRUPCASE( ATIME_FORMAT ) EQ 'HXRBS' and not keyword_set(yohkoh) $
then yohkoh=0
IF keyword_set(yohkoh) then yohkoh=1
if keyword_set(hxrbs) then yohkoh=0
if keyword_set(pub) then pub=1
if keyword_set(nopub) then pub=0
;Strings must be broken into groups of 256 or less to use formatting
for i=0L,num-1,256 do begin
i2 = (i+255)<(num-1)
ans(i:i2) = $
f_atime( yohkoh=yohkoh, pub=pub, tarr= ex(*,i:i2 ))
endfor
;IF KEYWORD_SET(PUB) THEN $
; ans=strmid(ans,0,12)+':'+strmid(ans,12,9)
;return scalar or vector depending on ut
ans = form + ans
if scalar then ans=ans(0)
;
; Provide users with commonly desired substrings
; Date keyword supercedes time keyword
case 1 of
keyword_set(date) and yohkoh: ans=strmid( ans, 0, 9)
keyword_set(date) and not yohkoh: ans=strmid( ans, 0, 8)
keyword_set(time) and (keyword_set(pub) or yohkoh): ans = strmid(ans, 10,12)
keyword_set(time) and not yohkoh and not keyword_set(pub): ans = strmid(ans, 10,11)
1:
endcase
getout:
return,ans
END