Intel oneAPIで作る無償のFortran開発環境

# Intel oneAPIとは？

Intel oneAPIは、多様なデバイスやライブラリ環境の中で、高度なプログラムをシンプルに記述することを目的としてIntel社から提供されている統合開発環境です。詳しくは、[XLSOFTさんのホームページ](https://www.xlsoft.com/jp/products/intel/oneapi/index.html)に記述されていますので、気になる方は参照ください。

ここでは、Intel oneAPIを利用してfortran開発環境を作る手順を紹介したいと思います。Intel oneAPIは[XLSOFTさんのホームページ](https://www.xlsoft.com/jp/products/intel/purchase/prices.html)で有償販売されていますが、ここでは無償で開発環境を作る手順を紹介します。自己責任でお願いします。なぜ、有償と無償があるのが、その差異は？などについては、XLSOFTさんにご確認お願いします。私は知りません。。。


# 環境構築手順
ここではOSがWindows10の場合の環境構築手順を紹介します。MacやLinuxを利用している方は参考程度に見ていただければと思います。

# ０. 今回インストールするもの
Intel oneAPI対応Fortran開発環境は以下３つのソフトウェアをインストールすることで構築することができます。

- 1. Visual Studio2019をインストール
- 2. Intel oneAPI Base Toolkitをインストール
- 3. Intel oneAPI HPC Toolkitをインストール

Intel fortranコンパイラは、'HPC Toolkit'の中に入っています。'HPC Toolkit'をインストールするためには、'Intel oneAPI BaseToolkit'が必要となります。'HPC Toolkit'が、'Intel oneAPI BaseToolkit'のアドオンになっています。'Intel oneAPI Base Toolkit'は、'Visual Studio 2019'の機能を利用して構成することを基本としています。ので、'Visual Studio 2019'をインストールする必要があります。

というこで上記の環境手順となります。以降一つずつ手順を追って紹介します。

# １．Visual Studio 2019のインストール

2022年6月29日現在、Visual Studioの最新版は2022らしいのですが、なんとVisual Studio 2022ではIntel fortranがうまく動作しないそうです。回避方法が以下の記事に出ていましたので参考にしてください。

[VS 2022 Version 17.2 and Intel Fortran Integration](https://www.intel.com/content/www/us/en/developer/articles/troubleshooting/vs2022-version-17-2-and-intel-fortran-integration.html)

**(1)インストーラーの取得**

下記ページの「コミュニティ」の「無料ダウンロード」をクリックしてダウンロードしてください。"vs_community__855608704.1618790787.exe"がダウンロードされます。

https://visualstudio.microsoft.com/ja/downloads/



**(2)インストール**
 
"vs_community__855608704.1618790787.exe"をダブルクリックするとインストールが始まります。基本的にはインストーラーの指示に従いデフォルト設定でインストールしてください。

１点、「ワークロード」のところで、 **「デスクトップとモバイル＞C++によるデスクトップ開発」** にチェックを入れてインストールしてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/74a4ab0e-c534-9bc7-a151-6b028b6cb494.png)


インストールが完了すればOKです。

# ２．Intel oneAPI Base Toolkitのインストール

**(1)インストーラの取得**

下記ページにアクセスし、"Download the Toolkit"の下にある"GetItNow"をクリックしてください。

https://software.intel.com/content/www/us/en/develop/tools/oneapi/base-toolkit.html#gs.zzoaic


OSや配布タイプ、インストーラータイプを選択します。私は以下の選択しました。

* Operating System: Windows
* Distribution: Web & Local
* Installer Type: Online

選択すると画面右側下のほうにある"Download"ボタンがアクティブになりますので、クリックしてダウンロードしてください。"w_BaseKit_p_2021.2.0.2871.exe"がダウンロードされます。


**(2)インストール**

"w_BaseKit_p_2021.2.0.2871.exe"をダブルクリックするとインストールが始まります。

ライセンスに同意し、"Recommended Installation"の"Continue"をクリックしてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/edfd4866-0f96-7bd8-a8f4-2469a7d7cedb.png)


Microsoft Visual Studio* 2019にチェックを入れ、"→"をクリックしてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/3dfb912a-650e-2b22-5ff0-0154bdce8287.png)

"Install"をクリックするとインストールが開始されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/aaf94943-bd03-b88f-7ce8-62825f33c8af.png)

完了すると以下のような画面が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/90af2127-6ab6-e1b0-a9be-374f5d9d16bc.png)


# ３．Intel oneAPI HPC Toolkitのインストール


