gtool5 Fortran 90/95 Library 1.0.0-rc5
日本語
Loading...
Searching...
No Matches
dc_args Module Reference

Command line arguments parser. More...

Data Types

type  args
interface  dcargsopen
interface  dcargsclose
interface  dcargsoption
interface  dcargsputline
interface  dcargsdebug
interface  dcargshelp
interface  dcargshelpmsg
interface  dcargsstrict
interface  dcargsget
interface  dcargsnumber
interface  open
interface  close
interface  option
interface  putline
interface  debug
interface  help
interface  helpmsg
interface  strict
interface  get
interface  number

Detailed Description

Command line arguments parser.

Author
Youhei SASAKI, Yasuhiro MORIKAWA

This module parses command line arguments.

In addition, convenient subroutines for displaying help messages are provided.

Tutorial

  • gtool5 Official Tutorial: Command Line Arguments Parsing

Procedures list

Procedure Description
DCArgsOpen Initialize ARGS derived type variable
DCArgsClose Finalize ARGS derived type variable
DCArgsGet Get command line arguments
DCArgsNumber Return number of command line arguments
DCArgsOption Configure for getting command line option
DCArgsDebug Auto-configure debug option
DCArgsHelp Auto-configure help option
DCArgsHelpMsg Configure help message
DCArgsStrict Configure to show warning when invalid option is given
DCArgsPutLine Print contents of ARGS derived type variable
Note
dc_args モジュールを作成した理由について

Fortran コンパイラのほとんどには IARGC, GETARG といった コマンドライン引数取得のための副プログラムが用意されている. これらの副プログラムの利用によって, コマンドラインの引数を 単に取得することは簡単である.

しかしこの IARGC, GETARG の使用に際し, 2 つほど面倒な点がある.

1 つはコンパイラ依存による IARGC, GETARG の仕様の違いである. これらの副プログラムは Fortran 規格に含まれないサービスルーチン であるため, たいていのコンパイラにはこの副プログラムは 存在するものの, 仕様が微妙に異なる場合がある. (大抵のコンパイラは GETARG の第一引数を 1 にすると一つ目の引数を取得するが, 古い HITACHI のコンパイラは第一引数を 2 にしないと一つ目の 引数を取得できない, など). そこで gtool5 ライブラリでは これらのコンパイラ依存性を吸収する設計を行っている. dc_args モジュールを使用する際には, これらのコンパイラ依存は 気にしなくてよい. (なお, コンパイラ依存性を実際に 吸収しているのは sysdep モジュールである).

2 つ目は, コマンドライン引数におけるオプション引数 (-h や –version など) の取り扱いの不便さである. IARGC や GETARG は単に引数を取得するための副プログラムであり, Perl や Ruby などのインタプリタ言語のように, コマンドライン引数にオプション引数を処理するための ライブラリ (Getopt や OptionParser など) が用意されていない. dc_args モジュールは, Fortran プログラムでもオプション引数を 手軽に扱えるよう, オプション引数処理の ためのコーディングをできるだけ簡素にするべく整備したプログラムである.

設計思想は, Ruby の OptionParser を真似ており, OptionParser クラスのオブジェクトを構造型 ARGS に, new (initialize) メソッドを DCArgsOpen サブルーチンに, on メソッドを DCArgsOption サブルーチンに, parse メソッドを DCArgsGet サブルーチンに見立てている. 言語仕様の違いにより実装や仕様は それなりに異なるが, 構造型 ARGS の変数をオブジェクトに見立て, この変数に対してサブルーチンを作用させることによって オブジェクトへの操作やオブジェクトからの引数情報の取得を行うという点では OptionParser と同様である.

おまけ的機能であるが, dc_trace モジュールとの連携も図られており, Debug サブルーチンを使用することにより (使用法は上記参照), 再コン パイルすることなく, プログラムの実行の際に "-D" オプションをつける ことでデバッグメッセージを表示するモードに変更することもできる.