##// END OF EJS Templates
Add restart to nginx container
Add restart to nginx container

File last commit:

r0:b84e1135c2c4
r22:1c8c96a4f254 master
Show More
eqn_of_time.f
74 lines | 2.7 KiB | text/x-fortran | FortranFixedLexer
DOUBLE PRECISION FUNCTION EQN_OF_TIME(MEAN_LONG,IYR)
IMPLICIT NONE
c
c $Revision: 1.1 $
c
c Log: eqn_of_time.f,v
c Revision 1.4 1997/04/15 16:55:43 baker
c Added a bit of code to handle the year 2000 problem.
c If the year is less than 88, we assume it is 2000-something.
c If the year is between 88 and 99 we assume it is 19xx.
c If the year is greater than 100 but less than 1900 we
c assume that it is 1900+the value. If the year is
c greater then 1900 we assume it is given correctly in
c full 4-digit form.
c
c Revision 1.3 1994/10/17 12:51:20 baker
c some code had to be rearranged to convince the compiler it was
c really OK.
c
c Revision 1.2 94/10/17 12:39:41 12:39:41 baker (Kile Baker S1G)
c added ephemerides for 1989 - 1998. This also required code to be
c added to determine which constants to use.
c
c Revision 1.1 94/10/14 11:27:56 11:27:56 baker (Kile Baker S1G)
c Initial revision
C
C Imported by Bill Rideout on April 21, 2010
C Modified by nag_apt to convert all reals to double, int16 to ints
C
C $Id: eqn_of_time.f 3304 2011-01-17 15:25:59Z brideout $
c
c
SAVE
DOUBLE PRECISION MEAN_LONG
INTEGER*4 IYR,INDEX
DOUBLE PRECISION COEFS(7,10)
DATA COEFS/-105.8D0,596.2D0,4.4D0,-12.7D0,-429.0D0,-2.1D0,19.3D0,
+ -105.9D0,596.2D0,4.4D0,-12.7D0,-429.0D0,-2.1D0,19.3D0,
+ -106.1D0,596.2D0,4.4D0,-12.7D0,-428.9D0,-2.1D0,19.3D0,
+ -106.2D0,596.2D0,4.4D0,-12.7D0,-428.9D0,-2.1D0,19.3D0,
+ -106.4D0,596.1D0,4.4D0,-12.7D0,-428.9D0,-2.1D0,19.3D0,
+ -106.5D0,596.1D0,4.4D0,-12.7D0,-428.8D0,-2.1D0,19.3D0,
+ -106.6D0,596.1D0,4.4D0,-12.7D0,-428.8D0,-2.1D0,19.3D0,
+ -106.7D0,596.1D0,4.4D0,-12.7D0,-428.7D0,-2.1D0,19.3D0,
+ -106.8D0,596.1D0,4.4D0,-12.7D0,-428.7D0,-2.1D0,19.3D0,
+ -107.0D0,596.1D0,4.4D0,-12.7D0,-428.7D0,-2.1D0,19.3D0/
c
c compute the index into the coeffiecients table from the year
c
IF (IYR.LT.88) THEN
INDEX = IYR + 2000 - 1988
ELSE IF (IYR.GE.88 .AND. IYR.LT.100) THEN
INDEX = IYR - 88
ELSE IF (IYR.GE.100 .AND. IYR.LT.1900) THEN
INDEX = IYR - 88
ELSE
INDEX = IYR - 1988
END IF
IF (INDEX.LE.0) INDEX = 1
IF (INDEX.GT.10) INDEX = 10
EQN_OF_TIME = COEFS(1,INDEX)*DSIN(MEAN_LONG) +
+ COEFS(2,INDEX)*DSIN(2.0D0*MEAN_LONG) +
+ COEFS(3,INDEX)*DSIN(3.0D0*MEAN_LONG) +
+ COEFS(4,INDEX)*DSIN(4.0D0*MEAN_LONG) +
+ COEFS(5,INDEX)*DCOS(MEAN_LONG) +
+ COEFS(6,INDEX)*DCOS(2.0D0*MEAN_LONG) +
+ COEFS(7,INDEX)*DCOS(3.0D0*MEAN_LONG)
RETURN
END