SAF_Field *
saf_find_default_coords(SAF_ParMode pmode, /* The parallel mode */
SAF_Set *base, /* The set for which the default coordinate field is returned */
SAF_Field *field /* [OUT] The returned field handle, if found, otherwise SAF_NOT_SET_FIELD */
)
{
SAF_ENTER(saf_find_default_coords, NULL);
SAF_REQUIRE(_saf_valid_pmode(pmode), SAF_LOW_CHK_COST, NULL,
_saf_errmsg("PMODE must be valid"));
if (!_saf_is_participating_proc(pmode)) SAF_RETURN(NULL);
SAF_REQUIRE(SS_SET(base), SAF_LOW_CHK_COST, NULL,
_saf_errmsg("BASE must be a valid set handle for participating processes"));
if (!field && NULL==(field=malloc(sizeof *field)))
SAF_ERROR(NULL, _saf_errmsg("unable to allocate return value"));
*field = SS_SET(base)->dflt_coordfld;
SAF_LEAVE(field);
}