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,090 |
| Nodes: | 10 (0 / 10) |
| Uptime: | 156:58:37 |
| Calls: | 13,922 |
| Calls today: | 3 |
| Files: | 187,021 |
| D/L today: |
4,140 files (1,057M bytes) |
| Messages: | 2,457,228 |