SUBROUTINE ADI1_INIT( STATUS ) *+ * Name: * ADI1_INIT * Purpose: * Load ADI definitions required for use of HDS files * Language: * Starlink Fortran * Invocation: * CALL ADI1_INIT( STATUS ) * Description: * {routine_description} * Arguments: * STATUS = INTEGER (given and returned) * The global status. * Examples: * {routine_example_text} * {routine_example_description} * Pitfalls: * {pitfall_description}... * Notes: * {routine_notes}... * Prior Requirements: * {routine_prior_requirements}... * Side Effects: * {routine_side_effects}... * Algorithm: * {algorithm_description}... * Accuracy: * {routine_accuracy} * Timing: * {routine_timing} * External Routines Used: * {name_of_facility_or_package}: * {routine_used}... * Implementation Deficiencies: * {routine_deficiencies}... * References: * ADI Subroutine Guide : http://www.sr.bham.ac.uk/asterix-docs/Programmer/Guides/adi.html * Keywords: * package:adi, usage:private * Copyright: * Copyright (C) University of Birmingham, 1995 * Authors: * DJA: David J. Allan (Jet-X, University of Birmingham) * {enter_new_authors_here} * History: * 14 Aug 1995 (DJA): * Original version. * {enter_changes_here} * Bugs: * {note_any_bugs_here} *- * Type Definitions: IMPLICIT NONE ! No implicit typing * Global Constants: INCLUDE 'SAE_PAR' ! Standard SAE constants * Status: INTEGER STATUS ! Global status * External References: EXTERNAL ADI1_OPEN EXTERNAL ADI1_FCLONE EXTERNAL ADI1_FCLOSE EXTERNAL ADI1_FCREAT EXTERNAL ADI1_FOBNAM EXTERNAL ADI1_FTRACE EXTERNAL BDI1_SETLNK EXTERNAL BDI1_UNLNK EXTERNAL EDI1_SETLNK EXTERNAL EDI1_UNLNK EXTERNAL FSI1_NEWLNK EXTERNAL FSI1_SETLNK EXTERNAL FSI1_GETSEL EXTERNAL FSI1_GETREF EXTERNAL FSI1_PUTSEL EXTERNAL FSI1_PUTREF EXTERNAL GMI1_NEWLNK EXTERNAL GMI1_SETLNK EXTERNAL PRF1_GET EXTERNAL PRF1_SET EXTERNAL SSI1_NEWLNK EXTERNAL SSI1_SETLNK EXTERNAL SSI1_SSETLNK EXTERNAL UDI1_COPANC * Local Variables: INTEGER DID ! Dummy id (ignored) INTEGER RID ! Representation id *. * Check inherited global status. IF ( STATUS .NE. SAI__OK ) RETURN * Load the HDS package CALL ADI_REQPKG( 'hds', STATUS ) * Locate the HDS file representation object CALL ADI_LOCREP( 'HDS', RID, STATUS ) * Define the file methods CALL ADI_DEFRCB( RID, 'OpenRtn', ADI1_OPEN, STATUS ) CALL ADI_DEFRCB( RID, 'CreatRtn', ADI1_FCREAT, STATUS ) CALL ADI_DEFMTH( 'FileClone(_HDSfile,_CHAR)', ADI1_FCLONE, DID, : STATUS ) CALL ADI_DEFMTH( 'FileClose(_HDSfile)', ADI1_FCLOSE, DID, : STATUS ) CALL ADI_DEFMTH( 'FileObjName(_HDSlocator)', ADI1_FOBNAM, DID, : STATUS ) CALL ADI_DEFMTH( 'FileTrace(_HDSlocator)', ADI1_FTRACE, DID, : STATUS ) * Define BDI interface CALL ADI_DEFMTH( 'SetLink(_BinDS,_HDSfile)', BDI1_SETLNK, : DID, STATUS ) CALL ADI_DEFMTH( 'SetLink(_Array,_HDSfile)', BDI1_SETLNK, : DID, STATUS ) CALL ADI_DEFMTH( 'UnLink(_BinDS,_HDSfile)', BDI1_UNLNK, : DID, STATUS ) CALL ADI_DEFMTH( 'UnLink(_Array,_HDSfile)', BDI1_UNLNK, : DID, STATUS ) CALL ADI_DEFMTH( 'UnLink(_Scalar,_HDSfile)', BDI1_UNLNK, : DID, STATUS ) * Define EDI interface CALL ADI_DEFMTH( 'SetLink(_EventDS,_HDSfile)', EDI1_SETLNK, : DID, STATUS ) CALL ADI_DEFMTH( 'UnLink(_EventDS,_HDSfile)', EDI1_UNLNK, : DID, STATUS ) * Multi-graph dataset interface CALL ADI_DEFMTH( 'NewLink(_MultiGraph,_HDSfile)', GMI1_NEWLNK, : DID, STATUS ) CALL ADI_DEFMTH( 'SetLink(_MultiGraph,_HDSfile)', GMI1_SETLNK, : DID, STATUS ) * File set interface CALL ADI_DEFMTH( 'NewLink(_FileSet,_HDSfile)', FSI1_NEWLNK, : DID, STATUS ) CALL ADI_DEFMTH( 'SetLink(_FileSet,_HDSfile)', FSI1_SETLNK, : DID, STATUS ) CALL ADI_DEFMTH( 'ReadSel(_FileSet,_HDSfile,_INTEGER)', : FSI1_GETSEL, DID, STATUS ) CALL ADI_DEFMTH( 'WriteSel(_FileSet,_HDSfile,_INTEGER,_)', : FSI1_PUTSEL, DID, STATUS ) CALL ADI_DEFMTH( 'ReadRef(_FileSet,_HDSfile,_INTEGER,_CHAR)', : FSI1_GETREF, DID, STATUS ) CALL ADI_DEFMTH( 'WriteRef(_FileSet,_HDSfile,_INTEGER,_)', : FSI1_PUTREF, DID, STATUS ) * Source search results files CALL ADI_DEFMTH( 'NewLink(_SSDS,_HDSfile)', SSI1_NEWLNK, : DID, STATUS ) CALL ADI_DEFMTH( 'NewLink(_SSDSset,_HDSfile)', SSI1_NEWLNK, : DID, STATUS ) CALL ADI_DEFMTH( 'SetLink(_SSDS,_HDSfile)', SSI1_SETLNK, : DID, STATUS ) CALL ADI_DEFMTH( 'SetLink(_SSDSset,_HDSfile)', SSI1_SSETLNK, : DID, STATUS ) * Processing flag setting CALL ADI_DEFMTH( 'GetProFlag(_,_HDSfile,_CHAR)', PRF1_GET, : DID, STATUS ) CALL ADI_DEFMTH( 'SetProFlag(_,_HDSfile,_CHAR,_LOGICAL)', : PRF1_SET, DID, STATUS ) * Ancillary copying CALL ADI_DEFMTH( 'CopyAncillary(_,_HDSfile,_,_HDSfile,_CHAR)', : UDI1_COPANC, DID, STATUS ) * Report any errors IF ( STATUS .NE. SAI__OK ) CALL AST_REXIT( 'ADI1_INIT', STATUS ) END