alloc_var_I1P_1D Subroutine

private subroutine alloc_var_I1P_1D(var, ulb, file_unit, msg, verbose)

Allocate CPU variable with memory checking (kind I1P, rank 1).

 use penf
 integer(I1P), allocatable :: a(:)
 integer(I4P)              :: ulb(2)=[1,1]
 open(unit=666, file='doctest-mem.log')
 call allocate_variable(a, ulb, file_unit=666, verbose=.true.)
 close(666, status='delete')
 print*, allocated(a)

Arguments

Type IntentOptional Attributes Name
integer(kind=I1P), intent(inout), allocatable :: var(:)

Varibale to be allocate on CPU.

integer(kind=I4P), intent(in) :: ulb(2)

Upper/lower bounds of variable.

integer(kind=I4P), intent(in), optional :: file_unit

File unit for verbose output.

character(len=*), intent(in), optional :: msg

Message to be printed in verbose mode.

logical, intent(in), optional :: verbose

Flag to activate verbose mode.


Calls

proc~~alloc_var_i1p_1d~~CallsGraph proc~alloc_var_i1p_1d alloc_var_I1P_1D interface~str str proc~alloc_var_i1p_1d->interface~str proc~get_memory_info get_memory_info proc~alloc_var_i1p_1d->proc~get_memory_info proc~str_a_i1p str_a_I1P interface~str->proc~str_a_i1p proc~str_a_i2p str_a_I2P interface~str->proc~str_a_i2p proc~str_a_i4p str_a_I4P interface~str->proc~str_a_i4p proc~str_a_i8p str_a_I8P interface~str->proc~str_a_i8p proc~str_a_r4p str_a_R4P interface~str->proc~str_a_r4p proc~str_a_r8p str_a_R8P interface~str->proc~str_a_r8p proc~str_bol str_bol interface~str->proc~str_bol proc~str_i1p str_I1P interface~str->proc~str_i1p proc~str_i2p str_I2P interface~str->proc~str_i2p proc~str_i4p str_I4P interface~str->proc~str_i4p proc~str_i8p str_I8P interface~str->proc~str_i8p proc~str_r4p str_R4P interface~str->proc~str_r4p proc~str_r8p str_R8P interface~str->proc~str_r8p proc~strf_i1p strf_I1P interface~str->proc~strf_i1p proc~strf_i2p strf_I2P interface~str->proc~strf_i2p proc~strf_i4p strf_I4P interface~str->proc~strf_i4p proc~strf_i8p strf_I8P interface~str->proc~strf_i8p proc~strf_r4p strf_R4P interface~str->proc~strf_r4p proc~strf_r8p strf_R8P interface~str->proc~strf_r8p interface~cton cton proc~get_memory_info->interface~cton proc~ctoi_i1p ctoi_I1P interface~cton->proc~ctoi_i1p proc~ctoi_i2p ctoi_I2P interface~cton->proc~ctoi_i2p proc~ctoi_i4p ctoi_I4P interface~cton->proc~ctoi_i4p proc~ctoi_i8p ctoi_I8P interface~cton->proc~ctoi_i8p proc~ctor_r4p ctor_R4P interface~cton->proc~ctor_r4p proc~ctor_r8p ctor_R8P interface~cton->proc~ctor_r8p proc~str_a_i1p->proc~str_i1p proc~str_a_i2p->proc~str_i2p proc~str_a_i4p->proc~str_i4p proc~str_a_i8p->proc~str_i8p proc~str_a_r4p->proc~str_r4p proc~str_a_r8p->proc~str_r8p proc~compact_real_string compact_real_string proc~str_r4p->proc~compact_real_string proc~str_r8p->proc~compact_real_string

Called by

