grid_tools 1.14.0
Loading...
Searching...
No Matches
pmat.f90 File Reference

Utility routines for various linear inversions and Cholesky. More...

Go to the source code of this file.

Data Types

interface  pmat::inv
 
interface  pmat::invl
 
interface  pmat::invu
 
interface  pmat::l1lm
 
interface  pmat::ldlm
 
interface  pmat::ldum
 
interface  pmat::swpvv
 
interface  pmat::udlmm
 

Functions/Subroutines

subroutine pmat::cinvmt (a)
 Invert complex matrix in place.
 
subroutine pmat::cinvmtf (a, ff)
 Invert a complex matrix in place, or flag if process fails.
 
subroutine pmat::cldum (a, ipiv, d)
 Perform L*D*U decomposition, with pivoting, of square matrix.
 
subroutine pmat::cldumf (a, ipiv, d, ff)
 Perform l-d-u decomposition of square matrix a in place with pivoting.
 
subroutine pmat::clinmmt (a, b)
 Invert complex linear system with multiple right-hand side vectors.
 
subroutine pmat::clinmmtf (a, b, ff)
 Invert linear system with multiple right-hand side vectors, or flag failure.
 
subroutine pmat::clinmvt (a, b)
 Invert linear system with single right-hand side vector.
 
subroutine pmat::clinmvtf (a, b, ff)
 Invert complex linear system with single right-hand side vector.
 
subroutine pmat::cswpvv (d, e)
 Swap a pair of complex vectors.
 
subroutine pmat::cudlmm (a, b, ipiv)
 Use l-u factors in A to back-substitute for several rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition.
 
subroutine pmat::cudlmv (a, b, ipiv)
 Use l-u factors in A to back-substitute for 1 rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition.
 
subroutine pmat::dinvl (a)
 Invert lower triangular matrix in place.
 
subroutine pmat::dinvmt (a)
 Invert double precision matrix in place.
 
subroutine pmat::dinvmtf (a, ff)
 Invert a double precision matrix in place, or flag if process fails.
 
subroutine pmat::dinvu (a)
 Invert the upper triangular matrix in place by transposing, calling invl, and transposing again.
 
subroutine pmat::dl1lm (a, b)
 Cholesky, M -> L*U, U(i,j)=L(j,i)
 
subroutine pmat::dl1lmf (a, b, ff)
 Cholesky, M -> L*U, U(i,j)=L(j,i)
 
subroutine pmat::dldlm (a, b, d)
 Modified Cholesky decompose Q --> L*D*U, U(i,j)=L(j,i)
 
subroutine pmat::dldlmf (a, b, d, ff)
 Modified Cholesky Q --> L*D*U, U(i,j)=L(j,i)
 
subroutine pmat::dldum (a, ipiv, d)
 Perform L*D*U decomposition, with pivoting, of square matrix.
 
subroutine pmat::dldumf (a, ipiv, d, ff)
 Perform l-d-u decomposition of square matrix a in place with pivoting.
 
subroutine pmat::dlinlv (a, u)
 Solve linear system involving lower triangular system matrix.
 
subroutine pmat::dlinmmt (a, b)
 Invert linear system with multiple right-hand side vectors.
 
subroutine pmat::dlinmmtf (a, b, ff)
 Invert linear system with multiple right-hand side vectors, or flag failure.
 
subroutine pmat::dlinmvt (a, b)
 Invert linear system with single right-hand side vector.
 
subroutine pmat::dlinmvtf (a, b, ff)
 Invert linear system with single right-hand side vector.
 
subroutine pmat::dlinuv (a, u)
 Solve linear system involving upper triangular system matrix.
 
subroutine pmat::dswpvv (d, e)
 Swap a pair of double precision vectors.
 
subroutine pmat::dudlmm (a, b, ipiv)
 Use l-u factors in A to back-substitute for several rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition.
 
subroutine pmat::dudlmv (a, b, ipiv)
 Use l-u factors in A to back-substitute for 1 rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition.
 
subroutine pmat::iinvf (imat, ff)
 Invert integer square matrix, imat, if possible, but flag ff=.true.
 
subroutine pmat::sinvl (a)
 Invert lower triangular matrix in place.
 
