[ncl-talk] NCL addfile memory leak in functions
Dennis Shea
shea at ucar.edu
Thu Dec 12 12:56:17 MST 2019
I have Ghasson's test script on 3 different systems with no issues.
---
MAC:
%> uname -a
Darwin sherkin 18.7.0 Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT
2019; root:xnu-4903.271.2~2/RELEASE_X86_64 x86_64
%> gcc --version
gcc (GCC) 6.2.0
---
%> uname -a
Linux andre.cgd.ucar.edu 3.10.0-1062.4.1.el7.x86_64 #1 SMP Fri Oct 18
17:15:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
%> gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)
---
%>uname -a
Linux cheyenne3 4.12.14-94.41-default #1 SMP Wed Oct 31 12:25:04 UTC 2018
(3090901) x86_64 x86_64 x86_64 GNU/Linux
%>gcc --version
gcc (SUSE Linux) 4.8.5
=====
Comment: I always recommend prototyping function/procedure arguments and
using 'local'.
Using a bogus example based on Rick's trivial example:
function foo(f[1]:file) ; argument prototype [scalar] and must be type
'file'
local v , x,y,z ; local variables
begin
v = f->$VAR$
x = 5*v
y = sqrt(v)
z = x/y
return v
end
Upon encountering th 'end', the 'local' x,y,z are automatically deleted.
Also,, I think, a copy of local 'v' is is returned and local v is deleted.
Cheers
D
On Thu, Dec 12, 2019 at 10:29 AM Rick Brownrigg <brownrig at ucar.edu> wrote:
> Hi,
>
> For better or worse, I am unable to duplicate this (with ncl v6.6.2). I
> didn't have access to the two GPLOT scripts you load at the top of your
> script, so I don't know what your function is doing. I cobbled up a simple
> one like:
>
> VAR = "UGRD_P0_L100_GLL0"
> ...
> function foo(f)
> begin
> v = f->$VAR$
> return v
> end
> ...
> v = foo(f)
> ...print memory stats...
> delete([/f,v/])
> ...print memory stats...
>
> So, I'm not sure what to recommend here. By chance, is there a lot of
> string processing going on somewhere?
>
> Rick
> On Thu, Dec 12, 2019 at 9:01 AM Ghassan Alaka - NOAA Federal <
> ghassan.alaka at noaa.gov> wrote:
>
>> Here you go:
>>
>> natl00l.2019082700.hafsprs.synoptic.0p03.f000.grb2
>> <https://drive.google.com/a/noaa.gov/file/d/1eyEyz1AlbpVBn8Acv7i1Mdea5vXILP5I/view?usp=drive_web>
>>
>>
>> Best,
>> Gus
>>
>> --
>> Ghassan J. Alaka, Jr., Ph.D.
>> NOAA/AOML/Hurricane Research Division
>> 4301 Rickenbacker Causeway
>> Miami. FL 33149
>> Tel: (305)361-4409
>> Fax: (305)361-4402
>>
>> **Opinions expressed in this email are my own and do not represent AOML
>> or NOAA.**
>>
>>
>>
>> On Thu, Dec 12, 2019 at 10:19 AM Dennis Shea <shea at ucar.edu> wrote:
>>
>>> Google drive should beok.
>>>
>>> THX
>>> D
>>>
>>> On Thu, Dec 12, 2019 at 8:06 AM Ghassan Alaka - NOAA Federal <
>>> ghassan.alaka at noaa.gov> wrote:
>>>
>>>> I'm having trouble using the FTP option because I am behind a NOAA
>>>> firewall. Do you by any chance have access to NOAA's Jet supercomputer?
>>>>
>>>> Can I share it with you via Google Drive? The file is 1.8GB.
>>>>
>>>> Best,
>>>> Gus
>>>>
>>>> --
>>>> Ghassan J. Alaka, Jr., Ph.D.
>>>> NOAA/AOML/Hurricane Research Division
>>>> 4301 Rickenbacker Causeway
>>>> Miami. FL 33149
>>>> Tel: (305)361-4409
>>>> Fax: (305)361-4402
>>>>
>>>> **Opinions expressed in this email are my own and do not represent
>>>> AOML or NOAA.**
>>>>
>>>>
>>>>
>>>> On Thu, Dec 12, 2019 at 9:57 AM Dennis Shea <shea at ucar.edu> wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>> Did u send the file?
>>>>> We can not look at ftp for security reasons.
>>>>>
>>>>> Cheers
>>>>> D
>>>>>
>>>>> On Wed, Dec 11, 2019 at 3:10 PM Dennis Shea <shea at ucar.edu> wrote:
>>>>>
>>>>>> Ummm, we can look.
>>>>>>
>>>>>> offline
>>>>>>
>>>>>> Please make "natl00l.2019082700.hafsprs.synoptic.0p03.f000.grb2"
>>>>>> available.
>>>>>> Dropbox
>>>>>>
>>>>>> or ftp
>>>>>>
>>>>>> ftp ftp.cgd.ucar.edu
>>>>>> anonymous
>>>>>> your_email
>>>>>> cd incoming
>>>>>> put natl00l.2019082700.hafsprs.synoptic.0p03.f000.grb2
>>>>>> quit
>>>>>>
>>>>>> After successful transfer, please send us an email.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Dec 11, 2019 at 3:00 PM Ghassan Alaka - NOAA Federal via
>>>>>> ncl-talk <ncl-talk at ucar.edu> wrote:
>>>>>>
>>>>>>> Hi All,
>>>>>>>
>>>>>>> Similar but different to a previous submission (see link below), I
>>>>>>> am experiencing a memory leak when reading data from a file that was read
>>>>>>> in with the function "addfile". There are some key differences in my
>>>>>>> situation from the one in the link:
>>>>>>> 1) I am creating variable "f" using "f = addfile()" in my parent
>>>>>>> script to read a GRIB2 data file.
>>>>>>> 2) I wrote a custom function that resides in another script and
>>>>>>> takes "f" as an input variable. This was done because an undetermined
>>>>>>> number of variables need to be read from the GRIB2 data file described by
>>>>>>> "f". Plus, a lot of ugly logic related to the actual reading of the data is
>>>>>>> stored in this function as well.
>>>>>>> 3) In the function, I read the data into a variable "V" and return
>>>>>>> that variable to the parent script.
>>>>>>> 4) In the parent script, a loop iterates over multiple GRIB2 data
>>>>>>> files. The variables "f" and "V" are eventually overwritten by new data.
>>>>>>> 5) I am very careful to delete old variables, including "f" and "V"
>>>>>>> in the parent script.
>>>>>>> 6) I have monitored the memory increasing until it sometimes reaches
>>>>>>> the maximum value and the system kills my job. This out-of-memory kill
>>>>>>> occurs after several iterations through the list of GRIB2 files.
>>>>>>>
>>>>>>> http://mailman.ucar.edu/pipermail/ncl-talk/2017-July/009512.html
>>>>>>>
>>>>>>> Given this setup, I am experiencing a memory leak when reading the
>>>>>>> data from file "f" into variable "V" in the function called from the parent
>>>>>>> script. I can't delete "f" within the function because it is an input
>>>>>>> argument and its deletion is not allowed. I directly tested the following
>>>>>>> and monitored memory usage with "systemfunc("ps u")" calls from within the
>>>>>>> script.
>>>>>>> a) If I read the data from file "f" into variable "V" in the primary
>>>>>>> script, then "delete([/V,f/])", there is no apparent memory leak.
>>>>>>> b) If I create a variable "V" using the "new()" function with the
>>>>>>> same dimensions as the data from the GRIB2 file, then delete it, there is
>>>>>>> no apparent memory leak.
>>>>>>> c) If I create file "f" from the primary script, then pass "f" as a
>>>>>>> function argument and read the data into variable "V", then return "V" to
>>>>>>> the primary script, then "delete([/V,f/])", *there is an apparent
>>>>>>> memory leak*.
>>>>>>>
>>>>>>> I have not tested what happens if file "f" is defined as a local
>>>>>>> variable in the function and then explicitly deleted before "V" is returned
>>>>>>> to the parent script. Although that may work, it is not a feasible solution
>>>>>>> given my the script would slow down significantly by repeatedly executing
>>>>>>> "f=addfile()". Another possible solution is to execute "f->VAR" from within
>>>>>>> the primary script. However, such a change would negatively impact these
>>>>>>> scripts since I have a lot of logic related to the creation of "V" that I
>>>>>>> am able to hide from the primary script.
>>>>>>>
>>>>>>> Below I pasted a sample script using NCL V6.6.2 and its output that
>>>>>>> I used to test these issues. The issue was reproducible using NCL V6.5.0.
>>>>>>> Can variable type "file" be safely passed as a function argument? Do you
>>>>>>> think the reference to "f" is being copied by the function and the extra
>>>>>>> memory associated with the "f->" statement is never released? Any ideas on
>>>>>>> the best way forward while maintaining the efficiency of my function usage?
>>>>>>>
>>>>>>> Best,
>>>>>>> Gus
>>>>>>>
>>>>>>> --
>>>>>>> Ghassan J. Alaka, Jr., Ph.D.
>>>>>>> NOAA/AOML/Hurricane Research Division
>>>>>>> 4301 Rickenbacker Causeway
>>>>>>> Miami. FL 33149
>>>>>>> Tel: (305)361-4409
>>>>>>> Fax: (305)361-4402
>>>>>>>
>>>>>>> **Opinions expressed in this email are my own and do not represent
>>>>>>> AOML or NOAA.**
>>>>>>>
>>>>>>>
>>>>>>> *NCL SCRIPT*
>>>>>>> ; A simple NCL script that shows a potential memory leak when using
>>>>>>> "addfile"
>>>>>>>
>>>>>>>
>>>>>>> load "$GPLOT_DIR/ncl/GPLOT_util.ncl"
>>>>>>> load "$GPLOT_DIR/ncl/GPLOT_func.ncl"
>>>>>>>
>>>>>>> begin
>>>>>>>
>>>>>>>
>>>>>>> IFILE =
>>>>>>> "/PATH/TO/FILE/natl00l.2019082700.hafsprs.synoptic.0p03.f000.grb2"
>>>>>>> VAR = "UGRD_P0_L100_GLL0"
>>>>>>> ILON = "lon_0"
>>>>>>>
>>>>>>> print("Checking original memory usage")
>>>>>>> psrep = systemfunc("ps u")
>>>>>>> print("MEMORY CHECK 01: "+psrep)
>>>>>>>
>>>>>>> print("")
>>>>>>> print("Using addfile to read the data file")
>>>>>>> f = addfile(IFILE,"r")
>>>>>>> psrep = systemfunc("ps u")
>>>>>>> print("MEMORY CHECK 02: "+psrep)
>>>>>>>
>>>>>>> print("")
>>>>>>> print("Creating new variable V (from data file)")
>>>>>>> V = f->$VAR$
>>>>>>> psrep = systemfunc("ps u")
>>>>>>> print("MEMORY CHECK 03: "+psrep)
>>>>>>>
>>>>>>> print("")
>>>>>>> print("Deleting variable V (from data file)")
>>>>>>> ;delete([/V,f/])
>>>>>>> delete(V)
>>>>>>> psrep = systemfunc("ps u")
>>>>>>> print("MEMORY CHECK 04: "+psrep)
>>>>>>>
>>>>>>> print("")
>>>>>>> print("Deleting variable f (data file)")
>>>>>>> ;delete([/V,f/])
>>>>>>> delete(f)
>>>>>>> psrep = systemfunc("ps u")
>>>>>>> print("MEMORY CHECK 05: "+psrep)
>>>>>>>
>>>>>>> print("")
>>>>>>> print("Creating new variable V (not from data file)")
>>>>>>> V := new((/46,2001,3501/),"float")
>>>>>>> psrep = systemfunc("ps u")
>>>>>>> print("MEMORY CHECK 06: "+psrep)
>>>>>>>
>>>>>>> print("")
>>>>>>> print("Deleting variable V (not from data file)")
>>>>>>> delete(V)
>>>>>>> psrep = systemfunc("ps u")
>>>>>>> print("MEMORY CHECK 07: "+psrep)
>>>>>>>
>>>>>>> print("")
>>>>>>> print("Creating new variable V2 (not from data file)")
>>>>>>> V2 = new((/46,2001,3501/),"float")
>>>>>>> psrep = systemfunc("ps u")
>>>>>>> print("MEMORY CHECK 08: "+psrep)
>>>>>>>
>>>>>>> print("")
>>>>>>> print("Deleting variable V2 (not from data file)")
>>>>>>> delete(V2)
>>>>>>> psrep = systemfunc("ps u")
>>>>>>> print("MEMORY CHECK 09: "+psrep)
>>>>>>>
>>>>>>> list_vars()
>>>>>>>
>>>>>>>
>>>>>>> print("")
>>>>>>> print("Creating new variable V (from data file via function)")
>>>>>>> f = addfile(IFILE,"r")
>>>>>>> LON = f->$ILON$-360.
>>>>>>> LON!0 = "lon"
>>>>>>> LON&lon = LON
>>>>>>> Vdims :=
>>>>>>> dimsizes(getfilevardimsizes(f,findVarName("HAFS","U","850")))
>>>>>>> VdNames := getfilevardims(f,findVarName("HAFS","U","850"))
>>>>>>> Vdims at dNames = VdNames
>>>>>>> V :=
>>>>>>> getVar2d(f,"HAFS",(/"U","850","0"/),Vdims,(/40.,0.,-100.,-20./),1.,False,LON)
>>>>>>> psrep = systemfunc("ps u")
>>>>>>> print("MEMORY CHECK 10: "+psrep)
>>>>>>>
>>>>>>> print("")
>>>>>>> print("Deleting variable V (from data file via function)")
>>>>>>> delete([/V,f,Vdims,VdNames,LON/])
>>>>>>> psrep = systemfunc("ps u")
>>>>>>> print("MEMORY CHECK 11: "+psrep)
>>>>>>>
>>>>>>> list_vars()
>>>>>>>
>>>>>>> end
>>>>>>>
>>>>>>>
>>>>>>> *OUTPUT*
>>>>>>> [Ghassan.Alaka at v139 ~]$ ncl ~/NCL/scripts/memoryleak.ncl
>>>>>>> Copyright (C) 1995-2019 - All Rights Reserved
>>>>>>> University Corporation for Atmospheric Research
>>>>>>> NCAR Command Language Version 6.6.2
>>>>>>> The use of this software is governed by a License Agreement.
>>>>>>> See http://www.ncl.ucar.edu/ for more details.
>>>>>>> (0) Checking original memory usage
>>>>>>> (0) MEMORY CHECK 01: USER PID %CPU %MEM VSZ RSS TTY
>>>>>>> STAT START TIME COMMAND
>>>>>>> (1) MEMORY CHECK 01: Ghassan+ 7761 0.0 0.0 119692 2116
>>>>>>> pts/0 Ss 20:46 0:00 -bin/tcsh
>>>>>>> (2) MEMORY CHECK 01: Ghassan+ 8129 33.0 0.1 232392 126320
>>>>>>> pts/0 S+ 20:50 0:00 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (3) MEMORY CHECK 01: Ghassan+ 8134 0.0 0.1 232392 122128
>>>>>>> pts/0 S+ 20:50 0:00 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (4) MEMORY CHECK 01: Ghassan+ 8135 0.0 0.0 155372 1860
>>>>>>> pts/0 R+ 20:50 0:00 ps u
>>>>>>> (0)
>>>>>>> (0) Using addfile to read the data file
>>>>>>> (0) MEMORY CHECK 02: USER PID %CPU %MEM VSZ RSS TTY
>>>>>>> STAT START TIME COMMAND
>>>>>>> (1) MEMORY CHECK 02: Ghassan+ 7761 0.0 0.0 119692 2116
>>>>>>> pts/0 Ss 20:46 0:00 -bin/tcsh
>>>>>>> (2) MEMORY CHECK 02: Ghassan+ 8129 38.0 0.2 241416 135612
>>>>>>> pts/0 S+ 20:50 0:00 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (3) MEMORY CHECK 02: Ghassan+ 8137 0.0 0.1 241416 131100
>>>>>>> pts/0 S+ 20:50 0:00 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (4) MEMORY CHECK 02: Ghassan+ 8138 0.0 0.0 155372 1856
>>>>>>> pts/0 R+ 20:50 0:00 ps u
>>>>>>> (0)
>>>>>>> (0) Creating new variable V (from data file)
>>>>>>> (0) MEMORY CHECK 03: USER PID %CPU %MEM VSZ RSS TTY
>>>>>>> STAT START TIME COMMAND
>>>>>>> (1) MEMORY CHECK 03: Ghassan+ 7761 0.0 0.0 119692 2116
>>>>>>> pts/0 Ss 20:46 0:00 -bin/tcsh
>>>>>>> (2) MEMORY CHECK 03: Ghassan+ 8129 95.4 2.2 1597980 1492360
>>>>>>> pts/0 S+ 20:50 0:14 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (3) MEMORY CHECK 03: Ghassan+ 8150 0.0 2.2 1597980 1487716
>>>>>>> pts/0 S+ 20:50 0:00 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (4) MEMORY CHECK 03: Ghassan+ 8151 0.0 0.0 155372 1856
>>>>>>> pts/0 R+ 20:50 0:00 ps u
>>>>>>> (0)
>>>>>>> (0) Deleting variable V (from data file)
>>>>>>> (0) MEMORY CHECK 04: USER PID %CPU %MEM VSZ RSS TTY
>>>>>>> STAT START TIME COMMAND
>>>>>>> (1) MEMORY CHECK 04: Ghassan+ 7761 0.0 0.0 119692 2116
>>>>>>> pts/0 Ss 20:46 0:00 -bin/tcsh
>>>>>>> (2) MEMORY CHECK 04: Ghassan+ 8129 95.5 0.3 339176 233560
>>>>>>> pts/0 S+ 20:50 0:14 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (3) MEMORY CHECK 04: Ghassan+ 8152 0.0 0.3 339176 228984
>>>>>>> pts/0 S+ 20:50 0:00 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (4) MEMORY CHECK 04: Ghassan+ 8153 0.0 0.0 155372 1864
>>>>>>> pts/0 R+ 20:50 0:00 ps u
>>>>>>> (0)
>>>>>>> (0) Deleting variable f (data file)
>>>>>>> (0) MEMORY CHECK 05: USER PID %CPU %MEM VSZ RSS TTY
>>>>>>> STAT START TIME COMMAND
>>>>>>> (1) MEMORY CHECK 05: Ghassan+ 7761 0.0 0.0 119692 2116
>>>>>>> pts/0 Ss 20:46 0:00 -bin/tcsh
>>>>>>> (2) MEMORY CHECK 05: Ghassan+ 8129 95.6 0.1 235108 129496
>>>>>>> pts/0 S+ 20:50 0:14 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (3) MEMORY CHECK 05: Ghassan+ 8154 0.0 0.1 235108 124916
>>>>>>> pts/0 S+ 20:50 0:00 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (4) MEMORY CHECK 05: Ghassan+ 8155 0.0 0.0 155372 1860
>>>>>>> pts/0 R+ 20:50 0:00 ps u
>>>>>>> (0)
>>>>>>> (0) Creating new variable V (not from data file)
>>>>>>> (0) MEMORY CHECK 06: USER PID %CPU %MEM VSZ RSS TTY
>>>>>>> STAT START TIME COMMAND
>>>>>>> (1) MEMORY CHECK 06: Ghassan+ 7761 0.0 0.0 119692 2116
>>>>>>> pts/0 Ss 20:46 0:00 -bin/tcsh
>>>>>>> (2) MEMORY CHECK 06: Ghassan+ 8129 93.3 2.1 1493912 1388304
>>>>>>> pts/0 S+ 20:50 0:14 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (3) MEMORY CHECK 06: Ghassan+ 8156 0.0 2.0 1493912 1383720
>>>>>>> pts/0 S+ 20:50 0:00 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (4) MEMORY CHECK 06: Ghassan+ 8157 0.0 0.0 155372 1864
>>>>>>> pts/0 R+ 20:50 0:00 ps u
>>>>>>> (0)
>>>>>>> (0) Deleting variable V (not from data file)
>>>>>>> (0) MEMORY CHECK 07: USER PID %CPU %MEM VSZ RSS TTY
>>>>>>> STAT START TIME COMMAND
>>>>>>> (1) MEMORY CHECK 07: Ghassan+ 7761 0.0 0.0 119692 2116
>>>>>>> pts/0 Ss 20:46 0:00 -bin/tcsh
>>>>>>> (2) MEMORY CHECK 07: Ghassan+ 8129 93.3 0.1 235108 129500
>>>>>>> pts/0 S+ 20:50 0:14 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (3) MEMORY CHECK 07: Ghassan+ 8158 0.0 0.1 235108 124916
>>>>>>> pts/0 S+ 20:50 0:00 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (4) MEMORY CHECK 07: Ghassan+ 8159 0.0 0.0 155372 1860
>>>>>>> pts/0 R+ 20:50 0:00 ps u
>>>>>>> (0)
>>>>>>> (0) Creating new variable V2 (not from data file)
>>>>>>> (0) MEMORY CHECK 08: USER PID %CPU %MEM VSZ RSS TTY
>>>>>>> STAT START TIME COMMAND
>>>>>>> (1) MEMORY CHECK 08: Ghassan+ 7761 0.0 0.0 119692 2116
>>>>>>> pts/0 Ss 20:46 0:00 -bin/tcsh
>>>>>>> (2) MEMORY CHECK 08: Ghassan+ 8129 91.4 2.1 1493912 1388304
>>>>>>> pts/0 S+ 20:50 0:15 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (3) MEMORY CHECK 08: Ghassan+ 8161 0.0 2.0 1493912 1383720
>>>>>>> pts/0 S+ 20:51 0:00 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (4) MEMORY CHECK 08: Ghassan+ 8162 0.0 0.0 155372 1860
>>>>>>> pts/0 R+ 20:51 0:00 ps u
>>>>>>> (0)
>>>>>>> (0) Deleting variable V2 (not from data file)
>>>>>>> (0) MEMORY CHECK 09: USER PID %CPU %MEM VSZ RSS TTY
>>>>>>> STAT START TIME COMMAND
>>>>>>> (1) MEMORY CHECK 09: Ghassan+ 7761 0.0 0.0 119692 2116
>>>>>>> pts/0 Ss 20:46 0:00 -bin/tcsh
>>>>>>> (2) MEMORY CHECK 09: Ghassan+ 8129 91.4 0.1 235108 129500
>>>>>>> pts/0 S+ 20:50 0:15 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (3) MEMORY CHECK 09: Ghassan+ 8163 0.0 0.1 235108 124916
>>>>>>> pts/0 S+ 20:51 0:00 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (4) MEMORY CHECK 09: Ghassan+ 8164 0.0 0.0 155372 1860
>>>>>>> pts/0 R+ 20:51 0:00 ps u
>>>>>>>
>>>>>>> float pi [ 1 ]
>>>>>>>
>>>>>>> string GPLOT [ 1 ]
>>>>>>>
>>>>>>> float ms2kts [ 1 ]
>>>>>>>
>>>>>>> string psrep [ 5 ]
>>>>>>>
>>>>>>> float fval3 [ 1 ]
>>>>>>>
>>>>>>> integer fval2 [ 1 ]
>>>>>>>
>>>>>>> string ILON [ 1 ]
>>>>>>>
>>>>>>> float d2r [ 1 ]
>>>>>>>
>>>>>>> string VAR [ 1 ]
>>>>>>>
>>>>>>> float r [ 1 ]
>>>>>>>
>>>>>>> float g [ 1 ]
>>>>>>>
>>>>>>> logical GSN_OLD_LABELBAR [ 1 ]
>>>>>>>
>>>>>>> string IFILE [ 1 ]
>>>>>>>
>>>>>>> float fval [ 1 ]
>>>>>>>
>>>>>>> float omega [ 1 ]
>>>>>>> (0)
>>>>>>> (0) Creating new variable V (from data file via function)
>>>>>>> (0) MEMORY CHECK 10: USER PID %CPU %MEM VSZ RSS TTY
>>>>>>> STAT START TIME COMMAND
>>>>>>> (1) MEMORY CHECK 10: Ghassan+ 7761 0.0 0.0 119692 2116
>>>>>>> pts/0 Ss 20:46 0:00 -bin/tcsh
>>>>>>> (2) MEMORY CHECK 10: Ghassan+ 8129 90.5 0.4 384024 277172
>>>>>>> pts/0 S+ 20:50 0:16 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (3) MEMORY CHECK 10: Ghassan+ 8166 0.0 0.4 384024 272304
>>>>>>> pts/0 S+ 20:51 0:00 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (4) MEMORY CHECK 10: Ghassan+ 8167 0.0 0.0 155372 1860
>>>>>>> pts/0 R+ 20:51 0:00 ps u
>>>>>>> (0)
>>>>>>> (0) Deleting variable V (from data file via function)
>>>>>>> (0) MEMORY CHECK 11: USER PID %CPU %MEM VSZ RSS TTY
>>>>>>> STAT START TIME COMMAND
>>>>>>> (1) MEMORY CHECK 11: Ghassan+ 7761 0.0 0.0 119692 2116
>>>>>>> pts/0 Ss 20:46 0:00 -bin/tcsh
>>>>>>> (2) MEMORY CHECK 11: Ghassan+ 8129 90.6 0.2 267228 161908
>>>>>>> pts/0 S+ 20:50 0:16 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (3) MEMORY CHECK 11: Ghassan+ 8168 0.0 0.2 267228 157040
>>>>>>> pts/0 S+ 20:51 0:00 ncl /home/Ghassan.Alaka/NCL/scripts/memoryleak.ncl
>>>>>>> (4) MEMORY CHECK 11: Ghassan+ 8169 0.0 0.0 155372 1860
>>>>>>> pts/0 R+ 20:51 0:00 ps u
>>>>>>>
>>>>>>> float pi [ 1 ]
>>>>>>>
>>>>>>> string GPLOT [ 1 ]
>>>>>>>
>>>>>>> float ms2kts [ 1 ]
>>>>>>>
>>>>>>> string psrep [ 5 ]
>>>>>>>
>>>>>>> float fval3 [ 1 ]
>>>>>>>
>>>>>>> integer fval2 [ 1 ]
>>>>>>>
>>>>>>> string ILON [ 1 ]
>>>>>>>
>>>>>>> float d2r [ 1 ]
>>>>>>>
>>>>>>> string VAR [ 1 ]
>>>>>>>
>>>>>>> float r [ 1 ]
>>>>>>>
>>>>>>> float g [ 1 ]
>>>>>>>
>>>>>>> logical GSN_OLD_LABELBAR [ 1 ]
>>>>>>>
>>>>>>> string IFILE [ 1 ]
>>>>>>>
>>>>>>> float fval [ 1 ]
>>>>>>>
>>>>>>> float omega [ 1 ]
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> ncl-talk mailing list
>>>>>>> ncl-talk at ucar.edu
>>>>>>> List instructions, subscriber options, unsubscribe:
>>>>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>>>
>>>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20191212/88c5694a/attachment.html>
More information about the ncl-talk
mailing list