QR_MUMPS
qrm_factorization_mod.F90
Go to the documentation of this file.
1 !! ##############################################################################################
2 !!
3 !! Copyright 2012 CNRS, INPT
4 !!
5 !! This file is part of qr_mumps.
6 !!
7 !! qr_mumps is free software: you can redistribute it and/or modify
8 !! it under the terms of the GNU Lesser General Public License as
9 !! published by the Free Software Foundation, either version 3 of
10 !! the License, or (at your option) any later version.
11 !!
12 !! qr_mumps is distributed in the hope that it will be useful,
13 !! but WITHOUT ANY WARRANTY; without even the implied warranty of
14 !! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 !! GNU Lesser General Public License for more details.
16 !!
17 !! You can find a copy of the GNU Lesser General Public License
18 !! in the qr_mumps/doc directory.
19 !!
20 !! ##############################################################################################
21 
22 
23 !! ##############################################################################################
34 
35 
39 
43  subroutine _qrm_factorization_init(qrm_mat)
45  type(_qrm_spmat_type) :: qrm_mat
46  end subroutine _qrm_factorization_init
47  end interface
48 
52  subroutine _qrm_activate_front(qrm_mat, fnum, flops)
54  type(_qrm_spmat_type) :: qrm_mat
55  integer :: fnum
56  real(kind(1.d0)) :: flops
57  end subroutine _qrm_activate_front
58  end interface
59 
62  interface qrm_factorize
63  subroutine _qrm_factorize(qrm_mat, transp)
65  type(_qrm_spmat_type) :: qrm_mat
66  character, optional, intent(in) :: transp
67  end subroutine _qrm_factorize
68  end interface
69 
73  subroutine _qrm_factorization_core(qrm_mat)
75  type(_qrm_spmat_type) :: qrm_mat
76  end subroutine _qrm_factorization_core
77  end interface
78 
81  interface qrm_init_front
82  subroutine _qrm_init_front(qrm_mat, fnum, par, work)
84  type(_qrm_spmat_type), target :: qrm_mat
85  integer :: fnum
86  logical :: par
87  integer, optional :: work(:)
88  end subroutine _qrm_init_front
89  end interface
90 
93  interface qrm_do_subtree
94  subroutine _qrm_do_subtree(qrm_mat, fnum, flops)
96  type(_qrm_spmat_type), target :: qrm_mat
97  integer :: fnum
98  real(kind(1.d0)) :: flops
99  end subroutine _qrm_do_subtree
100  end interface
101 
104  interface qrm_clean_front
105  subroutine _qrm_clean_front(qrm_mat, fnum)
107  type(_qrm_spmat_type), target :: qrm_mat
108  integer :: fnum
109  end subroutine _qrm_clean_front
110  end interface
111 
114  interface qrm_store_h
115  subroutine _qrm_store_h(front)
117  type(_qrm_front_type) :: front
118  end subroutine _qrm_store_h
119  end interface
120 
123  interface qrm_store_r
124  subroutine _qrm_store_r(front)
126  type(_qrm_front_type) :: front
127  end subroutine _qrm_store_r
128  end interface
129 
130 end module _qrm_factorization_mod
subroutine _qrm_init_front(qrm_mat, fnum, par, work)
This routine initializes a front.
Generic interface for the ::_qrm_store_h routine.
Generic interface for the ::_qrm_factorization_core routine.
Generic interface for the ::_qrm_activate_front routine.
subroutine _qrm_do_subtree(qrm_mat, fnum, flops)
This subroutine does the sequential factorization of an entire subtree.
Generic interface for the ::_qrm_clean_front routine.
This module contains all the generic interfaces for the typed routines in the factorization phase...
subroutine _qrm_store_h(front)
subroutine _qrm_clean_front(qrm_mat, fnum)
This routine performs the cleaning of a front.
Generic interface for the ::_qrm_store_r routine.
Generic interface for the ::_qrm_do_subtree routine.
Generic interface for the ::_qrm_factorize routine.
subroutine _qrm_factorization_core(qrm_mat)
This is the main factorization routine. It performs the factorization of all the fronts that have bee...
subroutine _qrm_factorization_init(qrm_mat)
This subroutine initializes the data structures needed for the actual factorization.
This type defines the data structure used to store a matrix.
Generic interface for the ::_qrm_init_front routine.
This module contains the definition of the basic sparse matrix type and of the associated methods...
This module contains the definition of all the data related to the factorization phase.
Generic interface for the ::_qrm_factorization_init routine.
subroutine _qrm_factorize(qrm_mat, transp)
This routine is the main factorization driver.
subroutine _qrm_store_r(front)
subroutine _qrm_activate_front(qrm_mat, fnum, flops)
This routine activates a front.
This type defines a data structure containing all the data related to a front.