JM,
I believe that the issue can be resolved by replacing the lines
NU = ATANC(SIN(O)/(SIN(OM)/TAN(I0)+COS(OM)*COS(O)),O)
AL = X + NU
by
NU = ATAN(SIN(O)/(SIN(OM)/TAN(I0)+COS(OM)*COS(O)))
AL = MOD(X + NU,2.D0*PI)
in the file astro.f.
I compared the computations of astro.f for the right ascension and the declination of the sun and moon with the predictions from pyEphem (
rhodesmill.org/pyephem/), a python implementation of the XEphem program. I found good agreement (to within about 1 percent) over the period 1990-2035.
However, this would only mean that the position of the sun and moon are calculated correctly; this does not guarantee that the resulting tidal body forces are calculated correctly.
I agree that this is a difficult problem to validate since the tidal body force is often a second-order effect. One option could be to run the model for an idealized case (a rectangular domain with constant depth and wall boundaries) with only the tidal body force, and compare it to a similar run from another model?