+----------------------------------IBM 拡張----------------------------------+
条件付きベクトル・マージ関数 (CVMGM、 CVMGN、CVMGP、CVMGT、CVMGZ) を使用すると、これらの関数を含んでいる既存のコードを移植することができます。
これらの呼び出しは、以下の関数を呼び出すのに非常に似ています。
MERGE ( TSOURCE, FSOURCE, arith_expr .op. 0 )
または
MERGE ( TSOURCE, FSOURCE, logical_expr .op. .TRUE. )
MERGE 組み込み関数は Fortran 90 の一部なので、新しいプログラムには、これらの関数の代わりに、この組み込み関数を使用することをお勧めします。
引き数タイプおよび属性
TSOURCE と FSOURCE のどちらか一方だけがタイプなしの場合は、タイプなしの引き数が他方の引き数のタイプを獲得します。 TSOURCE と FSOURCE のどちらの引き数もタイプなしの場合は、両方の引き数が MASK のタイプを獲得します。 MASK もタイプなしの場合は、TSOURCE と FSOURCE の両方がデフォルト整数であると見なされます。 MASK がタイプなしの場合は、CVMGT 関数のデフォルト論理値、およびその他の CVMGx 関数のデフォルト整数と見なされます。
クラス
エレメント型関数
結果タイプおよび属性
TSOURCE および FSOURCE と同じです。
結果値
結果の関数は、最初の引き数または 2 番目の引き数の値になります。どちらになるかは、3 番目の引き数に対して実行されるテストの結果によって決まります。引き数が配列の場合は、MASK 配列の個々のエレメントに対して実行され、結果には TSOURCE からのエレメントと、FSOURCE からのエレメントが含まれる場合があります。
説明 | 関数戻り値 | 総称名 |
---|---|---|
正かゼロかのテスト | MASK>=0 の場合には TSOURCE、 MASK<0 の場合には FSOURCE | CVMGP |
負のテスト | MASK<0 の場合には TSOURCE、 MASK>=0 の場合には FSOURCE | CVMGM |
ゼロのテスト | MASK=0 の場合には TSOURCE、 MASK<>0 の場合には FSOURCE | CVMGZ |
ゼロ以外のテスト | MASK<>0 の場合には TSOURCE、 MASK=0 の場合には FSOURCE | CVMGN |
真のテスト | MASK= .TRUE. の場合には TSOURCE、 MASK=.FALSE. の場合には FSOURCE | CVMGT |
+--------------------------------IBM 拡張の終り-------------------------------+