Sun Studio 12: Fortran プログラミングガイド

11.8 選択戻り (あまり使用されません)

FORTRAN 77 の選択戻り機能はすでに廃止されているので、移植上の問題がなければ使用しないでください。選択戻りに対応する機能は C にはありません。 したがって、問題は C のルーチンが選択戻りを持つ Fortran のルーチンを呼び出す場合だけです。Fortran 95 は FORTRAN 77 の選択戻りを受け付けますが、これを利用することはお勧めしません。

選択戻りは、RETURN 文の式の int 値を戻します。これは実装方式にかなり依存するため、使用しないでください。

表 11–17 選択戻り (あまり使用されません)

C が Fortran を呼び出す 

例の実行 


int altret_ ( int * );
main ()
{
  int k, m ;
  k =0;
  m = altret_( &k ) ;
  printf( "%d %d\n", k, m);
}

------------------------------

SUBROUTINE ALTRET( I, *, *)
  INTEGER I
  I = I + 1
  IF(I .EQ. 0) RETURN 1
  IF(I .GT. 0) RETURN 2
  RETURN
END

demo% cc -c tst.c
demo% f95 -o alt alt.f tst.o
alt.f:
altret:
demo% alt
1 2

C ルーチンは Fortran ルーチンから戻り値 2 を受け取る。これは、RETURN 2 文が実行されたためである。