Hi Alan,


NOTE: What follows is rather specific to the Fortran language and has little to 
do with PLplot as such, other than that has some consequences for our Fortran 
binding and possibly the examples.

> -----Original Message-----
> From: Alan W. Irwin [mailto:ir...@beluga.phys.uvic.ca]
> Sent: Wednesday, May 11, 2016 7:51 PM
> To: Arjen Markus
> Cc: Wadud Miah; plplot-devel@lists.sourceforge.net
> Subject: Re: Avoiding untyped variables in our Fortran binding and examples
>
> P.S.
>
> Hi Arjen:
>
> From
> <https://software.intel.com/en-us/forums/intel-visual-fortran-compiler-for-
> windows/topic/346554>
> it appears that you should use the /check:uninit option with the ifort 
> compiler to
> detect undefined variables.
>
> I also see from <http://www.nag.com/nagware/np/r53_doc/nagfor.html> that that
> compiler has a -C=undefined option to check for undefined variables.
>
> Note, I am not sure of the exact meaning of "undefined variable" in these two
> references.  My hope is it simply means "undefined type", i.e., implicit 
> declaration,
> but I am not sure.  For example, some use the term "undefined variable" when 
> they
> really mean that a properly typed variable is uninitialized.  And, of course, 
> an
> uninitialized variable is much more difficult to detect than an undefined 
> type.
>
My intention is to add IMPLICIT NONE anywhere where this is required:

- At the beginning of a module, but not in the contained routines, as they 
inherit that feature (the module provides the scope)

- At the beginning of a subroutine or function statement inside an interface 
block, as the interface defines a new scope. These new scopes also make it 
necessary to import any names used inside the interface. See the problem Wadud 
reported.

So, all in all, a number of IMPLICIT NONE statements and one or two imports 
have to be added, but they will not clutter then CONTAINS section.

As for undefined variables: Fortran "standardese" distinguishes between 
declarations (affected by IMPLICIT statements) and definitions (variables 
having been assigned a value or not). Simply put: An undefined variable has no 
reliable value. This can occur in various contexts, but really is a run-time 
property. A variable that is not explicitly declared can be detected at 
compile-time. Most compilers have some option to detect that. Detecting 
undefinedness is much harder.

Regards,

Arjen



DISCLAIMER: This message is intended exclusively for the addressee(s) and may 
contain confidential and privileged information. If you are not the intended 
recipient please notify the sender immediately and destroy this message. 
Unauthorized use, disclosure or copying of this message is strictly prohibited. 
The foundation 'Stichting Deltares', which has its seat at Delft, The 
Netherlands, Commercial Registration Number 41146461, is not liable in any way 
whatsoever for consequences and/or damages resulting from the improper, 
incomplete and untimely dispatch, receipt and/or content of this e-mail.
------------------------------------------------------------------------------
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to