subroutine pmat::sinvmt (a)
 Invert single precision matrix in place.
 
subroutine pmat::sinvmtf (a, ff)
 Invert a single precision matrix in place, or flag if process fails.
 
subroutine pmat::sinvu (a)
 Invert the upper triangular matrix in place by transposing, calling invl, and transposing again.
 
subroutine pmat::sl1lm (a, b)
 Cholesky, M -> L*U, U(i,j)=L(j,i)
 
subroutine pmat::sl1lmf (a, b, ff)
 Cholesky, M -> L*U, U(i,j)=L(j,i)
 
subroutine pmat::sldlm (a, b, d)
 Modified Cholesky decompose Q --> L*D*U, U(i,j)=L(j,i)
 
subroutine pmat::sldlmf (a, b, d, ff)
 Modified Cholesky decompose Q --> L*D*U, U(i,j)=L(j,i)
 
subroutine pmat::sldum (a, ipiv, d)
 Perform L*D*U decomposition, with pivoting, of square matrix.
 
subroutine pmat::sldumf (a, ipiv, d, ff)
 Perform l-d-u decomposition of square matrix a in place with pivoting.
 
subroutine pmat::slinlv (a, u)
 Solve linear system involving lower triangular system matrix.
 
subroutine pmat::slinmmt (a, b)
 Invert linear system with multiple right-hand side vectors.
 
subroutine pmat::slinmmtf (a, b, ff)
 Invert linear system with multiple right-hand side vectors, or flag failure.
 
subroutine pmat::slinmvt (a, b)
 Invert linear system with single right-hand side vector.
 
subroutine pmat::slinmvtf (a, b, ff)
 Invert linear system with single right-hand side vector.
 
subroutine pmat::slinuv (a, u)
 Solve linear system involving upper triangular system matrix.
 
subroutine pmat::sswpvv (d, e)
 Swap a pair of single precision vectors.
 
subroutine pmat::sudlmm (a, b, ipiv)
 Use l-u factors in A to back-substitute for several rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition.
 
subroutine pmat::sudlmv (a, b, ipiv)
 Use l-u factors in A to back-substitute for 1 rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition.
 

Detailed Description

Utility routines for various linear inversions and Cholesky.

Author
R. J. Purser, NOAA/NCEP/EMC, Tsukasa Fujita, JMA.

Definition in file pmat.f90.

Function/Subroutine Documentation

◆ cinvmt()

subroutine pmat::cinvmt ( complex(dpc), dimension(:,:), intent(inout) a)
private

Invert complex matrix in place.

Parameters
[in,out]amatrix
Author
R. J. Purser

Definition at line 103 of file pmat.f90.

◆ cinvmtf()

subroutine pmat::cinvmtf ( complex(dpc), dimension(:,:), intent(inout) a,
logical, intent(out) ff )
private

Invert a complex matrix in place, or flag if process fails.

Parameters
[in,out]amatrix
[out]ffflag for error condition
Author
R. J. Purser

Definition at line 190 of file pmat.f90.

◆ cldum()

subroutine pmat::cldum ( complex(dpc), dimension(:,:), intent(inout) a,
integer(spi), dimension(:), intent(out) ipiv,
complex(dpc), intent(out) d )
private

Perform L*D*U decomposition, with pivoting, of square matrix.

Complex double precision version.

Parameters
[in,out]ainput square matrix, output L,D,U factors
[out]ddeterminant sign change indicator (+1 or -1)
[out]ipivvector of pivots
Author
R. J. Purser

Definition at line 508 of file pmat.f90.

◆ cldumf()

subroutine pmat::cldumf ( complex(dpc), dimension(:,:), intent(inout) a,
integer(spi), dimension(:), intent(out) ipiv,
complex(dpc), intent(out) d,
logical, intent(out) ff )
private

Perform l-d-u decomposition of square matrix a in place with pivoting.

Complex double precision version.

Parameters
[in,out]asquare matrix to be factorized
[out]ipivvector encoding the pivoting sequence
[out]dindicator for possible sign change of determinant
[out]fffailure flag, set to .true. when determinant of a vanishes.
Author
R. J. Purser

