Documentation for module dbcsr_ptr_util

DBCSR pointer and unmanaged array utilities

source: dbcsr_ptr_util.F
Loading...

public Types:

dbcsr_data_allocation_type
...

Generic procedures:

ensure_array_size
memory_allocate
memory_copy
memory_deallocate
memory_zero
pointer_rank_remap2
pointer_view

Module variables:

:: dbcsr_data_allocation = dbcsr_data_allocation_type()

public Types:

TYPE :: dbcsr_data_allocation_type

...


LOGICAL
:: use_mpi_allocator = .TRUE. ...


Generic procedure ensure_array_size

Ensures that an array is appropriately large.

INTEGER(int_4),
POINTER
:: array(:) ×
INTEGER(int_8),
POINTER
:: array(:) ×
REAL(real_4),
POINTER
:: array(:) ×
REAL(real_8),
POINTER
:: array(:) ×
COMPLEX(real_4),
POINTER
:: array(:) ×
COMPLEX(real_8),
POINTER
:: array(:) ×
INTEGER(int_4),
POINTER, OPTIONAL
:: array_resize(:) ×
INTEGER(int_8),
POINTER, OPTIONAL
:: array_resize(:) ×
REAL(real_4),
POINTER, OPTIONAL
:: array_resize(:) ×
REAL(real_8),
POINTER, OPTIONAL
:: array_resize(:) ×
COMPLEX(real_4),
POINTER, OPTIONAL
:: array_resize(:) ×
COMPLEX(real_8),
POINTER, OPTIONAL
:: array_resize(:) ×
INTEGER,
INTENT(in),
OPTIONAL
:: lb × × × × × ×
INTEGER,
INTENT(in)
:: ub × × × × × ×
REAL(dp),
INTENT(in),
OPTIONAL
:: factor × × × × × ×
LOGICAL,
INTENT(in),
OPTIONAL
:: nocopy × × × × × ×
INTENT(in),
OPTIONAL
:: memory_type × × × × × ×
LOGICAL,
INTENT(in),
OPTIONAL
:: zero_pad × × × × × ×

Generic procedure memory_allocate

Allocates memory

INTEGER(int_4),
POINTER
:: mem(:) ×
INTEGER(int_8),
POINTER
:: mem(:) ×
REAL(real_4),
POINTER
:: mem(:) ×
REAL(real_8),
POINTER
:: mem(:) ×
COMPLEX(real_4),
POINTER
:: mem(:) ×
COMPLEX(real_8),
POINTER
:: mem(:) ×
INTEGER(int_4),
POINTER
:: mem(:,:) ×
INTEGER(int_8),
POINTER
:: mem(:,:) ×
REAL(real_4),
POINTER
:: mem(:,:) ×
REAL(real_8),
POINTER
:: mem(:,:) ×
COMPLEX(real_4),
POINTER
:: mem(:,:) ×
COMPLEX(real_8),
POINTER
:: mem(:,:) ×
INTEGER,
INTENT(in)
:: n × × × × × ×
INTENT(in)
:: mem_type × × × × × × × × × × × ×
INTEGER,
INTENT(in)
:: sizes(2) × × × × × ×

Generic procedure memory_copy

Copies memory area

INTEGER(int_4),
INTENT(out)
:: dst(1:n) ×
INTEGER(int_8),
INTENT(out)
:: dst(1:n) ×
REAL(real_4),
INTENT(out)
:: dst(1:n) ×
REAL(real_8),
INTENT(out)
:: dst(1:n) ×
COMPLEX(real_4),
INTENT(out)
:: dst(1:n) ×
COMPLEX(real_8),
INTENT(out)
:: dst(1:n) ×
INTEGER(int_4),
INTENT(in)
:: src(1:n) ×
INTEGER(int_8),
INTENT(in)
:: src(1:n) ×
REAL(real_4),
INTENT(in)
:: src(1:n) ×
REAL(real_8),
INTENT(in)
:: src(1:n) ×
COMPLEX(real_4),
INTENT(in)
:: src(1:n) ×
COMPLEX(real_8),
INTENT(in)
:: src(1:n) ×
INTEGER,
INTENT(in)
:: n × × × × × ×

Generic procedure memory_deallocate

Deallocates memory

INTEGER(int_4),
POINTER
:: mem(:) ×
INTEGER(int_8),
POINTER
:: mem(:) ×
REAL(real_4),
POINTER
:: mem(:) ×
REAL(real_8),
POINTER
:: mem(:) ×
COMPLEX(real_4),
POINTER
:: mem(:) ×
COMPLEX(real_8),
POINTER
:: mem(:) ×
INTEGER(int_4),
POINTER
:: mem(:,:) ×
INTEGER(int_8),
POINTER
:: mem(:,:) ×
REAL(real_4),
POINTER
:: mem(:,:) ×
REAL(real_8),
POINTER
:: mem(:,:) ×
COMPLEX(real_4),
POINTER
:: mem(:,:) ×
COMPLEX(real_8),
POINTER
:: mem(:,:) ×
INTENT(in)
:: mem_type × × × × × × × × × × × ×

Generic procedure memory_zero

Zeros memory area

INTEGER(int_4),
INTENT(out)
:: dst(1:n) ×
INTEGER(int_8),
INTENT(out)
:: dst(1:n) ×
REAL(real_4),
INTENT(out)
:: dst(1:n) ×
REAL(real_8),
INTENT(out)
:: dst(1:n) ×
COMPLEX(real_4),
INTENT(out)
:: dst(1:n) ×
COMPLEX(real_8),
INTENT(out)
:: dst(1:n) ×
INTEGER,
INTENT(in)
:: n × × × × × ×

Generic procedure pointer_rank_remap2

Sets a rank-2 pointer to rank-1 data using Fortran 2003 pointer rank remapping.

REAL(real_4),
POINTER
:: r2p(:,:) ×
REAL(real_8),
POINTER
:: r2p(:,:) ×
COMPLEX(real_4),
POINTER
:: r2p(:,:) ×
COMPLEX(real_8),
POINTER
:: r2p(:,:) ×
INTEGER(int_8),
POINTER
:: r2p(:,:) ×
INTEGER(int_4),
POINTER
:: r2p(:,:) ×
INTEGER,
INTENT(in)
:: d1 × × × × × ×
INTEGER,
INTENT(in)
:: d2 × × × × × ×
REAL(real_4),
POINTER
:: r1p(:) ×
REAL(real_8),
POINTER
:: r1p(:) ×
COMPLEX(real_4),
POINTER
:: r1p(:) ×
COMPLEX(real_8),
POINTER
:: r1p(:) ×
INTEGER(int_8),
POINTER
:: r1p(:) ×
INTEGER(int_4),
POINTER
:: r1p(:) ×

Generic procedure pointer_view

...

REAL(real_4),
POINTER
:: original(:) ×
REAL(real_8),
POINTER
:: original(:) ×
COMPLEX(real_4),
POINTER
:: original(:) ×
COMPLEX(real_8),
POINTER
:: original(:) ×
INTEGER(int_4),
POINTER
:: original(:) ×
INTEGER(int_8),
POINTER
:: original(:) ×
INTEGER,
INTENT(in)
:: lb × × × × × ×
INTEGER,
INTENT(in)
:: ub × × × × × ×
INTENT(inout)
:: new_area ×
INTENT(in)
:: area ×
INTEGER,
INTENT(in)
:: offset ×
INTEGER,
INTENT(in),
OPTIONAL
:: len ×

SUBROUTINEensure_array_size_i(array, array_resize, lb, ub, factor, nocopy, memory_type, zero_pad)

Ensures that an array is appropriately large.

Arguments:
INTEGER(int_4),
POINTER
:: array(:) array to verify and possibly resize
INTEGER(int_4),
POINTER, OPTIONAL
:: array_resize(:) ...
INTEGER,
INTENT(in),
OPTIONAL
:: lb desired array lower bound
INTEGER,
INTENT(in)
:: ub desired array upper bound
REAL(dp),
INTENT(in),
OPTIONAL
:: factor factor by which to exagerrate enlargements
LOGICAL,
INTENT(in),
OPTIONAL
:: nocopy copy array on enlargement; default is to copy
INTENT(in),
OPTIONAL
:: memory_type use special memory
LOGICAL,
INTENT(in),
OPTIONAL
:: zero_pad zero new allocations; default is to write nothing

SUBROUTINEensure_array_size_l(array, array_resize, lb, ub, factor, nocopy, memory_type, zero_pad)

Ensures that an array is appropriately large.

