@@ -87,19 +87,19 @@ contains
87
87
#:for fj in list(range(1, fi)) + list(range(fi+1, rank+1))
88
88
do j${"_" * fj}$ = 1, size(x, ${fj}$)
89
89
#:endfor
90
- x_tmp(:) = x${select_subvector('j', rank, fi)}$
91
- call sort(x_tmp)
92
-
93
- if (mod(n, 2) == 0) then
94
- res${reduce_subvector('j', rank, fi)}$ = &
95
- #:if t1[0] == 'r'
96
- sum(x_tmp(c:c+1)) / 2._${o1}$
97
- #:else
98
- sum(real(x_tmp(c:c+1), kind=${o1}$) ) / 2._${o1}$
99
- #:endif
100
- else
101
- res${reduce_subvector('j', rank, fi)}$ = x_tmp(c)
102
- end if
90
+ x_tmp(:) = x${select_subvector('j', rank, fi)}$
91
+ call sort(x_tmp)
92
+
93
+ if (mod(n, 2) == 0) then
94
+ res${reduce_subvector('j', rank, fi)}$ = &
95
+ #:if t1[0] == 'r'
96
+ sum(x_tmp(c:c+1)) / 2._${o1}$
97
+ #:else
98
+ sum(real(x_tmp(c:c+1), kind=${o1}$) ) / 2._${o1}$
99
+ #:endif
100
+ else
101
+ res${reduce_subvector('j', rank, fi)}$ = x_tmp(c)
102
+ end if
103
103
#:for fj in range(1, rank)
104
104
end do
105
105
#:endfor
@@ -179,28 +179,28 @@ contains
179
179
#:for fj in list(range(1, fi)) + list(range(fi+1, rank+1))
180
180
do j${"_" * fj}$ = 1, size(x, ${fj}$)
181
181
#:endfor
182
- x_tmp = pack(x${select_subvector('j', rank, fi)}$, &
183
- mask${select_subvector('j', rank, fi)}$)
184
- call sort(x_tmp)
185
-
186
- n = size(x_tmp, kind=int64)
187
- c = floor( (n + 1) / 2._${o1}$, kind=int64 )
188
-
189
- if (n == 0) then
190
- res${reduce_subvector('j', rank, fi)}$ = &
191
- ieee_value(1._${o1}$, ieee_quiet_nan)
192
- else if (mod(n, 2_int64) == 0) then
193
- res${reduce_subvector('j', rank, fi)}$ = &
194
- #:if t1[0] == 'r'
195
- sum(x_tmp(c:c+1)) / 2._${o1}$
196
- #:else
197
- sum(real(x_tmp(c:c+1), kind=${o1}$)) / 2._${o1}$
198
- #:endif
199
- else if (mod(n, 2_int64) == 1) then
200
- res${reduce_subvector('j', rank, fi)}$ = x_tmp(c)
201
- end if
202
-
203
- deallocate(x_tmp)
182
+ x_tmp = pack(x${select_subvector('j', rank, fi)}$, &
183
+ mask${select_subvector('j', rank, fi)}$)
184
+ call sort(x_tmp)
185
+
186
+ n = size(x_tmp, kind=int64)
187
+ c = floor( (n + 1) / 2._${o1}$, kind=int64 )
188
+
189
+ if (n == 0) then
190
+ res${reduce_subvector('j', rank, fi)}$ = &
191
+ ieee_value(1._${o1}$, ieee_quiet_nan)
192
+ else if (mod(n, 2_int64) == 0) then
193
+ res${reduce_subvector('j', rank, fi)}$ = &
194
+ #:if t1[0] == 'r'
195
+ sum(x_tmp(c:c+1)) / 2._${o1}$
196
+ #:else
197
+ sum(real(x_tmp(c:c+1), kind=${o1}$)) / 2._${o1}$
198
+ #:endif
199
+ else if (mod(n, 2_int64) == 1) then
200
+ res${reduce_subvector('j', rank, fi)}$ = x_tmp(c)
201
+ end if
202
+
203
+ deallocate(x_tmp)
204
204
#:for fj in range(1, rank)
205
205
end do
206
206
#:endfor
0 commit comments