Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(array_i1d_obj), | intent(out) | :: | array | |||
integer, | DIMENSION(:), POINTER, CONTIGUOUS | :: | DATA | |||
logical, | intent(in), | optional | :: | gift |
SUBROUTINE array_new_i1d(array, DATA, gift) TYPE(array_i1d_obj), INTENT(OUT) :: array INTEGER, DIMENSION(:), POINTER, CONTIGUOUS :: DATA LOGICAL, INTENT(IN), OPTIONAL :: gift INTEGER :: lb, ub LOGICAL :: g ALLOCATE (array%low) array%low%refcount = 1 g = .FALSE. IF (PRESENT(gift)) g = gift IF (g) THEN array%low%data => DATA NULLIFY (DATA) ELSE lb = LBOUND(DATA, 1) ub = UBOUND(DATA, 1) ALLOCATE (array%low%data(lb:ub)) array%low%data(:) = DATA(:) END IF END SUBROUTINE array_new_i1d