;+
; PROJECT:
;	HESSI
; NAME: 
;	HESSI_REF_TIME
;
; PURPOSE:
;	This function returns the HESSI reference time, 4 July 2000, in any ANYTIM formal.
;
; CATEGORY:
;	Util
;
; CALLING SEQUENCE:
;	ref_time = hessi_ref_time( /mjd )
;	ref_time = hessi_ref_time( )
;	ref_time = hessi_ref_time( /yohkoh ) ;returns 04-Jul-00 00:00:00.000
;
; CALLS:
;	ANYTIM
;
; INPUTS:
;       none 
;
; OPTIONAL KEYWORD INPUTS:
;	All keywords available through ANYTIM using keyword inheritance:
;		
;       out_style - Output representation, specified by a string:
;               INTS    - structure with [msod, ds79]
;               STC     - same as INTS
;               2XN     - longword array [msod,ds79] X N
;               EX      - 7 element external representation (hh,mm,ss,msec,dd,mm,yy)
;               UTIME   - Utime format, Real*8 seconds since 1-jan-79, DEFAULT!!!!
;               SEC     - same as Utime format
;               SECONDS - same as Utime format
;               TAI     - standard seconds from 1-jan-1958.  Includes leap seconds unlike "SECONDS" output. 
;                       NB- The TAI format cannot be used as an input to ANYTIM because it will be interpreted as
;                       number of days (in seconds) from 1-jan-1979.
;               ATIME   - Variable Atime format, Yohkoh
;                         Yohkoh style - 'dd-mon-yy hh:mm:ss.xxx'   or
;                         HXRBS pub style  - 'yy/mm/dd, hh:mm:ss.xxx'
;                         depending on atime_format set by 
;                         hxrbs_format or yohkoh_format
;               YOHKOH  - yohkoh style string 
;               HXRBS   - HXRBS Atime format /pub, 'yy/mm/dd, hh:mm:ss.xxx'
;               YY/MM/DD- same as HXRBS
;               MJD     - UTC-type structure
;                       = The UTC date/time as a data structure with the
;                         elements:
;
;                               MJD     = The Modified Julian Day number
;                               TIME    = The time of day, in milliseconds
;                                         since the start of the day.
;
;                         Both are long integers.
;               UTC_INT - Same as MJD
;               UTC_EXT - UTC external format, a structure
;                         containing the elements, YEAR, MONTH, DAY, HOUR, MINUTE,
;                         SECOND, and MILLISECOND as shortword integers.
;               CCSDS   - A string variable containing the calendar date in the
;                        format recommended by the Consultative Committee for
;                        Space Data Systems (ISO 8601), e.g.
;
;                               "1988-01-18T17:20:43.123Z"
;
;               ECS     - A variation on the CCSDS format used by the EOF Core
;                        System.  The "T" and "Z" separators are eliminated, and
;                        slashes are used instead of dashes in the date, e.g.
;                               "1988/01/18 17:20:43.123"
;
;               VMS     - Similar to that used by the VMS operating system, this
;                        format uses a three-character abbreviation for the
;                        month, and rearranges the day and the year, e.g.
;
;                               "18-JAN-1988 17:20:43.123"
;
;               STIME   - Based on !STIME in IDL, this format is the same as the
;                        second accuracy, e.g.
;                        VMS format, except that the time is only given to 0.01 
;                        second accuracy, e.g.
;
;                               "18-JAN-1988 17:20:43.12"
;
;       or by keywords
;               /ints   - 
;               /stc
;               /_2xn
;               /external
;               /utime
;               /seconds
;               /atimes
;               /yohkoh
;               /hxrbs
;               /yymmdd
;               /mjd
;               /utc_int
;               /utc_ext
;               /ccsds
;               /ecs
;               /vms
;               /stime
;               /TAI     
;
;       mdy     - If set, use the MM/DD/YY order for converting the string date
;
;       date_only - return only the calendar date portion, 
;                       e.g. anytim('93/6/1, 20:00:00',/date_only,/hxrbs) ==> '93/06/01'
;       time_only - return only the time of day portion
;                       e.g. anytim('93/6/1, 20:00:00',/time_only,/hxrbs) ==> '20:00:00.000'
;       truncate - truncate the msec portion of the time displayed in strings.
;
;	
;
; OUTPUTS:
;       none explicit, only through commons;
;
; OPTIONAL OUTPUTS:
;	none
;
; KEYWORDS:
;	none
; COMMON BLOCKS:
;	none
;
; SIDE EFFECTS:
;	none
;
; RESTRICTIONS:
;	none
;
; PROCEDURE:
;	ANYTIM is used with the HESSI reference date, 4 July 2000.  This does not necessarily need to coincide with the
;	zero of the spacecraft clock counter.
;
; MODIFICATION HISTORY:
;	Version 1, richard.schwartz@gsfc.nasa.gov, 17-sep-1998.
;       Version 2, jimm@ssl.berkeley.edu, 09-feb-2001, changed
;                  reference time to the Explorer Reference time
;                  of 24-may-1968 00:00
;
;-
function hessi_ref_time, _extra=_extra


   RETURN,   anytim(_extra = _extra, [intarr(4), 24, 5, 1968])
END

