24 real(ip_double_p) ::
mb_blk = 1.0_ip_double_p
39 integer,
optional :: iunit
46 integer :: msize0,msize1
47 integer :: mrss0,mrss1,mrss2
48 integer :: mshare,mtext,mdatastack
51 integer :: GPTLget_memusage
53 real(ip_double_p),
allocatable :: mem_tmp(:)
54 character(*),
parameter :: subname =
'(oasis_mem_init)' 60 ierr = gptlget_memusage(msize, mrss0, mshare, mtext, mdatastack)
61 allocate(mem_tmp(1024*1024))
63 ierr = gptlget_memusage(msize, mrss1, mshare, mtext, mdatastack)
65 ierr = gptlget_memusage(msize, mrss2, mshare, mtext, mdatastack)
67 if (mrss1 - mrss0 > 0)
then 68 mb_blk = (8.0_ip_double_p)/((mrss1-mrss0)*1.0_ip_double_p)
72 if (
present(iunit))
then 73 write(iunit,
'(A,l4)') subname//
' Initset conversion flag is ',
initset 74 write(iunit,
'(A,f16.2)') subname//
' 8 MB memory alloc in MB is ',(mrss1-mrss0)*
mb_blk 75 write(iunit,
'(A,f16.2)') subname//
' 8 MB memory dealloc in MB is ',(mrss1-mrss2)*
mb_blk 76 write(iunit,
'(A,f16.2)') subname//
' Memory block size conversion in bytes is ',
mb_blk*1024_ip_double_p*1024.0_ip_double_p
92 real(ip_double_p),
intent(out) :: r_msize
93 real(ip_double_p),
intent(out) :: r_mrss
97 integer :: mshare,mtext,mdatastack
99 integer :: GPTLget_memusage
100 character(*),
parameter :: subname =
'(oasis_mem_getusage)' 106 ierr = gptlget_memusage(msize, mrss, mshare, mtext, mdatastack)
123 integer,
intent(in) :: iunit
124 character(len=*),
optional,
intent(in) :: string
127 real(ip_double_p) :: msize,mrss
128 character(len=128) :: lstring
129 character(*),
parameter :: subname =
'(oasis_mem_print)' 136 if (
present(string))
then 143 write(iunit,
'(2a,2f14.4,1x,a)') subname,
' memory use (MB) = ',msize,mrss,trim(lstring)
145 write(iunit,
'(2a,2f14.4,1x,a)') subname,
' memory use (??) = ',msize,mrss,trim(lstring)
subroutine, public oasis_mem_print(iunit, string)
Print memory use.
Provides methods for querying memory use.
subroutine, public oasis_mem_init(iunit)
Initialize memory conversion to MB.
integer, parameter ip_double_p
subroutine, public oasis_debug_enter(string)
Used when a subroutine is entered, write info to log file at some debug level.
subroutine, public oasis_debug_exit(string)
Used when a subroutine is exited, write info to log file at some debug level.
subroutine, public oasis_mem_getusage(r_msize, r_mrss)
Determine memory use.