🌦️

fortran-netcdfの環境構築してみた

2023/12/15に公開

はじめに

今回はfortranという普段使わない言語の環境構築をしたので備忘録として記します。
間違いもあると思いますので気軽に指摘・コメント待っています。
きっかけは友達がしている研究で使うので自分もやってみようとチャレンジすることにしました。(全然科学苦手なんですけどね…)
自身がめざす環境は

  • wsl2(Ubuntu 22.04.2 LTS (Jammy Jellyfish))
  • netCDF-FORTRAN 4.6.1
  • GNU Fortran 11.4.0
  • (HDF5とかNetCDF-Cなど)

です。
netcdf-fortranのあたりの環境設定はNetCDF公式のビルド方法を真似ていきます。この方が設定が楽らしいので…

構築

だいぶ手こずったので間違いがあるかもですがご容赦を…(是非コメントください)

手順と詳細

  1. まずfortranのコンパイラを入れていきます。自分は無料のGNUfortran(gfortran)を入れます。
sudo apt-get install gfortran
確認

バージョン確認する。

gfortran --version

もしくは新しく確認用のファイルを実行してみる。

sample.f90
program	main
    Implicit none
    write(6,*)	'Hello World!'
    stop
end program main
gfortran -o sample sample.f90
./sample
 # Hello World! と出力される
  1. fortran-netcdfを入れる前にcdf5, netcdf-cなどを入れていきます。
sudo apt install hdf5-tools hdf5-helpers libhdf5-dev libhdf5-doc libhdf5-serial-dev
  1. fortran-netcdfを入れていきます。これは手動で入れないといけないのでちょっと不便です;;
    ここからダウンロードします。
  2. netcdf-cがダウンロードされている場所を確かめます。デフォルトでusr/local/lib以下に作られると思います。(ncdump等のユーティリティもusr/local/bin以下にあるっぽいです)
    もしnetcdf-cがデフォルトにない場合は以下を実行して指定してあげます。
export LD_LIBRARY_PATH=( netcdf-cが入っている場所 )/lib:${LD_LIBRARY_PATH}
  1. 3でダウンロードしてきたファイルをnetcdf-cと同じディレクトリで展開します(usr/localにnetcdf-cがある場合)。するとconfigureがあるので以下の環境を指定してconfigureしていきます。
export CDFDIR = /usr/local/ \
export CPPFLAGS=-I${CDFDIR}/include LDFLAGS=-L${CDFDIR}/lib \
./configure --prefix=${CDFDIR} --disable-fortran-type-check
違うディレクトリに入れたい場合
export CPPFLAGS=-I/(netcdf-cが入ってる場所)/include LDFLAGS=-L/(netcdf-cが入ってる場所)/lib \
./configure --prefix=(netcdf-fortranが入っている場所) 
  1. ここまでできたらmakeファイルで環境構築します。
make check 
make install
# もしくは sudo make install

おわりに

気象現象とか地理のデータ分析に使われているかと思います。お力になれたなら幸いです。
個人的には結構他にも書いてらっしゃる方の記事わかりずらいので書いてみました。
日本の学生であれば地球流体電脳倶楽部dclfrtとかいうのつかってるかもしれませんが…
自身は全くわからないのでnetCDFファイル読み込んで何ができるみたいな所の勉強はこれからやっていきます;;

参考サイト

https://ccsr.aori.u-tokyo.ac.jp/~obase/netcdffortran.html
https://downloads.unidata.ucar.edu/netcdf/
https://estuarine.jp/2020/05/ubuntu-intel-netcdf/

Discussion