deallocate Interface

public interface deallocate

Deallocate an allocatable array.

Contains fundamental routines to deallocate allocatable arrays of different types and shapes. Does not overload the intrinsic deallocate function.

This way, calling deallocate makes the user aware that checks are being made and errors are handled with a message.

Checks for an error during allocation, and will stop the code if there is one.

Example usage

use variableKind
use m_allocate, only: allocate
use m_deallocate, only: deallocate
 ! Could be other intrinsic types too, integer(i32), complex(r32), etc.
real(r64),allocatable :: a1D(:), a2D(:,:), a3D(:,:,:)
call allocate(a1D, 20)
call allocate(a2D, [20,20])
call allocate(a3D, [20,20,20])
write(*,'(a)') 'Shape of a3D is [20,20,20]? '//all(shape(a3D) == [20,20,20])
call deallocate(a1D)
call deallocate(a2D)
call deallocate(a3D)


Subroutines

public subroutine deallocate_r1D(this)

Interfaced with deallocate

Arguments

Type IntentOptional AttributesName
real(kind=r32), intent(inout), allocatable:: this(:)

1D array

public subroutine deallocate_r2D(this)

Interfaced with deallocate

Arguments

Type IntentOptional AttributesName
real(kind=r32), intent(inout), allocatable:: this(:,:)

2D array

public subroutine deallocate_r3D(this)

Interfaced with deallocate

Arguments

Type IntentOptional AttributesName
real(kind=r32), intent(inout), allocatable:: this(:,:,:)

3D array

public subroutine deallocate_d1D(this)

Interfaced with deallocate

Arguments

Type IntentOptional AttributesName
real(kind=r64), intent(inout), allocatable:: this(:)

1D array

public subroutine deallocate_d2D(this)

Interfaced with deallocate

Arguments

Type IntentOptional AttributesName
real(kind=r64), intent(inout), allocatable:: this(:,:)

2D array

public subroutine deallocate_d3D(this)

Interfaced with deallocate

Arguments

Type IntentOptional AttributesName
real(kind=r64), intent(inout), allocatable:: this(:,:,:)

3D array

public subroutine deallocate_i1D(this)

Interfaced with deallocate

Arguments

Type IntentOptional AttributesName
integer(kind=i32), intent(inout), allocatable:: this(:)

1D array

public subroutine deallocate_i2D(this)

Interfaced with deallocate

Arguments

Type IntentOptional AttributesName
integer(kind=i32), intent(inout), allocatable:: this(:,:)

2D array

public subroutine deallocate_i3D(this)

Interfaced with deallocate

Arguments

Type IntentOptional AttributesName
integer(kind=i32), intent(inout), allocatable:: this(:,:,:)

3D array

public subroutine deallocate_id1D(this)

Interfaced with deallocate

Arguments

Type IntentOptional AttributesName
integer(kind=i64), intent(inout), allocatable:: this(:)

1D array

public subroutine deallocate_id2D(this)

Interfaced with deallocate

Arguments

Type IntentOptional AttributesName
integer(kind=i64), intent(inout), allocatable:: this(:,:)

2D array

public subroutine deallocate_id3D(this)

Interfaced with deallocate

Arguments

Type IntentOptional AttributesName
integer(kind=i64), intent(inout), allocatable:: this(:,:,:)

3D array

public subroutine deallocate_c1D(this)

Interfaced with deallocate

Arguments

Type IntentOptional AttributesName
complex(kind=r32), intent(inout), allocatable:: this(:)

1D array

public subroutine deallocate_c2D(this)

Interfaced with deallocate

Arguments

Type IntentOptional AttributesName
complex(kind=r32), intent(inout), allocatable:: this(:,:)

2D array

public subroutine deallocate_c3D(this)

Interfaced with deallocate

Arguments

Type IntentOptional AttributesName
complex(kind=r32), intent(inout), allocatable:: this(:,:,:)

3D array

public subroutine deallocate_z1D(this)

Interfaced with deallocate

Arguments

Type IntentOptional AttributesName
complex(kind=r64), intent(inout), allocatable:: this(:)

1D array

public subroutine deallocate_z2D(this)

Interfaced with deallocate

Arguments

Type IntentOptional AttributesName
complex(kind=r64), intent(inout), allocatable:: this(:,:)

2D array

public subroutine deallocate_z3D(this)

Interfaced with deallocate

Arguments

Type IntentOptional AttributesName
complex(kind=r64), intent(inout), allocatable:: this(:,:,:)

3D array

public subroutine deallocate_l1D(this)

Interfaced with deallocate

Arguments

Type IntentOptional AttributesName
logical, intent(inout), allocatable:: this(:)

1D array

public subroutine deallocate_l2D(this)

Interfaced with deallocate

Arguments

Type IntentOptional AttributesName
logical, intent(inout), allocatable:: this(:,:)

2D array

public subroutine deallocate_l3D(this)

Interfaced with deallocate

Arguments

Type IntentOptional AttributesName
logical, intent(inout), allocatable:: this(:,:,:)

3D array


allocate allocate_test appendString arange argInsertionsort argMedianOf3 argPartition argSelect argSort array1D_test binarySearch checkIsOpen closeFile compact compare compare_d1 copy copy_test countEntries crossproduct cumprod cumsum dArgDynamicArray dArgDynamicArray_test daysInMonth daysInYear dDynamicArray dDynamicArray_test deallocate debug debug_s deleteFile diff eMsg fastTwoDiff fastTwoSum fErr fileExists fileIO_test geometricMean getExtension getFileSize getNFileLines getRandomSeed hasExtension hasNentries iachar1D iArgDynamicArray iArgDynamicArray_test idArgDynamicArray idArgDynamicArray_test idDynamicArray idDynamicArray_test iDynamicArray iDynamicArray_test ind2sub indexing_test insertionsort integerBin intervalSearch isLeapYear isOpen isSorted isString KdTree KdTree_test lowerCase maths_test mean median medianOf3 mErr msg norm1 normI openBinaryFile openFile partition partition3way partition3way_d1D prependString Prng Prng_test ProgressBar project random_test rArgDynamicArray rArgDynamicArray_test rDynamicArray rDynamicArray_test read1Dble read1Integer readline readline reallocate reallocate_test removeComments repeat replacedelim rngExponential rngExponential_d1 rngExponential_d1D rngExponential_d2D rngExponential_d3D rngExponential_unscaled_d1 rngInteger rngInteger_i1 rngInteger_i1D rngInteger_i2D rngInteger_i3D rngNormal rngNormal_d1 rngNormal_d1D rngNormal_d2D rngNormal_d3D rngUniform rngUniform_d1 rngUniform_d1D rngUniform_d2D rngUniform_d3D rngUniform_xorshift rngWeibull rngWeibull_d1 rngWeibull_d1D rngWeibull_d2D rngWeibull_d3D secondsToHMS select select_test setPrng setPrng_withSeed setPrng_WOseed shuffle simpleSearch skipFileLines sort sorting_test std str strings_test sub2ind swap test tester time_test timeInSeconds timeToInteger trimExtension trimmedmean twoDiff twoSum upperCase variance wMsg writeline