proc~~alloc_var_i1p_1d~~CalledByGraph proc~alloc_var_i1p_1d alloc_var_I1P_1D interface~allocate_variable allocate_variable interface~allocate_variable->proc~alloc_var_i1p_1d proc~assign_allocatable_i1p_1d assign_allocatable_I1P_1D proc~assign_allocatable_i1p_1d->interface~allocate_variable proc~assign_allocatable_i1p_2d assign_allocatable_I1P_2D proc~assign_allocatable_i1p_2d->interface~allocate_variable proc~assign_allocatable_i1p_3d assign_allocatable_I1P_3D proc~assign_allocatable_i1p_3d->interface~allocate_variable proc~assign_allocatable_i1p_4d assign_allocatable_I1P_4D proc~assign_allocatable_i1p_4d->interface~allocate_variable proc~assign_allocatable_i1p_5d assign_allocatable_I1P_5D proc~assign_allocatable_i1p_5d->interface~allocate_variable proc~assign_allocatable_i1p_6d assign_allocatable_I1P_6D proc~assign_allocatable_i1p_6d->interface~allocate_variable proc~assign_allocatable_i1p_7d assign_allocatable_I1P_7D proc~assign_allocatable_i1p_7d->interface~allocate_variable proc~assign_allocatable_i2p_1d assign_allocatable_I2P_1D proc~assign_allocatable_i2p_1d->interface~allocate_variable proc~assign_allocatable_i2p_2d assign_allocatable_I2P_2D proc~assign_allocatable_i2p_2d->interface~allocate_variable proc~assign_allocatable_i2p_3d assign_allocatable_I2P_3D proc~assign_allocatable_i2p_3d->interface~allocate_variable proc~assign_allocatable_i2p_4d assign_allocatable_I2P_4D proc~assign_allocatable_i2p_4d->interface~allocate_variable proc~assign_allocatable_i2p_5d assign_allocatable_I2P_5D proc~assign_allocatable_i2p_5d->interface~allocate_variable proc~assign_allocatable_i2p_6d assign_allocatable_I2P_6D proc~assign_allocatable_i2p_6d->interface~allocate_variable proc~assign_allocatable_i2p_7d assign_allocatable_I2P_7D proc~assign_allocatable_i2p_7d->interface~allocate_variable proc~assign_allocatable_i4p_1d assign_allocatable_I4P_1D proc~assign_allocatable_i4p_1d->interface~allocate_variable proc~assign_allocatable_i4p_2d assign_allocatable_I4P_2D proc~assign_allocatable_i4p_2d->interface~allocate_variable proc~assign_allocatable_i4p_3d assign_allocatable_I4P_3D proc~assign_allocatable_i4p_3d->interface~allocate_variable proc~assign_allocatable_i4p_4d assign_allocatable_I4P_4D proc~assign_allocatable_i4p_4d->interface~allocate_variable proc~assign_allocatable_i4p_5d assign_allocatable_I4P_5D proc~assign_allocatable_i4p_5d->interface~allocate_variable proc~assign_allocatable_i4p_6d assign_allocatable_I4P_6D proc~assign_allocatable_i4p_6d->interface~allocate_variable proc~assign_allocatable_i4p_7d assign_allocatable_I4P_7D proc~assign_allocatable_i4p_7d->interface~allocate_variable proc~assign_allocatable_i8p_1d assign_allocatable_I8P_1D proc~assign_allocatable_i8p_1d->interface~allocate_variable proc~assign_allocatable_i8p_2d assign_allocatable_I8P_2D proc~assign_allocatable_i8p_2d->interface~allocate_variable proc~assign_allocatable_i8p_3d assign_allocatable_I8P_3D proc~assign_allocatable_i8p_3d->interface~allocate_variable proc~assign_allocatable_i8p_4d assign_allocatable_I8P_4D proc~assign_allocatable_i8p_4d->interface~allocate_variable proc~assign_allocatable_i8p_5d assign_allocatable_I8P_5D proc~assign_allocatable_i8p_5d->interface~allocate_variable proc~assign_allocatable_i8p_6d assign_allocatable_I8P_6D proc~assign_allocatable_i8p_6d->interface~allocate_variable proc~assign_allocatable_i8p_7d assign_allocatable_I8P_7D proc~assign_allocatable_i8p_7d->interface~allocate_variable proc~assign_allocatable_r16p_1d assign_allocatable_R16P_1D proc~assign_allocatable_r16p_1d->interface~allocate_variable proc~assign_allocatable_r16p_2d assign_allocatable_R16P_2D proc~assign_allocatable_r16p_2d->interface~allocate_variable proc~assign_allocatable_r16p_3d assign_allocatable_R16P_3D proc~assign_allocatable_r16p_3d->interface~allocate_variable proc~assign_allocatable_r16p_4d assign_allocatable_R16P_4D proc~assign_allocatable_r16p_4d->interface~allocate_variable proc~assign_allocatable_r16p_5d assign_allocatable_R16P_5D proc~assign_allocatable_r16p_5d->interface~allocate_variable proc~assign_allocatable_r16p_6d assign_allocatable_R16P_6D proc~assign_allocatable_r16p_6d->interface~allocate_variable proc~assign_allocatable_r16p_7d assign_allocatable_R16P_7D proc~assign_allocatable_r16p_7d->interface~allocate_variable proc~assign_allocatable_r4p_1d assign_allocatable_R4P_1D proc~assign_allocatable_r4p_1d->interface~allocate_variable proc~assign_allocatable_r4p_2d assign_allocatable_R4P_2D proc~assign_allocatable_r4p_2d->interface~allocate_variable proc~assign_allocatable_r4p_3d assign_allocatable_R4P_3D proc~assign_allocatable_r4p_3d->interface~allocate_variable proc~assign_allocatable_r4p_4d assign_allocatable_R4P_4D proc~assign_allocatable_r4p_4d->interface~allocate_variable proc~assign_allocatable_r4p_5d assign_allocatable_R4P_5D proc~assign_allocatable_r4p_5d->interface~allocate_variable proc~assign_allocatable_r4p_6d assign_allocatable_R4P_6D proc~assign_allocatable_r4p_6d->interface~allocate_variable proc~assign_allocatable_r4p_7d assign_allocatable_R4P_7D proc~assign_allocatable_r4p_7d->interface~allocate_variable proc~assign_allocatable_r8p_1d assign_allocatable_R8P_1D proc~assign_allocatable_r8p_1d->interface~allocate_variable proc~assign_allocatable_r8p_2d assign_allocatable_R8P_2D proc~assign_allocatable_r8p_2d->interface~allocate_variable proc~assign_allocatable_r8p_3d assign_allocatable_R8P_3D proc~assign_allocatable_r8p_3d->interface~allocate_variable proc~assign_allocatable_r8p_4d assign_allocatable_R8P_4D proc~assign_allocatable_r8p_4d->interface~allocate_variable proc~assign_allocatable_r8p_5d assign_allocatable_R8P_5D proc~assign_allocatable_r8p_5d->interface~allocate_variable proc~assign_allocatable_r8p_6d assign_allocatable_R8P_6D proc~assign_allocatable_r8p_6d->interface~allocate_variable proc~assign_allocatable_r8p_7d assign_allocatable_R8P_7D proc~assign_allocatable_r8p_7d->interface~allocate_variable program~volatile_doctest~101 volatile_doctest program~volatile_doctest~101->interface~allocate_variable program~volatile_doctest~104 volatile_doctest program~volatile_doctest~104->interface~allocate_variable program~volatile_doctest~106 volatile_doctest program~volatile_doctest~106->interface~allocate_variable program~volatile_doctest~109 volatile_doctest program~volatile_doctest~109->interface~allocate_variable program~volatile_doctest~11 volatile_doctest program~volatile_doctest~11->interface~allocate_variable program~volatile_doctest~111 volatile_doctest program~volatile_doctest~111->interface~allocate_variable program~volatile_doctest~112 volatile_doctest program~volatile_doctest~112->interface~allocate_variable program~volatile_doctest~114 volatile_doctest program~volatile_doctest~114->interface~allocate_variable program~volatile_doctest~124 volatile_doctest program~volatile_doctest~124->interface~allocate_variable program~volatile_doctest~125 volatile_doctest program~volatile_doctest~125->interface~allocate_variable program~volatile_doctest~126 volatile_doctest program~volatile_doctest~126->interface~allocate_variable program~volatile_doctest~129 volatile_doctest program~volatile_doctest~129->interface~allocate_variable program~volatile_doctest~134 volatile_doctest program~volatile_doctest~134->interface~allocate_variable program~volatile_doctest~14 volatile_doctest program~volatile_doctest~14->interface~allocate_variable program~volatile_doctest~142 volatile_doctest program~volatile_doctest~142->interface~allocate_variable program~volatile_doctest~147 volatile_doctest program~volatile_doctest~147->interface~allocate_variable program~volatile_doctest~148 volatile_doctest program~volatile_doctest~148->interface~allocate_variable program~volatile_doctest~155 volatile_doctest program~volatile_doctest~155->interface~allocate_variable program~volatile_doctest~163 volatile_doctest program~volatile_doctest~163->interface~allocate_variable program~volatile_doctest~174 volatile_doctest program~volatile_doctest~174->interface~allocate_variable program~volatile_doctest~182 volatile_doctest program~volatile_doctest~182->interface~allocate_variable program~volatile_doctest~19 volatile_doctest program~volatile_doctest~19->interface~allocate_variable program~volatile_doctest~190 volatile_doctest program~volatile_doctest~190->interface~allocate_variable program~volatile_doctest~192 volatile_doctest program~volatile_doctest~192->interface~allocate_variable program~volatile_doctest~193 volatile_doctest program~volatile_doctest~193->interface~allocate_variable program~volatile_doctest~194 volatile_doctest program~volatile_doctest~194->interface~allocate_variable program~volatile_doctest~197 volatile_doctest program~volatile_doctest~197->interface~allocate_variable program~volatile_doctest~2 volatile_doctest program~volatile_doctest~2->interface~allocate_variable program~volatile_doctest~205 volatile_doctest program~volatile_doctest~205->interface~allocate_variable program~volatile_doctest~27 volatile_doctest program~volatile_doctest~27->interface~allocate_variable program~volatile_doctest~3 volatile_doctest program~volatile_doctest~3->interface~allocate_variable program~volatile_doctest~30 volatile_doctest program~volatile_doctest~30->interface~allocate_variable program~volatile_doctest~32 volatile_doctest program~volatile_doctest~32->interface~allocate_variable program~volatile_doctest~4 volatile_doctest program~volatile_doctest~4->interface~allocate_variable program~volatile_doctest~40 volatile_doctest program~volatile_doctest~40->interface~allocate_variable program~volatile_doctest~54 volatile_doctest program~volatile_doctest~54->interface~allocate_variable program~volatile_doctest~56 volatile_doctest program~volatile_doctest~56->interface~allocate_variable program~volatile_doctest~63 volatile_doctest program~volatile_doctest~63->interface~allocate_variable program~volatile_doctest~69 volatile_doctest program~volatile_doctest~69->interface~allocate_variable program~volatile_doctest~70 volatile_doctest program~volatile_doctest~70->interface~allocate_variable program~volatile_doctest~72 volatile_doctest program~volatile_doctest~72->interface~allocate_variable program~volatile_doctest~73 volatile_doctest program~volatile_doctest~73->interface~allocate_variable program~volatile_doctest~77 volatile_doctest program~volatile_doctest~77->interface~allocate_variable program~volatile_doctest~80 volatile_doctest program~volatile_doctest~80->interface~allocate_variable program~volatile_doctest~81 volatile_doctest program~volatile_doctest~81->interface~allocate_variable program~volatile_doctest~83 volatile_doctest program~volatile_doctest~83->interface~allocate_variable program~volatile_doctest~85 volatile_doctest program~volatile_doctest~85->interface~allocate_variable program~volatile_doctest~91 volatile_doctest program~volatile_doctest~91->interface~allocate_variable program~volatile_doctest~95 volatile_doctest program~volatile_doctest~95->interface~allocate_variable interface~assign_allocatable assign_allocatable interface~assign_allocatable->proc~assign_allocatable_i1p_1d interface~assign_allocatable->proc~assign_allocatable_i1p_2d interface~assign_allocatable->proc~assign_allocatable_i1p_3d interface~assign_allocatable->proc~assign_allocatable_i1p_4d interface~assign_allocatable->proc~assign_allocatable_i1p_5d interface~assign_allocatable->proc~assign_allocatable_i1p_6d interface~assign_allocatable->proc~assign_allocatable_i1p_7d interface~assign_allocatable->proc~assign_allocatable_i2p_1d interface~assign_allocatable->proc~assign_allocatable_i2p_2d interface~assign_allocatable->proc~assign_allocatable_i2p_3d interface~assign_allocatable->proc~assign_allocatable_i2p_4d interface~assign_allocatable->proc~assign_allocatable_i2p_5d interface~assign_allocatable->proc~assign_allocatable_i2p_6d interface~assign_allocatable->proc~assign_allocatable_i2p_7d interface~assign_allocatable->proc~assign_allocatable_i4p_1d interface~assign_allocatable->proc~assign_allocatable_i4p_2d interface~assign_allocatable->proc~assign_allocatable_i4p_3d interface~assign_allocatable->proc~assign_allocatable_i4p_4d interface~assign_allocatable->proc~assign_allocatable_i4p_5d interface~assign_allocatable->proc~assign_allocatable_i4p_6d interface~assign_allocatable->proc~assign_allocatable_i4p_7d interface~assign_allocatable->proc~assign_allocatable_i8p_1d interface~assign_allocatable->proc~assign_allocatable_i8p_2d interface~assign_allocatable->proc~assign_allocatable_i8p_3d interface~assign_allocatable->proc~assign_allocatable_i8p_4d interface~assign_allocatable->proc~assign_allocatable_i8p_5d interface~assign_allocatable->proc~assign_allocatable_i8p_6d interface~assign_allocatable->proc~assign_allocatable_i8p_7d interface~assign_allocatable->proc~assign_allocatable_r4p_1d interface~assign_allocatable->proc~assign_allocatable_r4p_2d interface~assign_allocatable->proc~assign_allocatable_r4p_3d interface~assign_allocatable->proc~assign_allocatable_r4p_4d interface~assign_allocatable->proc~assign_allocatable_r4p_5d interface~assign_allocatable->proc~assign_allocatable_r4p_6d interface~assign_allocatable->proc~assign_allocatable_r4p_7d interface~assign_allocatable->proc~assign_allocatable_r8p_1d interface~assign_allocatable->proc~assign_allocatable_r8p_2d interface~assign_allocatable->proc~assign_allocatable_r8p_3d interface~assign_allocatable->proc~assign_allocatable_r8p_4d interface~assign_allocatable->proc~assign_allocatable_r8p_5d interface~assign_allocatable->proc~assign_allocatable_r8p_6d interface~assign_allocatable->proc~assign_allocatable_r8p_7d program~volatile_doctest~100 volatile_doctest program~volatile_doctest~100->interface~assign_allocatable program~volatile_doctest~103 volatile_doctest program~volatile_doctest~103->interface~assign_allocatable program~volatile_doctest~117 volatile_doctest program~volatile_doctest~117->interface~assign_allocatable program~volatile_doctest~131 volatile_doctest program~volatile_doctest~131->interface~assign_allocatable program~volatile_doctest~138 volatile_doctest program~volatile_doctest~138->interface~assign_allocatable program~volatile_doctest~140 volatile_doctest program~volatile_doctest~140->interface~assign_allocatable program~volatile_doctest~141 volatile_doctest program~volatile_doctest~141->interface~assign_allocatable program~volatile_doctest~144 volatile_doctest program~volatile_doctest~144->interface~assign_allocatable program~volatile_doctest~153 volatile_doctest program~volatile_doctest~153->interface~assign_allocatable program~volatile_doctest~154 volatile_doctest program~volatile_doctest~154->interface~assign_allocatable program~volatile_doctest~161 volatile_doctest program~volatile_doctest~161->interface~assign_allocatable program~volatile_doctest~165 volatile_doctest program~volatile_doctest~165->interface~assign_allocatable program~volatile_doctest~166 volatile_doctest program~volatile_doctest~166->interface~assign_allocatable program~volatile_doctest~167 volatile_doctest program~volatile_doctest~167->interface~assign_allocatable program~volatile_doctest~179 volatile_doctest program~volatile_doctest~179->interface~assign_allocatable program~volatile_doctest~180 volatile_doctest program~volatile_doctest~180->interface~assign_allocatable program~volatile_doctest~183 volatile_doctest program~volatile_doctest~183->interface~assign_allocatable program~volatile_doctest~186 volatile_doctest program~volatile_doctest~186->interface~assign_allocatable program~volatile_doctest~191 volatile_doctest program~volatile_doctest~191->interface~assign_allocatable program~volatile_doctest~196 volatile_doctest program~volatile_doctest~196->interface~assign_allocatable program~volatile_doctest~199 volatile_doctest program~volatile_doctest~199->interface~assign_allocatable program~volatile_doctest~20 volatile_doctest program~volatile_doctest~20->interface~assign_allocatable program~volatile_doctest~200 volatile_doctest program~volatile_doctest~200->interface~assign_allocatable program~volatile_doctest~206 volatile_doctest program~volatile_doctest~206->interface~assign_allocatable program~volatile_doctest~208 volatile_doctest program~volatile_doctest~208->interface~assign_allocatable program~volatile_doctest~21 volatile_doctest program~volatile_doctest~21->interface~assign_allocatable program~volatile_doctest~28 volatile_doctest program~volatile_doctest~28->interface~assign_allocatable program~volatile_doctest~34 volatile_doctest program~volatile_doctest~34->interface~assign_allocatable program~volatile_doctest~37 volatile_doctest program~volatile_doctest~37->interface~assign_allocatable program~volatile_doctest~43 volatile_doctest program~volatile_doctest~43->interface~assign_allocatable program~volatile_doctest~45 volatile_doctest program~volatile_doctest~45->interface~assign_allocatable program~volatile_doctest~47 volatile_doctest program~volatile_doctest~47->interface~assign_allocatable program~volatile_doctest~49 volatile_doctest program~volatile_doctest~49->interface~assign_allocatable program~volatile_doctest~50 volatile_doctest program~volatile_doctest~50->interface~assign_allocatable program~volatile_doctest~57 volatile_doctest program~volatile_doctest~57->interface~assign_allocatable program~volatile_doctest~59 volatile_doctest program~volatile_doctest~59->interface~assign_allocatable program~volatile_doctest~6 volatile_doctest program~volatile_doctest~6->interface~assign_allocatable program~volatile_doctest~60 volatile_doctest program~volatile_doctest~60->interface~assign_allocatable program~volatile_doctest~62 volatile_doctest program~volatile_doctest~62->interface~assign_allocatable program~volatile_doctest~64 volatile_doctest program~volatile_doctest~64->interface~assign_allocatable program~volatile_doctest~7 volatile_doctest program~volatile_doctest~7->interface~assign_allocatable program~volatile_doctest~71 volatile_doctest program~volatile_doctest~71->interface~assign_allocatable program~volatile_doctest~74 volatile_doctest program~volatile_doctest~74->interface~assign_allocatable program~volatile_doctest~8 volatile_doctest program~volatile_doctest~8->interface~assign_allocatable program~volatile_doctest~88 volatile_doctest program~volatile_doctest~88->interface~assign_allocatable program~volatile_doctest~90 volatile_doctest program~volatile_doctest~90->interface~assign_allocatable program~volatile_doctest~93 volatile_doctest program~volatile_doctest~93->interface~assign_allocatable program~volatile_doctest~97 volatile_doctest program~volatile_doctest~97->interface~assign_allocatable program~volatile_doctest~98 volatile_doctest program~volatile_doctest~98->interface~assign_allocatable

