QR_MUMPS
Data Types | Functions/Subroutines | Variables
qrm_mem_mod Module Reference

This module implements the memory handling routines. Pretty mucch allocations and deallocations. More...

Data Types

interface  qrm_aalloc
 Generic interface for the qrm_aalloc_i, qrm_aalloc_2i, qrm_aalloc_s, qrm_aalloc_2s, qrm_aalloc_3s, qrm_aalloc_d, qrm_aalloc_2d, qrm_aalloc_3d, qrm_aalloc_c, qrm_aalloc_2c, qrm_aalloc_3c, qrm_aalloc_z, qrm_aalloc_2z, qrm_aalloc_3z, routines. More...
 
interface  qrm_adealloc
 Generic interface for the qrm_adealloc_i, qrm_adealloc_2i, qrm_adealloc_s, qrm_adealloc_2s, qrm_adealloc_3s, qrm_adealloc_d, qrm_adealloc_2d, qrm_adealloc_3d, qrm_adealloc_c, qrm_adealloc_2c, qrm_adealloc_3c, qrm_adealloc_z, qrm_adealloc_2z, qrm_adealloc_3z, routines. More...
 
interface  qrm_arealloc
 Generic interface for the qrm_arealloc_i qrm_arealloc_s qrm_arealloc_d qrm_arealloc_c qrm_arealloc_z, routines. More...
 
interface  qrm_asize
 Generic interface for the qrm_asize_i, qrm_asize_s, qrm_asize_2s, qrm_asize_3s, qrm_asize_d, qrm_asize_2d, qrm_asize_3d, qrm_asize_c, qrm_asize_2c, qrm_asize_3c, qrm_asize_z, qrm_asize_2z, qrm_asize_3z routines. More...
 
interface  qrm_palloc
 Generic interface for the qrm_palloc_i, qrm_palloc_2i, qrm_palloc_s, qrm_palloc_2s, qrm_palloc_d, qrm_palloc_2d, qrm_palloc_c, qrm_palloc_2c, qrm_palloc_z, qrm_palloc_2z, routines. More...
 
interface  qrm_pdealloc
 Generic interface for the qrm_pdealloc_i, qrm_pdealloc_2i, qrm_pdealloc_s, qrm_pdealloc_2s, qrm_pdealloc_d, qrm_pdealloc_2d, qrm_pdealloc_c, qrm_pdealloc_2c, qrm_pdealloc_z, qrm_pdealloc_2z, routines. More...
 
interface  qrm_prealloc
 Generic interface for the qrm_prealloc_i qrm_prealloc_s qrm_prealloc_d qrm_prealloc_c qrm_prealloc_z, routines. More...
 
interface  qrm_psize
 Generic interface for the qrm_psize_i qrm_psize_s qrm_psize_d qrm_psize_c qrm_psize_z, routines. More...
 

Functions/Subroutines

subroutine qrm_par_mem_init ()
 This routine has to be called at the beginning of a parallel section. Afterwards, each thread will update its own tot_mem and max_mem variables. This is done to avoid synchronizations on the update of statistics on memory consumption. More...
 
subroutine qrm_par_mem_finalize ()
 
subroutine qrm_mem_upd (n)
 updates memory statistics More...
 
subroutine qrm_palloc_d (a, n, info)
 
subroutine qrm_palloc_d_8 (a, n, info)
 
subroutine qrm_palloc_s (a, n, info)
 
subroutine qrm_palloc_s_8 (a, n, info)
 
subroutine qrm_palloc_i (a, n, info)
 
subroutine qrm_palloc_i_8 (a, n, info)
 
subroutine qrm_palloc_2d (a, m, n, info)
 
subroutine qrm_palloc_2s (a, m, n, info)
 
subroutine qrm_palloc_2i (a, m, n, info)
 
subroutine qrm_palloc_2z (a, m, n, info)
 
subroutine qrm_palloc_2c (a, m, n, info)
 
subroutine qrm_aalloc_d (a, n, lbnd, info)
 
subroutine qrm_aalloc_s (a, n, lbnd, info)
 
subroutine qrm_aalloc_i (a, n, lbnd, info)
 
subroutine qrm_aalloc_2d (a, m, n, info)
 
subroutine qrm_aalloc_2s (a, m, n, info)
 
subroutine qrm_aalloc_2i (a, m, n, info)
 
subroutine qrm_aalloc_3d (a, m, n, k, info)
 
subroutine qrm_aalloc_3s (a, m, n, k, info)
 
subroutine qrm_pdealloc_d (a)
 
