Hi Arjen:

I had to rework (commit 58dc757) the suggestion in README.developers
about the recommended gfortran compiler options because the prior
suggestion

export FFLAGS='-std=f95 -O3 -fall-intrinsics -fvisibility=hidden -pedantic 
-Wall -Wextra'

did not work with our new fortran binding.

(As an aside, in my tests I dropped -fvisibility=hidden because I
believe that makes no sense for Fortran code.  I also dropped
-fall-intrinsics since I prefer using Wintrinsics-std which is
automatically deployed with -Wall if -fall-intrinsics is not
specified.) So here are the actual flags I tried.

1. export FFLAGS='-O3 -std=f95 -pedantic -Wall -Wextra'

Those options generated a build error (as expected) because the
Fortran 95 standard does not include support for the ISO_C_BINDING 
module that we use to implement the new fortran binding.

2. export FFLAGS='-O3 -std=f2003 -pedantic -Wall -Wextra'

Those options generated the following type of build error:

included_plplot_real_interfaces.f90:2601.25:
     Included at 
/home/software/plplot/HEAD/plplot.git/bindings/f95/plplot_double.f90:117:

                    c_loc(plotentries), size(plotentries, kind=private_plint) )
                          1
Error: Fortran 2008: Array of interoperable type at (1) to C_LOC which is 
nonallocatable and neither assumed size nor explicit size

for what I consider to be a spurious reason (see the revised
README.developers for further discussion).

3. export FFLAGS='-O3 -std=f2008 -pedantic -Wall -Wextra'

got rid of the above type of error message, but also generated a
whole new set of build errors.

4. export FFLAGS='-O3 -Wall -Wextra'

does work without any build errors so this is now what I recommend
in README.developers.

To summarize, if you discovered a standards-compliant change
to our new Fortran binding implementation that would allow use of

export FFLAGS='-O3 -std=f2003 -pedantic -Wall -Wextra'

with gfortran, then that would allow our users/developers to at least
do minimal standards compliance checking with gfortran. But if you
feel that is too much trouble and/or the fix would obfuscate our
fortran binding code too much simply to quiet a gfortran build error
that is likely spurious, then I am content with the current
recommendation

export FFLAGS='-O3 -Wall -Wextra'

Of course, the (significant) downside of the current recommendation is
it means our users/developers cannot check Fortran standards
compliance with gfortran and must rely on NAG instead for such
checking.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to