XL Fortran for AIX V8.1.1

ランゲージ・リファレンス

+----------------------------------IBM 拡張----------------------------------+

VALUE

目的

VALUE 属性は、仮引き数と実引き数の間の引き数関連付けを指定します。この関連付けによって、仮引き数に実引き数の値を渡すことができます。 Fortran 2000 ドラフト標準で、値による引き渡しインプリメンテーションにおいては、%VAL 組み込み関数の標準準拠オプションが提供されています。

実引き数、および関連付けられた仮引き数は、単独で変更できます。仮引き数の値または定義状況に対する変更は実引き数に影響を与えません。 VALUE 属性を持つ仮引き数は、実引き数の値と等しい初期値を持つ一時変数と関連付けられます。

構文



>>-VALUE--+----+--dummy_argument_name_list---------------------><
          '-::-'
 
 

規則

VALUE 属性は仮引き数にのみ指定する必要があります。

%VAL または %REF 組み込み関数を使用して、VALUE 属性を持つ仮引き数または関連付けられた実引き数を参照してはなりません。

VALUE 属性を持つ仮引き数を指定したプロシージャーの参照では、明示的インターフェースが必要です。

length パラメーターを省略した場合、または 1 の値を持つ初期化式を使用して指定した場合、 VALUE 属性を持つ仮引き数は文字タイプになります。

VALUE 属性を以下に指定してはなりません。

VALUE 属性と互換性のある属性





仮引き数が VALUE 属性と TARGET 属性の両方を持つ場合、仮引き数に関連付けられたポインターはプロシージャーの実行後に未定義となります。

Program validexm1
  integer :: x = 10, y = 20
  print *, 'before calling: ', x, y
  call intersub(x, y)
  print *, 'after calling: ', x, y
 
  contains
  subroutine intersub(x,y)
    integer, value ::  x
    integer y
    x = x + y
    y = x*y
    print *, 'in subroutine after changing: ', x, y
  end subroutine
end program validexm1
 

次のような出力になります。

before calling: 10 20
in subroutine after changing: 30 600
after calling: 10 600
 

関連情報

%VAL 組み込み関数の詳細については、%VAL を参照してください。

+--------------------------------IBM 拡張の終り-------------------------------+


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]