3 real(kind
=8), private
, parameter :: poly_coeffs(11) = &
4 [-11.0, 15.6, -4.6, 22.5, 8.1, 5.1, -0.3, -8.0, 0.0, -9.9, 2.2]
7 FUNCTION analytical_integral(ibeg
, iend
) result(y
)
8 real(kind
=8), intent(in
) :: ibeg
, iend
10 END FUNCTION analytical_integral
15 FUNCTION my_exp(x
) result(y
)
16 real(kind
=8), intent(in
) :: x
21 FUNCTION my_sin(x
) result(y
)
22 real(kind
=8), intent(in
) :: x
27 FUNCTION my_poly(x
) result(y
)
28 real(kind
=8), intent(in
) :: x
31 y
= sum(poly_coeffs(:) * [1.0_8
, (x
** [(i
, i
= 1, 10)])])
34 FUNCTION my_exp_int(ibeg
, iend
) result(y
)
35 real(kind
=8), intent(in
) :: ibeg
, iend
37 y
= exp(iend
) - exp(ibeg
)
38 END FUNCTION my_exp_int
40 FUNCTION my_sin_int(ibeg
, iend
) result(y
)
41 real(kind
=8), intent(in
) :: ibeg
, iend
43 y
= -cos(iend
) + cos(ibeg
)
44 END FUNCTION my_sin_int
46 FUNCTION my_poly_int_indefinite(x
) result(y
)
47 real(kind
=8), intent(in
) :: x
49 integer(kind
=4) :: i
, j
50 y
= sum(poly_coeffs(:) * (1 / real([(j
, j
= 1, 11)])) * &
51 (x
** [(i
, i
= 1, 11)]))
52 END FUNCTION my_poly_int_indefinite
54 FUNCTION my_poly_int(ibeg
, iend
) result(y
)
55 real(kind
=8), intent(in
) :: ibeg
, iend
57 y
= my_poly_int_indefinite(iend
) - my_poly_int_indefinite(ibeg
)
58 END FUNCTION my_poly_int