(j3.2006) Fwd: the F2003 get_environment_variable intrinsic routine

Bill Long longb
Tue May 19 18:42:02 EDT 2009


You don't really "add" an environment variable - you just set it.  The 
current get_environment_variable is basically a clone of pxfgetenv.  
There is a companion pxfsetenv which we could similarly clone.  There 
might be hidden worms in this can, but on the surface it does not seem 
like a big deal, at least technically.

Cheers,
Bill



Dan Nagle wrote:
> Hi,
>
> FYI Only
>
> I neither endorse nor condemn the attached proposal.
>
> I am unacquainted with the original sender.
>
> Begin forwarded message:
>
>> *From: *"Brocci, R. A." <brocci at kapl.gov <mailto:brocci at kapl.gov>>
>> *Date: *May 19, 2009 2:47:45 PM EDT
>> *To: *danlnagle at mac.com <mailto:danlnagle at mac.com>
>> *Cc: *"Brocci, R. A." <brocci at kapl.gov <mailto:brocci at kapl.gov>>
>> *Subject: **the F2003 get_environment_variable intrinsic routine*
>>
>> Dan,
>>  
>> Below you will find a Fortran enhancement suggestion first made last 
>> week to Walt Brainerd, who as you can see, told me he is no longer a 
>> member of the standards committee, and suggested that I contact you.
>>  
>> My suggestion is that the X_environment_variable routines be added to 
>> the standard, where X is at least add and perhaps clear or set as well
>>  
>> I envision the X = add routine as having the same arguments as the 
>> current X = get routine; namely
>>
>>     * arg1 is the case-sensitive intent(in) environmental parameter
>>       character string; e.g., 'danNagle' 
>>     * arg2 is the case-sensitive intent(in) environmental parameter
>>       value character string; e.g., 'is the Fortran J3 committee chair' 
>>     * arg3 is the intent(in) integer string length associated with
>>       arg2; the default is the length of arg2
>>     * arg4 is the intent(out) integer status return value; with -1,
>>       0, and 1 --> error, okay, and have over-ridden an existing
>>       value respectively (I can see a character status return --
>>       think iomsg -- here, with error, blank or okay, and the
>>       over-ridden entry as the return strings respectively.)
>>     * arg5 is the intent(in) logical trailing blanks flag associated
>>       with arg2; the default is .true. --> don't store trailing
>>       blanks in arg2 (I'm not sure I see a reason for storing leading
>>       blanks either, but ... And, I don't see a situation where I
>>       would not be placing trim(adjustl(...)) in the arg2 position.)
>>
>> As you can see below in my comments to Walt, I personally have never 
>> seen a need for the X = clear routine, but others I've talked to over 
>> the years have indicated otherwise. At this time, I'd envision X = 
>> clear having just the status (arg4 above) argument.
>>  
>> If you would prefer that emails such as this go to someone else on 
>> the Standards Committee, please let me know by providing their 
>> contact info.
>>  
>>  
>> Thanks for your time.
>>  
>>  
>>  
>> Tony Brocci   18 May 2009
>> KAPL
>> PO Box 1072,  Mail Stop 122
>> Schenectady, NY  12301
>> 518-395-6682
>> brocci at kapl.gov <mailto:brocci at kapl.gov>
>>  
>> Walt's response from 14 May 2009 follows.
>>  
>> Sounds like a worthwhile idea, but I'm not on the stds comm. any
>> longer, so can't do anything for you.
>>  
>> The chair of J3 is Dan Nagle: danlnagle at mac.dom 
>> <mailto:danlnagle at mac.dom>. He might tell
>> you how to best submit an idea. Just one thought: the more
>> specific the proposal, the better. Even if the committee completely
>> changes the specifics, it is good to start with something concrete.
>>  
>> I always enjoy hearing from you :-).
>>
>> On Thu, May 14, 2009 at 5:31 AM, Brocci, R. A. <brocci at kapl.gov 
>> <mailto:brocci at kapl.gov>> wrote:
>>
>>     Walt,
>>      
>>     I see where the 2003 standard introduced the
>>     get_environment_variable routine as the official replacement for
>>     the long-standing getenv routine -- which I started using a long
>>     time ago.
>>      
>>     For completeness, I think there should also be the
>>     X_environment_variable companion routines, where X is at least
>>     add to add 1 or more variables to the environment, and
>>     perhaps clear to over-write the existing environment.
>>      
>>     Note: The long-standing putenv routine was supposed to do the
>>     add, but the last time I ran my test cases, I found it too flaky
>>     to be used in "production" code. And obviously, having X = clear
>>     isn't of much value without having X = add as well.
>>      
>>     I've included X = clear simply because it has come up in
>>     previous "internal" discussions on this topic. I personally can't
>>     think of a past situation where I would have done a clear_... and
>>     then an add_... to get the "minimal" environment of interest to
>>     my executable.
>>      
>>     If you would prefer that emails such as this go to someone else
>>     on the Standards Committee, please let me know by providing their
>>     contact info. As always, it is a pleasure to "talk" to you.
>>      
>>     Thanks for your time.
>>      
>>      
>>      
>>     Tony Brocci   14 May 2009
>>     KAPL
>>     PO Box 1072,  Mail Stop 122
>>     Schenectady, NY  12301
>>     518-395-6682
>>     brocci at kapl.gov <mailto:brocci at kapl.gov>
>>      
>>
>>
>>
>>
>> -- 
>> Walt Brainerd
>
> -- 
> Cheers!
>
> Dan Nagle
>
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> J3 mailing list
> J3 at j3-fortran.org
> http://j3-fortran.org/mailman/listinfo/j3
>   

-- 
Bill Long                                   longb at cray.com
Fortran Technical Support    &              voice: 651-605-9024
Bioinformatics Software Development         fax:   651-605-9142
Cray Inc., 1340 Mendota Heights Rd., Mendota Heights, MN, 55120

            




More information about the J3 mailing list