Fortran 2003 入門

ナビゲーション:前へ   上へ   次へ

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

割付け配列の結果は使用後に自動的に解放されます。


ナビゲーション:前へ   上へ   次へ

関連情報
ご案内
© 日本ニューメリカルアルゴリズムズグループ株式会社 2025
Privacy Policy  /  Trademarks