It’s annoying to find that if you try to DEALLOCATE an ALLOCATABLEThe way these things are handled in Fortran is to add a "stat="
variable that has not been ALLOCATEd (or that has already been
DEALLOCATEd), this is an error.
The usual practice is for storage-disposal calls to be harmless no-ops if called with a NULL pointer (or equivalent). This is true of the C/POSIX free(3) call <https://manpages.debian.org/3/free.3.en.html>, for example,
and also for the “delete” statement in C++.
This way, one can simplify cleanup by 1) ensuring all temporary pointers
are initialized to NULL at the start, and 2) unconditionally freeing all
of them at the end.
I suppose Fortran tries to simplify things by handling both conventions automatically, but this still causes irritations in other places, like
loops.
On 10/16/2024 7:51 PM, Lawrence D'Oliveiro wrote:
It’s annoying to find that if you try to DEALLOCATE an ALLOCATABLEThe way these things are handled in Fortran is to add a "stat="
variable that has not been ALLOCATEd (or that has already been
DEALLOCATEd), this is an error.
specifier.
On Wed, 16 Oct 2024 20:57:17 -0500, Gary Scott wrote:
On 10/16/2024 7:51 PM, Lawrence D'Oliveiro wrote:
It’s annoying to find that if you try to DEALLOCATE an ALLOCATABLEThe way these things are handled in Fortran is to add a "stat="
variable that has not been ALLOCATEd (or that has already been
DEALLOCATEd), this is an error.
specifier.
But I don’t want to catch errors as a result of invalid, non-NULL pointers -- let that be trapped as a runtime error as usual. I just want a free of NULL to be a harmless no-op.
The trouble with “stat=” is like “ON ERROR GOTO” in BASIC of old: you either catch everything or nothing, you cannot be selective in the
exceptions you catch.
Lawrence D'Oliveiro wrote:
The trouble with “stat=” is like “ON ERROR GOTO” in BASIC of old: youDoesn't the content of STAT tell you what the error was?
either catch everything or nothing, you cannot be selective in the
exceptions you catch.
Sysop: | DaiTengu |
---|---|
Location: | Appleton, WI |
Users: | 1,027 |
Nodes: | 10 (0 / 10) |
Uptime: | 26:21:37 |
Calls: | 13,318 |
Calls today: | 1 |
Files: | 186,574 |
D/L today: |
181 files (53,748K bytes) |
Messages: | 3,352,844 |
Posted today: | 1 |