|
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().
1.8.11