**(1)インストーラの取得**

下記ページにアクセスし、"Download the Toolkit"の下にある"GetItNow"をクリックしてください。

https://software.intel.com/content/www/us/en/develop/tools/oneapi/hpc-toolkit/download.html


OSや配布タイプ、インストーラータイプを選択します。私は以下の選択しました。

* Operating System: Windows
* Distribution: Web & Local
* Installer Type: Online

選択すると画面右側下のほうにある"Download"ボタンがアクティブになりますので、クリックしてダウンロードしてください。"w_HPCKit_p_2021.2.0.2901.exe"がダウンロードされます。


**(2)インストール**

"w_HPCKit_p_2021.2.0.2901.exe"をダブルクリックするとインストールが始まります。
以降は、"Intel oneAPI Base Toolkit"と同様にインストールしてください。


# 動作確認

インストールしたものがうまく動作するか確認します。ここでは簡単なfortranプログラムを作成し試してみます。

- 1. Visual Studio 2019を起動する
起動時に表示される画面。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/373640be-a8ef-1bf7-baa4-70682376b657.png)

- 2. 新しいプロジェクトを作成
　"Empty Project, Fortran, Windows, コンソール"を選択し、「次へ」をクリック
- 3. プロジェクト名:"test"として「作成」をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/9974fdce-8a7d-4b68-aeab-7f2df6cf31d5.png)

- 4. 「ソースファイル」を右クリックし、「追加＞新しい項目」


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/5c5d52be-3346-5008-bfdc-7d541ef5602f.png)

- 5. Fortran Free-form File(.f90)を選択し、名前："test.f90"として「追加」をクリック。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/1805c7cc-a317-b50a-ea15-34b9df339ede.png)
 
- 6.以下のようなコードを記述します。下をコピペして貼り付けてください。


```fortran:qiita
    program test
    
    implicit none
    real(8), parameter :: hour_sec = 3600.0d0
    
    real(8) :: t_start, t_end, t_output, dt
    integer(8) :: it_start, it_end, it_output
    real(8) :: time_s, time_h
    integer(8) :: it
    
    write(*,"(a)") "MSG:program starts."
    
    !--------------------------------------------------
    ! set default and input parameters
    !--------------------------------------------------
    t_start = 0.0d0; t_end = 24*hour_sec; t_output = hour_sec
    dt = 0.1d0
    
    !--------------------------------------------------
    ! set calculation parameters
    !--------------------------------------------------
    it_start = int(t_start)
    it_end = int((t_end - t_start) / dt) + 1
    it_output = int(t_output / dt)
    
    !--------------------------------------------------
    ! main loop
    !--------------------------------------------------
    write(*,"(a)") "MSG:time loop starts."
    do it = it_start, it_end
        time_s = it * dt
        time_h = time_s / hour_sec    
        
        ! output
        if( mod(it, it_output) == 0 )then
            write(*,"(a7, f15.3, a7)") "time = ",  time_h, "[hour]"
            
            !call output
            
        end if
        
        
        !call calc_main    
    
    end do
    write(*,"(a)") "MSG:time loop ends."
    write(*,"(a)") "MSG:program ends normally."
    
    end program
```


Visual Studio 2019でプログラムを実行する方法は様々ありますが、ここでは「メニューバー＞デバッグ＞デバッグなしで開始」をクリックして実行します。プログラムがコンパイルされてから実行されます。以下のように出力時刻が表示されます。




![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/862d4549-74e4-0e4c-3a02-6591c5a43834.png)

とても簡単なプログラムですが、fortranプログラムがコンパイルされ動作することが確認できました。


# まとめ

ここではfortranプログラムの開発環境を作ることを目的にVisual Studio 2019, Intel oneAPIをインストールしてみました。インストール後、簡単なfortranプログラムを作成し動作確認を行い、問題なく動作することを確認しました。

この環境では従来、数十万円していたコンパイラや分析ツールなどがすべて無償で利用できます。サポートや保証がないとうこともありますが、実際これまでもIntelやXLSOFTさんに問合せしたことないですし、サポートを受けたこともありません。なので実質同じ状態を無償で手に入れることができたことになり、うれしい限りです。

一点、Intel Fortran Compilerに"Beta"という表記があるという点は若干不安ではあります。が、おそらく大きな差異や問題はなく、「何か問題が生じても知らないよ」という意思表示しているだけではと推測しています。なので気にせず利用してみたいと思います。

今後いろいろ試して、また情報共有させていただきます。では！