private function resolve_ocean(c_handle, h) result(status)
Resolve + verify a handle is a live, fully-initialised ocean
simulation. Every query/step entry point funnels through this so
the bad-handle and not-yet-initialised cases are reported with one
consistent status code each, in one place.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Variables
Type
Visibility
Attributes
Name
Initial
integer,
private
::
hstat
Source Code
function resolve_ocean(c_handle,h)result(status)!! Resolve + verify a handle is a live, fully-initialised ocean!! simulation. Every query/step entry point funnels through this so!! the bad-handle and not-yet-initialised cases are reported with one!! consistent status code each, in one place.type(c_ptr),intent(in)::c_handletype(ocean_handle_t),pointer,intent(out)::hinteger(c_int)::statusinteger::hstathstat=handle_check(c_handle,h)if(hstat/=HANDLE_OK)thenh=>null()status=int(OCEAN_STATUS_ERR_BAD_HANDLE,c_int)return end if if(.not.h%is_initialised)thenh=>null()status=int(OCEAN_STATUS_ERR_NOT_INITIALISED,c_int)return end ifstatus=int(OCEAN_STATUS_OK,c_int)end function resolve_ocean