blob: 9e6bd3841e7a0dad71c1bbb20a3d56771e7cd3bf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
PROGRAM quadratures
INTERFACE
FUNCTION integrate(ibeg, iend, myfun, p) result(value)
IMPLICIT none
! beginning of integration interval
real(kind=8), intent(in) :: ibeg
! ending of integration interval
real(kind=8), intent(in) :: iend
! function to be integrated
procedure(funint) :: myfun
! polynomial order
integer(kind=4), intent(in) :: p
! result of integration
real(kind=8) :: value
END FUNCTION integrate
END INTERFACE
INTERFACE
FUNCTION funint(x) result(y)
IMPLICIT none
real(kind=8), intent(in) :: x
real(kind=8) :: y
END FUNCTION funint
END INTERFACE
procedure(funint), pointer :: ptr
ptr => my_exp
write(*,*) my_exp(2.0_8)
CONTAINS
FUNCTION my_exp(x) result(y)
real(kind=8), intent(in) :: x
real(kind=8) :: y
y = exp(x)
END FUNCTION my_exp
END PROGRAM quadratures
|