subroutine qrm_pdealloc_s (a)
 
subroutine qrm_pdealloc_2d (a)
 
subroutine qrm_pdealloc_2s (a)
 
subroutine qrm_pdealloc_i (a)
 
subroutine qrm_pdealloc_2i (a)
 
subroutine qrm_adealloc_d (a)
 
subroutine qrm_adealloc_s (a)
 
subroutine qrm_adealloc_i (a)
 
subroutine qrm_adealloc_2d (a)
 
subroutine qrm_adealloc_2s (a)
 
subroutine qrm_adealloc_3d (a)
 
subroutine qrm_adealloc_3s (a)
 
subroutine qrm_adealloc_2i (a)
 
subroutine qrm_prealloc_d (a, n, force, copy)
 
subroutine qrm_prealloc_s (a, n, force, copy)
 
subroutine qrm_prealloc_i (a, n, force, copy)
 
subroutine qrm_arealloc_d (a, n, force, copy)
 
subroutine qrm_arealloc_s (a, n, force, copy)
 
subroutine qrm_arealloc_i (a, n, force, copy)
 
integer function qrm_asize_i (a)
 
integer function qrm_asize_s (a)
 
integer function qrm_asize_d (a)
 
integer function qrm_asize_2s (a)
 
integer function qrm_asize_2d (a)
 
integer function qrm_asize_3s (a)
 
integer function qrm_asize_3d (a)
 
subroutine qrm_palloc_z (a, n, info)
 
subroutine qrm_palloc_z_8 (a, n, info)
 
subroutine qrm_palloc_c (a, n, info)
 
subroutine qrm_palloc_c_8 (a, n, info)
 
subroutine qrm_aalloc_z (a, n, lbnd, info)
 
subroutine qrm_aalloc_c (a, n, lbnd, info)
 
subroutine qrm_aalloc_2z (a, m, n, info)
 
subroutine qrm_aalloc_2c (a, m, n, info)
 
subroutine qrm_aalloc_3z (a, m, n, k, info)
 
subroutine qrm_aalloc_3c (a, m, n, k, info)
 
subroutine qrm_pdealloc_z (a)
 
subroutine qrm_pdealloc_c (a)
 
subroutine qrm_pdealloc_2z (a)
 
subroutine qrm_pdealloc_2c (a)
 
subroutine qrm_adealloc_z (a)
 
subroutine qrm_adealloc_c (a)
 
subroutine qrm_adealloc_2z (a)
 
subroutine qrm_adealloc_2c (a)
 
subroutine qrm_adealloc_3z (a)
 
subroutine qrm_adealloc_3c (a)
 
subroutine qrm_prealloc_z (a, n, force, copy)
 
subroutine qrm_prealloc_c (a, n, force, copy)
 
subroutine qrm_arealloc_z (a, n, force, copy)
 
subroutine qrm_arealloc_c (a, n, force, copy)
 
integer function qrm_asize_c (a)
 
integer function qrm_asize_z (a)
 
integer function qrm_asize_2c (a)
 
integer function qrm_asize_2z (a)
 
integer function qrm_asize_3c (a)
 
integer function qrm_asize_3z (a)
 
integer function qrm_psize_i (a)
 
integer function qrm_psize_s (a)
 
integer function qrm_psize_c (a)
 
integer function qrm_psize_z (a)
 
integer function qrm_psize_d (a)
 
subroutine qrm_get_mem_stats (totmem, maxmem)
 

Variables

integer qrm_mem_thn =0
 
integer qrm_mem_nth =1
 
integer(kind=8), dimension(0:qrm_maxthreads-1) qrm_tot_mem =0
 a counter to keep track of the currently allocated memory, per thread More...
 
integer(kind=8), dimension(0:qrm_maxthreads-1) qrm_max_mem =0
 a counter to keep track of the peak memory, per thread More...
 
integer(kind=8) qrm_seq_peak =0
 scratchpad variable to store the memory peak on entry to a parallel region More...
 
integer qrm_exact_mem = qrm_no_
 
integer(kind=8), parameter qrm_sizeof_i_ =4
 
integer(kind=8), parameter qrm_sizeof_s_ =4
 
integer(kind=8), parameter qrm_sizeof_d_ =8
 
integer(kind=8), parameter qrm_sizeof_c_ =8
 
integer(kind=8), parameter qrm_sizeof_z_ =16
 
integer(kind=8) qrm_mem_lim =500000000
 

Detailed Description

This module implements the memory handling routines. Pretty mucch allocations and deallocations.

Function/Subroutine Documentation

