fortran66のブログ

fortran について書きます。

uhoplot

画面が崩れる時の対策

invalidateRect( NULL, NULL, .false. ) NULL 指定で開いている Figure 全てが REPAINT される。 case (WM_CAPTURECHANGED) !! for Windows XP p_wnd = TlsGetValue(iTls) call EnterCriticalSection( loc(wnd%lpCriticalSection) ) iretb = invalidateRect(…

途中経過メモ 過去のルーチン流用で乱れ気味。 コンソールプログラムから呼び出せて、コンソールで入出力しながら簡単な二次元グラフを描いてゆける最小限度の簡潔なサブルーチン集を作りたいです。 ソース・プログラム Fortran2008 ではベッセル関数や誤差…

少し改良

重ね打ちを使っている絵。 ソース・プログラム module uho_win use ifwina use ifwinty use ifmt, only : RTL_CRITICAL_SECTION implicit none type :: t_wnd integer (HANDLE) :: hWnd integer (HANDLE) :: hDC integer (LPINT) :: hThread integer :: id i…

スヌーピーカレンダー

ラインプリンタの重ね打ちを使っているので、Windowsのグラフィックでラインプリンタ動作を再現するように作ってみた試し。もう少し完成度をあげたい。 ラインプリンタ出力+α スヌーピーカレンダーデータは別プログラム。過去日記参照。 テスト 未完成↓ MOD…

昔よくみた dragon 曲線。 『C言語による 最新 アルゴリズム事典』からの移植。 PROGRAM dragon_curve USE plotter IMPLICIT NONE INTEGER, PARAMETER :: norder = 10, iright = 1, ileft = 2 INTEGER :: i, k, ip, iq INTEGER :: ifold(0:2**norder) REAL :…

昔は再帰の例としてしょっちゅう見かけたもんですが。C-Curve です。 Fortranでは、なんとなく再帰は忌み嫌われていますが、たまにはいいよね。 PROGRAM c_curve USE plotter IMPLICIT NONE INTEGER :: norder WRITE(*, *) 'input order' READ(*, *) norder …

なつかしいマンデルブロ集合をば。 PROGRAM Mandel USE plotter IMPLICIT NONE INTEGER, PARAMETER :: kd = SELECTED_REAL_KIND(15) INTEGER, PARAMETER :: m = 1000, nwinx = 800 , nwiny = 600 INTEGER :: i, j, imax, jmax, maxiter, icount REAL (kd) ::…

物理雑誌の『パリティ』に、1991年2月号から9月号までフォートラン入門の記事がありました。時代的にまだFORTRAN77の内容ですが、短いプログラムで面白いテーマを扱っている連載でした。その中から水素原子に対するシュレディンガー方程式を数値的に解く問題…

奥村晴彦著『C言語による 最新 アルゴリズム事典』の「フラクタルによる画像圧縮」を移植してみました。羊歯植物のパラメータを入れています。 この本のルーチンと互換性を上げるために、uhoplotに少しサブルーチンを加えました。 MODULE plotter USE uhoplo…

昔なつかしいロジスティック関数によるカオス図形。拡大してゆくと、同じような形がどこまでもどこまでも現れます*1。 PROGRAM chaos USE uhoplot IMPLICIT NONE INTEGER, PARAMETER :: nx = 640, ny = 480, niter = 150 INTEGER :: iter, ix, iy REAL(8), P…

阿部さん しょんべん

PROGRAM kusomiso USE uhoplot CALL gr_on('Abe-san', 500, 600) CALL gr_pencol(irgb(0, 0, 0)) CALL gr_text(150, 10, 'ああ・・・つぎはションベンだ', irgb(155, 155, 0) ) CALL gr_show() ! chin chin CALL line( 0.0, 11.0, 0) CALL line( 0.0, 8.0, 1) C…

阿部さん

MODULE uho_win USE ifwina USE ifwinty USE ifmt, ONLY : RTL_CRITICAL_SECTION IMPLICIT NONE TYPE :: t_wnd INTEGER (HANDLE) :: hWnd INTEGER (HANDLE) :: hDC INTEGER (LPINT) :: hThread INTEGER :: id INTEGER (HANDLE) :: hPen CHARACTER (LEN = 80)…