![]() |
A Modular Arbitrary-Order Ocean-Atmosphere Model -- Stochastic implementation
|
Module with the MTV rk2 integration routines. More...
Functions/Subroutines | |
| subroutine, public | init_integrator |
| Subroutine to initialize the MTV rk2 integrator. More... | |
| subroutine | init_noise |
| Routine to initialize the noise vectors and buffers. More... | |
| subroutine | init_g |
| Routine to initialize the G term. More... | |
| subroutine | compg (y) |
| Routine to actualize the G term based on the state y of the MTV system. More... | |
| subroutine, public | step (y, t, dt, dtn, res, tend) |
| Routine to perform an integration step (Heun algorithm) of the MTV system. The incremented time is returned. More... | |
| subroutine, public | full_step (y, t, dt, dtn, res) |
| Routine to perform an integration step (Heun algorithm) of the full stochastic system. The incremented time is returned. More... | |
Variables | |
| real(kind=8), dimension(:), allocatable | buf_y1 |
| real(kind=8), dimension(:), allocatable | buf_f0 |
| real(kind=8), dimension(:), allocatable | buf_f1 |
| Integration buffers. More... | |
| real(kind=8), dimension(:), allocatable | dw |
| real(kind=8), dimension(:), allocatable | dwmult |
| Standard gaussian noise buffers. More... | |
| real(kind=8), dimension(:), allocatable | dwar |
| real(kind=8), dimension(:), allocatable | dwau |
| real(kind=8), dimension(:), allocatable | dwor |
| real(kind=8), dimension(:), allocatable | dwou |
| Standard gaussian noise buffers. More... | |
| real(kind=8), dimension(:), allocatable | anoise |
| real(kind=8), dimension(:), allocatable | noise |
| Additive noise term. More... | |
| real(kind=8), dimension(:), allocatable | noisemult |
| Multiplicative noise term. More... | |
| real(kind=8), dimension(:), allocatable | g |
| G term of the MTV tendencies. More... | |
| real(kind=8), dimension(:), allocatable | buf_g |
| Buffer for the G term computation. More... | |
| logical | mult |
| Logical indicating if the sigma1 matrix must be computed for every state change. More... | |
| logical | q1fill |
| Logical indicating if the matrix Q1 is non-zero. More... | |
| logical | compute_mult |
| Logical indicating if the Gaussian noise for the multiplicative noise must be computed. More... | |
| real(kind=8), parameter | sq2 = sqrt(2.D0) |
| Hard coded square root of 2. More... | |
Module with the MTV rk2 integration routines.
|
private |
Routine to actualize the G term based on the state y of the MTV system.
| y | State of the MTV system |
Definition at line 105 of file rk2_MTV_integrator.f90.
| subroutine, public rk2_mtv_integrator::full_step | ( | real(kind=8), dimension(0:ndim), intent(in) | y, |
| real(kind=8), intent(inout) | t, | ||
| real(kind=8), intent(in) | dt, | ||
| real(kind=8), intent(in) | dtn, | ||
| real(kind=8), dimension(0:ndim), intent(out) | res | ||
| ) |
Routine to perform an integration step (Heun algorithm) of the full stochastic system. The incremented time is returned.
| y | Initial point. |
| t | Actual integration time |
| dt | Integration timestep. |
| dtn | Stochastoc integration timestep (normally square-root of dt). |
| res | Final point after the step. |
Definition at line 170 of file rk2_MTV_integrator.f90.
|
private |
| subroutine, public rk2_mtv_integrator::init_integrator | ( | ) |
Subroutine to initialize the MTV rk2 integrator.
Definition at line 50 of file rk2_MTV_integrator.f90.
|
private |
Routine to initialize the noise vectors and buffers.
Definition at line 69 of file rk2_MTV_integrator.f90.
| subroutine, public rk2_mtv_integrator::step | ( | real(kind=8), dimension(0:ndim), intent(in) | y, |
| real(kind=8), intent(inout) | t, | ||
| real(kind=8), intent(in) | dt, | ||
| real(kind=8), intent(in) | dtn, | ||
| real(kind=8), dimension(0:ndim), intent(out) | res, | ||
| real(kind=8), dimension(0:ndim), intent(out) | tend | ||
| ) |
Routine to perform an integration step (Heun algorithm) of the MTV system. The incremented time is returned.
| y | Initial point. |
| t | Actual integration time |
| dt | Integration timestep. |
| dtn | Stochastic integration timestep (normally square-root of dt). |
| res | Final point after the step. |
| tend | Partial or full tendencies used to perform the step (used for debugging). |
Definition at line 124 of file rk2_MTV_integrator.f90.
|
private |
Definition at line 33 of file rk2_MTV_integrator.f90.
|
private |
Definition at line 30 of file rk2_MTV_integrator.f90.
|
private |
Integration buffers.
Definition at line 30 of file rk2_MTV_integrator.f90.
|
private |
Buffer for the G term computation.
Definition at line 36 of file rk2_MTV_integrator.f90.
|
private |
Definition at line 30 of file rk2_MTV_integrator.f90.
|
private |
Logical indicating if the Gaussian noise for the multiplicative noise must be computed.
Definition at line 40 of file rk2_MTV_integrator.f90.
|
private |
Definition at line 31 of file rk2_MTV_integrator.f90.
|
private |
Definition at line 32 of file rk2_MTV_integrator.f90.
|
private |
Definition at line 32 of file rk2_MTV_integrator.f90.
|
private |
Standard gaussian noise buffers.
Definition at line 31 of file rk2_MTV_integrator.f90.
|
private |
Definition at line 32 of file rk2_MTV_integrator.f90.
|
private |
Standard gaussian noise buffers.
Definition at line 32 of file rk2_MTV_integrator.f90.
|
private |
G term of the MTV tendencies.
Definition at line 35 of file rk2_MTV_integrator.f90.
|
private |
Logical indicating if the sigma1 matrix must be computed for every state change.
Definition at line 38 of file rk2_MTV_integrator.f90.
|
private |
Additive noise term.
Definition at line 33 of file rk2_MTV_integrator.f90.
|
private |
Multiplicative noise term.
Definition at line 34 of file rk2_MTV_integrator.f90.
|
private |
Logical indicating if the matrix Q1 is non-zero.
Definition at line 39 of file rk2_MTV_integrator.f90.
|
private |
Hard coded square root of 2.
Definition at line 42 of file rk2_MTV_integrator.f90.
1.8.11