|
subroutine | gram_d (as, b, nrank, det) |
| Apply a form of Gram-Schmidt orthogonalization process to return as many normalized orthogonal basis column vectors in matrix B as possible in the space spanned by the columns of matrix A. More...
|
|
subroutine | gram_s (as, b, nrank, det) |
| Apply a form of Gram-Schmidt orthogonalization process to return as many normalized orthogonal basis column vectors in matrix B as possible in the space spanned by the columns of matrix A. More...
|
|
subroutine | graml_d (as, b, nrank, detsign, ldet) |
| A version of gram_d where the determinant information is returned in logarithmic form (to avoid overflows for large matrices). More...
|
|
subroutine | plaingram_d (b, nrank) |
| A "plain" (unpivoted) version of Gram-Schmidt, for square matrices only. More...
|
|
subroutine | plaingram_s (b, nrank) |
| A "plain" (unpivoted) version of Gram-Schmidt, for square matrices only. More...
|
|
subroutine | rowgram (m, n, a, ipiv, tt, b, rank) |
| Without changing (tall) rectangular input matrix a, perform pivoted gram- Schmidt operations to orthogonalize the rows, until rows that remain become negligible. More...
|
|
Definition at line 87 of file pmat4.f90.
◆ gram_d()
subroutine pmat4::gram::gram_d |
( |
real(dp), dimension(:,:), intent(in) |
as, |
|
|
real(dp), dimension(:,:), intent(out) |
b, |
|
|
integer(spi), intent(out) |
nrank, |
|
|
real(dp), intent(out) |
det |
|
) |
| |
|
private |
Apply a form of Gram-Schmidt orthogonalization process to return as many normalized orthogonal basis column vectors in matrix B as possible in the space spanned by the columns of matrix A.
The number of columns returned is the rank, nrank, of A, and the determinant of the projection of A into the subspace of B is returned as det.
- Parameters
-
[in] | as | given matrix A |
[out] | b | matrix B containing nrank orthonormal column vectors |
[out] | nrank | rank of A |
[out] | det | determinant of projection of A into subspace of B |
- Author
- R. J. Purser
Definition at line 1078 of file pmat4.f90.
◆ gram_s()
subroutine pmat4::gram::gram_s |
( |
real(sp), dimension(:,:), intent(in) |
as, |
|
|
real(sp), dimension(:,:), intent(out) |
b, |
|
|
integer(spi), intent(out) |
nrank, |
|
|
real(sp), intent(out) |
det |
|
) |
| |
|
private |
Apply a form of Gram-Schmidt orthogonalization process to return as many normalized orthogonal basis column vectors in matrix B as possible in the space spanned by the columns of matrix A.
The number of columns returned is the rank, nrank, of A, and the determinant of the projection of A into the subspace of B is returned as det.
- Parameters
-
[in] | as | given matrix A |
[out] | b | matrix B containing nrank orthonormal column vectors |
[out] | nrank | rank of A |
[out] | det | determinant of projection of A into subspace of B |
- Author
- R. J. Purser
Definition at line 1007 of file pmat4.f90.
◆ graml_d()
subroutine pmat4::gram::graml_d |
( |
real(dp), dimension(:,:), intent(in) |
as, |
|
|
real(dp), dimension(:,:), intent(out) |
b, |
|
|
integer(spi), intent(out) |
nrank, |
|
|
integer(spi), intent(out) |
detsign, |
|
|
real(dp), intent(out) |
ldet |
|
) |
| |
|
private |
A version of gram_d where the determinant information is returned in logarithmic form (to avoid overflows for large matrices).
When the matrix is singular, the "sign" of the determinant, detsign, is returned as zero (instead of either +1 or -1) and ldet is then just the log of the nonzero factors found by the process.
- Parameters
-
[in] | as | given matrix A |
[out] | b | matrix B of orthonormal columns |
[out] | nrank | rank of A |
[out] | detsign | sign of determinant |
[out] | ldet | logarithm of absolute value of determinant |
- Author
- R. J. Purser
Definition at line 1150 of file pmat4.f90.
◆ plaingram_d()
subroutine pmat4::gram::plaingram_d |
( |
real(dp), dimension(:,:), intent(inout) |
b, |
|
|
integer(spi), intent(out) |
nrank |
|
) |
| |
|
private |
A "plain" (unpivoted) version of Gram-Schmidt, for square matrices only.
Double precision version.
- Parameters
-
[in,out] | b | input as given matrix, output as orthogonalized vectors |
[out] | nrank | effective rank of given matrix |
- Author
- R. J. Purser
Definition at line 1263 of file pmat4.f90.
◆ plaingram_s()
subroutine pmat4::gram::plaingram_s |
( |
real(sp), dimension(:,:), intent(inout) |
b, |
|
|
integer(spi), intent(out) |
nrank |
|
) |
| |
|
private |
A "plain" (unpivoted) version of Gram-Schmidt, for square matrices only.
Single precision version.
- Parameters
-
[in,out] | b | input as given matrix, output as orthogonalized vectors |
[out] | nrank | effective rank of given matrix |
- Author
- R. J. Purser
Definition at line 1227 of file pmat4.f90.
◆ rowgram()
subroutine pmat4::gram::rowgram |
( |
integer(spi), intent(in) |
m, |
|
|
integer(spi), intent(in) |
n, |
|
|
real(dp), dimension(m,n), intent(in) |
a, |
|
|
integer(spi), dimension(n), intent(out) |
ipiv, |
|
|
real(dp), dimension(m,n), intent(out) |
tt, |
|
|
real(dp), dimension(n,n), intent(out) |
b, |
|
|
integer(spi), intent(out) |
rank |
|
) |
| |
|
private |
Without changing (tall) rectangular input matrix a, perform pivoted gram- Schmidt operations to orthogonalize the rows, until rows that remain become negligible.
Record the pivoting sequence in ipiv, and the row-normalization in tt(j,j) and the row-orthogonalization in tt(i,j), for i>j. Note that tt(i,j)=0 for i<j (tt is truncated lower triangular). The orthonormalized rows are returned in square array b, which is complete even when the effective rank < n. The recorded row operations can be repeated on independent column vectors through the use of subroutine ROWOPS (in this module). It is recommended to rescale the original matrix A via a call to CORRAL (in this module) because the negligibility criterion depends upon an "epsilon" value that is fixed (10**(-13)) and assumes elements of a are never too different in magnitude from unity, unless they are actually zero.
- Parameters
-
[in] | m | number of rows of A |
[in] | n | number of columns of A |
[in] | a | rectangular input matrix A |
[out] | ipiv | pivoting sequence |
[out] | tt | row-normalization |
[out] | b | orthonormalized rows |
[in] | rank | effective rank of A |
- Author
- R. J. Purser
Definition at line 1315 of file pmat4.f90.
The documentation for this interface was generated from the following file:
- /scratch1/NCEPDEV/da/George.Gayno/ufs_utils.git/UFS_UTILS.upstream/sorc/grid_tools.fd/regional_esg_grid.fd/pmat4.f90