5 ! Check for Fortran 2008's ATAN(Y,X) - which is equivalent
6 ! to Fortran 77's ATAN2(Y,X).
9 real, parameter :: pi4
= 2*acos(0.0)
10 real, parameter :: pi8
= 2*acos(0.0d0)
12 if(atan(1.0, i
/10.0) -atan2(1.0, i
/10.) /= 0.0) call abort()
13 if(atan(1.0d0,i
/10.0d0)-atan2(1.0d0,i
/10.0d0) /= 0.0d0) call abort()
17 if (abs(atan(1.0,1.0) -pi4
/4.0) > epsilon(pi4
)) call abort()
18 if (abs(atan(1.0d0,1.0d0)-pi8
/4.0d0) > epsilon(pi8
)) call abort()
21 if (abs(atan(-1.0,1.0) +pi4
/4.0) > epsilon(pi4
)) call abort()
22 if (abs(atan(-1.0d0,1.0d0)+pi8
/4.0d0) > epsilon(pi8
)) call abort()
25 if (abs(atan(1.0,-1.0) -3.0*pi4
/4.0) > epsilon(pi4
)) call abort()
26 if (abs(atan(1.0d0,-1.0d0)-3.0d0*pi8
/4.0d0) > epsilon(pi8
)) call abort()
28 ! Atan(-1,-1) = -3/4*Pi
29 if (abs(atan(-1.0,-1.0) +3.0*pi4
/4.0) > epsilon(pi4
)) call abort()
30 if (abs(atan(-1.0d0,-1.0d0)+3.0d0*pi8
/4.0d0) > epsilon(pi8
)) call abort()
32 ! Atan(3,-5) = 2.60117315331920908301906501867... = Pi - 3/2 atan(3/5)
33 if (abs(atan(3.0,-5.0) -2.60117315331920908301906501867) > epsilon(pi4
)) call abort()
34 if (abs(atan(3.0d0,-5.0d0)-2.60117315331920908301906501867d0) > epsilon(pi8
)) call abort()