reduction あり〼
機能実装表。f08 までは実装済みとのこと。f18 で実装されてないとされるのは以下の表によると、
In this release of Intel oneAPI HPC Toolkit 2022.3 the ifx version number is 2022.2.0.
Status in Compiler Version 2022.2.0 REDUCE intrinsic function No
となっていますが、一応使えています。
module test_m implicit none real :: r = 60.0 contains pure real function f(a, b) result(res) real, intent(in) :: a, b res = mod(a * b, r) end function f end module test_m program F2018 use test_m implicit none print *, reduce([9999.,1213.,33333.], f) !Fortran 2018 print *, mod(mod(9999. * 1213., 60.0) * 3333., 60.0) print *, mod(product([9999.,1213.,33333.]), 60.0) stop 999, quiet = .true. !Fortran 2018 end program F2018
Build started... 1>------ Build started: Project: Console13 (IFX), Configuration: Release x64 ------ 1>Compiling with Intel® Fortran Compiler 2022.2.0 [Intel(R) 64]... 1>Console13.f90 1>Linking... 1>Embedding manifest... 1> 1>Build log written to "file://D:\Git\Console8\Console13\x64\Release\BuildLog.htm" 1>Console13 - 0 error(s), 0 warning(s) ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
51.00000 51.00000 36.00000
この他 OpenMP 5.1 系の実装が残っているようです。