XL Fortran for AIX V8.1.1

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

UNPACK (VECTOR, MASK, FIELD)

1 次元配列からいくつかのまたは全部の配列をとり、再調整して別の (おそらく、もっと大きい) 配列にします。

引き数タイプおよび属性

VECTOR
任意のデータ型の 1 次元配列です。少なくとも MASK 内の .TRUE. 値と同数のエレメントが VECTOR 内になければなりません。

MASK
VECTOR のエレメントがアンパックされる時にどこに置かれるかを決定する論理配列です。

FIELD
マスク引き数と同じ形状と、VECTOR と同じデータ型を持っていなければなりません。そのエレメントは、対応する MASK エレメントが値 .FALSE. を持っている場合は必ず、結果配列に挿入されます。

クラス

変換関数

結果値

結果は MASK と同じ形状と、VECTOR と同じデータ型を持つ配列になります。

結果のエレメントは配列エレメント順に埋め込まれます。つまり、MASK 内の対応するエレメントが .TRUE. である場合は、結果のエレメントは VECTOR の次のエレメントで埋め込まれます。それ以外の場合は、FIELD の対応するエレメントで埋め込まれます。

! VECTOR is the array (/ 5, 6, 7, 8 /),
! MASK is | F T T |, FIELD is | -1 -4 -7 |
!         | T F F |           | -2 -5 -8 |
!         | F F T |           | -3 -6 -9 |
 
! Turn the one-dimensional vector into a two-dimensional
! array.  The elements of VECTOR are placed into the .TRUE.
! positions in MASK, and the remaining elements are
! made up of negative values from FIELD.
       RES = UNPACK( VECTOR, MASK, FIELD )
! The result is | -1  6  7 |
!               |  5 -5 -8 |
!               | -3 -6  8 |
 
! Do the same transformation, but using all zeros for the
! replacement values of FIELD.
        RES = UNPACK( VECTOR, MASK, FIELD = 0 )
! The result is | 0 6 7 |
!               | 5 0 0 |
!               | 0 0 8 |


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