![]() |
A Modular Arbitrary-Order Ocean-Atmosphere Model -- Stochastic implementation
|
Tangent Linear (TL) and Adjoint (AD) model versions of MAOOAM. Tensors definition module. More...
Functions/Subroutines | |
type(coolist) function, dimension(ndim) | jacobian (ystar) |
Compute the Jacobian of MAOOAM in point ystar. More... | |
real(kind=8) function, dimension(ndim, ndim), public | jacobian_mat (ystar) |
Compute the Jacobian of MAOOAM in point ystar. More... | |
subroutine, public | init_tltensor |
Routine to initialize the TL tensor. More... | |
subroutine | compute_tltensor (func) |
Routine to compute the TL tensor from the original MAOOAM one. More... | |
subroutine | tl_add_count (i, j, k, v) |
Subroutine used to count the number of TL tensor entries. More... | |
subroutine | tl_coeff (i, j, k, v) |
Subroutine used to compute the TL tensor entries. More... | |
subroutine, public | init_adtensor |
Routine to initialize the AD tensor. More... | |
subroutine | compute_adtensor (func) |
Subroutine to compute the AD tensor from the original MAOOAM one. More... | |
subroutine | ad_add_count (i, j, k, v) |
Subroutine used to count the number of AD tensor entries. More... | |
subroutine | ad_coeff (i, j, k, v) |
subroutine, public | init_adtensor_ref |
Alternate method to initialize the AD tensor from the TL tensor. More... | |
subroutine | compute_adtensor_ref (func) |
Alternate subroutine to compute the AD tensor from the TL one. More... | |
subroutine | ad_add_count_ref (i, j, k, v) |
Alternate subroutine used to count the number of AD tensor entries from the TL tensor. More... | |
subroutine | ad_coeff_ref (i, j, k, v) |
Alternate subroutine used to compute the AD tensor entries from the TL tensor. More... | |
subroutine, public | ad (t, ystar, deltay, buf) |
Tendencies for the AD of MAOOAM in point ystar for perturbation deltay. More... | |
subroutine, public | tl (t, ystar, deltay, buf) |
Tendencies for the TL of MAOOAM in point ystar for perturbation deltay. More... | |
Variables | |
real(kind=8), parameter | real_eps = 2.2204460492503131e-16 |
Epsilon to test equality with 0. More... | |
integer, dimension(:), allocatable | count_elems |
Vector used to count the tensor elements. More... | |
type(coolist), dimension(:), allocatable, public | tltensor |
Tensor representation of the Tangent Linear tendencies. More... | |
type(coolist), dimension(:), allocatable, public | adtensor |
Tensor representation of the Adjoint tendencies. More... | |
Tangent Linear (TL) and Adjoint (AD) model versions of MAOOAM. Tensors definition module.
subroutine, public tl_ad_tensor::ad | ( | real(kind=8), intent(in) | t, |
real(kind=8), dimension(0:ndim), intent(in) | ystar, | ||
real(kind=8), dimension(0:ndim), intent(in) | deltay, | ||
real(kind=8), dimension(0:ndim), intent(out) | buf | ||
) |
Tendencies for the AD of MAOOAM in point ystar for perturbation deltay.
t | time |
ystar | vector with the variables (current point in trajectory) |
deltay | vector with the perturbation of the variables at time t |
buf | vector (buffer) to store derivatives. |
Definition at line 384 of file tl_ad_tensor.f90.
|
private |
Subroutine used to count the number of AD tensor entries.
i | tensor \(i\) index |
j | tensor \(j\) index |
k | tensor \(k\) index |
v | value that will be added |
Definition at line 243 of file tl_ad_tensor.f90.
|
private |
Alternate subroutine used to count the number of AD tensor entries from the TL tensor.
i | tensor \(i\) index |
j | tensor \(j\) index |
k | tensor \(k\) index |
v | value that will be added |
Definition at line 346 of file tl_ad_tensor.f90.
|
private |
i | tensor \(i\) index |
j | tensor \(j\) index |
k | tensor \(k\) index |
v | value to add |
Definition at line 257 of file tl_ad_tensor.f90.
|
private |
Alternate subroutine used to compute the AD tensor entries from the TL tensor.
i | tensor \(i\) index |
j | tensor \(j\) index |
k | tensor \(k\) index |
v | value to add |
Definition at line 358 of file tl_ad_tensor.f90.
|
private |
Subroutine to compute the AD tensor from the original MAOOAM one.
func | subroutine used to do the computation |
Definition at line 217 of file tl_ad_tensor.f90.
|
private |
Alternate subroutine to compute the AD tensor from the TL one.
func | subroutine used to do the computation |
Definition at line 318 of file tl_ad_tensor.f90.
|
private |
Routine to compute the TL tensor from the original MAOOAM one.
func | subroutine used to do the computation |
Definition at line 121 of file tl_ad_tensor.f90.
subroutine, public tl_ad_tensor::init_adtensor | ( | ) |
subroutine, public tl_ad_tensor::init_adtensor_ref | ( | ) |
Alternate method to initialize the AD tensor from the TL tensor.
Definition at line 294 of file tl_ad_tensor.f90.
subroutine, public tl_ad_tensor::init_tltensor | ( | ) |
Routine to initialize the TL tensor.
Definition at line 97 of file tl_ad_tensor.f90.
|
private |
Compute the Jacobian of MAOOAM in point ystar.
ystar | array with variables in which the jacobian should be evaluated. |
Definition at line 75 of file tl_ad_tensor.f90.
real(kind=8) function, dimension(ndim,ndim), public tl_ad_tensor::jacobian_mat | ( | real(kind=8), dimension(0:ndim), intent(in) | ystar | ) |
Compute the Jacobian of MAOOAM in point ystar.
ystar | array with variables in which the jacobian should be evaluated. |
Definition at line 84 of file tl_ad_tensor.f90.
subroutine, public tl_ad_tensor::tl | ( | real(kind=8), intent(in) | t, |
real(kind=8), dimension(0:ndim), intent(in) | ystar, | ||
real(kind=8), dimension(0:ndim), intent(in) | deltay, | ||
real(kind=8), dimension(0:ndim), intent(out) | buf | ||
) |
Tendencies for the TL of MAOOAM in point ystar for perturbation deltay.
t | time |
ystar | vector with the variables (current point in trajectory) |
deltay | vector with the perturbation of the variables at time t |
buf | vector (buffer) to store derivatives. |
Definition at line 396 of file tl_ad_tensor.f90.
|
private |
Subroutine used to count the number of TL tensor entries.
i | tensor \(i\) index |
j | tensor \(j\) index |
k | tensor \(k\) index |
v | value that will be added |
Definition at line 147 of file tl_ad_tensor.f90.
|
private |
Subroutine used to compute the TL tensor entries.
i | tensor \(i\) index |
j | tensor \(j\) index |
k | tensor \(k\) index |
v | value to add |
Definition at line 161 of file tl_ad_tensor.f90.
type(coolist), dimension(:), allocatable, public tl_ad_tensor::adtensor |
|
private |
Vector used to count the tensor elements.
Definition at line 38 of file tl_ad_tensor.f90.
|
private |
Epsilon to test equality with 0.
Definition at line 35 of file tl_ad_tensor.f90.
type(coolist), dimension(:), allocatable, public tl_ad_tensor::tltensor |
Tensor representation of the Tangent Linear tendencies.
Definition at line 41 of file tl_ad_tensor.f90.