Definition at line 659 of file pmat.f90.

◆ clinmmt()

subroutine pmat::clinmmt ( complex(dpc), dimension(:,:), intent(inout) a,
complex(dpc), dimension(:,:), intent(inout) b )
private

Invert complex linear system with multiple right-hand side vectors.

Complex double precision version.

Parameters
[in,out]aInvertible system matrix, destroyed on output
[in,out]binput RHS vectors, output solution vectors
Author
R. J. Purser

Definition at line 255 of file pmat.f90.

◆ clinmmtf()

subroutine pmat::clinmmtf ( complex(dpc), dimension(:,:), intent(inout) a,
complex(dpc), dimension(:,:), intent(inout) b,
logical, intent(out) ff )
private

Invert linear system with multiple right-hand side vectors, or flag failure.

Complex double precision version.

Parameters
[in,out]aInvertible system matrix, destroyed on output
[in,out]binput RHS vectors, output solution vectors
[out]fffailure flag
Author
R. J. Purser

Definition at line 319 of file pmat.f90.

◆ clinmvt()

subroutine pmat::clinmvt ( complex(dpc), dimension(:,:), intent(inout) a,
complex(dpc), dimension(:), intent(inout) b )
private

Invert linear system with single right-hand side vector.

Complex double precision version.

Parameters
[in,out]aInvertible system matrix, destroyed on output
[in,out]binput RHS vector, output solution vector
Author
R. J. Purser

Definition at line 371 of file pmat.f90.

◆ clinmvtf()

subroutine pmat::clinmvtf ( complex(dpc), dimension(:,:), intent(inout) a,
complex(dpc), dimension(:), intent(inout) b,
logical, intent(out) ff )
private

Invert complex linear system with single right-hand side vector.

Parameters
[in,out]aInvertible system matrix, destroyed on output
[in,out]binput RHS vector, output solution vector
[out]fffailure flag
Author
R. J. Purser

Definition at line 429 of file pmat.f90.

◆ cswpvv()

subroutine pmat::cswpvv ( complex(dpc), dimension(:), intent(inout) d,
complex(dpc), dimension(:), intent(inout) e )
private

Swap a pair of complex vectors.

Parameters
[in,out]dvector
[in,out]evector
Author
R. J. Purser

Definition at line 71 of file pmat.f90.

◆ cudlmm()

subroutine pmat::cudlmm ( complex(dpc), dimension(:,:), intent(in) a,
complex(dpc), dimension(:,:), intent(inout) b,
integer(spi), dimension(:), intent(in) ipiv )
private

Use l-u factors in A to back-substitute for several rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition.

Parameters
[in]asquare matrix to be factorized
[in,out]brt-hand-sides vectors on input, corresponding solutions on return
[in]ipivvector encoding the pivoting sequence
Author
R. J. Purser

Definition at line 797 of file pmat.f90.

◆ cudlmv()

subroutine pmat::cudlmv ( complex(dpc), dimension(:,:), intent(in) a,
complex(dpc), dimension(:), intent(inout) b,
integer(spi), dimension(:), intent(in) ipiv )
private

Use l-u factors in A to back-substitute for 1 rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition.

Parameters
[in]asquare matrix to be factorized
[in,out]bright-hand side vector on input, corresponding solution on return
[in]ipivarray encoding the pivoting sequence
Author
R. J. Purser

Definition at line 892 of file pmat.f90.

◆ dinvl()

subroutine pmat::dinvl ( real(dp), dimension(:,:), intent(inout) a)
private

Invert lower triangular matrix in place.

Double precision.

Parameters
[in,out]alower triangular matrix.
Author
R. J. Purser

Definition at line 1153 of file pmat.f90.

◆ dinvmt()

subroutine pmat::dinvmt ( real(dp), dimension(:,:), intent(inout) a)
private

Invert double precision matrix in place.

Parameters
[in,out]amatrix
Author
R. J. Purser

Definition at line 92 of file pmat.f90.

◆ dinvmtf()

subroutine pmat::dinvmtf ( real(dp), dimension(:,:), intent(inout) a,
logical, intent(out) ff )
private

Invert a double precision matrix in place, or flag if process fails.

Parameters
[in,out]amatrix
[out]ffflag for error condition
Author
R. J. Purser

Definition at line 153 of file pmat.f90.

◆ dinvu()

subroutine pmat::dinvu ( real(dp), dimension(:,:), intent(inout) a)
private

Invert the upper triangular matrix in place by transposing, calling invl, and transposing again.

Double precision version.

Parameters
[in,out]aupper triangular matrix.
Author
R. J. Purser

Definition at line 1126 of file pmat.f90.

◆ dl1lm()

subroutine pmat::dl1lm ( real(dp), dimension(:,:), intent(in) a,
real(dp), dimension(:,:), intent(inout) b )
private

Cholesky, M -> L*U, U(i,j)=L(j,i)

Parameters
[in]asymmetric matrix.
[in,out]bCholesky factor matrix.
Author
R. J. Purser

Definition at line 933 of file pmat.f90.

◆ dl1lmf()

subroutine pmat::dl1lmf ( real(dp), dimension(:,:), intent(in) a,
real(dp), dimension(:,:), intent(inout) b,
logical, intent(out) ff )
private

Cholesky, M -> L*U, U(i,j)=L(j,i)

Parameters
[in]asymmetric matrix.
[in,out]bCholesky factor matrix.
[out]fffailure flag
Author
R. J. Purser

Definition at line 981 of file pmat.f90.

◆ dldlm()

subroutine pmat::dldlm ( real(dp), dimension(:,:), intent(in) a,
real(dp), dimension(:,:), intent(inout) b,
real(dp), dimension(:), intent(out) d )
private

Modified Cholesky decompose Q --> L*D*U, U(i,j)=L(j,i)

Parameters
[in]asymmetric matrix.
[in,out]boutput modified cholesky factor, L.
[out]ddiagonal matrix, D.
Author
R. J. Purser

Definition at line 1030 of file pmat.f90.

◆ dldlmf()

subroutine pmat::dldlmf ( real(dp), dimension(:,:), intent(in) a,
real(dp), dimension(:,:), intent(inout) b,
real(dp), dimension(:), intent(out) d,
logical, intent(out) ff )
private

Modified Cholesky Q --> L*D*U, U(i,j)=L(j,i)

Parameters
[in]asymmetric matrix.
[in,out]bmodified Cholesky factor, L.
[out]ddiagonal matrix, D.
[out]fferror flag
Author
R. J. Purser

Definition at line 1083 of file pmat.f90.

◆ dldum()

subroutine pmat::dldum ( real(dp), dimension(:,:), intent(inout) a,
integer(spi), dimension(:), intent(out) ipiv,
real(dp), intent(out) d )
private

Perform L*D*U decomposition, with pivoting, of square matrix.

Double precision version.

Parameters
[in,out]ainput square matrix, output L,D,U factors
[out]ddeterminant sign change indicator (+1 or -1)
[out]ipivvector of pivots
Author
R. J. Purser

Definition at line 492 of file pmat.f90.

◆ dldumf()

subroutine pmat::dldumf ( real(dp), dimension(:,:), intent(inout) a,
integer, dimension(:), intent(out) ipiv,
real(dp), intent(out) d,
logical(spi), intent(out) ff )
private

Perform l-d-u decomposition of square matrix a in place with pivoting.

Double precision version.

Parameters
[in,out]asquare matrix to be factorized
[out]ipivvector encoding the pivoting sequence
[out]dindicator for possible sign change of determinant
[out]fffailure flag, set to .true. when determinant of a vanishes.
Author
R. J. Purser

Definition at line 592 of file pmat.f90.

◆ dlinlv()

subroutine pmat::dlinlv ( real(dp), dimension(:,:), intent(in) a,
real(dp), dimension(:), intent(inout) u )
private

Solve linear system involving lower triangular system matrix.

Double precision version.

Parameters
[in]alower triangular matrix.
[in,out]uinput RHS vector, output solution vector.
Author
R. J. Purser

Definition at line 1188 of file pmat.f90.

◆ dlinmmt()

subroutine pmat::dlinmmt ( real(dp), dimension(:,:), intent(inout) a,
real(dp), dimension(:,:), intent(inout) b )
private

