Fortranでは、関数とサブルーチンの間に明確な違いがあります。関数は1つの値を返し、サブルーチンは値を返しません。これにより、2つの違いのカスケードが導入されます。1つの例は、呼び出しセマンティクスです。他の言語と同じように関数を呼び出すことができますが、サブルーチンを呼び出すには、call
最初にステートメントを発行する必要があります。
Fortran95にポインタとデータ型が追加されたことで、サブプログラムを関数にしたり、サブルーチンをレガシー用に保持したりすることに技術的な制限はないようです。関数は、0(ダミーの整数を返すだけ)、1つ、または複数の値を返すことができます(たとえば、C ++ STLペアなどの型の割り当てられたインスタンスへのポインターを返すことができます)。
私が間違っている?サブルーチンにはある機能とない機能があるため、Fortranプログラミングにはまだサブルーチンが必要ですか?