F ALPHABETICAL LIST OF C FUNCTIONS

This section gives a complete list of the functions available via the C interface to the NDF_ library, in the form of ANSI C function prototypes. For details of each function, see the Fortran routine description in Appendix D.

For general information about the C interface, see Appendix E.

      void ndfAcget( int indf, const char comp, int iaxis, char value, int value_length,
 int status );
    Obtain the value of an NDF axis character component
      void ndfAclen( int indf, const char comp, int iaxis, int length, int status );     Determine the length of an NDF axis character component
      void ndfAcmsg( const char token, int indf, const char comp, int iaxis, int status );     Assign the value of an NDF axis character component to a message token
      void ndfAcput( const char value, int indf, const char comp, int iaxis, int status );     Assign a value to an NDF axis character component
      void ndfAcre( int indf, int status );     Ensure that an axis coordinate system exists for an NDF
      void ndfAform( int indf, const char comp, int iaxis, char form, int form_length,
 int status );
    Obtain the storage form of an NDF axis array
      void ndfAmap( int indf, const char comp, int iaxis, const char type, const char mmod,
 void pntr[ ], int el, int status );
    Obtain mapped access to an NDF axis array
      void ndfAnnul( int indf, int status );     Annul an NDF identifier
      void ndfAnorm( int indf, int iaxis, int norm, int status );     Obtain the logical value of an NDF axis normalisation flag
      void ndfArest( int indf, const char comp, int iaxis, int status );     Reset an NDF axis component to an undefined state
      void ndfAsnrm( int norm, int indf, int iaxis, int status );     Set a new value for an NDF axis normalisation flag
      void ndfAssoc( const char param, const char mode, int indf, int status );     Associate an existing NDF with an ADAM parameter
      void ndfAstat( int indf, const char comp, int iaxis, int state, int status );     Determine the state of an NDF axis component (defined or undefined)
      void ndfAstyp( const char type, int indf, const char comp, int iaxis, int status );     Set a new numeric type for an NDF axis array
      void ndfAtype( int indf, const char comp, int iaxis, char type, int type_length,
 int status );
    Obtain the numeric type of an NDF axis array

      void ndfAunmp( int indf, const char comp, int iaxis, int status );     Unmap an NDF axis array component
      void ndfBad( int indf, const char comp, int check, int bad, int status );     Determine if an NDF array component may contain bad pixels
      void ndfBase( int indf1, int indf2, int status );     Obtain an identifier for a base NDF
      void ndfBb( int indf, unsigned char badbit, int status );     Obtain the bad-bits mask value for the quality component of an NDF
      void ndfBegin( void );     Begin a new NDF context
      void ndfBlock( int indf1, int ndim, const int mxdim[ ], int iblock, int indf2, int status );     Obtain an NDF section containing a block of adjacent pixels
      void ndfBound( int indf, int ndimx, int lbnd[ ], int ubnd[ ], int ndim, int status );     Enquire the pixel-index bounds of an NDF
      void ndfCancl( const char param, int status );     Cancel the association of an NDF with an ADAM parameter
      void ndfCget( int indf, const char comp, char value, int value_length, int status );     Obtain the value of an NDF character component
      void ndfChunk( int indf1, int mxpix, int ichunk, int indf2, int status );     Obtain an NDF section containing a chunk of contiguous pixels
      void ndfCinp( const char param, int indf, const char comp, int status );     Obtain an NDF character component value via the ADAM parameter system
      void ndfClen( int indf, const char comp, int length, int status );     Determine the length of an NDF character component
      void ndfClone( int indf1, int indf2, int status );     Clone an NDF identifier
      void ndfCmplx( int indf, const char comp, int cmplx, int status );     Determine whether an NDF array component holds complex values
      void ndfCmsg( const char token, int indf, const char comp, int status );     Assign the value of an NDF character component to a message token
      void ndfCopy( int indf1, int place, int indf2, int status );     Copy an NDF to a new location
      void ndfCput( const char value, int indf, const char comp, int status );     Assign a value to an NDF character component
      void ndfCreat( const char param, const char ftype, int ndim, const int lbnd[ ],
 const int ubnd[ ], int indf, int status );
    Create a new simple NDF via the ADAM parameter system
      void ndfCrep( const char param, const char ftype, int ndim, const int ubnd[ ], int indf,
 int status );
    Create a new primitive NDF via the ADAM parameter system

      void ndfCrepl( const char param, int place, int status );     Create a new NDF placeholder via the ADAM parameter system
      void ndfDelet( int indf, int status );     Delete an NDF
      void ndfDim( int indf, int ndimx, int dim[ ], int ndim, int status );     Enquire the dimension sizes of an NDF
      void ndfEnd( int status );     End the current NDF context
      void ndfExist( const char param, const char mode, int indf, int status );     See if an existing NDF is associated with an ADAM parameter.
      void ndfFind( const char loc[ DAT__SZLOC ], const char name, int indf, int status );     Find an NDF in an HDS structure and import it into the NDF_ system
      void ndfForm( int indf, const char comp, char form, int form_length, int status );     Obtain the storage form of an NDF array component
      void ndfFtype( int indf, const char comp, char ftype, int ftype_length, int status );     Obtain the full type of an NDF array component
