PGI-FORTRANでは
コマンドラインからの引数の個数を数える、iargcの組み込み関数が利用できない。
従って、新しい組み込み関数である、COMMAND_ARGUMENT_COUNTを利用する
INTEGER FUNCTION command_argument_count()
のようにfunctionとして定義されており,
num = command_argument_count()
として利用できる。
また、getargは引き続き利用できるが、基本的に文字列としてしか利用できなかったが、
新しい、GET_COMMAND_ARGUMENTを利用すると、
SUBROUTINE get_command_argument(number,value,length,status) INTEGER,INTENT(IN) :: number CHARACTER(*),INTENT(OUT),OPTIONAL :: value INTEGER,INTENT(OUT),OPTIONAL :: length,status
というように定義されているので、整数で受け取りたいか、文字列で受け取りたいかを自動的に判断してもらえる。
例えば、 ./a.out infile.txt 30 のように文字列と整数を入れた場合、
integer nk character(len=100) infile
call get_command_argument(1,infile) call get_command_argument(2,nk)
とやると、1つ目の引数は文字列として読み込まれる。2つ目の引数は整数として引き込まれる。
同じことを昔のgetargでは、
integer nk character(len=100) infile character(len=100) tmpc
call getarg(1,infile) call getarg(2,tmpc) read(tmpc,*) nk
のように、一旦文字列として読んで、内部ファイルとしてnkに変換していた