subroutine qrm_mem_mod::qrm_aalloc_2c ( complex(kind(1.e0)), dimension(:,:), allocatable  a,
integer, intent(in)  m,
integer, intent(in)  n,
integer, optional  info 
)
Parameters
[in,out]athe allocatable to be allocated
[in]mthe rank-1 size of the allocatable
[in]nthe rank-2 size of the allocatable
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 2600 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_c_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_aalloc_2d ( real(kind(1.d0)), dimension(:,:), allocatable  a,
integer, intent(in)  m,
integer, intent(in)  n,
integer, optional  info 
)
Parameters
[in,out]athe allocatable to be allocated
[in]mthe rank-1 size of the allocatable
[in]nthe rank-2 size of the allocatable
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 1016 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_d_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_aalloc_2i ( integer, dimension(:,:), allocatable  a,
integer, intent(in)  m,
integer, intent(in)  n,
integer, optional  info 
)
Parameters
[in,out]athe allocatable to be allocated
[in]mthe rank-1 size of the allocatable
[in]nthe rank-2 size of the allocatable
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 1118 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_i_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_aalloc_2s ( real(kind(1.e0)), dimension(:,:), allocatable  a,
integer, intent(in)  m,
integer, intent(in)  n,
integer, optional  info 
)
Parameters
[in,out]athe allocatable to be allocated
[in]mthe rank-1 size of the allocatable
[in]nthe rank-2 size of the allocatable
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 1067 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_s_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_aalloc_2z ( complex(kind(1.d0)), dimension(:,:), allocatable  a,
integer, intent(in)  m,
integer, intent(in)  n,
integer, optional  info 
)
Parameters
[in,out]athe allocatable to be allocated
[in]mthe rank-1 size of the allocatable
[in]nthe rank-2 size of the allocatable
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 2550 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_z_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_aalloc_3c ( complex(kind(1.e0)), dimension(:,:,:), allocatable  a,
integer, intent(in)  m,
integer, intent(in)  n,
integer, intent(in)  k,
integer, optional  info 
)
Parameters
[in,out]athe allocatable to be allocated
[in]mthe rank-1 size of the allocatable
[in]nthe rank-2 size of the allocatable
[in]kthe rank-3 size of the allocatable
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 2708 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_c_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_aalloc_3d ( real(kind(1.d0)), dimension(:,:,:), allocatable  a,
integer, intent(in)  m,
integer, intent(in)  n,
integer, intent(in)  k,
integer, optional  info 
)
Parameters
[in,out]athe allocatable to be allocated
[in]mthe rank-1 size of the allocatable
[in]nthe rank-2 size of the allocatable
[in]kthe rank-3 size of the allocatable
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 1172 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_d_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_aalloc_3s ( real(kind(1.e0)), dimension(:,:,:), allocatable  a,
integer, intent(in)  m,
integer, intent(in)  n,
integer, intent(in)  k,
integer, optional  info 
)
Parameters
[in,out]athe allocatable to be allocated
[in]mthe rank-1 size of the allocatable
[in]nthe rank-2 size of the allocatable
[in]kthe rank-3 size of the allocatable
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 1225 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_s_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_aalloc_3z ( complex(kind(1.d0)), dimension(:,:,:), allocatable  a,
integer, intent(in)  m,
integer, intent(in)  n,
integer, intent(in)  k,
integer, optional  info 
)
Parameters
[in,out]athe allocatable to be allocated
[in]mthe rank-1 size of the allocatable
[in]nthe rank-2 size of the allocatable
[in]kthe rank-3 size of the allocatable
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 2655 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_z_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_aalloc_c ( complex(kind(1.e0)), dimension(:), allocatable  a,
integer, intent(in)  n,
integer, optional  lbnd,
integer, optional  info 
)
Parameters
[in,out]athe allocatable to be allocated
[in]nthe size of the allocatable
[in]lbndoptional integer specifying the lower bound
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 2492 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_c_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_aalloc_d ( real(kind(1.d0)), dimension(:), allocatable  a,
integer, intent(in)  n,
integer, optional  lbnd,
integer, optional  info 
)
Parameters
[in,out]athe allocatable to be allocated
[in]nthe size of the allocatable
[in]lbndoptional integer specifying the lower bound
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 842 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_d_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_aalloc_i ( integer, dimension(:), allocatable  a,
integer, intent(in)  n,
integer, optional  lbnd,
integer, optional  info 
)
Parameters
[in,out]athe allocatable to be allocated
[in]nthe size of the allocatable
[in]lbndoptional integer specifying the lower bound
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 958 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_i_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_aalloc_s ( real(kind(1.e0)), dimension(:), allocatable  a,
integer, intent(in)  n,
integer, optional  lbnd,
integer, optional  info 
)
Parameters
[in,out]athe allocatable to be allocated
[in]nthe size of the allocatable
[in]lbndoptional integer specifying the lower bound
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 900 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_s_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_aalloc_z ( complex(kind(1.d0)), dimension(:), allocatable  a,
integer, intent(in)  n,
integer, optional  lbnd,
integer, optional  info 
)
Parameters
[in,out]athe allocatable to be allocated
[in]nthe size of the allocatable
[in]lbndoptional integer specifying the lower bound
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 2435 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_z_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_adealloc_2c ( complex(kind(1.e0)), dimension(:,:), allocatable  a)
Parameters
[in,out]athe allocatable to be deallocated.

