CRFGSU   

Equivalent PK functions: PK_FSURF_create

CRFGSU ( keylen, key, nspace, nints, ivals, nreals, rvals, surf, ifail )
========================================================================

  Creates a foreign surface.

Receives:
  KI_int_nchars            *keylen         --- Length of surface key
  KI_chr_key                key[keylen]    --- Surface key
  KI_int_nitems            *nspace         --- Space required by foreign surface
                                           --- (specified in doubles)
 <KI_int_nitems>           *nints          --- Number of integer values
  int                       ivals[nints]   --- Array of integer values
 <KI_int_nitems>           *nreals         --- Number of real values
  double                    rvals[nreals]  --- Array of real values

Returns:
  KI_tag_surface           *surf           --- surface.
  KI_cod_error             *ifail          --- failure indicator

Specific errors:
  KI_FG_evaluator_error     Surface evaluator failure
  KI_FG_modelling_error     Cannot model with this surface
  KI_FG_data_not_found      Surface evaluator data not found
  KI_FG_integer_data_error  FG integer data error
  KI_FG_real_data_error     FG real data error
  KI_FG_data_alloc_error    FG data allocation fault
  KI_FG_evaluator_not_found Surface evaluator not found

Description:
  This function creates a foreign surface, i.e. one whose evaluator is external
  to Parasolid. This function call will only produce a surface if an appropriate
  surface evaluator has been linked to Parasolid. The surface is identified
  by its key. Any additional data required by the evaluator is supplied in
  arrays containing integer and real values.

  This KI call will result in the execution of the initialisation routines of
  the FG evaluator system. Function arguments are as follow:

  'keylen'  is the length or number of characters contained within the 'key'.

  'key'     to uniquely identify the surface evaluator.

  'nspace'  specifies the length of the block of data to be initialised by the
            foreign surface loader.

  'nints', 'ivals', 'nreals', 'rvals' specify the numerical data supplied to
            the surface evaluator.

  'surf'   is the returned tag of a foreign surface, if the operation succeeds.