fortran66のブログ

fortran について書きます。

2008-01-01から1年間の記事一覧

M.Metcalf et. al. の "fortran95/2003 explained" §11.2 によると、 "Within Fortran, -0 is treated as the ssame as a zero in all intrinsic operations and comparisons, but it can be detected by the 'sign' function and is respected on formatted…

IEEE がらみの INTRINSIC MODULE の機能。 イマイチよく分からん。 PRGRAM test USE, INTRINSIC :: IEEE_ARITHMETIC USE, INTRINSIC :: IEEE_FEATURES USE, INTRINSIC :: IEEE_EXCEPTIONS TYPE (IEEE_FLAG_TYPE) :: flag_value TYPE (IEEE_CLASS_TYPE) :: cl…

Fortranもまだまだ新刊本が出ているようです。 Fortanには珍しい入門書。 【送料無料】やさしいFORTRAN入門 [ 日向俊二 ]ジャンル: 本・雑誌・コミック > PC・システム開発 > その他ショップ: 楽天ブックス価格: 2,940円楽天で詳細を見る 付属のドキュメント…

n番目のコマンドライン引数を求められます。 PROGRAM test IMPLICIT NONE INTEGER :: n, length CHARACTER(LEN = 120) :: text n = 0 CALL GET_COMMAND_ARGUMENT(n, text, length) PRINT *, n PRINT '(a)', text(1:length) STOP END PROGRAM test コマンドラ…

文字型のKINDも複数対応が可能となるしくみができました。 PROGRAM test IMPLICIT NONE PRINT *, SELECTED_CHAR_KIND('ASCII') PRINT *, SELECTED_CHAR_KIND('ISO_10646') STOP END PROGRAM test 今のところサポートは1ByteのASCII文字だけ?

IEEE754規格では浮動小数点の取り方から0に+0と-0の二通りの表記が許されます。ここで複素関数などを扱う場合、リーマン面のカットライン近傍において近づく方向に依存して極限が異なる場合があるので、+0と-0がそれぞれ正からの極限と負からの極限の意味で…

環境変数を取得する関数が加わりました。 個人的には今まで環境変数を欲しいと思ったことは無いです。OpenMPやMPIで使いたいのかな? 次期Fortran規格にもMPIの人たちがC++用のMPIとの互換性を持たせるために色々と要求を出しているようだし。 PROGRAM test …

確かに以前、大きさ1の割付配列を要求されて、スカラー変数で割付可能なら便利なのにと思った記憶はある。どういう状況だったか忘れたがwwwww 組み込み関数の返り値の何かだったかなぁ? PROGRAM test ! ALOCATABLE SCALAR IMPLICIT NONE REAL, ALLOCA…

コンポーネント名とデフォルト初期化を含む構造コンストラクター