Definition at line 2932 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_c_.

subroutine qrm_mem_mod::qrm_adealloc_2d ( real(kind(1.d0)), dimension(:,:), allocatable  a)
Parameters
[in,out]athe allocatable to be deallocated.

Definition at line 1493 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_d_.

subroutine qrm_mem_mod::qrm_adealloc_2i ( integer, dimension(:,:), allocatable  a)
Parameters
[in,out]athe allocatable to be deallocated.

Definition at line 1598 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_i_.

subroutine qrm_mem_mod::qrm_adealloc_2s ( real(kind(1.e0)), dimension(:,:), allocatable  a)
Parameters
[in,out]athe allocatable to be deallocated.

Definition at line 1518 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_s_.

subroutine qrm_mem_mod::qrm_adealloc_2z ( complex(kind(1.d0)), dimension(:,:), allocatable  a)
Parameters
[in,out]athe allocatable to be deallocated.

Definition at line 2907 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_z_.

subroutine qrm_mem_mod::qrm_adealloc_3c ( complex(kind(1.e0)), dimension(:,:,:), allocatable  a)
Parameters
[in,out]athe allocatable to be deallocated.

Definition at line 2984 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_c_.

subroutine qrm_mem_mod::qrm_adealloc_3d ( real(kind(1.d0)), dimension(:,:,:), allocatable  a)
Parameters
[in,out]athe allocatable to be deallocated.

Definition at line 1544 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_d_.

subroutine qrm_mem_mod::qrm_adealloc_3s ( real(kind(1.e0)), dimension(:,:,:), allocatable  a)
Parameters
[in,out]athe allocatable to be deallocated.

Definition at line 1570 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_s_.

subroutine qrm_mem_mod::qrm_adealloc_3z ( complex(kind(1.d0)), dimension(:,:,:), allocatable  a)
Parameters
[in,out]athe allocatable to be deallocated.

Definition at line 2958 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_z_.

subroutine qrm_mem_mod::qrm_adealloc_c ( complex(kind(1.e0)), dimension(:), allocatable  a)
Parameters
[in,out]athe allocatable to be deallocated.

Definition at line 2883 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_c_.

subroutine qrm_mem_mod::qrm_adealloc_d ( real(kind(1.d0)), dimension(:), allocatable  a)
Parameters
[in,out]athe allocatable to be deallocated.

Definition at line 1420 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_d_.

subroutine qrm_mem_mod::qrm_adealloc_i ( integer, dimension(:), allocatable  a)
Parameters
[in,out]athe allocatable to be deallocated.

Definition at line 1469 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_i_.

subroutine qrm_mem_mod::qrm_adealloc_s ( real(kind(1.e0)), dimension(:), allocatable  a)
Parameters
[in,out]athe allocatable to be deallocated.

Definition at line 1445 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_s_.

subroutine qrm_mem_mod::qrm_adealloc_z ( complex(kind(1.d0)), dimension(:), allocatable  a)
Parameters
[in,out]athe allocatable to be deallocated.

Definition at line 2858 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_z_.

subroutine qrm_mem_mod::qrm_arealloc_c ( complex(kind(1.e0)), dimension(:), allocatable  a,
integer  n,
logical, optional  force,
logical, optional  copy 
)
Parameters
[in,out]athe array that has to be reallocated
[in]nthe minimum size of a on exit
[in]forceif force=.true. a is always reallocated
[in]copyif copy=.true. and force=.false. the content of the old area is copied into the new

Definition at line 3256 of file qrm_mem_mod.F90.

References i, qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_c_.

