配列の値を返す関数の書き方

fortranの勉強メモ。こんなことも知らなかったのかと小一時間…。
サンプルプログラム

PROGRAM main
  ! 宣言部
  REAL(8),DIMENSION(10):: B=1.d0
  INTERFACE ! 呼び出し側で明示的引用仕様を持たなくてはなりません。
    FUNCTION DX(A)
      REAL(8),DIMENSION(10):: A,DX
    END FUNCTION
  END INTERFACE
  ! 実行部
  WRITE(*,*)DX(B)
END PROGRAM

FUNCTION DX(A)
  ! 宣言部
  REAL(8),DIMENSION(10):: A,DX ! 手続が配列値である結果を持つ場合
  ! 実行部
  DO i=1,10
    DX(i)= i*A(i)
  END DO
  RETURN
END FUNCTION

参考文献:http://www.xlsoft.com/jp/products/intel/cvf/docs/vf-html/lr/lr08_08_01.htm