Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ALF
ALF
Commits
a21ad85d
Commit
a21ad85d
authored
Dec 03, 2021
by
Florian Goth
Browse files
the diagonal has no allocatable anymore and remove an overzealous check
parent
4dbf36a2
Changes
5
Hide whitespace changes
Inline
Side-by-side
Libraries/libmscbdecomp/GeneralSingleColExp.F90
View file @
a21ad85d
...
...
@@ -218,7 +218,7 @@ end subroutine
subroutine
GeneralSingleColExp_init
(
this
,
nodes
,
nredges
,
mys
,
weight
)
class
(
GeneralSingleColExp
),
intent
(
inout
)
::
this
type
(
node
),
dimension
(:),
intent
(
in
)
::
nodes
real
(
kind
=
kind
(
0.D0
)),
intent
(
in
),
allocatable
,
dimension
(:)
::
mys
real
(
kind
=
kind
(
0.D0
)),
intent
(
in
),
dimension
(:)
::
mys
integer
,
intent
(
in
)
::
nredges
real
(
kind
=
kind
(
0.d0
)),
intent
(
in
)
::
weight
integer
::
i
...
...
@@ -227,7 +227,7 @@ subroutine GeneralSingleColExp_init(this, nodes, nredges, mys, weight)
allocate
(
this
%
c2
(
2
*
nredges
),
this
%
c2inv
(
2
*
nredges
),
this
%
s2
(
nredges
),
this
%
s2inv
(
nredges
))
this
%
nrofentries
=
nredges
#ifndef NDEBUG
write
(
*
,
*
)
"Setting up strict. sparse matrix with "
,
nredges
,
"edges"
write
(
*
,
*
)
"
[GeneralSingleColExp_init]:
Setting up strict. sparse matrix with "
,
nredges
,
"edges"
#endif
do
i
=
1
,
nredges
this
%
x
(
2
*
i
-1
)
=
nodes
(
i
)
%
x
...
...
@@ -240,10 +240,6 @@ subroutine GeneralSingleColExp_init(this, nodes, nredges, mys, weight)
localzero
=
1E-15
*
frobnorm
(
my1
,
my2
,
nodes
(
i
)
%
axy
)
! definition of my local scale that defines zero
md
=
0.5
*
(
my1
-
my2
)
mav
=
0.5
*
(
my1
+
my2
)
if
(
abs
(
md
)
<
localzero
)
then
write
(
*
,
*
)
"[GeneralSingleColExp_init]: Identical diagonals found! This should go in another class!"
error stop
1
endif
! This is the order of operations that yields stable matrix inversions
! We assume that the matrix that we have decomposed is hermitian:
! M=(d , b)
...
...
Libraries/libmscbdecomp/HomogeneousSingleColExp.F90
View file @
a21ad85d
...
...
@@ -179,7 +179,7 @@ end subroutine HomogeneousSingleColExp_rmultinv
subroutine
HomogeneousSingleColExp_init
(
this
,
nodes
,
nredges
,
mys
,
weight
)
class
(
HomogeneousSingleColExp
),
intent
(
inout
)
::
this
type
(
node
),
dimension
(:),
intent
(
in
)
::
nodes
real
(
kind
=
kind
(
0.D0
)),
intent
(
in
),
allocatable
,
dimension
(:)
::
mys
real
(
kind
=
kind
(
0.D0
)),
intent
(
in
),
dimension
(:)
::
mys
integer
,
intent
(
in
)
::
nredges
real
(
kind
=
kind
(
0.d0
)),
intent
(
in
)
::
weight
integer
::
i
...
...
Libraries/libmscbdecomp/SingleColExpBase.F90
View file @
a21ad85d
...
...
@@ -139,7 +139,7 @@ module SingleColExpBase_mod
import
SingleColExpBase
class
(
SingleColExpBase
),
intent
(
inout
)
::
this
type
(
node
),
dimension
(:),
intent
(
in
)
::
nodes
real
(
kind
=
kind
(
0.D0
)),
intent
(
in
),
allocatable
,
dimension
(:)
::
mys
real
(
kind
=
kind
(
0.D0
)),
intent
(
in
),
dimension
(:)
::
mys
integer
,
intent
(
in
)
::
nredges
real
(
kind
=
kind
(
0.D0
)),
intent
(
in
)
::
weight
end
subroutine
...
...
Libraries/libmscbdecomp/TraceLessSingleColExp.F90
View file @
a21ad85d
...
...
@@ -386,7 +386,7 @@ end subroutine
subroutine
TraceLessSingleColExp_init
(
this
,
nodes
,
nredges
,
mys
,
weight
)
class
(
TraceLessSingleColExp
),
intent
(
inout
)
::
this
type
(
node
),
dimension
(:),
intent
(
in
)
::
nodes
real
(
kind
=
kind
(
0.D0
)),
intent
(
in
),
allocatable
,
dimension
(:)
::
mys
real
(
kind
=
kind
(
0.D0
)),
intent
(
in
),
dimension
(:)
::
mys
integer
,
intent
(
in
)
::
nredges
real
(
kind
=
kind
(
0.d0
)),
intent
(
in
)
::
weight
integer
::
i
...
...
Libraries/libmscbdecomp/ZeroDiagSingleColExp.F90
View file @
a21ad85d
...
...
@@ -223,7 +223,7 @@ subroutine ZeroDiagSingleColExp_init(this, nodes, nredges, mys, weight)
implicit
none
class
(
ZeroDiagSingleColExp
),
intent
(
inout
)
::
this
type
(
node
),
dimension
(:),
intent
(
in
)
::
nodes
real
(
kind
=
kind
(
0.D0
)),
intent
(
in
),
allocatable
,
dimension
(:)
::
mys
real
(
kind
=
kind
(
0.D0
)),
intent
(
in
),
dimension
(:)
::
mys
integer
,
intent
(
in
)
::
nredges
real
(
kind
=
kind
(
0.d0
)),
intent
(
in
)
::
weight
integer
::
i
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment