      SUBROUTINE SEZ2ECI( JD, LAT, LON, SEZ, ECI )
C
C     TRANSFORM LOCAL HORIZON RECTANGULAR COORDINATES ("SEZ"--X=SOUTH,
C     Y=EAST, Z=ZENITH) TO EARTH-CENTERED INERTIAL RECTANGULAR COORDI-
C     NATES ("ECI"--X=VERNAL EQUINOX, Y=6H RA, Z=NORTH CELESTIAL POLE).
C
C     B. KNAPP, 1998-11-18, 2004-03-25 (EXTERNAL COSD, SIND)
C
C     INPUT
C 
C        JD - JULIAN DAY NUMBER AND FRACTION (UT)
C
C        LAT - LATITUDE (DEG, NORTH POSITIVE)
C
C        LON - LONGITUDE (DEG, WEST POSITIVE)
C
C        SEZ - ARRAY OF LENGTH 3, [S, E, Z]
C
C     OUTPUT
C
C        ECI - ARRAY OF LENGTH 3, [X, Y, Z]
C
C
C     RCS DATA
C     
C     $Header$
C     
C     $Log$
C
C
      IMPLICIT NONE
C
C     INPUT
      REAL*8 JD, LAT, LON, SEZ(3)
C
C     OUTPUT
      REAL*8 ECI(3)
C
C     LOCAL
      REAL*8 LST, CLAT, SLAT, CLON, SLON
C
C     EXTERNAL FUNCTIONS, SUBROUTINES
      REAL*8 COSD, SIND, SIDTIM
      EXTERNAL COSD, SIND, SIDTIM
C
C     GET THE LOCAL SIDEREAL TIME
      LST = MOD( SIDTIM( JD ) - LON, 360.D0 )
      IF ( LST .LT. 0.D0 ) LST = LST + 360.D0
C
C     PERFORM THE EULER ROTATIONS
      CLON = COSD( LST )
      SLON = SIND( LST )
      CLAT = COSD( LAT )
      SLAT = SIND( LAT )
C
      ECI(1) = SLAT*CLON*SEZ(1) - SLON*SEZ(2) + CLAT*CLON*SEZ(3)
      ECI(2) = SLAT*SLON*SEZ(1) + CLON*SEZ(2) + CLAT*SLON*SEZ(3)
      ECI(3) =     -CLAT*SEZ(1)               +      SLAT*SEZ(3)
C
      RETURN
      END