Invert linear system with multiple right-hand side vectors.

Double precision version

Parameters
[in,out]aInvertible system matrix, destroyed on output
[in,out]binput RHS vectors, output solution vectors
Author
R. J. Purser

Definition at line 242 of file pmat.f90.

◆ dlinmmtf()

subroutine pmat::dlinmmtf ( real(dp), dimension(:,:), intent(inout) a,
real(dp), dimension(:,:), intent(inout) b,
logical, intent(out) ff )
private

Invert linear system with multiple right-hand side vectors, or flag failure.

Double precision version.

Parameters
[in,out]aInvertible system matrix, destroyed on output
[in,out]binput RHS vectors, output solution vectors
[out]fffailure flag
Author
R. J. Purser

Definition at line 294 of file pmat.f90.

◆ dlinmvt()

subroutine pmat::dlinmvt ( real(dp), dimension(:,:), intent(inout) a,
real(dp), dimension(:), intent(inout) b )
private

Invert linear system with single right-hand side vector.

Double precision version.

Parameters
[in,out]aInvertible system matrix, destroyed on output
[in,out]binput RHS vector, output solution vector
Author
R. J. Purser

Definition at line 357 of file pmat.f90.

◆ dlinmvtf()

subroutine pmat::dlinmvtf ( real(dp), dimension(:,:), intent(inout) a,
real(dp), dimension(:), intent(inout) b,
logical, intent(out) ff )
private

Invert linear system with single right-hand side vector.

Parameters
[in,out]aInvertible system matrix, destroyed on output
[in,out]binput RHS vector, output solution vector
[out]fffailure flag
Author
R. J. Purser

Definition at line 407 of file pmat.f90.

◆ dlinuv()

subroutine pmat::dlinuv ( real(dp), dimension(:,:), intent(in) a,
real(dp), dimension(:), intent(inout) u )
private

Solve linear system involving upper triangular system matrix.

Double precision version.

Parameters
[in]aupper triangular matrix.
[in,out]uinput RHS vector, output solution vector.
Author
R. J. Purser

Definition at line 1218 of file pmat.f90.

◆ dswpvv()

subroutine pmat::dswpvv ( real(dp), dimension(:), intent(inout) d,
real(dp), dimension(:), intent(inout) e )
private

Swap a pair of double precision vectors.

Parameters
[in,out]dvector
[in,out]evector
Author
R. J. Purser

Definition at line 60 of file pmat.f90.

◆ dudlmm()

subroutine pmat::dudlmm ( real(dp), dimension(:,:), intent(in) a,
real(dp), dimension(:,:), intent(inout) b,
integer(spi), dimension(:), intent(in) ipiv )
private

Use l-u factors in A to back-substitute for several rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition.

Parameters
[in]asquare matrix to be factorized
[in,out]brt-hand-sides vectors on input, corresponding solutions on return
[in]ipivvector encoding the pivoting sequence
Author
R. J. Purser

Definition at line 763 of file pmat.f90.

◆ dudlmv()

subroutine pmat::dudlmv ( real(dp), dimension(:,:), intent(in) a,
real(dp), dimension(:), intent(inout) b,
integer(spi), dimension(:), intent(in) ipiv )
private

Use l-u factors in A to back-substitute for 1 rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition.

Parameters
[in]asquare matrix to be factorized
[in,out]bright-hand side vector on input, corresponding solution on return
[in]ipivarray encoding the pivoting sequence
Author
R. J. Purser

Definition at line 861 of file pmat.f90.

◆ iinvf()

subroutine pmat::iinvf ( integer(spi), dimension(:,:), intent(inout) imat,
logical, intent(out) ff )
private

Invert integer square matrix, imat, if possible, but flag ff=.true.

if not possible. (Determinant of imat must be +1 or -1)

Parameters
[in,out]imatinteger square matrix
[out]fferror flag
Author
R. J. Purser

Definition at line 451 of file pmat.f90.

◆ sinvl()

subroutine pmat::sinvl ( real(sp), dimension(:,:), intent(inout) a)
private

Invert lower triangular matrix in place.

Single precision.

