GCC Code Coverage Report


Directory: src/athena/
File: src/athena/athena_misc_ml.f90
Date: 2026-04-15 16:08:59
Exec Total Coverage
Lines: 754 1026 73.5%
Functions: 0 0 -%
Branches: 5868 11394 51.5%

Line Branch Exec Source
1 module athena__misc_ml
2 !! Module containing miscellaneous machine learning procedures
3 !!
4 !! This module contains various procedures that are useful for machine
5 !! learning tasks. These include shuffling data, splitting data into
6 !! train and test sets, and padding data.
7 use coreutils, only: real32, stop_program
8 implicit none
9
10
11 private
12
13 public :: shuffle, split
14 public :: set_padding, pad_data
15
16
17 interface shuffle
18 !! Shuffle an array along one dimension
19 !!
20 !! This procedure shuffles an array along one dimension. The array
21 !! can be of any rank, but the dimension along which to shuffle must
22 !! be specified. An optional index array can also be shuffled.
23 procedure shuffle_1Dilist, &
24 shuffle_2Drdata, shuffle_3Didata, shuffle_3Drdata, &
25 shuffle_4Drdata, shuffle_5Drdata, &
26 shuffle_2Drdata_1Drlist, &
27 shuffle_3Didata_1Dilist, shuffle_3Didata_1Drlist, &
28 shuffle_4Drdata_1Dilist, shuffle_5Drdata_1Dilist, &
29 shuffle_5Drdata_1Drlist
30 end interface shuffle
31
32 interface split
33 !! Split an array into train and test sets
34 !!
35 !! This procedure splits an array into two sets along one dimension.
36 !! The array can be of any rank, but the dimension along which to
37 !! split must be specified. An optional index array can also be split.
38 !! The size of the left and right splits can also be specified. The
39 !! data can be shuffled before splitting.
40 procedure split_2Drdata_1Drlist, &
41 split_3Didata_1Dilist, split_3Didata_1Drlist, &
42 split_5Drdata, &
43 split_5Drdata_1Drlist
44 end interface split
45
46
47
48 contains
49 !###############################################################################
50
1/2
✓ Branch 0 taken 1104 times.
✗ Branch 1 not taken.
1104 subroutine shuffle_1Dilist(data,seed)
51 !! Shuffle a 1D array along one dimension
52 implicit none
53
54 ! Arguments
55 integer, dimension(:), intent(inout) :: data
56 !! 1D array to be shuffled
57 integer, optional, intent(in) :: seed
58 !! Random seed
59
60 ! Local variables
61 integer :: itmp1, i, j
62 !! Loop indices
63 integer :: istart, num_data, seed_size
64 !! Start index, number of data points, seed size
65 real(real32) :: r
66 !! Random number
67 1104 integer, allocatable, dimension(:) :: iseed
68 !! Random seed
69
70
71 ! Set or get random seed
72 !---------------------------------------------------------------------------
73 1104 call random_seed(size=seed_size)
74
7/14
✓ Branch 0 taken 1104 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1104 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1104 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1104 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1104 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 1104 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 1104 times.
1104 allocate(iseed(seed_size))
75
2/2
✓ Branch 0 taken 3 times.
✓ Branch 1 taken 1101 times.
1104 if(present(seed))then
76
2/2
✓ Branch 0 taken 24 times.
✓ Branch 1 taken 3 times.
27 iseed = seed
77 3 call random_seed(put=iseed)
78 else
79 1101 call random_seed(get=iseed)
80 end if
81
82
83 ! Shuffle the data
84 !---------------------------------------------------------------------------
85
3/6
✗ Branch 0 not taken.
✓ Branch 1 taken 1104 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1104 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1104 times.
1104 num_data = size(data,dim=1)
86 1104 istart=1
87
2/2
✓ Branch 0 taken 1132 times.
✓ Branch 1 taken 1104 times.
2236 do i=1,num_data
88 1132 call random_number(r)
89
1/2
✓ Branch 0 taken 1132 times.
✗ Branch 1 not taken.
1132 j = istart + floor((num_data+1-istart)*r)
90
2/2
✓ Branch 0 taken 1108 times.
✓ Branch 1 taken 24 times.
1132 if(i.eq.j) cycle
91
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 24 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 24 times.
24 itmp1 = data(j)
92
4/8
✗ Branch 0 not taken.
✓ Branch 1 taken 24 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 24 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 24 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 24 times.
24 data(j) = data(i)
93
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 24 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 24 times.
1128 data(i) = itmp1
94 end do
95
96
1/2
✓ Branch 0 taken 1104 times.
✗ Branch 1 not taken.
1104 end subroutine shuffle_1Dilist
97 !-------------------------------------------------------------------------------
98
1/2
✓ Branch 0 taken 6 times.
✗ Branch 1 not taken.
6 subroutine shuffle_2Drdata(data,dim,seed)
99 implicit none
100
101 ! Arguments
102 real(real32), dimension(:,:), intent(inout) :: data
103 !! 2D array to be shuffled
104 integer, optional, intent(in) :: seed
105 !! Random seed
106 integer, intent(in) :: dim
107 !! Dimension along which to shuffle
108
109 ! Local variables
110 integer :: istart,seed_size
111 !! Start index, seed size
112 integer :: i,j,n_data,iother
113 !! Loop indices, number of data points, other dimension
114 integer :: i1s,i2s,i1e,i2e,j1s,j2s,j1e,j2e
115 !! Start and end indices
116 real(real32) :: r
117 !! Random number
118 6 integer, allocatable, dimension(:) :: iseed
119 !! Random seed
120 6 real(real32), allocatable, dimension(:,:) :: tlist
121 !! Temporary list
122
123
124 ! Set or get random seed
125 !---------------------------------------------------------------------------
126 6 call random_seed(size=seed_size)
127
7/14
✓ Branch 0 taken 6 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 6 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 6 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 6 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 6 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 6 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 6 times.
6 allocate(iseed(seed_size))
128
1/2
✓ Branch 0 taken 6 times.
✗ Branch 1 not taken.
6 if(present(seed))then
129
2/2
✓ Branch 0 taken 48 times.
✓ Branch 1 taken 6 times.
54 iseed = seed
130 6 call random_seed(put=iseed)
131 else
132 call random_seed(get=iseed)
133 end if
134
135
136 ! Shuffle the data
137 !---------------------------------------------------------------------------
138
6/12
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 6 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 6 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 6 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 6 times.
6 n_data = size(data,dim=dim)
139
2/2
✓ Branch 0 taken 3 times.
✓ Branch 1 taken 3 times.
6 if(dim.eq.1)then
140 3 iother = 2
141
6/12
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 3 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 3 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 3 times.
3 i2s=1;i2e=size(data,dim=iother)
142
6/12
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 3 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 3 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 3 times.
3 j2s=1;j2e=size(data,dim=iother)
143 else
144 3 iother = 1
145
6/12
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 3 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 3 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 3 times.
3 i1s=1;i1e=size(data,dim=iother)
146
6/12
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 3 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 3 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 3 times.
3 j1s=1;j1e=size(data,dim=iother)
147 end if
148 6 istart=1
149
13/26
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 6 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 6 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 6 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 6 times.
✓ Branch 18 taken 6 times.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 6 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 6 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 6 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 6 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 6 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 6 times.
6 allocate(tlist(1,size(data,dim=iother)))
150
2/2
✓ Branch 0 taken 39 times.
✓ Branch 1 taken 6 times.
45 do i=1,n_data
151 39 call random_number(r)
152
1/2
✓ Branch 0 taken 39 times.
✗ Branch 1 not taken.
39 j = istart + floor((n_data+1-istart)*r)
153
2/2
✓ Branch 0 taken 6 times.
✓ Branch 1 taken 33 times.
39 if(i.eq.j) cycle
154
2/2
✓ Branch 0 taken 24 times.
✓ Branch 1 taken 9 times.
33 if(dim.eq.1)then
155 24 i1s=i;i1e=i
156 24 j1s=j;j1e=j
157 else
158 9 i2s=i;i2e=i
159 9 j2s=j;j2e=j
160 end if
161
24/42
✗ Branch 0 not taken.
✓ Branch 1 taken 33 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 33 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 33 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 33 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 33 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 33 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 33 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 33 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 33 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 33 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 33 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 33 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 33 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 33 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 33 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 33 times.
✓ Branch 48 taken 66 times.
✓ Branch 49 taken 33 times.
✓ Branch 50 taken 66 times.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✓ Branch 53 taken 66 times.
✓ Branch 56 taken 162 times.
✓ Branch 57 taken 33 times.
✓ Branch 58 taken 162 times.
✓ Branch 59 taken 162 times.
423 tlist(1:1,:) = reshape(data(i1s:i1e,i2s:i2e),shape=shape(tlist))
162
27/46
✗ Branch 0 not taken.
✓ Branch 1 taken 33 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 33 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 33 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 33 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 33 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 33 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 33 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 33 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 33 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 33 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 33 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 33 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 33 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 33 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 33 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 33 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 33 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 33 times.
✓ Branch 54 taken 33 times.
✗ Branch 55 not taken.
✓ Branch 56 taken 81 times.
✓ Branch 57 taken 33 times.
✓ Branch 58 taken 162 times.
✓ Branch 59 taken 81 times.
✓ Branch 60 taken 81 times.
✓ Branch 61 taken 33 times.
✓ Branch 62 taken 162 times.
✓ Branch 63 taken 81 times.
519 data(i1s:i1e,i2s:i2e) = data(j1s:j1e,j2s:j2e)
163 data(j1s:j1e,j2s:j2e) = reshape(tlist(1:1,:),&
164
32/58
✗ Branch 0 not taken.
✓ Branch 1 taken 33 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 33 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 33 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 33 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 33 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 33 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 33 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 33 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 33 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 33 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 33 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 33 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 33 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 33 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 33 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 33 times.
✓ Branch 32 taken 66 times.
✓ Branch 33 taken 33 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 66 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 66 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 66 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 66 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 66 times.
✗ Branch 49 not taken.
✓ Branch 50 taken 66 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 66 times.
✗ Branch 55 not taken.
✓ Branch 56 taken 66 times.
✓ Branch 58 taken 66 times.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
✓ Branch 61 taken 66 times.
✓ Branch 64 taken 81 times.
✓ Branch 65 taken 33 times.
✓ Branch 66 taken 162 times.
✓ Branch 67 taken 81 times.
348 shape=shape(data(j1s:j1e,j2s:j2e)))
165 end do
166
167
2/4
✓ Branch 0 taken 6 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 6 times.
✗ Branch 3 not taken.
6 end subroutine shuffle_2Drdata
168 !-------------------------------------------------------------------------------
169
1/2
✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
10 subroutine shuffle_3Drdata(data,dim,seed)
170 !! Shuffle a 3D array along one dimension
171 implicit none
172
173 ! Arguments
174 real(real32), dimension(:,:,:), intent(inout) :: data
175 !! 3D array to be shuffled
176 integer, intent(in) :: dim
177 !! Dimension along which to shuffle
178 integer, optional, intent(in) :: seed
179 !! Random seed
180
181 ! Local variables
182 integer :: istart,seed_size
183 !! Start index, seed size
184 integer :: i,j,n_data
185 !! Loop indices, number of data points
186 real(real32) :: r
187 !! Random number
188 integer, dimension(3) :: idx_s,idx_e,jdx_s,jdx_e
189 !! Start and end indices
190 integer, dimension(3,2) :: t_size
191 !! Temporary size
192 10 integer, allocatable, dimension(:) :: iseed
193 !! Random seed
194 10 real(real32), allocatable, dimension(:,:,:) :: tlist
195 !! Temporary list
196
197
198 ! Set or get random seed
199 !---------------------------------------------------------------------------
200 10 call random_seed(size=seed_size)
201
7/14
✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 10 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 10 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 10 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 10 times.
10 allocate(iseed(seed_size))
202
1/2
✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
10 if(present(seed))then
203
2/2
✓ Branch 0 taken 80 times.
✓ Branch 1 taken 10 times.
90 iseed = seed
204 10 call random_seed(put=iseed)
205 else
206 call random_seed(get=iseed)
207 end if
208
209
9/18
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 10 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 10 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 10 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 10 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 10 times.
10 n_data = size(data,dim=dim)
210
2/2
✓ Branch 0 taken 30 times.
✓ Branch 1 taken 10 times.
40 do i=1,3
211
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 30 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 30 times.
30 t_size(i,1) = 1
212
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 30 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 30 times.
30 jdx_s(i) = 1
213
11/22
✗ Branch 0 not taken.
✓ Branch 1 taken 30 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 30 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 30 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 30 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 30 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 30 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 30 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 30 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 30 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 30 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 30 times.
30 jdx_e(i) = size(data,dim=i)
214
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 30 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 30 times.
30 idx_s(i) = 1
215
11/22
✗ Branch 0 not taken.
✓ Branch 1 taken 30 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 30 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 30 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 30 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 30 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 30 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 30 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 30 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 30 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 30 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 30 times.
30 idx_e(i) = size(data,dim=i)
216
2/2
✓ Branch 0 taken 10 times.
✓ Branch 1 taken 20 times.
40 if(i.eq.dim)then
217
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
10 t_size(i,2) = 1
218 else
219
11/22
✗ Branch 0 not taken.
✓ Branch 1 taken 20 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 20 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 20 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 20 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 20 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 20 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 20 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 20 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 20 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 20 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 20 times.
20 t_size(i,2) = size(data,dim=i)
220 end if
221 end do
222
223
11/22
✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 10 times.
✓ Branch 8 taken 10 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 10 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 10 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 10 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 10 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 10 times.
10 allocate(tlist(t_size(1,2),t_size(2,2),t_size(3,2)))
224
225 10 istart=1
226
2/2
✓ Branch 0 taken 51 times.
✓ Branch 1 taken 10 times.
61 do i=1,n_data
227 51 call random_number(r)
228
1/2
✓ Branch 0 taken 51 times.
✗ Branch 1 not taken.
51 j = istart + floor((n_data+1-istart)*r)
229
2/2
✓ Branch 0 taken 4 times.
✓ Branch 1 taken 47 times.
51 if(i.eq.j) cycle
230
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 47 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 47 times.
47 idx_s(dim) = i
231
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 47 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 47 times.
47 idx_e(dim) = i
232
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 47 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 47 times.
47 jdx_s(dim) = j
233
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 47 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 47 times.
47 jdx_e(dim) = j
234 tlist(&
235 t_size(1,1):t_size(1,2),&
236 t_size(2,1):t_size(2,2),&
237 t_size(3,1):t_size(3,2)) = data(&
238 idx_s(1):idx_e(1),&
239 idx_s(2):idx_e(2),&
240
33/60
✗ Branch 0 not taken.
✓ Branch 1 taken 47 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 47 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 47 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 47 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 47 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 47 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 47 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 47 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 47 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 47 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 47 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 47 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 47 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 47 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 47 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 47 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 47 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 47 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 47 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 47 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 47 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 47 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 47 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 47 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 47 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 47 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 47 times.
✓ Branch 57 taken 111 times.
✓ Branch 58 taken 47 times.
✓ Branch 59 taken 297 times.
✓ Branch 60 taken 111 times.
✓ Branch 61 taken 864 times.
✓ Branch 62 taken 297 times.
1319 idx_s(3):idx_e(3))
241 data(&
242 idx_s(1):idx_e(1),&
243 idx_s(2):idx_e(2),&
244 idx_s(3):idx_e(3)) = data(&
245 jdx_s(1):jdx_e(1),&
246 jdx_s(2):jdx_e(2),&
247
40/68
✗ Branch 0 not taken.
✓ Branch 1 taken 47 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 47 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 47 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 47 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 47 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 47 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 47 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 47 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 47 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 47 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 47 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 47 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 47 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 47 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 47 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 47 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 47 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 47 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 47 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 47 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 47 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 47 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 47 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 47 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 47 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 47 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 47 times.
✓ Branch 57 taken 47 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 111 times.
✓ Branch 60 taken 47 times.
✓ Branch 61 taken 297 times.
✓ Branch 62 taken 111 times.
✓ Branch 63 taken 864 times.
✓ Branch 64 taken 297 times.
✓ Branch 65 taken 111 times.
✓ Branch 66 taken 47 times.
✓ Branch 67 taken 297 times.
✓ Branch 68 taken 111 times.
✓ Branch 69 taken 864 times.
✓ Branch 70 taken 297 times.
2591 jdx_s(3):jdx_e(3))
248 data(&
249 jdx_s(1):jdx_e(1),&
250 jdx_s(2):jdx_e(2),&
251 jdx_s(3):jdx_e(3)) = tlist(&
252 t_size(1,1):t_size(1,2),&
253 t_size(2,1):t_size(2,2),&
254
33/60
✗ Branch 0 not taken.
✓ Branch 1 taken 47 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 47 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 47 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 47 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 47 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 47 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 47 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 47 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 47 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 47 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 47 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 47 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 47 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 47 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 47 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 47 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 47 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 47 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 47 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 47 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 47 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 47 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 47 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 47 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 47 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 47 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 47 times.
✓ Branch 57 taken 111 times.
✓ Branch 58 taken 47 times.
✓ Branch 59 taken 297 times.
✓ Branch 60 taken 111 times.
✓ Branch 61 taken 864 times.
✓ Branch 62 taken 297 times.
1329 t_size(3,1):t_size(3,2))
255 end do
256
257
2/4
✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
10 end subroutine shuffle_3Drdata
258 !-------------------------------------------------------------------------------
259
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 subroutine shuffle_3Didata(data,dim,seed)
260 !! Shuffle a 3D array along one dimension
261 implicit none
262
263 ! Arguments
264 integer, dimension(:,:,:), intent(inout) :: data
265 !! 3D array to be shuffled
266 integer, intent(in) :: dim
267 !! Dimension along which to shuffle
268 integer, optional, intent(in) :: seed
269 !! Random seed
270
271 ! Local variables
272 integer :: istart,seed_size
273 !! Start index, seed size
274 integer :: i,j,n_data
275 !! Loop indices, number of data points
276 real(real32) :: r
277 !! Random number
278 integer, dimension(3) :: idx_s,idx_e,jdx_s,jdx_e
279 !! Start and end indices
280 integer, dimension(3,2) :: t_size
281 !! Temporary size
282 9 integer, allocatable, dimension(:) :: iseed
283 !! Random seed
284 9 integer, allocatable, dimension(:,:,:) :: tlist
285 !! Temporary list
286
287
288 ! Set or get random seed
289 !---------------------------------------------------------------------------
290 9 call random_seed(size=seed_size)
291
7/14
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 9 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 9 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 9 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 9 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 9 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 9 times.
9 allocate(iseed(seed_size))
292
1/2
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
9 if(present(seed))then
293
2/2
✓ Branch 0 taken 72 times.
✓ Branch 1 taken 9 times.
81 iseed = seed
294 9 call random_seed(put=iseed)
295 else
296 call random_seed(get=iseed)
297 end if
298
299
300 ! Get the size of the data
301 !---------------------------------------------------------------------------
302
9/18
✗ Branch 0 not taken.
✓ Branch 1 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 9 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 9 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 9 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 9 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 9 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 9 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 9 times.
9 n_data = size(data,dim=dim)
303
2/2
✓ Branch 0 taken 27 times.
✓ Branch 1 taken 9 times.
36 do i=1,3
304
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 27 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 27 times.
27 t_size(i,1) = 1
305
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 27 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 27 times.
27 jdx_s(i) = 1
306
11/22
✗ Branch 0 not taken.
✓ Branch 1 taken 27 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 27 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 27 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 27 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 27 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 27 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 27 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 27 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 27 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 27 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 27 times.
27 jdx_e(i) = size(data,dim=i)
307
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 27 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 27 times.
27 idx_s(i) = 1
308
11/22
✗ Branch 0 not taken.
✓ Branch 1 taken 27 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 27 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 27 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 27 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 27 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 27 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 27 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 27 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 27 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 27 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 27 times.
27 idx_e(i) = size(data,dim=i)
309
2/2
✓ Branch 0 taken 9 times.
✓ Branch 1 taken 18 times.
36 if(i.eq.dim)then
310
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
9 t_size(i,2) = 1
311 else
312
11/22
✗ Branch 0 not taken.
✓ Branch 1 taken 18 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 18 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 18 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 18 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 18 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 18 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 18 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 18 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 18 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 18 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 18 times.
18 t_size(i,2) = size(data,dim=i)
313 end if
314 end do
315
11/22
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 9 times.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 9 times.
✓ Branch 8 taken 9 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 9 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 9 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 9 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 9 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 9 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 9 times.
9 allocate(tlist(t_size(1,2),t_size(2,2),t_size(3,2)))
316
317
318 ! Shuffle the data
319 !---------------------------------------------------------------------------
320 9 istart=1
321
2/2
✓ Branch 0 taken 48 times.
✓ Branch 1 taken 9 times.
57 do i=1,n_data
322 48 call random_number(r)
323
1/2
✓ Branch 0 taken 48 times.
✗ Branch 1 not taken.
48 j = istart + floor((n_data+1-istart)*r)
324
2/2
✓ Branch 0 taken 4 times.
✓ Branch 1 taken 44 times.
48 if(i.eq.j) cycle
325
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 44 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 44 times.
44 idx_s(dim) = i
326
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 44 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 44 times.
44 idx_e(dim) = i
327
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 44 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 44 times.
44 jdx_s(dim) = j
328
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 44 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 44 times.
44 jdx_e(dim) = j
329 tlist(&
330 t_size(1,1):t_size(1,2),&
331 t_size(2,1):t_size(2,2),&
332 t_size(3,1):t_size(3,2)) = data(&
333 idx_s(1):idx_e(1),&
334 idx_s(2):idx_e(2),&
335
33/60
✗ Branch 0 not taken.
✓ Branch 1 taken 44 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 44 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 44 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 44 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 44 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 44 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 44 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 44 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 44 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 44 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 44 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 44 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 44 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 44 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 44 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 44 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 44 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 44 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 44 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 44 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 44 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 44 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 44 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 44 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 44 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 44 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 44 times.
✓ Branch 57 taken 114 times.
✓ Branch 58 taken 44 times.
✓ Branch 59 taken 288 times.
✓ Branch 60 taken 114 times.
✓ Branch 61 taken 774 times.
✓ Branch 62 taken 288 times.
1220 idx_s(3):idx_e(3))
336 data(&
337 idx_s(1):idx_e(1),&
338 idx_s(2):idx_e(2),&
339 idx_s(3):idx_e(3)) = data(&
340 jdx_s(1):jdx_e(1),&
341 jdx_s(2):jdx_e(2),&
342
40/68
✗ Branch 0 not taken.
✓ Branch 1 taken 44 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 44 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 44 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 44 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 44 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 44 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 44 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 44 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 44 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 44 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 44 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 44 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 44 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 44 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 44 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 44 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 44 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 44 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 44 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 44 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 44 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 44 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 44 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 44 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 44 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 44 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 44 times.
✓ Branch 57 taken 44 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 114 times.
✓ Branch 60 taken 44 times.
✓ Branch 61 taken 288 times.
✓ Branch 62 taken 114 times.
✓ Branch 63 taken 774 times.
✓ Branch 64 taken 288 times.
✓ Branch 65 taken 114 times.
✓ Branch 66 taken 44 times.
✓ Branch 67 taken 288 times.
✓ Branch 68 taken 114 times.
✓ Branch 69 taken 774 times.
✓ Branch 70 taken 288 times.
2396 jdx_s(3):jdx_e(3))
343 data(&
344 jdx_s(1):jdx_e(1),&
345 jdx_s(2):jdx_e(2),&
346 jdx_s(3):jdx_e(3)) = tlist(&
347 t_size(1,1):t_size(1,2),&
348 t_size(2,1):t_size(2,2),&
349
33/60
✗ Branch 0 not taken.
✓ Branch 1 taken 44 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 44 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 44 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 44 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 44 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 44 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 44 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 44 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 44 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 44 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 44 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 44 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 44 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 44 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 44 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 44 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 44 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 44 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 44 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 44 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 44 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 44 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 44 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 44 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 44 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 44 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 44 times.
✓ Branch 57 taken 114 times.
✓ Branch 58 taken 44 times.
✓ Branch 59 taken 288 times.
✓ Branch 60 taken 114 times.
✓ Branch 61 taken 774 times.
✓ Branch 62 taken 288 times.
1229 t_size(3,1):t_size(3,2))
350 end do
351
352
2/4
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
9 end subroutine shuffle_3Didata
353 !-------------------------------------------------------------------------------
354
1/2
✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
12 subroutine shuffle_4Drdata(data,dim,seed)
355 !! Shuffle a 4D array along one dimension
356 implicit none
357
358 ! Arguments
359 real(real32), dimension(:,:,:,:), intent(inout) :: data
360 !! 4D array to be shuffled
361 integer, intent(in) :: dim
362 !! Dimension along which to shuffle
363 integer, optional, intent(in) :: seed
364 !! Random seed
365
366 ! Local variables
367 integer :: istart,seed_size
368 !! Start index, seed size
369 integer :: i,j,n_data
370 !! Loop indices, number of data points
371 real(real32) :: r
372 !! Random number
373 integer, dimension(4) :: idx_s,idx_e,jdx_s,jdx_e
374 !! Start and end indices
375 integer, dimension(4,2) :: t_size
376 !! Temporary size
377 12 integer, allocatable, dimension(:) :: iseed
378 !! Random seed
379 12 real(real32), allocatable, dimension(:,:,:,:) :: tlist
380 !! Temporary list
381
382
383 ! Set or get random seed
384 !---------------------------------------------------------------------------
385 12 call random_seed(size=seed_size)
386
7/14
✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 12 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 12 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 12 times.
12 allocate(iseed(seed_size))
387
1/2
✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
12 if(present(seed))then
388
2/2
✓ Branch 0 taken 96 times.
✓ Branch 1 taken 12 times.
108 iseed = seed
389 12 call random_seed(put=iseed)
390 else
391 call random_seed(get=iseed)
392 end if
393
394
395 ! Get the size of the data
396 !---------------------------------------------------------------------------
397
12/24
✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 12 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 12 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 12 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 12 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 12 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 12 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 12 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 12 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 12 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 12 times.
12 n_data = size(data,dim=dim)
398
2/2
✓ Branch 0 taken 48 times.
✓ Branch 1 taken 12 times.
60 do i=1,4
399
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 48 times.
48 t_size(i,1) = 1
400
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 48 times.
48 jdx_s(i) = 1
401
14/28
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 48 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 48 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 48 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 48 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 48 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 48 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 48 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 48 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 48 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 48 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 48 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 48 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 48 times.
48 jdx_e(i) = size(data,dim=i)
402
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 48 times.
48 idx_s(i) = 1
403
14/28
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 48 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 48 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 48 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 48 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 48 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 48 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 48 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 48 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 48 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 48 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 48 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 48 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 48 times.
48 idx_e(i) = size(data,dim=i)
404
2/2
✓ Branch 0 taken 12 times.
✓ Branch 1 taken 36 times.
60 if(i.eq.dim)then
405
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
12 t_size(i,2) = 1
406 else
407
14/28
✗ Branch 0 not taken.
✓ Branch 1 taken 36 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 36 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 36 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 36 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 36 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 36 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 36 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 36 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 36 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 36 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 36 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 36 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 36 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 36 times.
36 t_size(i,2) = size(data,dim=i)
408 end if
409 end do
410
13/26
✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 12 times.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 12 times.
✓ Branch 8 taken 12 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 12 times.
✓ Branch 12 taken 12 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 12 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 12 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 12 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 12 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 12 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 12 times.
12 allocate(tlist(t_size(1,2),t_size(2,2),t_size(3,2),t_size(4,2)))
411
412
413 ! Shuffle the data
414 !---------------------------------------------------------------------------
415 12 istart=1
416
2/2
✓ Branch 0 taken 57 times.
✓ Branch 1 taken 12 times.
69 do i=1,n_data
417 57 call random_number(r)
418
1/2
✓ Branch 0 taken 57 times.
✗ Branch 1 not taken.
57 j = istart + floor((n_data+1-istart)*r)
419
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 57 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 57 times.
57 idx_s(dim) = i
420
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 57 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 57 times.
57 idx_e(dim) = i
421
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 57 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 57 times.
57 jdx_s(dim) = j
422
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 57 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 57 times.
57 jdx_e(dim) = j
423 tlist(&
424 t_size(1,1):t_size(1,2),&
425 t_size(2,1):t_size(2,2),&
426 t_size(3,1):t_size(3,2),&
427 t_size(4,1):t_size(4,2)) = data(&
428 idx_s(1):idx_e(1),&
429 idx_s(2):idx_e(2),&
430 idx_s(3):idx_e(3),&
431
44/80
✗ Branch 0 not taken.
✓ Branch 1 taken 57 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 57 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 57 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 57 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 57 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 57 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 57 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 57 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 57 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 57 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 57 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 57 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 57 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 57 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 57 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 57 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 57 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 57 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 57 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 57 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 57 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 57 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 57 times.
✗ Branch 47 not taken.
✓ Branch 48 taken 57 times.
✗ Branch 49 not taken.
✓ Branch 50 taken 57 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 57 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 57 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 57 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 57 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 57 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 57 times.
✗ Branch 65 not taken.
✓ Branch 66 taken 57 times.
✗ Branch 67 not taken.
✓ Branch 68 taken 57 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 57 times.
✗ Branch 71 not taken.
✓ Branch 72 taken 57 times.
✗ Branch 73 not taken.
✓ Branch 74 taken 57 times.
✓ Branch 76 taken 153 times.
✓ Branch 77 taken 57 times.
✓ Branch 78 taken 405 times.
✓ Branch 79 taken 153 times.
✓ Branch 80 taken 1053 times.
✓ Branch 81 taken 405 times.
✓ Branch 82 taken 3240 times.
✓ Branch 83 taken 1053 times.
4908 idx_s(4):idx_e(4))
432 data(&
433 idx_s(1):idx_e(1),&
434 idx_s(2):idx_e(2),&
435 idx_s(3):idx_e(3),&
436 idx_s(4):idx_e(4)) = data(&
437 jdx_s(1):jdx_e(1),&
438 jdx_s(2):jdx_e(2),&
439 jdx_s(3):jdx_e(3),&
440
53/90
✗ Branch 0 not taken.
✓ Branch 1 taken 57 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 57 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 57 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 57 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 57 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 57 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 57 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 57 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 57 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 57 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 57 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 57 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 57 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 57 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 57 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 57 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 57 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 57 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 57 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 57 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 57 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 57 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 57 times.
✗ Branch 47 not taken.
✓ Branch 48 taken 57 times.
✗ Branch 49 not taken.
✓ Branch 50 taken 57 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 57 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 57 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 57 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 57 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 57 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 57 times.
✗ Branch 65 not taken.
✓ Branch 66 taken 57 times.
✗ Branch 67 not taken.
✓ Branch 68 taken 57 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 57 times.
✗ Branch 71 not taken.
✓ Branch 72 taken 57 times.
✗ Branch 73 not taken.
✓ Branch 74 taken 57 times.
✓ Branch 76 taken 57 times.
✗ Branch 77 not taken.
✓ Branch 78 taken 153 times.
✓ Branch 79 taken 57 times.
✓ Branch 80 taken 405 times.
✓ Branch 81 taken 153 times.
✓ Branch 82 taken 1053 times.
✓ Branch 83 taken 405 times.
✓ Branch 84 taken 3240 times.
✓ Branch 85 taken 1053 times.
✓ Branch 86 taken 153 times.
✓ Branch 87 taken 57 times.
✓ Branch 88 taken 405 times.
✓ Branch 89 taken 153 times.
✓ Branch 90 taken 1053 times.
✓ Branch 91 taken 405 times.
✓ Branch 92 taken 3240 times.
✓ Branch 93 taken 1053 times.
9759 jdx_s(4):jdx_e(4))
441 data(&
442 jdx_s(1):jdx_e(1),&
443 jdx_s(2):jdx_e(2),&
444 jdx_s(3):jdx_e(3),&
445 jdx_s(4):jdx_e(4)) = tlist(&
446 t_size(1,1):t_size(1,2),&
447 t_size(2,1):t_size(2,2),&
448 t_size(3,1):t_size(3,2),&
449
44/80
✗ Branch 0 not taken.
✓ Branch 1 taken 57 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 57 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 57 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 57 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 57 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 57 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 57 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 57 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 57 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 57 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 57 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 57 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 57 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 57 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 57 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 57 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 57 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 57 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 57 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 57 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 57 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 57 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 57 times.
✗ Branch 47 not taken.
✓ Branch 48 taken 57 times.
✗ Branch 49 not taken.
✓ Branch 50 taken 57 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 57 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 57 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 57 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 57 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 57 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 57 times.
✗ Branch 65 not taken.
✓ Branch 66 taken 57 times.
✗ Branch 67 not taken.
✓ Branch 68 taken 57 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 57 times.
✗ Branch 71 not taken.
✓ Branch 72 taken 57 times.
✗ Branch 73 not taken.
✓ Branch 74 taken 57 times.
✓ Branch 76 taken 153 times.
✓ Branch 77 taken 57 times.
✓ Branch 78 taken 405 times.
✓ Branch 79 taken 153 times.
✓ Branch 80 taken 1053 times.
✓ Branch 81 taken 405 times.
✓ Branch 82 taken 3240 times.
✓ Branch 83 taken 1053 times.
4920 t_size(4,1):t_size(4,2))
450 end do
451
452
2/4
✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
12 end subroutine shuffle_4Drdata
453 !-------------------------------------------------------------------------------
454
1/2
✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
15 subroutine shuffle_5Drdata(data,dim,seed)
455 !! Shuffle a 5D array along one dimension
456 implicit none
457
458 ! Arguments
459 real(real32), dimension(:,:,:,:,:), intent(inout) :: data
460 !! 5D array to be shuffled
461 integer, intent(in) :: dim
462 !! Dimension along which to shuffle
463 integer, optional, intent(in) :: seed
464 !! Random seed
465
466 ! Local variables
467 integer :: istart,seed_size
468 !! Start index, seed size
469 integer :: i,j,n_data
470 !! Loop indices, number of data points
471 real(real32) :: r
472 !! Random number
473 integer, dimension(5) :: idx_s,idx_e,jdx_s,jdx_e
474 !! Start and end indices
475 integer, dimension(5,2) :: t_size
476 !! Temporary size
477 15 integer, allocatable, dimension(:) :: iseed
478 !! Random seed
479 15 real(real32), allocatable, dimension(:,:,:,:,:) :: tlist
480 !! Temporary list
481
482
483 ! Set or get random seed
484 !---------------------------------------------------------------------------
485 15 call random_seed(size=seed_size)
486
7/14
✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 15 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 15 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 15 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 15 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 15 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 15 times.
15 allocate(iseed(seed_size))
487
1/2
✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
15 if(present(seed))then
488
2/2
✓ Branch 0 taken 120 times.
✓ Branch 1 taken 15 times.
135 iseed = seed
489 15 call random_seed(put=iseed)
490 else
491 call random_seed(get=iseed)
492 end if
493
494
495 ! Get the size of the data
496 !---------------------------------------------------------------------------
497
15/30
✗ Branch 0 not taken.
✓ Branch 1 taken 15 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 15 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 15 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 15 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 15 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 15 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 15 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 15 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 15 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 15 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 15 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 15 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 15 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 15 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 15 times.
15 n_data = size(data,dim=dim)
498
2/2
✓ Branch 0 taken 75 times.
✓ Branch 1 taken 15 times.
90 do i=1,5
499
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 75 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 75 times.
75 t_size(i,1) = 1
500
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 75 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 75 times.
75 jdx_s(i) = 1
501
17/34
✗ Branch 0 not taken.
✓ Branch 1 taken 75 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 75 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 75 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 75 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 75 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 75 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 75 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 75 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 75 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 75 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 75 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 75 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 75 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 75 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 75 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 75 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 75 times.
75 jdx_e(i) = size(data,dim=i)
502
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 75 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 75 times.
75 idx_s(i) = 1
503
17/34
✗ Branch 0 not taken.
✓ Branch 1 taken 75 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 75 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 75 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 75 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 75 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 75 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 75 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 75 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 75 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 75 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 75 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 75 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 75 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 75 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 75 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 75 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 75 times.
75 idx_e(i) = size(data,dim=i)
504
2/2
✓ Branch 0 taken 15 times.
✓ Branch 1 taken 60 times.
90 if(i.eq.dim)then
505
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 15 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 15 times.
15 t_size(i,2) = 1
506 else
507
17/34
✗ Branch 0 not taken.
✓ Branch 1 taken 60 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 60 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 60 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 60 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 60 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 60 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 60 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 60 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 60 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 60 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 60 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 60 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 60 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 60 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 60 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 60 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 60 times.
60 t_size(i,2) = size(data,dim=i)
508 end if
509 end do
510 allocate(tlist(&
511 t_size(1,2),t_size(2,2),&
512 t_size(3,2),t_size(4,2),&
513
15/30
✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 15 times.
✓ Branch 4 taken 15 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 15 times.
✓ Branch 8 taken 15 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 15 times.
✓ Branch 12 taken 15 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 15 times.
✓ Branch 16 taken 15 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 15 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 15 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 15 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 15 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 15 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 15 times.
15 t_size(5,2)))
514
515
516 ! Shuffle the data
517 !---------------------------------------------------------------------------
518 15 istart=1
519
2/2
✓ Branch 0 taken 66 times.
✓ Branch 1 taken 15 times.
81 do i=1,n_data
520 66 call random_number(r)
521
1/2
✓ Branch 0 taken 66 times.
✗ Branch 1 not taken.
66 j = istart + floor((n_data+1-istart)*r)
522
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 66 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 66 times.
66 idx_s(dim) = i
523
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 66 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 66 times.
66 idx_e(dim) = i
524
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 66 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 66 times.
66 jdx_s(dim) = j
525
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 66 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 66 times.
66 jdx_e(dim) = j
526 tlist(&
527 t_size(1,1):t_size(1,2),&
528 t_size(2,1):t_size(2,2),&
529 t_size(3,1):t_size(3,2),&
530 t_size(4,1):t_size(4,2),&
531 t_size(5,1):t_size(5,2)) = data(&
532 idx_s(1):idx_e(1),&
533 idx_s(2):idx_e(2),&
534 idx_s(3):idx_e(3),&
535 idx_s(4):idx_e(4),&
536
55/100
✗ Branch 0 not taken.
✓ Branch 1 taken 66 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 66 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 66 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 66 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 66 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 66 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 66 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 66 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 66 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 66 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 66 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 66 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 66 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 66 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 66 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 66 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 66 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 66 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 66 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 66 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 66 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 66 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 66 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 66 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 66 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 66 times.
✗ Branch 53 not taken.
✓ Branch 54 taken 66 times.
✗ Branch 55 not taken.
✓ Branch 56 taken 66 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 66 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 66 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 66 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 66 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 66 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 66 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 66 times.
✗ Branch 73 not taken.
✓ Branch 74 taken 66 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 66 times.
✗ Branch 77 not taken.
✓ Branch 78 taken 66 times.
✗ Branch 79 not taken.
✓ Branch 80 taken 66 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 66 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 66 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 66 times.
✗ Branch 88 not taken.
✓ Branch 89 taken 66 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 66 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 66 times.
✓ Branch 95 taken 180 times.
✓ Branch 96 taken 66 times.
✓ Branch 97 taken 486 times.
✓ Branch 98 taken 180 times.
✓ Branch 99 taken 1296 times.
✓ Branch 100 taken 486 times.
✓ Branch 101 taken 3402 times.
✓ Branch 102 taken 1296 times.
✓ Branch 103 taken 12150 times.
✓ Branch 104 taken 3402 times.
17580 idx_s(5):idx_e(5))
537 data(&
538 idx_s(1):idx_e(1),&
539 idx_s(2):idx_e(2),&
540 idx_s(3):idx_e(3),&
541 idx_s(4):idx_e(4),&
542 idx_s(5):idx_e(5)) = data(&
543 jdx_s(1):jdx_e(1),&
544 jdx_s(2):jdx_e(2),&
545 jdx_s(3):jdx_e(3),&
546 jdx_s(4):jdx_e(4),&
547
66/112
✗ Branch 0 not taken.
✓ Branch 1 taken 66 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 66 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 66 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 66 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 66 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 66 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 66 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 66 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 66 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 66 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 66 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 66 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 66 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 66 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 66 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 66 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 66 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 66 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 66 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 66 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 66 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 66 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 66 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 66 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 66 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 66 times.
✗ Branch 53 not taken.
✓ Branch 54 taken 66 times.
✗ Branch 55 not taken.
✓ Branch 56 taken 66 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 66 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 66 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 66 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 66 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 66 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 66 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 66 times.
✗ Branch 73 not taken.
✓ Branch 74 taken 66 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 66 times.
✗ Branch 77 not taken.
✓ Branch 78 taken 66 times.
✗ Branch 79 not taken.
✓ Branch 80 taken 66 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 66 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 66 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 66 times.
✗ Branch 88 not taken.
✓ Branch 89 taken 66 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 66 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 66 times.
✓ Branch 95 taken 66 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 180 times.
✓ Branch 98 taken 66 times.
✓ Branch 99 taken 486 times.
✓ Branch 100 taken 180 times.
✓ Branch 101 taken 1296 times.
✓ Branch 102 taken 486 times.
✓ Branch 103 taken 3402 times.
✓ Branch 104 taken 1296 times.
✓ Branch 105 taken 12150 times.
✓ Branch 106 taken 3402 times.
✓ Branch 107 taken 180 times.
✓ Branch 108 taken 66 times.
✓ Branch 109 taken 486 times.
✓ Branch 110 taken 180 times.
✓ Branch 111 taken 1296 times.
✓ Branch 112 taken 486 times.
✓ Branch 113 taken 3402 times.
✓ Branch 114 taken 1296 times.
✓ Branch 115 taken 12150 times.
✓ Branch 116 taken 3402 times.
35094 jdx_s(5):jdx_e(5))
548 data(&
549 jdx_s(1):jdx_e(1),&
550 jdx_s(2):jdx_e(2),&
551 jdx_s(3):jdx_e(3),&
552 jdx_s(4):jdx_e(4),&
553 jdx_s(5):jdx_e(5)) = tlist(&
554 t_size(1,1):t_size(1,2),&
555 t_size(2,1):t_size(2,2),&
556 t_size(3,1):t_size(3,2),&
557 t_size(4,1):t_size(4,2),&
558
55/100
✗ Branch 0 not taken.
✓ Branch 1 taken 66 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 66 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 66 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 66 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 66 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 66 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 66 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 66 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 66 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 66 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 66 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 66 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 66 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 66 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 66 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 66 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 66 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 66 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 66 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 66 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 66 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 66 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 66 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 66 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 66 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 66 times.
✗ Branch 53 not taken.
✓ Branch 54 taken 66 times.
✗ Branch 55 not taken.
✓ Branch 56 taken 66 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 66 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 66 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 66 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 66 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 66 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 66 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 66 times.
✗ Branch 73 not taken.
✓ Branch 74 taken 66 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 66 times.
✗ Branch 77 not taken.
✓ Branch 78 taken 66 times.
✗ Branch 79 not taken.
✓ Branch 80 taken 66 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 66 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 66 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 66 times.
✗ Branch 88 not taken.
✓ Branch 89 taken 66 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 66 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 66 times.
✓ Branch 95 taken 180 times.
✓ Branch 96 taken 66 times.
✓ Branch 97 taken 486 times.
✓ Branch 98 taken 180 times.
✓ Branch 99 taken 1296 times.
✓ Branch 100 taken 486 times.
✓ Branch 101 taken 3402 times.
✓ Branch 102 taken 1296 times.
✓ Branch 103 taken 12150 times.
✓ Branch 104 taken 3402 times.
17595 t_size(5,1):t_size(5,2))
559 end do
560
561
2/4
✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
15 end subroutine shuffle_5Drdata
562 !-------------------------------------------------------------------------------
563
2/4
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 3 times.
✗ Branch 3 not taken.
6 subroutine shuffle_2Drdata_1Drlist(data,label,dim,seed,shuffle_list)
564 !! Shuffle a 2D array along one dimension
565 implicit none
566
567 ! Arguments
568 real(real32), dimension(:,:), intent(inout) :: data
569 !! 2D array to be shuffled
570 real(real32), dimension(:), intent(inout) :: label
571 !! 1D array to be shuffled
572 integer, intent(in) :: dim
573 !! Dimension along which to shuffle
574 integer, optional, intent(in) :: seed
575 !! Random seed
576
6/12
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
2 integer, optional, dimension(size(data,dim)), intent(out) :: shuffle_list
577 !! Index array
578
579 ! Local variables
580 integer :: istart,seed_size
581 !! Start index, seed size
582 integer :: i,j,n_data
583 !! Loop indices, number of data points
584 real(real32) :: rtmp1
585 !! Temporary real
586 real(real32) :: r
587 !! Random number
588 integer, dimension(2) :: idx_s,idx_e,jdx_s,jdx_e
589 !! Start and end indices
590 integer, dimension(2,2) :: t_size
591 !! Temporary size
592 3 integer, allocatable, dimension(:) :: iseed
593 !! Random seed
594 3 real(real32), allocatable, dimension(:,:) :: tlist
595 !! Temporary list
596
597
598 ! Set or get random seed
599 !---------------------------------------------------------------------------
600 3 call random_seed(size=seed_size)
601
7/14
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 3 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 3 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 3 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 3 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 3 times.
3 allocate(iseed(seed_size))
602
1/2
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
3 if(present(seed))then
603
2/2
✓ Branch 0 taken 24 times.
✓ Branch 1 taken 3 times.
27 iseed = seed
604 3 call random_seed(put=iseed)
605 else
606 call random_seed(get=iseed)
607 end if
608
609
610 ! Get the size of the data
611 !---------------------------------------------------------------------------
612
6/12
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 3 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 3 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 3 times.
3 n_data = size(data,dim=dim)
613
2/2
✓ Branch 0 taken 6 times.
✓ Branch 1 taken 3 times.
9 do i=1,2
614
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
6 t_size(i,1) = 1
615
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
6 jdx_s(i) = 1
616
8/16
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 6 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 6 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 6 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 6 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 6 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 6 times.
6 jdx_e(i) = size(data,dim=i)
617
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
6 idx_s(i) = 1
618
8/16
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 6 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 6 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 6 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 6 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 6 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 6 times.
6 idx_e(i) = size(data,dim=i)
619
2/2
✓ Branch 0 taken 3 times.
✓ Branch 1 taken 3 times.
9 if(i.eq.dim)then
620
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 times.
3 t_size(i,2) = 1
621 else
622
8/16
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 3 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 3 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 3 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 3 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 3 times.
3 t_size(i,2) = size(data,dim=i)
623 end if
624 end do
625
626
9/18
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 3 times.
✓ Branch 4 taken 3 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 3 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 3 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 3 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 3 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 3 times.
3 allocate(tlist(t_size(1,2),t_size(2,2)))
627
628 3 istart=1
629
2/2
✓ Branch 0 taken 16 times.
✓ Branch 1 taken 3 times.
19 do i=1,n_data
630 16 call random_number(r)
631
1/2
✓ Branch 0 taken 16 times.
✗ Branch 1 not taken.
16 j = istart + floor((n_data+1-istart)*r)
632
4/6
✓ Branch 0 taken 13 times.
✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 13 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 13 times.
16 if(present(shuffle_list)) shuffle_list(i) = j
633
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 16 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 16 times.
16 idx_s(dim) = i
634
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 16 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 16 times.
16 idx_e(dim) = i
635
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 16 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 16 times.
16 jdx_s(dim) = j
636
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 16 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 16 times.
16 jdx_e(dim) = j
637 tlist(&
638 t_size(1,1):t_size(1,2),&
639 t_size(2,1):t_size(2,2)) = data(&
640 idx_s(1):idx_e(1),&
641
22/40
✗ Branch 0 not taken.
✓ Branch 1 taken 16 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 16 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 16 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 16 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 16 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 16 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 16 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 16 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 16 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 16 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 16 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 16 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 16 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 16 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 16 times.
✗ Branch 31 not taken.
✓ Branch 32 taken 16 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 16 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 16 times.
✓ Branch 38 taken 36 times.
✓ Branch 39 taken 16 times.
✓ Branch 40 taken 360 times.
✓ Branch 41 taken 36 times.
412 idx_s(2):idx_e(2))
642 data(&
643 idx_s(1):idx_e(1),&
644 idx_s(2):idx_e(2)) = data(&
645 jdx_s(1):jdx_e(1),&
646
27/46
✗ Branch 0 not taken.
✓ Branch 1 taken 16 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 16 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 16 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 16 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 16 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 16 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 16 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 16 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 16 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 16 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 16 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 16 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 16 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 16 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 16 times.
✗ Branch 31 not taken.
✓ Branch 32 taken 16 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 16 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 16 times.
✓ Branch 38 taken 16 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 36 times.
✓ Branch 41 taken 16 times.
✓ Branch 42 taken 360 times.
✓ Branch 43 taken 36 times.
✓ Branch 44 taken 36 times.
✓ Branch 45 taken 16 times.
✓ Branch 46 taken 360 times.
✓ Branch 47 taken 36 times.
808 jdx_s(2):jdx_e(2))
647 data(&
648 jdx_s(1):jdx_e(1),&
649 jdx_s(2):jdx_e(2)) = tlist(&
650 t_size(1,1):t_size(1,2),&
651
22/40
✗ Branch 0 not taken.
✓ Branch 1 taken 16 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 16 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 16 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 16 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 16 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 16 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 16 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 16 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 16 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 16 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 16 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 16 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 16 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 16 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 16 times.
✗ Branch 31 not taken.
✓ Branch 32 taken 16 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 16 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 16 times.
✓ Branch 38 taken 36 times.
✓ Branch 39 taken 16 times.
✓ Branch 40 taken 360 times.
✓ Branch 41 taken 36 times.
412 t_size(2,1):t_size(2,2))
652
653
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 16 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 16 times.
16 rtmp1 = label(i)
654
4/8
✗ Branch 0 not taken.
✓ Branch 1 taken 16 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 16 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 16 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 16 times.
16 label(i) = label(j)
655
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 16 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 16 times.
19 label(j) = rtmp1
656 end do
657
658
4/6
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 1 times.
✓ Branch 2 taken 3 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 5 not taken.
6 end subroutine shuffle_2Drdata_1Drlist
659 !-------------------------------------------------------------------------------
660
2/4
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
2 subroutine shuffle_3Didata_1Dilist(data,label,dim,seed)
661 !! Shuffle a 3D array along one dimension
662 implicit none
663
664 ! Arguments
665 integer, dimension(:,:,:), intent(inout) :: data
666 !! 3D array to be shuffled
667 integer, dimension(:), intent(inout) :: label
668 !! 1D array to be shuffled
669 integer, intent(in) :: dim
670 !! Dimension along which to shuffle
671 integer, optional, intent(in) :: seed
672 !! Random seed
673
674 ! Local variables
675 integer :: istart,seed_size
676 !! Start index, seed size
677 integer :: i,j,n_data
678 !! Loop indices, number of data points
679 integer :: itmp1
680 !! Temporary integer
681 real(real32) :: r
682 !! Random number
683 integer, dimension(3) :: idx_s,idx_e,jdx_s,jdx_e
684 !! Start and end indices
685 integer, dimension(3,2) :: t_size
686 !! Temporary size
687 2 integer, allocatable, dimension(:) :: iseed
688 !! Random seed
689 2 integer, allocatable, dimension(:,:,:) :: tlist
690 !! Temporary list
691
692
693 ! Set or get random seed
694 !---------------------------------------------------------------------------
695 2 call random_seed(size=seed_size)
696
7/14
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
2 allocate(iseed(seed_size))
697
1/2
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
2 if(present(seed))then
698
2/2
✓ Branch 0 taken 16 times.
✓ Branch 1 taken 2 times.
18 iseed = seed
699 2 call random_seed(put=iseed)
700 else
701 call random_seed(get=iseed)
702 end if
703
704
705 ! Get the size of the data
706 !---------------------------------------------------------------------------
707
9/18
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
2 n_data = size(data,dim=dim)
708
2/2
✓ Branch 0 taken 6 times.
✓ Branch 1 taken 2 times.
8 do i=1,3
709
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
6 t_size(i,1) = 1
710
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
6 jdx_s(i) = 1
711
11/22
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 6 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 6 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 6 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 6 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 6 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 6 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 6 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 6 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 6 times.
6 jdx_e(i) = size(data,dim=i)
712
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
6 idx_s(i) = 1
713
11/22
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 6 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 6 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 6 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 6 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 6 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 6 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 6 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 6 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 6 times.
6 idx_e(i) = size(data,dim=i)
714
2/2
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 4 times.
8 if(i.eq.dim)then
715
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
2 t_size(i,2) = 1
716 else
717
11/22
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 4 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 4 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 4 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 4 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 4 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 4 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 4 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 4 times.
4 t_size(i,2) = size(data,dim=i)
718 end if
719 end do
720
11/22
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 2 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 2 times.
2 allocate(tlist(t_size(1,2),t_size(2,2),t_size(3,2)))
721
722
723 ! Shuffle the data
724 !---------------------------------------------------------------------------
725 2 istart=1
726
2/2
✓ Branch 0 taken 110 times.
✓ Branch 1 taken 2 times.
112 do i=1,n_data
727 110 call random_number(r)
728
1/2
✓ Branch 0 taken 110 times.
✗ Branch 1 not taken.
110 j = istart + floor((n_data+1-istart)*r)
729
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 110 times.
110 idx_s(dim) = i
730
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 110 times.
110 idx_e(dim) = i
731
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 110 times.
110 jdx_s(dim) = j
732
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 110 times.
110 jdx_e(dim) = j
733 tlist(&
734 t_size(1,1):t_size(1,2),&
735 t_size(2,1):t_size(2,2),&
736 t_size(3,1):t_size(3,2)) = data(&
737 idx_s(1):idx_e(1),&
738 idx_s(2):idx_e(2),&
739
33/60
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 110 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 110 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 110 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 110 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 110 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 110 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 110 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 110 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 110 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 110 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 110 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 110 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 110 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 110 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 110 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 110 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 110 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 110 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 110 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 110 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 110 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 110 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 110 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 110 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 110 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 110 times.
✓ Branch 57 taken 330 times.
✓ Branch 58 taken 110 times.
✓ Branch 59 taken 990 times.
✓ Branch 60 taken 330 times.
✓ Branch 61 taken 990 times.
✓ Branch 62 taken 990 times.
2420 idx_s(3):idx_e(3))
740 data(&
741 idx_s(1):idx_e(1),&
742 idx_s(2):idx_e(2),&
743 idx_s(3):idx_e(3)) = data(&
744 jdx_s(1):jdx_e(1),&
745 jdx_s(2):jdx_e(2),&
746
40/68
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 110 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 110 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 110 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 110 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 110 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 110 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 110 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 110 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 110 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 110 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 110 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 110 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 110 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 110 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 110 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 110 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 110 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 110 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 110 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 110 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 110 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 110 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 110 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 110 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 110 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 110 times.
✓ Branch 57 taken 110 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 330 times.
✓ Branch 60 taken 110 times.
✓ Branch 61 taken 990 times.
✓ Branch 62 taken 330 times.
✓ Branch 63 taken 990 times.
✓ Branch 64 taken 990 times.
✓ Branch 65 taken 330 times.
✓ Branch 66 taken 110 times.
✓ Branch 67 taken 990 times.
✓ Branch 68 taken 330 times.
✓ Branch 69 taken 990 times.
✓ Branch 70 taken 990 times.
4730 jdx_s(3):jdx_e(3))
747 data(&
748 jdx_s(1):jdx_e(1),&
749 jdx_s(2):jdx_e(2),&
750 jdx_s(3):jdx_e(3)) = tlist(&
751 t_size(1,1):t_size(1,2),&
752 t_size(2,1):t_size(2,2),&
753
33/60
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 110 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 110 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 110 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 110 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 110 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 110 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 110 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 110 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 110 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 110 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 110 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 110 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 110 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 110 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 110 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 110 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 110 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 110 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 110 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 110 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 110 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 110 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 110 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 110 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 110 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 110 times.
✓ Branch 57 taken 330 times.
✓ Branch 58 taken 110 times.
✓ Branch 59 taken 990 times.
✓ Branch 60 taken 330 times.
✓ Branch 61 taken 990 times.
✓ Branch 62 taken 990 times.
2420 t_size(3,1):t_size(3,2))
754
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 110 times.
110 itmp1 = label(i)
755
4/8
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 110 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 110 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 110 times.
110 label(i) = label(j)
756
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 110 times.
112 label(j) = itmp1
757 end do
758
759
2/4
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
2 end subroutine shuffle_3Didata_1Dilist
760 !-------------------------------------------------------------------------------
761
2/4
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
2 subroutine shuffle_3Didata_1Drlist(data,label,dim,seed)
762 !! Shuffle a 3D array along one dimension
763 implicit none
764
765 ! Arguments
766 integer, dimension(:,:,:), intent(inout) :: data
767 !! 3D array to be shuffled
768 real(real32), dimension(:), intent(inout) :: label
769 !! 1D array to be shuffled
770 integer, intent(in) :: dim
771 !! Dimension along which to shuffle
772 integer, optional, intent(in) :: seed
773 !! Random seed
774
775 ! Local variables
776 integer :: istart,seed_size
777 !! Start index, seed size
778 integer :: i,j,n_data
779 !! Loop indices, number of data points
780 integer :: itmp1
781 !! Temporary integer
782 real(real32) :: r
783 !! Random number
784 integer, dimension(3) :: idx_s,idx_e,jdx_s,jdx_e
785 !! Start and end indices
786 integer, dimension(3,2) :: t_size
787 !! Temporary size
788 2 integer, allocatable, dimension(:) :: iseed
789 !! Random seed
790 2 integer, allocatable, dimension(:,:,:) :: tlist
791 !! Temporary list
792
793
794 ! Set or get random seed
795 !---------------------------------------------------------------------------
796 2 call random_seed(size=seed_size)
797
7/14
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
2 allocate(iseed(seed_size))
798
1/2
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
2 if(present(seed))then
799
2/2
✓ Branch 0 taken 16 times.
✓ Branch 1 taken 2 times.
18 iseed = seed
800 2 call random_seed(put=iseed)
801 else
802 call random_seed(get=iseed)
803 end if
804
805
806 ! Get the size of the data
807 !---------------------------------------------------------------------------
808
9/18
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
2 n_data = size(data,dim=dim)
809
2/2
✓ Branch 0 taken 6 times.
✓ Branch 1 taken 2 times.
8 do i=1,3
810
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
6 t_size(i,1) = 1
811
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
6 jdx_s(i) = 1
812
11/22
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 6 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 6 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 6 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 6 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 6 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 6 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 6 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 6 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 6 times.
6 jdx_e(i) = size(data,dim=i)
813
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
6 idx_s(i) = 1
814
11/22
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 6 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 6 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 6 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 6 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 6 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 6 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 6 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 6 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 6 times.
6 idx_e(i) = size(data,dim=i)
815
2/2
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 4 times.
8 if(i.eq.dim)then
816
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
2 t_size(i,2) = 1
817 else
818
11/22
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 4 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 4 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 4 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 4 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 4 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 4 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 4 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 4 times.
4 t_size(i,2) = size(data,dim=i)
819 end if
820 end do
821
11/22
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 2 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 2 times.
2 allocate(tlist(t_size(1,2),t_size(2,2),t_size(3,2)))
822
823
824 ! Shuffle the data
825 !---------------------------------------------------------------------------
826 2 istart=1
827
2/2
✓ Branch 0 taken 110 times.
✓ Branch 1 taken 2 times.
112 do i=1,n_data
828 110 call random_number(r)
829
1/2
✓ Branch 0 taken 110 times.
✗ Branch 1 not taken.
110 j = istart + floor((n_data+1-istart)*r)
830
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 110 times.
110 idx_s(dim) = i
831
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 110 times.
110 idx_e(dim) = i
832
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 110 times.
110 jdx_s(dim) = j
833
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 110 times.
110 jdx_e(dim) = j
834 tlist(&
835 t_size(1,1):t_size(1,2),&
836 t_size(2,1):t_size(2,2),&
837 t_size(3,1):t_size(3,2)) = data(&
838 idx_s(1):idx_e(1),&
839 idx_s(2):idx_e(2),&
840
33/60
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 110 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 110 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 110 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 110 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 110 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 110 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 110 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 110 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 110 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 110 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 110 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 110 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 110 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 110 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 110 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 110 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 110 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 110 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 110 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 110 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 110 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 110 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 110 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 110 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 110 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 110 times.
✓ Branch 57 taken 330 times.
✓ Branch 58 taken 110 times.
✓ Branch 59 taken 990 times.
✓ Branch 60 taken 330 times.
✓ Branch 61 taken 990 times.
✓ Branch 62 taken 990 times.
2420 idx_s(3):idx_e(3))
841 data(&
842 idx_s(1):idx_e(1),&
843 idx_s(2):idx_e(2),&
844 idx_s(3):idx_e(3)) = data(&
845 jdx_s(1):jdx_e(1),&
846 jdx_s(2):jdx_e(2),&
847
40/68
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 110 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 110 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 110 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 110 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 110 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 110 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 110 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 110 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 110 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 110 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 110 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 110 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 110 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 110 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 110 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 110 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 110 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 110 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 110 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 110 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 110 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 110 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 110 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 110 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 110 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 110 times.
✓ Branch 57 taken 110 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 330 times.
✓ Branch 60 taken 110 times.
✓ Branch 61 taken 990 times.
✓ Branch 62 taken 330 times.
✓ Branch 63 taken 990 times.
✓ Branch 64 taken 990 times.
✓ Branch 65 taken 330 times.
✓ Branch 66 taken 110 times.
✓ Branch 67 taken 990 times.
✓ Branch 68 taken 330 times.
✓ Branch 69 taken 990 times.
✓ Branch 70 taken 990 times.
4730 jdx_s(3):jdx_e(3))
848 data(&
849 jdx_s(1):jdx_e(1),&
850 jdx_s(2):jdx_e(2),&
851 jdx_s(3):jdx_e(3)) = tlist(&
852 t_size(1,1):t_size(1,2),&
853 t_size(2,1):t_size(2,2),&
854
33/60
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 110 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 110 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 110 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 110 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 110 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 110 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 110 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 110 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 110 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 110 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 110 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 110 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 110 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 110 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 110 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 110 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 110 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 110 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 110 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 110 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 110 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 110 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 110 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 110 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 110 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 110 times.
✓ Branch 57 taken 330 times.
✓ Branch 58 taken 110 times.
✓ Branch 59 taken 990 times.
✓ Branch 60 taken 330 times.
✓ Branch 61 taken 990 times.
✓ Branch 62 taken 990 times.
2420 t_size(3,1):t_size(3,2))
855
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 110 times.
110 itmp1 = label(i)
856
4/8
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 110 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 110 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 110 times.
110 label(i) = label(j)
857
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 110 times.
112 label(j) = itmp1
858 end do
859
860
2/4
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
2 end subroutine shuffle_3Didata_1Drlist
861 !-------------------------------------------------------------------------------
862
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 subroutine shuffle_4Drdata_1Dilist(data,label,dim,seed)
863 !! Shuffle a 4D array along one dimension
864 implicit none
865
866 ! Arguments
867 real(real32), dimension(:,:,:,:), intent(inout) :: data
868 !! 4D array to be shuffled
869 integer, dimension(:), intent(inout) :: label
870 !! 1D array to be shuffled
871 integer, intent(in) :: dim
872 !! Dimension along which to shuffle
873 integer, optional, intent(in) :: seed
874 !! Random seed
875
876 ! Local variables
877 integer :: istart, seed_size
878 !! Start index, seed size
879 integer :: i,j,n_data
880 !! Loop indices, number of data points
881 integer :: itmp1
882 !! Temporary integer
883 real(real32) :: r
884 !! Random number
885 integer, dimension(4) :: idx_s,idx_e,jdx_s,jdx_e
886 !! Start and end indices
887 integer, dimension(4,2) :: t_size
888 !! Temporary size
889 1 integer, allocatable, dimension(:) :: iseed
890 !! Random seed
891 1 real(real32), allocatable, dimension(:,:,:,:) :: tlist
892 !! Temporary list
893
894
895
896 ! Set or get random seed
897 !---------------------------------------------------------------------------
898 1 call random_seed(size=seed_size)
899
7/14
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
1 allocate(iseed(seed_size))
900
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 if(present(seed))then
901
2/2
✓ Branch 0 taken 8 times.
✓ Branch 1 taken 1 times.
9 iseed = seed
902 1 call random_seed(put=iseed)
903 else
904 call random_seed(get=iseed)
905 end if
906
907
908 ! Get the size of the data
909 !---------------------------------------------------------------------------
910
12/24
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 1 times.
1 n_data = size(data,dim=dim)
911
2/2
✓ Branch 0 taken 4 times.
✓ Branch 1 taken 1 times.
5 do i=1,4
912
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 times.
4 t_size(i,1) = 1
913
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 times.
4 jdx_s(i) = 1
914
14/28
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 4 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 4 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 4 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 4 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 4 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 4 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 4 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 4 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 4 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 4 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 4 times.
4 jdx_e(i) = size(data,dim=i)
915
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 times.
4 idx_s(i) = 1
916
14/28
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 4 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 4 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 4 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 4 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 4 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 4 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 4 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 4 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 4 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 4 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 4 times.
4 idx_e(i) = size(data,dim=i)
917
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 3 times.
5 if(i.eq.dim)then
918
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
1 t_size(i,2) = 1
919 else
920
14/28
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 3 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 3 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 3 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 3 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 3 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 3 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 3 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 3 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 3 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 3 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 3 times.
3 t_size(i,2) = size(data,dim=i)
921 end if
922 end do
923
13/26
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 1 times.
1 allocate(tlist(t_size(1,2),t_size(2,2),t_size(3,2),t_size(4,2)))
924
925
926 ! Shuffle the data
927 !---------------------------------------------------------------------------
928 1 istart=1
929
2/2
✓ Branch 0 taken 10 times.
✓ Branch 1 taken 1 times.
11 do i=1,n_data
930 10 call random_number(r)
931
1/2
✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
10 j = istart + floor((n_data+1-istart)*r)
932
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
10 idx_s(dim) = i
933
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
10 idx_e(dim) = i
934
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
10 jdx_s(dim) = j
935
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
10 jdx_e(dim) = j
936 tlist(&
937 t_size(1,1):t_size(1,2),&
938 t_size(2,1):t_size(2,2),&
939 t_size(3,1):t_size(3,2),&
940 t_size(4,1):t_size(4,2)) = data(&
941 idx_s(1):idx_e(1),&
942 idx_s(2):idx_e(2),&
943 idx_s(3):idx_e(3),&
944
44/80
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 10 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 10 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 10 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 10 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 10 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 10 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 10 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 10 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 10 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 10 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 10 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 10 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 10 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 10 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 10 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 10 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 10 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 10 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 10 times.
✗ Branch 47 not taken.
✓ Branch 48 taken 10 times.
✗ Branch 49 not taken.
✓ Branch 50 taken 10 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 10 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 10 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 10 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 10 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 10 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 10 times.
✗ Branch 65 not taken.
✓ Branch 66 taken 10 times.
✗ Branch 67 not taken.
✓ Branch 68 taken 10 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 10 times.
✗ Branch 71 not taken.
✓ Branch 72 taken 10 times.
✗ Branch 73 not taken.
✓ Branch 74 taken 10 times.
✓ Branch 76 taken 30 times.
✓ Branch 77 taken 10 times.
✓ Branch 78 taken 90 times.
✓ Branch 79 taken 30 times.
✓ Branch 80 taken 270 times.
✓ Branch 81 taken 90 times.
✓ Branch 82 taken 270 times.
✓ Branch 83 taken 270 times.
670 idx_s(4):idx_e(4))
945 data(&
946 idx_s(1):idx_e(1),&
947 idx_s(2):idx_e(2),&
948 idx_s(3):idx_e(3),&
949 idx_s(4):idx_e(4)) = data(&
950 jdx_s(1):jdx_e(1),&
951 jdx_s(2):jdx_e(2),&
952 jdx_s(3):jdx_e(3),&
953
53/90
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 10 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 10 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 10 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 10 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 10 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 10 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 10 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 10 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 10 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 10 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 10 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 10 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 10 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 10 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 10 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 10 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 10 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 10 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 10 times.
✗ Branch 47 not taken.
✓ Branch 48 taken 10 times.
✗ Branch 49 not taken.
✓ Branch 50 taken 10 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 10 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 10 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 10 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 10 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 10 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 10 times.
✗ Branch 65 not taken.
✓ Branch 66 taken 10 times.
✗ Branch 67 not taken.
✓ Branch 68 taken 10 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 10 times.
✗ Branch 71 not taken.
✓ Branch 72 taken 10 times.
✗ Branch 73 not taken.
✓ Branch 74 taken 10 times.
✓ Branch 76 taken 10 times.
✗ Branch 77 not taken.
✓ Branch 78 taken 30 times.
✓ Branch 79 taken 10 times.
✓ Branch 80 taken 90 times.
✓ Branch 81 taken 30 times.
✓ Branch 82 taken 270 times.
✓ Branch 83 taken 90 times.
✓ Branch 84 taken 270 times.
✓ Branch 85 taken 270 times.
✓ Branch 86 taken 30 times.
✓ Branch 87 taken 10 times.
✓ Branch 88 taken 90 times.
✓ Branch 89 taken 30 times.
✓ Branch 90 taken 270 times.
✓ Branch 91 taken 90 times.
✓ Branch 92 taken 270 times.
✓ Branch 93 taken 270 times.
1330 jdx_s(4):jdx_e(4))
954 data(&
955 jdx_s(1):jdx_e(1),&
956 jdx_s(2):jdx_e(2),&
957 jdx_s(3):jdx_e(3),&
958 jdx_s(4):jdx_e(4)) = tlist(&
959 t_size(1,1):t_size(1,2),&
960 t_size(2,1):t_size(2,2),&
961 t_size(3,1):t_size(3,2),&
962
44/80
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 10 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 10 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 10 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 10 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 10 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 10 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 10 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 10 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 10 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 10 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 10 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 10 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 10 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 10 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 10 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 10 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 10 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 10 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 10 times.
✗ Branch 47 not taken.
✓ Branch 48 taken 10 times.
✗ Branch 49 not taken.
✓ Branch 50 taken 10 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 10 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 10 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 10 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 10 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 10 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 10 times.
✗ Branch 65 not taken.
✓ Branch 66 taken 10 times.
✗ Branch 67 not taken.
✓ Branch 68 taken 10 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 10 times.
✗ Branch 71 not taken.
✓ Branch 72 taken 10 times.
✗ Branch 73 not taken.
✓ Branch 74 taken 10 times.
✓ Branch 76 taken 30 times.
✓ Branch 77 taken 10 times.
✓ Branch 78 taken 90 times.
✓ Branch 79 taken 30 times.
✓ Branch 80 taken 270 times.
✓ Branch 81 taken 90 times.
✓ Branch 82 taken 270 times.
✓ Branch 83 taken 270 times.
670 t_size(4,1):t_size(4,2))
963
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
10 itmp1 = label(i)
964
4/8
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 10 times.
10 label(i) = label(j)
965
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
11 label(j) = itmp1
966 end do
967
968
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 end subroutine shuffle_4Drdata_1Dilist
969 !-------------------------------------------------------------------------------
970
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 subroutine shuffle_5Drdata_1Dilist(data,label,dim,seed)
971 !! Shuffle a 5D array along one dimension
972 implicit none
973
974 ! Arguments
975 real(real32), dimension(:,:,:,:,:), intent(inout) :: data
976 !! 5D array to be shuffled
977 integer, dimension(:), intent(inout) :: label
978 !! 1D array to be shuffled
979 integer, intent(in) :: dim
980 !! Dimension along which to shuffle
981 integer, optional, intent(in) :: seed
982 !! Random seed
983
984 ! Local variables
985 integer :: istart,seed_size
986 !! Start index, seed size
987 integer :: i,j,n_data
988 !! Loop indices, number of data points
989 integer :: itmp1
990 !! Temporary integer
991 real(real32) :: r
992 !! Random number
993 integer, dimension(5) :: idx_s,idx_e,jdx_s,jdx_e
994 !! Start and end indices
995 integer, dimension(5,2) :: t_size
996 !! Temporary size
997 1 integer, allocatable, dimension(:) :: iseed
998 !! Random seed
999 1 real(real32), allocatable, dimension(:,:,:,:,:) :: tlist
1000 !! Temporary list
1001
1002
1003 ! Set or get random seed
1004 !---------------------------------------------------------------------------
1005 1 call random_seed(size=seed_size)
1006
7/14
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
1 allocate(iseed(seed_size))
1007
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 if(present(seed))then
1008
2/2
✓ Branch 0 taken 8 times.
✓ Branch 1 taken 1 times.
9 iseed = seed
1009 1 call random_seed(put=iseed)
1010 else
1011 call random_seed(get=iseed)
1012 end if
1013
1014
1015 ! Get the size of the data
1016 !---------------------------------------------------------------------------
1017
15/30
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 1 times.
1 n_data = size(data,dim=dim)
1018
2/2
✓ Branch 0 taken 5 times.
✓ Branch 1 taken 1 times.
6 do i=1,5
1019
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 5 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
5 t_size(i,1) = 1
1020
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 5 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
5 jdx_s(i) = 1
1021
17/34
✗ Branch 0 not taken.
✓ Branch 1 taken 5 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 5 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 5 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 5 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 5 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 5 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 5 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 5 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 5 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 5 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 5 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 5 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 5 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 5 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 5 times.
5 jdx_e(i) = size(data,dim=i)
1022
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 5 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
5 idx_s(i) = 1
1023
17/34
✗ Branch 0 not taken.
✓ Branch 1 taken 5 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 5 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 5 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 5 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 5 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 5 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 5 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 5 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 5 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 5 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 5 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 5 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 5 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 5 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 5 times.
5 idx_e(i) = size(data,dim=i)
1024
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 4 times.
6 if(i.eq.dim)then
1025
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
1 t_size(i,2) = 1
1026 else
1027
17/34
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 4 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 4 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 4 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 4 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 4 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 4 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 4 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 4 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 4 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 4 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 4 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 4 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 4 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 4 times.
4 t_size(i,2) = size(data,dim=i)
1028 end if
1029 end do
1030 allocate(tlist(&
1031 t_size(1,2),t_size(2,2),&
1032 t_size(3,2),t_size(4,2),&
1033
15/30
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 1 times.
1 t_size(5,2)))
1034
1035
1036 ! Shuffle the data
1037 !---------------------------------------------------------------------------
1038 1 istart=1
1039
2/2
✓ Branch 0 taken 10 times.
✓ Branch 1 taken 1 times.
11 do i=1,n_data
1040 10 call random_number(r)
1041
1/2
✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
10 j = istart + floor((n_data+1-istart)*r)
1042
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
10 idx_s(dim) = i
1043
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
10 idx_e(dim) = i
1044
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
10 jdx_s(dim) = j
1045
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
10 jdx_e(dim) = j
1046 tlist(&
1047 t_size(1,1):t_size(1,2),&
1048 t_size(2,1):t_size(2,2),&
1049 t_size(3,1):t_size(3,2),&
1050 t_size(4,1):t_size(4,2),&
1051 t_size(5,1):t_size(5,2)) = data(&
1052 idx_s(1):idx_e(1),&
1053 idx_s(2):idx_e(2),&
1054 idx_s(3):idx_e(3),&
1055 idx_s(4):idx_e(4),&
1056
55/100
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 10 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 10 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 10 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 10 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 10 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 10 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 10 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 10 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 10 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 10 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 10 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 10 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 10 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 10 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 10 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 10 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 10 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 10 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 10 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 10 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 10 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 10 times.
✗ Branch 53 not taken.
✓ Branch 54 taken 10 times.
✗ Branch 55 not taken.
✓ Branch 56 taken 10 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 10 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 10 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 10 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 10 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 10 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 10 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 10 times.
✗ Branch 73 not taken.
✓ Branch 74 taken 10 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 10 times.
✗ Branch 77 not taken.
✓ Branch 78 taken 10 times.
✗ Branch 79 not taken.
✓ Branch 80 taken 10 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 10 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 10 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 10 times.
✗ Branch 88 not taken.
✓ Branch 89 taken 10 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 10 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 10 times.
✓ Branch 95 taken 30 times.
✓ Branch 96 taken 10 times.
✓ Branch 97 taken 90 times.
✓ Branch 98 taken 30 times.
✓ Branch 99 taken 270 times.
✓ Branch 100 taken 90 times.
✓ Branch 101 taken 810 times.
✓ Branch 102 taken 270 times.
✓ Branch 103 taken 810 times.
✓ Branch 104 taken 810 times.
2020 idx_s(5):idx_e(5))
1057 data(&
1058 idx_s(1):idx_e(1),&
1059 idx_s(2):idx_e(2),&
1060 idx_s(3):idx_e(3),&
1061 idx_s(4):idx_e(4),&
1062 idx_s(5):idx_e(5)) = data(&
1063 jdx_s(1):jdx_e(1),&
1064 jdx_s(2):jdx_e(2),&
1065 jdx_s(3):jdx_e(3),&
1066 jdx_s(4):jdx_e(4),&
1067
66/112
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 10 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 10 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 10 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 10 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 10 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 10 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 10 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 10 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 10 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 10 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 10 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 10 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 10 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 10 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 10 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 10 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 10 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 10 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 10 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 10 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 10 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 10 times.
✗ Branch 53 not taken.
✓ Branch 54 taken 10 times.
✗ Branch 55 not taken.
✓ Branch 56 taken 10 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 10 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 10 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 10 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 10 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 10 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 10 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 10 times.
✗ Branch 73 not taken.
✓ Branch 74 taken 10 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 10 times.
✗ Branch 77 not taken.
✓ Branch 78 taken 10 times.
✗ Branch 79 not taken.
✓ Branch 80 taken 10 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 10 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 10 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 10 times.
✗ Branch 88 not taken.
✓ Branch 89 taken 10 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 10 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 10 times.
✓ Branch 95 taken 10 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 30 times.
✓ Branch 98 taken 10 times.
✓ Branch 99 taken 90 times.
✓ Branch 100 taken 30 times.
✓ Branch 101 taken 270 times.
✓ Branch 102 taken 90 times.
✓ Branch 103 taken 810 times.
✓ Branch 104 taken 270 times.
✓ Branch 105 taken 810 times.
✓ Branch 106 taken 810 times.
✓ Branch 107 taken 30 times.
✓ Branch 108 taken 10 times.
✓ Branch 109 taken 90 times.
✓ Branch 110 taken 30 times.
✓ Branch 111 taken 270 times.
✓ Branch 112 taken 90 times.
✓ Branch 113 taken 810 times.
✓ Branch 114 taken 270 times.
✓ Branch 115 taken 810 times.
✓ Branch 116 taken 810 times.
4030 jdx_s(5):jdx_e(5))
1068 data(&
1069 jdx_s(1):jdx_e(1),&
1070 jdx_s(2):jdx_e(2),&
1071 jdx_s(3):jdx_e(3),&
1072 jdx_s(4):jdx_e(4),&
1073 jdx_s(5):jdx_e(5)) = tlist(&
1074 t_size(1,1):t_size(1,2),&
1075 t_size(2,1):t_size(2,2),&
1076 t_size(3,1):t_size(3,2),&
1077 t_size(4,1):t_size(4,2),&
1078
55/100
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 10 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 10 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 10 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 10 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 10 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 10 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 10 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 10 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 10 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 10 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 10 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 10 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 10 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 10 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 10 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 10 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 10 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 10 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 10 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 10 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 10 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 10 times.
✗ Branch 53 not taken.
✓ Branch 54 taken 10 times.
✗ Branch 55 not taken.
✓ Branch 56 taken 10 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 10 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 10 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 10 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 10 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 10 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 10 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 10 times.
✗ Branch 73 not taken.
✓ Branch 74 taken 10 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 10 times.
✗ Branch 77 not taken.
✓ Branch 78 taken 10 times.
✗ Branch 79 not taken.
✓ Branch 80 taken 10 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 10 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 10 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 10 times.
✗ Branch 88 not taken.
✓ Branch 89 taken 10 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 10 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 10 times.
✓ Branch 95 taken 30 times.
✓ Branch 96 taken 10 times.
✓ Branch 97 taken 90 times.
✓ Branch 98 taken 30 times.
✓ Branch 99 taken 270 times.
✓ Branch 100 taken 90 times.
✓ Branch 101 taken 810 times.
✓ Branch 102 taken 270 times.
✓ Branch 103 taken 810 times.
✓ Branch 104 taken 810 times.
2020 t_size(5,1):t_size(5,2))
1079
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
10 itmp1 = label(i)
1080
4/8
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 10 times.
10 label(i) = label(j)
1081
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
11 label(j) = itmp1
1082 end do
1083
1084
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 end subroutine shuffle_5Drdata_1Dilist
1085 !-------------------------------------------------------------------------------
1086
2/4
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
4 subroutine shuffle_5Drdata_1Drlist(data,label,dim,seed,shuffle_list)
1087 !! Shuffle a 5D array along one dimension
1088 implicit none
1089
1090 ! Arguments
1091 real(real32), dimension(:,:,:,:,:), intent(inout) :: data
1092 !! 5D array to be shuffled
1093 real(real32), dimension(:), intent(inout) :: label
1094 !! 1D array to be shuffled
1095 integer, intent(in) :: dim
1096 !! Dimension along which to shuffle
1097 integer, optional, intent(in) :: seed
1098 !! Random seed
1099 integer, optional, dimension(size(data,dim)), intent(out) :: shuffle_list
1100 !! Index array
1101
1102 ! Local variables
1103 integer :: istart,seed_size
1104 !! Start index, seed size
1105 integer :: i,j,n_data
1106 !! Loop indices, number of data points
1107 real(real32) :: rtmp1
1108 !! Temporary real
1109 real(real32) :: r
1110 !! Random number
1111 integer, dimension(5) :: idx_s,idx_e,jdx_s,jdx_e
1112 !! Start and end indices
1113 integer, dimension(5,2) :: t_size
1114 !! Temporary size
1115 2 integer, allocatable, dimension(:) :: iseed
1116 !! Random seed
1117 2 real(real32), allocatable, dimension(:,:,:,:,:) :: tlist
1118 !! Temporary list
1119
1120
1121 ! Set or get random seed
1122 !---------------------------------------------------------------------------
1123 2 call random_seed(size=seed_size)
1124
7/14
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
2 allocate(iseed(seed_size))
1125
1/2
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
2 if(present(seed))then
1126
2/2
✓ Branch 0 taken 16 times.
✓ Branch 1 taken 2 times.
18 iseed = seed
1127 2 call random_seed(put=iseed)
1128 else
1129 call random_seed(get=iseed)
1130 end if
1131
1132
1133 ! Get the size of the data
1134 !---------------------------------------------------------------------------
1135
15/30
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 2 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 2 times.
2 n_data = size(data,dim=dim)
1136
2/2
✓ Branch 0 taken 10 times.
✓ Branch 1 taken 2 times.
12 do i=1,5
1137
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
10 t_size(i,1) = 1
1138
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
10 jdx_s(i) = 1
1139
17/34
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 10 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 10 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 10 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 10 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 10 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 10 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 10 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 10 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 10 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 10 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 10 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 10 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 10 times.
10 jdx_e(i) = size(data,dim=i)
1140
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
10 idx_s(i) = 1
1141
17/34
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 10 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 10 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 10 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 10 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 10 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 10 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 10 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 10 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 10 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 10 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 10 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 10 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 10 times.
10 idx_e(i) = size(data,dim=i)
1142
2/2
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
12 if(i.eq.dim)then
1143
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
2 t_size(i,2) = 1
1144 else
1145
17/34
✗ Branch 0 not taken.
✓ Branch 1 taken 8 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 8 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 8 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 8 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 8 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 8 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 8 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 8 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 8 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 8 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 8 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 8 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 8 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 8 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 8 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 8 times.
8 t_size(i,2) = size(data,dim=i)
1146 end if
1147 end do
1148
1149 allocate(tlist(&
1150 t_size(1,2),t_size(2,2),&
1151 t_size(3,2),t_size(4,2),&
1152
15/30
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 2 times.
2 t_size(5,2)))
1153
1154 2 istart=1
1155
2/2
✓ Branch 0 taken 110 times.
✓ Branch 1 taken 2 times.
112 do i=1,n_data
1156 110 call random_number(r)
1157
1/2
✓ Branch 0 taken 110 times.
✗ Branch 1 not taken.
110 j = istart + floor((n_data+1-istart)*r)
1158
1/6
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
110 if(present(shuffle_list)) shuffle_list(i) = j
1159
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 110 times.
110 idx_s(dim) = i
1160
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 110 times.
110 idx_e(dim) = i
1161
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 110 times.
110 jdx_s(dim) = j
1162
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 110 times.
110 jdx_e(dim) = j
1163 tlist(&
1164 t_size(1,1):t_size(1,2),&
1165 t_size(2,1):t_size(2,2),&
1166 t_size(3,1):t_size(3,2),&
1167 t_size(4,1):t_size(4,2),&
1168 t_size(5,1):t_size(5,2)) = data(&
1169 idx_s(1):idx_e(1),&
1170 idx_s(2):idx_e(2),&
1171 idx_s(3):idx_e(3),&
1172 idx_s(4):idx_e(4),&
1173
55/100
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 110 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 110 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 110 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 110 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 110 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 110 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 110 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 110 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 110 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 110 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 110 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 110 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 110 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 110 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 110 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 110 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 110 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 110 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 110 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 110 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 110 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 110 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 110 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 110 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 110 times.
✗ Branch 53 not taken.
✓ Branch 54 taken 110 times.
✗ Branch 55 not taken.
✓ Branch 56 taken 110 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 110 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 110 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 110 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 110 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 110 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 110 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 110 times.
✗ Branch 73 not taken.
✓ Branch 74 taken 110 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 110 times.
✗ Branch 77 not taken.
✓ Branch 78 taken 110 times.
✗ Branch 79 not taken.
✓ Branch 80 taken 110 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 110 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 110 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 110 times.
✗ Branch 88 not taken.
✓ Branch 89 taken 110 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 110 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 110 times.
✓ Branch 95 taken 330 times.
✓ Branch 96 taken 110 times.
✓ Branch 97 taken 990 times.
✓ Branch 98 taken 330 times.
✓ Branch 99 taken 2970 times.
✓ Branch 100 taken 990 times.
✓ Branch 101 taken 8910 times.
✓ Branch 102 taken 2970 times.
✓ Branch 103 taken 8910 times.
✓ Branch 104 taken 8910 times.
22220 idx_s(5):idx_e(5))
1174 data(&
1175 idx_s(1):idx_e(1),&
1176 idx_s(2):idx_e(2),&
1177 idx_s(3):idx_e(3),&
1178 idx_s(4):idx_e(4),&
1179 idx_s(5):idx_e(5)) = data(&
1180 jdx_s(1):jdx_e(1),&
1181 jdx_s(2):jdx_e(2),&
1182 jdx_s(3):jdx_e(3),&
1183 jdx_s(4):jdx_e(4),&
1184
66/112
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 110 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 110 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 110 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 110 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 110 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 110 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 110 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 110 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 110 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 110 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 110 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 110 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 110 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 110 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 110 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 110 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 110 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 110 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 110 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 110 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 110 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 110 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 110 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 110 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 110 times.
✗ Branch 53 not taken.
✓ Branch 54 taken 110 times.
✗ Branch 55 not taken.
✓ Branch 56 taken 110 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 110 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 110 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 110 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 110 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 110 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 110 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 110 times.
✗ Branch 73 not taken.
✓ Branch 74 taken 110 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 110 times.
✗ Branch 77 not taken.
✓ Branch 78 taken 110 times.
✗ Branch 79 not taken.
✓ Branch 80 taken 110 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 110 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 110 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 110 times.
✗ Branch 88 not taken.
✓ Branch 89 taken 110 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 110 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 110 times.
✓ Branch 95 taken 110 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 330 times.
✓ Branch 98 taken 110 times.
✓ Branch 99 taken 990 times.
✓ Branch 100 taken 330 times.
✓ Branch 101 taken 2970 times.
✓ Branch 102 taken 990 times.
✓ Branch 103 taken 8910 times.
✓ Branch 104 taken 2970 times.
✓ Branch 105 taken 8910 times.
✓ Branch 106 taken 8910 times.
✓ Branch 107 taken 330 times.
✓ Branch 108 taken 110 times.
✓ Branch 109 taken 990 times.
✓ Branch 110 taken 330 times.
✓ Branch 111 taken 2970 times.
✓ Branch 112 taken 990 times.
✓ Branch 113 taken 8910 times.
✓ Branch 114 taken 2970 times.
✓ Branch 115 taken 8910 times.
✓ Branch 116 taken 8910 times.
44330 jdx_s(5):jdx_e(5))
1185 data(&
1186 jdx_s(1):jdx_e(1),&
1187 jdx_s(2):jdx_e(2),&
1188 jdx_s(3):jdx_e(3),&
1189 jdx_s(4):jdx_e(4),&
1190 jdx_s(5):jdx_e(5)) = tlist(&
1191 t_size(1,1):t_size(1,2),&
1192 t_size(2,1):t_size(2,2),&
1193 t_size(3,1):t_size(3,2),&
1194 t_size(4,1):t_size(4,2),&
1195
55/100
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 110 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 110 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 110 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 110 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 110 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 110 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 110 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 110 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 110 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 110 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 110 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 110 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 110 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 110 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 110 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 110 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 110 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 110 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 110 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 110 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 110 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 110 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 110 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 110 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 110 times.
✗ Branch 53 not taken.
✓ Branch 54 taken 110 times.
✗ Branch 55 not taken.
✓ Branch 56 taken 110 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 110 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 110 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 110 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 110 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 110 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 110 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 110 times.
✗ Branch 73 not taken.
✓ Branch 74 taken 110 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 110 times.
✗ Branch 77 not taken.
✓ Branch 78 taken 110 times.
✗ Branch 79 not taken.
✓ Branch 80 taken 110 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 110 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 110 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 110 times.
✗ Branch 88 not taken.
✓ Branch 89 taken 110 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 110 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 110 times.
✓ Branch 95 taken 330 times.
✓ Branch 96 taken 110 times.
✓ Branch 97 taken 990 times.
✓ Branch 98 taken 330 times.
✓ Branch 99 taken 2970 times.
✓ Branch 100 taken 990 times.
✓ Branch 101 taken 8910 times.
✓ Branch 102 taken 2970 times.
✓ Branch 103 taken 8910 times.
✓ Branch 104 taken 8910 times.
22220 t_size(5,1):t_size(5,2))
1196
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 110 times.
110 rtmp1 = label(i)
1197
4/8
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 110 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 110 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 110 times.
110 label(i) = label(j)
1198
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 110 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 110 times.
112 label(j) = rtmp1
1199 end do
1200
1201
3/6
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
4 end subroutine shuffle_5Drdata_1Drlist
1202 !###############################################################################
1203
1204
1205 !##############################################################################!
1206 ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * !
1207 !##############################################################################!
1208
1209
1210 !###############################################################################
1211 2 subroutine split_5Drdata( &
1212
1/2
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
2 data, left, right, dim, &
1213 left_size, right_size, &
1214 shuffle, seed &
1215 )
1216 !! Split a 5D array along one dimension
1217 implicit none
1218
1219 ! Arguments
1220 real(real32), dimension(:,:,:,:,:), intent(in) :: data
1221 !! 5D array to be split
1222 real(real32), allocatable, dimension(:,:,:,:,:), intent(out) :: left, right
1223 !! 5D arrays to store the left and right splits
1224 integer, intent(in) :: dim
1225 !! Dimension along which to split
1226 real(real32), optional, intent(in) :: left_size, right_size
1227 !! Size of the left and right splits
1228 logical, optional, intent(in) :: shuffle
1229 !! Shuffle the data before splitting
1230 integer, optional, intent(in) :: seed
1231 !! Random seed
1232
1233 ! Local variables
1234 integer :: seed_, left_num_, right_num_
1235 !! Random seed, number of elements in left and right splits
1236 logical :: shuffle_
1237 !! Shuffle flag
1238 integer :: i, j
1239 !! Loop indices
1240 integer :: num_redos
1241 !! Number of redos
1242 real(real32) :: rtmp1
1243 !! Temporary real
1244 2 integer, allocatable, dimension(:) :: indices_l, indices_r
1245 !! Index arrays
1246 2 real(real32), allocatable, dimension(:) :: tlist
1247 !! Temporary list
1248 2 real(real32), allocatable, dimension(:,:,:,:,:) :: data_copy
1249 !! Copy of the input data
1250
1251 type :: idx_type
1252 !! Type for index array
1253 integer, allocatable, dimension(:) :: loc
1254 !! Index array
1255 end type idx_type
1256
5/6
✓ Branch 0 taken 10 times.
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 10 times.
✗ Branch 5 not taken.
24 type(idx_type), dimension(5) :: idx
1257 !! Index array
1258
1259
1260 ! Determine number of elements for left and right split
1261 !---------------------------------------------------------------------------
1262
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
2 if(.not.present(left_size).and..not.present(right_size))then
1263 call stop_program("neither left_size nor right_size provided to split. &
1264 &Expected at least one." &
1265 )
1266 return
1267
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
2 elseif(present(left_size).and..not.present(right_size))then
1268
15/30
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 1 times.
1 left_num_ = nint(left_size*size(data,dim))
1269
15/30
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 1 times.
1 right_num_ = size(data,dim) - left_num_
1270
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 elseif(.not.present(left_size).and.present(right_size))then
1271
15/30
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 1 times.
1 right_num_ = nint(right_size*size(data,dim))
1272
15/30
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 1 times.
1 left_num_ = size(data,dim) - right_num_
1273 else
1274 left_num_ = nint(left_size*size(data,dim))
1275 right_num_ = nint(right_size*size(data,dim))
1276 if(left_num_ + right_num_ .ne. size(data,dim)) &
1277 right_num_ = size(data,dim) - left_num_
1278 end if
1279
1280
1281 ! Initialies optional arguments
1282 !---------------------------------------------------------------------------
1283
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
2 if(present(shuffle))then
1284 shuffle_ = shuffle
1285 else
1286 2 shuffle_ = .false.
1287 end if
1288
1289
1/2
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
2 if(present(seed))then
1290 2 seed_ = seed
1291 else
1292 call system_clock(count=seed_)
1293 end if
1294
1295
1296 ! Copy input data
1297 !---------------------------------------------------------------------------
1298
28/56
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 2 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 2 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 2 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 2 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 2 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 2 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 2 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 2 times.
✗ Branch 47 not taken.
✓ Branch 48 taken 2 times.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✓ Branch 59 taken 2 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 6 times.
✓ Branch 62 taken 2 times.
✓ Branch 63 taken 18 times.
✓ Branch 64 taken 6 times.
✓ Branch 65 taken 54 times.
✓ Branch 66 taken 18 times.
✓ Branch 67 taken 162 times.
✓ Branch 68 taken 54 times.
✓ Branch 69 taken 16200 times.
✓ Branch 70 taken 162 times.
16442 data_copy = data
1299
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
2 if(shuffle_) call shuffle_5Drdata(data_copy,dim,seed_)
1300
1301
1302 ! Get list of indices for right split
1303 !---------------------------------------------------------------------------
1304 2 num_redos = 0
1305
7/14
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
2 allocate(tlist(right_num_))
1306 2 call random_number(tlist)
1307
25/50
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 2 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 2 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 2 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 2 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 2 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 2 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 2 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 2 times.
✗ Branch 47 not taken.
✓ Branch 48 taken 2 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 2 times.
✗ Branch 53 not taken.
✓ Branch 54 taken 2 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 2 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 2 times.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✓ Branch 63 taken 2 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 150 times.
✓ Branch 66 taken 2 times.
✓ Branch 67 taken 150 times.
✗ Branch 68 not taken.
152 indices_r = floor(tlist*size(data,dim)) + 1
1308 2 i = 1
1309 286 indices_r_loop: do
1310
2/2
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 286 times.
288 if(i.ge.right_num_) exit indices_r_loop
1311 286 i = i + 1
1312
12/18
✗ Branch 0 not taken.
✓ Branch 1 taken 286 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 286 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 286 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 286 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 286 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 286 times.
✓ Branch 18 taken 9759 times.
✓ Branch 19 taken 148 times.
✓ Branch 20 taken 138 times.
✓ Branch 21 taken 9621 times.
✓ Branch 22 taken 138 times.
✓ Branch 23 taken 148 times.
9907 if(any(indices_r(:i-1).eq.indices_r(i)))then
1313 indices_r(i:right_num_-num_redos-1) = &
1314
11/20
✗ Branch 0 not taken.
✓ Branch 1 taken 138 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 138 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 138 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 138 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 138 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 138 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 138 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 138 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 138 times.
✓ Branch 23 taken 2147 times.
✓ Branch 24 taken 138 times.
2285 indices_r(i+1:right_num_-num_redos)
1315 138 call random_number(rtmp1)
1316
18/36
✗ Branch 0 not taken.
✓ Branch 1 taken 138 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 138 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 138 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 138 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 138 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 138 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 138 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 138 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 138 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 138 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 138 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 138 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 138 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 138 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 138 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 138 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 138 times.
✓ Branch 51 taken 138 times.
✗ Branch 52 not taken.
138 indices_r(right_num_) = floor(rtmp1*size(data,dim)) + 1
1317 138 i = i - 1
1318 end if
1319 end do indices_r_loop
1320
1321
1322 ! Generate right split
1323 !---------------------------------------------------------------------------
1324
2/2
✓ Branch 0 taken 10 times.
✓ Branch 1 taken 2 times.
12 do i=1,5
1325
2/2
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
12 if(i.eq.dim)then
1326
12/24
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 2 times.
✗ Branch 25 not taken.
✓ Branch 26 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 150 times.
✓ Branch 29 taken 2 times.
152 idx(i)%loc = indices_r
1327 else
1328
27/50
✗ Branch 0 not taken.
✓ Branch 1 taken 8 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 8 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 8 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 8 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 8 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 8 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 8 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 8 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 8 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 8 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 8 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 8 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 8 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 8 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 8 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 8 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 8 times.
✓ Branch 54 taken 24 times.
✓ Branch 55 taken 8 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 8 times.
✓ Branch 58 taken 24 times.
✓ Branch 59 taken 8 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 8 times.
✗ Branch 62 not taken.
✗ Branch 63 not taken.
✓ Branch 64 taken 8 times.
✗ Branch 65 not taken.
✓ Branch 66 taken 24 times.
✓ Branch 67 taken 8 times.
80 idx(i)%loc = (/ ( j, j=1,size(data,i) ) /)
1329 end if
1330 end do
1331
58/106
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 150 times.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✓ Branch 32 taken 6 times.
✓ Branch 33 taken 2 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 2 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 2 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 2 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 2 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 2 times.
✓ Branch 48 taken 6 times.
✓ Branch 49 taken 2 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 2 times.
✗ Branch 53 not taken.
✓ Branch 54 taken 2 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 2 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 2 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 2 times.
✓ Branch 64 taken 6 times.
✓ Branch 65 taken 2 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 2 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 2 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 2 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 2 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 2 times.
✓ Branch 80 taken 6 times.
✓ Branch 81 taken 2 times.
✗ Branch 82 not taken.
✓ Branch 83 taken 2 times.
✗ Branch 84 not taken.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✗ Branch 93 not taken.
✓ Branch 94 taken 2 times.
✗ Branch 95 not taken.
✓ Branch 96 taken 6 times.
✓ Branch 97 taken 2 times.
✗ Branch 98 not taken.
✓ Branch 99 taken 6 times.
✗ Branch 101 not taken.
✓ Branch 102 taken 6 times.
✓ Branch 104 taken 18 times.
✓ Branch 105 taken 6 times.
✗ Branch 106 not taken.
✓ Branch 107 taken 18 times.
✗ Branch 109 not taken.
✓ Branch 110 taken 18 times.
✓ Branch 112 taken 54 times.
✓ Branch 113 taken 18 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 54 times.
✗ Branch 117 not taken.
✓ Branch 118 taken 54 times.
✓ Branch 120 taken 162 times.
✓ Branch 121 taken 54 times.
✗ Branch 122 not taken.
✓ Branch 123 taken 162 times.
✗ Branch 125 not taken.
✓ Branch 126 taken 162 times.
✓ Branch 128 taken 12150 times.
✓ Branch 129 taken 162 times.
✗ Branch 130 not taken.
✓ Branch 131 taken 12150 times.
✗ Branch 133 not taken.
✓ Branch 134 taken 12150 times.
12566 right = data_copy(idx(1)%loc,idx(2)%loc,idx(3)%loc,idx(4)%loc,idx(5)%loc)
1332
1333
1334 ! Get list of indices for left split
1335 !---------------------------------------------------------------------------
1336
17/32
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 2 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 2 times.
✓ Branch 45 taken 200 times.
✓ Branch 46 taken 2 times.
202 indices_l_loop: do i=1,size(data,dim)
1337
10/14
✗ Branch 0 not taken.
✓ Branch 1 taken 200 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 200 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 200 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 200 times.
✓ Branch 12 taken 9450 times.
✓ Branch 13 taken 50 times.
✓ Branch 14 taken 150 times.
✓ Branch 15 taken 9300 times.
✓ Branch 16 taken 150 times.
✓ Branch 17 taken 50 times.
9500 if(any(indices_r.eq.i)) cycle indices_l_loop
1338
2/2
✓ Branch 0 taken 48 times.
✓ Branch 1 taken 2 times.
52 if(allocated(indices_l))then
1339
16/26
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 48 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 48 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 48 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 48 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 48 times.
✓ Branch 17 taken 600 times.
✓ Branch 18 taken 48 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 48 times.
✓ Branch 21 taken 648 times.
✓ Branch 22 taken 48 times.
✓ Branch 23 taken 48 times.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 48 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 48 times.
✓ Branch 29 taken 648 times.
✓ Branch 30 taken 48 times.
1944 indices_l = [indices_l(:), i]
1340 else
1341
4/8
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 2 times.
4 indices_l = [i]
1342 end if
1343 end do indices_l_loop
1344
1345
1346 ! Generate left split
1347 !---------------------------------------------------------------------------
1348
13/24
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 2 times.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✓ Branch 27 taken 2 times.
✓ Branch 28 taken 50 times.
✓ Branch 29 taken 2 times.
52 idx(dim)%loc = indices_l
1349
58/106
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 50 times.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✓ Branch 32 taken 6 times.
✓ Branch 33 taken 2 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 2 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 2 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 2 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 2 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 2 times.
✓ Branch 48 taken 6 times.
✓ Branch 49 taken 2 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 2 times.
✗ Branch 53 not taken.
✓ Branch 54 taken 2 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 2 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 2 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 2 times.
✓ Branch 64 taken 6 times.
✓ Branch 65 taken 2 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 2 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 2 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 2 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 2 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 2 times.
✓ Branch 80 taken 6 times.
✓ Branch 81 taken 2 times.
✗ Branch 82 not taken.
✓ Branch 83 taken 2 times.
✗ Branch 84 not taken.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✗ Branch 93 not taken.
✓ Branch 94 taken 2 times.
✗ Branch 95 not taken.
✓ Branch 96 taken 6 times.
✓ Branch 97 taken 2 times.
✗ Branch 98 not taken.
✓ Branch 99 taken 6 times.
✗ Branch 101 not taken.
✓ Branch 102 taken 6 times.
✓ Branch 104 taken 18 times.
✓ Branch 105 taken 6 times.
✗ Branch 106 not taken.
✓ Branch 107 taken 18 times.
✗ Branch 109 not taken.
✓ Branch 110 taken 18 times.
✓ Branch 112 taken 54 times.
✓ Branch 113 taken 18 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 54 times.
✗ Branch 117 not taken.
✓ Branch 118 taken 54 times.
✓ Branch 120 taken 162 times.
✓ Branch 121 taken 54 times.
✗ Branch 122 not taken.
✓ Branch 123 taken 162 times.
✗ Branch 125 not taken.
✓ Branch 126 taken 162 times.
✓ Branch 128 taken 4050 times.
✓ Branch 129 taken 162 times.
✗ Branch 130 not taken.
✓ Branch 131 taken 4050 times.
✗ Branch 133 not taken.
✓ Branch 134 taken 4050 times.
4366 left = data_copy(idx(1)%loc,idx(2)%loc,idx(3)%loc,idx(4)%loc,idx(5)%loc)
1350
1351
4/8
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
4 end subroutine split_5Drdata
1352 !-------------------------------------------------------------------------------
1353 1 subroutine split_2Drdata_1Drlist( &
1354
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 data, label, left_data, right_data, &
1355 left_label, right_label, dim, &
1356 left_size, right_size, &
1357 1 shuffle, seed, split_list &
1358 )
1359 !! Split a 2D array along one dimension
1360 implicit none
1361
1362 ! Arguments
1363 real(real32), dimension(:,:), intent(in) :: data
1364 !! 2D array to be split
1365 real(real32), dimension(:), intent(in) :: label
1366 !! 1D array to be split
1367 real(real32), allocatable, dimension(:,:), intent(out) :: &
1368 left_data, right_data
1369 !! 2D arrays to store the left and right splits
1370 real(real32), allocatable, dimension(:), intent(out) :: &
1371 left_label, right_label
1372 !! 1D arrays to store the left and right splits
1373 integer, intent(in) :: dim
1374 !! Dimension along which to split
1375 real(real32), optional, intent(in) :: left_size, right_size
1376 !! Size of the left and right splits
1377 logical, optional, intent(in) :: shuffle
1378 !! Shuffle the data before splitting
1379 integer, optional, intent(in) :: seed
1380 !! Random seed
1381
6/12
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
1 integer, optional, dimension(size(data,dim)), intent(out) :: split_list
1382 !! Index array
1383
1384 ! Local variables
1385 integer :: seed_, left_num_, right_num_
1386 !! Random seed, number of elements in left and right splits
1387 logical :: shuffle_
1388 !! Shuffle flag
1389 integer :: i, j
1390 !! Loop indices
1391 integer :: num_redos
1392 !! Number of redos
1393 real(real32) :: rtmp1
1394 !! Temporary real
1395 1 integer, allocatable, dimension(:) :: indices_l, indices_r
1396 !! Index arrays
1397 1 real(real32), allocatable, dimension(:) :: tlist
1398 !! Temporary list
1399 1 real(real32), allocatable, dimension(:) :: label_copy
1400 !! Copy of the input label
1401 1 real(real32), allocatable, dimension(:,:) :: data_copy
1402 !! Copy of the input data
1403
1404 type :: idx_type
1405 !! Type for index array
1406 integer, allocatable, dimension(:) :: loc
1407 !! Index array
1408 end type idx_type
1409
6/6
✓ Branch 0 taken 5 times.
✓ Branch 1 taken 1 times.
✓ Branch 2 taken 5 times.
✓ Branch 3 taken 1 times.
✓ Branch 4 taken 2 times.
✓ Branch 5 taken 3 times.
12 type(idx_type), dimension(5) :: idx
1410 !! Index array
1411
1412
1413 ! Determine number of elements for left and right split
1414 !---------------------------------------------------------------------------
1415
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 if(.not.present(left_size).and..not.present(right_size))then
1416 call stop_program("neither left_size nor right_size provided to split. &
1417 &Expected at least one." &
1418 )
1419 return
1420
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 elseif(present(left_size).and..not.present(right_size))then
1421
6/12
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
1 left_num_ = nint(left_size*size(data,dim))
1422
6/12
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
1 right_num_ = size(data,dim) - left_num_
1423 elseif(.not.present(left_size).and.present(right_size))then
1424 right_num_ = nint(right_size*size(data,dim))
1425 left_num_ = size(data,dim) - right_num_
1426 else
1427 left_num_ = nint(left_size*size(data,dim))
1428 right_num_ = nint(right_size*size(data,dim))
1429 if(left_num_ + right_num_ .ne. size(data,dim)) &
1430 right_num_ = size(data,dim) - left_num_
1431 end if
1432
1433 ! Initialies optional arguments
1434 !---------------------------------------------------------------------------
1435
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 if(present(shuffle))then
1436 1 shuffle_ = shuffle
1437 else
1438 shuffle_ = .false.
1439 end if
1440
1441
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 if(present(seed))then
1442 1 seed_ = seed
1443 else
1444 call system_clock(count=seed_)
1445 end if
1446
1447
1448 ! Copy input data
1449 !---------------------------------------------------------------------------
1450
13/26
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 3 times.
✓ Branch 29 taken 1 times.
✓ Branch 30 taken 300 times.
✓ Branch 31 taken 3 times.
304 data_copy = data
1451
8/16
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 3 times.
✓ Branch 18 taken 1 times.
4 label_copy = label
1452
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 if(shuffle_) call shuffle_2Drdata_1Drlist(data_copy,label_copy,dim,seed_)
1453
1454
1455 ! Get list of indices for right split
1456 !---------------------------------------------------------------------------
1457 1 num_redos = 0
1458
7/14
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
1 allocate(tlist(right_num_))
1459 1 call random_number(tlist)
1460
16/32
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 1 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✓ Branch 36 taken 1 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 2 times.
✓ Branch 39 taken 1 times.
✓ Branch 40 taken 2 times.
✗ Branch 41 not taken.
3 indices_r = floor(tlist*size(data,dim)) + 1
1461 1 i = 1
1462 1 indices_r_loop: do
1463
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
2 if(i.ge.right_num_) exit indices_r_loop
1464 1 i = i + 1
1465
10/18
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
✓ Branch 18 taken 1 times.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 1 times.
2 if(any(indices_r(:i-1).eq.indices_r(i)))then
1466 indices_r(i:right_num_-num_redos-1) = &
1467 indices_r(i+1:right_num_-num_redos)
1468 call random_number(rtmp1)
1469 indices_r(right_num_) = floor(rtmp1*size(data,dim)) + 1
1470 i = i - 1
1471 end if
1472 end do indices_r_loop
1473
1474
1475 ! Generate right split
1476 !---------------------------------------------------------------------------
1477
2/2
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 1 times.
3 do i=1,2
1478
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
3 if(i.eq.dim)then
1479
12/24
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 26 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✓ Branch 29 taken 1 times.
3 idx(i)%loc = indices_r
1480 else
1481
18/32
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
✓ Branch 27 taken 100 times.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 1 times.
✓ Branch 31 taken 100 times.
✓ Branch 32 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 100 times.
✓ Branch 40 taken 1 times.
301 idx(i)%loc = (/ ( j, j=1,size(data,i) ) /)
1482 end if
1483 end do
1484
25/46
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
✓ Branch 16 taken 100 times.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1 times.
✓ Branch 32 taken 2 times.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 1 times.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 2 times.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 2 times.
✗ Branch 47 not taken.
✓ Branch 48 taken 2 times.
✓ Branch 50 taken 200 times.
✓ Branch 51 taken 2 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 200 times.
✗ Branch 55 not taken.
✓ Branch 56 taken 200 times.
305 right_data = data_copy(idx(1)%loc,idx(2)%loc)
1485
7/14
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 2 times.
3 right_label = label_copy(indices_r)
1486
1487
1488 ! Get list of indices for left split
1489 !---------------------------------------------------------------------------
1490
7/12
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✓ Branch 13 taken 3 times.
✓ Branch 14 taken 1 times.
4 if(present(split_list)) split_list = 2
1491
8/14
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
✓ Branch 18 taken 3 times.
✓ Branch 19 taken 1 times.
4 indices_l_loop: do i=1,size(data,dim)
1492
10/14
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 3 times.
✓ Branch 12 taken 5 times.
✓ Branch 13 taken 1 times.
✓ Branch 14 taken 2 times.
✓ Branch 15 taken 3 times.
✓ Branch 16 taken 2 times.
✓ Branch 17 taken 1 times.
6 if(any(indices_r.eq.i)) cycle indices_l_loop
1493
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 if(allocated(indices_l))then
1494 indices_l = [indices_l(:), i]
1495 else
1496
4/8
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✓ Branch 7 taken 1 times.
2 indices_l = [i]
1497 end if
1498
3/6
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
2 if(present(split_list)) split_list(i) = 1
1499 end do indices_l_loop
1500
1501
1502 ! Generate left split
1503 !---------------------------------------------------------------------------
1504
13/24
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 1 times.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✓ Branch 27 taken 1 times.
✓ Branch 28 taken 1 times.
✓ Branch 29 taken 1 times.
2 idx(dim)%loc = indices_l
1505
25/46
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
✓ Branch 16 taken 100 times.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1 times.
✓ Branch 32 taken 1 times.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 1 times.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 1 times.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 48 taken 1 times.
✓ Branch 50 taken 100 times.
✓ Branch 51 taken 1 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 100 times.
✗ Branch 55 not taken.
✓ Branch 56 taken 100 times.
203 left_data = data_copy(idx(1)%loc,idx(2)%loc)
1506
7/14
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 1 times.
2 left_label = label_copy(indices_l)
1507
1508
6/12
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
3 end subroutine split_2Drdata_1Drlist
1509 !-------------------------------------------------------------------------------
1510 2 subroutine split_3Didata_1Dilist( &
1511
2/4
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
2 data, label, left_data, right_data, &
1512 left_label, right_label, dim, &
1513 left_size, right_size, &
1514 1 shuffle, seed, split_list &
1515 )
1516 implicit none
1517
1518 ! Arguments
1519 integer, dimension(:,:,:), intent(in) :: data
1520 !! 3D array to be split
1521 integer, dimension(:), intent(in) :: label
1522 !! 1D array to be split
1523 integer, allocatable, dimension(:,:,:), intent(out) :: left_data, right_data
1524 !! 3D arrays to store the left and right splits
1525 integer, allocatable, dimension(:), intent(out) :: left_label, right_label
1526 !! 1D arrays to store the left and right splits
1527 integer, intent(in) :: dim
1528 !! Dimension along which to split
1529 real(real32), optional, intent(in) :: left_size, right_size
1530 !! Size of the left and right splits
1531 logical, optional, intent(in) :: shuffle
1532 !! Shuffle the data before splitting
1533 integer, optional, intent(in) :: seed
1534 !! Random seed
1535
9/18
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
1 integer, optional, dimension(size(data,dim)), intent(out) :: split_list
1536 !! Index array
1537
1538 ! Local variables
1539 integer :: seed_, left_num_, right_num_
1540 !! Random seed, number of elements in left and right splits
1541 logical :: shuffle_
1542 !! Shuffle flag
1543 integer :: i, j
1544 !! Loop indices
1545 integer :: num_redos
1546 !! Number of redos
1547 real(real32) :: rtmp1
1548 !! Temporary real
1549 2 integer, allocatable, dimension(:) :: indices_l, indices_r
1550 !! Index arrays
1551 2 real(real32), allocatable, dimension(:) :: tlist
1552 !! Temporary list
1553 2 integer, allocatable, dimension(:) :: label_copy
1554 !! Copy of the input label
1555 2 integer, allocatable, dimension(:,:,:) :: data_copy
1556 !! Copy of the input data
1557
1558 type :: idx_type
1559 !! Type for index array
1560 integer, allocatable, dimension(:) :: loc
1561 !! Index array
1562 end type idx_type
1563
5/6
✓ Branch 0 taken 6 times.
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 6 times.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 6 times.
✗ Branch 5 not taken.
16 type(idx_type), dimension(3) :: idx
1564 !! Index array
1565
1566
1567 ! Determine number of elements for left and right split
1568 !---------------------------------------------------------------------------
1569
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
2 if(.not.present(left_size).and..not.present(right_size))then
1570 call stop_program("neither left_size nor right_size provided to split. &
1571 &Expected at least one." &
1572 )
1573 return
1574
1/2
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
2 elseif(present(left_size).and..not.present(right_size))then
1575
9/18
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
2 left_num_ = nint(left_size*size(data,dim))
1576
9/18
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
2 right_num_ = size(data,dim) - left_num_
1577 elseif(.not.present(left_size).and.present(right_size))then
1578 right_num_ = nint(right_size*size(data,dim))
1579 left_num_ = size(data,dim) - right_num_
1580 else
1581 left_num_ = nint(left_size*size(data,dim))
1582 right_num_ = nint(right_size*size(data,dim))
1583 if(left_num_ + right_num_ .ne. size(data,dim)) &
1584 right_num_ = size(data,dim) - left_num_
1585 end if
1586
1587 ! Initialies optional arguments
1588 !---------------------------------------------------------------------------
1589
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
2 if(present(shuffle))then
1590 1 shuffle_ = shuffle
1591 else
1592 1 shuffle_ = .false.
1593 end if
1594
1595
1/2
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
2 if(present(seed))then
1596 2 seed_ = seed
1597 else
1598 call system_clock(count=seed_)
1599 end if
1600
1601
1602 ! Copy input data
1603 !---------------------------------------------------------------------------
1604
18/36
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 2 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 2 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 2 times.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 6 times.
✓ Branch 40 taken 2 times.
✓ Branch 41 taken 18 times.
✓ Branch 42 taken 6 times.
✓ Branch 43 taken 1800 times.
✓ Branch 44 taken 18 times.
1826 data_copy = data
1605
8/16
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 200 times.
✓ Branch 18 taken 2 times.
202 label_copy = label
1606
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
2 if(shuffle_) call shuffle_3Didata_1Dilist(data_copy,label_copy,dim,seed_)
1607
1608
1609 ! Get list of indices for right split
1610 !---------------------------------------------------------------------------
1611 2 num_redos = 0
1612
7/14
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
2 allocate(tlist(right_num_))
1613 2 call random_number(tlist)
1614
19/38
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 2 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 2 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 2 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 2 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 2 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 2 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 2 times.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✓ Branch 45 taken 2 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 150 times.
✓ Branch 48 taken 2 times.
✓ Branch 49 taken 150 times.
✗ Branch 50 not taken.
152 indices_r = floor(tlist*size(data,dim)) + 1
1615 2 i = 1
1616 282 indices_r_loop: do
1617
2/2
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 282 times.
284 if(i.ge.right_num_) exit indices_r_loop
1618 282 i = i + 1
1619
12/18
✗ Branch 0 not taken.
✓ Branch 1 taken 282 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 282 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 282 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 282 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 282 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 282 times.
✓ Branch 18 taken 9454 times.
✓ Branch 19 taken 148 times.
✓ Branch 20 taken 134 times.
✓ Branch 21 taken 9320 times.
✓ Branch 22 taken 134 times.
✓ Branch 23 taken 148 times.
9602 if(any(indices_r(:i-1).eq.indices_r(i)))then
1620 indices_r(i:right_num_-num_redos-1) = &
1621
11/20
✗ Branch 0 not taken.
✓ Branch 1 taken 134 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 134 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 134 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 134 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 134 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 134 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 134 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 134 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 134 times.
✓ Branch 23 taken 2362 times.
✓ Branch 24 taken 134 times.
2496 indices_r(i+1:right_num_-num_redos)
1622 134 call random_number(rtmp1)
1623
12/24
✗ Branch 0 not taken.
✓ Branch 1 taken 134 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 134 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 134 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 134 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 134 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 134 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 134 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 134 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 134 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 134 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 134 times.
✓ Branch 33 taken 134 times.
✗ Branch 34 not taken.
134 indices_r(right_num_) = floor(rtmp1*size(data,dim)) + 1
1624 134 i = i - 1
1625 end if
1626 end do indices_r_loop
1627
1628
1629 ! Generate right split
1630 !---------------------------------------------------------------------------
1631
2/2
✓ Branch 0 taken 6 times.
✓ Branch 1 taken 2 times.
8 do i=1,3
1632
2/2
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 4 times.
8 if(i.eq.dim)then
1633
12/24
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 2 times.
✗ Branch 25 not taken.
✓ Branch 26 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 150 times.
✓ Branch 29 taken 2 times.
152 idx(i)%loc = indices_r
1634 else
1635
21/38
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 4 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 4 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 4 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 4 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 4 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 4 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 4 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 4 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 4 times.
✓ Branch 36 taken 12 times.
✓ Branch 37 taken 4 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 4 times.
✓ Branch 40 taken 12 times.
✓ Branch 41 taken 4 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 4 times.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✓ Branch 46 taken 4 times.
✗ Branch 47 not taken.
✓ Branch 48 taken 12 times.
✓ Branch 49 taken 4 times.
40 idx(i)%loc = (/ ( j, j=1,size(data,i) ) /)
1636 end if
1637 end do
1638 right_data = data_copy(&
1639
36/66
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 150 times.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✓ Branch 32 taken 6 times.
✓ Branch 33 taken 2 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 2 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 2 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 2 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 2 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 2 times.
✓ Branch 48 taken 6 times.
✓ Branch 49 taken 2 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 2 times.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✓ Branch 58 taken 2 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 6 times.
✓ Branch 61 taken 2 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 6 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 6 times.
✓ Branch 66 taken 18 times.
✓ Branch 67 taken 6 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 18 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 18 times.
✓ Branch 72 taken 1350 times.
✓ Branch 73 taken 18 times.
✗ Branch 74 not taken.
✓ Branch 75 taken 1350 times.
✗ Branch 76 not taken.
✓ Branch 77 taken 1350 times.
1538 idx(1)%loc,idx(2)%loc,idx(3)%loc)
1640
7/14
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 150 times.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 150 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 150 times.
152 right_label = label_copy(indices_r)
1641
1642
1643 ! Get list of indices for left split
1644 !---------------------------------------------------------------------------
1645
8/12
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✓ Branch 13 taken 100 times.
✓ Branch 14 taken 1 times.
102 if(present(split_list)) split_list = 2
1646
11/20
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✓ Branch 27 taken 200 times.
✓ Branch 28 taken 2 times.
202 indices_l_loop: do i=1,size(data,dim)
1647
10/14
✗ Branch 0 not taken.
✓ Branch 1 taken 200 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 200 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 200 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 200 times.
✓ Branch 12 taken 9450 times.
✓ Branch 13 taken 50 times.
✓ Branch 14 taken 150 times.
✓ Branch 15 taken 9300 times.
✓ Branch 16 taken 150 times.
✓ Branch 17 taken 50 times.
9500 if(any(indices_r.eq.i)) cycle indices_l_loop
1648
2/2
✓ Branch 0 taken 48 times.
✓ Branch 1 taken 2 times.
50 if(allocated(indices_l))then
1649
16/26
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 48 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 48 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 48 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 48 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 48 times.
✓ Branch 17 taken 600 times.
✓ Branch 18 taken 48 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 48 times.
✓ Branch 21 taken 648 times.
✓ Branch 22 taken 48 times.
✓ Branch 23 taken 48 times.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 48 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 48 times.
✓ Branch 29 taken 648 times.
✓ Branch 30 taken 48 times.
1944 indices_l = [indices_l(:), i]
1650 else
1651
4/8
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 2 times.
4 indices_l = [i]
1652 end if
1653
4/6
✓ Branch 0 taken 25 times.
✓ Branch 1 taken 25 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 25 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 25 times.
52 if(present(split_list)) split_list(i) = 1
1654 end do indices_l_loop
1655
1656
1657 ! Generate left split
1658 !---------------------------------------------------------------------------
1659
13/24
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 2 times.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✓ Branch 27 taken 2 times.
✓ Branch 28 taken 50 times.
✓ Branch 29 taken 2 times.
52 idx(dim)%loc = indices_l
1660 left_data = data_copy(&
1661
36/66
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 50 times.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✓ Branch 32 taken 6 times.
✓ Branch 33 taken 2 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 2 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 2 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 2 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 2 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 2 times.
✓ Branch 48 taken 6 times.
✓ Branch 49 taken 2 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 2 times.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✓ Branch 58 taken 2 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 6 times.
✓ Branch 61 taken 2 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 6 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 6 times.
✓ Branch 66 taken 18 times.
✓ Branch 67 taken 6 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 18 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 18 times.
✓ Branch 72 taken 450 times.
✓ Branch 73 taken 18 times.
✗ Branch 74 not taken.
✓ Branch 75 taken 450 times.
✗ Branch 76 not taken.
✓ Branch 77 taken 450 times.
538 idx(1)%loc,idx(2)%loc,idx(3)%loc)
1662
7/14
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 50 times.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 50 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 50 times.
52 left_label = label_copy(indices_l)
1663
1664
7/12
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
6 end subroutine split_3Didata_1Dilist
1665 !-------------------------------------------------------------------------------
1666 2 subroutine split_3Didata_1Drlist( &
1667
2/4
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
2 data, label, left_data, right_data, &
1668 left_label, right_label, dim, &
1669 left_size, right_size, &
1670 1 shuffle, seed, split_list &
1671 )
1672 !! Split a 3D array along one dimension
1673 implicit none
1674
1675 ! Arguments
1676 integer, dimension(:,:,:), intent(in) :: data
1677 !! 3D array to be split
1678 real(real32), dimension(:), intent(in) :: label
1679 !! 1D array to be split
1680 integer, allocatable, dimension(:,:,:), intent(out) :: left_data, right_data
1681 !! 3D arrays to store the left and right splits
1682 real(real32), allocatable, dimension(:), intent(out) :: &
1683 left_label, right_label
1684 !! 1D arrays to store the left and right splits
1685 integer, intent(in) :: dim
1686 !! Dimension along which to split
1687 real(real32), optional, intent(in) :: left_size, right_size
1688 !! Size of the left and right splits
1689 logical, optional, intent(in) :: shuffle
1690 !! Shuffle the data before splitting
1691 integer, optional, intent(in) :: seed
1692 !! Random seed
1693
9/18
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
1 integer, optional, dimension(size(data,dim)), intent(out) :: split_list
1694 !! Index array
1695
1696 ! Local variables
1697 integer :: seed_, left_num_, right_num_
1698 !! Random seed, number of elements in left and right splits
1699 logical :: shuffle_
1700 !! Shuffle flag
1701 integer :: i, j
1702 !! Loop indices
1703 integer :: num_redos
1704 !! Number of redos
1705 real(real32) :: rtmp1
1706 !! Temporary real
1707 2 integer, allocatable, dimension(:) :: indices_l, indices_r
1708 !! Index arrays
1709 2 real(real32), allocatable, dimension(:) :: tlist
1710 !! Temporary list
1711 2 real(real32), allocatable, dimension(:) :: label_copy
1712 !! Copy of the input label
1713 2 integer, allocatable, dimension(:,:,:) :: data_copy
1714 !! Copy of the input data
1715
1716 type :: idx_type
1717 !! Type for index array
1718 integer, allocatable, dimension(:) :: loc
1719 !! Index array
1720 end type idx_type
1721
5/6
✓ Branch 0 taken 6 times.
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 6 times.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 6 times.
✗ Branch 5 not taken.
16 type(idx_type), dimension(3) :: idx
1722 !! Index array
1723
1724
1725 ! Determine number of elements for left and right split
1726 !---------------------------------------------------------------------------
1727
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
2 if(.not.present(left_size).and..not.present(right_size))then
1728 call stop_program("neither left_size nor right_size provided to split. &
1729 &Expected at least one." &
1730 )
1731 return
1732
1/2
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
2 elseif(present(left_size).and..not.present(right_size))then
1733
9/18
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
2 left_num_ = nint(left_size*size(data,dim))
1734
9/18
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
2 right_num_ = size(data,dim) - left_num_
1735 elseif(.not.present(left_size).and.present(right_size))then
1736 right_num_ = nint(right_size*size(data,dim))
1737 left_num_ = size(data,dim) - right_num_
1738 else
1739 left_num_ = nint(left_size*size(data,dim))
1740 right_num_ = nint(right_size*size(data,dim))
1741 if(left_num_ + right_num_ .ne. size(data,dim)) &
1742 right_num_ = size(data,dim) - left_num_
1743 end if
1744
1745 ! Initialies optional arguments
1746 !---------------------------------------------------------------------------
1747
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
2 if(present(shuffle))then
1748 1 shuffle_ = shuffle
1749 else
1750 1 shuffle_ = .false.
1751 end if
1752
1753
1/2
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
2 if(present(seed))then
1754 2 seed_ = seed
1755 else
1756 call system_clock(count=seed_)
1757 end if
1758
1759
1760 ! Copy input data
1761 !---------------------------------------------------------------------------
1762
18/36
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 2 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 2 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 2 times.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 6 times.
✓ Branch 40 taken 2 times.
✓ Branch 41 taken 18 times.
✓ Branch 42 taken 6 times.
✓ Branch 43 taken 1800 times.
✓ Branch 44 taken 18 times.
1826 data_copy = data
1763
8/16
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 200 times.
✓ Branch 18 taken 2 times.
202 label_copy = label
1764
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
2 if(shuffle_) call shuffle_3Didata_1Drlist(data_copy,label_copy,dim,seed_)
1765
1766
1767 ! Get list of indices for right split
1768 !---------------------------------------------------------------------------
1769 2 num_redos = 0
1770
7/14
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
2 allocate(tlist(right_num_))
1771 2 call random_number(tlist)
1772
19/38
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 2 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 2 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 2 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 2 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 2 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 2 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 2 times.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✓ Branch 45 taken 2 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 150 times.
✓ Branch 48 taken 2 times.
✓ Branch 49 taken 150 times.
✗ Branch 50 not taken.
152 indices_r = floor(tlist*size(data,dim)) + 1
1773 2 i = 1
1774 286 indices_r_loop: do
1775
2/2
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 286 times.
288 if(i.ge.right_num_) exit indices_r_loop
1776 286 i = i + 1
1777
12/18
✗ Branch 0 not taken.
✓ Branch 1 taken 286 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 286 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 286 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 286 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 286 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 286 times.
✓ Branch 18 taken 9536 times.
✓ Branch 19 taken 148 times.
✓ Branch 20 taken 138 times.
✓ Branch 21 taken 9398 times.
✓ Branch 22 taken 138 times.
✓ Branch 23 taken 148 times.
9684 if(any(indices_r(:i-1).eq.indices_r(i)))then
1778 indices_r(i:right_num_-num_redos-1) = &
1779
11/20
✗ Branch 0 not taken.
✓ Branch 1 taken 138 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 138 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 138 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 138 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 138 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 138 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 138 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 138 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 138 times.
✓ Branch 23 taken 2363 times.
✓ Branch 24 taken 138 times.
2501 indices_r(i+1:right_num_-num_redos)
1780 138 call random_number(rtmp1)
1781
12/24
✗ Branch 0 not taken.
✓ Branch 1 taken 138 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 138 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 138 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 138 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 138 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 138 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 138 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 138 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 138 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 138 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 138 times.
✓ Branch 33 taken 138 times.
✗ Branch 34 not taken.
138 indices_r(right_num_) = floor(rtmp1*size(data,dim)) + 1
1782 138 i = i - 1
1783 end if
1784 end do indices_r_loop
1785
1786
1787 ! Generate right split
1788 !---------------------------------------------------------------------------
1789
2/2
✓ Branch 0 taken 6 times.
✓ Branch 1 taken 2 times.
8 do i=1,3
1790
2/2
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 4 times.
8 if(i.eq.dim)then
1791
12/24
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 2 times.
✗ Branch 25 not taken.
✓ Branch 26 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 150 times.
✓ Branch 29 taken 2 times.
152 idx(i)%loc = indices_r
1792 else
1793
21/38
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 4 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 4 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 4 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 4 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 4 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 4 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 4 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 4 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 4 times.
✓ Branch 36 taken 12 times.
✓ Branch 37 taken 4 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 4 times.
✓ Branch 40 taken 12 times.
✓ Branch 41 taken 4 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 4 times.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✓ Branch 46 taken 4 times.
✗ Branch 47 not taken.
✓ Branch 48 taken 12 times.
✓ Branch 49 taken 4 times.
40 idx(i)%loc = (/ ( j, j=1,size(data,i) ) /)
1794 end if
1795 end do
1796 right_data = data_copy(&
1797
36/66
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 150 times.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✓ Branch 32 taken 6 times.
✓ Branch 33 taken 2 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 2 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 2 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 2 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 2 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 2 times.
✓ Branch 48 taken 6 times.
✓ Branch 49 taken 2 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 2 times.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✓ Branch 58 taken 2 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 6 times.
✓ Branch 61 taken 2 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 6 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 6 times.
✓ Branch 66 taken 18 times.
✓ Branch 67 taken 6 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 18 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 18 times.
✓ Branch 72 taken 1350 times.
✓ Branch 73 taken 18 times.
✗ Branch 74 not taken.
✓ Branch 75 taken 1350 times.
✗ Branch 76 not taken.
✓ Branch 77 taken 1350 times.
1538 idx(1)%loc,idx(2)%loc,idx(3)%loc)
1798
7/14
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 150 times.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 150 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 150 times.
152 right_label = label_copy(indices_r)
1799
1800
1801 ! Get list of indices for left split
1802 !---------------------------------------------------------------------------
1803
8/12
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✓ Branch 13 taken 100 times.
✓ Branch 14 taken 1 times.
102 if(present(split_list)) split_list = 2
1804
11/20
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✓ Branch 27 taken 200 times.
✓ Branch 28 taken 2 times.
202 indices_l_loop: do i=1,size(data,dim)
1805
10/14
✗ Branch 0 not taken.
✓ Branch 1 taken 200 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 200 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 200 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 200 times.
✓ Branch 12 taken 9450 times.
✓ Branch 13 taken 50 times.
✓ Branch 14 taken 150 times.
✓ Branch 15 taken 9300 times.
✓ Branch 16 taken 150 times.
✓ Branch 17 taken 50 times.
9500 if(any(indices_r.eq.i)) cycle indices_l_loop
1806
2/2
✓ Branch 0 taken 48 times.
✓ Branch 1 taken 2 times.
50 if(allocated(indices_l))then
1807
16/26
✗ Branch 0 not taken.
✓ Branch 1 taken 48 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 48 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 48 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 48 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 48 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 48 times.
✓ Branch 17 taken 600 times.
✓ Branch 18 taken 48 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 48 times.
✓ Branch 21 taken 648 times.
✓ Branch 22 taken 48 times.
✓ Branch 23 taken 48 times.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 48 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 48 times.
✓ Branch 29 taken 648 times.
✓ Branch 30 taken 48 times.
1944 indices_l = [indices_l(:), i]
1808 else
1809
4/8
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 2 times.
4 indices_l = [i]
1810 end if
1811
4/6
✓ Branch 0 taken 25 times.
✓ Branch 1 taken 25 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 25 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 25 times.
52 if(present(split_list)) split_list(i) = 1
1812 end do indices_l_loop
1813
1814
1815 ! Generate left split
1816 !---------------------------------------------------------------------------
1817
13/24
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 2 times.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✓ Branch 27 taken 2 times.
✓ Branch 28 taken 50 times.
✓ Branch 29 taken 2 times.
52 idx(dim)%loc = indices_l
1818 left_data = data_copy(&
1819
36/66
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 50 times.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✓ Branch 32 taken 6 times.
✓ Branch 33 taken 2 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 2 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 2 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 2 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 2 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 2 times.
✓ Branch 48 taken 6 times.
✓ Branch 49 taken 2 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 2 times.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✓ Branch 58 taken 2 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 6 times.
✓ Branch 61 taken 2 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 6 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 6 times.
✓ Branch 66 taken 18 times.
✓ Branch 67 taken 6 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 18 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 18 times.
✓ Branch 72 taken 450 times.
✓ Branch 73 taken 18 times.
✗ Branch 74 not taken.
✓ Branch 75 taken 450 times.
✗ Branch 76 not taken.
✓ Branch 77 taken 450 times.
538 idx(1)%loc,idx(2)%loc,idx(3)%loc)
1820
7/14
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 50 times.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 50 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 50 times.
52 left_label = label_copy(indices_l)
1821
1822
7/12
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
6 end subroutine split_3Didata_1Drlist
1823 !-------------------------------------------------------------------------------
1824 3 subroutine split_5Drdata_1Drlist( &
1825
2/4
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 3 times.
✗ Branch 3 not taken.
3 data, label, left_data, right_data, &
1826 left_label, right_label, dim, &
1827 left_size, right_size, &
1828 1 shuffle, seed, split_list &
1829 )
1830 !! Split a 5D array along one dimension
1831 implicit none
1832
1833 ! Arguments
1834 real(real32), dimension(:,:,:,:,:), intent(in) :: data
1835 !! 5D array to be split
1836 real(real32), dimension(:), intent(in) :: label
1837 !! 1D array to be split
1838 real(real32), allocatable, dimension(:,:,:,:,:), intent(out) :: &
1839 left_data, right_data
1840 !! 5D arrays to store the left and right splits
1841 real(real32), allocatable, dimension(:), intent(out) :: &
1842 left_label, right_label
1843 !! 1D arrays to store the left and right splits
1844 integer, intent(in) :: dim
1845 !! Dimension along which to split
1846 real(real32), optional, intent(in) :: left_size, right_size
1847 !! Size of the left and right splits
1848 logical, optional, intent(in) :: shuffle
1849 !! Shuffle the data before splitting
1850 integer, optional, intent(in) :: seed
1851 !! Random seed
1852
15/30
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 1 times.
1 integer, optional, dimension(size(data,dim)), intent(out) :: split_list
1853 !! Index array
1854
1855 ! Local variables
1856 integer :: seed_, left_num_, right_num_
1857 !! Random seed, number of elements in left and right splits
1858 logical :: shuffle_
1859 !! Shuffle flag
1860 integer :: i, j
1861 !! Loop indices
1862 integer :: num_redos
1863 !! Number of redos
1864 real(real32) :: rtmp1
1865 !! Temporary real
1866 3 integer, allocatable, dimension(:) :: indices_l, indices_r
1867 !! Index arrays
1868 3 real(real32), allocatable, dimension(:) :: tlist
1869 !! Temporary list
1870 3 real(real32), allocatable, dimension(:) :: label_copy
1871 !! Copy of the input label
1872 3 real(real32), allocatable, dimension(:,:,:,:,:) :: data_copy
1873 !! Copy of the input data
1874
1875 type :: idx_type
1876 !! Type for index array
1877 integer, allocatable, dimension(:) :: loc
1878 !! Index array
1879 end type idx_type
1880
5/6
✓ Branch 0 taken 15 times.
✓ Branch 1 taken 3 times.
✓ Branch 2 taken 15 times.
✓ Branch 3 taken 3 times.
✓ Branch 4 taken 15 times.
✗ Branch 5 not taken.
36 type(idx_type), dimension(5) :: idx
1881 !! Index array
1882
1883
1884 ! Determine number of elements for left and right split
1885 !---------------------------------------------------------------------------
1886
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
3 if(.not.present(left_size).and..not.present(right_size))then
1887 call stop_program("neither left_size nor right_size provided to split. &
1888 &Expected at least one." &
1889 )
1890 return
1891
2/2
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 1 times.
3 elseif(present(left_size).and..not.present(right_size))then
1892
15/30
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 2 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 2 times.
2 left_num_ = nint(left_size*size(data,dim))
1893
15/30
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 2 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 2 times.
2 right_num_ = size(data,dim) - left_num_
1894
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
1 elseif(.not.present(left_size).and.present(right_size))then
1895
15/30
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 1 times.
1 right_num_ = nint(right_size*size(data,dim))
1896
15/30
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 1 times.
1 left_num_ = size(data,dim) - right_num_
1897 else
1898 left_num_ = nint(left_size*size(data,dim))
1899 right_num_ = nint(right_size*size(data,dim))
1900 if(left_num_ + right_num_ .ne. size(data,dim)) &
1901 right_num_ = size(data,dim) - left_num_
1902 end if
1903
1904
1905 ! Initialies optional arguments
1906 !---------------------------------------------------------------------------
1907
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 2 times.
3 if(present(shuffle))then
1908 1 shuffle_ = shuffle
1909 else
1910 2 shuffle_ = .false.
1911 end if
1912
1913
1/2
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
3 if(present(seed))then
1914 3 seed_ = seed
1915 else
1916 call system_clock(count=seed_)
1917 end if
1918
1919
1920 ! Copy input data
1921 !---------------------------------------------------------------------------
1922
28/56
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 3 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 3 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 3 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 3 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 3 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 3 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 3 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 3 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 3 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 3 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 3 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 3 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 3 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 3 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 3 times.
✗ Branch 47 not taken.
✓ Branch 48 taken 3 times.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✓ Branch 59 taken 3 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 9 times.
✓ Branch 62 taken 3 times.
✓ Branch 63 taken 27 times.
✓ Branch 64 taken 9 times.
✓ Branch 65 taken 81 times.
✓ Branch 66 taken 27 times.
✓ Branch 67 taken 243 times.
✓ Branch 68 taken 81 times.
✓ Branch 69 taken 24300 times.
✓ Branch 70 taken 243 times.
24663 data_copy = data
1923
8/16
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 3 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 3 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 3 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 3 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 3 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 300 times.
✓ Branch 18 taken 3 times.
303 label_copy = label
1924
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 2 times.
3 if(shuffle_) call shuffle_5Drdata_1Drlist(data_copy,label_copy,dim,seed_)
1925
1926
1927 ! Get list of indices for right split
1928 !---------------------------------------------------------------------------
1929 3 num_redos = 0
1930
7/14
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 3 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 3 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 3 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 3 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 3 times.
3 allocate(tlist(right_num_))
1931 3 call random_number(tlist)
1932
25/50
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 3 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 3 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 3 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 3 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 3 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 3 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 3 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 3 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 3 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 3 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 3 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 3 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 3 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 3 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 3 times.
✗ Branch 47 not taken.
✓ Branch 48 taken 3 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 3 times.
✗ Branch 53 not taken.
✓ Branch 54 taken 3 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 3 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 3 times.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✓ Branch 63 taken 3 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 225 times.
✓ Branch 66 taken 3 times.
✓ Branch 67 taken 225 times.
✗ Branch 68 not taken.
228 indices_r = floor(tlist*size(data,dim)) + 1
1933 3 i = 1
1934 428 indices_r_loop: do
1935
2/2
✓ Branch 0 taken 3 times.
✓ Branch 1 taken 428 times.
431 if(i.ge.right_num_) exit indices_r_loop
1936 428 i = i + 1
1937
12/18
✗ Branch 0 not taken.
✓ Branch 1 taken 428 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 428 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 428 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 428 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 428 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 428 times.
✓ Branch 18 taken 14356 times.
✓ Branch 19 taken 222 times.
✓ Branch 20 taken 206 times.
✓ Branch 21 taken 14150 times.
✓ Branch 22 taken 206 times.
✓ Branch 23 taken 222 times.
14578 if(any(indices_r(:i-1).eq.indices_r(i)))then
1938 indices_r(i:right_num_-num_redos-1) = &
1939
11/20
✗ Branch 0 not taken.
✓ Branch 1 taken 206 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 206 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 206 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 206 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 206 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 206 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 206 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 206 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 206 times.
✓ Branch 23 taken 3402 times.
✓ Branch 24 taken 206 times.
3608 indices_r(i+1:right_num_-num_redos)
1940 206 call random_number(rtmp1)
1941
18/36
✗ Branch 0 not taken.
✓ Branch 1 taken 206 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 206 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 206 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 206 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 206 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 206 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 206 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 206 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 206 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 206 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 206 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 206 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 206 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 206 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 206 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 206 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 206 times.
✓ Branch 51 taken 206 times.
✗ Branch 52 not taken.
206 indices_r(right_num_) = floor(rtmp1*size(data,dim)) + 1
1942 206 i = i - 1
1943 end if
1944 end do indices_r_loop
1945
1946
1947 ! Generate right split
1948 !---------------------------------------------------------------------------
1949
2/2
✓ Branch 0 taken 15 times.
✓ Branch 1 taken 3 times.
18 do i=1,5
1950
2/2
✓ Branch 0 taken 3 times.
✓ Branch 1 taken 12 times.
18 if(i.eq.dim)then
1951
12/24
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 3 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 3 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 3 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 3 times.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 22 taken 3 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 3 times.
✗ Branch 25 not taken.
✓ Branch 26 taken 3 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 225 times.
✓ Branch 29 taken 3 times.
228 idx(i)%loc = indices_r
1952 else
1953
27/50
✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 12 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 12 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 12 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 12 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 12 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 12 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 12 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 12 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 12 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 12 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 12 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 12 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 12 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 12 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 12 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 12 times.
✓ Branch 54 taken 36 times.
✓ Branch 55 taken 12 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 12 times.
✓ Branch 58 taken 36 times.
✓ Branch 59 taken 12 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 12 times.
✗ Branch 62 not taken.
✗ Branch 63 not taken.
✓ Branch 64 taken 12 times.
✗ Branch 65 not taken.
✓ Branch 66 taken 36 times.
✓ Branch 67 taken 12 times.
120 idx(i)%loc = (/ ( j, j=1,size(data,i) ) /)
1954 end if
1955 end do
1956 right_data = data_copy(&
1957
58/106
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 3 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 3 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 3 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 3 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 3 times.
✓ Branch 16 taken 225 times.
✓ Branch 17 taken 3 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 3 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 3 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 3 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 3 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 3 times.
✓ Branch 32 taken 9 times.
✓ Branch 33 taken 3 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 3 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 3 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 3 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 3 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 3 times.
✓ Branch 48 taken 9 times.
✓ Branch 49 taken 3 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 3 times.
✗ Branch 53 not taken.
✓ Branch 54 taken 3 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 3 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 3 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 3 times.
✓ Branch 64 taken 9 times.
✓ Branch 65 taken 3 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 3 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 3 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 3 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 3 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 3 times.
✓ Branch 80 taken 9 times.
✓ Branch 81 taken 3 times.
✗ Branch 82 not taken.
✓ Branch 83 taken 3 times.
✗ Branch 84 not taken.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✗ Branch 93 not taken.
✓ Branch 94 taken 3 times.
✗ Branch 95 not taken.
✓ Branch 96 taken 9 times.
✓ Branch 97 taken 3 times.
✗ Branch 98 not taken.
✓ Branch 99 taken 9 times.
✗ Branch 100 not taken.
✓ Branch 101 taken 9 times.
✓ Branch 102 taken 27 times.
✓ Branch 103 taken 9 times.
✗ Branch 104 not taken.
✓ Branch 105 taken 27 times.
✗ Branch 106 not taken.
✓ Branch 107 taken 27 times.
✓ Branch 108 taken 81 times.
✓ Branch 109 taken 27 times.
✗ Branch 110 not taken.
✓ Branch 111 taken 81 times.
✗ Branch 112 not taken.
✓ Branch 113 taken 81 times.
✓ Branch 114 taken 243 times.
✓ Branch 115 taken 81 times.
✗ Branch 116 not taken.
✓ Branch 117 taken 243 times.
✗ Branch 118 not taken.
✓ Branch 119 taken 243 times.
✓ Branch 120 taken 18225 times.
✓ Branch 121 taken 243 times.
✗ Branch 122 not taken.
✓ Branch 123 taken 18225 times.
✗ Branch 124 not taken.
✓ Branch 125 taken 18225 times.
18849 idx(1)%loc,idx(2)%loc,idx(3)%loc,idx(4)%loc,idx(5)%loc)
1958
7/14
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 3 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 3 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 225 times.
✓ Branch 9 taken 3 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 225 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 225 times.
228 right_label = label_copy(indices_r)
1959
1960
1961 ! Get list of indices for left split
1962 !---------------------------------------------------------------------------
1963
8/12
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✓ Branch 13 taken 100 times.
✓ Branch 14 taken 1 times.
103 if(present(split_list)) split_list = 2
1964
17/32
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 3 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 3 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 3 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 3 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 3 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 3 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 3 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 3 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 3 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 3 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 3 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 3 times.
✓ Branch 45 taken 300 times.
✓ Branch 46 taken 3 times.
303 indices_l_loop: do i=1,size(data,dim)
1965
10/14
✗ Branch 0 not taken.
✓ Branch 1 taken 300 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 300 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 300 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 300 times.
✓ Branch 12 taken 14175 times.
✓ Branch 13 taken 75 times.
✓ Branch 14 taken 225 times.
✓ Branch 15 taken 13950 times.
✓ Branch 16 taken 225 times.
✓ Branch 17 taken 75 times.
14250 if(any(indices_r.eq.i)) cycle indices_l_loop
1966
2/2
✓ Branch 0 taken 72 times.
✓ Branch 1 taken 3 times.
75 if(allocated(indices_l))then
1967
16/26
✗ Branch 0 not taken.
✓ Branch 1 taken 72 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 72 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 72 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 72 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 72 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 72 times.
✓ Branch 17 taken 900 times.
✓ Branch 18 taken 72 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 72 times.
✓ Branch 21 taken 972 times.
✓ Branch 22 taken 72 times.
✓ Branch 23 taken 72 times.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 72 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 72 times.
✓ Branch 29 taken 972 times.
✓ Branch 30 taken 72 times.
2916 indices_l = [indices_l(:), i]
1968 else
1969
4/8
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 3 times.
✓ Branch 7 taken 3 times.
6 indices_l = [i]
1970 end if
1971
4/6
✓ Branch 0 taken 25 times.
✓ Branch 1 taken 50 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 25 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 25 times.
78 if(present(split_list)) split_list(i) = 1
1972 end do indices_l_loop
1973
1974
1975 ! Generate left split
1976 !---------------------------------------------------------------------------
1977
13/24
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 3 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 3 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 3 times.
✓ Branch 18 taken 3 times.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 3 times.
✓ Branch 22 taken 3 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 3 times.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✓ Branch 27 taken 3 times.
✓ Branch 28 taken 75 times.
✓ Branch 29 taken 3 times.
78 idx(dim)%loc = indices_l
1978 left_data = data_copy(&
1979
58/106
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 3 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 3 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 3 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 3 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 3 times.
✓ Branch 16 taken 75 times.
✓ Branch 17 taken 3 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 3 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 3 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 3 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 3 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 3 times.
✓ Branch 32 taken 9 times.
✓ Branch 33 taken 3 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 3 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 3 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 3 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 3 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 3 times.
✓ Branch 48 taken 9 times.
✓ Branch 49 taken 3 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 3 times.
✗ Branch 53 not taken.
✓ Branch 54 taken 3 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 3 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 3 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 3 times.
✓ Branch 64 taken 9 times.
✓ Branch 65 taken 3 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 3 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 3 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 3 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 3 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 3 times.
✓ Branch 80 taken 9 times.
✓ Branch 81 taken 3 times.
✗ Branch 82 not taken.
✓ Branch 83 taken 3 times.
✗ Branch 84 not taken.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✗ Branch 93 not taken.
✓ Branch 94 taken 3 times.
✗ Branch 95 not taken.
✓ Branch 96 taken 9 times.
✓ Branch 97 taken 3 times.
✗ Branch 98 not taken.
✓ Branch 99 taken 9 times.
✗ Branch 100 not taken.
✓ Branch 101 taken 9 times.
✓ Branch 102 taken 27 times.
✓ Branch 103 taken 9 times.
✗ Branch 104 not taken.
✓ Branch 105 taken 27 times.
✗ Branch 106 not taken.
✓ Branch 107 taken 27 times.
✓ Branch 108 taken 81 times.
✓ Branch 109 taken 27 times.
✗ Branch 110 not taken.
✓ Branch 111 taken 81 times.
✗ Branch 112 not taken.
✓ Branch 113 taken 81 times.
✓ Branch 114 taken 243 times.
✓ Branch 115 taken 81 times.
✗ Branch 116 not taken.
✓ Branch 117 taken 243 times.
✗ Branch 118 not taken.
✓ Branch 119 taken 243 times.
✓ Branch 120 taken 6075 times.
✓ Branch 121 taken 243 times.
✗ Branch 122 not taken.
✓ Branch 123 taken 6075 times.
✗ Branch 124 not taken.
✓ Branch 125 taken 6075 times.
6549 idx(1)%loc,idx(2)%loc,idx(3)%loc,idx(4)%loc,idx(5)%loc)
1980
7/14
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 3 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 3 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 75 times.
✓ Branch 9 taken 3 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 75 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 75 times.
78 left_label = label_copy(indices_l)
1981
1982
7/12
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 3 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 3 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 3 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 3 times.
✗ Branch 11 not taken.
9 end subroutine split_5Drdata_1Drlist
1983 !###############################################################################
1984
1985
1986 !##############################################################################!
1987 ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * !
1988 !##############################################################################!
1989
1990
1991
1992 !###############################################################################
1993 84 pure function get_padding_half(width) result(output)
1994 !! Function to return half the padding width
1995 implicit none
1996
1997 ! Arguments
1998 integer, intent(in) :: width
1999 !! Width of kernel/filter
2000 integer :: output
2001 !! Half the padding width
2002
2003 84 output = ( width - (1 - mod(width,2)) - 1 ) / 2
2004 84 end function get_padding_half
2005 !###############################################################################
2006
2007
2008 !###############################################################################
2009 112 subroutine set_padding(pad, kernel_size, padding_method, verbose)
2010 !! Set padding for convolutional layers
2011 use coreutils, only: to_lower
2012 implicit none
2013
2014 ! Arguments
2015 integer, intent(out) :: pad
2016 !! Padding width
2017 integer, intent(in) :: kernel_size
2018 !! Width of kernel/filter
2019 character(*), intent(inout) :: padding_method
2020 !! Padding method
2021 integer, optional, intent(in) :: verbose
2022 !! Verbosity level
2023
2024 ! Local variables
2025 integer :: t_verbose = 0
2026 !! Temporary verbosity level
2027 character(256) :: err_msg
2028 !! Error message
2029
2030
2031 !---------------------------------------------------------------------------
2032 ! initialise optional arguments
2033 !---------------------------------------------------------------------------
2034 112 if(present(verbose)) t_verbose = verbose
2035
2036
2037 !---------------------------------------------------------------------------
2038 ! Padding method options
2039 !---------------------------------------------------------------------------
2040 ! none = alt. name for 'valid'
2041 ! zero = alt. name for 'same'
2042 ! symmetric = alt.name for 'replication'
2043 ! valid = no padding
2044 ! same = maintain spatial dimensions
2045 ! ... (i.e. padding added = (kernel_size - 1)/2)
2046 ! ... defaults to zeros in the padding
2047 ! full = enough padding for filter to slide over every possible position
2048 ! ... (i.e. padding added = (kernel_size - 1)
2049 ! circular = maintain spatial dimensions
2050 ! ... wraps data around for padding (periodic)
2051 ! reflection = maintains spatial dimensions
2052 ! ... reflect data (about boundary index)
2053 ! replication = maintains spatial dimensions
2054 ! ... reflect data (boundary included)
2055
1/2
✓ Branch 1 taken 116 times.
✗ Branch 2 not taken.
232 100 select case(to_lower(trim(padding_method)))
2056 case("none")
2057
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 padding_method = "valid"
2058 4 goto 100
2059 case("zero")
2060
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 padding_method = "same"
2061 1 goto 100
2062 case("half")
2063
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 padding_method = "same"
2064 1 goto 100
2065 case("symmetric")
2066
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 padding_method = "replication"
2067 1 goto 100
2068 case("valid", "vali")
2069
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 18 times.
18 if(t_verbose.gt.0) write(*,*) "Padding type: 'valid' (no padding)"
2070 18 pad = 0
2071 28 return
2072 case("same")
2073
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 42 times.
42 if(t_verbose.gt.0) write(*,*) "Padding type: 'same' (pad with zeros)"
2074 case("circular")
2075
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
12 if(t_verbose.gt.0) write(*,*) "Padding type: 'same' (circular padding)"
2076 case("full")
2077
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
10 if(t_verbose.gt.0) write(*,*) &
2078 "Padding type: 'full' (all possible positions)"
2079 10 pad = kernel_size - 1
2080 10 return
2081 case("reflection")
2082
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
10 if(t_verbose.gt.0) write(*,*) &
2083 10 "Padding type: 'reflection' (reflect on boundary)"
2084 case("replication")
2085
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 20 times.
20 if(t_verbose.gt.0) write(*,*) &
2086 20 "Padding type: 'replication' (reflect after boundary)"
2087 case default
2088 write(err_msg,'("padding type ''",A,"'' not known")') padding_method
2089 call stop_program(err_msg)
2090
10/11
✓ Branch 1 taken 1 times.
✓ Branch 2 taken 1 times.
✓ Branch 3 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 5 taken 18 times.
✓ Branch 6 taken 42 times.
✓ Branch 7 taken 12 times.
✓ Branch 8 taken 10 times.
✓ Branch 9 taken 10 times.
✓ Branch 10 taken 20 times.
✗ Branch 11 not taken.
232 return
2091 end select
2092
2093 84 pad = get_padding_half(kernel_size)
2094
2095
1/2
✓ Branch 0 taken 112 times.
✗ Branch 1 not taken.
112 end subroutine set_padding
2096 !###############################################################################
2097
2098
2099 !###############################################################################
2100 69 subroutine pad_data( &
2101 data, data_padded, &
2102 kernel_size, padding_method, &
2103 sample_dim, channel_dim, constant &
2104 )
2105 !! Pad data for convolutional layers
2106 implicit none
2107
2108 ! Arguments
2109 real(real32), dimension(..), intent(in) :: data
2110 !! Data to be padded
2111 real(real32), allocatable, dimension(..), intent(out) :: data_padded
2112 !! Padded data
2113 integer, dimension(..), intent(in) :: kernel_size
2114 !! Width of kernel/filter
2115 character(*), intent(inout) :: padding_method
2116 !! Padding method
2117 real(real32), optional, intent(in) :: constant
2118 !! Constant value for padding
2119 integer, optional, intent(in) :: sample_dim, channel_dim
2120 !! Dimensions along which to pad
2121
2122 ! Local variables
2123 integer :: i, j, idim
2124 !! Loop indices
2125 integer :: num_samples, num_channels, ndim, ndata_dim
2126 !! Number of samples, channels, dimensions
2127 integer :: sample_dim_ = 0, channel_dim_ = 0
2128 !! Sample and channel dimensions
2129 real(real32) :: constant_ = 0._real32
2130 !! Constant value for padding
2131 integer, dimension(2) :: bound_store
2132 !! Store boundary indices
2133 69 integer, allocatable, dimension(:) :: padding
2134 !! Padding width
2135 69 integer, allocatable, dimension(:,:) :: trgt_bound, dest_bound
2136 !! Target and destination boundaries
2137 69 integer, allocatable, dimension(:,:) :: tmp_trgt_bound, tmp_dest_bound
2138 !! Temporary target and destination boundaries
2139
2140 character(256) :: err_msg
2141 !! Error message
2142
2143
2144 !---------------------------------------------------------------------------
2145 ! Initialise optional arguments
2146 !---------------------------------------------------------------------------
2147 60 if(present(constant)) constant_ = constant
2148
1/2
✓ Branch 0 taken 69 times.
✗ Branch 1 not taken.
69 if(present(sample_dim)) sample_dim_ = sample_dim
2149
1/2
✓ Branch 0 taken 69 times.
✗ Branch 1 not taken.
69 if(present(channel_dim)) channel_dim_ = channel_dim
2150
2151 69 ndim = rank(data)
2152 #if defined(GFORTRAN)
2153 if(ndim.ne.rank(data_padded))then
2154 call stop_program("data and data_padded are not the same rank")
2155 return
2156 end if
2157 #else
2158 select rank(data_padded)
2159 rank(1)
2160
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 13 times.
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
13 if(ndim.ne.1)then
2161 call stop_program("data and data_padded are not the same rank")
2162 return
2163 end if
2164 rank(2)
2165
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 21 times.
✓ Branch 2 taken 21 times.
✗ Branch 3 not taken.
21 if(ndim.ne.2)then
2166 call stop_program("data and data_padded are not the same rank")
2167 return
2168 end if
2169 rank(3)
2170
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
12 if(ndim.ne.3)then
2171 call stop_program("data and data_padded are not the same rank")
2172 return
2173 end if
2174 rank(4)
2175
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✓ Branch 2 taken 12 times.
✗ Branch 3 not taken.
12 if(ndim.ne.4)then
2176 call stop_program("data and data_padded are not the same rank")
2177 return
2178 end if
2179 rank(5)
2180
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 11 times.
✓ Branch 2 taken 11 times.
✗ Branch 3 not taken.
11 if(ndim.ne.5)then
2181 call stop_program("data and data_padded are not the same rank")
2182 return
2183 end if
2184 end select
2185 #endif
2186 69 ndata_dim = ndim
2187
2/2
✓ Branch 0 taken 43 times.
✓ Branch 1 taken 26 times.
69 if(sample_dim_.gt.0) ndata_dim = ndata_dim - 1
2188
2/2
✓ Branch 0 taken 42 times.
✓ Branch 1 taken 27 times.
69 if(channel_dim_.gt.0) ndata_dim = ndata_dim - 1
2189
2190 select rank(data)
2191 rank(1)
2192 if(sample_dim_.gt.0) num_samples = size(data,sample_dim_)
2193
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 13 times.
13 if(channel_dim_.gt.0) num_channels = size(data,channel_dim_)
2194 rank(2)
2195 10 if(sample_dim_.gt.0) num_samples = size(data,sample_dim_)
2196
4/4
✓ Branch 0 taken 10 times.
✓ Branch 1 taken 11 times.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 11 times.
31 if(channel_dim_.gt.0) num_channels = size(data,channel_dim_)
2197 rank(3)
2198 12 if(sample_dim_.gt.0) num_samples = size(data,sample_dim_)
2199
3/4
✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 11 times.
✓ Branch 3 taken 1 times.
24 if(channel_dim_.gt.0) num_channels = size(data,channel_dim_)
2200 rank(4)
2201 11 if(sample_dim_.gt.0) num_samples = size(data,sample_dim_)
2202
4/4
✓ Branch 0 taken 11 times.
✓ Branch 1 taken 1 times.
✓ Branch 2 taken 11 times.
✓ Branch 3 taken 1 times.
23 if(channel_dim_.gt.0) num_channels = size(data,channel_dim_)
2203 rank(5)
2204 10 if(sample_dim_.gt.0) num_samples = size(data,sample_dim_)
2205
4/4
✓ Branch 0 taken 10 times.
✓ Branch 1 taken 1 times.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 1 times.
21 if(channel_dim_.gt.0) num_channels = size(data,channel_dim_)
2206 rank default
2207 call stop_program("cannot handle data with this rank")
2208 return
2209 end select
2210
2211
2212 !---------------------------------------------------------------------------
2213 ! Handle padding type name
2214 !---------------------------------------------------------------------------
2215 ! none = alt. name for 'valid'
2216 ! zero = alt. name for 'same'
2217 ! symmetric = alt.name for 'replication'
2218 ! valid = no padding
2219 ! same = maintain spatial dimensions
2220 ! ... (i.e. padding added = (kernel_size - 1)/2)
2221 ! ... defaults to zeros in the padding
2222 ! full = enough padding for filter to slide over every possible position
2223 ! ... (i.e. padding added = (kernel_size - 1)
2224 ! circular = maintain spatial dimensions
2225 ! ... wraps data around for padding (periodic)
2226 ! reflection = maintains spatial dimensions
2227 ! ... reflect data (about boundary index)
2228 ! replication = maintains spatial dimensions
2229 ! ... reflect data (boundary included)
2230 select rank(kernel_size)
2231 rank(0)
2232
6/12
✗ Branch 0 not taken.
✓ Branch 1 taken 65 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 65 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 65 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 65 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 65 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 65 times.
65 allocate(padding(ndata_dim))
2233
3/4
✓ Branch 0 taken 65 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 102 times.
✓ Branch 3 taken 65 times.
232 do i=1,ndata_dim
2234
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 102 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 102 times.
167 call set_padding(padding(i), kernel_size, padding_method, verbose=0)
2235 end do
2236 rank(1)
2237
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 3 times.
4 if(size(kernel_size).eq.1.and.ndata_dim.gt.1)then
2238
7/14
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
1 allocate(padding(ndata_dim))
2239
2/2
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 1 times.
3 do i=1,ndata_dim
2240 call set_padding( &
2241 padding(i), &
2242 kernel_size(1), &
2243 padding_method, &
2244 verbose = 0 &
2245
4/8
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
3 )
2246 end do
2247 else
2248
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
3 if(sample_dim_.eq.0.and.channel_dim_.eq.0.and.&
2249 size(kernel_size).ne.ndim)then
2250 write(err_msg,'("&
2251 &kernel_size length not equal to rank of data",A,"&
2252 &kernel dimension: ",I0,A,"&
2253 &data rank: ",I0)' &
2254 ) &
2255 achar(13) // achar(10), size(kernel_size), &
2256 achar(13) // achar(10), ndim
2257 call stop_program(err_msg)
2258 return
2259
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
3 elseif(sample_dim_.gt.0.and.channel_dim_.gt.0.and.&
2260 size(kernel_size).ne.ndim-2)then
2261 write(err_msg,'("&
2262 &kernel_size length not equal to rank of data-2",A,"&
2263 &kernel dimension: ",I0,A,"&
2264 &data rank: ",I0)' &
2265 ) &
2266 achar(13) // achar(10), size(kernel_size), &
2267 achar(13) // achar(10), ndim-2
2268 call stop_program(err_msg)
2269 return
2270 elseif((sample_dim_.gt.0.or.channel_dim_.gt.0).and.&
2271
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
3 .not.(sample_dim_.gt.0.and.channel_dim_.gt.0).and.&
2272 size(kernel_size).ne.ndim-1)then
2273 write(err_msg,'("&
2274 &kernel_size length not equal to rank of data-1",A,"&
2275 &kernel dimension: ",I0,A,"&
2276 &data rank: ",I0)' &
2277 ) &
2278 achar(13) // achar(10), size(kernel_size), &
2279 achar(13) // achar(10), ndim-1
2280 call stop_program(err_msg)
2281 return
2282 else
2283
7/14
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 3 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 3 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 3 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 3 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 3 times.
3 allocate(padding(size(kernel_size)))
2284 end if
2285
2/2
✓ Branch 0 taken 5 times.
✓ Branch 1 taken 3 times.
8 do i=1,size(kernel_size)
2286 call set_padding( &
2287 padding(i), kernel_size(i), padding_method, verbose=0 &
2288
4/8
✗ Branch 0 not taken.
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 5 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 5 times.
8 )
2289 end do
2290 end if
2291 end select
2292
2293
2294 !---------------------------------------------------------------------------
2295 ! Allocate data set
2296 ! ... if appropriate, add padding
2297 !---------------------------------------------------------------------------
2298 29 select case(padding_method)
2299 case("same")
2300 case("full")
2301 case("zero")
2302 case default
2303
4/6
✓ Branch 0 taken 23 times.
✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 40 times.
✓ Branch 4 taken 40 times.
✗ Branch 5 not taken.
69 if(abs(constant_).gt.1.E-8)then
2304 40 write(*,*) "WARNING: constant is ignored for selected padding method"
2305 end if
2306 end select
2307
2308
2309
7/14
✓ Branch 0 taken 69 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 69 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 69 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 69 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 69 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 69 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 69 times.
69 allocate(dest_bound(2,ndim))
2310
7/14
✓ Branch 0 taken 69 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 69 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 69 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 69 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 69 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 69 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 69 times.
69 allocate(trgt_bound(2,ndim))
2311 69 i = 0
2312
2/2
✓ Branch 0 taken 194 times.
✓ Branch 1 taken 69 times.
263 do idim=1,ndim
2313
14/26
✗ Branch 0 not taken.
✓ Branch 1 taken 194 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 194 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 194 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 194 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 194 times.
✓ Branch 15 taken 194 times.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 18 taken 194 times.
✓ Branch 20 taken 194 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 194 times.
✓ Branch 25 taken 194 times.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✓ Branch 28 taken 194 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 194 times.
✓ Branch 33 taken 388 times.
✓ Branch 34 taken 194 times.
582 trgt_bound(:,idim) = [ lbound(data,dim=idim), ubound(data,dim=idim) ]
2314
15/28
✗ Branch 0 not taken.
✓ Branch 1 taken 194 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 194 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 194 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 194 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 194 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 194 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 194 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 194 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 194 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 194 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 194 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 194 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 194 times.
✓ Branch 39 taken 388 times.
✓ Branch 40 taken 194 times.
582 dest_bound(:,idim) = trgt_bound(:,idim)
2315
2/2
✓ Branch 0 taken 85 times.
✓ Branch 1 taken 109 times.
194 if(idim.eq.sample_dim_.or.idim.eq.channel_dim_) cycle
2316 109 i = i + 1
2317
20/38
✗ Branch 0 not taken.
✓ Branch 1 taken 109 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 109 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 109 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 109 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 109 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 109 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 109 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 109 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 109 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 109 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 109 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 109 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 109 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 109 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 109 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 109 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 109 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 109 times.
✓ Branch 54 taken 218 times.
✓ Branch 55 taken 109 times.
396 dest_bound(:,idim) = dest_bound(:,idim) + [ -padding(i), padding(i) ]
2318 end do
2319
2320 select rank(data_padded)
2321 rank(1)
2322 allocate(data_padded(&
2323
20/38
✗ Branch 1 not taken.
✓ Branch 2 taken 13 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 13 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 13 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 13 times.
✓ Branch 22 taken 13 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 13 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 13 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 13 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 13 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 13 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 13 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 13 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 13 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 13 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 13 times.
✓ Branch 46 taken 116 times.
✓ Branch 47 taken 13 times.
129 dest_bound(1,1):dest_bound(2,1)), source = constant_)
2324
2325 ! Copy input data
2326 !------------------------------------------------------------------------
2327
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 13 times.
26 select rank(data)
2328 rank(1)
2329 data_padded( &
2330 trgt_bound(1,1):trgt_bound(2,1) &
2331 ) = data( &
2332 trgt_bound(1,1):trgt_bound(2,1) &
2333
27/52
✗ Branch 0 not taken.
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 13 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 13 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 13 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 13 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 13 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 13 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 13 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 13 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 13 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 13 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 13 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 13 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 13 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 13 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 13 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 13 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 13 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 13 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 13 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 13 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 13 times.
✓ Branch 51 taken 92 times.
✓ Branch 52 taken 13 times.
105 )
2334 end select
2335 rank(2)
2336 allocate(data_padded(&
2337 dest_bound(1,1):dest_bound(2,1), &
2338
36/68
✗ Branch 0 not taken.
✓ Branch 1 taken 21 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 21 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 21 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 21 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 21 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 21 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 21 times.
✓ Branch 14 taken 21 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✓ Branch 17 taken 21 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 21 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 21 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 21 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 21 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 21 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 21 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 21 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 21 times.
✓ Branch 42 taken 21 times.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✓ Branch 45 taken 21 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 21 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 21 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 21 times.
✗ Branch 53 not taken.
✓ Branch 54 taken 21 times.
✗ Branch 55 not taken.
✓ Branch 56 taken 21 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 21 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 21 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 21 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 21 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 21 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 21 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 21 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 21 times.
✓ Branch 74 taken 24 times.
✓ Branch 75 taken 21 times.
✓ Branch 76 taken 212 times.
✓ Branch 77 taken 24 times.
257 dest_bound(1,2):dest_bound(2,2)), source = constant_)
2339
2340 ! Copy input data
2341 !------------------------------------------------------------------------
2342
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 21 times.
42 select rank(data)
2343 rank(2)
2344 data_padded( &
2345 trgt_bound(1,1) : trgt_bound(2,1), &
2346 trgt_bound(1,2) : trgt_bound(2,2) &
2347 ) = data( &
2348 trgt_bound(1,1) : trgt_bound(2,1), &
2349 trgt_bound(1,2) : trgt_bound(2,2) &
2350
54/104
✗ Branch 0 not taken.
✓ Branch 1 taken 21 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 21 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 21 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 21 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 21 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 21 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 21 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 21 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 21 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 21 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 21 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 21 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 21 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 21 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 21 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 21 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 21 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 21 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 21 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 21 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 21 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 21 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 21 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 21 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 21 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 21 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 21 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 21 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 21 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 21 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 21 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 21 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 21 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 21 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 21 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 21 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 21 times.
✗ Branch 74 not taken.
✓ Branch 75 taken 21 times.
✗ Branch 76 not taken.
✓ Branch 77 taken 21 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 21 times.
✗ Branch 80 not taken.
✓ Branch 81 taken 21 times.
✗ Branch 82 not taken.
✓ Branch 83 taken 21 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 21 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 21 times.
✗ Branch 88 not taken.
✓ Branch 89 taken 21 times.
✗ Branch 91 not taken.
✓ Branch 92 taken 21 times.
✗ Branch 93 not taken.
✓ Branch 94 taken 21 times.
✗ Branch 95 not taken.
✓ Branch 96 taken 21 times.
✗ Branch 97 not taken.
✓ Branch 98 taken 21 times.
✗ Branch 99 not taken.
✓ Branch 100 taken 21 times.
✓ Branch 102 taken 22 times.
✓ Branch 103 taken 21 times.
✓ Branch 104 taken 164 times.
✓ Branch 105 taken 22 times.
207 )
2351 end select
2352 rank(3)
2353 allocate( &
2354 data_padded(&
2355 dest_bound(1,1):dest_bound(2,1),&
2356 dest_bound(1,2):dest_bound(2,2),&
2357 dest_bound(1,3):dest_bound(2,3) &
2358 ), source = constant_ &
2359
52/98
✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 12 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 12 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 12 times.
✓ Branch 14 taken 12 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✓ Branch 17 taken 12 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 12 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 12 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 12 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 12 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 12 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 12 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 12 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 12 times.
✓ Branch 34 taken 12 times.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 37 taken 12 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 12 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 12 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 12 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 12 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 12 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 12 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 12 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 12 times.
✓ Branch 54 taken 12 times.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✓ Branch 57 taken 12 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 12 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 12 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 12 times.
✗ Branch 65 not taken.
✓ Branch 66 taken 12 times.
✗ Branch 67 not taken.
✓ Branch 68 taken 12 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 12 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 12 times.
✗ Branch 74 not taken.
✓ Branch 75 taken 12 times.
✗ Branch 76 not taken.
✓ Branch 77 taken 12 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 12 times.
✗ Branch 80 not taken.
✓ Branch 81 taken 12 times.
✗ Branch 82 not taken.
✓ Branch 83 taken 12 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 12 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 12 times.
✗ Branch 88 not taken.
✓ Branch 89 taken 12 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 12 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 12 times.
✓ Branch 94 taken 12 times.
✓ Branch 95 taken 12 times.
✓ Branch 96 taken 14 times.
✓ Branch 97 taken 12 times.
✓ Branch 98 taken 138 times.
✓ Branch 99 taken 14 times.
176 )
2360
2361 ! Copy input data
2362 !------------------------------------------------------------------------
2363
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
24 select rank(data)
2364 rank(3)
2365 data_padded( &
2366 trgt_bound(1,1):trgt_bound(2,1), &
2367 trgt_bound(1,2):trgt_bound(2,2), &
2368 trgt_bound(1,3):trgt_bound(2,3) &
2369 ) = data( &
2370 trgt_bound(1,1):trgt_bound(2,1), &
2371 trgt_bound(1,2):trgt_bound(2,2), &
2372 trgt_bound(1,3):trgt_bound(2,3) &
2373
81/156
✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 12 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 12 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 12 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 12 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 12 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 12 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 12 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 12 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 12 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 12 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 12 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 12 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 12 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 12 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 12 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 12 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 12 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 12 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 12 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 12 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 12 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 12 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 12 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 12 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 12 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 12 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 12 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 12 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 12 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 12 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 12 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 12 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 12 times.
✗ Branch 74 not taken.
✓ Branch 75 taken 12 times.
✗ Branch 76 not taken.
✓ Branch 77 taken 12 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 12 times.
✗ Branch 80 not taken.
✓ Branch 81 taken 12 times.
✗ Branch 82 not taken.
✓ Branch 83 taken 12 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 12 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 12 times.
✗ Branch 88 not taken.
✓ Branch 89 taken 12 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 12 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 12 times.
✗ Branch 94 not taken.
✓ Branch 95 taken 12 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 12 times.
✗ Branch 98 not taken.
✓ Branch 99 taken 12 times.
✗ Branch 100 not taken.
✓ Branch 101 taken 12 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 12 times.
✗ Branch 104 not taken.
✓ Branch 105 taken 12 times.
✗ Branch 106 not taken.
✓ Branch 107 taken 12 times.
✗ Branch 108 not taken.
✓ Branch 109 taken 12 times.
✗ Branch 110 not taken.
✓ Branch 111 taken 12 times.
✗ Branch 112 not taken.
✓ Branch 113 taken 12 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 12 times.
✗ Branch 116 not taken.
✓ Branch 117 taken 12 times.
✗ Branch 118 not taken.
✓ Branch 119 taken 12 times.
✗ Branch 120 not taken.
✓ Branch 121 taken 12 times.
✗ Branch 122 not taken.
✓ Branch 123 taken 12 times.
✗ Branch 124 not taken.
✓ Branch 125 taken 12 times.
✗ Branch 126 not taken.
✓ Branch 127 taken 12 times.
✗ Branch 128 not taken.
✓ Branch 129 taken 12 times.
✗ Branch 131 not taken.
✓ Branch 132 taken 12 times.
✗ Branch 133 not taken.
✓ Branch 134 taken 12 times.
✗ Branch 135 not taken.
✓ Branch 136 taken 12 times.
✗ Branch 137 not taken.
✓ Branch 138 taken 12 times.
✗ Branch 139 not taken.
✓ Branch 140 taken 12 times.
✗ Branch 142 not taken.
✓ Branch 143 taken 12 times.
✗ Branch 144 not taken.
✓ Branch 145 taken 12 times.
✗ Branch 146 not taken.
✓ Branch 147 taken 12 times.
✗ Branch 148 not taken.
✓ Branch 149 taken 12 times.
✗ Branch 150 not taken.
✓ Branch 151 taken 12 times.
✓ Branch 153 taken 12 times.
✓ Branch 154 taken 12 times.
✓ Branch 155 taken 12 times.
✓ Branch 156 taken 12 times.
✓ Branch 157 taken 96 times.
✓ Branch 158 taken 12 times.
132 )
2374 end select
2375 rank(4)
2376 allocate( &
2377 data_padded( &
2378 dest_bound(1,1):dest_bound(2,1), &
2379 dest_bound(1,2):dest_bound(2,2), &
2380 dest_bound(1,3):dest_bound(2,3), &
2381 dest_bound(1,4):dest_bound(2,4) &
2382 ), source = constant_ &
2383
68/128
✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 12 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 12 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 12 times.
✓ Branch 14 taken 12 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✓ Branch 17 taken 12 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 12 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 12 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 12 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 12 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 12 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 12 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 12 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 12 times.
✓ Branch 34 taken 12 times.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 37 taken 12 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 12 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 12 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 12 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 12 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 12 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 12 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 12 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 12 times.
✓ Branch 54 taken 12 times.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✓ Branch 57 taken 12 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 12 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 12 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 12 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 12 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 12 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 12 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 12 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 12 times.
✓ Branch 74 taken 12 times.
✗ Branch 75 not taken.
✗ Branch 76 not taken.
✓ Branch 77 taken 12 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 12 times.
✗ Branch 80 not taken.
✓ Branch 81 taken 12 times.
✗ Branch 82 not taken.
✓ Branch 83 taken 12 times.
✗ Branch 85 not taken.
✓ Branch 86 taken 12 times.
✗ Branch 87 not taken.
✓ Branch 88 taken 12 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 12 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 12 times.
✗ Branch 94 not taken.
✓ Branch 95 taken 12 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 12 times.
✗ Branch 98 not taken.
✓ Branch 99 taken 12 times.
✗ Branch 100 not taken.
✓ Branch 101 taken 12 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 12 times.
✗ Branch 104 not taken.
✓ Branch 105 taken 12 times.
✗ Branch 106 not taken.
✓ Branch 107 taken 12 times.
✗ Branch 108 not taken.
✓ Branch 109 taken 12 times.
✗ Branch 110 not taken.
✓ Branch 111 taken 12 times.
✗ Branch 112 not taken.
✓ Branch 113 taken 12 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 12 times.
✗ Branch 116 not taken.
✓ Branch 117 taken 12 times.
✗ Branch 118 not taken.
✓ Branch 119 taken 12 times.
✗ Branch 120 not taken.
✓ Branch 121 taken 12 times.
✓ Branch 122 taken 15 times.
✓ Branch 123 taken 12 times.
✓ Branch 124 taken 27 times.
✓ Branch 125 taken 15 times.
✓ Branch 126 taken 172 times.
✓ Branch 127 taken 27 times.
✓ Branch 128 taken 1328 times.
✓ Branch 129 taken 172 times.
1554 )
2384
2385 ! Copy input data
2386 !------------------------------------------------------------------------
2387
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
24 select rank(data)
2388 rank(4)
2389 data_padded( &
2390 trgt_bound(1,1):trgt_bound(2,1), &
2391 trgt_bound(1,2):trgt_bound(2,2), &
2392 trgt_bound(1,3):trgt_bound(2,3), &
2393 trgt_bound(1,4):trgt_bound(2,4) &
2394 ) = data( &
2395 trgt_bound(1,1):trgt_bound(2,1), &
2396 trgt_bound(1,2):trgt_bound(2,2), &
2397 trgt_bound(1,3):trgt_bound(2,3), &
2398 trgt_bound(1,4):trgt_bound(2,4) &
2399
108/208
✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 12 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 12 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 12 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 12 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 12 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 12 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 12 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 12 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 12 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 12 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 12 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 12 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 12 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 12 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 12 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 12 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 12 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 12 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 12 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 12 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 12 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 12 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 12 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 12 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 12 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 12 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 12 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 12 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 12 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 12 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 12 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 12 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 12 times.
✗ Branch 74 not taken.
✓ Branch 75 taken 12 times.
✗ Branch 76 not taken.
✓ Branch 77 taken 12 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 12 times.
✗ Branch 80 not taken.
✓ Branch 81 taken 12 times.
✗ Branch 82 not taken.
✓ Branch 83 taken 12 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 12 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 12 times.
✗ Branch 88 not taken.
✓ Branch 89 taken 12 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 12 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 12 times.
✗ Branch 94 not taken.
✓ Branch 95 taken 12 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 12 times.
✗ Branch 98 not taken.
✓ Branch 99 taken 12 times.
✗ Branch 100 not taken.
✓ Branch 101 taken 12 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 12 times.
✗ Branch 104 not taken.
✓ Branch 105 taken 12 times.
✗ Branch 106 not taken.
✓ Branch 107 taken 12 times.
✗ Branch 108 not taken.
✓ Branch 109 taken 12 times.
✗ Branch 110 not taken.
✓ Branch 111 taken 12 times.
✗ Branch 112 not taken.
✓ Branch 113 taken 12 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 12 times.
✗ Branch 116 not taken.
✓ Branch 117 taken 12 times.
✗ Branch 118 not taken.
✓ Branch 119 taken 12 times.
✗ Branch 120 not taken.
✓ Branch 121 taken 12 times.
✗ Branch 122 not taken.
✓ Branch 123 taken 12 times.
✗ Branch 124 not taken.
✓ Branch 125 taken 12 times.
✗ Branch 126 not taken.
✓ Branch 127 taken 12 times.
✗ Branch 128 not taken.
✓ Branch 129 taken 12 times.
✗ Branch 130 not taken.
✓ Branch 131 taken 12 times.
✗ Branch 132 not taken.
✓ Branch 133 taken 12 times.
✗ Branch 134 not taken.
✓ Branch 135 taken 12 times.
✗ Branch 136 not taken.
✓ Branch 137 taken 12 times.
✗ Branch 138 not taken.
✓ Branch 139 taken 12 times.
✗ Branch 140 not taken.
✓ Branch 141 taken 12 times.
✗ Branch 142 not taken.
✓ Branch 143 taken 12 times.
✗ Branch 144 not taken.
✓ Branch 145 taken 12 times.
✗ Branch 146 not taken.
✓ Branch 147 taken 12 times.
✗ Branch 148 not taken.
✓ Branch 149 taken 12 times.
✗ Branch 150 not taken.
✓ Branch 151 taken 12 times.
✗ Branch 152 not taken.
✓ Branch 153 taken 12 times.
✗ Branch 154 not taken.
✓ Branch 155 taken 12 times.
✗ Branch 156 not taken.
✓ Branch 157 taken 12 times.
✗ Branch 158 not taken.
✓ Branch 159 taken 12 times.
✗ Branch 160 not taken.
✓ Branch 161 taken 12 times.
✗ Branch 162 not taken.
✓ Branch 163 taken 12 times.
✗ Branch 164 not taken.
✓ Branch 165 taken 12 times.
✗ Branch 166 not taken.
✓ Branch 167 taken 12 times.
✗ Branch 168 not taken.
✓ Branch 169 taken 12 times.
✗ Branch 171 not taken.
✓ Branch 172 taken 12 times.
✗ Branch 173 not taken.
✓ Branch 174 taken 12 times.
✗ Branch 175 not taken.
✓ Branch 176 taken 12 times.
✗ Branch 177 not taken.
✓ Branch 178 taken 12 times.
✗ Branch 179 not taken.
✓ Branch 180 taken 12 times.
✗ Branch 182 not taken.
✓ Branch 183 taken 12 times.
✗ Branch 184 not taken.
✓ Branch 185 taken 12 times.
✗ Branch 186 not taken.
✓ Branch 187 taken 12 times.
✗ Branch 188 not taken.
✓ Branch 189 taken 12 times.
✗ Branch 190 not taken.
✓ Branch 191 taken 12 times.
✗ Branch 193 not taken.
✓ Branch 194 taken 12 times.
✗ Branch 195 not taken.
✓ Branch 196 taken 12 times.
✗ Branch 197 not taken.
✓ Branch 198 taken 12 times.
✗ Branch 199 not taken.
✓ Branch 200 taken 12 times.
✗ Branch 201 not taken.
✓ Branch 202 taken 12 times.
✓ Branch 204 taken 13 times.
✓ Branch 205 taken 12 times.
✓ Branch 206 taken 15 times.
✓ Branch 207 taken 13 times.
✓ Branch 208 taken 96 times.
✓ Branch 209 taken 15 times.
✓ Branch 210 taken 720 times.
✓ Branch 211 taken 96 times.
856 )
2400 end select
2401 rank(5)
2402 allocate( &
2403 data_padded(&
2404 dest_bound(1,1):dest_bound(2,1), &
2405 dest_bound(1,2):dest_bound(2,2), &
2406 dest_bound(1,3):dest_bound(2,3), &
2407 dest_bound(1,4):dest_bound(2,4), &
2408 dest_bound(1,5):dest_bound(2,5) &
2409 ), source = constant_ &
2410
84/158
✗ Branch 0 not taken.
✓ Branch 1 taken 11 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 11 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 11 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 11 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 11 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 11 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 11 times.
✓ Branch 14 taken 11 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✓ Branch 17 taken 11 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 11 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 11 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 11 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 11 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 11 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 11 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 11 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 11 times.
✓ Branch 34 taken 11 times.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 37 taken 11 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 11 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 11 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 11 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 11 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 11 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 11 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 11 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 11 times.
✓ Branch 54 taken 11 times.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✓ Branch 57 taken 11 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 11 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 11 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 11 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 11 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 11 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 11 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 11 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 11 times.
✓ Branch 74 taken 11 times.
✗ Branch 75 not taken.
✗ Branch 76 not taken.
✓ Branch 77 taken 11 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 11 times.
✗ Branch 80 not taken.
✓ Branch 81 taken 11 times.
✗ Branch 82 not taken.
✓ Branch 83 taken 11 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 11 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 11 times.
✗ Branch 88 not taken.
✓ Branch 89 taken 11 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 11 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 11 times.
✓ Branch 94 taken 11 times.
✗ Branch 95 not taken.
✗ Branch 96 not taken.
✓ Branch 97 taken 11 times.
✗ Branch 98 not taken.
✓ Branch 99 taken 11 times.
✗ Branch 100 not taken.
✓ Branch 101 taken 11 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 11 times.
✗ Branch 105 not taken.
✓ Branch 106 taken 11 times.
✗ Branch 107 not taken.
✓ Branch 108 taken 11 times.
✗ Branch 110 not taken.
✓ Branch 111 taken 11 times.
✗ Branch 112 not taken.
✓ Branch 113 taken 11 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 11 times.
✗ Branch 116 not taken.
✓ Branch 117 taken 11 times.
✗ Branch 118 not taken.
✓ Branch 119 taken 11 times.
✗ Branch 120 not taken.
✓ Branch 121 taken 11 times.
✗ Branch 122 not taken.
✓ Branch 123 taken 11 times.
✗ Branch 124 not taken.
✓ Branch 125 taken 11 times.
✗ Branch 126 not taken.
✓ Branch 127 taken 11 times.
✗ Branch 128 not taken.
✓ Branch 129 taken 11 times.
✗ Branch 130 not taken.
✓ Branch 131 taken 11 times.
✗ Branch 132 not taken.
✓ Branch 133 taken 11 times.
✗ Branch 134 not taken.
✓ Branch 135 taken 11 times.
✗ Branch 136 not taken.
✓ Branch 137 taken 11 times.
✗ Branch 138 not taken.
✓ Branch 139 taken 11 times.
✗ Branch 140 not taken.
✓ Branch 141 taken 11 times.
✗ Branch 142 not taken.
✓ Branch 143 taken 11 times.
✗ Branch 144 not taken.
✓ Branch 145 taken 11 times.
✗ Branch 146 not taken.
✓ Branch 147 taken 11 times.
✗ Branch 148 not taken.
✓ Branch 149 taken 11 times.
✓ Branch 150 taken 14 times.
✓ Branch 151 taken 11 times.
✓ Branch 152 taken 26 times.
✓ Branch 153 taken 14 times.
✓ Branch 154 taken 162 times.
✓ Branch 155 taken 26 times.
✓ Branch 156 taken 1228 times.
✓ Branch 157 taken 162 times.
✓ Branch 158 taken 10776 times.
✓ Branch 159 taken 1228 times.
12217 )
2411
2412 ! Copy input data
2413 !------------------------------------------------------------------------
2414
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 11 times.
22 select rank(data)
2415 rank(5)
2416 data_padded( &
2417 trgt_bound(1,1):trgt_bound(2,1), &
2418 trgt_bound(1,2):trgt_bound(2,2), &
2419 trgt_bound(1,3):trgt_bound(2,3), &
2420 trgt_bound(1,4):trgt_bound(2,4), &
2421 trgt_bound(1,5):trgt_bound(2,5) &
2422 ) = data( &
2423 trgt_bound(1,1):trgt_bound(2,1), &
2424 trgt_bound(1,2):trgt_bound(2,2), &
2425 trgt_bound(1,3):trgt_bound(2,3), &
2426 trgt_bound(1,4):trgt_bound(2,4), &
2427 trgt_bound(1,5):trgt_bound(2,5) &
2428
135/260
✗ Branch 0 not taken.
✓ Branch 1 taken 11 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 11 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 11 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 11 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 11 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 11 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 11 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 11 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 11 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 11 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 11 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 11 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 11 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 11 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 11 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 11 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 11 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 11 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 11 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 11 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 11 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 11 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 11 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 11 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 11 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 11 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 11 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 11 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 11 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 11 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 11 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 11 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 11 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 11 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 11 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 11 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 11 times.
✗ Branch 74 not taken.
✓ Branch 75 taken 11 times.
✗ Branch 76 not taken.
✓ Branch 77 taken 11 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 11 times.
✗ Branch 80 not taken.
✓ Branch 81 taken 11 times.
✗ Branch 82 not taken.
✓ Branch 83 taken 11 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 11 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 11 times.
✗ Branch 88 not taken.
✓ Branch 89 taken 11 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 11 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 11 times.
✗ Branch 94 not taken.
✓ Branch 95 taken 11 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 11 times.
✗ Branch 98 not taken.
✓ Branch 99 taken 11 times.
✗ Branch 100 not taken.
✓ Branch 101 taken 11 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 11 times.
✗ Branch 104 not taken.
✓ Branch 105 taken 11 times.
✗ Branch 106 not taken.
✓ Branch 107 taken 11 times.
✗ Branch 108 not taken.
✓ Branch 109 taken 11 times.
✗ Branch 110 not taken.
✓ Branch 111 taken 11 times.
✗ Branch 112 not taken.
✓ Branch 113 taken 11 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 11 times.
✗ Branch 116 not taken.
✓ Branch 117 taken 11 times.
✗ Branch 118 not taken.
✓ Branch 119 taken 11 times.
✗ Branch 120 not taken.
✓ Branch 121 taken 11 times.
✗ Branch 122 not taken.
✓ Branch 123 taken 11 times.
✗ Branch 124 not taken.
✓ Branch 125 taken 11 times.
✗ Branch 126 not taken.
✓ Branch 127 taken 11 times.
✗ Branch 128 not taken.
✓ Branch 129 taken 11 times.
✗ Branch 130 not taken.
✓ Branch 131 taken 11 times.
✗ Branch 132 not taken.
✓ Branch 133 taken 11 times.
✗ Branch 134 not taken.
✓ Branch 135 taken 11 times.
✗ Branch 136 not taken.
✓ Branch 137 taken 11 times.
✗ Branch 138 not taken.
✓ Branch 139 taken 11 times.
✗ Branch 140 not taken.
✓ Branch 141 taken 11 times.
✗ Branch 142 not taken.
✓ Branch 143 taken 11 times.
✗ Branch 144 not taken.
✓ Branch 145 taken 11 times.
✗ Branch 146 not taken.
✓ Branch 147 taken 11 times.
✗ Branch 148 not taken.
✓ Branch 149 taken 11 times.
✗ Branch 150 not taken.
✓ Branch 151 taken 11 times.
✗ Branch 152 not taken.
✓ Branch 153 taken 11 times.
✗ Branch 154 not taken.
✓ Branch 155 taken 11 times.
✗ Branch 156 not taken.
✓ Branch 157 taken 11 times.
✗ Branch 158 not taken.
✓ Branch 159 taken 11 times.
✗ Branch 160 not taken.
✓ Branch 161 taken 11 times.
✗ Branch 162 not taken.
✓ Branch 163 taken 11 times.
✗ Branch 164 not taken.
✓ Branch 165 taken 11 times.
✗ Branch 166 not taken.
✓ Branch 167 taken 11 times.
✗ Branch 168 not taken.
✓ Branch 169 taken 11 times.
✗ Branch 170 not taken.
✓ Branch 171 taken 11 times.
✗ Branch 172 not taken.
✓ Branch 173 taken 11 times.
✗ Branch 174 not taken.
✓ Branch 175 taken 11 times.
✗ Branch 176 not taken.
✓ Branch 177 taken 11 times.
✗ Branch 178 not taken.
✓ Branch 179 taken 11 times.
✗ Branch 180 not taken.
✓ Branch 181 taken 11 times.
✗ Branch 182 not taken.
✓ Branch 183 taken 11 times.
✗ Branch 184 not taken.
✓ Branch 185 taken 11 times.
✗ Branch 186 not taken.
✓ Branch 187 taken 11 times.
✗ Branch 188 not taken.
✓ Branch 189 taken 11 times.
✗ Branch 190 not taken.
✓ Branch 191 taken 11 times.
✗ Branch 192 not taken.
✓ Branch 193 taken 11 times.
✗ Branch 194 not taken.
✓ Branch 195 taken 11 times.
✗ Branch 196 not taken.
✓ Branch 197 taken 11 times.
✗ Branch 198 not taken.
✓ Branch 199 taken 11 times.
✗ Branch 200 not taken.
✓ Branch 201 taken 11 times.
✗ Branch 202 not taken.
✓ Branch 203 taken 11 times.
✗ Branch 204 not taken.
✓ Branch 205 taken 11 times.
✗ Branch 206 not taken.
✓ Branch 207 taken 11 times.
✗ Branch 208 not taken.
✓ Branch 209 taken 11 times.
✗ Branch 211 not taken.
✓ Branch 212 taken 11 times.
✗ Branch 213 not taken.
✓ Branch 214 taken 11 times.
✗ Branch 215 not taken.
✓ Branch 216 taken 11 times.
✗ Branch 217 not taken.
✓ Branch 218 taken 11 times.
✗ Branch 219 not taken.
✓ Branch 220 taken 11 times.
✗ Branch 222 not taken.
✓ Branch 223 taken 11 times.
✗ Branch 224 not taken.
✓ Branch 225 taken 11 times.
✗ Branch 226 not taken.
✓ Branch 227 taken 11 times.
✗ Branch 228 not taken.
✓ Branch 229 taken 11 times.
✗ Branch 230 not taken.
✓ Branch 231 taken 11 times.
✗ Branch 233 not taken.
✓ Branch 234 taken 11 times.
✗ Branch 235 not taken.
✓ Branch 236 taken 11 times.
✗ Branch 237 not taken.
✓ Branch 238 taken 11 times.
✗ Branch 239 not taken.
✓ Branch 240 taken 11 times.
✗ Branch 241 not taken.
✓ Branch 242 taken 11 times.
✗ Branch 244 not taken.
✓ Branch 245 taken 11 times.
✗ Branch 246 not taken.
✓ Branch 247 taken 11 times.
✗ Branch 248 not taken.
✓ Branch 249 taken 11 times.
✗ Branch 250 not taken.
✓ Branch 251 taken 11 times.
✗ Branch 252 not taken.
✓ Branch 253 taken 11 times.
✓ Branch 255 taken 12 times.
✓ Branch 256 taken 11 times.
✓ Branch 257 taken 14 times.
✓ Branch 258 taken 12 times.
✓ Branch 259 taken 88 times.
✓ Branch 260 taken 14 times.
✓ Branch 261 taken 656 times.
✓ Branch 262 taken 88 times.
✓ Branch 263 taken 5152 times.
✓ Branch 264 taken 656 times.
5933 )
2429 end select
2430 end select
2431
2432
2433 !---------------------------------------------------------------------------
2434 ! Return if constant -- or no -- padding
2435 !---------------------------------------------------------------------------
2436 23 select case(padding_method)
2437 case ("same")
2438 23 return
2439 case("full")
2440 6 return
2441 case("zero")
2442 12 return
2443 case("valid", "vali")
2444
4/5
✓ Branch 0 taken 23 times.
✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 12 times.
✓ Branch 4 taken 28 times.
69 return
2445 end select
2446
2447
2448 !---------------------------------------------------------------------------
2449 ! Insert padding
2450 !---------------------------------------------------------------------------
2451 28 i = 0
2452
2/2
✓ Branch 0 taken 73 times.
✓ Branch 1 taken 28 times.
101 do idim=1,ndim
2453
2/2
✓ Branch 0 taken 32 times.
✓ Branch 1 taken 41 times.
73 if(idim.eq.sample_dim_.or.idim.eq.channel_dim_) cycle
2454 41 i = i + 1
2455
23/38
✓ Branch 0 taken 28 times.
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 41 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 41 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 41 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 41 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 41 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 41 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 41 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 41 times.
✓ Branch 26 taken 13 times.
✓ Branch 27 taken 28 times.
✓ Branch 28 taken 13 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 13 times.
✗ Branch 31 not taken.
✓ Branch 32 taken 28 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 28 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 28 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 28 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 28 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 131 times.
✓ Branch 43 taken 41 times.
✓ Branch 44 taken 262 times.
✓ Branch 45 taken 131 times.
434 tmp_dest_bound = dest_bound
2456
23/38
✓ Branch 0 taken 28 times.
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 41 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 41 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 41 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 41 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 41 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 41 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 41 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 41 times.
✓ Branch 26 taken 13 times.
✓ Branch 27 taken 28 times.
✓ Branch 28 taken 13 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 13 times.
✗ Branch 31 not taken.
✓ Branch 32 taken 28 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 28 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 28 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 28 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 28 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 131 times.
✓ Branch 43 taken 41 times.
✓ Branch 44 taken 262 times.
✓ Branch 45 taken 131 times.
434 tmp_trgt_bound = dest_bound
2457
17/32
✗ Branch 0 not taken.
✓ Branch 1 taken 41 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 41 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 41 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 41 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 41 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 41 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 41 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 41 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 41 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 41 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 41 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 41 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 41 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 41 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 41 times.
✓ Branch 45 taken 82 times.
✓ Branch 46 taken 41 times.
123 tmp_dest_bound(:,idim) = [ dest_bound(1,idim), trgt_bound(1,idim) - 1 ]
2458 12 select case(padding_method)
2459 case ("circular")
2460 tmp_trgt_bound(:,idim) = &
2461
19/36
✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 12 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 12 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 12 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 12 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 12 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 12 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 12 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 12 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 12 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 12 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 12 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 12 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 12 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 12 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 12 times.
✓ Branch 45 taken 24 times.
✓ Branch 46 taken 12 times.
36 [ trgt_bound(2,idim) - padding(i) + 1, trgt_bound(2,idim) ]
2462 case("reflection")
2463 tmp_trgt_bound(:,idim) = &
2464
19/36
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 10 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 10 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 10 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 10 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 10 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 10 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 10 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 10 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 10 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 10 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 10 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 10 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 10 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 10 times.
✓ Branch 45 taken 20 times.
✓ Branch 46 taken 10 times.
30 [ trgt_bound(1,idim) + 1, trgt_bound(1,idim) + padding(i) ]
2465 case("replication")
2466 tmp_trgt_bound(:,idim) = &
2467
22/40
✓ Branch 0 taken 12 times.
✓ Branch 1 taken 10 times.
✓ Branch 2 taken 19 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 19 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 19 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 19 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 19 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 19 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 19 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 19 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 19 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 19 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 19 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 19 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 19 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 19 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 19 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 19 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 19 times.
✗ Branch 47 not taken.
✓ Branch 48 taken 19 times.
✓ Branch 49 taken 38 times.
✓ Branch 50 taken 19 times.
79 [ trgt_bound(1,idim), trgt_bound(1,idim) + padding(i) - 1 ]
2468 end select
2469
1/2
✓ Branch 0 taken 82 times.
✗ Branch 1 not taken.
110 do j = 1, 2
2470 select rank(data_padded)
2471 rank(1)
2472 data_padded( &
2473 tmp_dest_bound(1,1):tmp_dest_bound(2,1) &
2474 ) = data_padded( &
2475 tmp_trgt_bound(1,1):tmp_trgt_bound(2,1) &
2476
30/56
✗ Branch 0 not taken.
✓ Branch 1 taken 14 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 14 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 14 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 14 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 14 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 14 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 14 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 14 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 14 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 14 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 14 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 14 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 14 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 14 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 14 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 14 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 14 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 14 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 14 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 14 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 14 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 14 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 14 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 14 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 14 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 14 times.
✓ Branch 53 taken 14 times.
✓ Branch 54 taken 14 times.
✓ Branch 55 taken 14 times.
✓ Branch 56 taken 14 times.
42 )
2477 rank(2)
2478 data_padded( &
2479 tmp_dest_bound(1,1):tmp_dest_bound(2,1), &
2480 tmp_dest_bound(1,2):tmp_dest_bound(2,2) &
2481 ) = data_padded( &
2482 tmp_trgt_bound(1,1):tmp_trgt_bound(2,1), &
2483 tmp_trgt_bound(1,2):tmp_trgt_bound(2,2) &
2484
59/110
✗ Branch 0 not taken.
✓ Branch 1 taken 20 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 20 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 20 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 20 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 20 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 20 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 20 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 20 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 20 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 20 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 20 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 20 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 20 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 20 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 20 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 20 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 20 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 20 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 20 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 20 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 20 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 20 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 20 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 20 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 20 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 20 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 20 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 20 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 20 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 20 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 20 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 20 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 20 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 20 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 20 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 20 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 20 times.
✗ Branch 74 not taken.
✓ Branch 75 taken 20 times.
✗ Branch 76 not taken.
✓ Branch 77 taken 20 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 20 times.
✗ Branch 80 not taken.
✓ Branch 81 taken 20 times.
✗ Branch 82 not taken.
✓ Branch 83 taken 20 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 20 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 20 times.
✗ Branch 88 not taken.
✓ Branch 89 taken 20 times.
✗ Branch 91 not taken.
✓ Branch 92 taken 20 times.
✗ Branch 93 not taken.
✓ Branch 94 taken 20 times.
✗ Branch 95 not taken.
✓ Branch 96 taken 20 times.
✗ Branch 97 not taken.
✓ Branch 98 taken 20 times.
✗ Branch 99 not taken.
✓ Branch 100 taken 20 times.
✓ Branch 102 taken 20 times.
✗ Branch 103 not taken.
✓ Branch 104 taken 26 times.
✓ Branch 105 taken 20 times.
✓ Branch 106 taken 32 times.
✓ Branch 107 taken 26 times.
✓ Branch 108 taken 26 times.
✓ Branch 109 taken 20 times.
✓ Branch 110 taken 32 times.
✓ Branch 111 taken 26 times.
136 )
2485 rank(3)
2486 data_padded( &
2487 tmp_dest_bound(1,1):tmp_dest_bound(2,1), &
2488 tmp_dest_bound(1,2):tmp_dest_bound(2,2), &
2489 tmp_dest_bound(1,3):tmp_dest_bound(2,3) &
2490 ) = data_padded( &
2491 tmp_trgt_bound(1,1):tmp_trgt_bound(2,1), &
2492 tmp_trgt_bound(1,2):tmp_trgt_bound(2,2), &
2493 tmp_trgt_bound(1,3):tmp_trgt_bound(2,3) &
2494
88/164
✗ Branch 0 not taken.
✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 8 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 8 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 8 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 8 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 8 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 8 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 8 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 8 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 8 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 8 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 8 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 8 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 8 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 8 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 8 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 8 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 8 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 8 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 8 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 8 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 8 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 8 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 8 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 8 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 8 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 8 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 8 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 8 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 8 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 8 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 8 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 8 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 8 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 8 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 8 times.
✗ Branch 74 not taken.
✓ Branch 75 taken 8 times.
✗ Branch 76 not taken.
✓ Branch 77 taken 8 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 8 times.
✗ Branch 80 not taken.
✓ Branch 81 taken 8 times.
✗ Branch 82 not taken.
✓ Branch 83 taken 8 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 8 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 8 times.
✗ Branch 88 not taken.
✓ Branch 89 taken 8 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 8 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 8 times.
✗ Branch 94 not taken.
✓ Branch 95 taken 8 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 8 times.
✗ Branch 98 not taken.
✓ Branch 99 taken 8 times.
✗ Branch 100 not taken.
✓ Branch 101 taken 8 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 8 times.
✗ Branch 104 not taken.
✓ Branch 105 taken 8 times.
✗ Branch 106 not taken.
✓ Branch 107 taken 8 times.
✗ Branch 108 not taken.
✓ Branch 109 taken 8 times.
✗ Branch 110 not taken.
✓ Branch 111 taken 8 times.
✗ Branch 112 not taken.
✓ Branch 113 taken 8 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 8 times.
✗ Branch 116 not taken.
✓ Branch 117 taken 8 times.
✗ Branch 118 not taken.
✓ Branch 119 taken 8 times.
✗ Branch 120 not taken.
✓ Branch 121 taken 8 times.
✗ Branch 122 not taken.
✓ Branch 123 taken 8 times.
✗ Branch 124 not taken.
✓ Branch 125 taken 8 times.
✗ Branch 126 not taken.
✓ Branch 127 taken 8 times.
✗ Branch 128 not taken.
✓ Branch 129 taken 8 times.
✗ Branch 131 not taken.
✓ Branch 132 taken 8 times.
✗ Branch 133 not taken.
✓ Branch 134 taken 8 times.
✗ Branch 135 not taken.
✓ Branch 136 taken 8 times.
✗ Branch 137 not taken.
✓ Branch 138 taken 8 times.
✗ Branch 139 not taken.
✓ Branch 140 taken 8 times.
✗ Branch 142 not taken.
✓ Branch 143 taken 8 times.
✗ Branch 144 not taken.
✓ Branch 145 taken 8 times.
✗ Branch 146 not taken.
✓ Branch 147 taken 8 times.
✗ Branch 148 not taken.
✓ Branch 149 taken 8 times.
✗ Branch 150 not taken.
✓ Branch 151 taken 8 times.
✓ Branch 153 taken 8 times.
✗ Branch 154 not taken.
✓ Branch 155 taken 8 times.
✓ Branch 156 taken 8 times.
✓ Branch 157 taken 8 times.
✓ Branch 158 taken 8 times.
✓ Branch 159 taken 8 times.
✓ Branch 160 taken 8 times.
✓ Branch 161 taken 8 times.
✓ Branch 162 taken 8 times.
✓ Branch 163 taken 8 times.
✓ Branch 164 taken 8 times.
✓ Branch 165 taken 8 times.
✓ Branch 166 taken 8 times.
56 )
2495 rank(4)
2496 data_padded( &
2497 tmp_dest_bound(1,1):tmp_dest_bound(2,1), &
2498 tmp_dest_bound(1,2):tmp_dest_bound(2,2), &
2499 tmp_dest_bound(1,3):tmp_dest_bound(2,3), &
2500 tmp_dest_bound(1,4):tmp_dest_bound(2,4) &
2501 ) = data_padded( &
2502 tmp_trgt_bound(1,1):tmp_trgt_bound(2,1), &
2503 tmp_trgt_bound(1,2):tmp_trgt_bound(2,2), &
2504 tmp_trgt_bound(1,3):tmp_trgt_bound(2,3), &
2505 tmp_trgt_bound(1,4):tmp_trgt_bound(2,4) &
2506
117/218
✗ Branch 0 not taken.
✓ Branch 1 taken 16 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 16 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 16 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 16 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 16 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 16 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 16 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 16 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 16 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 16 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 16 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 16 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 16 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 16 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 16 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 16 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 16 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 16 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 16 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 16 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 16 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 16 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 16 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 16 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 16 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 16 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 16 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 16 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 16 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 16 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 16 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 16 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 16 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 16 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 16 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 16 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 16 times.
✗ Branch 74 not taken.
✓ Branch 75 taken 16 times.
✗ Branch 76 not taken.
✓ Branch 77 taken 16 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 16 times.
✗ Branch 80 not taken.
✓ Branch 81 taken 16 times.
✗ Branch 82 not taken.
✓ Branch 83 taken 16 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 16 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 16 times.
✗ Branch 88 not taken.
✓ Branch 89 taken 16 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 16 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 16 times.
✗ Branch 94 not taken.
✓ Branch 95 taken 16 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 16 times.
✗ Branch 98 not taken.
✓ Branch 99 taken 16 times.
✗ Branch 100 not taken.
✓ Branch 101 taken 16 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 16 times.
✗ Branch 104 not taken.
✓ Branch 105 taken 16 times.
✗ Branch 106 not taken.
✓ Branch 107 taken 16 times.
✗ Branch 108 not taken.
✓ Branch 109 taken 16 times.
✗ Branch 110 not taken.
✓ Branch 111 taken 16 times.
✗ Branch 112 not taken.
✓ Branch 113 taken 16 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 16 times.
✗ Branch 116 not taken.
✓ Branch 117 taken 16 times.
✗ Branch 118 not taken.
✓ Branch 119 taken 16 times.
✗ Branch 120 not taken.
✓ Branch 121 taken 16 times.
✗ Branch 122 not taken.
✓ Branch 123 taken 16 times.
✗ Branch 124 not taken.
✓ Branch 125 taken 16 times.
✗ Branch 126 not taken.
✓ Branch 127 taken 16 times.
✗ Branch 128 not taken.
✓ Branch 129 taken 16 times.
✗ Branch 130 not taken.
✓ Branch 131 taken 16 times.
✗ Branch 132 not taken.
✓ Branch 133 taken 16 times.
✗ Branch 134 not taken.
✓ Branch 135 taken 16 times.
✗ Branch 136 not taken.
✓ Branch 137 taken 16 times.
✗ Branch 138 not taken.
✓ Branch 139 taken 16 times.
✗ Branch 140 not taken.
✓ Branch 141 taken 16 times.
✗ Branch 142 not taken.
✓ Branch 143 taken 16 times.
✗ Branch 144 not taken.
✓ Branch 145 taken 16 times.
✗ Branch 146 not taken.
✓ Branch 147 taken 16 times.
✗ Branch 148 not taken.
✓ Branch 149 taken 16 times.
✗ Branch 150 not taken.
✓ Branch 151 taken 16 times.
✗ Branch 152 not taken.
✓ Branch 153 taken 16 times.
✗ Branch 154 not taken.
✓ Branch 155 taken 16 times.
✗ Branch 156 not taken.
✓ Branch 157 taken 16 times.
✗ Branch 158 not taken.
✓ Branch 159 taken 16 times.
✗ Branch 160 not taken.
✓ Branch 161 taken 16 times.
✗ Branch 162 not taken.
✓ Branch 163 taken 16 times.
✗ Branch 164 not taken.
✓ Branch 165 taken 16 times.
✗ Branch 166 not taken.
✓ Branch 167 taken 16 times.
✗ Branch 168 not taken.
✓ Branch 169 taken 16 times.
✗ Branch 171 not taken.
✓ Branch 172 taken 16 times.
✗ Branch 173 not taken.
✓ Branch 174 taken 16 times.
✗ Branch 175 not taken.
✓ Branch 176 taken 16 times.
✗ Branch 177 not taken.
✓ Branch 178 taken 16 times.
✗ Branch 179 not taken.
✓ Branch 180 taken 16 times.
✗ Branch 182 not taken.
✓ Branch 183 taken 16 times.
✗ Branch 184 not taken.
✓ Branch 185 taken 16 times.
✗ Branch 186 not taken.
✓ Branch 187 taken 16 times.
✗ Branch 188 not taken.
✓ Branch 189 taken 16 times.
✗ Branch 190 not taken.
✓ Branch 191 taken 16 times.
✗ Branch 193 not taken.
✓ Branch 194 taken 16 times.
✗ Branch 195 not taken.
✓ Branch 196 taken 16 times.
✗ Branch 197 not taken.
✓ Branch 198 taken 16 times.
✗ Branch 199 not taken.
✓ Branch 200 taken 16 times.
✗ Branch 201 not taken.
✓ Branch 202 taken 16 times.
✓ Branch 204 taken 16 times.
✗ Branch 205 not taken.
✓ Branch 206 taken 16 times.
✓ Branch 207 taken 16 times.
✓ Branch 208 taken 16 times.
✓ Branch 209 taken 16 times.
✓ Branch 210 taken 88 times.
✓ Branch 211 taken 16 times.
✓ Branch 212 taken 160 times.
✓ Branch 213 taken 88 times.
✓ Branch 214 taken 16 times.
✓ Branch 215 taken 16 times.
✓ Branch 216 taken 16 times.
✓ Branch 217 taken 16 times.
✓ Branch 218 taken 88 times.
✓ Branch 219 taken 16 times.
✓ Branch 220 taken 160 times.
✓ Branch 221 taken 88 times.
576 )
2507 rank(5)
2508 data_padded( &
2509 tmp_dest_bound(1,1):tmp_dest_bound(2,1), &
2510 tmp_dest_bound(1,2):tmp_dest_bound(2,2), &
2511 tmp_dest_bound(1,3):tmp_dest_bound(2,3), &
2512 tmp_dest_bound(1,4):tmp_dest_bound(2,4), &
2513 tmp_dest_bound(1,5):tmp_dest_bound(2,5) &
2514 ) = data_padded( &
2515 tmp_trgt_bound(1,1):tmp_trgt_bound(2,1), &
2516 tmp_trgt_bound(1,2):tmp_trgt_bound(2,2), &
2517 tmp_trgt_bound(1,3):tmp_trgt_bound(2,3), &
2518 tmp_trgt_bound(1,4):tmp_trgt_bound(2,4), &
2519 tmp_trgt_bound(1,5):tmp_trgt_bound(2,5) &
2520
146/272
✗ Branch 0 not taken.
✓ Branch 1 taken 24 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 24 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 24 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 24 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 24 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 24 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 24 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 24 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 24 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 24 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 24 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 24 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 24 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 24 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 24 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 24 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 24 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 24 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 24 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 24 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 24 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 24 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 24 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 24 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 24 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 24 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 24 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 24 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 24 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 24 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 24 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 24 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 24 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 24 times.
✗ Branch 68 not taken.
✓ Branch 69 taken 24 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 24 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 24 times.
✗ Branch 74 not taken.
✓ Branch 75 taken 24 times.
✗ Branch 76 not taken.
✓ Branch 77 taken 24 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 24 times.
✗ Branch 80 not taken.
✓ Branch 81 taken 24 times.
✗ Branch 82 not taken.
✓ Branch 83 taken 24 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 24 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 24 times.
✗ Branch 88 not taken.
✓ Branch 89 taken 24 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 24 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 24 times.
✗ Branch 94 not taken.
✓ Branch 95 taken 24 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 24 times.
✗ Branch 98 not taken.
✓ Branch 99 taken 24 times.
✗ Branch 100 not taken.
✓ Branch 101 taken 24 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 24 times.
✗ Branch 104 not taken.
✓ Branch 105 taken 24 times.
✗ Branch 106 not taken.
✓ Branch 107 taken 24 times.
✗ Branch 108 not taken.
✓ Branch 109 taken 24 times.
✗ Branch 110 not taken.
✓ Branch 111 taken 24 times.
✗ Branch 112 not taken.
✓ Branch 113 taken 24 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 24 times.
✗ Branch 116 not taken.
✓ Branch 117 taken 24 times.
✗ Branch 118 not taken.
✓ Branch 119 taken 24 times.
✗ Branch 120 not taken.
✓ Branch 121 taken 24 times.
✗ Branch 122 not taken.
✓ Branch 123 taken 24 times.
✗ Branch 124 not taken.
✓ Branch 125 taken 24 times.
✗ Branch 126 not taken.
✓ Branch 127 taken 24 times.
✗ Branch 128 not taken.
✓ Branch 129 taken 24 times.
✗ Branch 130 not taken.
✓ Branch 131 taken 24 times.
✗ Branch 132 not taken.
✓ Branch 133 taken 24 times.
✗ Branch 134 not taken.
✓ Branch 135 taken 24 times.
✗ Branch 136 not taken.
✓ Branch 137 taken 24 times.
✗ Branch 138 not taken.
✓ Branch 139 taken 24 times.
✗ Branch 140 not taken.
✓ Branch 141 taken 24 times.
✗ Branch 142 not taken.
✓ Branch 143 taken 24 times.
✗ Branch 144 not taken.
✓ Branch 145 taken 24 times.
✗ Branch 146 not taken.
✓ Branch 147 taken 24 times.
✗ Branch 148 not taken.
✓ Branch 149 taken 24 times.
✗ Branch 150 not taken.
✓ Branch 151 taken 24 times.
✗ Branch 152 not taken.
✓ Branch 153 taken 24 times.
✗ Branch 154 not taken.
✓ Branch 155 taken 24 times.
✗ Branch 156 not taken.
✓ Branch 157 taken 24 times.
✗ Branch 158 not taken.
✓ Branch 159 taken 24 times.
✗ Branch 160 not taken.
✓ Branch 161 taken 24 times.
✗ Branch 162 not taken.
✓ Branch 163 taken 24 times.
✗ Branch 164 not taken.
✓ Branch 165 taken 24 times.
✗ Branch 166 not taken.
✓ Branch 167 taken 24 times.
✗ Branch 168 not taken.
✓ Branch 169 taken 24 times.
✗ Branch 170 not taken.
✓ Branch 171 taken 24 times.
✗ Branch 172 not taken.
✓ Branch 173 taken 24 times.
✗ Branch 174 not taken.
✓ Branch 175 taken 24 times.
✗ Branch 176 not taken.
✓ Branch 177 taken 24 times.
✗ Branch 178 not taken.
✓ Branch 179 taken 24 times.
✗ Branch 180 not taken.
✓ Branch 181 taken 24 times.
✗ Branch 182 not taken.
✓ Branch 183 taken 24 times.
✗ Branch 184 not taken.
✓ Branch 185 taken 24 times.
✗ Branch 186 not taken.
✓ Branch 187 taken 24 times.
✗ Branch 188 not taken.
✓ Branch 189 taken 24 times.
✗ Branch 190 not taken.
✓ Branch 191 taken 24 times.
✗ Branch 192 not taken.
✓ Branch 193 taken 24 times.
✗ Branch 194 not taken.
✓ Branch 195 taken 24 times.
✗ Branch 196 not taken.
✓ Branch 197 taken 24 times.
✗ Branch 198 not taken.
✓ Branch 199 taken 24 times.
✗ Branch 200 not taken.
✓ Branch 201 taken 24 times.
✗ Branch 202 not taken.
✓ Branch 203 taken 24 times.
✗ Branch 204 not taken.
✓ Branch 205 taken 24 times.
✗ Branch 206 not taken.
✓ Branch 207 taken 24 times.
✗ Branch 208 not taken.
✓ Branch 209 taken 24 times.
✗ Branch 211 not taken.
✓ Branch 212 taken 24 times.
✗ Branch 213 not taken.
✓ Branch 214 taken 24 times.
✗ Branch 215 not taken.
✓ Branch 216 taken 24 times.
✗ Branch 217 not taken.
✓ Branch 218 taken 24 times.
✗ Branch 219 not taken.
✓ Branch 220 taken 24 times.
✗ Branch 222 not taken.
✓ Branch 223 taken 24 times.
✗ Branch 224 not taken.
✓ Branch 225 taken 24 times.
✗ Branch 226 not taken.
✓ Branch 227 taken 24 times.
✗ Branch 228 not taken.
✓ Branch 229 taken 24 times.
✗ Branch 230 not taken.
✓ Branch 231 taken 24 times.
✗ Branch 233 not taken.
✓ Branch 234 taken 24 times.
✗ Branch 235 not taken.
✓ Branch 236 taken 24 times.
✗ Branch 237 not taken.
✓ Branch 238 taken 24 times.
✗ Branch 239 not taken.
✓ Branch 240 taken 24 times.
✗ Branch 241 not taken.
✓ Branch 242 taken 24 times.
✗ Branch 244 not taken.
✓ Branch 245 taken 24 times.
✗ Branch 246 not taken.
✓ Branch 247 taken 24 times.
✗ Branch 248 not taken.
✓ Branch 249 taken 24 times.
✗ Branch 250 not taken.
✓ Branch 251 taken 24 times.
✗ Branch 252 not taken.
✓ Branch 253 taken 24 times.
✓ Branch 255 taken 24 times.
✗ Branch 256 not taken.
✓ Branch 257 taken 24 times.
✓ Branch 258 taken 24 times.
✓ Branch 259 taken 24 times.
✓ Branch 260 taken 24 times.
✓ Branch 261 taken 168 times.
✓ Branch 262 taken 24 times.
✓ Branch 263 taken 960 times.
✓ Branch 264 taken 168 times.
✓ Branch 265 taken 2400 times.
✓ Branch 266 taken 960 times.
✓ Branch 267 taken 24 times.
✓ Branch 268 taken 24 times.
✓ Branch 269 taken 24 times.
✓ Branch 270 taken 24 times.
✓ Branch 271 taken 168 times.
✓ Branch 272 taken 24 times.
✓ Branch 273 taken 960 times.
✓ Branch 274 taken 168 times.
✓ Branch 275 taken 2400 times.
✓ Branch 276 taken 960 times.
7176 )
2521 end select
2522
2523
2/2
✓ Branch 0 taken 41 times.
✓ Branch 1 taken 41 times.
82 if(j.eq.2) exit
2524
9/16
✗ Branch 0 not taken.
✓ Branch 1 taken 41 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 41 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 41 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 41 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 41 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 41 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 41 times.
✓ Branch 21 taken 82 times.
✓ Branch 22 taken 41 times.
123 bound_store(:) = tmp_dest_bound(:,idim)
2525 select case(padding_method)
2526 case ("circular")
2527
17/32
✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 12 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 12 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 12 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 12 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 12 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 12 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 12 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 12 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 12 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 12 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 12 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 12 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 12 times.
✓ Branch 45 taken 24 times.
✓ Branch 46 taken 12 times.
36 tmp_dest_bound(:,idim) = tmp_trgt_bound(:,idim) + padding(i)
2528
11/20
✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 12 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 12 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 12 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 12 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 12 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 12 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 12 times.
✓ Branch 27 taken 24 times.
✓ Branch 28 taken 12 times.
36 tmp_trgt_bound(:,idim) = bound_store(:) + padding(i)
2529 case("reflection")
2530 tmp_dest_bound(:,idim) = &
2531
16/30
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 10 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 10 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 10 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 10 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 10 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 10 times.
✓ Branch 23 taken 10 times.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 10 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 10 times.
✗ Branch 31 not taken.
✓ Branch 32 taken 10 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 10 times.
✓ Branch 35 taken 20 times.
✓ Branch 36 taken 10 times.
30 tmp_trgt_bound(:,idim) + size(data,idim) - 1
2532
10/18
✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 10 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 10 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 10 times.
✓ Branch 15 taken 10 times.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 18 taken 10 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 10 times.
✓ Branch 23 taken 20 times.
✓ Branch 24 taken 10 times.
30 tmp_trgt_bound(:,idim) = bound_store(:) + size(data,idim) - 1
2533 case("replication")
2534
16/30
✗ Branch 0 not taken.
✓ Branch 1 taken 19 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 19 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 19 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 19 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 19 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 19 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 19 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 19 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 19 times.
✓ Branch 27 taken 19 times.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✓ Branch 30 taken 19 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 19 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 19 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 19 times.
✓ Branch 41 taken 38 times.
✓ Branch 42 taken 19 times.
57 tmp_dest_bound(:,idim) = tmp_trgt_bound(:,idim) + size(data,idim)
2535
13/22
✓ Branch 0 taken 12 times.
✓ Branch 1 taken 10 times.
✓ Branch 2 taken 19 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 19 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 19 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 19 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 19 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 19 times.
✓ Branch 19 taken 19 times.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 22 taken 19 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 19 times.
✓ Branch 27 taken 38 times.
✓ Branch 28 taken 19 times.
98 tmp_trgt_bound(:,idim) = bound_store(:) + size(data,idim)
2536 end select
2537 end do
2538 end do
2539
2540
9/12
✓ Branch 0 taken 60 times.
✓ Branch 1 taken 9 times.
✓ Branch 2 taken 69 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 28 times.
✓ Branch 5 taken 41 times.
✓ Branch 6 taken 28 times.
✓ Branch 7 taken 41 times.
✓ Branch 8 taken 69 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 69 times.
✗ Branch 11 not taken.
138 end subroutine pad_data
2541 !###############################################################################
2542
2543
59/82
✓ Branch 0 taken 13 times.
✓ Branch 1 taken 56 times.
✓ Branch 2 taken 21 times.
✓ Branch 3 taken 35 times.
✓ Branch 4 taken 12 times.
✓ Branch 5 taken 23 times.
✓ Branch 6 taken 12 times.
✓ Branch 7 taken 11 times.
✓ Branch 8 taken 11 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 69 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 69 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 13 times.
✓ Branch 15 taken 56 times.
✓ Branch 16 taken 21 times.
✓ Branch 17 taken 35 times.
✓ Branch 18 taken 12 times.
✓ Branch 19 taken 23 times.
✓ Branch 20 taken 12 times.
✓ Branch 21 taken 11 times.
✓ Branch 22 taken 11 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 4 times.
✓ Branch 25 taken 65 times.
✓ Branch 26 taken 4 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 65 times.
✓ Branch 29 taken 4 times.
✓ Branch 30 taken 4 times.
✗ Branch 31 not taken.
✓ Branch 32 taken 13 times.
✓ Branch 33 taken 56 times.
✓ Branch 34 taken 13 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 13 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 13 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 21 times.
✓ Branch 41 taken 35 times.
✓ Branch 42 taken 21 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 21 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 21 times.
✗ Branch 47 not taken.
✓ Branch 48 taken 12 times.
✓ Branch 49 taken 23 times.
✓ Branch 50 taken 12 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 12 times.
✗ Branch 53 not taken.
✓ Branch 54 taken 12 times.
✗ Branch 55 not taken.
✓ Branch 56 taken 12 times.
✓ Branch 57 taken 11 times.
✓ Branch 58 taken 12 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 12 times.
✗ Branch 61 not taken.
✓ Branch 62 taken 12 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 11 times.
✗ Branch 65 not taken.
✓ Branch 66 taken 11 times.
✗ Branch 67 not taken.
✓ Branch 68 taken 11 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 11 times.
✗ Branch 71 not taken.
✓ Branch 72 taken 14 times.
✓ Branch 73 taken 68 times.
✓ Branch 74 taken 20 times.
✓ Branch 75 taken 48 times.
✓ Branch 76 taken 8 times.
✓ Branch 77 taken 40 times.
✓ Branch 78 taken 16 times.
✓ Branch 79 taken 24 times.
✓ Branch 80 taken 24 times.
✗ Branch 81 not taken.
427 end module athena__misc_ml
2544