This module provides supplementary functions and subroutines to handle matrix allocation, invertion, appending etc.
! add a scalar value to the matrix diagonal (double precision version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout) | :: | matrix_(:,:) | |||
real(kind=dp), | intent(in) | :: | scalar_ |
add a scalar value to the matrix diagonal (integer version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(inout) | :: | matrix_(:,:) | |||
integer(kind=int32), | intent(in) | :: | scalar_ |
add a scalar value to the matrix diagonal (single precision version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=sp), | intent(inout) | :: | matrix_(:,:) | |||
real(kind=sp), | intent(in) | :: | scalar_ |
allocate a 1d array and fill it with 0s (double precision version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout), | allocatable | :: | array_(:) | ||
integer(kind=int32), | intent(in) | :: | size_ |
allocate a 1d array and fill it with 0s (integer version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(inout), | allocatable | :: | array_(:) | ||
integer(kind=int32), | intent(in) | :: | size_ |
allocate a 1d array and fill it with 0s (single precision version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=sp), | intent(inout), | allocatable | :: | array_(:) | ||
integer(kind=int32), | intent(in) | :: | size_ |
allocate a 2d array and fill it with 0s (double precision version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout), | allocatable | :: | array_(:,:) | ||
integer(kind=int32), | intent(in) | :: | size1_ | |||
integer(kind=int32), | intent(in) | :: | size2_ |
allocate a 2d array and fill it with 0s (integer version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(inout), | allocatable | :: | array_(:,:) | ||
integer(kind=int32), | intent(in) | :: | size1_ | |||
integer(kind=int32), | intent(in) | :: | size2_ |
allocate a 2d array and fill it with 0s (single precision version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=sp), | intent(inout), | allocatable | :: | array_(:,:) | ||
integer(kind=int32), | intent(in) | :: | size1_ | |||
integer(kind=int32), | intent(in) | :: | size2_ |
allocate a 3d array and fill it with 0s (double precision version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout), | allocatable | :: | array_(:,:,:) | ||
integer(kind=int32), | intent(in) | :: | size1_ | |||
integer(kind=int32), | intent(in) | :: | size2_ | |||
integer(kind=int32), | intent(in) | :: | size3_ |
allocate a 3d array and fill it with 0s (integer version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(inout), | allocatable | :: | array_(:,:,:) | ||
integer(kind=int32), | intent(in) | :: | size1_ | |||
integer(kind=int32), | intent(in) | :: | size2_ | |||
integer(kind=int32), | intent(in) | :: | size3_ |
allocate a 3d array and fill it with 0s (single precision version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=sp), | intent(inout), | allocatable | :: | array_(:,:,:) | ||
integer(kind=int32), | intent(in) | :: | size1_ | |||
integer(kind=int32), | intent(in) | :: | size2_ | |||
integer(kind=int32), | intent(in) | :: | size3_ |
append element to an array (double precision version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout), | allocatable | :: | array_(:) | ||
real(kind=dp), | intent(in) | :: | element_ |
append element to an array (integer version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(inout), | allocatable | :: | array_(:) | ||
integer(kind=int32), | intent(in) | :: | element_ |
append element to an array (single precision version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=sp), | intent(inout), | allocatable | :: | array_(:) | ||
real(kind=sp), | intent(in) | :: | element_ |
fill the upper/lower triangle of a symmetric matrix (double precision version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout) | :: | matrix_(:,:) | |||
character(len=1), | intent(in) | :: | upper_lower_ |
fill the upper/lower triangle of a symmetric matrix (integer version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(inout) | :: | matrix_(:,:) | |||
character(len=1), | intent(in) | :: | upper_lower_ |
fill the upper/lower triangle of a symmetric matrix (single precision version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=sp), | intent(inout) | :: | matrix_(:,:) | |||
character(len=1), | intent(in) | :: | upper_lower_ |
invert a symmetric matrix using DSYTRI method (double precision version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(inout) | :: | matrix_(:,:) |
invert a symmetric matrix using DSYTRI method (integer version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(inout) | :: | matrix_(:,:) |
invert a symmetric matrix using DSYTRI method (single precision version)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=sp), | intent(inout) | :: | matrix_(:,:) |