1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
program intrinsics_200
integer, dimension(5) :: x
logical, dimension(5) :: mask
x = [1, 2, 3, 4, 5]
mask = [.true., .false., .true., .false., .true.]
print *, median_all_mask_1_iint8_dp(x, mask)
if (abs(median_all_mask_1_iint8_dp(x, mask) - 9.0) > 1e-8) error stop
contains
function median_all_mask_1_iint8_dp(x, mask) result(res)
integer, intent(in) :: x(:)
logical, intent(in) :: mask(:)
real :: res
integer, allocatable :: x_tmp(:)
x_tmp = pack(x, mask)
res = sum(x_tmp)
end function median_all_mask_1_iint8_dp
end program
|