28 REAL(KIND=8),
DIMENSION(:,:),
ALLOCATABLE ::
x 29 REAL(KIND=8),
DIMENSION(:,:),
ALLOCATABLE ::
xs 30 REAL(KIND=8),
DIMENSION(:,:),
ALLOCATABLE ::
zs 31 REAL(KIND=8),
DIMENSION(:),
ALLOCATABLE ::
buf_m 32 REAL(KIND=8),
DIMENSION(:),
ALLOCATABLE ::
buf_m3 50 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 56 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 62 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 70 stop
'*** X_INT_MODE variable not properly defined in stoch_params.nml ***' 85 SUBROUTINE compute_m3(y,dt,dtn,savey,save_ev,evolve,inter,h_int)
86 REAL(KIND=8),
DIMENSION(0:ndim),
INTENT(IN) :: y
87 REAL(KIND=8),
INTENT(IN) :: dt,dtn
88 LOGICAL,
INTENT(IN) :: savey,save_ev,evolve
89 REAL(KIND=8),
INTENT(IN) :: inter
90 REAL(KIND=8),
DIMENSION(0:ndim),
INTENT(OUT) :: h_int
102 IF (dt.lt.inter)
THEN 104 DO WHILE (t+dt<inter)
105 CALL step(
zs(:,j),y,t,dt,dtn,
zs(:,j))
107 CALL step(
zs(:,j),y,t,inter-t,sqrt(inter-t),
zs(:,j))
109 CALL step(
zs(:,j),y,t,inter,sqrt(inter),
zs(:,j))
112 IF (save_ev)
xs(:,j)=
zs(:,j)
139 IF ((i.eq.1).or.(i.eq.
mems))
THEN 158 SUBROUTINE test_m3(y,dt,dtn,h_int)
159 REAL(KIND=8),
DIMENSION(0:ndim),
INTENT(IN) :: y
160 REAL(KIND=8),
INTENT(IN) :: dt,dtn
161 REAL(KIND=8),
DIMENSION(0:ndim),
INTENT(OUT) :: h_int
179 print*,
'h_int',h_int
The stochastic models parameters module.
integer ndim
Number of variables (dimension of the model)
real(kind=8), dimension(:,:), allocatable x
Array storing the previous state of the system.
real(kind=8) muti
Memory update time interval.
real(kind=8), dimension(:), allocatable buf_m
Dummy vector.
procedure(ss_step), pointer step
Procedural pointer pointing on the resolved dynamics step routine.
subroutine, public ss_tl_step(y, ys, t, dt, dtn, res)
Routine to perform a stochastic integration step of the unresolved uncoupled tangent linear dynamics ...
subroutine, public ss_step(y, ys, t, dt, dtn, res)
Routine to perform a stochastic integration step of the unresolved uncoupled dynamics (Heun algorithm...
subroutine, public sparse_mul3(coolist_ijk, arr_j, arr_k, res)
Sparse multiplication of a tensor with two vectors: .
character(len=4) x_int_mode
Integration mode for the resolved component.
type(coolist), dimension(:,:), allocatable, public b14
Joint 1st and 4th tensors.
Module with the stochastic uncoupled resolved nonlinear and tangent linear rk2 dynamics integration r...
real(kind=8), dimension(:,:), allocatable xs
Array storing the resolved time evolution of the previous state of the system.
real(kind=8), dimension(:), allocatable buf_m3
Dummy vector to store the integrand.
subroutine, public test_m3(y, dt, dtn, h_int)
Routine to test the #compute_M3 routine.
The WL tensors used to integrate the model.
type(coolist4), dimension(:,:), allocatable, public mtot
Tensor for the cubic terms.
real(kind=8), dimension(:,:), allocatable zs
Dummy array to replace Xs in case where the evolution is not stored.
integer t_index
Integer storing the time index (current position in the arrays)
subroutine, public init_memory
Subroutine to initialise the memory.
The model parameters module.
subroutine, public compute_m3(y, dt, dtn, savey, save_ev, evolve, inter, h_int)
Compute the integrand of at each time in the past and integrate to get the memory term...
type(coolist), dimension(:,:), allocatable, public b23
Joint 2nd and 3rd tensors.
logical, public mdef
Boolean to (de)activate the computation of the terms.
Module that compute the memory term of the WL parameterization.
subroutine, public sparse_mul4(coolist_ijkl, arr_j, arr_k, arr_l, res)
Sparse multiplication of a rank-4 tensor coolist with three vectors: .
type(coolist), dimension(:,:), allocatable, public ltot
Total linear tensor.
integer mems
Number of steps in the memory kernel integral.