(工事中)
GLSC を Big Sur で使うくらい、 「GLSC で gfortran」 の通りで楽勝だろうと思っていたら、コンパイラーの仕様が変わっていて、 結構大変だった (暗黙の宣言を単に警告するのでなく禁止している)。 迷ったけれど、こちらの作業時間が短いことを優先して、 あちこちに #include 入れたり、 g_out のコードにプロトタイプ宣言を加えたり、 結構書き換えた。ただし内容的な(仕様というべきか)変更はしていないつもり。 (過去に個人的な都合で書き足した関数が含まれていて、 そういうのは別のパッチに分けた方が良いかもしれないけれど、 分ける作業が面倒なのでそれはサボった。 単に使わなければ良いのであまり問題はないでしょう。 それから、 何かと問題を引き起こす g_dump() を入れるべきかもしれないけれど、 それもサボった。)
とりあえず
ターミナルでこうすれば make できる (保証はしないけれど) |
mkdir sagyou cd sagyou curl -O http://www602.math.ryukoku.ac.jp/~nakano/software/math/glsc-3.5.a.tar.Z curl -O http://nalab.mind.meiji.ac.jp/~mk/daishin/glsc-3.5+a.patch curl -O http://nalab.mind.meiji.ac.jp/~mk/program/graphics/glsc-3.5+mk.patch20201229 tar xzf glsc-3.5.a.tar.Z cd glsc-3.5.a patch -p1 < ../glsc-3.5+a.patch patch -p1 < ../glsc-3.5+mk.patch20201229 make>&make.log sudo mkdir -p /usr/local/bin /usr/local/include /usr/local/lib sudo make install |
(以下蛇足。個人的なメモ。) 色々引っかかった。
Xcode をインストールせずに、コマンドライン・ツールだけで済ませようとして、 ライセンスの同意手順に問題が生じたか、 gfortran がストライキ起こしたりした (-lSystem がどうとか)。
sudo xcodebuild -license |
それから、これは gcc の話で、GLSC の make そのものには直接関係ないけれど (上は macOS の cc を使って make している、 一方普段使っている動作確認コードは gcc でコンパイルするようにしている)、 /usr/include が空のせいで、コンパイルが出来ない。 環境変数 SDKROOT を設定するものだそうです。
bash や zsh |
export SDKROOT="$(xcrun --sdk macosx --show-sdk-path)" |
tcsh |
setenv SDKROOT `xcrun --sdk macosx --show-sdk-path` |
以下は未整理
export LIBRARY_PATH="$LIBRARY_PATH:/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib" |
http://blueeyes.sakura.ne.jp/2018/09/28/1601/
https://qiita.com/yoya/items/c0b26cba3c040c581643(あ、こうのさんだ。)
(おまけ)
cglsc のインストール |
curl -O http://nalab.mind.meiji.ac.jp/~mk/labo/cglsc chmod +x cglsc sudo mv cglsc /usr/local/bin |
チェック (1次元熱方程式) |
curl -O http://nalab.mind.meiji.ac.jp/~mk/program/fdm/heat1d-e-glsc.c cglsc heat1d-e-glsc.c ./heat1d-e-glsc |
例えば として , (lambda=) として , (Tmax=) として を入力する。
チェック(2次元熱方程式) |
curl -O http://nalab.mind.meiji.ac.jp/~mk/program/fdm/heat2d-i.c curl -O http://nalab.mind.meiji.ac.jp/~mk/program/fdm/symbandlu.h curl -O http://nalab.mind.meiji.ac.jp/~mk/program/fdm/symbandlu.c curl -O http://nalab.mind.meiji.ac.jp/~mk/program/fdm/smallmatrix.h cglsc heat2d-i.c symbandlu.c ./heat2d-i |
Nx, Ny: 100 100 θ (0≦θ≦1): 0.5 τ(≦5e-05≡最大値ノルムに関する安定性条件を満たすτの上限): 1e-4 注意: λ=2>1/2(1-θ) となっています。 備考: 1+2θλ= 3.0, -θλx= -0.5, -θλy= -0.5 Tmax: 1 Δt: 0.001 |
(2021/2/21追記) おっと、 heat2d-i.c のコンパイル時に matrix.h がないとエラーになる。
curl -O http://nalab.mind.meiji.ac.jp/~mk/program/matrix/matrix-lib3.41.tar.gz tar xzf matrix-lib3.41.tar.gz cd matrix-lib3.41 make sudo make install sudo cp ccmg /usr/local/bin |