grid_tools  1.13.0
psym2.f90 File Reference

Matrix routines. More...

Go to the source code of this file.

Data Types

interface  psym2::chol2
 
interface  psym2::eigensym2
 
interface  psym2::expsym2
 
interface  psym2::expsym2d_e
 
interface  psym2::expsym2d_t
 
interface  psym2::id2222
 
interface  psym2::invsym2
 
interface  psym2::logsym2
 
interface  psym2::sqrtsym2
 
interface  psym2::sqrtsym2d_e
 
interface  psym2::sqrtsym2d_t
 

Modules

module  psym2
 A suite of routines to perform the eigen-decomposition of symmetric 2*2 matrices and to deliver basic analytic functions, and the derivatives of these functions, of such matrices.
 

Functions/Subroutines

subroutine, public psym2::chol2 (s, c, ff)
 Return the cholesky lower triangular factor, C, of the 2X2 symmetric matrix, S, or raise the failure flag, FF, if S is not positive-definite. More...
 
subroutine, public psym2::eigensym2 (em, vv, oo)
 Get the orthogonal eigenvectors, vv, and diagonal matrix of eigenvalues, oo, of the symmetric 2*2 matrix, em. More...
 
subroutine psym2::eigensym2d (em, vv, oo, vvd, ood, ff)
 For a symmetric 2*2 matrix, em, return the normalized eigenvectors, vv, and the diagonal matrix of eigenvalues, oo. More...
 
subroutine, public psym2::expsym2 (em, expem)
 Get the exp of a symmetric 2*2 matrix. More...
 
subroutine psym2::expsym2d (x, z, zd)
 Get the exp of a symmetric 2*2 matrix, and its symmetric derivative. More...
 
subroutine psym2::expsym2d_e (x, z, zd)
 Get the exponential and its symmetric derivative for a symmetric 2*2 matrix using eigen-decomposition. More...
 
subroutine psym2::expsym2d_t (x, z, zd)
 Use the Taylor-series method (eigenvalues both fairly close to zero). More...
 
subroutine, public psym2::id2222 (em)
 General routine for a symmetrized 4th-rank tensor that acts as an effective identity for operations on symmetric matrices. More...
 
subroutine, public psym2::invsym2 (em, z)
 Get the inverse of a 2*2 matrix (need not be symmetric in this case). More...
 
subroutine psym2::invsym2d (em, z, zd)
 Get the inverse, z,of a 2*2 symmetric matrix, em, and its derivative, zd, with respect to symmetric variations of its components. More...
 
subroutine, public psym2::logsym2 (em, logem)
 Get the log of a symmetric positive-definite 2*2 matrix. More...
 
subroutine psym2::logsym2d (x, z, zd)
 General routine to evaluate the logarithm, z=log(x), and the symmetric derivative, zd = dz/dx, where x is a symmetric 2*2 positive-definite matrix. More...
 
subroutine, public psym2::sqrtsym2 (em, z)
 Get the sqrt of a symmetric positive-definite 2*2 matrix. More...
 
subroutine psym2::sqrtsym2d (x, z, zd)
 General routine to evaluate z=sqrt(x), and the symmetric derivative, zd = dz/dx, where x is a symmetric 2*2 positive-definite matrix. More...
 
subroutine psym2::sqrtsym2d_e (x, z, zd)
 Eigen-method. More...
 
subroutine psym2::sqrtsym2d_t (x, z, zd)
 Use the Taylor-series method (eigenvalues both fairly close to unity). More...
 

Variables

real(dp), dimension(2, 2, 2, 2) psym2::id
 ID. More...
 

Detailed Description

Matrix routines.

Author
R. J. Purser
Date
September 2018

Definition in file psym2.f90.