ENSUPA   

Equivalent PK functions: PK_SURF_ask_params
PK_SURF_ask_uvbox

ENSUPA ( surf, urange, vrange, ubound, vbound, uprops, nuprop, vprops, nvprop, 
===============================================================================
         ifail )
         =======

  Enquire surface parametrisation

Receives:
  KI_tag_surface           *surf           --- Surface for enquiry

Returns:
  KI_dbl                    urange[2]      --- Parameter range in u
  KI_dbl                    vrange[2]      --- Parameter range in v
  KI_cod_papr               ubound[2]      --- Types of bound for u
  KI_cod_papr               vbound[2]      --- Types of bound for v
  KI_tag_list_int          *uprops         --- u parametrisation properties
  KI_int_nitems            *nuprop         --- Number of properties in u
  KI_tag_list_int          *vprops         --- v parametrisation properties
  KI_int_nitems            *nvprop         --- Number of properties in v
  KI_cod_error             *ifail          --- Failure code

Specific errors:
  KI_invalid_geometry       surface not supported

Description:
  This function returns details about the parametrisation of a specific
  surface.

  'urange', 'vrange':
    The u parameter of any point on the surface (as returned by ENPAPS) will
    lie between 'urange[0]' and 'urange[1]'; the v parameter will lie between
    'vrange[0]' and 'vrange[1]'.

    'urange[0]' < 'urange[1]'    and
    'vrange[0]' < 'vrange[1]' always.

    If the range is infinite, then finite values will be returned, and these
    will be large enough to ensure that the portion of the surface inside
    the size box is contained within the bounds.

  'ubound', 'vbound':
    The parametrisation may behave in various ways at the end of its ranges.
    The 'ubound' and 'vbound' arrays each return two tokens, describing the
    behaviour at the start and end of the ranges respectively. The tokens may
    take the following values:

          PAPRIF - infinite
          PAPRXT - extendable
          PAPRNX - not extendable
          PAPRPE - periodic
          PAPRDP - periodic, but not continuously differentiable across
                   the boundary
          PAPRDG - degenerate

    If either end of the range is classified as extendable, then the range of
    the parameter can be altered by subsequent modelling operations, and the
    classification of the bounds can also change. In this case, it is
    advisable to call ENSUPA again. For all other bound classifications, the
    range and bound classification remain unchanged by modelling operations.

    The periodic classifications (PAPRPE, PAPRDP) apply to both ends of the
    range - the bounds will be of the same type in these cases. If the type
    is PAPRDP, then the parametrisation function may have a derivative which
    is discontinuous in magnitude across the range boundary.

    If the bound classification is infinite or periodic (PAPRIF, PAPRPE or
    PAPRDP), then the KI function ENPOPS will work on values beyond the
    corresponding range bound. Otherwise (if the classification is PAPRXT
    or PAPRNX) ENPOPS will only work for values within the range, unless the
    surface is b-surface or an offset b-surface.

    If the 'ubound[0]' classification is degenerate, for example, then the
    v parameter is degenerate when u='urange[0]'. In other words, the
    derivative of the parametrisation function with respect to v is zero
    whenever u='urange[0]', for all values of v, and the parameter curve
    corresponding to u='urange[0]' degenerates to a single point. Note that
    a parametrisation can only degenerate at the end of its range.



  'uprops', 'vprops', 'nuprop', 'nvprop':
    One or more properties of the parametrisation will be returned, for both
    u and v, in two lists: 'uprops' of length 'nuprop', and 'vprops' of
    length 'nvprop'. The lists contain tokens, which can take the
    following values:

          PAPRPE - periodic
          PAPRCN - all derivatives continuous  )  exactly one of these two
          PAPRDC - derivatives not necessarily )  properties will be returned
                                   continuous  )
          PAPRLI - linear
          PAPRCI - circular
          PAPRBC - boundaries at the ends of the parameter range are coincident

    The PAPRLI property indicates that the corresponding parameter is
    proportional to the distance along a straight line. The straight line
    corresponds to a constant value of the other parameter.

    The PAPRCI property indicates that the corresponding parameter represents
    an angle around a circle. The circle corresponds to a constant value of
    the other parameter.

    The PAPRPE property indicates a periodic parametrisation.