! Program to test mathematical intrinsics subroutine dotest (n, val4, val8, known) implicit none real(kind=4) val4, known real(kind=8) val8 integer n if (abs (val4 - known) .gt. 0.001) call abort if (abs (real (val8, kind=4) - known) .gt. 0.001) call abort end subroutine subroutine dotestc (n, val4, val8, known) implicit none complex(kind=4) val4, known complex(kind=8) val8 integer n if (abs (val4 - known) .gt. 0.001) call abort if (abs (cmplx (val8, kind=4) - known) .gt. 0.001) call abort end subroutine program testmath implicit none real(kind=4) r, two4, half4 real(kind=8) q, two8, half8 complex(kind=4) cr complex(kind=8) cq external dotest, dotestc two4 = 2.0 two8 = 2.0_8 half4 = 0.5 half8 = 0.5_8 r = sin (two4) q = sin (two8) call dotest (1, r, q, 0.9093) r = cos (two4) q = cos (two8) call dotest (2, r, q, -0.4161) r = tan (two4) q = tan (two8) call dotest (3, r, q, -2.1850) r = asin (half4) q = asin (half8) call dotest (4, r, q, 0.5234) r = acos (half4) q = acos (half8) call dotest (5, r, q, 1.0472) r = atan (half4) q = atan (half8) call dotest (6, r, q, 0.4636) r = atan2 (two4, half4) q = atan2 (two8, half8) call dotest (7, r, q, 1.3258) r = exp (two4) q = exp (two8) call dotest (8, r, q, 7.3891) r = log (two4) q = log (two8) call dotest (9, r, q, 0.6931) r = log10 (two4) q = log10 (two8) call dotest (10, r, q, 0.3010) r = sinh (two4) q = sinh (two8) call dotest (11, r, q, 3.6269) r = cosh (two4) q = cosh (two8) call dotest (12, r, q, 3.7622) r = tanh (two4) q = tanh (two8) call dotest (13, r, q, 0.9640) r = sqrt (two4) q = sqrt (two8) call dotest (14, r, q, 1.4142) r = atan2 (0.0, 1.0) q = atan2 (0.0_8, 1.0_8) call dotest (15, r, q, 0.0) r = atan2 (-1.0, 1.0) q = atan2 (-1.0_8, 1.0_8) call dotest (16, r, q, -0.7854) r = atan2 (0.0, -1.0) q = atan2 (0.0_8, -1.0_8) call dotest (17, r, q, 3.1416) r = atan2 (-1.0, -1.0) q = atan2 (-1.0_8, -1.0_8) call dotest (18, r, q, -2.3562) r = atan2 (1.0, 0.0) q = atan2 (1.0_8, 0.0_8) call dotest (19, r, q, 1.5708) r = atan2 (-1.0, 0.0) q = atan2 (-1.0_8, 0.0_8) call dotest (20, r, q, -1.5708) cr = log ((-1.0, -1.0)) cq = log ((-1.0_8, -1.0_8)) call dotestc (21, cr, cq, (0.3466, -2.3562)) end program