Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
fleur
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
54
Issues
54
List
Boards
Labels
Service Desk
Milestones
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
fleur
fleur
Commits
2347d607
Commit
2347d607
authored
Oct 02, 2018
by
Daniel Wortmann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bugfixes and simplifications of MPI matrix cleanup
parent
0d2e970c
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
14 additions
and
12 deletions
+14
-12
eigen/eigen_redist_matrix.f90
eigen/eigen_redist_matrix.f90
+5
-5
types/types_mpimat.F90
types/types_mpimat.F90
+9
-7
No files found.
eigen/eigen_redist_matrix.f90
View file @
2347d607
...
...
@@ -38,22 +38,22 @@ CONTAINS
!up-up component (or only component in collinear case)
IF
(
SIZE
(
mat
)
==
1
)
THEN
CALL
mat_final
%
move
(
mat
(
1
,
1
))
IF
(
PRESENT
(
mat_final_templ
))
CALL
mat
(
1
,
1
)
%
free
()
CALL
mat
(
1
,
1
)
%
free
()
RETURN
ENDIF
CALL
mat_final
%
copy
(
mat
(
1
,
1
),
1
,
1
)
IF
(
PRESENT
(
mat_final_templ
))
CALL
mat
(
1
,
1
)
%
free
()
CALL
mat
(
1
,
1
)
%
free
()
!down-down component
CALL
mat_final
%
copy
(
mat
(
2
,
2
),
lapw
%
nv
(
1
)
+
atoms
%
nlotot
+1
,
lapw
%
nv
(
1
)
+
atoms
%
nlotot
+1
)
IF
(
PRESENT
(
mat_final_templ
))
CALL
mat
(
2
,
2
)
%
free
()
CALL
mat
(
2
,
2
)
%
free
()
!Now collect off-diagonal parts
CALL
mat
(
1
,
2
)
%
add_transpose
(
mat
(
2
,
1
))
CALL
mat_final
%
copy
(
mat
(
1
,
2
),
1
,
lapw
%
nv
(
1
)
+
atoms
%
nlotot
+1
)
IF
(
PRESENT
(
mat_final_templ
))
CALL
mat
(
1
,
2
)
%
free
()
IF
(
PRESENT
(
mat_final_templ
))
CALL
mat
(
2
,
1
)
%
free
()
CALL
mat
(
1
,
2
)
%
free
()
CALL
mat
(
2
,
1
)
%
free
()
END
SUBROUTINE
eigen_redist_matrix
END
MODULE
m_eigen_redist_matrix
...
...
types/types_mpimat.F90
View file @
2347d607
...
...
@@ -260,15 +260,17 @@ CONTAINS
INTEGER
::
ierr
IF
(
ALLOCATED
(
mat
%
data_r
))
DEALLOCATE
(
mat
%
data_r
)
IF
(
ALLOCATED
(
mat
%
data_c
))
DEALLOCATE
(
mat
%
data_c
)
IF
(
mat
%
blacsdata
%
no_use
>
1
)
THEN
mat
%
blacsdata
%
no_use
=
mat
%
blacsdata
%
no_use
-1
mat
%
blacsdata
=>
null
()
ELSE
IF
(
ASSOCIATED
(
mat
%
blacsdata
))
THEN
IF
(
mat
%
blacsdata
%
no_use
>
1
)
THEN
mat
%
blacsdata
%
no_use
=
mat
%
blacsdata
%
no_use
-1
mat
%
blacsdata
=>
null
()
ELSE
#ifdef CPP_SCALAPACK
CALL
BLACS_GRIDEXIT
(
mat
%
blacsdata
%
blacs_desc
(
2
),
ierr
)
DEALLOCATE
(
mat
%
blacsdata
)
CALL
BLACS_GRIDEXIT
(
mat
%
blacsdata
%
blacs_desc
(
2
),
ierr
)
DEALLOCATE
(
mat
%
blacsdata
)
#endif
END
IF
END
IF
ENDIF
END
SUBROUTINE
mpimat_free
!>Initialization of the distributed matrix.
...
...
Write
Preview
Markdown
is supported
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