ページ概要
バブルソートおよびシェルソート
プログラム概要
- 昇順(小さい順)に並び替えるソートプログラムです.
- バブルソートとシェルソートが含まれています.
ソースコードと関連文書
文字列ソート
プログラム概要
- 文字列を昇順(小さい順)に並び替えるソートプログラムです.
- バブルソートが用いられています.
ソースコードと関連文書
乱数
プログラム概要
- 区間(0.1]の一様乱数と,平均=0・標準偏差=1の正規乱数を与えるプログラムです.
- 一様乱数は,Fortran90の組み込みサブルーチン 'random_number()' を使って得ています.
- 正規乱数は,Box-Muller 法により得ています.
ソースコードと関連文書
日付と時間を得る
プログラム概要
- 組み込みサブルーチン 'date_and time' を用いてプログラム実行時の日付と時間を得るプログラムです.
ソースコードと関連文書
計算時間を得る
プログラム概要
- 組み込みサブルーチン 'system_clock' を用いて,計算時間を得るプログラムです.
- 参考に Fortran95 の組み込みサブルーチン 'cpu_time' の使用事例も示しています.
ソースコードと関連文書
10進数を16進数に変換する
プログラム概要
ソースコードと関連文書
色一覧の作成
プログラム概要
- このプログラムは色の gif 画像短冊を作成しそれを表示する HTML ファイルを作成するものです.
- このプログラムは,GMT,gnuplotおよびImageMagickに色一覧に対応するものです.
- フォントの gif 画像短冊は ImageMagick を用いて作成しています.
- ImageMagick コマンドの実行は Fortran プログラムの中で作成したバッチファイルを実行することで行っています.
- フォント名は gawk の関数 asort を用いて昇順に並べ替えてあります.
- Fortran プログラム実行用コマンドは以下のとおりです.
gfortran -o f90_COL_HTML.exe f90_COL_HTML.f90
f90_COL_HTML n c:\WANtaroHP_COL\col_inp_GPL.txt c:\WANtaroHP_COL\zesubGPLcol.html
f90_COL_HTML n c:\WANtaroHP_COL\col_inp_GMT.txt c:\WANtaroHP_COL\zesubGMTcol.html
f90_COL_HTML n c:\WANtaroHP_COL\col_inp_IMK.txt c:\WANtaroHP_COL\zesubIMKcol.html
上記コマンド中,引数 n は gif 画像を作成するためのフラグです.
この場合は,フォントの gif 画像短冊は作成されません.
もし y が入力されれば,Imagemagick は大量のフォントの gif 画像短冊を作成します.
ソースコードと関連文書
HTML 色一覧のため のawk スクリプト
HTML 色一覧に対しては,以下の awk スクリプトとデータが用いられています.awk スクリプト実行用バッチコマンドは以下のとおりです.
gawk -f awk_html_col.awk dat_html_col.txt > zesubHTMLcol.html
フォント一覧の作成
プログラム概要
- このプログラムはフォントの gif 画像短冊を作成しそれを表示する HTML ファイルを作成するものです.
- 有効なフォントは,PC にインストールされているもののみです.
- フォントの gif 画像短冊は ImageMagick を用いて作成しています.
- ImageMagick コマンドの実行は Fortran プログラムの中で作成したバッチファイルを実行することで行っています.
- フォント名は gawk の関数 asort を用いて昇順に並べ替えてあります.
- Fortran プログラム実行用コマンドは以下のとおりです.
gfortran -o f90_IMFONT.exe f90_IMFONT.f90
f90_IMFONT n c:\WANtaroHP_Font\inp_fname.txt c:\WANtaroHP_Font\zesubIMKfont.html
上記コマンド中,引数 n は gif 画像を作成するためのフラグです.
この場合は,フォント短冊gif画像は作成されません.
もし y が入力されれば,Imagemagick は大量のフォントの gif 画像短冊を作成します.
ソースコードと関連文書
緯度と経度から2点間の距離を計算する
プログラム概要
- このプログラムは,緯度と経度から2点間の距離を計算するものです.
- このプログラム作成には下記のサイトを参考にしました.
コマンドライン入出力
サンプルバッチファイルと結果
バッチファイル
gfortran -o f90_DIST.exe f90_DIST.f90
rem distance from Kuala Lumpur to Tokyo
f90_DIST 101.55 3.117 139.76 35.69
rem distance from Kuala Lumpur to Jakarta
f90_DIST 101.55 3.117 106.833 -6.183
rem distance from Kuala Lumpur to Bangkok
f90_DIST 101.55 3.117 100.567 13.733
rem distance from Kuala Lumpur to Vientiane
f90_DIST 101.55 3.117 102.567 17.95
rem distance from Kuala Lumpur to Ha Noi
f90_DIST 101.55 3.117 105.800 21.017
rem distance from Kuala Lumpur to Seoul
f90_DIST 101.55 3.117 126.967 37.567
rem distance from Kuala Lumpur to Beijing
f90_DIST 101.55 3.117 116.283 39.933
結果
Location Lon(deg) Lat(deg) GSI(km) L-A(km) Hubeny(km)
Kuala Lumpur 101.550 3.117 --- --- ---
Tokyo 139.760 35.690 5332.871 5332.837 5395.254
Jakarta 106.833 -6.183 1184.251 1184.231 1184.532
Bangkok 100.567 13.733 1179.183 1179.106 1179.090
Vientiane 102.567 17.950 1644.567 1644.533 1644.471
Ha Noi 105.800 21.017 2033.151 2033.150 2033.494
Seoul 126.967 37.567 4612.771 4612.781 4646.478
Beijing 116.283 39.933 4339.904 4339.820 4352.810
- GSI: 国土交通省国土地理院 (日本) の計算サイト
- http://vldb.gsi.go.jp/sokuchi/surveycalc/bl2stf.html
- L-A: Lambert-Andyer の公式
- Hubeny: Hubeny の公式
Source code by f90
Filename | Description |
f90_DIST.txt | Program to calculate the distance between 2 points |
ファイル入力と距離行列出力
実行用バッチファイル
gfortran -o f90_DIST1.exe f90_DIST1.f90
f90_DIST1 inp_city.txt out_city.csv
Source code by f90
カレンダー
プログラム概要
- このプログラムは各月毎あるいは各年のカレンダーを表示する HTML ファイルを作成するものです.
- 用いた数学的なテクニックは,Zellerの公式による曜日の確定と閏年の判定です。関連する Web page の url を以下に示します.
- http://ja.wikipedia.org/wiki/ツェラーの公式
- http://en.wikipedia.org/wiki/Zeller%27s_congruence
- http://ja.wikipedia.org/wiki/閏年
- http://en.wikipedia.org/wiki/Leap_year
- 別途用意したファイルからの入力により,簡単な予定や実績のコメントを入力できます.
- html 文書の table の各要素(日付欄)は,ImageMagick で作成した画像を背景にしています.
実行用バッチファイル
01 | rem **************************
02 | rem Required files
03 | rem inp_2013_2nd_half.txt
04 | rem f90_CALDAT.f90
05 | rem f90_CALENDER.f90
06 | rem f90_CALSMALL.f90
07 | rem **************************
08 |
09 | gfortran -o f90_CALDAT.exe f90_CALDAT.f90
10 | f90_CALDAT 240 60 192 64 255 192
11 | rem f90_CALDAT 240 60 255 255 255 255
12 |
13 | gfortran -o f90_CALENDER.exe f90_CALENDER.f90
14 | f90_CALENDER 20130125 inp_2013_2nd_half.txt cal_201301.html
15 | f90_CALENDER 20130225 inp_2013_2nd_half.txt cal_201302.html
16 | f90_CALENDER 20130325 inp_2013_2nd_half.txt cal_201303.html
17 | f90_CALENDER 20130425 inp_2013_2nd_half.txt cal_201304.html
18 | f90_CALENDER 20130525 inp_2013_2nd_half.txt cal_201305.html
19 | f90_CALENDER 20130625 inp_2013_2nd_half.txt cal_201306.html
20 | f90_CALENDER 20130725 inp_2013_2nd_half.txt cal_201307.html
21 | f90_CALENDER 20130825 inp_2013_2nd_half.txt cal_201308.html
22 | f90_CALENDER 20130925 inp_2013_2nd_half.txt cal_201309.html
23 | f90_CALENDER 20131025 inp_2013_2nd_half.txt cal_201310.html
24 | f90_CALENDER 20131125 inp_2013_2nd_half.txt cal_201311.html
25 | f90_CALENDER 20131225 inp_2013_2nd_half.txt cal_201312.html
26 |
27 | gfortran -o f90_CALSMALL.exe f90_CALSMALL.f90
28 | f90_CALSMALL 2011 cal_all_2011.html
29 | f90_CALSMALL 2012 cal_all_2012.html
30 | f90_CALSMALL 2013 cal_all_2013.html
31 | f90_CALSMALL 2014 cal_all_2014.html
32 |
33 | del img1.png
34 | del img2.png
35 | del imgm.png
36 | del temp1.png
37 | del temp2.png
38 | del tempi.png
- 01-07
- コメント
- 09-10
- プログラムf90_CALDATのコンパイルと実行
- 13-25
- プログラムf90_CALENDERのコンパイルと実行
- 27-31
- プログラムf90_CALSMALLのコンパイルと実行
- 33-38
- 作業用ファイルの削除
f90_CALDATのコマンドライン引数
このプログラムはカレンダーの色を定義し,カレンダー表示のためのトップページ(html)を作成します.
f90_CALDAT Hmax Hmin Smax Smin Vmax Vmin
f90_CALDAT | 実行プログラム |
Hmax, Hmin | HSVカラーモデルにおける H の最大値と最小値 |
Smax, Smin | HSVカラーモデルにおける S の最大値と最小値 |
Vmax, Vmin | HSVカラーモデルにおける V の最大値と最小値 |
上記バッチファイルに示した事例では,前橋の月平均気温を以下のような関係で,HSVモデルに対応させている.
Temperature | Min. | ⇐ Middle ⇒ | Max. |
Hue | Max. | ⇐ Middle ⇒ | Min. |
Saturation | Min. | ⇐ Middle ⇒ | Max. |
Value | Min. | ⇐ Middle ⇒ | Max. |
データとして用いた前橋の月平均気温は,プログラム f90_CALDAT.f90 中の以下のコードで指定している.
real(4)::Te(1:12)=(/3.3,3.6,6.9,12.9,17.7,21.2,24.7,26.1,21.9,16.1,10.5,5.8/)
f90_CALENDERのコマンドライン引数
このプログラムは指定した月のカレンダー(html)を作成します.
f90_CALENDER yyyymmdd fnameR fnameW
f90_CALENDER | 実行プログラム |
yyyymmdd | 日付指定 (yyyy: 西暦, mm: 月, dd: 日) |
fnameR | コメント入力データファイル (テキストファイル) |
fnameW | 出力ファイル (htmlファイル) |
f90_CALSMALLのコマンドライン引数
このプログラムは,指定した年の全日のカレンダー(html)を作成します.
f90_CALSMALL | 実行プログラム |
yyyy | 西暦年指定 |
fnameW | 出力ファイル (htmlファイル) |
Source code by f90 and related documents
HSV カラーモデルによる色相環
プログラム概要
- このプログラムは,GMT により色相環図を出力するためのデータ作成用プログラムです.
- 色相 (H: hue) の決定は,こちらのサイト(http://homepage3.nifty.com/ishidate/vcpp_color/vcpp_color.htm)を参考に行っています.
- HSV から RGB への変換は,こちらのサイト(http://www.technotype.net/tutorial/tutorial.php?fileId={Image%20processing}§ionId={-converting-between-rgb-and-hsv-color-space})を参考に行っています.
Difinition of Hue |
Range of angle | R | G | B | Coloe name |
0/60 | max | min->max | min | Red->Yellow |
60/120 | max->min | max | min | Yellow->Lime |
120/180 | min | max | min->max | Green->Cyan |
180/240 | min | max->min | max | Cyan->Blue |
240/300 | min->max | min | max | Blue->Magenta |
300/360 | max | min | max->min | Magenta->Red |
Range of variables |
| R | G | B | H | S | V |
Max. | 255 | 255 | 255 | 359 | 255 | 255 |
Min. | 0 | 0 | 0 | 0 | 0 | 0 |
Kind | integer | integer | integer | integer | integer | integer |