ナビゲーション:前へ 上へ 次へ
例:
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
