Coverage Report: PolyMod.f90

Generated from GCOV analysis of Fortran source code

0.0%
Lines Executed
32 total lines
0.0%
Branches Executed
0 total branches
0.0%
Calls Executed
0 total calls
0
-
Source:PolyMod.f90
0
-
Graph:PolyMod.gcno
0
-
Data:PolyMod.gcda
0
-
Runs:29
1
-
!! Polynomial approximation utilities for mathematical computations
2
-
MODULE PolyMod
3
-
!! Polynomial approximation and evaluation routines for numerical analysis
4
-
5
-
! Polynomial approximant of order N at X0
6
-
! mbp 7/2015 incorporating subroutines from decades past
7
-
8
-
IMPLICIT NONE
9
-
PUBLIC
10
-
11
-
INTEGER, PRIVATE :: i, j
12
-
13
-
INTERFACE Poly
14
-
MODULE PROCEDURE PolyR, PolyC, PolyZ
15
-
END INTERFACE Poly
16
-
17
-
CONTAINS
18
-
19
#####
FUNCTION PolyR( X0, X, F, N )
20
-
21
-
INTEGER, INTENT( IN ) :: N ! order of the polynomial
22
-
REAL, INTENT( IN ) :: x0, x( N ), f( N ) ! x, y values of the polynomial
23
#####
REAL :: ft( N ), h( N ), PolyR
24
-
25
-
! Initialize arrays
26
-
27
#####
h = x - x0
28
#####
ft = f
29
-
30
-
! Recursion for solution
31
#####
IF ( N >= 2) THEN
32
#####
DO i = 1, N - 1
33
#####
DO j = 1, N - i
34
#####
ft( j ) = ( h( j + i ) * ft( i ) - h( i ) * ft( i + 1 ) ) / &
35
#####
& ( h( j + i ) - h( j ) )
36
-
END DO
37
-
END DO
38
-
ENDIF
39
-
40
#####
PolyR = ft( 1 )
41
-
42
#####
END FUNCTION PolyR
43
-
44
-
!__________________________________________________________________________
45
-
46
#####
COMPLEX FUNCTION PolyC( x0, x, f, N )
47
-
48
-
INTEGER, INTENT( IN ) :: N ! order of the polynomial
49
-
COMPLEX, INTENT( IN ) :: x0, x( N ), f( N ) ! x, y values of the polynomial
50
#####
COMPLEX :: ft( N ), h( N )
51
-
52
-
! Initialize arrays
53
#####
h = x - x0
54
#####
ft = f
55
-
56
-
! Recursion for solution
57
#####
IF ( N >= 2) THEN
58
#####
DO i = 1, N-1
59
#####
DO j = 1, N-I
60
-
! ft( J ) = ( h( J+I ) * ft( J ) - h( J ) * ft( J+1 ) ) / &
61
-
! ( h( J+I ) - h( J ) )
62
#####
ft( J ) = ft( J ) + h( J ) * ( ft( J ) - ft( J+1 ) ) / &
63
#####
& ( h( J+I ) - h( J ) )
64
-
END DO
65
-
END DO
66
-
ENDIF
67
-
68
#####
PolyC = ft( 1 )
69
-
70
#####
END FUNCTION PolyC
71
-
72
-
!__________________________________________________________________________
73
-
74
#####
FUNCTION PolyZ( x0, x, F, N )
75
-
76
-
INTEGER, INTENT( IN ) :: N ! order of the polynomial
77
-
COMPLEX ( KIND=8 ), INTENT( IN ) :: x0, x( N ), f( N ) ! x, y values of the polynomial
78
-
COMPLEX ( KIND=8 ) :: PolyZ
79
#####
COMPLEX ( KIND=8 ) :: fT( N ), h( N )
80
-
81
-
! Initialize arrays
82
#####
h = x - x0
83
#####
fT = f
84
-
85
-
! Recursion for solution
86
#####
IF ( N >= 2 ) THEN
87
#####
DO i = 1, N - 1
88
#####
DO j = 1, N - i
89
#####
fT( j ) = ( h( j + i ) * fT( j ) - h( j ) * fT( j + 1 ) ) / ( h( j + i ) - h( j ) )
90
-
END DO
91
-
END DO
92
-
ENDIF
93
#####
PolyZ = fT( 1 )
94
-
95
#####
END FUNCTION PolyZ
96
-
97
-
END MODULE PolyMod
98
-