QR_MUMPS
 All Classes Files Functions Variables Enumerations Enumerator Pages
List of all members | Data Types | Public Member Functions | Public Attributes
qrm_queue_mod Module Reference

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
 

Public Member Functions

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...
 

Public Attributes

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...
 

Detailed Description

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 

Definition at line 47 of file qrm_queue_mod.F90.

Member Function/Subroutine Documentation

subroutine qrm_queue_mod::qrm_queue_free ( type(qrm_queue q)
subroutine qrm_queue_mod::qrm_queue_init ( type(qrm_queue q,
integer  nelems,
integer  pol 
)

Initializes a queue.

Parameters
[in,out]qthe queue to be initialized
[in]nelemsthe 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]polthe policy (either qrm_fifo_ or qrm_lifo_)

Definition at line 89 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:

n = 0
do
n = qrm_queue_next(q,n)
if (n .eq. 0) exit ! we went though the whole queue
! do something on n
end do
Parameters
[in,out]qthe queue where to get the element from
[in]nthe element whose next has to be returned

Definition at line 286 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.

Parameters
[in,out]qthe queue where to pop from

Definition at line 201 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.

Parameters
[in,out]qthe queue to be printed

Definition at line 178 of file qrm_queue_mod.F90.

References i.

subroutine qrm_queue_mod::qrm_queue_push ( type(qrm_queue q,
integer  elem 
)

Pushes an element on a queue.

Parameters
[in,out]qthe queue where to push
[in]elemthe element to be pushed

Definition at line 137 of file qrm_queue_mod.F90.

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.

Parameters
[in,out]qthe queue where to rmove from
[in]nthe element to be removed

Definition at line 229 of file qrm_queue_mod.F90.

References i.

Referenced by activate(), apply_q(), clean(), fill_queue_qt(), fill_queue_r(), solve_r(), and solve_rt().

Member Data Documentation

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.

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.


The documentation for this module was generated from the following file: