The MTV noise sigma matrices used to integrate the MTV model.
More...
|
subroutine, public | init_sigma (mult, Q1fill) |
| Subroutine to initialize the sigma matices. More...
|
|
subroutine, public | compute_mult_sigma (y) |
| Routine to actualize the matrix \(\sigma_1\) based on the state y of the MTV system. More...
|
|
|
real(kind=8), dimension(:,:), allocatable, public | sig1 |
| \(\sigma_1(X)\) state-dependent noise matrix More...
|
|
real(kind=8), dimension(:,:), allocatable, public | sig2 |
| \(\sigma_2\) state-independent noise matrix More...
|
|
real(kind=8), dimension(:,:), allocatable, public | sig1r |
| Reduced \(\sigma_1(X)\) state-dependent noise matrix. More...
|
|
real(kind=8), dimension(:,:), allocatable | dumb_mat1 |
| Dummy matrix. More...
|
|
real(kind=8), dimension(:,:), allocatable | dumb_mat2 |
| Dummy matrix. More...
|
|
real(kind=8), dimension(:,:), allocatable | dumb_mat3 |
| Dummy matrix. More...
|
|
real(kind=8), dimension(:,:), allocatable | dumb_mat4 |
| Dummy matrix. More...
|
|
integer, dimension(:), allocatable | ind1 |
|
integer, dimension(:), allocatable | rind1 |
|
integer, dimension(:), allocatable | ind2 |
|
integer, dimension(:), allocatable | rind2 |
| Reduction indices. More...
|
|
integer | n1 |
|
integer | n2 |
|
The MTV noise sigma matrices used to integrate the MTV model.
- Copyright
- 2018 Jonathan Demaeyer. See LICENSE.txt for license information.
subroutine, public sigma::compute_mult_sigma |
( |
real(kind=8), dimension(0:ndim), intent(in) |
y | ) |
|
Routine to actualize the matrix \(\sigma_1\) based on the state y of the MTV system.
- Parameters
-
Definition at line 93 of file MTV_sigma_tensor.f90.
93 REAL(KIND=8),
DIMENSION(0:ndim),
INTENT(IN) :: y
95 CALL sparse_mul3_mat(utot,y,dumb_mat1)
96 CALL sparse_mul4_mat(vtot,y,y,dumb_mat2)
97 dumb_mat3=dumb_mat1+dumb_mat2+q1
98 CALL reduce(dumb_mat3,dumb_mat1,n1,ind1,rind1)
100 CALL sqrtm_svd(dumb_mat1(1:n1,1:n1),dumb_mat2(1:n1,1:n1),info,info2,min(max(n1/2,2),64))
103 IF ((.not.any(isnan(dumb_mat2))).and.(info.eq.0).and.(.not.any(dumb_mat2>huge(0.d0))))
THEN 104 CALL ireduce(sig1,dumb_mat2,n1,ind1,rind1)
subroutine, public sigma::init_sigma |
( |
logical, intent(out) |
mult, |
|
|
logical, intent(out) |
Q1fill |
|
) |
| |
Subroutine to initialize the sigma matices.
Definition at line 48 of file MTV_sigma_tensor.f90.
48 LOGICAL,
INTENT(OUT) :: mult,q1fill
49 INTEGER :: allocstat,info1,info2
54 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 57 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 60 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 63 IF (allocstat /= 0) stop
"*** Not enough memory ! ***" 65 print*,
"Initializing the sigma matrices" 67 CALL reduce(q2,dumb_mat1,n2,ind2,rind2)
69 CALL sqrtm_svd(dumb_mat1(1:n2,1:n2),dumb_mat2(1:n2,1:n2),info1,info2,min(max(n2/2,2),64))
70 CALL ireduce(sig2,dumb_mat2,n2,ind2,rind2)
75 mult=(.not.((tensor_empty(utot)).and.(tensor4_empty(vtot))))
77 CALL reduce(q1,dumb_mat1,n1,ind1,rind1)
80 CALL sqrtm_svd(dumb_mat1(1:n1,1:n1),dumb_mat2(1:n1,1:n1),info1,info2,min(max(n1/2,2),64))
81 CALL ireduce(sig1,dumb_mat2,n1,ind1,rind1)
integer ndim
Number of variables (dimension of the model)
real(kind=8), dimension(:,:), allocatable sigma::dumb_mat1 |
|
private |
Dummy matrix.
Definition at line 35 of file MTV_sigma_tensor.f90.
35 REAL(KIND=8),
DIMENSION(:,:),
ALLOCATABLE :: dumb_mat1
real(kind=8), dimension(:,:), allocatable sigma::dumb_mat2 |
|
private |
Dummy matrix.
Definition at line 36 of file MTV_sigma_tensor.f90.
36 REAL(KIND=8),
DIMENSION(:,:),
ALLOCATABLE :: dumb_mat2
real(kind=8), dimension(:,:), allocatable sigma::dumb_mat3 |
|
private |
Dummy matrix.
Definition at line 37 of file MTV_sigma_tensor.f90.
37 REAL(KIND=8),
DIMENSION(:,:),
ALLOCATABLE :: dumb_mat3
real(kind=8), dimension(:,:), allocatable sigma::dumb_mat4 |
|
private |
Dummy matrix.
Definition at line 38 of file MTV_sigma_tensor.f90.
38 REAL(KIND=8),
DIMENSION(:,:),
ALLOCATABLE :: dumb_mat4
integer, dimension(:), allocatable sigma::ind1 |
|
private |
Definition at line 39 of file MTV_sigma_tensor.f90.
39 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ind1,rind1,ind2,rind2
integer, dimension(:), allocatable sigma::ind2 |
|
private |
integer, dimension(:), allocatable sigma::rind1 |
|
private |
integer, dimension(:), allocatable sigma::rind2 |
|
private |
real(kind=8), dimension(:,:), allocatable, public sigma::sig1 |
\(\sigma_1(X)\) state-dependent noise matrix
Definition at line 31 of file MTV_sigma_tensor.f90.
31 REAL(KIND=8),
DIMENSION(:,:),
ALLOCATABLE,
PUBLIC :: sig1
real(kind=8), dimension(:,:), allocatable, public sigma::sig1r |
Reduced \(\sigma_1(X)\) state-dependent noise matrix.
Definition at line 33 of file MTV_sigma_tensor.f90.
33 REAL(KIND=8),
DIMENSION(:,:),
ALLOCATABLE,
PUBLIC :: sig1r
real(kind=8), dimension(:,:), allocatable, public sigma::sig2 |
\(\sigma_2\) state-independent noise matrix
Definition at line 32 of file MTV_sigma_tensor.f90.
32 REAL(KIND=8),
DIMENSION(:,:),
ALLOCATABLE,
PUBLIC :: sig2