Fortran からのラッパーの呼び出し

同カテゴリーの次の記事

FFTW3 ラッパーの使用

この記事は、インテル® MKL リファレンス・マニュアルの項目「インテル® マス・カーネル・ライブラリーの FFTW3 インターフェイス」の一部です。

インテル® マス・カーネル・ライブラリー (インテル® MKL) は、FFTW3 ラッパーの Fortran 77 インターフェイスも提供します。すべての FFTW3 インターフェイス関数の Fortran ラッパーが用意されており、これらは FFTW3 ラッパーの C インターフェイスを基に作成されているため、対応する C インターフェイス・ラッパーと同じ機能と制限を持ちます。

Fortran ラッパーは、整数の引数にデフォルト INTEGER 型を使用します。デフォルトの INTEGER 型は、インテル® MKL の LP64 インターフェイスでは 32 ビットで、ILP64 インターフェイスでは 64 ビットです。Fortran アプリケーションにおいて、引数 planINTEGER*8 型でなければなりません。

倍精度ラッパーにはプリフィックス dfftw_ が、単精度ラッパーにはプリフィックス sfftw_ が付き、同等の機能を提供します。long double ラッパー (プリフィックスは lfftw_) はすべて空です。

Fortran FFTW3 ラッパーは、インテル® Fortran コンパイラーのデフォルトの名前修飾の規則に従います。異なる規則のコンパイラーを使用する場合や、名前修飾に影響するコンパイラー・オプション (/Qlowercase など) を使用する場合は、「独自のラッパー・ライブラリーのビルド」の説明にあるように、ソースからラッパーをビルドする必要があります。

C との互換性を保持するため、Fortran FFTW3 インターフェイスの宣言がヘッダーファイル (include/fftw/fftw3_mkl_f77.h) で提供されています。

インテル® MKL は Fortran ラッパー用の Fortran 90 モジュールを提供していませんが、Fortran ラッパーは FORTRAN 77 または Fortran 90 アプリケーションから呼び出すことができます。FFTW Fortran インターフェイスの詳細は、FFTW3 のドキュメント (www.fftw.org) を参照してください。

以下に、Fortran から FFTW3 ラッパーを呼び出す例を示します。

INTEGER*8 plan
INTEGER N
INCLUDE ‘fftw3.f’
COMPLEX*16 IN(*), OUT(*)
!…配列の初期化 IN
CALL DFFTW_PLAN_DFT_1D(PLAN, N, IN, OUT, -1, FFTW_ESTIMATE)
IF (PLAN .EQ.0) STOP
CALL DFFTW_EXECUTE
!…結果が配列 OUT に格納される

関連記事

  • FFTW3 ラッパーの使用FFTW3 ラッパーの使用 この記事は、インテル® MKL リファレンス・マニュアルの項目「インテル® マス・カーネル・ライブラリーの FFTW3 インターフェイス」の一部です。 FFTW3 ラッパーは、相互に依存する関数群とデータ構造群のセットです。ラッパーは、個々の FFTW3 関数ごとにインターフェイスを提供するように設計されていません。一部の […]
  • インテル® MKL の BLAS と DGEMM ルーチンを使用したインテル® AVX の最適化インテル® MKL の BLAS と DGEMM ルーチンを使用したインテル® AVX の最適化 この記事は、インテル® ソフトウェア・ネットワークに掲載されている「Optimize for Intel® AVX Using Intel® Math Kernel Library's Basic Linear Algebra Subprograms (BLAS) with DGEMM […]
  • 小行列演算におけるインテル® AVX の利点小行列演算におけるインテル® AVX の利点 この記事は、インテル® ソフトウェア・ネットワークに掲載されている「Benefits of Intel® AVX For Small Matrices」の日本語参考訳です。 はじめに インテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) […]
  • インテル® AVX を使用した逆離散コサイン変換の実装インテル® AVX を使用した逆離散コサイン変換の実装 この記事は、インテル® ソフトウェア・ネットワークに掲載されている「Using Intel® Advanced Vector Extensions to Implement an Inverse Discrete Cosine Transform」の日本語参考訳です。 ソースコードのダウンロード: IDCT ソースコード […]
  • 球面線形補間 (Slerp) におけるインテル® AVX の利点球面線形補間 (Slerp) におけるインテル® AVX の利点 この記事は、インテル® ソフトウェア・ネットワークに掲載されている「Benefits of Intel® Advanced Vector Extensions For Quaternion Spherical Linear Interpolation […]