GCC Code Coverage Report


Directory: ./
File: phys/buffer_mod.f90
Date: 2022-01-11 19:19:34
Exec Total Coverage
Lines: 0 28 0.0%
Branches: 0 24 0.0%

Line Branch Exec Source
1 MODULE buffer_mod
2
3 PRIVATE
4 REAL,PARAMETER :: grow_factor=1.5
5
6 INTEGER, POINTER, SAVE :: buffer_i(:)
7 INTEGER,SAVE :: size_buffer_i = 0
8 !$OMP THREADPRIVATE(buffer_i,size_buffer_i)
9
10 REAL,POINTER,SAVE :: buffer_r(:)
11 INTEGER,SAVE :: size_buffer_r = 0
12 !$OMP THREADPRIVATE(buffer_r,size_buffer_r)
13
14 LOGICAL,POINTER,SAVE :: buffer_l(:)
15 INTEGER,SAVE :: size_buffer_l = 0
16 !$OMP THREADPRIVATE(buffer_l,size_buffer_l)
17
18 CHARACTER,POINTER,SAVE :: buffer_c(:)
19 INTEGER,SAVE :: size_buffer_c = 0
20 !$OMP THREADPRIVATE(buffer_c,size_buffer_c)
21
22 INTERFACE get_buffer
23 MODULE PROCEDURE get_buffer_i, get_buffer_r, get_buffer_l, get_buffer_c
24 END INTERFACE
25
26 PUBLIC :: get_buffer
27
28 CONTAINS
29
30 SUBROUTINE get_buffer_i(buff,buff_size)
31 IMPLICIT NONE
32 INTEGER,POINTER :: buff(:)
33 INTEGER,INTENT(IN) :: buff_size
34
35 IF (buff_size>size_buffer_i) THEN
36 DEALLOCATE(buffer_i)
37 size_buffer_i=MAX(2,INT(size_buffer_i*grow_factor))
38 ALLOCATE(buffer_i(size_buffer_i))
39 ENDIF
40
41 buff=>buffer_i
42 END SUBROUTINE get_buffer_i
43
44 SUBROUTINE get_buffer_r(buff,buff_size)
45 IMPLICIT NONE
46 REAL,POINTER :: buff(:)
47 INTEGER,INTENT(IN) :: buff_size
48
49 IF (buff_size>size_buffer_r) THEN
50 DEALLOCATE(buffer_r)
51 size_buffer_r=MAX(2,INT(size_buffer_r*grow_factor))
52 ALLOCATE(buffer_r(size_buffer_r))
53 ENDIF
54
55 buff=>buffer_r
56 END SUBROUTINE get_buffer_r
57
58 SUBROUTINE get_buffer_l(buff,buff_size)
59 IMPLICIT NONE
60 LOGICAL,POINTER :: buff(:)
61 INTEGER,INTENT(IN) :: buff_size
62
63 IF (buff_size>size_buffer_l) THEN
64 DEALLOCATE(buffer_l)
65 size_buffer_l=MAX(2,INT(size_buffer_l*grow_factor))
66 ALLOCATE(buffer_l(size_buffer_l))
67 ENDIF
68
69 buff=>buffer_l
70 END SUBROUTINE get_buffer_l
71
72 SUBROUTINE get_buffer_c(buff,buff_size)
73 IMPLICIT NONE
74 CHARACTER,POINTER :: buff(:)
75 INTEGER,INTENT(IN) :: buff_size
76
77 IF (buff_size>size_buffer_c) THEN
78 DEALLOCATE(buffer_c)
79 size_buffer_c=MAX(2,INT(size_buffer_c*grow_factor))
80 ALLOCATE(buffer_c(size_buffer_c))
81 ENDIF
82
83 buff=>buffer_c
84 END SUBROUTINE get_buffer_c
85
86 END MODULE buffer_mod
87