public static double jauEect00(double date1, double date2)
    {
    /* Time since J2000.0, in Julian centuries */
       double t;

    /* Miscellaneous */
       int i, j;
       double a, s0, s1;

    /* Fundamental arguments */
       double fa[] = new double[14];

    /* Returned value. */
       double eect;

    /* ----------------------------------------- */
    /* The series for the EE complementary terms */
    /* ----------------------------------------- */


    /* Terms of order t^0 */
       final TERM e0[] = {

       /* 1-10 */
          new TERM(new int[]{ 0,  0,  0,  0,  1,  0,  0,  0}, 2640.96e-6, -0.39e-6 ),
          new TERM(new int[]{ 0,  0,  0,  0,  2,  0,  0,  0},   63.52e-6, -0.02e-6 ),
          new TERM(new int[]{ 0,  0,  2, -2,  3,  0,  0,  0},   11.75e-6,  0.01e-6 ),
          new TERM(new int[]{ 0,  0,  2, -2,  1,  0,  0,  0},   11.21e-6,  0.01e-6 ),
          new TERM(new int[]{ 0,  0,  2, -2,  2,  0,  0,  0},   -4.55e-6,  0.00e-6 ),
          new TERM(new int[]{ 0,  0,  2,  0,  3,  0,  0,  0},    2.02e-6,  0.00e-6 ),
          new TERM(new int[]{ 0,  0,  2,  0,  1,  0,  0,  0},    1.98e-6,  0.00e-6 ),
          new TERM(new int[]{ 0,  0,  0,  0,  3,  0,  0,  0},   -1.72e-6,  0.00e-6 ),
          new TERM(new int[]{ 0,  1,  0,  0,  1,  0,  0,  0},   -1.41e-6, -0.01e-6 ),
          new TERM(new int[]{ 0,  1,  0,  0, -1,  0,  0,  0},   -1.26e-6, -0.01e-6 ),

       /* 11-20 */
          new TERM(new int[]{ 1,  0,  0,  0, -1,  0,  0,  0},   -0.63e-6,  0.00e-6 ),
          new TERM(new int[]{ 1,  0,  0,  0,  1,  0,  0,  0},   -0.63e-6,  0.00e-6 ),
          new TERM(new int[]{ 0,  1,  2, -2,  3,  0,  0,  0},    0.46e-6,  0.00e-6 ),
          new TERM(new int[]{ 0,  1,  2, -2,  1,  0,  0,  0},    0.45e-6,  0.00e-6 ),
          new TERM(new int[]{ 0,  0,  4, -4,  4,  0,  0,  0},    0.36e-6,  0.00e-6 ),
          new TERM(new int[]{ 0,  0,  1, -1,  1, -8, 12,  0},   -0.24e-6, -0.12e-6 ),
          new TERM(new int[]{ 0,  0,  2,  0,  0,  0,  0,  0},    0.32e-6,  0.00e-6 ),
          new TERM(new int[]{ 0,  0,  2,  0,  2,  0,  0,  0},    0.28e-6,  0.00e-6 ),
          new TERM(new int[]{ 1,  0,  2,  0,  3,  0,  0,  0},    0.27e-6,  0.00e-6 ),
          new TERM(new int[]{ 1,  0,  2,  0,  1,  0,  0,  0},    0.26e-6,  0.00e-6 ),

       /* 21-30 */
          new TERM(new int[]{ 0,  0,  2, -2,  0,  0,  0,  0},   -0.21e-6,  0.00e-6 ),
          new TERM(new int[]{ 0,  1, -2,  2, -3,  0,  0,  0},    0.19e-6,  0.00e-6 ),
          new TERM(new int[]{ 0,  1, -2,  2, -1,  0,  0,  0},    0.18e-6,  0.00e-6 ),
          new TERM(new int[]{ 0,  0,  0,  0,  0,  8,-13, -1},   -0.10e-6,  0.05e-6 ),
          new TERM(new int[]{ 0,  0,  0,  2,  0,  0,  0,  0},    0.15e-6,  0.00e-6 ),
          new TERM(new int[]{ 2,  0, -2,  0, -1,  0,  0,  0},   -0.14e-6,  0.00e-6 ),
          new TERM(new int[]{ 1,  0,  0, -2,  1,  0,  0,  0},    0.14e-6,  0.00e-6 ),
          new TERM(new int[]{ 0,  1,  2, -2,  2,  0,  0,  0},   -0.14e-6,  0.00e-6 ),
          new TERM(new int[]{ 1,  0,  0, -2, -1,  0,  0,  0},    0.14e-6,  0.00e-6 ),
          new TERM(new int[]{ 0,  0,  4, -2,  4,  0,  0,  0},    0.13e-6,  0.00e-6 ),

       /* 31-33 */
          new TERM(new int[]{ 0,  0,  2, -2,  4,  0,  0,  0},   -0.11e-6,  0.00e-6 ),
          new TERM(new int[]{ 1,  0, -2,  0, -3,  0,  0,  0},    0.11e-6,  0.00e-6 ),
          new TERM(new int[]{ 1,  0, -2,  0, -1,  0,  0,  0},    0.11e-6,  0.00e-6 )
       };

    /* Terms of order t^1 */
       final TERM e1[] = {
          new TERM(new int[]{ 0,  0,  0,  0,  1,  0,  0,  0},    -0.87e-6,  0.00e-6 )
       };

    /* Number of terms in the series */
       final int NE0 = e0.length;
       final int NE1 = e1.length;

    /*--------------------------------------------------------------------*/

    /* Interval between fundamental epoch J2000.0 and current date (JC). */
       t = ((date1 - DJ00) + date2) / DJC;

    /* Fundamental Arguments (from IERS Conventions 2003) */

    /* Mean anomaly of the Moon. */
       fa[0] = jauFal03(t);

    /* Mean anomaly of the Sun. */
       fa[1] = jauFalp03(t);

    /* Mean longitude of the Moon minus that of the ascending node. */
       fa[2] = jauFaf03(t);

    /* Mean elongation of the Moon from the Sun. */
       fa[3] = jauFad03(t);

    /* Mean longitude of the ascending node of the Moon. */
       fa[4] = jauFaom03(t);

    /* Mean longitude of Venus. */
       fa[5] = jauFave03(t);

    /* Mean longitude of Earth. */
       fa[6] = jauFae03(t);

    /* General precession in longitude. */
       fa[7] = jauFapa03(t);

    /* Evaluate the EE complementary terms. */
       s0 = 0.0;
       s1 = 0.0;

       for (i = NE0-1; i >= 0; i--) {
          a = 0.0;
          for (j = 0; j < 8; j++) {
             a += (double)(e0[i].nfa[j]) * fa[j];
          }
          s0 += e0[i].s * sin(a) + e0[i].c * cos(a);
       }

       for (i = NE1-1; i >= 0; i--) {
          a = 0.0;
          for (j = 0; j < 8; j++) {
             a += (double)(e1[i].nfa[j]) * fa[j];
          }
          s1 += e1[i].s * sin(a) + e1[i].c * cos(a);
       }

       eect = (s0 + s1 * t ) * DAS2R;

       return eect;

        }