| SPREAD |
SPREAD| 書式 | SPREAD(SOURCE,DIM,NCOPIES) | ||||||
| 機能 |
配列を複製して次元を付け加える。指定した次元DIMについてSOURCEを
NCOPIES個分複写し、1次元だけ大きい配列を形成する。 SOURCEがスカラであるとき、結果の各要素はSOURCEに等しい値とする。 SOURCEが配列であるとき、 (r1,r2,…,rn+1)である。 結果の要素はSOURCE(r1,r2,…, rDIM-1,rDIM+1,…,rn+1)に等しい値とする。 nはSOURCEの次元数とする。 | ||||||
| 引数 |
| ||||||
| 戻り値 |
型、種別型パラメタはSOURCEと同じで、形状はn+1次元配列である。 SOURCEがスカラであるとき、結果の形状は(max(NCOPIES,0))とする。 SOURCEの値が形状(d1,d2,…,dn)である結果の形 状はSOURCE(d1,d2,…,dDIM-1,max(NCOPIES,0), dDIM,…,dn)とする。 |
サンプルプログラム
┌───┬───┬───┬───┐
a│ 1 │ 2 │ 3 │ 4 │
└───┴───┴───┴───┘
┌───┬───┬───┬───┐ ┌───┬───┬───┐
b│ 1 │ 2 │ 3 │ 4 │ c│ 1 │ 1 │ 1 │
│ 1 │ 2 │ 3 │ 4 │ │ 2 │ 2 │ 2 │
│ 1 │ 2 │ 3 │ 4 │ │ 3 │ 3 │ 3 │
└───┴───┴───┴───┘ │ 4 │ 4 │ 4 │
└───┴───┴───┘
INTEGER :: i
INTEGER,DIMENSION(4) :: a
INTEGER,DIMENSION(3,4) :: b
INTEGER,DIMENSION(4,3) :: c
a=(/1,2,3,4/)
b=SPREAD(a,1,3)
WRITE(*,'(4I2)') (b(i,:),i=1,3)
WRITE(*,*) '--------'
c=SPREAD(a,2,3)
WRITE(*,'(3I2)') (c(i,:),i=1,4)
| 実行例 |