[ncl-talk] bug with isdefined and isvar?

Jared Lee jaredlee at ucar.edu
Fri Aug 26 10:30:30 MDT 2016


Gah! You're right, Rick. Thanks for pointing that out. I should've read the
documentation more closely. Never mind, everyone...

Jared

On Fri, Aug 26, 2016 at 10:25 AM, Rick Brownrigg <brownrig at ucar.edu> wrote:

> Hi Jared,
>
> I think you need to pass in the variable name as a string, rather than a
> direct reference (i.e, "var" vs var)
>
> HTH...
> Rick
>
>
> On Fri, Aug 26, 2016 at 10:02 AM, Jared Lee <jaredlee at ucar.edu> wrote:
>
>> Hi, I think I've found a bug with the functions isdefined and isvar.
>> Whether I pass in a variable from the command line or define it in the
>> script, isdefined() and isvar() both return False, instead of returning
>> True as the documentation says they should. And if I have them test a
>> variable name that has not been defined, then NCL exits with an undefined
>> variable error, instead of returning False as the documentation says they
>> should. See below for a test script and output from the test script that
>> demonstrates the problem.
>>
>> What I need is the ability to test if a variable has been declared
>> (especially via the command line) to avoid crashing the code.
>>
>> Here's the test script, which I called isdefined.ncl:
>>
>> begin
>>
>> print(var)
>> test1 = isdefined(var)
>> test2 = isvar(var)
>> print(var)
>> print(test1)
>> print(test2)
>>
>> var = 20
>> test3 = isdefined(var)
>> test4 = isvar(var)
>> print(var)
>> print(test3)
>> print(test4)
>>
>> var2 = 20
>> test5 = isdefined(var2)
>> test6 = isvar(var2)
>> print(var2)
>> print(test5)
>> print(test6)
>>
>> test7 = isdefined(var3)
>> test8 = isvar(var3)
>> print(test7)
>> print(test8)
>>
>> end
>>
>> And then here is the output:
>>
>> jaredlee$ ncl isdefined.ncl 'var=10'
>>  Copyright (C) 1995-2015 - All Rights Reserved
>>  University Corporation for Atmospheric Research
>>  NCAR Command Language Version 6.3.0
>>  The use of this software is governed by a License Agreement.
>>  See http://www.ncl.ucar.edu/ for more details.
>>
>>
>> Variable: var
>> Type: integer
>> Total Size: 4 bytes
>>             1 values
>> Number of Dimensions: 1
>> Dimensions and sizes: [1]
>> Coordinates:
>> (0) 10
>> warning:Argument 0 of the current function or procedure was coerced to
>> the appropriate type and thus will not change if the function or procedure
>> modifies its value
>> warning:Argument 0 of the current function or procedure was coerced to
>> the appropriate type and thus will not change if the function or procedure
>> modifies its value
>>
>>
>> Variable: var
>> Type: integer
>> Total Size: 4 bytes
>>             1 values
>> Number of Dimensions: 1
>> Dimensions and sizes: [1]
>> Coordinates:
>> (0) 10
>>
>>
>> Variable: test1
>> Type: logical
>> Total Size: 4 bytes
>>             1 values
>> Number of Dimensions: 1
>> Dimensions and sizes: [1]
>> Coordinates:
>> (0) False
>>
>>
>> Variable: test2
>> Type: logical
>> Total Size: 4 bytes
>>             1 values
>> Number of Dimensions: 1
>> Dimensions and sizes: [1]
>> Coordinates:
>> (0) False
>> warning:Argument 0 of the current function or procedure was coerced to
>> the appropriate type and thus will not change if the function or procedure
>> modifies its value
>> warning:Argument 0 of the current function or procedure was coerced to
>> the appropriate type and thus will not change if the function or procedure
>> modifies its value
>>
>>
>> Variable: var
>> Type: integer
>> Total Size: 4 bytes
>>             1 values
>> Number of Dimensions: 1
>> Dimensions and sizes: [1]
>> Coordinates:
>> (0) 20
>>
>>
>> Variable: test3
>> Type: logical
>> Total Size: 4 bytes
>>             1 values
>> Number of Dimensions: 1
>> Dimensions and sizes: [1]
>> Coordinates:
>> (0) False
>>
>>
>> Variable: test4
>> Type: logical
>> Total Size: 4 bytes
>>             1 values
>> Number of Dimensions: 1
>> Dimensions and sizes: [1]
>> Coordinates:
>> (0) False
>> warning:Argument 0 of the current function or procedure was coerced to
>> the appropriate type and thus will not change if the function or procedure
>> modifies its value
>> warning:Argument 0 of the current function or procedure was coerced to
>> the appropriate type and thus will not change if the function or procedure
>> modifies its value
>>
>>
>> Variable: var2
>> Type: integer
>> Total Size: 4 bytes
>>             1 values
>> Number of Dimensions: 1
>> Dimensions and sizes: [1]
>> Coordinates:
>> (0) 20
>>
>>
>> Variable: test5
>> Type: logical
>> Total Size: 4 bytes
>>             1 values
>> Number of Dimensions: 1
>> Dimensions and sizes: [1]
>> Coordinates:
>> (0) False
>>
>>
>> Variable: test6
>> Type: logical
>> Total Size: 4 bytes
>>             1 values
>> Number of Dimensions: 1
>> Dimensions and sizes: [1]
>> Coordinates:
>> (0) False
>> fatal:Variable (var3) is undefined
>> fatal:["Execute.c":8575]:Execute: Error occurred at or near line 24 in
>> file isdefined.ncl
>>
>>
>>
>> --
>> ===============================
>> Jared A. Lee, Ph.D.
>> Project Scientist I
>> Research Applications Laboratory
>> National Center for Atmospheric Research
>> Boulder, Colorado, USA
>>
>> Email: jaredlee at ucar.edu (w)
>> Phone: 303.497.8485 (w)
>> Web: https://staff.ucar.edu/users/jaredlee
>> ===============================
>>
>> _______________________________________________
>> ncl-talk mailing list
>> ncl-talk at ucar.edu
>> List instructions, subscriber options, unsubscribe:
>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>
>>
>


-- 
===============================
Jared A. Lee, Ph.D.
Project Scientist I
Research Applications Laboratory
National Center for Atmospheric Research
Boulder, Colorado, USA

Email: jaredlee at ucar.edu (w)
Phone: 303.497.8485 (w)
Web: https://staff.ucar.edu/users/jaredlee
===============================
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20160826/28b5704e/attachment.html 


More information about the ncl-talk mailing list