Translate a raw nc_check-style status (0 = ok) from one of the
nc_* reader calls in register_common into the caller’s ierr
contract: .true. on success; on failure, .false. with
ierr = OCEAN_STATUS_ERR_IO when ierr is present (closing
ncid first, when given, so a mid-registration failure does not
leak the file handle), or error stops with a generic message
when ierr is absent — the SPECIFIC reason was already logged by
nc_check/fail before this returns, so the legacy (no ierr)
log output is unchanged; only the raw error stop text is
generic (same idiom as rdb_bathymetry::bathy_io_ok, P0.1 F1/F2).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | local_ierr | |||
| integer, | intent(out), | optional | :: | ierr | ||
| integer, | intent(in), | optional | :: | ncid |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | private | :: | discard_ierr |
function reg_io_ok(local_ierr, ierr, ncid) result(ok) !! Translate a raw `nc_check`-style status (0 = ok) from one of the !! `nc_*` reader calls in `register_common` into the caller's `ierr` !! contract: `.true.` on success; on failure, `.false.` with !! `ierr = OCEAN_STATUS_ERR_IO` when `ierr` is present (closing !! `ncid` first, when given, so a mid-registration failure does not !! leak the file handle), or `error stop`s with a generic message !! when `ierr` is absent — the SPECIFIC reason was already logged by !! `nc_check`/`fail` before this returns, so the legacy (no `ierr`) !! log output is unchanged; only the raw `error stop` text is !! generic (same idiom as `rdb_bathymetry::bathy_io_ok`, P0.1 F1/F2). integer, intent(in) :: local_ierr integer, intent(out), optional :: ierr integer, intent(in), optional :: ncid logical :: ok integer :: discard_ierr ok = (local_ierr == 0) if (ok) return if (present(ierr)) then if (present(ncid)) call nc_close(ncid, ierr=discard_ierr) ierr = OCEAN_STATUS_ERR_IO return end if error stop "ocean_data_input: NetCDF registration failure" end function reg_io_ok