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
サンプルのページへ 研究室のページへ