Arguments:
INTEGER(int_8),
POINTER
:: array(:) array to verify and possibly resize
INTEGER(int_8),
POINTER, OPTIONAL
:: array_resize(:) ...
INTEGER,
INTENT(in),
OPTIONAL
:: lb desired array lower bound
INTEGER,
INTENT(in)
:: ub desired array upper bound
REAL(dp),
INTENT(in),
OPTIONAL
:: factor factor by which to exagerrate enlargements
LOGICAL,
INTENT(in),
OPTIONAL
:: nocopy copy array on enlargement; default is to copy
INTENT(in),
OPTIONAL
:: memory_type use special memory
LOGICAL,
INTENT(in),
OPTIONAL
:: zero_pad zero new allocations; default is to write nothing

SUBROUTINEensure_array_size_s(array, array_resize, lb, ub, factor, nocopy, memory_type, zero_pad)

Ensures that an array is appropriately large.

Arguments:
REAL(real_4),
POINTER
:: array(:) array to verify and possibly resize
REAL(real_4),
POINTER, OPTIONAL
:: array_resize(:) ...
INTEGER,
INTENT(in),
OPTIONAL
:: lb desired array lower bound
INTEGER,
INTENT(in)
:: ub desired array upper bound
REAL(dp),
INTENT(in),
OPTIONAL
:: factor factor by which to exagerrate enlargements
LOGICAL,
INTENT(in),
OPTIONAL
:: nocopy copy array on enlargement; default is to copy
INTENT(in),
OPTIONAL
:: memory_type use special memory
LOGICAL,
INTENT(in),
OPTIONAL
:: zero_pad zero new allocations; default is to write nothing

SUBROUTINEensure_array_size_d(array, array_resize, lb, ub, factor, nocopy, memory_type, zero_pad)

Ensures that an array is appropriately large.

Arguments:
REAL(real_8),
POINTER
:: array(:) array to verify and possibly resize
REAL(real_8),
POINTER, OPTIONAL
:: array_resize(:) ...
INTEGER,
INTENT(in),
OPTIONAL
:: lb desired array lower bound
INTEGER,
INTENT(in)
:: ub desired array upper bound
REAL(dp),
INTENT(in),
OPTIONAL
:: factor factor by which to exagerrate enlargements
LOGICAL,
INTENT(in),
OPTIONAL
:: nocopy copy array on enlargement; default is to copy
INTENT(in),
OPTIONAL
:: memory_type use special memory
LOGICAL,
INTENT(in),
OPTIONAL
:: zero_pad zero new allocations; default is to write nothing

SUBROUTINEensure_array_size_c(array, array_resize, lb, ub, factor, nocopy, memory_type, zero_pad)

Ensures that an array is appropriately large.

Arguments:
COMPLEX(real_4),
POINTER
:: array(:) array to verify and possibly resize
COMPLEX(real_4),
POINTER, OPTIONAL
:: array_resize(:) ...
INTEGER,
INTENT(in),
OPTIONAL
:: lb desired array lower bound
INTEGER,
INTENT(in)
:: ub desired array upper bound
REAL(dp),
INTENT(in),
OPTIONAL
:: factor factor by which to exagerrate enlargements
LOGICAL,
INTENT(in),
OPTIONAL
:: nocopy copy array on enlargement; default is to copy
INTENT(in),
OPTIONAL
:: memory_type use special memory
LOGICAL,
INTENT(in),
OPTIONAL
:: zero_pad zero new allocations; default is to write nothing

SUBROUTINEensure_array_size_z(array, array_resize, lb, ub, factor, nocopy, memory_type, zero_pad)

Ensures that an array is appropriately large.

Arguments:
COMPLEX(real_8),
POINTER
:: array(:) array to verify and possibly resize
COMPLEX(real_8),
POINTER, OPTIONAL
:: array_resize(:) ...
INTEGER,
INTENT(in),
OPTIONAL
:: lb desired array lower bound
INTEGER,
INTENT(in)
:: ub desired array upper bound
REAL(dp),
INTENT(in),
OPTIONAL
:: factor factor by which to exagerrate enlargements
LOGICAL,
INTENT(in),
OPTIONAL
:: nocopy copy array on enlargement; default is to copy
INTENT(in),
OPTIONAL
:: memory_type use special memory
LOGICAL,
INTENT(in),
OPTIONAL
:: zero_pad zero new allocations; default is to write nothing

SUBROUTINEmem_alloc_i(mem, n, mem_type)

Allocates memory

Arguments:
INTEGER(int_4),
POINTER
:: mem(:) memory to allocate
INTEGER,
INTENT(in)
:: n length of elements to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_alloc_l(mem, n, mem_type)

