QR_MUMPS
|
This module contains all the facilities for front queues. More...
Data Types | |
type | qrm_queue |
A data type meant to to define a queue. More... | |
interface | qrm_queue_init |
Functions/Subroutines | |
subroutine | qrm_queue_init (q, nelems, pol) |
Initializes a queue. More... | |
subroutine | qrm_queue_free (q) |
Frees a queue. More... | |
subroutine | qrm_queue_push (q, elem) |
Pushes an element on a queue. More... | |
subroutine | qrm_queue_prnt (q) |
Prints the content of a queue. More... | |
integer function | qrm_queue_pop (q) |
Pops an element from a queue. More... | |
subroutine | qrm_queue_rm (q, n) |
Removes (without returning it) an element from a queue. More... | |
integer function | qrm_queue_next (q, n) |
Returns the element that follows n in the queue q. Very useful for sweeping through a queue. Example: More... | |
Variables | |
integer, parameter | qrm_fifo_ =0 |
parameter to define the policy of the queue: FIFO More... | |
integer, parameter | qrm_lifo_ =1 |
parameter to define the policy of the queue: LIFO More... | |
This module contains all the facilities for front queues.
It is actually meant to be more general than just for fronts. However each queue can contain only a list of elements with unique indices<maxelems, e.g. it can contain this sequence of elements:
{5 2 8 7 3}, maxelems=8
but not this one
{5 2 8 5 3}, maxelems=8
nor this one
{5 2 8 7 3}, maxelems=7
subroutine qrm_queue_mod::qrm_queue_free | ( | type(qrm_queue) | q | ) |
Frees a queue.
[in,out] | q | the queue to be freed |
Definition at line 114 of file qrm_queue_mod.F90.
Referenced by _qrm_apply_q(), _qrm_apply_qt(), _qrm_factorization_core(), _qrm_solve_r(), _qrm_solve_rt(), do_subtree_q(), do_subtree_r(), dqrm_apply_q(), dqrm_apply_qt(), dqrm_factorization_core(), dqrm_solve_r(), and dqrm_solve_rt().
subroutine qrm_queue_mod::qrm_queue_init | ( | type(qrm_queue) | q, |
integer | nelems, | ||
integer | pol | ||
) |
Initializes a queue.
[in,out] | q | the queue to be initialized |
[in] | nelems | the max number of elements the queu can hold. This actually corresponds to the range of IDs of the elements that can be pushed on the queue |
[in] | pol | the policy (either qrm_fifo_ or qrm_lifo_) |
Definition at line 90 of file qrm_queue_mod.F90.
integer function qrm_queue_mod::qrm_queue_next | ( | type(qrm_queue) | q, |
integer | n | ||
) |
Returns the element that follows n in the queue q. Very useful for sweeping through a queue. Example:
[in,out] | q | the queue where to get the element from |
[in] | n | the element whose next has to be returned |
Definition at line 287 of file qrm_queue_mod.F90.
Referenced by fill_queue(), fill_queue_q(), fill_queue_qt(), fill_queue_r(), and fill_queue_rt().
integer function qrm_queue_mod::qrm_queue_pop | ( | type(qrm_queue) | q | ) |
Pops an element from a queue.
[in,out] | q | the queue where to pop from |
Definition at line 202 of file qrm_queue_mod.F90.
Referenced by do_subtree_q(), and do_subtree_r().
subroutine qrm_queue_mod::qrm_queue_prnt | ( | type(qrm_queue) | q | ) |
Prints the content of a queue.
[in,out] | q | the queue to be printed |
Definition at line 179 of file qrm_queue_mod.F90.
subroutine qrm_queue_mod::qrm_queue_push | ( | type(qrm_queue) | q, |
integer | elem | ||
) |
Pushes an element on a queue.
[in,out] | q | the queue where to push |
[in] | elem | the element to be pushed |
Definition at line 138 of file qrm_queue_mod.F90.
References qrm_fifo_, and qrm_lifo_.
Referenced by _qrm_apply_q(), _qrm_apply_qt(), _qrm_factorization_core(), _qrm_solve_r(), _qrm_solve_rt(), activate(), apply_q(), apply_qt(), do_subtree_q(), do_subtree_r(), dqrm_apply_q(), dqrm_apply_qt(), dqrm_factorization_core(), dqrm_solve_r(), dqrm_solve_rt(), solve_r(), and solve_rt().
subroutine qrm_queue_mod::qrm_queue_rm | ( | type(qrm_queue) | q, |
integer | n | ||
) |
Removes (without returning it) an element from a queue.
[in,out] | q | the queue where to rmove from |
[in] | n | the element to be removed |
Definition at line 230 of file qrm_queue_mod.F90.
Referenced by activate(), apply_q(), clean(), fill_queue_qt(), fill_queue_r(), solve_r(), and solve_rt().
integer, parameter qrm_queue_mod::qrm_fifo_ =0 |
parameter to define the policy of the queue: FIFO
Definition at line 54 of file qrm_queue_mod.F90.
Referenced by _qrm_factorization_core(), do_subtree_q(), do_subtree_r(), dqrm_factorization_core(), and qrm_queue_push().
integer, parameter qrm_queue_mod::qrm_lifo_ =1 |
parameter to define the policy of the queue: LIFO
Definition at line 57 of file qrm_queue_mod.F90.
Referenced by _qrm_apply_q(), _qrm_apply_qt(), _qrm_factorization_core(), _qrm_solve_r(), _qrm_solve_rt(), dqrm_apply_q(), dqrm_apply_qt(), dqrm_factorization_core(), dqrm_solve_r(), dqrm_solve_rt(), and qrm_queue_push().