TRANSFER(SOURCE, MOLD, SIZE)

目的

物理表現は SOURCE と同一で、MOLD の型および型付きパラメーターで解釈された結果を戻します。

符号拡張、丸め、ブランクの埋め込み、および、他の変換方法 を使用して発生させることができるその他の変更を行わずに、 型間で低レベルの変換を実行します。

クラス

変換関数

引き数の型と属性

SOURCE
ビット単位値を別の型に変えたいデータ・エンティティーです。 これは、型は任意で、スカラー値でも配列値でもかまいません。

MOLD
結果として望んでいる型 特性を持つデータ・エンティティーです。 MOLD が変数の場合、値を定義する必要はありません。 これは、型は任意で、スカラー値でも配列値でもかまいません。 その値は使用されず、その型特性だけが使用されます。

SIZE (オプション)
出力結果に対するエレメントの数です。 これは、スカラー整数でなければなりません。 対応する実引き数は、オプションの仮引き数であってはなりません。

結果の値と属性

MOLD と同じ型および型付きパラメーター。

MOLD がスカラーで、SIZE を指定しないと、結果はスカラーになります。

MOLD が配列値で、SIZE を指定しないと、結果はランク 1 の配列値になり、SOURCE を保持できるだけの物理的に 十分な最小のサイズを持ちます。

SIZE を指定した場合には、結果はランク 1 で、サイズが SIZE の配列値になります。

結果の値

結果の物理表現は SOURCE と同じで、結果が小さい場合は切り捨てられ、 結果が大きい場合は不定の後続部分を持ちます。

物理表現は変更されないので、結果が切り捨てられない限り、TRANSFER の 結果を元に戻すことができます。

      REAL(4) X /3.141/
      DOUBLE PRECISION I, J(6) /1,2,3,4,5,6/
 
! Because x is transferred to a larger representation
! and then back, its value is unchanged.
      X = TRANSFER( TRANSFER( X, I ), X )
 
! j is transferred into a real(4) array large enough to
! hold all its elements, then back into an array of
! its original size, so its value is unchanged too.
      J = TRANSFER( TRANSFER( J, X ), J, SIZE=SIZE(J) )

IBM 拡張の開始TRANSFER (1082130432, 0.0) は 4.0 です。 IBM 拡張の終了

TRANSFER ((/1.1,2.2,3.3/), (/(0.0,0.0)/)) は 長さ 2 を持つ複素数のランク 1 配列で、最初のエレメントは値 (1.1, 2.2) を持ち、2 番目 のエレメントは値 3.3 を持つ実数部を持ちます。2 番目のエレメントの虚数部は不定です。

TRANSFER ((/1.1,2.2,3.3/), (/(0.0,0.0)/), 1) は、 値 (/(1.1,2.2)/) を持ちます。 IBM Copyright 2003