Allocates memory

Arguments:
INTEGER(int_8),
POINTER
:: mem(:) memory to allocate
INTEGER,
INTENT(in)
:: n length of elements to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_alloc_s(mem, n, mem_type)

Allocates memory

Arguments:
REAL(real_4),
POINTER
:: mem(:) memory to allocate
INTEGER,
INTENT(in)
:: n length of elements to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_alloc_d(mem, n, mem_type)

Allocates memory

Arguments:
REAL(real_8),
POINTER
:: mem(:) memory to allocate
INTEGER,
INTENT(in)
:: n length of elements to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_alloc_c(mem, n, mem_type)

Allocates memory

Arguments:
COMPLEX(real_4),
POINTER
:: mem(:) memory to allocate
INTEGER,
INTENT(in)
:: n length of elements to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_alloc_z(mem, n, mem_type)

Allocates memory

Arguments:
COMPLEX(real_8),
POINTER
:: mem(:) memory to allocate
INTEGER,
INTENT(in)
:: n length of elements to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_alloc_i_2d(mem, sizes, mem_type)

Allocates memory

Arguments:
INTEGER(int_4),
POINTER
:: mem(:,:) memory to allocate
INTEGER,
INTENT(in)
:: sizes(2) length of elements to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_alloc_l_2d(mem, sizes, mem_type)

Allocates memory

Arguments:
INTEGER(int_8),
POINTER
:: mem(:,:) memory to allocate
INTEGER,
INTENT(in)
:: sizes(2) length of elements to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_alloc_s_2d(mem, sizes, mem_type)

Allocates memory

Arguments:
REAL(real_4),
POINTER
:: mem(:,:) memory to allocate
INTEGER,
INTENT(in)
:: sizes(2) length of elements to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_alloc_d_2d(mem, sizes, mem_type)

Allocates memory

Arguments:
REAL(real_8),
POINTER
:: mem(:,:) memory to allocate
INTEGER,
INTENT(in)
:: sizes(2) length of elements to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_alloc_c_2d(mem, sizes, mem_type)

Allocates memory

Arguments:
COMPLEX(real_4),
POINTER
:: mem(:,:) memory to allocate
INTEGER,
INTENT(in)
:: sizes(2) length of elements to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_alloc_z_2d(mem, sizes, mem_type)

Allocates memory

Arguments:
COMPLEX(real_8),
POINTER
:: mem(:,:) memory to allocate
INTEGER,
INTENT(in)
:: sizes(2) length of elements to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_copy_i(dst, src, n)

Copies memory area

Arguments:
INTEGER(int_4),
INTENT(out)
:: dst(1:n) destination memory
INTEGER(int_4),
INTENT(in)
:: src(1:n) source memory
INTEGER,
INTENT(in)
:: n length of copy

SUBROUTINEmem_copy_l(dst, src, n)

Copies memory area

Arguments:
INTEGER(int_8),
INTENT(out)
:: dst(1:n) destination memory
INTEGER(int_8),
INTENT(in)
:: src(1:n) source memory
INTEGER,
INTENT(in)
:: n length of copy

SUBROUTINEmem_copy_s(dst, src, n)

Copies memory area

Arguments:
REAL(real_4),
INTENT(out)
:: dst(1:n) destination memory
REAL(real_4),
INTENT(in)
:: src(1:n) source memory
INTEGER,
INTENT(in)
:: n length of copy

SUBROUTINEmem_copy_d(dst, src, n)

Copies memory area

Arguments:
REAL(real_8),
INTENT(out)
:: dst(1:n) destination memory
REAL(real_8),
INTENT(in)
:: src(1:n) source memory
INTEGER,
INTENT(in)
:: n length of copy

SUBROUTINEmem_copy_c(dst, src, n)

Copies memory area

Arguments:
COMPLEX(real_4),
INTENT(out)
:: dst(1:n) destination memory
COMPLEX(real_4),
INTENT(in)
:: src(1:n) source memory
INTEGER,
INTENT(in)
:: n length of copy

SUBROUTINEmem_copy_z(dst, src, n)

Copies memory area

Arguments:
COMPLEX(real_8),
INTENT(out)
:: dst(1:n) destination memory
COMPLEX(real_8),
INTENT(in)
:: src(1:n) source memory
INTEGER,
INTENT(in)
:: n length of copy

SUBROUTINEmem_dealloc_i(mem, mem_type)

Deallocates memory

