Archive for the ‘Fortran’ Category

  1. Hello, Win32 API(Fortran) World!

    Posted on 6月 28th, 2012 by cx20

    Win32 API(Fortran)

    Win32 API は、Windows の機能にアクセスする為の API(Application Programming Interface)である。
    以下は gfortran(GNU Fortran)ならびに g95 による Win32 API の呼び出し例となっている。
    上記の Fortran コンパイラは直接 Win32 API を呼び出すことが出来ない為、C言語(gcc)で作成したライブラリをリンクすることで呼出しを実現している。

    ソースコード(C言語)

    #include <windows.h>
     
    int msgbox_( HWND* phWnd, LPCSTR lpszText, LPCSTR lpszCaption, UINT* puType ) {
        typedef int (WINAPI *PFNMESSAGEBOX)(HWND, LPCSTR, LPCSTR, UINT);
     
        HANDLE hdll;
        PFNMESSAGEBOX msgbox;
        hdll = LoadLibrary("user32.dll");
        msgbox = (PFNMESSAGEBOX)GetProcAddress(hdll, "MessageBoxA");
        return msgbox( *phWnd, lpszText, lpszCaption, *puType );
    }

    コンパイル方法(GNU C)

    C:¥> gcc -c msgbox.c

    ソースコード(Fortran)

    call msgbox( 0, 'Hello, Win32 API(Fotran) World!'//CHAR(0), 'Hello, World!'//CHAR(0), 0 )
    end

    コンパイル&リンク方法(GNU Fortran)

    C:¥> gfortran -o hello hello.f90 msgbox.o

    コンパイル&リンク方法(g95)

    C:¥> g95 -o hello hello.f90 msgbox.o

    実行結果

    ---------------------------
    Hello, World!
    ---------------------------
    Hello, Win32 API(Fortran) World!
    ---------------------------
    OK   
    ---------------------------
  2. Hello, Fortran World!

    Posted on 12月 8th, 2011 by cx20

    Fortran

    FORTRAN は科学技術計算用のプログラミング言語で世界初の高級言語とされている。FORTRAN の名前は「数式翻訳(FORmula TRANslation)」に由来する。大文字の FORTRAN の表記の場合 FORTRAN77以前を、小文字の Fortran の場合、Fortran90 以降を表す。
    プログラムはパンチカードに書くことを前提とされていた為、文字位置の桁に意味を持っている(1桁目にCを書くとコメント行、本文は7桁目から、など。)

    ソースコード

          PRINT *, "Hello, Fortran World!"
          END

    紙テープ(穿孔テープ)へ出力した場合は以下のように出力される。(出力例は「ミスター・パンチ」より)

    ●●●●●● ●● ●●●●●      ●●●    ●●●●   ●  ● ●●●●●●●  
          ●●●●●     ●●●●●  ●●●●●●● ●●●●●          ●●●
    ●●●●●●     ●●●●● ●●●●●● ●●●●●●● ●●●●●●  ●●●●●●   
          ●●  ●              ●●●   ● ●               
            ●●  ●●  ● ●●●●  ●    ●  ● ●   ●●       ● 
    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
             ●●  ●   ●●●●● ●● ●  ● ●● ●●  ●       ●●●
           ● ●  ●  ●    ●  ●●● ● ● ●●●   ● ●       ● 
            ●        ●  ●   ●   ●  ●●   ● ●          

    なお、現在、無償で利用できる Fotran コンパイラとしては以下のようなものがある。
    f2c はコンパイラではないが、Fotran のソースを C言語のソースに変換することで、C コンパイラの利用が可能となっている。

    コンパイラ コマンド FORTAN 77 Fortran 90 Fortran 95 Fotran 2003
    GNU Fortran gfortran
    G95 g95
    A Fortran-to-C Converter f2c

    コンパイル方法(GNU Fortran)

    $ gfortran -o hello hello.f

    コンパイル方法(g95)

    $ g95 -o hello hello.f

    コンパイル&リンク方法(f2c + GNU C)

    $ f2c hello.f
    $ gcc hello hello.c -lf2c -lm

    コンパイル&リンク方法(f2c + Visual C++)

    C:¥> f2c hello.f
    C:¥> cl hello.c /link libf2c.lib

    実行結果

    Hello, Fortran World!