PACK |
書式 | PACK(ARRAY,MASK[,VECTOR]) | ||||||
機能 |
MASKに従って、配列ARRAYを1次元配列にする。 たとえば、配列の要素で0でないものを集めた配列を作成することができる。 配列要素の順序に従って、結果の1次元配列のi番目(i=1,2,…,t)の要素は、 MASKのi番目の真である要素に対応するARRAYの要素とする。 VECTORを指定し、その大きさnがn<tであるとき、i=t+1,…,nに対して 結果のi番目の要素の値は、VECTOR(i)とする。 | ||||||
引数 |
| ||||||
戻り値 | 型、種別パラメタは引数ARRAYと同じで1次元配列である。 VECTORを指定した場合、結果の大きさはVECTORと同じで、VECTORを省略した 場合、結果の大きさはMASK中の真である要素の個数である。ただし、 MASKがスカラで値が真のとき、結果の大きさはARRAYの大きさとする。 |
INTEGER,DIMENSION(7) :: a LOGICAL,DIMENSION(7) :: m INTEGER,DIMENSION(4) :: b INTEGER,DIMENSION(6) :: v,c a=(/1, 2, 3, 0, 0, 0, 4/) v=(/11, 22, 33, 44, 55, 66/) m=(a/=0) b=PACK(a,m); WRITE(*,*) b !(1) c=PACK(a,m,v); WRITE(*,*) c !(2)
実行例 |