ナビゲーション:前へ 上へ 次へ
例:
3.2 割付け関数結果
関数の結果は割付け配列として宣言可能です。例:
FUNCTION af() RESULT(res) REAL,ALLOCATABLE :: res
関数が呼び出されると結果変数が解放されます。
結果変数は関数から戻る前に割付けられている必要があります。
例:
! ! The result of this function is the original argument with adjacent ! duplicate entries deleted (so if it was sorted, each element is unique). ! FUNCTION compress(array) INTEGER,ALLOCATABLE :: compress(:) INTEGER,INTENT(IN) :: array(:) IF (SIZE(array,1)==0) THEN ALLOCATE(compress(0)) ELSE N = 1 DO I=2,SIZE(array,1) IF (array(I)/=array(I-1)) N = N + 1 END DO ALLOCATE(compress(N)) N = 1 compress(1) = array(1) DO I=2,SIZE(array,1) IF (array(I)/=compress(N)) THEN N = N + 1 compress(N) = array(I) END IF END DO END IF END