<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def ComputeGMST(GPSTime):
 """ ComputeGMST - function to compute the Greenwich mean sidereal time from the GPS time. GPSTime - GPS time that the GW signal from the source reached the geocenter. Returns GMST - the Greenwich mean sidereal time corresponding to GPSTime. Sarah Gossan 2012. """


    # Difference in Julian Date between GPSTime and the J2000.0 epoch
    # Subtract half a day as Julian Days start at noon
    D = np.round((GPSTime - EpochJ2000_0_UTC)/secPerDay) - 0.5

    # Number of Julian centuries since J2000.0 epoch
    T = D/36525

    # 1st approximation to GMST without corrections for leap seconds
    GMST0 = 6.697374558 + 2400.051336*T + 0.000025862*T*T
    # Keep within range [0,24]hrs
    GMST0 = np.mod(GMST0,24)

    # Corrections for leap seconds
    UTCSec = GPSTime - EpochJ2000_0_UTC - secPerDay/2 - \
             LeapSeconds_2012_EpochJ2000
    UTCHr = np.mod(UTCSec/3600,24)

    # Add corrections and keep within [0,24]hr range
    GMST = GMST0 + UTCHr*1.002737909
    GMST = np.mod(GMST,24)

    # Convert from hours to degrees to radians
    GMST *= 15.*(np.pi/180.)

    return GMST