MERGE
copyright

green dotMERGE

書式 MERGE(TSOURCE,FSOURCE,MASK)
機能 2つの配列TSOURCE,FSOURCEからMASKの値に従っていずれか 一方の配列の値を選択し、新しい配列を作成する。

[例]

TSOURCE 1 2 3 4 5
FSOURCE 9192939495
MASK TRUEFALSETRUEFALSEFALSE
結果MERGE 192 39495
引数
TSOURCE任意の型
FSOURCETSOURCEと同じ型、種別型パラメタ
MASK 論理型である。
配列に.TRUE., .FALSE.を いれて指定するか論理式(たとえば、a>=10)で記述する。
戻り値 型、種別パラメタは引数TSOURCEと同じである。

green dotサンプルプログラム

 (1)では、配列a,bを与えMASKの値によって、配列cを作成する。
 (2)では、配列aの値のうちで3より大きいものに対して、 配列aの値を配列cに入れ、そうでないものは配列bの値を配列cに入れる。
    INTEGER,DIMENSION(5) :: a,b,c
    LOGICAL,DIMENSION(5) :: mask
    a=(/1, 2, 3, 4, 5/)
    b=(/6, 7, 8, 9, 10/)
    mask=(/.TRUE., .FALSE., .TRUE., .TRUE., .TRUE./)
    c=MERGE(a,b,mask)                  !(1)
    WRITE(*,*) c
    mask=(a>3)
    c=MERGE(a,b,mask)                  !(2)
    WRITE(*,*) c

実行例
1 7 3 4 5 6 7 8 4 5
line-end