「「FORTRAN77数値計算プログラミング」のプログラムをCとPython」をdockerで
「FORTRAN77数値計算プログラミング」のプログラムをCとPythonに移植してみる(その1)
https://qiita.com/riko111/items/084b774327c716044b13
をdocker上で動かし、確認したので記録する。
<この項は書きかけです。順次追記します。>
ソースコードの先頭には、上記URLを註記(commnet)している。
$ docker run -it kaizenjapan/ncpfcp /bin/bash
作成したフォルダは /home/ncp
ncp: numerical calculation programming
tcp: fortran c_language python
作成したscriptは、
#!/bin/sh
# (c) @kaizen_nagoya
echo "https://qiita.com/riko111/items/084b774327c716044b13"
echo "$ clang $1.c"
cc $1.c -o $1cl
if [ -e $1cl ]; then
./$1cl
fi
echo "\r"
echo "$ gcc $1.c"
gcc $1.c -o $1cg
if [ -e $1cg ]; then
./$1cg
fi
echo "$ gfortran $1.f"
gfortran $1.f -o $1f
if [ -e $1f ]; then
./$1f
fi
echo "\r"
echo "$ python3 $1.py"
python3 $1.py
echo "\r"
echo "$ python2 $1.py"
python2 $1.py
gfortran --version
gcc --version
clang --version
python3 --version
python2 --version
-O3 option をつけたものは
#!/bin/sh
# (c) @kaizen_nagoya
echo "https://qiita.com/riko111/items/084b774327c716044b13"
echo "$ clang $1.c"
cc $1.c -O3 -o $1clO3
if [ -e $1clO3 ]; then
./$1clO3
fi
echo "\r"
echo "$ gcc $1.c"
gcc $1.c -O3 -o $1cgO3
if [ -e $1cgO3 ]; then
./$1cgO3
fi
echo "$ gfortran $1.f"
gfortran $1.f -O3 -o $1fO3
if [ -e $1fO3 ]; then
./$1fO3
fi
echo "\r"
echo "$ python3 $1.py"
python3 $1.py
echo "\r"
echo "$ python2 $1.py"
python2 $1.py
ソースとこのスクリプトを含み、gfortran, gcc, clang, python2, python3が実行できる環境は、
$ docker run -v /Users/administrator/work:/home/work -it kaizenjapan/ncpfcp /bin/bash
でフォルダ共有して利用できる。ただし、/Users/asministrator/workは実際に存在するフォルダ名。
# cd /home/ncp
# ./ncp.sh maceps
https://qiita.com/riko111/items/084b774327c716044b13
$ clang maceps.c
1.19209290E-07
1.19209290E-07
$ gcc maceps.c
1.19209290E-07
1.19209290E-07
$ gfortran maceps.f
1.19209290E-07
$ python3 maceps.py
1.19209290E-07
1.19209290E-07
$ python2 maceps.py
1.19209290E-07
1.19209290E-07
GNU Fortran (GCC) 9.1.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
gcc (GCC) 9.1.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
clang version 7.0.1-8 (tags/RELEASE_701/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Python 3.7.3
Python 2.7.16
一方のスクリプトは、最後に言語の版を出力しています。
結果がわかるように。
C言語のプログラムだけ
#include <stdlib.h>
...
return EXIT_SUCCESS;
}
stdlibをincludeし、returnの値をEXIT_SUCCESSに変更している。
これは直値を書かないという自分の仕事上の規則によるものです。万人に推めているものではありません。
OSにより戻り値が意味がない場合もあり、OSの宣言に任せるという趣旨です。
<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
Author And Source
この問題について(「「FORTRAN77数値計算プログラミング」のプログラムをCとPython」をdockerで), 我々は、より多くの情報をここで見つけました https://qiita.com/kaizen_nagoya/items/2a961ec2de818ede717b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .