Coverage Report: monotonicMod.f90

Generated from GCOV analysis of Fortran source code

100.0%
Lines Executed
10 total lines
56.8%
Branches Executed
44 total branches
0.0%
Calls Executed
0 total calls
0
-
Source:monotonicMod.f90
0
-
Graph:monotonicMod.gcno
0
-
Data:monotonicMod.gcda
0
-
Runs:29
1
-
!! Monotonicity testing utilities for input validation
2
-
3
-
MODULE monotonicMod
4
-
!! Provides interface to test whether an input vector is strictly monotonically increasing
5
-
6
-
IMPLICIT NONE
7
-
PUBLIC
8
-
9
-
INTERFACE monotonic
10
-
MODULE PROCEDURE monotonic_sngl, monotonic_dble
11
-
END INTERFACE monotonic
12
-
13
-
CONTAINS
14
-
15
14
FUNCTION monotonic_sngl( x, N )
16
-
!! Tests if single precision vector is monotonically increasing
17
-
18
-
LOGICAL :: monotonic_sngl
19
-
INTEGER, INTENT( IN ) :: N
20
-
REAL (KIND=4), DIMENSION( N ), INTENT( IN ) :: x
21
-
22
14
monotonic_sngl = .TRUE.
23
14
IF ( N == 1 ) RETURN
24
2008*
IF ( ANY( x( 2 : N ) <= x( 1 : N - 1 ) ) ) monotonic_sngl = .FALSE.
25
-
26
4
END FUNCTION monotonic_sngl
27
-
28
44
FUNCTION monotonic_dble( x, N )
29
-
!! Tests if double precision vector is monotonically increasing
30
-
31
-
LOGICAL :: monotonic_dble
32
-
INTEGER, INTENT( IN ) :: N
33
-
REAL (KIND=8), DIMENSION( N ), INTENT( IN ) :: x
34
-
35
44
monotonic_dble = .TRUE.
36
44*
IF ( N == 1 ) RETURN
37
157*
IF ( ANY( x( 2 : N ) <= x( 1 : N - 1 ) ) ) monotonic_dble = .FALSE.
38
-
39
44
END FUNCTION monotonic_dble
40
-
41
-
END MODULE monotonicMod