Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Dec 2021 08:45:02 -0500 (EST)
From:      Daniel Feenberg <feenberg@nber.org>
To:        Doug Hardie <bc979@lafn.org>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Fortran exceptions
Message-ID:  <e4dd7a6-225-fdda-9e59-c7219952a924@nber.org>
In-Reply-To: <2A944692-2C5A-4AF0-9E26-34C2142C5E3E@lafn.org>
References:  <2A944692-2C5A-4AF0-9E26-34C2142C5E3E@lafn.org>

next in thread | previous in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--2044016298-2126462686-1639230302=:72931
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8BIT


On Fri, 10 Dec 2021, Doug Hardie wrote:

> I have a fairly large fortran program that I am trying to run on flang. 
> It almost works, but I am sure there are a few typos in it.  I had to 
> enter it by hand from a large listing.  When it encounters a STOP, it 
> displays several ieee exception messages.  Unfortunately there is no way 
> to identify where those occurred.  How can I get the runtime to stop 
> when an exception occurs.  This is on FreeBSD 13.0 release with whatever 
> flang is in the ports.

I have found valgrind helpful with gfortran - I don't know if it works 
with flang.

    https://valgrind.org/docs/manual/manual-core.html#manual-core.whatdoes

Flang can apparently generate code suitable for the gdb debugger, which
can be useful.

    https://www.sourceware.org/gdb/
    https://undo.io/resources/debugging-fortran-code-gdb/
    https://www.scivision.dev/fortran-debugging-gdb/


Finally, if you can use gfortran, there are many options to improve 
runtime checking. You might be interested in --fpe-trap.

    https://gcc.gnu.org/onlinedocs/gfortran/Debugging-Options.html

As far as I can tell, flang has no equivalents, but I haven't used flang. 
It wouldn't install for me from ports or pkg's. Both complained my version 
of Freebsd (12.1) was unsuitable.

Back in the 1970s there used to be the Watfor-77 compiler for the IBM 360, 
and later for Windows, which would check for uninitalized variables, 
subscripts out of range, type mismatches in subroutine calls, etc and 
provide a clear error message with no need to interpret hex constants. But 
compiler writers don't like to provide what they consider to be crutches 
for people less competent than themselves, so runtime error checking is 
usually neglected, sometimes vigorously. The IBM Fortran G compiler I 
first used in 1972 ran in 16K and provided a better error traceback than 
any currently available compiler I am familiar with except one:

    https://www.silverfrost.com/

Silverfrost does detect and report most runtime errors, but it is Windows 
only.  Worth the money for many users, if you can stand working in 
Windows. The debugged program can go back to FreeBSD.

This question might better go in a fortran-specific mailing list:

    https://groups.google.com/g/comp.lang.fortran
    https://fortran-lang.discourse.group/

Daniel Feenberg
NBER
--2044016298-2126462686-1639230302=:72931--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?e4dd7a6-225-fdda-9e59-c7219952a924>