The *Computus* is the algorithm for the calculation of the date of Easter. The following is a simple Fortran subroutine of the Computus, using the “Meeus/Jones/Butcher” Gregorian Easter algorithm. Note that this subroutine makes use of Fortran integer division.

subroutine easter(year,month,day) !Compute the date of Gregorian Easter, ! using the "Meeus/Jones/Butcher" algorithm implicit none integer,intent(in) :: year integer,intent(out) :: month,day integer :: a,b,c,d,e,f,g,h,i,k,l,m a = mod(year,19) b = year/100 c = mod(year,100) d = b/4 e = mod(b,4) f = (b+8)/25 g = (b-f+1)/3 h = mod((19*a+b-d-g+15),30) i = c/4 k = mod(c,4) l = mod((32+2*e+2*i-h-k),7) m = (a+11*h+22*l)/451 month = (h+l-7*m+114)/31 day = mod(h+l-7*m+114,31)+1 end subroutine easter

The sequence of dates repeat themselves over a cycle of 5,700,000 years. The following histogram shows the percentage occurrence of each date (from March 22nd to April 25th), over the entire cycle:

### See also

- D. Steel, “Marking Time: The Epic Quest to Invent the Perfect Calendar”, Wiley, 1999.
- J. R. Stockton, “The Calculation of Easter Sunday after the Book of Common Prayer of the Church of England“.

## Leave a Reply