この関数は、現行プロセスに新しいスレッドを作成するために使用します。新しく作成されるスレッドは、スレッド属性オブジェクト attr が提供されていれば、その中で定義されている属性を想定します。そうでない場合は、新しいスレッドはシステム・デフォルトの属性を持ちます。新しいスレッドは、サブルーチン ent から実行を開始します。それには 1 つの仮引き数を指定することが必要です。システムは入り口サブルーチン ent に引き数 arg をその実引き数として渡します。引き数 flag は、システムに引き数 arg の特性を知らせるために使われます。実行が入り口サブルーチン ent から戻ると、その新しいスレッドは自動的に終了します。
サブルーチン ent を直接呼び出す場合明示インターフェースが必要となるようにこのサブルーチンを宣言した場合、それが引き数としてこの関数に渡される時点においても明示インターフェースが必要となります。
引き数 arg は汎用引き数であり、任意のタイプやランクにすることができます。実引き数 arg は変数でなければならず、代入ステートメントの左に代入できなければなりません。ベクトル添え字を持つ配列セクションを引き数 arg に渡す場合、結果は予測不能です。
実引き数 arg が配列セクションである場合、サブルーチン ent の対応する仮引き数は想定形状配列でなければなりません。そうでない場合、結果は予測できません。
実引き数 arg が、配列または配列セクションを指し示すポインター属性を持っている場合、サブルーチン ent 内の対応する仮引き数は、ポインター属性を持っているか、または想定形状配列でなければなりません。そうでない場合、結果は予測できません。
引き数 flag は、引き数 arg の特性を正確にシステムに伝えるために使用しなければなりません。flag には、以下の定数のいずれか、あるいは以下の定数を組み合わせたものを値として指定できます。
戻りコード
この関数への呼び出しが正常に行われると、新しく作成されたスレッドの ID が引き数 thread によって戻されます。そうでない場合には、以下のいずれかのエラー・コードを戻します。
例
integer function f_pthread_create(thread, attr, flag, ent, arg) type(f_pthread_t), intent(out):: thread type(f_pthread_attr_t), intent(in), optional:: attr integer(4), intent(in):: flag external ent end function