36 TYPE(
coolist),
DIMENSION(:),
ALLOCATABLE,
PUBLIC ::
hx 43 TYPE(
coolist),
DIMENSION(:),
ALLOCATABLE,
PUBLIC ::
hy 79 TYPE(
coolist),
DIMENSION(ndim),
INTENT(INOUT) :: t
80 INTEGER,
INTENT(IN) :: cst,v1,v2
81 INTEGER :: i,n,li,liii
90 DO WHILE ((
sf(t(i)%elems(li)%j)==v1).and.(
sf(t(i)%elems(li)%k)==v2))
93 t(i)%elems(liii-1)%j=t(i)%elems(liii)%j
94 t(i)%elems(liii-1)%k=t(i)%elems(liii)%k
95 t(i)%elems(liii-1)%v=t(i)%elems(liii)%v
97 t(i)%nelems=t(i)%nelems-1
98 IF (li>t(i)%nelems)
exit 100 IF (li>t(i)%nelems)
exit 115 TYPE(
coolist),
DIMENSION(ndim),
INTENT(INOUT) :: t
116 INTEGER,
INTENT(IN) :: cst,v1,v2
117 INTEGER :: i,n,li,liii
126 DO WHILE ((
sf(t(i)%elems(li)%j)==v1).or.(
sf(t(i)%elems(li)%k)==v2))
129 t(i)%elems(liii-1)%j=t(i)%elems(liii)%j
130 t(i)%elems(liii-1)%k=t(i)%elems(liii)%k
131 t(i)%elems(liii-1)%v=t(i)%elems(liii)%v
133 t(i)%nelems=t(i)%nelems-1
134 IF (li>t(i)%nelems)
exit 136 IF (li>t(i)%nelems)
exit 150 TYPE(
coolist),
DIMENSION(ndim),
INTENT(INOUT) :: t
151 INTEGER,
INTENT(IN) :: cst,v
152 INTEGER :: i,n,li,liii
159 IF (
sf(t(i)%elems(li)%j)==v)
THEN 160 liii=t(i)%elems(li)%j
161 t(i)%elems(li)%j=t(i)%elems(li)%k
162 t(i)%elems(li)%k=liii
176 TYPE(
coolist),
DIMENSION(ndim),
INTENT(INOUT) :: t
177 INTEGER,
INTENT(IN) :: cst,v
182 IF (
sf(i)==v) t(i)%nelems=0
212 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 215 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 218 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 221 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 226 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 228 IF (
mode.ne.
'qfst')
THEN 242 IF (allocstat /= 0) stop
"*** Problem to deallocate ! ***" 246 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 248 IF (
mode.ne.
'qfst')
THEN 262 IF (allocstat /= 0) stop
"*** Problem to deallocate ! ***" 266 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 276 IF (allocstat /= 0) stop
"*** Problem to deallocate ! ***" 280 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 290 IF (allocstat /= 0) stop
"*** Problem to deallocate ! ***" 295 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 304 IF (allocstat /= 0) stop
"*** Problem to deallocate ! ***" 310 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 322 IF (allocstat /= 0) stop
"*** Problem to deallocate ! ***" 325 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 331 IF (allocstat /= 0) stop
"*** Problem to deallocate ! ***" 338 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 348 IF (allocstat /= 0) stop
"*** Problem to deallocate ! ***" 352 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 364 IF (allocstat /= 0) stop
"*** Problem to deallocate ! ***" 368 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 380 IF (allocstat /= 0) stop
"*** Problem to deallocate ! ***" 384 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 395 IF (allocstat /= 0) stop
"*** Problem to deallocate ! ***" 399 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 408 IF (allocstat /= 0) stop
"*** Problem to deallocate ! ***" 412 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 421 IF (allocstat /= 0) stop
"*** Problem to deallocate ! ***" 427 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 437 IF (allocstat /= 0) stop
"*** Problem to deallocate ! ***" 441 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 453 IF (allocstat /= 0) stop
"*** Problem to deallocate ! ***" 457 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 469 IF (allocstat /= 0) stop
"*** Problem to deallocate ! ***" 473 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 484 IF (allocstat /= 0) stop
"*** Problem to deallocate ! ***" 488 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 497 IF (allocstat /= 0) stop
"*** Problem to deallocate ! ***" 501 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 510 IF (allocstat /= 0) stop
"*** Problem to deallocate ! ***" type(coolist), dimension(:), allocatable, public lxy
Tensor holding the linear part of the resolved tendencies involving the unresolved variables...
The stochastic models parameters module.
integer ndim
Number of variables (dimension of the model)
subroutine reorder(t, cst, v)
Subroutine to reorder the tensor components : if SF(j)=v then it return .
subroutine init_stoch_params
Stochastic parameters initialization routine.
type(coolist), dimension(:), allocatable, public bxxx
Tensor holding the quadratic part of the resolved tendencies involving resolved variables.
subroutine, public load_sf
Subroutine to load the unresolved variable defintion vector SF from SF.nml if it exists. If it does not, then write SF.nml with no unresolved variables specified (null vector).
subroutine, public copy_coo(src, dst)
Routine to copy a coolist.
The resolved-unresolved components decomposition of the tensor.
type(coolist), dimension(:), allocatable, public byyy
Tensor holding the quadratic part of the unresolved tendencies involving unresolved variables...
subroutine, public init_tltensor
Routine to initialize the TL tensor.
subroutine, public scal_mul_coo(s, t)
Routine to multiply a rank-3 tensor by a scalar.
type(coolist), dimension(:), allocatable, public fs_tensor
Tensor holding the part of the unresolved tensor involving resolved variables.
The equation tensor for the coupled ocean-atmosphere model with temperature which allows for an exten...
type(coolist), dimension(:), allocatable, public lyy
Tensor holding the linear part of the unresolved tendencies involving the unresolved variables...
subroutine init_sub_tensor(t, cst, v)
Subroutine that suppress all the components of a tensor where if SF(i)=v.
type(coolist), dimension(:), allocatable, public lxx
Tensor holding the linear part of the resolved tendencies involving the resolved variables.
type(coolist), dimension(:), allocatable dumb
Dumb coolist to make the computations.
type(coolist), dimension(:), allocatable, public hy
Tensor holding the constant part of the unresolved tendencies.
type(coolist), dimension(:), allocatable, public ss_tl_tensor
Tensor of the tangent linear model tendencies of the resolved component alone.
Coordinate list. Type used to represent the sparse tensor.
integer, dimension(:), allocatable, public sf
Unresolved variable definition vector.
type(coolist), dimension(:), allocatable, public byxy
Tensor holding the quadratic part of the unresolved tendencies involving both resolved and unresolved...
type(coolist), dimension(:), allocatable, public ff_tensor
Tensor holding the part of the unresolved tensor involving only unresolved variables.
real(kind=8) tdelta
Time separation parameter.
subroutine, public add_to_tensor(src, dst)
Routine to add a rank-3 tensor to another one.
subroutine suppress_and(t, cst, v1, v2)
Subroutine to suppress from the tensor components satisfying SF(j)=v1 and SF(k)=v2.
type(coolist), dimension(:), allocatable, public bxxy
Tensor holding the quadratic part of the resolved tendencies involving both resolved and unresolved v...
type(coolist), dimension(:), allocatable, public ss_tensor
Tensor holding the part of the resolved tensor involving only resolved variables. ...
type(coolist), dimension(:), allocatable, public tltensor
Tensor representation of the Tangent Linear tendencies.
type(coolist), dimension(:), allocatable, public hx
Tensor holding the constant part of the resolved tendencies.
The model parameters module.
type(coolist), dimension(:), allocatable, public bxyy
Tensor holding the quadratic part of the resolved tendencies involving unresolved variables...
Tangent Linear (TL) and Adjoint (AD) model versions of MAOOAM. Tensors definition module...
type(coolist), dimension(:), allocatable, public sf_tensor
Tensor holding the part of the resolved tensor involving unresolved variables.
real(kind=8) eps_pert
Perturbation parameter for the coupling.
type(coolist), dimension(:), allocatable, public lyx
Tensor holding the linear part of the unresolved tendencies involving the resolved variables...
type(coolist), dimension(:), allocatable, public aotensor
- Tensor representation of the tendencies.
Module to select the resolved-unresolved components.
type(coolist), dimension(:), allocatable, public byxx
Tensor holding the quadratic part of the unresolved tendencies involving resolved variables...
character(len=4) mode
Stochastic mode parameter.
subroutine, public init_dec_tensor
Subroutine that initialize and compute the decomposed tensors.
subroutine suppress_or(t, cst, v1, v2)
Subroutine to suppress from the tensor components satisfying SF(j)=v1 or SF(k)=v2.