void ndfGtdlt( int ndf, const char comp, int zaxis, char ztype, int ztype_length, float zratio, int status );
    Get compression details for a DELTA compressed NDF array component
      void ndfGtszd( int indf, const char comp, double scale, double zero, int status );     Get scale and zero factors for a scaled array in an NDF
      void ndfGtszi( int indf, const char comp, int scale, int zero, int status );     Get scale and zero factors for a scaled array in an NDF
      void ndfGtszr( int indf, const char comp, float scale, float zero, int status );     Get scale and zero factors for a scaled array in an NDF
      void ndfGtune( const char tpar, int value, int status );     Obtain the value of an NDF_ system tuning parameter
      void ndfGtwcs( int indf, AstFrameSet iwcs, int status );     Obtain world coordinate system information from an NDF
      void ndfHappn( const char appn, int status );     Declare a new application name for NDF history recording
      void ndfHcopy( int indf1, int indf2, int status );     Copy history information from one NDF to another
      void ndfHcre( int indf, int status );     Ensure that a history component exists for an NDF
      void ndfHdef( int indf, const char appn, int status );     Write default history information to an NDF
      void ndfHecho( int nlines, char const text[ ], int status );     Write out lines of history text
      void ndfHend( int status );     End NDF history recording for the current application
      void ndfHfind( int indf, const int ymdhm[ 5 ], float sec, int eq, int irec, int status );     Find an NDF history record by date and time
      void ndfHgmod( int indf, char hmode, int status );     Get the history update mode for an NDF
      void ndfHinfo( int indf, const char item, int irec, char value, int value_length,
 int status );
    Obtain information about an NDF’s history component
      void ndfHnrec( int indf, int nrec, int status );     Determine the number of NDF history records present
      void ndfHout( int indf, int irec, void ( routin )( int, char const [ ], int ), int status );     Display text from an NDF history record

      void ndfHpurg( int indf, int irec1, int irec2, int status );     Delete a range of records from an NDF history component
      void ndfHput( const char hmode, const char appn, int repl, int nlines,
 char const text[ ], int trans, int wrap, int rjust, int indf, int status );
    Write history information to an NDF
      void ndfHsmod( const char hmode, int indf, int status );     Set the history update mode for an NDF
      void ndfHsdat(const char datee, int indf, int status );     Set the date and time for the next history record in an NDF
      void ndfInit( int argc, char const argv[ ], int status );     Initialise the NDF_ library for use from a C main routine (not available from Fortran)
      void ndfIsacc( int indf, const char access, int isacc, int status );     Determine whether a specified type of NDF access is available
      void ndfIsbas( int indf, int isbas, int status );     Enquire if an NDF is a base NDF
      void ndfIsin( int indf1, int indf2, int *isin, int status );     Enquire if one NDF is contained within another NDF
      void ndfIstmp( int indf, int istmp, int status );     Determine if an NDF is temporary
      void ndfLoc( int indf, const char mode, char loc[ DAT__SZLOC ], int status );     Obtain an HDS locator for an NDF
      void ndfMap( int indf, const char comp, const char type, const char mmod,
 void pntr[ ], int el, int status );
    Obtain mapped access to an array component of an NDF
      void ndfMapql( int indf, int pntr, int el, int bad, int status );     Map the quality component of an NDF as an array of logical values
      void ndfMapz( int indf, const char comp, const char type, const char mmod,
 void rpntr[ ], void ipntr[ ], int el, int status );
    Obtain complex mapped access to an array component of an NDF
      void ndfMbad( int badok, int indf1, int indf2, const char comp, int check, int bad,
 int status );
    Merge the bad-pixel flags of the array components of a pair of NDFs
      void ndfMbadn( int badok, int n, const int ndfs[ ], const char comp, int check, int bad,
 int status );
    Merge the bad-pixel flags of the array components of a number of NDFs
      void ndfMbnd( const char option, int indf1, int indf2, int status );     Match the pixel-index bounds of a pair of NDFs
      void ndfMbndn( const char option, int n, int ndfs[ ], int status );     Match the pixel-index bounds of a number of NDFs
      void ndfMsg( const char token, int indf );     Assign the name of an NDF to a message token
      void ndfMtype( const char typlst, int indf1, int indf2, const char comp, char itype,
 int itype_length, char dtype, int dtype_length, int status );
    Match the types of the array components of a pair of NDFs

      void ndfMtypn( const char typlst, int n, const int ndfs[ ], const char comp, char itype,
 int itype_length, char dtype, int dtype_length, int status );
    Match the types of the array components of a number of NDFs
      void ndfNbloc( int indf, int ndim, const int mxdim[ ], int nblock, int status );     Determine the number of blocks of adjacent pixels in an NDF
      void ndfNchnk( int indf, int mxpix, int nchunk, int status );     Determine the number of chunks of contiguous pixels in an NDF
      void ndfNew( const char ftype, int ndim, const int lbnd[ ], const int ubnd[ ], int place,
 int indf, int status );
    Create a new simple NDF
      void ndfNewp( const char ftype, int ndim, const int ubnd[ ], int place, int indf,
 int status );
    Create a new primitive NDF
      void ndfNoacc( const char access, int indf, int status );     Disable a specified type of access to an NDF
      void ndfOpen( const char loc[ DAT__SZLOC ], const char name, const char mode,
 const char stat, int indf, int place, int status );
    Open an existing or new NDF
      void ndfPlace( const char loc[ DAT__SZLOC ], const char name, int place, int status );     Obtain an NDF placeholder
      void ndfProp( int indf1, const char clist, const char param, int indf2, int status );     Propagate NDF information to create a new NDF via the ADAM parameter system
      void ndfPtszd( double scale, double zero, int indf, const char comp, int status );     Store new scale and zero factors for a scaled array in an NDF
      void ndfPtszi( int scale, int zero, int indf, const char comp, int status );     Store new scale and zero factors for a scaled array in an NDF
      void ndfPtszr( float scale, float zero, int indf, const char comp, int status );     Store new scale and zero factors for a scaled array in an NDF
      void ndfPtwcs( AstFrameSet iwcs, int indf, int status );     Store world coordinate system information in an NDF
      int ndfQmask( unsigned char qual, unsigned char badbit );     Combine an NDF quality value with a bad-bits mask to give a logical result
      void ndfQmf( int indf, int qmf, int status );     Obtain the value of an NDF’s quality masking flag
      void ndfReset( int indf, const char comp, int status );     Reset an NDF component to an undefined state
      void ndfSame( int indf1, int indf2, int same, int isect, int status );     Enquire if two NDFs are part of the same base NDF
      void ndfSbad( int bad, int indf, const char comp, int status );     Set the bad-pixel flag for an NDF array component
      void ndfSbb( signed char badbit, int indf, int status );     Set a bad-bits mask value for the quality component of an NDF
      void ndfSbnd( int ndim, const int lbnd[ ], const int ubnd[ ], int indf, int status );     Set new pixel-index bounds for an NDF
      void ndfScopy( int indf1, const char clist, int place, int indf2, int status );     Selectively copy NDF components to a new location
      void ndfSctyp( int indf, const char comp, char type, int type_length, int status );     Obtain the numeric type of a scaled NDF array component

      void ndfSect( int indf1, int ndim, const int lbnd[ ], const int ubnd[ ], int indf2,
 int status );
    Create an NDF section
      void ndfShift( int nshift, const int shift[ ], int indf, int status );     Apply pixel-index shifts to an NDF
      void ndfSize( int indf, int npix, int status );     Determine the size of an NDF
      void ndfSqmf( int qmf, int indf, int status );     Set a new logical value for an NDF’s quality masking flag
      void ndfSsary( int iary1, int indf, int iary2, int status );     Create an array section, using an NDF section as a template
      void ndfState( int indf, const char comp, int state, int status );     Determine the state of an NDF component (defined or undefined)
      void ndfStype( const char ftype, int indf, const char comp, int status );     Set a new type for an NDF array component
      void ndfTemp( int place, int status );     Obtain a placeholder for a temporary NDF
      void ndfTune( int value, const char tpar, int status );     Set an NDF_ system tuning parameter
      void ndfType( int indf, const char comp, char type, int type_length, int status );     Obtain the numeric type of an NDF array component
      void ndfUnmap( int indf, const char comp, int status );     Unmap an NDF or a mapped NDF array
      void ndfValid( int indf, int valid, int status );     Determine whether an NDF identifier is valid
      void ndfXdel( int indf, const char xname, int status );     Delete a specified NDF extension
      void ndfXgt0c( int indf, const char xname, const char cmpt, char value, int value_length,
 int status );
    Read a scalar character string from a component within a named NDF extension
      void ndfXgt0d( int indf, const char xname, const char cmpt, double value, int status );     Read a scalar double precision value from a component within a named NDF extension
      void ndfXgt0i( int indf, const char xname, const char cmpt, int value, int status );     Read a scalar integer value from a component within a named NDF extension
      void ndfXgt0l( int indf, const char xname, const char cmpt, int value, int status );     Read a scalar logical value from a component within a named NDF extension
      void ndfXgt0r( int indf, const char xname, const char cmpt, float value, int status );     Read a scalar single precision value from a component within a named NDF extension

      void ndfXiary( int indf, const char xname, const char cmpt, const char mode, int iary,
 int status );
    Obtain access to an array stored in an NDF extension
      void ndfXloc( int indf, const char xname, const char mode, char loc[ DAT__SZLOC ],
 int status );
    Obtain access to a named NDF extension via an HDS locator
      void ndfXname( int indf, int n, char xname, int xname_length, int status );     Obtain the name of the N’th extension in an NDF
      void ndfXnew( int indf, const char xname, const char type, int ndim, const int dim[ ],
 char loc[ DAT__SZLOC ], int status );
    Create a new extension in an NDF
      void ndfXnumb( int indf, int nextn, int status );     Determine the number of extensions in an NDF
      void ndfXpt0c( const char value, int indf, const char xname, const char cmpt,
 int status );
    Write a scalar character string to a component within a named NDF extension
      void ndfXpt0d( double value, int indf, const char xname, const char cmpt, int status );     Write a scalar double precision value to a component within a named NDF extension
      void ndfXpt0i( int value, int indf, const char xname, const char cmpt, int status );     Write a scalar integer value to a component within a named NDF extension
      void ndfXpt0l( int value, int indf, const char xname, const char cmpt, int status );     Write a scalar logical value to a component within a named NDF extension
      void ndfXpt0r( float value, int indf, const char xname, const char cmpt, int status );     Write a scalar single precision value to a component within a named NDF extension
      void ndfXstat( int indf, const char xname, int there, int status );     Determine if a named NDF extension exists
      void ndfZscal( int indf1,const char type, double scale[ 2 ], double zero[ 2 ], int place, int indf2, int *status );     Create a compressed copy of an NDF using SCALE compression