Arguments:
INTEGER(int_4),
POINTER
:: mem(:) memory to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_dealloc_l(mem, mem_type)

Deallocates memory

Arguments:
INTEGER(int_8),
POINTER
:: mem(:) memory to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_dealloc_s(mem, mem_type)

Deallocates memory

Arguments:
REAL(real_4),
POINTER
:: mem(:) memory to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_dealloc_d(mem, mem_type)

Deallocates memory

Arguments:
REAL(real_8),
POINTER
:: mem(:) memory to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_dealloc_c(mem, mem_type)

Deallocates memory

Arguments:
COMPLEX(real_4),
POINTER
:: mem(:) memory to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_dealloc_z(mem, mem_type)

Deallocates memory

Arguments:
COMPLEX(real_8),
POINTER
:: mem(:) memory to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_dealloc_i_2d(mem, mem_type)

Deallocates memory

Arguments:
INTEGER(int_4),
POINTER
:: mem(:,:) memory to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_dealloc_l_2d(mem, mem_type)

Deallocates memory

Arguments:
INTEGER(int_8),
POINTER
:: mem(:,:) memory to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_dealloc_s_2d(mem, mem_type)

Deallocates memory

Arguments:
REAL(real_4),
POINTER
:: mem(:,:) memory to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_dealloc_d_2d(mem, mem_type)

Deallocates memory

Arguments:
REAL(real_8),
POINTER
:: mem(:,:) memory to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_dealloc_c_2d(mem, mem_type)

Deallocates memory

Arguments:
COMPLEX(real_4),
POINTER
:: mem(:,:) memory to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_dealloc_z_2d(mem, mem_type)

Deallocates memory

Arguments:
COMPLEX(real_8),
POINTER
:: mem(:,:) memory to allocate
INTENT(in)
:: mem_type memory type

SUBROUTINEmem_zero_i(dst, n)

Zeros memory area

Arguments:
INTEGER(int_4),
INTENT(out)
:: dst(1:n) destination memory
INTEGER,
INTENT(in)
:: n length of elements to zero

SUBROUTINEmem_zero_l(dst, n)

Zeros memory area

Arguments:
INTEGER(int_8),
INTENT(out)
:: dst(1:n) destination memory
INTEGER,
INTENT(in)
:: n length of elements to zero

SUBROUTINEmem_zero_s(dst, n)

Zeros memory area

Arguments:
REAL(real_4),
INTENT(out)
:: dst(1:n) destination memory
INTEGER,
INTENT(in)
:: n length of elements to zero

SUBROUTINEmem_zero_d(dst, n)

Zeros memory area

Arguments:
REAL(real_8),
INTENT(out)
:: dst(1:n) destination memory
INTEGER,
INTENT(in)
:: n length of elements to zero

SUBROUTINEmem_zero_c(dst, n)

Zeros memory area

Arguments:
COMPLEX(real_4),
INTENT(out)
:: dst(1:n) destination memory
INTEGER,
INTENT(in)
:: n length of elements to zero

SUBROUTINEmem_zero_z(dst, n)

Zeros memory area

Arguments:
COMPLEX(real_8),
INTENT(out)
:: dst(1:n) destination memory
INTEGER,
INTENT(in)
:: n length of elements to zero

SUBROUTINEpointer_s_rank_remap2(r2p, d1, d2, r1p)

Sets a rank-2 pointer to rank-1 data using Fortran 2003 pointer rank remapping.

Arguments:
REAL(real_4),
POINTER
:: r2p(:,:) ...
INTEGER,
INTENT(in)
:: d1 ...
INTEGER,
INTENT(in)
:: d2 ...
REAL(real_4),
POINTER
:: r1p(:) ...

SUBROUTINEpointer_d_rank_remap2(r2p, d1, d2, r1p)

Sets a rank-2 pointer to rank-1 data using Fortran 2003 pointer rank remapping.

Arguments:
REAL(real_8),
POINTER
:: r2p(:,:) ...
INTEGER,
INTENT(in)
:: d1 ...
INTEGER,
INTENT(in)
:: d2 ...
REAL(real_8),
POINTER
:: r1p(:) ...

SUBROUTINEpointer_c_rank_remap2(r2p, d1, d2, r1p)

Sets a rank-2 pointer to rank-1 data using Fortran 2003 pointer rank remapping.

