//--------------------------------------------------------------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 static char * ms_completeness_att; #pragma link C++ global static char * ms_template_att; #pragma link C++ global static char * ms_netcdf_att; #pragma link C++ global static char * ms_languages_att; /* This definition is for those compilers which do not supply one (usually supplied in stddef.h, but it may be absent in non-ANSI compilers).*/ #ifndef offsetof #define offsetof(s_name,m_name) (long)(&(((s_name*)64))->m_name)-64 #endif /* ******************************************************************************** * 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; #pragma link C++ global static int ms_client_count; /* ******************************************************************************** * Datatype to format conversion table ******************************************************************************** */ #pragma link C++ static struct ms_types; #pragma link C++ global static int 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 static int nError; /* Raw data per-scan variables */ #pragma link C++ global static int nRawP; /* Raw data per scan group variables */ #pragma link C++ global static int nGroupP; /* INSTRUMENT-ID variables */ #pragma link C++ global static int nInst; /* LIBRARY DATA PER-SCAN variables */ #pragma link C++ global static int nLib; /* ******************************************************************************** * MS Attribute data arrays ******************************************************************************** */ /* Attribute data array for ADMINISTRATIVE INFORMATION attributes */ #pragma link C++ global static int nAdminA; /* Attribute data array for SAMPLE DESCRIPTION attributes */ #pragma link C++ global static int nSamp; /* Attribute data array for TEST METHOD attributes */ #pragma link C++ global static int nTest; /* Attribute data array for RAW DATA GLOBAL attributes */ #pragma link C++ global static int 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. ******************************************************************************* */ #ifndef NULL #define NULL ((void *) 0) #endif #pragma link C++ global MS_NULL_FLT; #pragma link C++ global MS_NULL_INT; #pragma link C++ global MS_NULL_BYTE; #ifndef TRUE #define TRUE (1) #endif #ifndef FALSE #define FALSE (0) #endif #pragma link C++ global MS_ERROR; /* Returned for all errors */ #pragma link C++ global MS_NO_ERROR; /* Returned when successful */ #pragma link C++ global MS_INST_LENGTH; /* Length of INSTRUMENT-ID data strings, including NULL */ #pragma link C++ global MS_MAX_STRING_LENGTH; /* Maximum allowed length of string variables and attributes */ #pragma link C++ global MS_STAMP_LENGTH; /* Length of a time stamp string, 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 ******************************************************************************** */ #pragma link C++ global MS_FLAG_NOT_HRP; #pragma link C++ global MS_FLAG_MISSED_REF; #pragma link C++ global MS_FLAG_UNRESOLVED; #pragma link C++ global MS_FLAG_DBL_CHARGED; #pragma link C++ global MS_FLAG_REFERENCE; #pragma link C++ global MS_FLAG_EXCEPTION; #pragma link C++ global MS_FLAG_SATURATED; #pragma link C++ global MS_FLAG_SIGNIFICANT; #pragma link C++ global MS_FLAG_MERGED; #pragma link C++ global MS_FLAG_FRAGMENTED; #pragma link C++ global MS_FLAG_AREA_HEIGHT; #pragma link C++ global MS_FLAG_MATH_MODIFIED; #pragma link C++ global MS_FLAG_NEGATIVE; #pragma link C++ global MS_FLAG_EXTENDED; #pragma link C++ global MS_FLAG_CALCULATED; #pragma link C++ global MS_FLAG_LOCK_MASS;