たぶんこのことではないかと思うのだが・・ PROGRAM test IMPLICIT NONE INTEGER :: i TYPE :: t_test INTEGER :: n = 9 CHARACTER(LEN = 10) :: text REAL :: a(10) END TYPE t_test ! TYPE (t_test), PARAMETER :: unko = t_test(99, 'Yaranaika', [REAL::…

Array consrtuctor の例(型と文字列長仕様を含む配列コンストラクター)。 PROGRAM test ! Array constructor IMPLICIT NONE REAL :: a(4) INTEGER :: n(4) CHARACTER(LEN = 5) :: text(5) a = [REAL:: 1.0, 2.0, 3.0, 4.0] PRINT *, a n = [INTEGER:: 1.0,…

備忘録として。ifort.cfg を編集する。 # This Configuration file may be used for additional switches /Qdiag-message-catalog- いい加減『error #5082: 黒カエラー』云々は何とかならんのかw

ACM の Fortran Forum 2008年8月号に John Reid による "The new features of Fortran 2008" という記事が出ています。ますます肥大化する Fortran ・・・大丈夫なのかと。まして CoArray のようなハードウェアアーキテクチャーに強く依存するような機能を規…

最近インテルのFortranの新Versionが正式に発表され Ver.11となりました。 インストーラも妙にハイカラに変わりましたが、Win2000にはインストールできなくなってしまいました。http://www.intel.com/cd/software/products/asmo-na/eng/compilers/278834.htm…

総天然色の四角が枡状に乱数で表示されるスクリーンセイバーです。 起動の SUBSYSTEM は Windows で。 生成される実行ファイルの拡張子は .exe から .scr に変えておくと便利。 実行は、右クリック->TEST で可能。 MODULE ScreenSaver USE ifwinty CONTAINS …

拡張子を.exeから.scrに変えた後は、ダブルクリックすれば起動できるようです。白い四角を10個づつ表示しては、画面を黒で塗りつぶして、また四角を表示し続けます。 logical(4) function ScreenSaverConfigureDialog(hDlg ,message ,wParam, lParam) !DEC…

 最小限のスクリーンセーバー

Intel Visual Fortran Ver.10.1 で Screen Saver 用の Module が提供されているのを見つけました。最小限度のものを作ってみます。Module scrnsave を使用します。 SUBSYSTEM は Windows Program 用にします。 出来た EXE ファイルの拡張子を .SCR に変えて…

Fortran2003 での C 呼び出し規約と、Win32 での呼び出し規約が、異なっているようなので、以下の内容は間違っているかもしれません。名称の規約しか合っていない可能性があります。 MODULE m_sub USE ifwin CONTAINS INTEGER (LRESULT) FUNCTION MainWndPro…

ACM Fortran Forum の最新号の記事に面白いものがありました。"Note on array-valued functions" by Arjen Markus http://portal.acm.org/citation.cfm?id=1373277.1373278&coll=portal&dl=ACM&idx=J286&part=newsletter&WantType=Newsletters&title=ACM%20S…

Fortranへの移植。 MODULE m_callback USE opengl_gl USE opengl_glu USE opengl_glut IMPLICIT NONE REAL(GLdouble), PARAMETER :: pi = 3.141592653589793238_GLdouble REAL(GLdouble), PARAMETER :: G = 9.80665_GLdouble REAL(GLdouble), PARAMETER :: T…

Fortranへの移植。 MODULE m_callback USE opengl_gl USE opengl_glu USE opengl_glut IMPLICIT NONE REAL(GLdouble), PARAMETER :: pi = 3.141592653589793238_GLdouble REAL(GLdouble), PARAMETER :: G = 9.80665_GLdouble REAL(GLdouble), PARAMETER :: T…

Fortranへの移植。 MODULE m_callback USE opengl_gl USE opengl_glu USE opengl_glut IMPLICIT NONE REAL(GLdouble), PARAMETER :: pi = 3.141592653589793238_GLdouble REAL(GLdouble), PARAMETER :: G = 9.80665_GLdouble REAL(GLdouble), PARAMETER :: T…

Fortranへの移植。 MODULE m_callback USE opengl_gl USE opengl_glu USE opengl_glut IMPLICIT NONE REAL(GLdouble), PARAMETER :: pi = 3.141592653589793238_GLdouble REAL(GLdouble), PARAMETER :: G = 9.80665_GLdouble REAL(GLdouble), PARAMETER :: T…

Fortranへの移植。 MODULE m_callback USE opengl_gl USE opengl_glu USE opengl_glut IMPLICIT NONE REAL(GLdouble), PARAMETER :: pi = 3.141592653589793238_GLdouble REAL(GLdouble), PARAMETER :: G = 9.80665_GLdouble REAL(GLdouble), PARAMETER :: T…

Fortran の C ルーチン呼び出しと、Win32 の呼び出し規約の問題があるため、問題がある可能性が高いです。Fortran2003 の C 言語との互換機能を使って、Win32 のルーチンを呼ぶ。 コンソール窓のハンドルを得る関数 GetConsoleWindow へのインターフェースを…

Fortranへの移植。 MODULE m_callback USE opengl_gl USE opengl_glu USE opengl_glut IMPLICIT NONE INTEGER(GLint), PARAMETER :: KEY_ESC = 27 INTEGER(GLint), PARAMETER :: imageHeight = 64, imageWidth = 64 INTEGER(GLint) :: ixBegin = 0, iyBegin …

Fortranへの移植。 MODULE m_callback USE opengl_gl USE opengl_glu USE opengl_glut IMPLICIT NONE INTEGER(GLint), PARAMETER :: KEY_ESC = 27 INTEGER(GLint) :: ixBegin = 0, iyBegin = 0 INTEGER(GLint) :: mButton REAL(GLfloat) :: distance, twist,…

Fortranへの移植。 MODULE m_callback MODULE m_callback USE opengl_gl USE opengl_glu USE opengl_glut IMPLICIT NONE INTEGER(GLint), PARAMETER :: KEY_ESC = 27 INTEGER(GLint) :: ixBegin = 0, iyBegin = 0 INTEGER(GLint) :: mButton REAL(GLfloat) :…

Fortranへの移植。 MODULE m_callback USE opengl_gl USE opengl_glu USE opengl_glut IMPLICIT NONE INTEGER(GLint), PARAMETER :: KEY_ESC = 27 INTEGER(GLint) :: ixBegin = 0, iyBegin = 0 INTEGER(GLint) :: mButton REAL(GLfloat) :: distance, twist,…

MODULE m_bitmap IMPLICIT NONE INTEGER, PARAMETER :: DWORD = 4, LONG = 4, WORD = 2, kBYTE = 1 TYPE :: T_BITMAPINFOHEADER SEQUENCE integer(DWORD) biSize ! knowns DWORD integer(LONG) biWidth ! knowns LONG integer(LONG) biHeight ! knowns LONG …

OpenGLによる3次元CGプログラミング 作者: 林武文, 加藤清敬 出版社/メーカー: コロナ社 MODULE m_bitmap IMPLICIT NONE INTEGER, PARAMETER :: DWORD = 4, LONG = 4, WORD = 2, kBYTE = 1 TYPE :: T_BITMAPINFOHEADER SEQUENCE integer(DWORD) biSize ! kno…