0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Condaでgfortranの仮想環境の構築

Last updated at Posted at 2024-04-13

Condaを用いてgfortranとnetcdf-fortranが使える仮想環境を簡単に構築できます.aptが使えない(superuserになれない)スパコンでも有効です.ただし,東大Wisteria-Oではログインノードでのコンパイル実行はできましたが,interactive-nodeでの実行はできませんでした.そもそもinteractive-nodeではcondaコマンドが動きませんでした.
conda-forge channelを採用します.
WSL2 Ubuntu 22.04と東京大学情報基盤センターWisteria-Oで検証済みです.

conda create -n gfortran -c conda-forge cmake fortran-compiler
conda activate gfortran
conda install -c conda-forge libnetcdf netcdf-fortran

インストールされたパッケージを確認します.

conda list

特定のパッケージを確認します.

$ conda list netcdf-fortran
# packages in environment at /work/g***/******/miniconda3/envs/fabm-gfortran:
#
# Name                    Version                   Build  Channel
netcdf-fortran            4.6.1           nompi_hacb5139_103    conda-forge

ベンダーによってgfortranがインストールされている場合でも,仮想環境内では上記でインストールしたものが使えます.ログイン環境および仮想環境において,gfortran --version を実行すると,バージョンがそれぞれ異なることを確認できます.

パッケージの探し方

conda-forgeにパッケージが存在するか,探す方法です.

bashターミナルの場合

conda search -c conda-forge <パッケージ名>
# netcdfを含むパッケージを探す場合
conda search -c conda-forge netcdf

WEBの場合

ブラウザでAnaconda cloudにアクセスします.
Search Packagesの検索窓で検索します.このとき,パッケージ名だけでなく,type(channel名)とPlatformを指定すると絞り込めます.

type:conda platform:linux-64 netcdf

特定のビルドを指定してインストール

netcdf-fortranにはバージョンの違いやmpiかnompiかによって多くのビルドが存在します.特に指定しない場合は最新のもので依存関係を自動的に判断してインストールされます.
特定のビルドを指定してインストールすることもできます.バージョン4.6.1かつopenmpiのnetcdf-fortranをインストールする場合です.

conda install -c conda-forge netcdf-fortran=4.6.1=mpi_openmpi_*

あるいはmpi_openmpiだけを指定して,最新版をインストールできます.

conda install -c conda-forge netcdf-fortran=*mpi_openmpi*
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?