//--------------------------------------------------------------andiLinkDef.h // LinkDef.h for including netCDF and AIA MS in ROOT #pragma link off all globals; #pragma link off all classes; #pragma link off all functions; #pragma link C++ class NcFile+; #pragma link C++ class NcVar+; #pragma link C++ class NcAtt+; #pragma link C++ class NcDim+; #pragma link C++ class NcTypedComponent+; #pragma link C++ class NcError+; #pragma link C++ class NcValues+; /* -*-C-*- ******************************************************************************* * File: ms10io.h * Description: Public-domain implementation of the AIA MS Version 1.0.1 Data * Interchange Specification, Categories 1 and 2 data elements. * This file is a header file for the netCDF file I/O functions * of the MS specification. * Author: David Stranz * Language: C * Status: Public Domain (Distribute with Copyright Notice) * (C) Copyright 1992, 1993, Analytical Instrument Association * All rights reserved. ******************************************************************************* */ #pragma link C++ global ms_completeness_att; #pragma link C++ global ms_template_att; #pragma link C++ global ms_netcdf_att; #pragma link C++ global ms_languages_att; /* ******************************************************************************** * MS_Dimensions data structure: This keeps track of all the dimension id * numbers used when reading or writing netCDF files. ******************************************************************************** */ #pragma link C++ struct ms_dim; /* dimension size */ #pragma link C++ struct MS_Dimensions; /* ******************************************************************************** * MS_Variables data structure: Keeps track of the netCDF variable ids. * The data structure member names might seem a bit long, but they are what * the "ncgen" utility would produce from the CDL file. ******************************************************************************** */ #pragma link C++ struct MS_Variables; /* ******************************************************************************** * Client data structure: each time an AIA MS file is opened, a new "client" * is registered for that file, associating the netCDF file ID with dimension, * variable, data format, and other information. * * The array, ms_clients, and counter (ms_client_count) keep track of * client information and are dynamically adjusted. The function * ms_associate_id() adds a new client, and ms_dissociate_id() removes it. ******************************************************************************** */ #pragma link C++ struct MS_Client_Data; // NEEDED? #pragma link C++ global ms_client_count; /* ******************************************************************************** * Datatype to format conversion table ******************************************************************************** */ // NEEDED? #pragma link C++ static struct TYPE? ms_types; // NEEDED? #pragma link C++ global nTypes; /* ******************************************************************************** * Data structures * Most netCDF dimension, variable, and attribute definitions are presented * as arrays of data, defined by the three structures below. This affords more * easily maintainable code and avoids lengthy subroutines with explicit * calls to create or retrieve each element. * There are a few exceptions to this table-driven algorithm; these are clearly * identified in the code. ******************************************************************************** */ #pragma link C++ struct MS_Dimension_Data; #pragma link C++ struct MS_Variable_Data; #pragma link C++ struct MS_Attribute_Data; /* ******************************************************************************** * MS_Dimension_Data arrays ******************************************************************************** */ /* Dimensions with implementation-defined sizes are included in this table. Those which are data-dependent (e.g. number of scans) are explicitly created in code. */ /* ******************************************************************************** * MS Variable data arrays ******************************************************************************** */ /* Error log */ #pragma link C++ global nError; /* Raw data per-scan variables */ #pragma link C++ global nRawP; /* Raw data per scan group variables */ #pragma link C++ global nGroupP; /* INSTRUMENT-ID variables */ #pragma link C++ global nInst; /* LIBRARY DATA PER-SCAN variables */ #pragma link C++ global nLib; /* ******************************************************************************** * MS Attribute data arrays ******************************************************************************** */ /* Attribute data array for ADMINISTRATIVE INFORMATION attributes */ #pragma link C++ global nAdminA; /* Attribute data array for SAMPLE DESCRIPTION attributes */ #pragma link C++ global nSamp; /* Attribute data array for TEST METHOD attributes */ #pragma link C++ global nTest; /* Attribute data array for RAW DATA GLOBAL attributes */ #pragma link C++ global nRaw; /* -*-C-*- ******************************************************************************* * File: ms10.h * Description: Header file for the public-domain implementation of the * MS netCDF Data Interchange Specification, Categories 1 & 2 * data elements * Author: David Stranz * Language: C * Status: Public Domain (Distribute with Copyright Notice) * (C) Copyright 1992, Analytical Instrument Association * All rights reserved. ******************************************************************************* */ //In general, CPP macros cannot have a dictionary: #pragma link C++ global MS_NULL_FLT; //In general, CPP macros cannot have a dictionary:#pragma link C++ global MS_NULL_INT; //In general, CPP macros cannot have a dictionary:#pragma link C++ global MS_NULL_BYTE; //In general, CPP macros cannot have a dictionary:#pragma link C++ global MS_ERROR; /* Returned for all errors */ //In general, CPP macros cannot have a dictionary:#pragma link C++ global MS_NO_ERROR; /* Returned when successful */ //In general, CPP macros cannot have a dictionary:#pragma link C++ global MS_INST_LENGTH; /* Length of INSTRUMENT-ID data //In general, CPP macros cannot have a dictionary: strings, including NULL */ //In general, CPP macros cannot have a dictionary:#pragma link C++ global MS_MAX_STRING_LENGTH; /* Maximum allowed length of string //In general, CPP macros cannot have a dictionary: variables and attributes */ //In general, CPP macros cannot have a dictionary:#pragma link C++ global MS_STAMP_LENGTH; /* Length of a time stamp string, //In general, CPP macros cannot have a dictionary: including NULL */ #pragma link C++ enum ms_admin_expt_t; #pragma link C++ enum ms_sample_state_t; #pragma link C++ enum ms_test_separation_t; #pragma link C++ enum ms_test_inlet_t; #pragma link C++ enum ms_test_ioniz_t; #pragma link C++ enum ms_test_polarity_t; #pragma link C++ enum ms_test_detector_t; #pragma link C++ enum ms_test_res_t; #pragma link C++ enum ms_test_function_t; #pragma link C++ enum ms_test_direction_t; #pragma link C++ enum ms_test_law_t; #pragma link C++ enum ms_data_format_t; #pragma link C++ enum ms_data_mass_t; #pragma link C++ enum ms_data_time_t; #pragma link C++ enum ms_data_intensity_t; #pragma link C++ struct MS_Date_Time; #pragma link C++ struct MS_Admin_Data; #pragma link C++ struct MS_Instrument_Data; #pragma link C++ struct MS_Sample_Data; #pragma link C++ struct MS_Test_Data; #pragma link C++ struct MS_Raw_Data_Global; #pragma link C++ struct MS_Raw_Per_Scan; #pragma link C++ struct MS_Raw_Per_Group; #pragma link C++ struct MS_Raw_Library; /* ******************************************************************************** * Peak flags - these may be "ORed" together to yield a composite flag ******************************************************************************** */ //In general, CPP macros cannot have a dictionary: #pragma link C++ global MS_FLAG_NOT_HRP; //In general, CPP macros cannot have a dictionary: #pragma link C++ global MS_FLAG_MISSED_REF; //In general, CPP macros cannot have a dictionary: #pragma link C++ global MS_FLAG_UNRESOLVED; //In general, CPP macros cannot have a dictionary: #pragma link C++ global MS_FLAG_DBL_CHARGED; //In general, CPP macros cannot have a dictionary: #pragma link C++ global MS_FLAG_REFERENCE; //In general, CPP macros cannot have a dictionary: #pragma link C++ global MS_FLAG_EXCEPTION; //In general, CPP macros cannot have a dictionary: #pragma link C++ global MS_FLAG_SATURATED; //In general, CPP macros cannot have a dictionary: #pragma link C++ global MS_FLAG_SIGNIFICANT; //In general, CPP macros cannot have a dictionary: #pragma link C++ global MS_FLAG_MERGED; //In general, CPP macros cannot have a dictionary: #pragma link C++ global MS_FLAG_FRAGMENTED; //In general, CPP macros cannot have a dictionary: #pragma link C++ global MS_FLAG_AREA_HEIGHT; //In general, CPP macros cannot have a dictionary: #pragma link C++ global MS_FLAG_MATH_MODIFIED; //In general, CPP macros cannot have a dictionary: #pragma link C++ global MS_FLAG_NEGATIVE; //In general, CPP macros cannot have a dictionary: #pragma link C++ global MS_FLAG_EXTENDED; //In general, CPP macros cannot have a dictionary: #pragma link C++ global MS_FLAG_CALCULATED; //In general, CPP macros cannot have a dictionary: #pragma link C++ global MS_FLAG_LOCK_MASS;