subroutine qrm_mem_mod::qrm_arealloc_d ( real(kind(1.d0)), dimension(:), allocatable  a,
integer  n,
logical, optional  force,
logical, optional  copy 
)
Parameters
[in,out]athe array that has to be reallocated
[in]nthe minimum size of a on exit
[in]forceif force=.true. a is always reallocated
[in]copyif copy=.true. and force=.false. the content of the old area is copied into the new

Definition at line 1865 of file qrm_mem_mod.F90.

References i, qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_d_.

subroutine qrm_mem_mod::qrm_arealloc_i ( integer, dimension(:), allocatable  a,
integer  n,
logical, optional  force,
logical, optional  copy 
)
Parameters
[in,out]athe array that has to be reallocated
[in]nthe minimum size of a on exit
[in]forceif force=.true. a is always reallocated
[in]copyif copy=.true. and force=.false. the content of the old area is copied into the new

Definition at line 2019 of file qrm_mem_mod.F90.

References i, qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_i_.

subroutine qrm_mem_mod::qrm_arealloc_s ( real(kind(1.e0)), dimension(:), allocatable  a,
integer  n,
logical, optional  force,
logical, optional  copy 
)
Parameters
[in,out]athe array that has to be reallocated
[in]nthe minimum size of a on exit
[in]forceif force=.true. a is always reallocated
[in]copyif copy=.true. and force=.false. the content of the old area is copied into the new

Definition at line 1942 of file qrm_mem_mod.F90.

References i, qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_s_.

subroutine qrm_mem_mod::qrm_arealloc_z ( complex(kind(1.d0)), dimension(:), allocatable  a,
integer  n,
logical, optional  force,
logical, optional  copy 
)
Parameters
[in,out]athe array that has to be reallocated
[in]nthe minimum size of a on exit
[in]forceif force=.true. a is always reallocated
[in]copyif copy=.true. and force=.false. the content of the old area is copied into the new

Definition at line 3179 of file qrm_mem_mod.F90.

References i, qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_z_.

integer function qrm_mem_mod::qrm_asize_2c ( complex(kind(1.e0)), dimension(:,:), allocatable  a)
Parameters
[in]athe arrays whose size must be computed

Definition at line 3370 of file qrm_mem_mod.F90.

integer function qrm_mem_mod::qrm_asize_2d ( real(kind(1.d0)), dimension(:,:), allocatable  a)
Parameters
[in]athe arrays whose size must be computed

Definition at line 2176 of file qrm_mem_mod.F90.

integer function qrm_mem_mod::qrm_asize_2s ( real(kind(1.e0)), dimension(:,:), allocatable  a)
Parameters
[in]athe arrays whose size must be computed

Definition at line 2156 of file qrm_mem_mod.F90.

integer function qrm_mem_mod::qrm_asize_2z ( complex(kind(1.d0)), dimension(:,:), allocatable  a)
Parameters
[in]athe arrays whose size must be computed

Definition at line 3390 of file qrm_mem_mod.F90.

integer function qrm_mem_mod::qrm_asize_3c ( complex(kind(1.e0)), dimension(:,:,:), allocatable  a)
Parameters
[in]athe arrays whose size must be computed

Definition at line 3412 of file qrm_mem_mod.F90.

integer function qrm_mem_mod::qrm_asize_3d ( real(kind(1.d0)), dimension(:,:,:), allocatable  a)
Parameters
[in]athe arrays whose size must be computed

Definition at line 2219 of file qrm_mem_mod.F90.

integer function qrm_mem_mod::qrm_asize_3s ( real(kind(1.e0)), dimension(:,:,:), allocatable  a)
Parameters
[in]athe arrays whose size must be computed

Definition at line 2198 of file qrm_mem_mod.F90.

integer function qrm_mem_mod::qrm_asize_3z ( complex(kind(1.d0)), dimension(:,:,:), allocatable  a)
Parameters
[in]athe arrays whose size must be computed

Definition at line 3433 of file qrm_mem_mod.F90.

integer function qrm_mem_mod::qrm_asize_c ( complex(kind(1.e0)), dimension(:), allocatable  a)
Parameters
[in]athe arrays whose size must be computed

Definition at line 3329 of file qrm_mem_mod.F90.

integer function qrm_mem_mod::qrm_asize_d ( real(kind(1.d0)), dimension(:), allocatable  a)
Parameters
[in]athe arrays whose size must be computed

Definition at line 2135 of file qrm_mem_mod.F90.

integer function qrm_mem_mod::qrm_asize_i ( integer, dimension(:), allocatable  a)
Parameters
[in]athe arrays whose size must be computed

Definition at line 2094 of file qrm_mem_mod.F90.