Source Code

   subroutine alloc_var_I1P_1D(var, ulb, file_unit, msg, verbose)
   !< Allocate CPU variable with memory checking (kind I1P, rank 1).
   !<
   !<```fortran
   !< use penf
   !< integer(I1P), allocatable :: a(:)
   !< integer(I4P)              :: ulb(2)=[1,1]
   !< open(unit=666, file='doctest-mem.log')
   !< call allocate_variable(a, ulb, file_unit=666, verbose=.true.)
   !< close(666, status='delete')
   !< print*, allocated(a)
   !<```
   !=> T <<<
   integer(I1P), allocatable, intent(inout)        :: var(:)              !< Varibale to be allocate on CPU.
   integer(I4P),              intent(in)           :: ulb(2)              !< Upper/lower bounds of variable.
   integer(I4P),              intent(in), optional :: file_unit           !< File unit for verbose output.
   character(*),              intent(in), optional :: msg                 !< Message to be printed in verbose mode.
   logical,                   intent(in), optional :: verbose             !< Flag to activate verbose mode.
   integer(I4P)                                    :: file_unit_          !< File unit for verbose output, local var.
   character(:), allocatable                       :: msg_                !< Message to be printed in verbose mode, local var.
   logical                                         :: verbose_            !< Flag to activate verbose mode, local var.
   integer(I8P)                                    :: mem_free, mem_total !< CPU memory.

   file_unit_ = stdout  ; if (present(file_unit)) file_unit_ = file_unit
   msg_       = ''      ; if (present(msg    ))   msg_       = msg
   verbose_   = .false. ; if (present(verbose))   verbose_   = verbose
   if (allocated(var)) deallocate(var)
   if (verbose_) then
      call get_memory_info(mem_total, mem_free)
      write(file_unit_,'(A)') msg_//'free/total memory BEFORE allocate:'//trim(str([mem_free,mem_total]))//'[bytes]'
   endif
   allocate(var(ulb(1):ulb(2)))
   if (verbose_) then
      call get_memory_info(mem_total, mem_free)
      write(file_unit_,'(A)') msg_//'free/total memory AFTER  allocate:'//trim(str([mem_free,mem_total]))//'[bytes]'
   endif
   endsubroutine alloc_var_I1P_1D