Parameters
[in,out]alower triangular matrix.
Author
R. J. Purser

Definition at line 1135 of file pmat.f90.

◆ sinvmt()

subroutine pmat::sinvmt ( real(sp), dimension(:,:), intent(inout) a)
private

Invert single precision matrix in place.

Parameters
[in,out]amatrix
Author
R. J. Purser

Definition at line 81 of file pmat.f90.

◆ sinvmtf()

subroutine pmat::sinvmtf ( real(sp), dimension(:,:), intent(inout) a,
logical, intent(out) ff )
private

Invert a single precision matrix in place, or flag if process fails.

Parameters
[in,out]amatrix
[out]ffflag for error condition
Author
R. J. Purser

Definition at line 115 of file pmat.f90.

◆ sinvu()

subroutine pmat::sinvu ( real(sp), dimension(:,:), intent(inout) a)
private

Invert the upper triangular matrix in place by transposing, calling invl, and transposing again.

Single precision version.

Parameters
[in,out]aupper triangular matrix.
Author
R. J. Purser

Definition at line 1116 of file pmat.f90.

◆ sl1lm()

subroutine pmat::sl1lm ( real(sp), dimension(:,:), intent(in) a,
real(sp), dimension(:,:), intent(inout) b )
private

Cholesky, M -> L*U, U(i,j)=L(j,i)

Parameters
[in]asymmetric matrix.
[in,out]bCholesky factor matrix.
Author
R. J. Purser

Definition at line 920 of file pmat.f90.

◆ sl1lmf()

subroutine pmat::sl1lmf ( real(sp), dimension(:,:), intent(in) a,
real(sp), dimension(:,:), intent(inout) b,
logical, intent(out) ff )
private

Cholesky, M -> L*U, U(i,j)=L(j,i)

Parameters
[in]asymmetric matrix.
[in,out]bCholesky factor matrix.
[out]fffailure flag
Author
R. J. Purser

Definition at line 947 of file pmat.f90.

◆ sldlm()

subroutine pmat::sldlm ( real(sp), dimension(:,:), intent(in) a,
real(sp), dimension(:,:), intent(inout) b,
real(sp), dimension(:), intent(out) d )
private

Modified Cholesky decompose Q --> L*D*U, U(i,j)=L(j,i)

Parameters
[in]asymmetric matrix.
[in,out]boutput modified cholesky factor, L.
[out]ddiagonal matrix, D.
Author
R. J. Purser

Definition at line 1015 of file pmat.f90.

◆ sldlmf()

subroutine pmat::sldlmf ( real(sp), dimension(:,:), intent(in) a,
real(sp), dimension(:,:), intent(inout) b,
real(sp), dimension(:), intent(out) d,
logical, intent(out) ff )
private

Modified Cholesky decompose Q --> L*D*U, U(i,j)=L(j,i)

Parameters
[in]asymmetric matrix
[in,out]bmodified cholesky factor, L.
[out]ddiagonal matrix, D.
[out]fferror flag
Author
R. J. Purser

Definition at line 1046 of file pmat.f90.

◆ sldum()

subroutine pmat::sldum ( real(sp), dimension(:,:), intent(inout) a,
integer(spi), dimension(:), intent(out) ipiv,
real(sp), intent(out) d )
private

Perform L*D*U decomposition, with pivoting, of square matrix.

Single precision version.

Parameters
[in,out]ainput square matrix, output L,D,U factors
[out]ddeterminant sign change indicator (+1 or -1)
[out]ipivvector of pivots
Author
R. J. Purser

Definition at line 476 of file pmat.f90.

◆ sldumf()

subroutine pmat::sldumf ( real(sp), dimension(:,:), intent(inout) a,
integer(spi), dimension(:), intent(out) ipiv,
real(sp), intent(out) d,
logical, intent(out) ff )
private

Perform l-d-u decomposition of square matrix a in place with pivoting.

Single precision version.

Parameters
[in,out]asquare matrix to be factorized
[out]ipivvector encoding the pivoting sequence
[out]dindicator for possible sign change of determinant
[out]fffailure flag, set to .true. when determinant of a vanishes.
Author
R. J. Purser

Definition at line 525 of file pmat.f90.

