|   ALLOCATABLE属性 | 
ALLOCATABLE属性| [例] | 
    INTEGER,DIMENSION(:),ALLOCATABLE ::a
    READ(*,*) n
    ALLOCATE(a(n))
割付け配列
| 
  型指定子,DIMENSION(:),ALLOCATABLE :: 配列名,…  ALLOCATE(配列名(配列の大きさ),…) DEALLOCATE(配列名,…)  | 
| [例] | 
    INTEGER,DIMENSION(:,:),ALLOCATABLE :: a
    INTEGER :: m,n
    READ(*,*) m,n
    ALLOCATE(a(m,n))
        :
    DEALLOCATE(a)
ポインタ指示先の割付け
| 
  ALLOCATE(ポインタ,…) | 
| [例] | 
(1) list構造をもつ領域を確保する。 (2) rootは確保された領域の先頭のアドレスを指す。TYPE list INTEGER :: num TYPE(list),POINTER :: next END TYPE list TYPE(list),POINTER :: root,prt ALLOCATE(root) 
配列の別名の定義(窓の定義)
| [例1] | 
    PROGRAM sample1
       INTEGER,DIMENSION(10),TARGET :: array
       INTEGER,DIMENSION(:),POINTER :: window
       INTEGER :: n,m
       array=(/1,2,3,4,5,6,7,8,9,10/)
       n=2; m=5
       window=>array(n:m)     !窓の作成
       WRITE(*,*) window      !2 3 4 5が出力される
       n=3; m=9
       window=>array(n:m)     !窓の作成
       WRITE(*,*) window      !3 4 5 6 7 8 9が出力される
    END PROGRAM sample1
| [例2] | 
    PROGRAM sample2
       INTEGER,DIMENSION(5,6),TARGET  :: array
       INTEGER,DIMENSION(:,:),POINTER :: window
       INTEGER :: i,j
       DO i=1,5
          DO j=1,6
             array(i,j)=i*10+j
          END DO
       END DO
       window=>array(2:3,2:4)     !窓の作成
       DO i=1,2
          WRITE(*,*) window(i,:)  ! 22 23 24
       END DO                     ! 32 33 34 の出力
    END PROGRAM sample2