integer function qrm_mem_mod::qrm_asize_s ( real(kind(1.e0)), dimension(:), allocatable  a)
Parameters
[in]athe arrays whose size must be computed

Definition at line 2115 of file qrm_mem_mod.F90.

integer function qrm_mem_mod::qrm_asize_z ( complex(kind(1.d0)), dimension(:), allocatable  a)
Parameters
[in]athe arrays whose size must be computed

Definition at line 3349 of file qrm_mem_mod.F90.

subroutine qrm_mem_mod::qrm_get_mem_stats ( integer(kind=8)  totmem,
integer(kind=8)  maxmem 
)

Definition at line 3559 of file qrm_mem_mod.F90.

References qrm_max_mem, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_mem_upd ( integer(kind=8)  n)
subroutine qrm_mem_mod::qrm_palloc_2c ( complex(kind(1.e0)), dimension(:,:), pointer  a,
integer, intent(in)  m,
integer, intent(in)  n,
integer, optional  info 
)
Parameters
[in,out]athe pointer to be allocated
[in]mthe rank-1 size of the pointer
[in]nthe rank-2 size of the pointer
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 788 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_c_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_palloc_2d ( real(kind(1.d0)), dimension(:,:), pointer  a,
integer, intent(in)  m,
integer, intent(in)  n,
integer, optional  info 
)
Parameters
[in,out]athe pointer to be allocated
[in]mthe rank-1 size of the pointer
[in]nthe rank-2 size of the pointer
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 586 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_d_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_palloc_2i ( integer, dimension(:,:), pointer  a,
integer, intent(in)  m,
integer, intent(in)  n,
integer, optional  info 
)
Parameters
[in,out]athe pointer to be allocated
[in]mthe rank-1 size of the pointer
[in]nthe rank-2 size of the pointer
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 688 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_i_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_palloc_2s ( real(kind(1.e0)), dimension(:,:), pointer  a,
integer, intent(in)  m,
integer, intent(in)  n,
integer, optional  info 
)
Parameters
[in,out]athe pointer to be allocated
[in]mthe rank-1 size of the pointer
[in]nthe rank-2 size of the pointer
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 637 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_s_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_palloc_2z ( complex(kind(1.d0)), dimension(:,:), pointer  a,
integer, intent(in)  m,
integer, intent(in)  n,
integer, optional  info 
)
Parameters
[in,out]athe pointer to be allocated
[in]mthe rank-1 size of the pointer
[in]nthe rank-2 size of the pointer
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 738 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_z_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_palloc_c ( complex(kind(1.e0)), dimension(:), pointer  a,
integer, intent(in)  n,
integer, optional  info 
)
Parameters
[in]nthe size of the pointer
[in,out]athe pointer to be allocated.
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 2336 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_c_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_palloc_c_8 ( complex(kind(1.e0)), dimension(:), pointer  a,
integer(kind=8), intent(in)  n,
integer, optional  info 
)
Parameters
[in]nthe size of the pointer
[in,out]athe pointer to be allocated.
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 2384 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_c_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_palloc_d ( real(kind(1.d0)), dimension(:), pointer  a,
integer, intent(in)  n,
integer, optional  info 
)
Parameters
[in]nthe size of the pointer
[in,out]athe pointer to be allocated.
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 299 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_d_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_palloc_d_8 ( real(kind(1.d0)), dimension(:), pointer  a,
integer(kind=8), intent(in)  n,
integer, optional  info 
)
Parameters
[in]nthe size of the pointer
[in,out]athe pointer to be allocated.
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 344 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_d_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_palloc_i ( integer, dimension(:), pointer  a,
integer, intent(in)  n,
integer, optional  info 
)
Parameters
[in]nthe size of the pointer
[in,out]athe pointer to be allocated.
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 486 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_i_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_palloc_i_8 ( integer, dimension(:), pointer  a,
integer(kind=8), intent(in)  n,
integer, optional  info 
)
Parameters
[in]nthe size of the pointer
[in,out]athe pointer to be allocated.
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 534 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_i_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_palloc_s ( real(kind(1.e0)), dimension(:), pointer  a,
integer, intent(in)  n,
integer, optional  info 
)
Parameters
[in]nthe size of the pointer
[in,out]athe pointer to be allocated.
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 389 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_s_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_palloc_s_8 ( real(kind(1.e0)), dimension(:), pointer  a,
integer(kind=8), intent(in)  n,
integer, optional  info 
)
Parameters
[in]nthe size of the pointer
[in,out]athe pointer to be allocated.
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 437 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_s_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_palloc_z ( complex(kind(1.d0)), dimension(:), pointer  a,
integer, intent(in)  n,
integer, optional  info 
)
Parameters
[in]nthe size of the pointer
[in,out]athe pointer to be allocated.
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 2245 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_z_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_palloc_z_8 ( complex(kind(1.d0)), dimension(:), pointer  a,
integer(kind=8), intent(in)  n,
integer, optional  info 
)
Parameters
[in]nthe size of the pointer
[in,out]athe pointer to be allocated.
[out]info(optional). if this argument is present, then the callee wants to handle the error on his side

