On Feb 20, 2015, at 2:12 PM, Larry Baker <ba...@usgs.gov> wrote:
> 
> Beware, this has/may not always be the case.  This is due to C's historical 
> confusion/misuse of integers as boolean data types.  On VAX hardware, the low 
> bit was the only significant part of a Fortran LOGICAL data type, owing to 
> the architectural support (Branch of Low Bit Set/Clear) for the low bit in a 
> status word meaning success/failure.  I doubt anyone uses VAXes and MPI, so 
> this is not likely to cause users problems.

Note that this comment was referring to two things:

1. 0/1 array index issues
2. .true./.false. issues

We actually check for the value of .true. in configure, and use that 
everywhere.  I believe this particular portion of the code simply looks for 
.false.==(C int)0, and .true. is anything else.  That was deemed good enough 
because this portion of the code is simply *checking* for true/false.  Where we 
*assign* true/false in the Fortran boolean sense, we use the value determined 
by configure.

-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/

Reply via email to