- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!Fortran90/95プログラミングの追加情報
冨田博之,齋藤泰洋著,'''Fortran90/95プログラミング''', 培風館
*[冨田博之先生のホームページ(Fortran90/95プログラミング)|http://www7b.biglobe.ne.jp/~fortran/education/fort9095.html]
巻頭言(p. iv)に記載しているとおり,本教科書の最新情報を上記サイトで公開していますが,書籍に入りきれなかった情報を下記にて紹介しています.
!!混在コンパイル(2016/01/16新規作成)
!!混在コンパイル
!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などで確認できる.
{{ref_image rsl_gnuplot.png}}