Definition at line 2290 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_lim, qrm_mem_nth, qrm_mem_upd(), qrm_sizeof_z_, and qrm_tot_mem.

subroutine qrm_mem_mod::qrm_par_mem_finalize ( )
subroutine qrm_mem_mod::qrm_par_mem_init ( )

This routine has to be called at the beginning of a parallel section. Afterwards, each thread will update its own tot_mem and max_mem variables. This is done to avoid synchronizations on the update of statistics on memory consumption.

Definition at line 236 of file qrm_mem_mod.F90.

References qrm_exact_mem, qrm_max_mem, qrm_mem_nth, qrm_seq_peak, qrm_tot_mem, and qrm_const_mod::qrm_yes_.

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(), and dqrm_solve_rt().

subroutine qrm_mem_mod::qrm_pdealloc_2c ( complex(kind(1.e0)), dimension(:,:), pointer  a)
Parameters
[in,out]athe pointer to be deallocated.

Definition at line 2832 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_c_.

subroutine qrm_mem_mod::qrm_pdealloc_2d ( real(kind(1.d0)), dimension(:,:), pointer  a)
Parameters
[in,out]athe pointer to be deallocated.

Definition at line 1318 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_d_.

subroutine qrm_mem_mod::qrm_pdealloc_2i ( integer, dimension(:,:), pointer  a)
Parameters
[in,out]athe pointer to be deallocated.

Definition at line 1393 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_i_.

subroutine qrm_mem_mod::qrm_pdealloc_2s ( real(kind(1.e0)), dimension(:,:), pointer  a)
Parameters
[in,out]athe pointer to be deallocated.

Definition at line 1343 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_s_.

subroutine qrm_mem_mod::qrm_pdealloc_2z ( complex(kind(1.d0)), dimension(:,:), pointer  a)
Parameters
[in,out]athe pointer to be deallocated.

Definition at line 2807 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_z_.

subroutine qrm_mem_mod::qrm_pdealloc_c ( complex(kind(1.e0)), dimension(:), pointer  a)
Parameters
[in,out]athe pointer to be deallocated.

Definition at line 2782 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_c_.

subroutine qrm_mem_mod::qrm_pdealloc_d ( real(kind(1.d0)), dimension(:), pointer  a)
Parameters
[in,out]athe pointer to be deallocated.

Definition at line 1270 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_d_.

subroutine qrm_mem_mod::qrm_pdealloc_i ( integer, dimension(:), pointer  a)
Parameters
[in,out]athe pointer to be deallocated.

Definition at line 1368 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_i_.

subroutine qrm_mem_mod::qrm_pdealloc_s ( real(kind(1.e0)), dimension(:), pointer  a)
Parameters
[in,out]athe pointer to be deallocated.

Definition at line 1294 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_s_.

subroutine qrm_mem_mod::qrm_pdealloc_z ( complex(kind(1.d0)), dimension(:), pointer  a)
Parameters
[in,out]athe pointer to be deallocated.

Definition at line 2758 of file qrm_mem_mod.F90.

References qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_z_.

subroutine qrm_mem_mod::qrm_prealloc_c ( complex(kind(1.e0)), dimension(:), pointer  a,
integer  n,
logical, optional  force,
logical, optional  copy 
)
Parameters
[in,out]athe array that has to be reallocated
[in]nthe minimum size of a on exit
[in]forceif force=.true. a is always reallocated
[in]copyif copy=.true. and force=.false. the content of the old area is copied into the new

Definition at line 3100 of file qrm_mem_mod.F90.

References i, qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_c_.

subroutine qrm_mem_mod::qrm_prealloc_d ( real(kind(1.d0)), dimension(:), pointer  a,
integer  n,
logical, optional  force,
logical, optional  copy 
)
Parameters
[in,out]athe array that has to be reallocated
[in]nthe minimum size of a on exit
[in]forceif force=.true. a is always reallocated
[in]copyif copy=.true. and force=.false. the content of the old area is copied into the new

