fortran について書きます。

【ニュース】Intel OneAPI 2024.0.0 出る!

Intel Fortran 2024.0.0

Fortran 2023 機能の実装が始まりました。

llvm 版 ifx が正式版となり、VS 統合時のデフォルトコンパイラになりました。 従来の ifort は廃止のカウントダウンが始まりましたが、まだ文法機能拡張は続いています。 来年予定の次期 Intel Fortran 2025 から ifort は提供されなくなるようです。

今回より Intel Mac 用のインストーラは提供されなくなりました。

Linux 版を apt で install するときは、初期設定からやらないとダメなようでした。 Download the Intel® HPC Toolkit

Intel® Fortran Compiler 2024.0.0

  • Intel® Fortran Compiler significantly improves productivity by adding popular LLVM sanitizers allowing developers to catch Fortran, OpenMP*, OpenMP offload address, memory leak, uninitialized memory, thread data races, deadlocks and undefined behavior on CPU.

  • Intel® Fortran Compiler adds initial Fortran 2023 standards support and enhances OpenMP 5.0, 5.1,and 5.2 and implements initial 6.0 standards compliance.

  • Updated to include recent versions of 3rd party components, which include functional and security updates.

Intel® Fortran Compiler Classic 2021.11.0

  • Corrections to reported problems.

  • The Intel® Fortran Compiler Classic has been updated to include recent versions of 3rd party components, which include functional and security updates.

Intel Fortran の新機能 

New in Intel® Fortran Compiler and Intel® Fortran Compiler Classic, 2024.0.0 Release

ifx 2024.0.0 and ifort 2021.11.0

Initial Fortran 2023 Features

  • The REDUCE locality spec on DO CONCURRENT
  • BOZ constants on RHS of INTEGER and REAL assignment statements
  • BOZ constants as INTEGER and REAL values in PARAMETER statements
  • BOZ constants as INTEGER or REAL as array constructor values
  • BOZ constants as INTEGER values in ENUMERATION statements
  • Intrinsic trigonometric functions returning degrees ACOSD(X), ASIND(X), ATAND(X), ATAN2D(Y, X), COSD(X), SIND(X), and TAND(X)

New OpenMP Features

  • In ORDERED directives, clause DOACROSS replaces the DEPEND clause.
  • OpenMP 5.2 classifies some directives as PURE. Only PURE directives are allowed in Fortran PURE procedures. The compiler will issue a message if it detects a non-PURE directive in a PURE procedure.

ifx 2024.0.0

New OpenMP Features

  • The MATCH clause is now permitted in the DECLARE VARIANT directive. (OpenMP 5.0)
  • The DESTROY clause of the DEPOBJ construct now requires a destroy-var modifier (OpenMP 5.1)
  • The STRICT modifier can now be specified for the GRAINSIZE and NUM_TASK clauses of the TASKLOOP directive. (OpenMP 5.1)
  • The optional ORDER clause modifiers REPRODUCIBLE and UNCONSTRAINED can be specified for the CONCURRENT argument to specify ordering of iterations of a loop. (OpenMP 5.2)
  • The ORDER clause may now be specified on the DISTRIBUTE construct. (OpenMP 5.1)
  • The GROUPPRIVATE directive specifies variables to be shared by the threads of a context group, but each context group has a private copy. (OpenMP 6.0)
  • You can now specify a DEVICE_TYPE clause on the DECLARE TARGET directive. DEVICE_TYPE (HOST) compiles the body of the construct for host device only,DEVICE_TYPE(NOHOST) compiles the body for the target device, and DEVICE_TYPE(ANY) compiles the body for both host and target. (OpenMP 5.0).