◆ slinlv()

subroutine pmat::slinlv ( real(sp), dimension(:,:), intent(in) a,
real(sp), dimension(:), intent(inout) u )
private

Solve linear system involving lower triangular system matrix.

Single precision version.

Parameters
[in]alower triangular matrix.
[in,out]uinput RHS vector, output solution vector.
Author
R. J. Purser

Definition at line 1173 of file pmat.f90.

◆ slinmmt()

subroutine pmat::slinmmt ( real(sp), dimension(:,:), intent(inout) a,
real(sp), dimension(:,:), intent(inout) b )
private

Invert linear system with multiple right-hand side vectors.

Single precision version.

Parameters
[in,out]aInvertible system matrix, destroyed on output
[in,out]binput RHS vectors, output solution vectors
Author
R. J. Purser

Definition at line 229 of file pmat.f90.

◆ slinmmtf()

subroutine pmat::slinmmtf ( real(sp), dimension(:,:), intent(inout) a,
real(sp), dimension(:,:), intent(inout) b,
logical, intent(out) ff )
private

Invert linear system with multiple right-hand side vectors, or flag failure.

Single precision version.

Parameters
[in,out]aInvertible system matrix, destroyed on output
[in,out]binput RHS vectors, output solution vectors
[out]fffailure flag
Author
R. J. Purser

Definition at line 269 of file pmat.f90.

◆ slinmvt()

subroutine pmat::slinmvt ( real(sp), dimension(:,:), intent(inout) a,
real(sp), dimension(:), intent(inout) b )
private

Invert linear system with single right-hand side vector.

Single precision version.

Parameters
[in,out]aInvertible system matrix, destroyed on output
[in,out]binput RHS vector, output solution vector
Author
R. J. Purser

Definition at line 343 of file pmat.f90.

◆ slinmvtf()

subroutine pmat::slinmvtf ( real(sp), dimension(:,:), intent(inout) a,
real(sp), dimension(:), intent(inout) b,
logical, intent(out) ff )
private

Invert linear system with single right-hand side vector.

Parameters
[in,out]aInvertible system matrix, destroyed on output
[in,out]binput RHS vector, output solution vector
[out]fffailure flag
Author
R. J. Purser

Definition at line 385 of file pmat.f90.

◆ slinuv()

subroutine pmat::slinuv ( real(sp), dimension(:,:), intent(in) a,
real(sp), dimension(:), intent(inout) u )
private

Solve linear system involving upper triangular system matrix.

Single precision version.

Parameters
[in]aupper triangular matrix.
[in,out]uinput RHS vector, output solution vector.
Author
R. J. Purser

Definition at line 1203 of file pmat.f90.

◆ sswpvv()

subroutine pmat::sswpvv ( real(sp), dimension(:), intent(inout) d,
real(sp), dimension(:), intent(inout) e )
private

Swap a pair of single precision vectors.

Parameters
[in,out]dvector
[in,out]evector
Author
R. J. Purser

Definition at line 49 of file pmat.f90.

◆ sudlmm()

subroutine pmat::sudlmm ( real(sp), dimension(:,:), intent(in) a,
real(sp), dimension(:,:), intent(inout) b,
integer(spi), dimension(:), intent(in) ipiv )
private

Use l-u factors in A to back-substitute for several rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition.

Parameters
[in]aL-D-U factorization of linear system matrux
[in,out]brt-hand-sides vectors on input, corresponding solutions on return
[in]ipivvector encoding the pivoting sequence
Author
R. J. Purser

Definition at line 729 of file pmat.f90.

◆ sudlmv()

subroutine pmat::sudlmv ( real(sp), dimension(:,:), intent(in) a,
real(sp), dimension(:), intent(inout) b,
integer(spi), dimension(:), intent(in) ipiv )
private

Use l-u factors in A to back-substitute for 1 rhs in B, using ipiv to define the pivoting permutation used in the l-u decomposition.

Parameters
[in]aL-D-U factorization of linear system matrix
[in,out]bright-hand-side vector on input, corresponding solution on return
[in]ipivvector encoding the pivoting sequence
Author
R. J. Purser

Definition at line 830 of file pmat.f90.