!!!Fortran90/95プログラミングの追加情報 冨田博之,齋藤泰洋著,'''Fortran90/95プログラミング''', 培風館 *[冨田博之先生のホームページ(Fortran90/95プログラミング)|http://www7b.biglobe.ne.jp/~fortran/education/fort9095.html] 巻頭言(p. iv)に記載しているとおり,本教科書の最新情報を上記サイトで公開していますが,書籍に入りきれなかった情報を下記にて紹介しています. !!混在コンパイル !FortranプログラムがC++プログラムを呼び出す.(2016/01/16新規作成) *Fortran言語で記述されたプログラムと他の言語(例えばC++)で記述されたプログラムを混在させてコンパイルして実行する. *main.f90 PROGRAM main CALL prog_c() END PROGRAM main *c_prog.cpp #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(); } *実行 (一度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}}