Fortran9095Programming

最終更新時間:2016年03月15日 19時57分28秒

Fortran90/95プログラミングの追加情報

冨田博之,齋藤泰洋著,Fortran90/95プログラミング, 培風館

巻頭言(p. iv)に記載しているとおり,本教科書の最新情報を上記サイトで公開していますが,書籍に入りきれなかった情報を下記にて紹介しています.

 混在コンパイル

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

  • Fortran言語で記述されたプログラムと他の言語(例えばC++)で記述されたプログラムを混在させてコンパイルして実行する.
  • main.f90
PROGRAM main
  CALL prog_c()
END PROGRAM main
  • c_prog.cpp
#include <stdio.h>
#include <math.h>
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();
}
  • 実行
(一度g++でコンパイルして,オブジェクトファイルを生成する.)
% g++ c_prog.cpp -c
(数学関数を呼び出すためのライブラリを呼び出し,gfortranでコンパイルする.)
% gfortran main.f90 c_prog.o -lm
% ./a.out
  • 実行結果
Area = 12.57

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

  • 実行
(コンパイルして,オブジェクトファイルを生成し,fortranを呼び出す.)
% g++ c_prog.cpp -c
% gfortran f_prog.cpp -c
% g++ f_prog.o f_prog.o -lgfortran

 外部ソフトウェア操作(2016/01/16新規作成)

  • main.f90
    • システムで呼び出すソフトウェアを記載する.絶対パスで記述する.
    • この場合,gnuplotを立ち上げ,g.pltを読み込んで実行させる.
PROGRAM main
  CALL SYSTEM('/bin/gnuplot g.plt')
END PROGRAM main
  • g.plt
    • y=xのグラフをepsファイルに書き出す.
set terminal postscript eps enhance color "Times-Roman" 24
set output "x.eps"
p x
set output
  • 実行
% gfortran main.f90
% ./a.out
  • 実行して生成された結果
    • y=xのグラフが生成される.gvなどで確認できる.

ファイル添付