tcsh と Fortran90 との連係に関するサンプル
tcsh のスクリプトから、Fortran のプログラム (read 文)に
数値を渡す
スクリプト例 (ダウンロードしたければ ここ
(実行は、tcsh ファイル名)
gfortran aaa.f90
foreach t ( 1 2 3 4 5 )
foreach u ( 1 2 3 4 5 )
printf "%s\n%s\n" $t $u | ./a.out
end
end
上で呼ばれている Fortran のプログラム aaa.f90
real x, y
read (*,*) x
read (*,*) y
write(*,*) x*y
end
C言語風に、引数をとる実行形式も作れる
引数をただリストとして表示する Fortran プログラム例
integer argc, i
character argv*80
argc = iargc()
write(*,*) 'Number of argument is ', argc
do i=0, argc
call getarg(i, argv)
write(*,*) i, ':', argv
end do
end
これを、gfortran でコンパイルして、 ./a.out jh jh lk oiuy の様に
実行すると
Number of argument is 4
0 :./a.out
1 :jh
2 :jh
3 :lk
4 :oiuy
と実行される。読んだ文字を数値にしたければ、
read(argv,*) x
の様な簡単な手が使える。
これだと、シェルスクリプトからは引数を付けて実行するだけなので、
非常に綺麗に書ける。
注: 上記の例は、Fortran77 向けである。 http://gcc.gnu.org/onlinedocs/gfortran/IARGC.html を参照のこと. Fortan 2003 以降には、
があり、既に 2010 Mar. gfortran44 で使用可能である。
Fortran から、コマンドを呼ぶ
character*80 ff
call system('ls > zzzz')
open(file='zzzz',unit=10)
read(10,*) ff
write(*,*) ff
close(10)
end
サンプルのページへ
研究室のページへ