Arguments:
COMPLEX(real_4),
POINTER
:: r2p(:,:) ...
INTEGER,
INTENT(in)
:: d1 ...
INTEGER,
INTENT(in)
:: d2 ...
COMPLEX(real_4),
POINTER
:: r1p(:) ...

SUBROUTINEpointer_z_rank_remap2(r2p, d1, d2, r1p)

Sets a rank-2 pointer to rank-1 data using Fortran 2003 pointer rank remapping.

Arguments:
COMPLEX(real_8),
POINTER
:: r2p(:,:) ...
INTEGER,
INTENT(in)
:: d1 ...
INTEGER,
INTENT(in)
:: d2 ...
COMPLEX(real_8),
POINTER
:: r1p(:) ...

SUBROUTINEpointer_l_rank_remap2(r2p, d1, d2, r1p)

Sets a rank-2 pointer to rank-1 data using Fortran 2003 pointer rank remapping.

Arguments:
INTEGER(int_8),
POINTER
:: r2p(:,:) ...
INTEGER,
INTENT(in)
:: d1 ...
INTEGER,
INTENT(in)
:: d2 ...
INTEGER(int_8),
POINTER
:: r1p(:) ...

SUBROUTINEpointer_i_rank_remap2(r2p, d1, d2, r1p)

Sets a rank-2 pointer to rank-1 data using Fortran 2003 pointer rank remapping.

Arguments:
INTEGER(int_4),
POINTER
:: r2p(:,:) ...
INTEGER,
INTENT(in)
:: d1 ...
INTEGER,
INTENT(in)
:: d2 ...
INTEGER(int_4),
POINTER
:: r1p(:) ...

FUNCTIONpointer_view_s(original, lb, ub)

Returns a pointer with different bounds.

Return Value ::
REAL(real_4)
new pointer
Arguments:
REAL(real_4),
POINTER
:: original(:) original data pointer
INTEGER,
INTENT(in)
:: lb lower and upper bound for the new pointer view
INTEGER,
INTENT(in)
:: ub lower and upper bound for the new pointer view

FUNCTIONpointer_view_d(original, lb, ub)

Returns a pointer with different bounds.

Return Value ::
REAL(real_8)
new pointer
Arguments:
REAL(real_8),
POINTER
:: original(:) original data pointer
INTEGER,
INTENT(in)
:: lb lower and upper bound for the new pointer view
INTEGER,
INTENT(in)
:: ub lower and upper bound for the new pointer view

FUNCTIONpointer_view_c(original, lb, ub)

Returns a pointer with different bounds.

Return Value ::
COMPLEX(real_4)
new pointer
Arguments:
COMPLEX(real_4),
POINTER
:: original(:) original data pointer
INTEGER,
INTENT(in)
:: lb lower and upper bound for the new pointer view
INTEGER,
INTENT(in)
:: ub lower and upper bound for the new pointer view

FUNCTIONpointer_view_z(original, lb, ub)

Returns a pointer with different bounds.

Return Value ::
COMPLEX(real_8)
new pointer
Arguments:
COMPLEX(real_8),
POINTER
:: original(:) original data pointer
INTEGER,
INTENT(in)
:: lb lower and upper bound for the new pointer view
INTEGER,
INTENT(in)
:: ub lower and upper bound for the new pointer view

FUNCTIONpointer_view_i(original, lb, ub)

Returns a pointer with different bounds.

Return Value ::
INTEGER(int_4)
new pointer
Arguments:
INTEGER(int_4),
POINTER
:: original(:) original data pointer
INTEGER,
INTENT(in)
:: lb lower and upper bound for the new pointer view
INTEGER,
INTENT(in)
:: ub lower and upper bound for the new pointer view

FUNCTIONpointer_view_l(original, lb, ub)

Returns a pointer with different bounds.

Return Value ::
INTEGER(int_8)
new pointer
Arguments:
INTEGER(int_8),
POINTER
:: original(:) original data pointer
INTEGER,
INTENT(in)
:: lb lower and upper bound for the new pointer view
INTEGER,
INTENT(in)
:: ub lower and upper bound for the new pointer view

FUNCTIONpointer_view_a(new_area, area, offset, len)

Repoints a pointer into a part of a data area

Return Value ::
copy of new_area
Arguments:
INTENT(inout)
:: new_area repoints this encapsulated pointer
INTENT(in)
:: area area to point into
INTEGER,
INTENT(in)
:: offset point to this offset in area
INTEGER,
INTENT(in),
OPTIONAL
:: len length of data area to point to