WANtaroHP (ユーティリティ他)

toEN

ページ概要

Contents


バブルソートおよびシェルソート

プログラム概要

ソースコードと関連文書

FilenameDescription
プログラムソースコード


文字列ソート

プログラム概要

ソースコードと関連文書

FilenameDescription
program for sorting of character strings


乱数

プログラム概要

ソースコードと関連文書

FilenameDescription
乱数発生プログラムソースコード
GMTによる一様乱数のヒストグラム作図例
GMTによる正規乱数のヒストグラム作図例


日付と時間を得る

プログラム概要

ソースコードと関連文書

FilenameDescription
プログラムソースコード


計算時間を得る

プログラム概要

ソースコードと関連文書

FilenameDescription
プログラムソースコード


10進数を16進数に変換する

プログラム概要

ソースコードと関連文書

FilenameDescription
プログラムソースコード


色一覧の作成

プログラム概要

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 画像短冊を作成します.

ソースコードと関連文書

FilenameDescription
Program to create gif image and show them by HTML
Input data for GMT color
Input data for gnuplot color
Input data for ImageMagick color

HTML 色一覧のため のawk スクリプト

HTML 色一覧に対しては,以下の awk スクリプトとデータが用いられています.awk スクリプト実行用バッチコマンドは以下のとおりです.

gawk -f awk_html_col.awk dat_html_col.txt > zesubHTMLcol.html
FilenameDescription
Awk script to show color strips by HTML
Input data for HTML color


フォント一覧の作成

プログラム概要

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 画像短冊を作成します.

ソースコードと関連文書

FilenameDescription
入力データ作成用バッチファイル(awkスクリプトを含む)
Program to create gif image and show them by HTML
Input data of font name


緯度と経度から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

FilenameDescription
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

FilenameDescription
Program to calculate the distance between 2 points (Lambert-Andyer の公式)
Input data sample
Output data sample


カレンダー

プログラム概要

実行用バッチファイル

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, HminHSVカラーモデルにおける H の最大値と最小値
Smax, SminHSVカラーモデルにおける S の最大値と最小値
Vmax, VminHSVカラーモデルにおける 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
f90_CALSMALL実行プログラム
yyyy 西暦年指定
fnameW 出力ファイル (htmlファイル)

Source code by f90 and related documents

FilenameDescription
F90 プログラムソース
F90 プログラムソース (月単位)
F90 プログラムソース (年単位)
コメント入力用ファイル
カレンダー表示のための Top page


HSV カラーモデルによる色相環

プログラム概要

Difinition of Hue
Range of angleRGBColoe name
0/60 max min->maxmin Red->Yellow
60/120 max->minmax min Yellow->Lime
120/180min max min->maxGreen->Cyan
180/240min max->minmax Cyan->Blue
240/300min->maxmin max Blue->Magenta
300/360max min max->minMagenta->Red
Range of variables
R G B H S V
Max.255 255 255 359 255 255
Min.0 0 0 0 0 0
Kindintegerintegerintegerintegerintegerinteger
colcurc0 colcurc1 colcurc2
colcurc3 colcurc4 colcurc5

実行用バッチファイル

gfortran -o f90_COLCIRC.exe f90_COLCIRC.f90

f90_COLCIRC 1 255 255 > bat_gmt_exe.bat
set fig=fig_gmt_colcirc1.eps
call bat_gmt_colcirc

f90_COLCIRC 1 128 255 > bat_gmt_exe.bat
set fig=fig_gmt_colcirc2.eps
call bat_gmt_colcirc

f90_COLCIRC 1 255 192 > bat_gmt_exe.bat
set fig=fig_gmt_colcirc3.eps
call bat_gmt_colcirc

f90_COLCIRC 1 128 192 > bat_gmt_exe.bat
set fig=fig_gmt_colcirc4.eps
call bat_gmt_colcirc

f90_COLCIRC 60 255 255 > bat_gmt_exe.bat
set fig=fig_gmt_colcirc0.eps
call bat_gmt_colcirc

del _*

実行用プログラム名は,f90_COLCIRC,コマンドライン引数の並びは,「H値の増分,S値,V値」および「出力ファイル名」(ここではファイル名 bat_gmt_exe.bat) です. 出力ファイルには,GMTで実行するバッチコマンドの一部が出力されます.

ソースコードと関連文書

FilenameDescription
Program to create a part of GMT commands
Batch file for GMT execution (control)
Sample of GMT commands created by Fortran program


HSV カラーモデルによる色短冊

プログラム概要

H S=255S=128S= 64S= 64S= 32S= 16
(deg)V=255V=255V=255V=192V=192V=192
0 LM LM LM LM LM LM
30 LM LM LM LM LM LM
60 LM LM LM LM LM LM
90 LM LM LM LM LM LM
120 LM LM LM LM LM LM
150 LM LM LM LM LM LM
180 LM LM LM LM LM LM
210 LM LM LM LM LM LM
240 LM LM LM LM LM LM
270 LM LM LM LM LM LM
300 LM LM LM LM LM LM
330 LM LM LM LM LM LM

実行用バッチファイル

gfortran -o f90_HSVrgbHEX.exe f90_HSVrgbHEX.f90

f90_HSVrgbHEX

ソースコードと関連文書

FilenameDescription
Program to create a part of GMT commands
Batch file for ImageMagick by F90 program (control)
ImageMagick commands


多角形領域の内外判定

プログラム概要

入力データ事例

2                         定義する領域の数
8                         1つ目の領域を定義する座標点数
 0.7  0.0                 領域を指定する座標点の(x,y)座標
 0.1  0.1                 同上
 0.0  0.7                 同上
-0.1  0.1                 同上 (作図事例中の青の十字を定義)
-0.7  0.0                 同上
-0.1 -0.1                 同上
 0.0 -0.7                 同上
 0.1 -0.1                 同上
8                         2つ目の領域を定義する座標点数
 0.50  0.50               領域を指定する座標点の(x,y)座標
 0.05  0.00               同上
 0.50 -0.50               同上
 0.00 -0.05               同上 (作図事例中の緑のXを定義)
-0.50 -0.50               同上
-0.05  0.00               同上
-0.50  0.50               同上
 0.00  0.05               同上
200000                    内外判定を行う入力座標点数
-0.524425 -0.417869       判定を行う座標点の(x,y)座標
0.691628 -0.695583        以下,合計200,000個の(x,y)座標
0.171075 -0.613049        座標点範囲:(x,y)=(-1 / 1, -1 / 1)
・・・・・

実行用バッチファイル

gfortran -o f90_DOMAIN.exe f90_DOMAIN.f90

f90_DOMAIN inp_dom2.txt

rem *** GMT commands for drawing ***
set range=-1/1/-1/1
set paper=10/10
set inp0=_mat_00.txt
set inp1=_mat_01.txt
set inp2=_mat_02.txt
set fig=fig_gmt_dom2.eps
psxy %inp1% -R%range% -JX%paper% -SC0.01 -G0/0/255 -P -K > %fig%
psxy %inp2% -R -J -SC0.01 -G0/255/0 -O -K >> %fig%
psxy %inp0% -R -J -SC0.01 -G255/0/0 -O >> %fig%

実行結果作図事例

以下のルールに基づいて処理した結果を図化したものを示します.

入力は,上述入力データ事例に示したものです.

LM

ソースコードと関連文書

FilenameDescription
f90 program code

toEN
inserted by FC2 system