2017-11-26 16 views
3

まず、回答はoptionalpresentのようなものではないと言いたいと思います。任意の数の引数でFortranサブルーチンを定義する方法は?

write(*,*) ...のような関数を定義したいとします。わかるように、入力バリアントの数は任意です。 optionalキーワードを使用する場合は、すべての可能な入力を定義する必要があります。 1000(可能な)入力があると仮定して、何ができますか?

+1

IMHO - 1つまたは2つのオプションのパラメータを増やすと、設計が不良になります。 uniform型のパラメータの場合、配列を使用することをお勧めします。例えば、addnode([1,2,3,4])のようにフライを作成した場合です。 – ja72

答えて

6

単純なサブルーチンまたはFortranの引数では何もできません。それは単に可能ではありません。関数で定義されている引数のみを使用できます。

すべての入力の型が同じであれば、配列にすべてを配置するか、さらに複雑な派生型を作成する必要があります(多形リンクリストなど)。

あなたが求めているのは、いくつかの言語(たとえばCの可変関数)に存在しますが、Fortranでは存在しません。

+2

追加するだけで、Fortran言語ではユーザープロシージャーによって複製されます。あなたが求めているものに近いところでは、MIN関数とMAX関数は名前のついた任意の数の引数を持つことができますが、同様のものを書く方法はありません。 –

関連する問題