数値流体力学

松下洋介、齋藤泰洋、青木秀之、三浦隆利
数値流体力学 [第2版]、第1版、森北出版株式会社、東京 (2011)

Fortran 90/95プログラミング

冨田博之、齋藤泰洋、Fortran90/95プログラミング、培風館、東京 (2011)
全般的な補足は、冨田博之先生のホームページ(Fortran90/95プログラミング)をご覧ください。

本稿においても、本書と同じようにプログラムを記述する際に大文字と小文字を区別して使っていますが、Fortran言語の場合、大文字も小文字も区別されないので、全て小文字で記述して構いません。

混在コンパイル

FortranプログラムがC++プログラムを呼び出す。(2016/01/16作成)

  1. Fortran言語で記述されたプログラムと他の言語(例えばC++)で記述されたプログラムを混在させてコンパイルして実行する。
  2. main.f90
  3. PROGRAM main
      CALL prog_c()
    END PROGRAM main
    
  4. c_prog.cpp
  5. #include 
    #include 
    int sub_c(){
      float pi = 3.141593;
      float s, r = 2.0;
      s = pi * pow( r, 2.0 );
      printf("Area = %.2f\n", s);
    }
    extern "C" void prog_c_(){
      sub_c();
    }
    
  6. 実行
  7. (一度g++でコンパイルして,オブジェクトファイルを生成する。)
    % g++ c_prog.cpp -c
    (数学関数を呼び出すためのライブラリを呼び出し,gfortranでコンパイルする。)
    % gfortran main.f90 c_prog.o -lm
    % ./a.out
    
  8. 実行結果
  9. Area = 12.57
    

C++プログラムがFortranプログラムを呼び出す。(2016/03/15作成)

  1. C++で記述されたプログラムでFortran言語で記述されたプログラムを呼び出してコンパイルして実行する。
  2. (コンパイルして、オブジェクトファイルを生成し、Fortranのプログラムを呼び出す。)
    % 
    % g++ c_prog.cpp -c
    % gfortran f_prog.cpp -c
    % g++ f_prog.o f_prog.o -lgfortran
    

外部ソフトウェアの操作

Fortranプログラムでソフトウェアを呼び出す。(2025/01/11更新)

  • Gnuplotをバッチファイルで実行する。
  • main.f90
  • PROGRAM main
      CALL SYSTEM('/bin/gnuplot gplt_x.plt')
    END PROGRAM main
    
  • gplt_x.plt
  • set terminal svg enhanced size 600,420 fixed fname "Arial,16" background rgb "white"
    set output "graph_x.svg"
    p x
    set output
    
  • 実行
  • % gfortran main.f90
    % ./a.out
    
  • 実行してグラフをeogで表示
  • % eog graph_x.svg