Definition at line 1628 of file qrm_mem_mod.F90.

References i, qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_d_.

subroutine qrm_mem_mod::qrm_prealloc_i ( integer, dimension(:), pointer  a,
integer  n,
logical, optional  force,
logical, optional  copy 
)
Parameters
[in,out]athe array that has to be reallocated
[in]nthe minimum size of a on exit
[in]forceif force=.true. a is always reallocated
[in]copyif copy=.true. and force=.false. the content of the old area is copied into the new

Definition at line 1786 of file qrm_mem_mod.F90.

References i, qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_i_.

subroutine qrm_mem_mod::qrm_prealloc_s ( real(kind(1.e0)), dimension(:), pointer  a,
integer  n,
logical, optional  force,
logical, optional  copy 
)
Parameters
[in,out]athe array that has to be reallocated
[in]nthe minimum size of a on exit
[in]forceif force=.true. a is always reallocated
[in]copyif copy=.true. and force=.false. the content of the old area is copied into the new

Definition at line 1707 of file qrm_mem_mod.F90.

References i, qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_s_.

subroutine qrm_mem_mod::qrm_prealloc_z ( complex(kind(1.d0)), dimension(:), pointer  a,
integer  n,
logical, optional  force,
logical, optional  copy 
)
Parameters
[in,out]athe array that has to be reallocated
[in]nthe minimum size of a on exit
[in]forceif force=.true. a is always reallocated
[in]copyif copy=.true. and force=.false. the content of the old area is copied into the new

Definition at line 3021 of file qrm_mem_mod.F90.

References i, qrm_error_mod::qrm_err_push(), qrm_mem_upd(), and qrm_sizeof_z_.

integer function qrm_mem_mod::qrm_psize_c ( complex(kind(1.e0)), dimension(:), pointer  a)
Parameters
[in]athe arrays whose size must be computed

Definition at line 3500 of file qrm_mem_mod.F90.

integer function qrm_mem_mod::qrm_psize_d ( real(kind(1.d0)), dimension(:), pointer  a)
Parameters
[in]athe arrays whose size must be computed

Definition at line 3540 of file qrm_mem_mod.F90.

integer function qrm_mem_mod::qrm_psize_i ( integer, dimension(:), pointer  a)
Parameters
[in]athe arrays whose size must be computed

Definition at line 3457 of file qrm_mem_mod.F90.

integer function qrm_mem_mod::qrm_psize_s ( real(kind(1.e0)), dimension(:), pointer  a)
Parameters
[in]athe arrays whose size must be computed

Definition at line 3478 of file qrm_mem_mod.F90.

integer function qrm_mem_mod::qrm_psize_z ( complex(kind(1.d0)), dimension(:), pointer  a)
Parameters
[in]athe arrays whose size must be computed

Definition at line 3520 of file qrm_mem_mod.F90.

Variable Documentation

integer qrm_mem_mod::qrm_exact_mem = qrm_no_
integer(kind=8), dimension(0:qrm_maxthreads-1) qrm_mem_mod::qrm_max_mem =0

a counter to keep track of the peak memory, per thread

Definition at line 209 of file qrm_mem_mod.F90.

Referenced by qrm_get_mem_stats(), qrm_common_mod::qrm_ggetii(), qrm_common_mod::qrm_gseti(), qrm_mem_upd(), qrm_par_mem_finalize(), and qrm_par_mem_init().

integer(kind=8) qrm_mem_mod::qrm_mem_lim =500000000
integer qrm_mem_mod::qrm_mem_nth =1
integer qrm_mem_mod::qrm_mem_thn =0

Definition at line 202 of file qrm_mem_mod.F90.

Referenced by qrm_mem_upd().

integer(kind=8) qrm_mem_mod::qrm_seq_peak =0

scratchpad variable to store the memory peak on entry to a parallel region

Definition at line 213 of file qrm_mem_mod.F90.

Referenced by qrm_par_mem_finalize(), and qrm_par_mem_init().

integer(kind=8), parameter qrm_mem_mod::qrm_sizeof_c_ =8
integer(kind=8), parameter qrm_mem_mod::qrm_sizeof_d_ =8
integer(kind=8), parameter qrm_mem_mod::qrm_sizeof_i_ =4
integer(kind=8), parameter qrm_mem_mod::qrm_sizeof_s_ =4
integer(kind=8), parameter qrm_mem_mod::qrm_sizeof_z_ =16
integer(kind=8), dimension(0:qrm_maxthreads-1) qrm_mem_mod::qrm_tot_mem =0