Annex A

(informative)

Bound constructs in compilation order

A.1 Table of contents

Table A.1 lists the topics in this annex:

Table A.1 — Table of contents

Annex A Bound constructs in compilation order

A.1 Table of contents

A.2 Bound constructs in srm_types.h

A.3 Bound constructs in srm_objects.h

A.2 Bound constructs in srm_types.h

typedef short SRM_ShortInteger;
typedef int32 SRM_Integer;
typedef double SRM_Long_Float;

typedef void* SRM_Object_Reference;
const SRM_Object_reference NULL_Object = 0;
typedef enum {
  SRM_AXDIR_POSITIVE_PRIMARY_AXIS,
  SRM_AXDIR_POSITIVE_SECONDARY_AXIS,
  SRM_AXDIR_POSITIVE_TERTIARY_AXIS,
  SRM_AXDIR_NEGATIVE_PRIMARY_AXIS,
  SRM_AXDIR_NEGATIVE_SECONDARY_AXIS,
  SRM_AXDIR_NEGATIVE_TERTIARY_AXIS
} SRM_Axis_Direction;
typedef enum {
  SRM_COORDVALRGN_VALID,
  SRM_COORDVALRGN_EXTENDED_VALID,
  SRM_COORDVALRGN_DEFINED
} SRM_Coordinate_Valid_Region;
typedef enum {
  SRM_IVLTYP_SINGLE_VALUE,
  SRM_IVLTYP_OPEN_INTERVAL,
  SRM_IVLTYP_GE_LT_INTERVAL,
  SRM_IVLTYP_GT_LE_INTERVAL,
  SRM_IVLTYP_CLOSED_INTERVAL,
  SRM_IVLTYP_GT_SEMI_INTERVAL,
  SRM_IVLTYP_GE_SEMI_INTERVAL,
  SRM_IVLTYP_LT_SEMI_INTERVAL,
  SRM_IVLTYP_LE_SEMI_INTERVAL,
  SRM_IVLTYP_UNBOUNDED
} SRM_Interval_Type;
typedef enum {
  SRM_PLRASP_ASPECT_NORTH,
  SRM_PLRASP_ASPECT_SOUTH
} SRM_Polar_Aspect;
typedef SRM_Integer SRM_DB_Code;
  #define SRM_DBCOD_EQUATORIAL_INERTIAL  ((SRM_DB_Code)(1))
  #define SRM_DBCOD_SOLAR_ECLIPTIC  ((SRM_DB_Code)(2))
  #define SRM_DBCOD_SOLAR_EQUATORIAL  ((SRM_DB_Code)(3))
  #define SRM_DBCOD_HELIOCENTRIC_ARIES_ECLIPTIC  ((SRM_DB_Code)(4))
  #define SRM_DBCOD_HELIOCENTRIC_PLANET_ECLIPTIC  ((SRM_DB_Code)(5))
  #define SRM_DBCOD_HELIOCENTRIC_PLANET_EQUATORIAL  ((SRM_DB_Code)(6))
  #define SRM_DBCOD_CELESTIOMAGNETIC  ((SRM_DB_Code)(7))
  #define SRM_DBCOD_SOLAR_MAGNETIC_ECLIPTIC  ((SRM_DB_Code)(8))
  #define SRM_DBCOD_SOLAR_MAGNETIC_DIPOLE  ((SRM_DB_Code)(9))
typedef SRM_Integer SRM_RD_Code;
  #define SRM_RDCOD_ORIGIN_2D  ((SRM_RD_Code)(1))
  #define SRM_RDCOD_X_UNIT_POINT_2D  ((SRM_RD_Code)(2))
  #define SRM_RDCOD_Y_UNIT_POINT_2D  ((SRM_RD_Code)(3))
  #define SRM_RDCOD_ORIGIN_3D  ((SRM_RD_Code)(4))
  #define SRM_RDCOD_X_UNIT_POINT_3D  ((SRM_RD_Code)(5))
  #define SRM_RDCOD_Y_UNIT_POINT_3D  ((SRM_RD_Code)(6))
  #define SRM_RDCOD_Z_UNIT_POINT_3D  ((SRM_RD_Code)(7))
  #define SRM_RDCOD_X_AXIS_2D  ((SRM_RD_Code)(8))
  #define SRM_RDCOD_Y_AXIS_2D  ((SRM_RD_Code)(9))
  #define SRM_RDCOD_X_AXIS_3D  ((SRM_RD_Code)(10))
  #define SRM_RDCOD_Y_AXIS_3D  ((SRM_RD_Code)(11))
  #define SRM_RDCOD_Z_AXIS_3D  ((SRM_RD_Code)(12))
  #define SRM_RDCOD_XY_PLANE_3D  ((SRM_RD_Code)(13))
  #define SRM_RDCOD_XZ_PLANE_3D  ((SRM_RD_Code)(14))
  #define SRM_RDCOD_YZ_PLANE_3D  ((SRM_RD_Code)(15))
typedef SRM_Integer SRM_SRF_Parameters_Info_Code;
  #define SRM_SRFPARAMINFCOD_TEMPLATE  ((SRM_SRF_Parameters_Info_Code)(1))
  #define SRM_SRFPARAMINFCOD_SET  ((SRM_SRF_Parameters_Info_Code)(2))
  #define SRM_SRFPARAMINFCOD_INSTANCE  ((SRM_SRF_Parameters_Info_Code)(3))
typedef SRM_Integer SRM_Status_Code;
  #define SRM_STSC_SUCCESS  ((SRM_Status_Code)(1))
  #define SRM_STSC_INVALID_SRF  ((SRM_Status_Code)(2))
  #define SRM_STSC_INVALID_SOURCE_SRF  ((SRM_Status_Code)(3))
  #define SRM_STSC_INVALID_SOURCE_COORDINATE  ((SRM_Status_Code)(4))
  #define SRM_STSC_INVALID_TARGET_COORDINATE  ((SRM_Status_Code)(5))
  #define SRM_STSC_OPERATION_UNSUPPORTED  ((SRM_Status_Code)(6))
  #define SRM_STSC_INVALID_SOURCE_DIRECTION  ((SRM_Status_Code)(7))
  #define SRM_STSC_INVALID_CODE  ((SRM_Status_Code)(8))
  #define SRM_STSC_INVALID_INPUT  ((SRM_Status_Code)(9))
  #define SRM_STSC_CREATION_FAILURE  ((SRM_Status_Code)(10))
  #define SRM_STSC_DESTRUCTION_FAILURE  ((SRM_Status_Code)(11))
  #define SRM_STSC_FLOATING_OVERFLOW  ((SRM_Status_Code)(12))
  #define SRM_STSC_FLOATING_UNDERFLOW  ((SRM_Status_Code)(13))
  #define SRM_STSC_FLOATING_POINT_ERROR  ((SRM_Status_Code)(14))
  #define SRM_STSC_MEMORY_ALLOCATION_ERROR  ((SRM_Status_Code)(15))
  #define SRM_STSC_BUFFER_OVERFLOW  ((SRM_Status_Code)(2401))
  #define SRM_STSC_ENUMERATION_VALID_INVALID  ((SRM_Status_Code)(2402))
typedef SRM_Integer SRM_Coordinate_Code;
  #define SRM_COORDCOD_AZIMUTHAL_2D  ((SRM_Coordinate_Code)(1))
  #define SRM_COORDCOD_CELESTIOCENTRIC_3D  ((SRM_Coordinate_Code)(2))
  #define SRM_COORDCOD_CELESTIODETIC_3D  ((SRM_Coordinate_Code)(3))
  #define SRM_COORDCOD_CELESTIODETIC_SURFACE  ((SRM_Coordinate_Code)(4))
  #define SRM_COORDCOD_PLANETODETIC_3D  ((SRM_Coordinate_Code)(5))
  #define SRM_COORDCOD_PLANETODETIC_SURFACE  ((SRM_Coordinate_Code)(6))
  #define SRM_COORDCOD_CELESTIOMAGNETIC_3D  ((SRM_Coordinate_Code)(7))
  #define SRM_COORDCOD_EC_AUGMENTED_3D  ((SRM_Coordinate_Code)(8))
  #define SRM_COORDCOD_EC_SURFACE  ((SRM_Coordinate_Code)(9))
  #define SRM_COORDCOD_EI_3D  ((SRM_Coordinate_Code)(10))
  #define SRM_COORDCOD_HAEC_3D  ((SRM_Coordinate_Code)(11))
  #define SRM_COORDCOD_HEEC_3D  ((SRM_Coordinate_Code)(12))
  #define SRM_COORDCOD_HEEQ_3D  ((SRM_Coordinate_Code)(13))
  #define SRM_COORDCOD_LCC_AUGMENTED_3D  ((SRM_Coordinate_Code)(14))
  #define SRM_COORDCOD_LCC_SURFACE  ((SRM_Coordinate_Code)(15))
  #define SRM_COORDCOD_LSR_2D  ((SRM_Coordinate_Code)(16))
  #define SRM_COORDCOD_LSR_3D  ((SRM_Coordinate_Code)(17))
  #define SRM_COORDCOD_LTSAS_3D  ((SRM_Coordinate_Code)(18))
  #define SRM_COORDCOD_LTSAS_SURFACE  ((SRM_Coordinate_Code)(19))
  #define SRM_COORDCOD_LTSC_3D  ((SRM_Coordinate_Code)(20))
  #define SRM_COORDCOD_LTSC_SURFACE  ((SRM_Coordinate_Code)(21))
  #define SRM_COORDCOD_LTSE_3D  ((SRM_Coordinate_Code)(22))
  #define SRM_COORDCOD_LTSE_SURFACE  ((SRM_Coordinate_Code)(23))
  #define SRM_COORDCOD_MERCATOR_AUGMENTED_3D  ((SRM_Coordinate_Code)(24))
  #define SRM_COORDCOD_MERCATOR_SURFACE  ((SRM_Coordinate_Code)(25))
  #define SRM_COORDCOD_OMS_AUGMENTED_3D  ((SRM_Coordinate_Code)(26))
  #define SRM_COORDCOD_OMS_SURFACE  ((SRM_Coordinate_Code)(27))
  #define SRM_COORDCOD_POLAR_2D  ((SRM_Coordinate_Code)(28))
  #define SRM_COORDCOD_PS_AUGMENTED_3D  ((SRM_Coordinate_Code)(29))
  #define SRM_COORDCOD_PS_SURFACE  ((SRM_Coordinate_Code)(30))
  #define SRM_COORDCOD_SEC_3D  ((SRM_Coordinate_Code)(31))
  #define SRM_COORDCOD_SEQ_3D  ((SRM_Coordinate_Code)(32))
  #define SRM_COORDCOD_SMD_3D  ((SRM_Coordinate_Code)(33))
  #define SRM_COORDCOD_SME_3D  ((SRM_Coordinate_Code)(34))
  #define SRM_COORDCOD_TM_AUGMENTED_3D  ((SRM_Coordinate_Code)(35))
  #define SRM_COORDCOD_TM_SURFACE  ((SRM_Coordinate_Code)(36))
typedef SRM_Integer SRM_CS_Code;
  #define SRM_CSCOD_EUCLIDEAN_3D  ((SRM_CS_Code)(1))
  #define SRM_CSCOD_LOCOCENTRIC_EUCLIDEAN_3D  ((SRM_CS_Code)(2))
  #define SRM_CSCOD_SPHERICAL  ((SRM_CS_Code)(3))
  #define SRM_CSCOD_LOCOCENTRIC_SPHERICAL  ((SRM_CS_Code)(4))
  #define SRM_CSCOD_AZIMUTHAL_SPHERICAL  ((SRM_CS_Code)(5))
  #define SRM_CSCOD_LOCOCENTRIC_AZIMUTHAL_SPHERICAL  ((SRM_CS_Code)(6))
  #define SRM_CSCOD_GEODETIC  ((SRM_CS_Code)(7))
  #define SRM_CSCOD_PLANETODETIC  ((SRM_CS_Code)(8))
  #define SRM_CSCOD_CYLINDRICAL  ((SRM_CS_Code)(9))
  #define SRM_CSCOD_LOCOCETNRIC_CYLINDRICAL  ((SRM_CS_Code)(10))
  #define SRM_CSCOD_MERCATOR  ((SRM_CS_Code)(11))
  #define SRM_CSCOD_OBLIQUE_MERCATOR_SPHERICAL  ((SRM_CS_Code)(12))
  #define SRM_CSCOD_TRANSVERSE_MERCATOR  ((SRM_CS_Code)(13))
  #define SRM_CSCOD_LAMBERT_CONFORMAL_CONIC  ((SRM_CS_Code)(14))
  #define SRM_CSCOD_POLAR_STEREOGRAPHIC  ((SRM_CS_Code)(15))
  #define SRM_CSCOD_EQUIDISTANT_CYLINDRICAL  ((SRM_CS_Code)(16))
  #define SRM_CSCOD_SURFACE_GEODETIC  ((SRM_CS_Code)(17))
  #define SRM_CSCOD_SURFACE_PLANETODETIC  ((SRM_CS_Code)(18))
  #define SRM_CSCOD_LOCOCENTRIC_SURFACE_EUCLIDEAN  ((SRM_CS_Code)(19))
  #define SRM_CSCOD_LOCOCENTRIC_SURFACE_AZIMUTHAL  ((SRM_CS_Code)(20))
  #define SRM_CSCOD_LOCOCENTRIC_SURFACE_POLAR  ((SRM_CS_Code)(21))
  #define SRM_CSCOD_EUCLIDEAN_2D  ((SRM_CS_Code)(22))
  #define SRM_CSCOD_LOCOCENTRIC_EUCLIDEAN_2D  ((SRM_CS_Code)(23))
  #define SRM_CSCOD_AZIMUTHAL  ((SRM_CS_Code)(24))
  #define SRM_CSCOD_LOCOCENTRIC_AZIMUTHAL  ((SRM_CS_Code)(25))
  #define SRM_CSCOD_POLAR  ((SRM_CS_Code)(26))
  #define SRM_CSCOD_LOCOCENTRIC_POLAR  ((SRM_CS_Code)(27))
  #define SRM_CSCOD_EUCLIDEAN_1D  ((SRM_CS_Code)(28))
typedef SRM_Integer SRM_HSR_Code_Abstract_2D;
  #define SRM_HSRCODABS2D_IDENTITIY  ((SRM_HSR_Code_ABSTRACT_2D)(1))
typedef SRM_Integer SRM_HSR_Code_Abstract_3D;
  #define SRM_HSRCODABS3D_IDENTITIY  ((SRM_HSR_Code_ABSTRACT_3D)(1))
typedef SRM_Integer SRM_HSR_Code_ADINDAN_1991;
  #define SRM_HSRCODADINDAN1991_BURKINA_FASO  ((SRM_HSR_Code_ADINDAN_1991)(1))
  #define SRM_HSRCODADINDAN1991_CAMEROON  ((SRM_HSR_Code_ADINDAN_1991)(2))
  #define SRM_HSRCODADINDAN1991_ETHIOPIA  ((SRM_HSR_Code_ADINDAN_1991)(3))
  #define SRM_HSRCODADINDAN1991_MALI  ((SRM_HSR_Code_ADINDAN_1991)(4))
  #define SRM_HSRCODADINDAN1991_MEAN_SOLUTION  ((SRM_HSR_Code_ADINDAN_1991)(5))
  #define SRM_HSRCODADINDAN1991_SENEGAL  ((SRM_HSR_Code_ADINDAN_1991)(6))
  #define SRM_HSRCODADINDAN1991_SUDAN  ((SRM_HSR_Code_ADINDAN_1991)(7))
typedef SRM_Integer SRM_HSR_Code_ADRASTEA_2000;
  #define SRM_HSRCODADRASTEA2000_IDENTITY  ((SRM_HSR_Code_ADRASTEA_2000)(1))
typedef SRM_Integer SRM_HSR_Code_AFGOOYE_1987;
  #define SRM_HSRCODAFGOOYE1987_SOMALIA  ((SRM_HSR_Code_AFGOOYE_1987)(1))
typedef SRM_Integer SRM_HSR_Code_AIN_EL_ABD_1970;
  #define SRM_HSRCODAINELABD1970_BAHRAIN_ISLAND  ((SRM_HSR_Code_AIN_EL_ABD_1970)(1))
  #define SRM_HSRCODAINELABD1970_SAUDI_ARABIA  ((SRM_HSR_Code_AIN_EL_ABD_1970)(2))
typedef SRM_Integer SRM_HSR_Code_AMALTHEA_2000;
  #define SRM_HSRCODAMALTHEA2000_IDENTITY  ((SRM_HSR_Code_AMALTHEA_2000)(1))
typedef SRM_Integer SRM_HSR_Code_AMERICAN_SAMOA_1962;
  #define SRM_HSRCODAMSAM1962_AMERICAN_SAMOA_ISLANDS  ((SRM_HSR_Code_AMERICAN_SAMOA_1962)(1))
typedef SRM_Integer SRM_HSR_Code_AMERICAN_SAMOA_1962;
  #define SRM_HSRCODAMERS18851903_NETHERLANDS  ((SRM_HSR_Code_AMERSFOORT_1885_1903)(1))
typedef SRM_Integer SRM_HSR_Code_ANNA_1_1965;
  #define SRM_HSRCODANNA11965_COCOS_ISLANDS  ((SRM_HSR_Code_ANNA_1_1965)(1))
typedef SRM_Integer SRM_HSR_Code_ANTIGUA_1943;
  #define SRM_HSRCODANTIG1943_ANTIGUA_LEEWARD_ISLANDS  ((SRM_HSR_Code_ANTIGUA_1943)(1))
typedef SRM_Integer SRM_HSR_Code_ARC_1950;
  #define SRM_HSRCODARC1950_BOTSWANA  ((SRM_HSR_Code_ARC_1950)(1))
  #define SRM_HSRCODARC1950_BURUNDI  ((SRM_HSR_Code_ARC_1950)(2))
  #define SRM_HSRCODARC1950_LESOTHO  ((SRM_HSR_Code_ARC_1950)(3))
  #define SRM_HSRCODARC1950_MALAWI  ((SRM_HSR_Code_ARC_1950)(4))
  #define SRM_HSRCODARC1950_MEAN_SOLUTION  ((SRM_HSR_Code_ARC_1950)(5))
  #define SRM_HSRCODARC1950_SWAZILAND  ((SRM_HSR_Code_ARC_1950)(6))
  #define SRM_HSRCODARC1950_ZAIRE  ((SRM_HSR_Code_ARC_1950)(7))
  #define SRM_HSRCODARC1950_ZAMBIA  ((SRM_HSR_Code_ARC_1950)(8))
  #define SRM_HSRCODARC1950_ZIMBABWE_3  ((SRM_HSR_Code_ARC_1950)(9))
  #define SRM_HSRCODARC1950_ZIBMABWE_7  ((SRM_HSR_Code_ARC_1950)(10))
typedef SRM_Integer SRM_HSR_Code_ARC_1960;
  #define SRM_HSRCODARC1960_KENYA_3  ((SRM_HSR_Code_ARC_1960)(1))
  #define SRM_HSRCODARC1960_KENYA_7  ((SRM_HSR_Code_ARC_1960)(2))
  #define SRM_HSRCODARC1960_MEAN_SOLUTION  ((SRM_HSR_Code_ARC_1960)(3))
  #define SRM_HSRCODARC1960_TANZANA  ((SRM_HSR_Code_ARC_1960)(4))
typedef SRM_Integer SRM_HSR_Code_ARIEL_1988;
  #define SRM_HSRCODARIEL1988_IDENTITY  ((SRM_HSR_Code_ARIEL_1988)(1))
typedef SRM_Integer SRM_HSR_Code_ASCENSION_1958;
  #define SRM_HSRCODASCEN1958_ASCENSION_ISLAND  ((SRM_HSR_Code_ASCENSION_1958)(1))
typedef SRM_Integer SRM_HSR_Code_ATLAS_1988;
  #define SRM_HSRCODATLAS1988_IDENTITY  ((SRM_HSR_Code_ATLAS_1988)(1))
typedef SRM_Integer SRM_HSR_Code_AUSTRALIAN_GEOD_1966;
  #define SRM_HSRCODAUSG1966_AUSTRALIA_TASMANIA  ((SRM_HSR_Code_AUSTRALIAN_GEOD_1966)(1))
typedef SRM_Integer SRM_HSR_Code_AUSTRALIAN_GEOD_1984;
  #define SRM_HSRCODAUSG1984_AUSTRALIA_TASMANIA_3  ((SRM_HSR_Code_AUSTRALIAN_GEOD_1984)(1))
  #define SRM_HSRCODAUSG1984_AUSTRALIA_TASMANIA_7  ((SRM_HSR_Code_AUSTRALIAN_GEOD_1984)(2))
typedef SRM_Integer SRM_HSR_Code_AYABELLE_LIGHTHOUSE_1991;
  #define SRM_HSRCODAYAB1991_DJIBOUTI  ((SRM_HSR_Code_AYABELLE_LIGHTHOUSE_1991)(1))
typedef SRM_Integer SRM_HSR_Code_BEACON_E_1945;
  #define SRM_HSRCODBEACE1945_IWO_JIMA_ISLAND  ((SRM_HSR_Code_BEACON_E_1945)(1))
typedef SRM_Integer SRM_HSR_Code_BELGIUM_1972;
  #define SRM_HSRCODBELG1972_BELGIUM  ((SRM_HSR_Code_BELGIUM_1972)(1))
typedef SRM_Integer SRM_HSR_Code_BELINDA_1988;
  #define SRM_HSRCODBELINDA1988_IDENTITY  ((SRM_HSR_Code_BELINDA_1988)(1))
typedef SRM_Integer SRM_HSR_Code_BELLEVUE_IGN_1987;
  #define SRM_HSRCODBELLIGN1987_EFATE_ERROMANGO_ISLANDS  ((SRM_HSR_Code_BELLEVUE_IGN_1987)(1))
typedef SRM_Integer SRM_HSR_Code_BERMUDA_1957;
  #define SRM_HSRCODBERM1957_BERMUDA  ((SRM_HSR_Code_BERMUDA_1957)(1))
typedef SRM_Integer SRM_HSR_Code_BERN_1898;
  #define SRM_HSRCODBERN1898_SWITZERLAND  ((SRM_HSR_Code_BERN_1898)(1))
typedef SRM_Integer SRM_HSR_Code_BERN_1898_PM_BERN;
  #define SRM_HSRCODBERN1898PMBERN_SWITZERLAND  ((SRM_HSR_Code_BERN_1898_PM_BERN)(1))
typedef SRM_Integer SRM_HSR_Code_BIANCA_1988;
  #define SRM_HSRCODBIANCA1988_IDENTITY  ((SRM_HSR_Code_BIANCA_1988)(1))
typedef SRM_Integer SRM_HSR_Code_BISSAU_1991;
  #define SRM_HSRCODBISSAU1991_GUINEA_BISSAU  ((SRM_HSR_Code_BISSAU_1991)(1))
typedef SRM_Integer SRM_HSR_Code_BOGOTA_OBS_1987;
  #define SRM_HSRCODBOG1987_COLUMBIA  ((SRM_HSR_Code_BOGOTA_OBS_1987)(1))
typedef SRM_Integer SRM_HSR_Code_BOGOTA_OBS_1987_PM_BOGOTA;
  #define SRM_HSRCODBOG1987PMBOG_COLUMBIA  ((SRM_HSR_Code_BOGOTA_OBS_1987_PM_BOGOTA)(1))
typedef SRM_Integer SRM_HSR_Code_BUKIT_RIMPAH_1987;
  #define SRM_HSRCODBUKRIM1987_BANGKA_BELITUNG_ISLANDS  ((SRM_HSR_Code_BUKIT_RIMPAH_1987)(1))
typedef SRM_Integer SRM_HSR_Code_CALLISTO_2000;
  #define SRM_HSRCODCALLISTO2000_IDENTITY  ((SRM_HSR_Code_CALLISTO_2000)(1))
typedef SRM_Integer SRM_HSR_Code_CALYPSO_1988;
  #define SRM_HSRCODCALYPSO1988_IDENTITY  ((SRM_HSR_Code_CALYPSO_1988)(1))
typedef SRM_Integer SRM_HSR_Code_CAMP_AREA_1987;
  #define SRM_HSRCODCAMPAREA1987_MCMURDO_CAMP  ((SRM_HSR_Code_CAMP_AREA_1987)(1))
typedef SRM_Integer SRM_HSR_Code_CAMPO_INCHAUSPE_1969;
  #define SRM_HSRCODCMPOINCH1969_ARGENTINA  ((SRM_HSR_Code_CAMPO_INCHAUSPE_1969)(1))
typedef SRM_Integer SRM_HSR_Code_CANTON_1966;
  #define SRM_HSRCODCANTON1966_PHOENIX_ISLANDS  ((SRM_HSR_Code_CANTON_1966)(1))
typedef SRM_Integer SRM_HSR_Code_CAPE_1987;
  #define SRM_HSRCODCAPE1987_SOUTH_AFRICA  ((SRM_HSR_Code_CAPE_1987)(1))
typedef SRM_Integer SRM_HSR_Code_CAPE_CANAVERAL_1991;
  #define SRM_HSRCODCAPECAN1991_MEAN_SOLUTION  ((SRM_HSR_Code_CAPE_CANAVERAL_1991)(1))
typedef SRM_Integer SRM_HSR_Code_CARTHAGE_1987;
  #define SRM_HSRCODCARTH1987_TUNISIA  ((SRM_HSR_Code_CARTHAGE_1987)(1))
typedef SRM_Integer SRM_HSR_Code_CHARON_1991;
  #define SRM_HSRCODCHARON1991_IDENTITY  ((SRM_HSR_Code_CHARON_1991)(1))
typedef SRM_Integer SRM_HSR_Code_CHATHAM_1971;
  #define SRM_HSRCODCHAT1971_CHATHAM_ISLANDS  ((SRM_HSR_Code_CHATHAM_1971)(1))
typedef SRM_Integer SRM_HSR_Code_CHUA_1987;
  #define SRM_HSRCODCHUA1987_PARAGUAY  ((SRM_HSR_Code_CHUA_1987)(1))
typedef SRM_Integer SRM_HSR_Code_COAMPS_1998;
  #define SRM_HSRCODCOAMPS1998_IDENTITY_BY_DEFAULT  ((SRM_HSR_Code_COAMPS_1998)(1))
typedef SRM_Integer SRM_HSR_Code_CORDELIA_1988;
  #define SRM_HSRCODCORDELIA1988_IDENTITY  ((SRM_HSR_Code_CORDELIA_1988)(1))
typedef SRM_Integer SRM_HSR_Code_CORREGO_ALEGRE_1987;
  #define SRM_HSRCODCORALE1987_BRAZIL  ((SRM_HSR_Code_CORREGO_ALEGRE_1987)(1))
typedef SRM_Integer SRM_HSR_Code_CRESSIDA_1988;
  #define SRM_HSRCODCRESSIDA1988_IDENTITY  ((SRM_HSR_Code_CRESSIDA_1988)(1))
typedef SRM_Integer SRM_HSR_Code_CYPRUS_1935;
  #define SRM_HSRCODCYPRUS1935_CYPRUS  ((SRM_HSR_Code_CYPRUS_1935)(1))
typedef SRM_Integer SRM_HSR_Code_DABOLA_1991;
  #define SRM_HSRCODDAB1991_GUINEA  ((SRM_HSR_Code_DABOLA_1991)(1))
typedef SRM_Integer SRM_HSR_Code_DECEPTION_1993;
  #define SRM_HSRCODDECEPT1993_DECEPTION_ISLAND  ((SRM_HSR_Code_DECEPTION_1993)(1))
typedef SRM_Integer SRM_HSR_Code_DEIMOS_1988;
  #define SRM_HSRCODDEIMOS1988_IDENTITY  ((SRM_HSR_Code_DEIMOS_1988)(1))
typedef SRM_Integer SRM_HSR_Code_DESDEMONA_1988;
  #define SRM_HSRCODDESDEMONA1988_IDENTITY  ((SRM_HSR_Code_DESDEMONA_1988)(1))
typedef SRM_Integer SRM_HSR_Code_DESPINA_1991;
  #define SRM_HSRCODDESPINA1991_IDENTITY  ((SRM_HSR_Code_DESPINA_1991)(1))
typedef SRM_Integer SRM_HSR_Code_DIONE_1982;
  #define SRM_HSRCODDIONE1982_IDENTITY  ((SRM_HSR_Code_DIONE_1982)(1))
typedef SRM_Integer SRM_HSR_Code_DJAKARTA_1987;
  #define SRM_HSRCODDJAK1987_SUMATRA  ((SRM_HSR_Code_DJAKARTA_1987)(1))
typedef SRM_Integer SRM_HSR_Code_DJAKARTA_1987_PM_DJAKARTA;
  #define SRM_HSRCODDJAK1987PMDJAK_SUMATRA  ((SRM_HSR_Code_DJAKARTA_1987_PM_DJAKARTA)(1))
typedef SRM_Integer SRM_HSR_Code_DOS_1968;
  #define SRM_HSRCODDOS1968_GIZO_ISLAND  ((SRM_HSR_Code_DOS_1968)(1))
typedef SRM_Integer SRM_HSR_Code_DOS_1968;
  #define SRM_HSRCODDOS711987_ST_HELENA_ISLAND  ((SRM_HSR_Code_DOS_71_4_1987)(1))
typedef SRM_Integer SRM_HSR_Code_EASTER_1967;
  #define SRM_HSRCODEASTER1967_EASTER_ISLAND  ((SRM_HSR_Code_EASTER_1967)(1))
typedef SRM_Integer SRM_HSR_Code_ENCELADUS_1994;
  #define SRM_HSRCODENCELADUS1994_IDENTITY  ((SRM_HSR_Code_ENCELADUS_1994)(1))
typedef SRM_Integer SRM_HSR_Code_EPIMETHEUS_1988;
  #define SRM_HSRCODEPIMETHEUS1988_IDENTITY  ((SRM_HSR_Code_EPIMETHEUS_1988)(1))
typedef SRM_Integer SRM_HSR_Code_EROS_2000;
  #define SRM_HSRCODEROS2000_IDENTITY  ((SRM_HSR_Code_EROS_2000)(1))
typedef SRM_Integer SRM_HSR_Code_ESTONIA_1937;
  #define SRM_HSRCODESTONIA1937_ESTONIA  ((SRM_HSR_Code_ESTONIA_1937)(1))
typedef SRM_Integer SRM_HSR_Code_ETRS_1989;
  #define SRM_HSRCODETRS1989_IDENTITY_BY_MEASUREMENT  ((SRM_HSR_Code_ETRS_1989)(1))
typedef SRM_Integer SRM_HSR_Code_EUROPA_2000;
  #define SRM_HSRCODEUROPA2000_IDENTITY  ((SRM_HSR_Code_EUROPA_2000)(1))
typedef SRM_Integer SRM_HSR_Code_EUROPE_1950;
  #define SRM_HSRCODEUR1950_ALGERIA  ((SRM_HSR_Code_EUROPE_1950)(1))
  #define SRM_HSRCODEUR1950_BALEARIC_ISLANDS  ((SRM_HSR_Code_EUROPE_1950)(2))
  #define SRM_HSRCODEUR1950_CHANNEL_ISLANDS  ((SRM_HSR_Code_EUROPE_1950)(3))
  #define SRM_HSRCODEUR1950_CYPRUS_3  ((SRM_HSR_Code_EUROPE_1950)(4))
  #define SRM_HSRCODEUR1950_CYPRUS_7  ((SRM_HSR_Code_EUROPE_1950)(5))
  #define SRM_HSRCODEUR1950_DENMARK  ((SRM_HSR_Code_EUROPE_1950)(6))
  #define SRM_HSRCODEUR1950_EGYPT  ((SRM_HSR_Code_EUROPE_1950)(7))
  #define SRM_HSRCODEUR1950_ENGLAND_SCOTLAND  ((SRM_HSR_Code_EUROPE_1950)(8))
  #define SRM_HSRCODEUR1950_GIBRALTER  ((SRM_HSR_Code_EUROPE_1950)(9))
  #define SRM_HSRCODEUR1950_GREECE  ((SRM_HSR_Code_EUROPE_1950)(10))
  #define SRM_HSRCODEUR1950_IRAN  ((SRM_HSR_Code_EUROPE_1950)(11))
  #define SRM_HSRCODEUR1950_IRAQ  ((SRM_HSR_Code_EUROPE_1950)(12))
  #define SRM_HSRCODEUR1950_IRELAND  ((SRM_HSR_Code_EUROPE_1950)(13))
  #define SRM_HSRCODEUR1950_LEBANON  ((SRM_HSR_Code_EUROPE_1950)(14))
  #define SRM_HSRCODEUR1950_MALTA  ((SRM_HSR_Code_EUROPE_1950)(15))
  #define SRM_HSRCODEUR1950_MEAN_SOLUTION  ((SRM_HSR_Code_EUROPE_1950)(16))
  #define SRM_HSRCODEUR1950_NORWAY  ((SRM_HSR_Code_EUROPE_1950)(17))
  #define SRM_HSRCODEUR1950_OMAN  ((SRM_HSR_Code_EUROPE_1950)(18))
  #define SRM_HSRCODEUR1950_PORTUGAL  ((SRM_HSR_Code_EUROPE_1950)(19))
  #define SRM_HSRCODEUR1950_PORTUGAL_SPAIN  ((SRM_HSR_Code_EUROPE_1950)(20))
  #define SRM_HSRCODEUR1950_SARDINIA  ((SRM_HSR_Code_EUROPE_1950)(21))
  #define SRM_HSRCODEUR1950_SICILY  ((SRM_HSR_Code_EUROPE_1950)(22))
  #define SRM_HSRCODEUR1950_SPAIN_EXCEPT_NORTHWEST  ((SRM_HSR_Code_EUROPE_1950)(23))
  #define SRM_HSRCODEUR1950_SPAIN_NW  ((SRM_HSR_Code_EUROPE_1950)(24))
  #define SRM_HSRCODEUR1950_TUNISIA  ((SRM_HSR_Code_EUROPE_1950)(25))
  #define SRM_HSRCODEUR1950_TURKEY  ((SRM_HSR_Code_EUROPE_1950)(26))
  #define SRM_HSRCODEUR1950_W_EUROPE_MEAN_SOLUTION  ((SRM_HSR_Code_EUROPE_1950)(27))
  #define SRM_HSRCODEUR1950_YUGOSLAVIA_NORTH  ((SRM_HSR_Code_EUROPE_1950)(28))
typedef SRM_Integer SRM_HSR_Code_EUROPE_1979;
  #define SRM_HSRCODEUR1979_MEAN_SOLUTION  ((SRM_HSR_Code_EUROPE_1979)(1))
  #define SRM_HSRCODEUR1979_PORTUGAL  ((SRM_HSR_Code_EUROPE_1979)(2))
typedef SRM_Integer SRM_HSR_Code_FAHUD_1987;
  #define SRM_HSRCODFAHUD1987_OMAN_3  ((SRM_HSR_Code_FAHUD_1987)(1))
  #define SRM_HSRCODFAHUD1987_OMAN_7  ((SRM_HSR_Code_FAHUD_1987)(2))
typedef SRM_Integer SRM_HSR_Code_FORT_THOMAS_1955;
  #define SRM_HSRCODFTTHOM1955_ST_KITTS_NEVIS_LEEWARD_ISLANDS  ((SRM_HSR_Code_FORT_THOMAS_1955)(1))
typedef SRM_Integer SRM_HSR_Code_GALATEA_1991;
  #define SRM_HSRCODGALATEA1991_IDENTITY  ((SRM_HSR_Code_GALATEA_1991)(1))
typedef SRM_Integer SRM_HSR_Code_GAN_1970;
  #define SRM_HSRCODGAN1970_MALDIVES  ((SRM_HSR_Code_GAN_1970)(1))
typedef SRM_Integer SRM_HSR_Code_GANYMEDE_2000;
  #define SRM_HSRCODGANYMEDE2000_IDENTITY  ((SRM_HSR_Code_GANYMEDE_2000)(1))
typedef SRM_Integer SRM_HSR_Code_GANYMEDE_MAGNETIC_2000;
  #define SRM_HSRCODGANYMEDEMAG2000_GALILEO  ((SRM_HSR_Code_GANYMEDE_MAGNETIC_2000)(1))
typedef SRM_Integer SRM_HSR_Code_GASPRA_1991;
  #define SRM_HSRCODGASP1991_IDENTITY  ((SRM_HSR_Code_GASPRA_1991)(1))
typedef SRM_Integer SRM_HSR_Code_GDA_1994;
  #define SRM_HSRCODGDA1994_IDENTITY_BY_MEASUREMENT  ((SRM_HSR_Code_GDA_1994)(1))
typedef SRM_Integer SRM_HSR_Code_GEODETIC_DATUM_1949;
  #define SRM_HSRCODGEODD1949_NEW_ZEALAND_3  ((SRM_HSR_Code_GEODETIC_DATUM_1949)(1))
  #define SRM_HSRCODGEODD1949_NEW_ZEALAND_7  ((SRM_HSR_Code_GEODETIC_DATUM_1949)(2))
typedef SRM_Integer SRM_HSR_Code_GEOMAGNETIC_1945;
  #define SRM_HSRCODGEOMAG1945_DGRF  ((SRM_HSR_Code_GEOMAGNETIC_1945)(1))
typedef SRM_Integer SRM_HSR_Code_GEOMAGNETIC_1950;
  #define SRM_HSRCODGEOMAG1950_DGRF  ((SRM_HSR_Code_GEOMAGNETIC_1950)(1))
typedef SRM_Integer SRM_HSR_Code_GEOMAGNETIC_1955;
  #define SRM_HSRCODGEOMAG1955_DGRF  ((SRM_HSR_Code_GEOMAGNETIC_1955)(1))
typedef SRM_Integer SRM_HSR_Code_GEOMAGNETIC_1960;
  #define SRM_HSRCODGEOMAG1960_DGRF  ((SRM_HSR_Code_GEOMAGNETIC_1960)(1))
typedef SRM_Integer SRM_HSR_Code_GEOMAGNETIC_1965;
  #define SRM_HSRCODGEOMAG1965_DGRF  ((SRM_HSR_Code_GEOMAGNETIC_1965)(1))
typedef SRM_Integer SRM_HSR_Code_GEOMAGNETIC_1970;
  #define SRM_HSRCODGEOMAG1970_DGRF  ((SRM_HSR_Code_GEOMAGNETIC_1970)(1))
typedef SRM_Integer SRM_HSR_Code_GEOMAGNETIC_1975;
  #define SRM_HSRCODGEOMAG1975_DGRF  ((SRM_HSR_Code_GEOMAGNETIC_1975)(1))
typedef SRM_Integer SRM_HSR_Code_GEOMAGNETIC_1980;
  #define SRM_HSRCODGEOMAG1980_DGRF  ((SRM_HSR_Code_GEOMAGNETIC_1980)(1))
typedef SRM_Integer SRM_HSR_Code_GEOMAGNETIC_1985;
  #define SRM_HSRCODGEOMAG1985_DGRF  ((SRM_HSR_Code_GEOMAGNETIC_1985)(1))
typedef SRM_Integer SRM_HSR_Code_GEOMAGNETIC_1990;
  #define SRM_HSRCODGEOMAG1990_DGRF  ((SRM_HSR_Code_GEOMAGNETIC_1990)(1))
typedef SRM_Integer SRM_HSR_Code_GEOMAGNETIC_1995;
  #define SRM_HSRCODGEOMAG1995_IGRF  ((SRM_HSR_Code_GEOMAGNETIC_1995)(1))
typedef SRM_Integer SRM_HSR_Code_GEOMAGNETIC_2000;
  #define SRM_HSRCODGEOMAG2000_IGRF  ((SRM_HSR_Code_GEOMAGNETIC_2000)(1))
typedef SRM_Integer SRM_HSR_Code_GGRS_1987;
  #define SRM_HSRCODGGRS1987_GREECE  ((SRM_HSR_Code_GGRS_1987)(1))
typedef SRM_Integer SRM_HSR_Code_GRACIOSA_BASE_SW_1948;
  #define SRM_HSRCODGRACBSSW1948_CENTRAL_AZORES  ((SRM_HSR_Code_GRACIOSA_BASE_SW_1948)(1))
typedef SRM_Integer SRM_HSR_Code_GUAM_1963;
  #define SRM_HSRCODGUAM1963_GUAM  ((SRM_HSR_Code_GUAM_1963)(1))
typedef SRM_Integer SRM_HSR_Code_GUNONG_SEGARA_1987;
  #define SRM_HSRCODGUNSEG1987_KALIMANTAN_ISLAND  ((SRM_HSR_Code_GUNONG_SEGARA_1987)(1))
typedef SRM_Integer SRM_HSR_Code_GUX_1_1987;
  #define SRM_HSRCODGUX11987_GUADALCANAL_ISLAND  ((SRM_HSR_Code_GUX_1_1987)(1))
typedef SRM_Integer SRM_HSR_Code_HARTEBEESTHOCK_1994;
  #define SRM_HSRCODHARTEB1994_GUADALCANAL_ISLAND  ((SRM_HSR_Code_HARTEBEESTHOCK_1994)(1))
typedef SRM_Integer SRM_HSR_Code_HELENE_1992;
  #define SRM_HSRCODHELENE1992_IDENTITY  ((SRM_HSR_Code_HELENE_1992)(1))
typedef SRM_Integer SRM_HSR_Code_HERAT_NORTH_1987;
  #define SRM_HSRCODHERATN1987_AFGHANISTAN  ((SRM_HSR_Code_HERAT_NORTH_1987)(1))
typedef SRM_Integer SRM_HSR_Code_HERMANNSKOGEL_1871;
  #define SRM_HSRCODHERM1871_AUSTRIA  ((SRM_HSR_Code_HERMANNSKOGEL_1871)(1))
  #define SRM_HSRCODHERM1871_YUGOSLAVIA_3  ((SRM_HSR_Code_HERMANNSKOGEL_1871)(2))
  #define SRM_HSRCODHERM1871_YUGOSLAVIA_7  ((SRM_HSR_Code_HERMANNSKOGEL_1871)(3))
typedef SRM_Integer SRM_HSR_Code_HJORSEY_1955;
  #define SRM_HSRCODHJORSEY1955_ICELAND  ((SRM_HSR_Code_HJORSEY_1955)(1))
typedef SRM_Integer SRM_HSR_Code_HONG_KONG_1963;
  #define SRM_HSRCODHK1963_HONG_KONG  ((SRM_HSR_Code_HONG_KONG_1963)(1))
typedef SRM_Integer SRM_HSR_Code_HONG_KONG_1980;
  #define SRM_HSRCODHK1980_HONG_KONG  ((SRM_HSR_Code_HONG_KONG_1980)(1))
typedef SRM_Integer SRM_HSR_Code_HU_TZU_SHAN_1991;
  #define SRM_HSRCODHUTZUSHAN1991_TAIWAN  ((SRM_HSR_Code_HU_TZU_SHAN_1991)(1))
typedef SRM_Integer SRM_HSR_Code_HUNGARIAN_1972;
  #define SRM_HSRCODHUNG1972_HUNGARY  ((SRM_HSR_Code_HUNGARIAN_1972)(1))
typedef SRM_Integer SRM_HSR_Code_IAPETUS_1988;
  #define SRM_HSRCODIAPETUS1988_IDENTITY  ((SRM_HSR_Code_IAPETUS_1988)(1))
typedef SRM_Integer SRM_HSR_Code_IDA_1991;
  #define SRM_HSRCODIDA1991_IDENTITY  ((SRM_HSR_Code_IDA_1991)(1))
typedef SRM_Integer SRM_HSR_Code_IO_2000;
  #define SRM_HSRCODIO2000_IDENTITY  ((SRM_HSR_Code_IO_2000)(1))
typedef SRM_Integer SRM_HSR_Code_INDIAN_1916;
  #define SRM_HSRCODINDIAN1916_BANGLADESH_3  ((SRM_HSR_Code_INDIAN_1916)(1))
  #define SRM_HSRCODINDIAN1916_BANGLADESH_7  ((SRM_HSR_Code_INDIAN_1916)(2))
typedef SRM_Integer SRM_HSR_Code_INDIAN_1954;
  #define SRM_HSRCODINDIAN1954_THAILAND  ((SRM_HSR_Code_INDIAN_1954)(1))
typedef SRM_Integer SRM_HSR_Code_INDIAN_1956;
  #define SRM_HSRCODINDIAN1956_INDIA_NEPAL  ((SRM_HSR_Code_INDIAN_1956)(1))
typedef SRM_Integer SRM_HSR_Code_INDIAN_1960;
  #define SRM_HSRCODINDIAN1960_CON_SON_ISLAND  ((SRM_HSR_Code_INDIAN_1960)(1))
  #define SRM_HSRCODINDIAN1960_VIETNAM_16_N  ((SRM_HSR_Code_INDIAN_1960)(2))
typedef SRM_Integer SRM_HSR_Code_INDIAN_1962;
  #define SRM_HSRCODINDIAN1962_PAKISTAN  ((SRM_HSR_Code_INDIAN_1962)(1))
typedef SRM_Integer SRM_HSR_Code_INDIAN_1975;
  #define SRM_HSRCODINDIAN1975_THAILAND_1991  ((SRM_HSR_Code_INDIAN_1975)(1))
  #define SRM_HSRCODINDIAN1975_THAILAND_1997  ((SRM_HSR_Code_INDIAN_1975)(2))
typedef SRM_Integer SRM_HSR_Code_INDONESIAN_1974;
  #define SRM_HSRCODINDON1974_INDONESIA  ((SRM_HSR_Code_INDONESIAN_1974)(1))
typedef SRM_Integer SRM_HSR_Code_IRAQ_KUWAIT_BNDRY_1992;
  #define SRM_HSRCODIRAQKU1992_IRAQ_KUWAIT  ((SRM_HSR_Code_IRAQ_KUWAIT_BNDRY_1992)(1))
typedef SRM_Integer SRM_HSR_Code_IRELAND_1965;
  #define SRM_HSRCODIRELAND1965_IRELAND_3  ((SRM_HSR_Code_IRELAND_1965)(1))
  #define SRM_HSRCODIRELAND1965_IRELAND_7  ((SRM_HSR_Code_IRELAND_1965)(2))
typedef SRM_Integer SRM_HSR_Code_ISTS_061_1968;
  #define SRM_HSRCODISTS0611968_SOUTH_GEORGIA_ISLAND  ((SRM_HSR_Code_ISTS_061_1968)(1))
typedef SRM_Integer SRM_HSR_Code_ISTS_073_1969;
  #define SRM_HSRCODISTS0731969_DIEGO_GARCIA  ((SRM_HSR_Code_ISTS_073_1969)(1))
typedef SRM_Integer SRM_HSR_Code_JANUS_1988;
  #define SRM_HSRCODJANUS1988_IDENTITY  ((SRM_HSR_Code_JANUS_1988)(1))
typedef SRM_Integer SRM_HSR_Code_JGD_2000;
  #define SRM_HSRCODJGD2000_IDENTITY_BY_MEASUREMENT  ((SRM_HSR_Code_JGD_2000)(1))
typedef SRM_Integer SRM_HSR_Code_JOHNSTON_1961;
  #define SRM_HSRCODJOHNS1961_JOHNSTON_ISLAND  ((SRM_HSR_Code_JOHNSTON_1961)(1))
typedef SRM_Integer SRM_HSR_Code_JULIET_1988;
  #define SRM_HSRCODJULIET1988_IDENTITY  ((SRM_HSR_Code_JULIET_1988)(1))
typedef SRM_Integer SRM_HSR_Code_JUPITER_1988;
  #define SRM_HSRCODJUPITER1988_IDENTITY  ((SRM_HSR_Code_JUPITER_1988)(1))
typedef SRM_Integer SRM_HSR_Code_JUPITER_MAGNETIC_1993;
  #define SRM_HSRCODJUPITERMAG1993_VOYAGER  ((SRM_HSR_Code_JUPITER_MAGNETIC_1993)(1))
typedef SRM_Integer SRM_HSR_Code_KANDAWALA_1987;
  #define SRM_HSRCODKAND1987_SRI_LANKA_3  ((SRM_HSR_Code_KANDAWALA_1987)(1))
  #define SRM_HSRCODKAND1987_SRI_LANKA_7  ((SRM_HSR_Code_KANDAWALA_1987)(2))
typedef SRM_Integer SRM_HSR_Code_KERGUELEN_1949;
  #define SRM_HSRCODKERG1949_KERGUELEN_ISLAND  ((SRM_HSR_Code_KERGUELEN_1949)(1))
typedef SRM_Integer SRM_HSR_Code_KERTAU_1948;
  #define SRM_HSRCODKERTAU1948_W_MALAYSIA_SINGAPORE_3  ((SRM_HSR_Code_KERTAU_1948)(1))
  #define SRM_HSRCODKERTAU1948_W_MALAYSIA_SINGAPORE_7  ((SRM_HSR_Code_KERTAU_1948)(2))
typedef SRM_Integer SRM_HSR_Code_KOREAN_GEODETIC_1995;
  #define SRM_HSRCODKOREAG1995_SOUTH_KOREA  ((SRM_HSR_Code_KOREAN_GEODETIC_1995)(1))
typedef SRM_Integer SRM_HSR_Code_KUSAIE_1951;
  #define SRM_HSRCODKUSAIE1951_CAROLINE_ISLANDS  ((SRM_HSR_Code_KUSAIE_1951)(1))
typedef SRM_Integer SRM_HSR_Code_LANDESVERMESSUNG_1995;
  #define SRM_HSRCODLAND1995_SWITZERLAND  ((SRM_HSR_Code_LANDESVERMESSUNG_1995)(1))
typedef SRM_Integer SRM_HSR_Code_LARISSA_1991;
  #define SRM_HSRCODLARISSA1991_IDENTITY  ((SRM_HSR_Code_LARISSA_1991)(1))
typedef SRM_Integer SRM_HSR_Code_LC5_1961;
  #define SRM_HSRCODLC51961_CAYMAN_BRAC_ISLAND  ((SRM_HSR_Code_LC5_1961)(1))
typedef SRM_Integer SRM_HSR_Code_LEIGON_1991;
  #define SRM_HSRCODLEIGON1991_GHANA_3  ((SRM_HSR_Code_LEIGON_1991)(1))
  #define SRM_HSRCODLEIGON1991_GHANA_7  ((SRM_HSR_Code_LEIGON_1991)(2))
typedef SRM_Integer SRM_HSR_Code_LIBERIA_1964;
  #define SRM_HSRCODLIB1964_LIBERIA  ((SRM_HSR_Code_LIBERIA_1964)(1))
typedef SRM_Integer SRM_HSR_Code_LISBON_D73;
  #define SRM_HSRCODLISBOND73_PORTUGAL  ((SRM_HSR_Code_LISBON_D73)(1))
typedef SRM_Integer SRM_HSR_Code_LKS_1994;
  #define SRM_HSRCODLKS1994_LITHUANIA  ((SRM_HSR_Code_LKS_1994)(1))
typedef SRM_Integer SRM_HSR_Code_LUZON_1987;
  #define SRM_HSRCODLUZON1987_MINDANAO_ISLAND  ((SRM_HSR_Code_LUZON_1987)(1))
  #define SRM_HSRCODLUZON1987_PHILIPPINES_EXCLUDING_MINDANAO_ISLAND  ((SRM_HSR_Code_LUZON_1987)(2))
typedef SRM_Integer SRM_HSR_Code_M_PORALOKO_1991;
  #define SRM_HSRCODMPORA1991_GABON  ((SRM_HSR_Code_M_PORALOKO_1991)(1))
typedef SRM_Integer SRM_HSR_Code_MAHE_1971;
  #define SRM_HSRCODMAHE1971_MAHE_ISLAND  ((SRM_HSR_Code_MAHE_1971)(1))
typedef SRM_Integer SRM_HSR_Code_MARCUS_STATION_1952;
  #define SRM_HSRCODMARCSTA1952_MARCUS_ISLANDS  ((SRM_HSR_Code_MARCUS_STATION_1952)(1))
typedef SRM_Integer SRM_HSR_Code_MARS_2000;
  #define SRM_HSRCODMARS2000_IDENTITY  ((SRM_HSR_Code_MARS_2000)(1))
typedef SRM_Integer SRM_HSR_Code_MARS_SPHERE_2000;
  #define SRM_HSRCODMARSSPH2000_GLOBAL  ((SRM_HSR_Code_MARS_SPHERE_2000)(1))
typedef SRM_Integer SRM_HSR_Code_MASS_1999;
  #define SRM_HSRCODMASS1999_IDENTITY_BY_DEFAULT  ((SRM_HSR_Code_MASS_1999)(1))
typedef SRM_Integer SRM_HSR_Code_MASSAWA_1987;
  #define SRM_HSRCODMASSA1987_ERITREA_ETHIOPIA  ((SRM_HSR_Code_MASSAWA_1987)(1))
typedef SRM_Integer SRM_HSR_Code_MERCHICH_1987;
  #define SRM_HSRCODMERCH1987_MOROCCO  ((SRM_HSR_Code_MERCHICH_1987)(1))
typedef SRM_Integer SRM_HSR_Code_MERCURY_1988;
  #define SRM_HSRCODMERCURY1988_IDENTITY  ((SRM_HSR_Code_MERCURY_1988)(1))
typedef SRM_Integer SRM_HSR_Code_METIS_2000;
  #define SRM_HSRCODMETIS2000_IDENTITY  ((SRM_HSR_Code_METIS_2000)(1))
typedef SRM_Integer SRM_HSR_Code_MIDWAY_1961;
  #define SRM_HSRCODMIDWAY1961_MIDWAY_ISLANDS  ((SRM_HSR_Code_MIDWAY_1961)(1))
typedef SRM_Integer SRM_HSR_Code_MIMAS_1994;
  #define SRM_HSRCODMIMAS1994_IDENTITY  ((SRM_HSR_Code_MIMAS_1994)(1))
typedef SRM_Integer SRM_HSR_Code_MINNA_1991;
  #define SRM_HSRCODMINNA1991_CAMEROON  ((SRM_HSR_Code_MINNA_1991)(1))
  #define SRM_HSRCODMINNA1991_NIGERIA  ((SRM_HSR_Code_MINNA_1991)(2))
typedef SRM_Integer SRM_HSR_Code_MIRANDA_1988;
  #define SRM_HSRCODMIRANDA1988_IDENTITY  ((SRM_HSR_Code_MIRANDA_1988)(1))
typedef SRM_Integer SRM_HSR_Code_MM5_1997;
  #define SRM_HSRCODMM51997_IDENTITY_BY_DEFAULT  ((SRM_HSR_Code_MM5_1997)(1))
typedef SRM_Integer SRM_HSR_Code_MODTRAN_MIDLAT_N_1989;
  #define SRM_HSRCODMMIDN1989_IDENTITY_BY_DEFAULT  ((SRM_HSR_Code_MODTRAN_MIDLAT_N_1989)(1))
typedef SRM_Integer SRM_HSR_Code_MODTRAN_MIDLAT_S_1989;
  #define SRM_HSRCODMMIDS1989_IDENTITY_BY_DEFAULT  ((SRM_HSR_Code_MODTRAN_MIDLAT_S_1989)(1))
typedef SRM_Integer SRM_HSR_Code_MODTRAN_SUBARCTIC_N_1989;
  #define SRM_HSRCODMSUBN1989_IDENTITY_BY_DEFAULT  ((SRM_HSR_Code_MODTRAN_SUBARCTIC_N_1989)(1))
typedef SRM_Integer SRM_HSR_Code_MODTRAN_SUBARCTIC_S_1989;
  #define SRM_HSRCODMSUBS1989_IDENTITY_BY_DEFAULT  ((SRM_HSR_Code_MODTRAN_SUBARCTIC_S_1989)(1))
typedef SRM_Integer SRM_HSR_Code_MODTRAN_TROPICAL_1989;
  #define SRM_HSRCODMTROP1989_IDENTITY_BY_DEFAULT  ((SRM_HSR_Code_MODTRAN_TROPICAL_1989)(1))
typedef SRM_Integer SRM_HSR_Code_MONTSERRAT_1958;
  #define SRM_HSRCODMONTS1958_MONTSERRAT_LEEWARD_ISLANDS  ((SRM_HSR_Code_MONTSERRAT_1958)(1))
typedef SRM_Integer SRM_HSR_Code_MOON_1991;
  #define SRM_HSRCODMOON1991_IDENTITY  ((SRM_HSR_Code_MOON_1991)(1))
typedef SRM_Integer SRM_HSR_Code_MULTIGEN_FLAT_EARTH_1989;
  #define SRM_HSRCODMFE1989_IDENTITY_BY_DEFAULT  ((SRM_HSR_Code_MULTIGEN_FLAT_EARTH_1989)(1))
typedef SRM_Integer SRM_HSR_Code_N_AM_1927;
  #define SRM_HSRCODNAM1927_ALASKA_EXCL_ALEUTIAN_ISLANDS  ((SRM_HSR_Code_N_AM_1927)(1))
  #define SRM_HSRCODNAM1927_ALBERTA_BRITISH_COLUMBIA  ((SRM_HSR_Code_N_AM_1927)(2))
  #define SRM_HSRCODNAM1927_BAHAMAS_EXCL_SAN_SALVADOR_ISLAND  ((SRM_HSR_Code_N_AM_1927)(3))
  #define SRM_HSRCODNAM1927_CANADA  ((SRM_HSR_Code_N_AM_1927)(4))
  #define SRM_HSRCODNAM1927_CANAL_ZONE  ((SRM_HSR_Code_N_AM_1927)(5))
  #define SRM_HSRCODNAM1927_CARIBBEAN  ((SRM_HSR_Code_N_AM_1927)(6))
  #define SRM_HSRCODNAM1927_CENTRA_AMERICA  ((SRM_HSR_Code_N_AM_1927)(7))
  #define SRM_HSRCODNAM1927_CONTINENTAL_US  ((SRM_HSR_Code_N_AM_1927)(8))
  #define SRM_HSRCODNAM1927_CUBA  ((SRM_HSR_Code_N_AM_1927)(9))
  #define SRM_HSRCODNAM1927_EAST_ALEUTIAN_ISLANDS  ((SRM_HSR_Code_N_AM_1927)(10))
  #define SRM_HSRCODNAM1927_EASTERN_CANADA  ((SRM_HSR_Code_N_AM_1927)(11))
  #define SRM_HSRCODNAM1927_EASTER_US  ((SRM_HSR_Code_N_AM_1927)(12))
  #define SRM_HSRCODNAM1927_HAYES_PENINSULA  ((SRM_HSR_Code_N_AM_1927)(13))
  #define SRM_HSRCODNAM1927_MANITOBA_ONTARIO  ((SRM_HSR_Code_N_AM_1927)(14))
  #define SRM_HSRCODNAM1927_MEXICO  ((SRM_HSR_Code_N_AM_1927)(15))
  #define SRM_HSRCODNAM1927_NORTHWEST_TERRITORIES_SASKATCHEWAN  ((SRM_HSR_Code_N_AM_1927)(16))
  #define SRM_HSRCODNAM1927_SAN_SALVADOR_ISLAND  ((SRM_HSR_Code_N_AM_1927)(17))
  #define SRM_HSRCODNAM1927_WEST_ALEUTIAN_ISLANDS  ((SRM_HSR_Code_N_AM_1927)(18))
  #define SRM_HSRCODNAM1927_WESTERN_US  ((SRM_HSR_Code_N_AM_1927)(19))
  #define SRM_HSRCODNAM1927_YUKON  ((SRM_HSR_Code_N_AM_1927)(20))
typedef SRM_Integer SRM_HSR_Code_N_AM_1983;
  #define SRM_HSRCODNAM1983_ALASKA_EXCL_ALEUTIAN_ISLANDS  ((SRM_HSR_Code_N_AM_1983)(1))
  #define SRM_HSRCODNAM1983_ALEUTIAN_ISLANDS  ((SRM_HSR_Code_N_AM_1983)(2))
  #define SRM_HSRCODNAM1983_CANADA  ((SRM_HSR_Code_N_AM_1983)(3))
  #define SRM_HSRCODNAM1983_CONTINENTAL_US  ((SRM_HSR_Code_N_AM_1983)(4))
  #define SRM_HSRCODNAM1983_HAWAII  ((SRM_HSR_Code_N_AM_1983)(5))
  #define SRM_HSRCODNAM1983_MEXICO_CENTRAL_AMERICA  ((SRM_HSR_Code_N_AM_1983)(6))
typedef SRM_Integer SRM_HSR_Code_N_SAHARA_1959;
  #define SRM_HSRCODNSAHARA1959_ALGERIA  ((SRM_HSR_Code_N_SAHARA_1959)(1))
typedef SRM_Integer SRM_HSR_Code_NAHRWAN_1987;
  #define SRM_HSRCODNAHR1987_MASIRAH_ISLAND  ((SRM_HSR_Code_NAHRWAN_1987)(1))
  #define SRM_HSRCODNAHR1987_SAUDI_ARABIA  ((SRM_HSR_Code_NAHRWAN_1987)(2))
  #define SRM_HSRCODNAHR1987_UNITED_ARAB_EMIRATES  ((SRM_HSR_Code_NAHRWAN_1987)(3))
typedef SRM_Integer SRM_HSR_Code_NAIAD_1991;
  #define SRM_HSRCODNAIAD1991_IDENTITY  ((SRM_HSR_Code_NAIAD_1991)(1))
typedef SRM_Integer SRM_HSR_Code_NAPARIMA_1991;
  #define SRM_HSRCODNAPARIMA1991_TRINIDAD_TOBAGO  ((SRM_HSR_Code_NAPARIMA_1991)(1))
typedef SRM_Integer SRM_HSR_Code_NEPTUNE_1991;
  #define SRM_HSRCODNEPTUNE1991_IDENTITY  ((SRM_HSR_Code_NEPTUNE_1991)(1))
typedef SRM_Integer SRM_HSR_Code_NEPTUNE_MAGNETIC_1993;
  #define SRM_HSRCODNEPTUNEMAG1993_VOYAGER  ((SRM_HSR_Code_NEPTUNE_MAGNETIC_1993)(1))
typedef SRM_Integer SRM_HSR_Code_NOGAPS_1988;
  #define SRM_HSRCODNOGAPS1988_IDENTITY_BY_DEFAULT  ((SRM_HSR_Code_NOGAPS_1988)(1))
typedef SRM_Integer SRM_HSR_Code_NTF_1896;
  #define SRM_HSRCODNTF1896_FRANCE  ((SRM_HSR_Code_NTF_1896)(1))
typedef SRM_Integer SRM_HSR_Code_NTF_1896_PM_PARIS;
  #define SRM_HSRCODNTF1896PMPARIS_FRANCE  ((SRM_HSR_Code_NTF_1896_PM_PARIS)(1))
typedef SRM_Integer SRM_HSR_Code_OBERON_1988;
  #define SRM_HSRCODOBERON1988_IDENTITY  ((SRM_HSR_Code_OBERON_1988)(1))
typedef SRM_Integer SRM_HSR_Code_OBSERV_METEORO_1939;
  #define SRM_HSRCODOBSMET1939_CORVO_FLORES_ISLANDS  ((SRM_HSR_Code_OBSERV_METEORO_1939)(1))
typedef SRM_Integer SRM_HSR_Code_OLD_EGYPTIAN_1907;
  #define SRM_HSRCODOLDEGY1907_EGYPT  ((SRM_HSR_Code_OLD_EGYPTIAN_1907)(1))
typedef SRM_Integer SRM_HSR_Code_OLD_HAWAIIAN_CLARKE_1987;
  #define SRM_HSRCODOHAWCL1987_HAWAII  ((SRM_HSR_Code_OLD_HAWAIIAN_CLARKE_1987)(1))
  #define SRM_HSRCODOHAWCL1987_KAUAI  ((SRM_HSR_Code_OLD_HAWAIIAN_CLARKE_1987)(2))
  #define SRM_HSRCODOHAWCL1987_MAUI  ((SRM_HSR_Code_OLD_HAWAIIAN_CLARKE_1987)(3))
  #define SRM_HSRCODOHAWCL1987_MEAN_SOLUTION  ((SRM_HSR_Code_OLD_HAWAIIAN_CLARKE_1987)(4))
  #define SRM_HSRCODOHAWCL1987_OAHU  ((SRM_HSR_Code_OLD_HAWAIIAN_CLARKE_1987)(5))
typedef SRM_Integer SRM_HSR_Code_OLD_HAWAIIAN_INT_1987;
  #define SRM_HSRCODOHAWIN1987_HAWAII  ((SRM_HSR_Code_OLD_HAWAIIAN_INT_1987)(1))
  #define SRM_HSRCODOHAWIN1987_KAUAI  ((SRM_HSR_Code_OLD_HAWAIIAN_INT_1987)(2))
  #define SRM_HSRCODOHAWIN1987_MAUI  ((SRM_HSR_Code_OLD_HAWAIIAN_INT_1987)(3))
  #define SRM_HSRCODOHAWIN1987_MEAN_SOLUTION  ((SRM_HSR_Code_OLD_HAWAIIAN_INT_1987)(4))
  #define SRM_HSRCODOHAWIN1987_OAHU  ((SRM_HSR_Code_OLD_HAWAIIAN_INT_1987)(5))
typedef SRM_Integer SRM_HSR_Code_OPHELIA_1988;
  #define SRM_HSRCODOPHELIA1988_IDENTITY  ((SRM_HSR_Code_OPHELIA_1988)(1))
typedef SRM_Integer SRM_HSR_Code_OSGB_1936;
  #define SRM_HSRCODOSGB1936_ENGLAND  ((SRM_HSR_Code_OSGB_1936)(1))
  #define SRM_HSRCODOSGB1936_ENGLAND_ISLE_OF_MAN_WALES  ((SRM_HSR_Code_OSGB_1936)(2))
  #define SRM_HSRCODOSGB1936_GREAT_BRITAIN_7  ((SRM_HSR_Code_OSGB_1936)(3))
  #define SRM_HSRCODOSGB1936_MEAN_SOLUTION_3  ((SRM_HSR_Code_OSGB_1936)(4))
  #define SRM_HSRCODOSGB1936_SCOTLAND_SHETLAND_ISLANDS  ((SRM_HSR_Code_OSGB_1936)(5))
  #define SRM_HSRCODOSGB1936_WALES  ((SRM_HSR_Code_OSGB_1936)(6))
typedef SRM_Integer SRM_HSR_Code_PALESTINE_1928;
  #define SRM_HSRCODPAL1928_ISRAEL_JORDAN  ((SRM_HSR_Code_PALESTINE_1928)(1))
typedef SRM_Integer SRM_HSR_Code_PAN_1991;
  #define SRM_HSRCODPAN1991_IDENTITY  ((SRM_HSR_Code_PAN_1991)(1))
typedef SRM_Integer SRM_HSR_Code_PANDORA_1988;
  #define SRM_HSRCODPANDORA1988_IDENTITY  ((SRM_HSR_Code_PANDORA_1988)(1))
typedef SRM_Integer SRM_HSR_Code_PHOBOS_1988;
  #define SRM_HSRCODPHOBOS1988_IDENTITY  ((SRM_HSR_Code_PHOBOS_1988)(1))
typedef SRM_Integer SRM_HSR_Code_PHOEBE_1988;
  #define SRM_HSRCODPHOEBE1988_IDENTITY  ((SRM_HSR_Code_PHOEBE_1988)(1))
typedef SRM_Integer SRM_HSR_Code_PICO_DE_LAS_NIEVES_1987;
  #define SRM_HSRCODPICO1987_CANARY_ISLANDS  ((SRM_HSR_Code_PICO_DE_LAS_NIEVES_1987)(1))
typedef SRM_Integer SRM_HSR_Code_PITCAIRN_1967;
  #define SRM_HSRCODPITC1967_PITCAIRN_ISLAND  ((SRM_HSR_Code_PITCAIRN_1967)(1))
typedef SRM_Integer SRM_HSR_Code_PLUTO_1994;
  #define SRM_HSRCODPLUTO1994_IDENTITY  ((SRM_HSR_Code_PLUTO_1994)(1))
typedef SRM_Integer SRM_HSR_Code_POINT_58_1991;
  #define SRM_HSRCODPT581991_MEAN_SOLUTION  ((SRM_HSR_Code_POINT_58_1991)(1))
typedef SRM_Integer SRM_HSR_Code_POINTE_NOIRE_1948;
  #define SRM_HSRCODPTNOIRE1948_CONGO  ((SRM_HSR_Code_POINTE_NOIRE_1948)(1))
typedef SRM_Integer SRM_HSR_Code_PORTIA_1988;
  #define SRM_HSRCODPORTIA1988_IDENTITY  ((SRM_HSR_Code_PORTIA_1988)(1))
typedef SRM_Integer SRM_HSR_Code_PORTO_SANTO_1936;
  #define SRM_HSRCODPRTSANTO1936_PORTO_SANTO_MADEIRA_ISLANDS  ((SRM_HSR_Code_PORTO_SANTO_1936)(1))
typedef SRM_Integer SRM_HSR_Code_PROMETHEUS_1988;
  #define SRM_HSRCODPROMETHEUS1988_IDENTITY  ((SRM_HSR_Code_PROMETHEUS_1988)(1))
typedef SRM_Integer SRM_HSR_Code_PROTEUS_1991;
  #define SRM_HSRCODPROTEUS1991_IDENTITY  ((SRM_HSR_Code_PROTEUS_1991)(1))
typedef SRM_Integer SRM_HSR_Code_PROV_S_AM_1956;
  #define SRM_HSRCODPSAM1956_BOLIVIA  ((SRM_HSR_Code_PROV_S_AM_1956)(1))
  #define SRM_HSRCODPSAM1956_COLOMBIA  ((SRM_HSR_Code_PROV_S_AM_1956)(2))
  #define SRM_HSRCODPSAM1956_ECUADOR  ((SRM_HSR_Code_PROV_S_AM_1956)(3))
  #define SRM_HSRCODPSAM1956_GUYANA  ((SRM_HSR_Code_PROV_S_AM_1956)(4))
  #define SRM_HSRCODPSAM1956_MEAN_SOLUTION  ((SRM_HSR_Code_PROV_S_AM_1956)(5))
  #define SRM_HSRCODPSAM1956_N_CHILE_19_S  ((SRM_HSR_Code_PROV_S_AM_1956)(6))
  #define SRM_HSRCODPSAM1956_PERU  ((SRM_HSR_Code_PROV_S_AM_1956)(7))
  #define SRM_HSRCODPSAM1956_S_CHILE_43_S  ((SRM_HSR_Code_PROV_S_AM_1956)(8))
  #define SRM_HSRCODPSAM1956_VENEZUELA_3  ((SRM_HSR_Code_PROV_S_AM_1956)(9))
  #define SRM_HSRCODPSAM1956_VENEZUELA_7  ((SRM_HSR_Code_PROV_S_AM_1956)(10))
typedef SRM_Integer SRM_HSR_Code_PROV_S_CHILEAN_1963;
  #define SRM_HSRCODPSCH1963_SOUTH_CHILE  ((SRM_HSR_Code_PROV_S_CHILEAN_1963)(1))
typedef SRM_Integer SRM_HSR_Code_PUCK_1988;
  #define SRM_HSRCODPUCK1988_IDENTITY  ((SRM_HSR_Code_PUCK_1988)(1))
typedef SRM_Integer SRM_HSR_Code_PUERTO_RICO_1987;
  #define SRM_HSRCODPRICO1987_PUERTO_RICO_VIRGIN_ISLANDS  ((SRM_HSR_Code_PUERTO_RICO_1987)(1))
typedef SRM_Integer SRM_HSR_Code_PULKOVO_1942;
  #define SRM_HSRCODPULK1942_ESTONIA  ((SRM_HSR_Code_PULKOVO_1942)(1))
  #define SRM_HSRCODPULK1942_GERMANY  ((SRM_HSR_Code_PULKOVO_1942)(2))
  #define SRM_HSRCODPULK1942_RUSSIA  ((SRM_HSR_Code_PULKOVO_1942)(3))
typedef SRM_Integer SRM_HSR_Code_QATAR_NATIONAL_1974;
  #define SRM_HSRCODQATNAT1974_QATAR_3  ((SRM_HSR_Code_QATAR_NATIONAL_1974)(1))
  #define SRM_HSRCODQATNAT1974_QATAR_7  ((SRM_HSR_Code_QATAR_NATIONAL_1974)(2))
typedef SRM_Integer SRM_HSR_Code_QATAR_NATIONAL_1995;
  #define SRM_HSRCODQATNAT1995_QATAR  ((SRM_HSR_Code_QATAR_NATIONAL_1995)(1))
typedef SRM_Integer SRM_HSR_Code_QORNOQ_1987;
  #define SRM_HSRCODQORNOQ1987_SOUTH_GREENLAND  ((SRM_HSR_Code_QORNOQ_1987)(1))
typedef SRM_Integer SRM_HSR_Code_RHEA_1988;
  #define SRM_HSRCODRHEA1988_IDENTITY  ((SRM_HSR_Code_RHEA_1988)(1))
typedef SRM_Integer SRM_HSR_Code_REUNION_1947;
  #define SRM_HSRCODREUN1947_MASCARENE_ISLANDS  ((SRM_HSR_Code_REUNION_1947)(1))
typedef SRM_Integer SRM_HSR_Code_RGF_1993;
  #define SRM_HSRCODRGF1993_IDENTITY_BY_MEASUREMENT  ((SRM_HSR_Code_RGF_1993)(1))
typedef SRM_Integer SRM_HSR_Code_ROME_1940;
  #define SRM_HSRCODROME1940_ITALY_7  ((SRM_HSR_Code_ROME_1940)(1))
  #define SRM_HSRCODROME1940_SARDINIA  ((SRM_HSR_Code_ROME_1940)(2))
  #define SRM_HSRCODROME1940_SARDINIA_7  ((SRM_HSR_Code_ROME_1940)(3))
  #define SRM_HSRCODROME1940_SICILY  ((SRM_HSR_Code_ROME_1940)(4))
typedef SRM_Integer SRM_HSR_Code_ROME_1940_PM_ROME;
  #define SRM_HSRCODROME1940PMROME_ITALY_7  ((SRM_HSR_Code_ROME_1940_PM_ROME)(1))
  #define SRM_HSRCODROME1940PMROME_SARDINIA  ((SRM_HSR_Code_ROME_1940_PM_ROME)(2))
typedef SRM_Integer SRM_HSR_Code_ROSALIND_1988;
  #define SRM_HSRCODROSALIND1988_IDENTITY  ((SRM_HSR_Code_ROSALIND_1988)(1))
typedef SRM_Integer SRM_HSR_Code_RT_1990;
  #define SRM_HSRCODRT1990_SWEDEN  ((SRM_HSR_Code_RT_1990)(1))
typedef SRM_Integer SRM_HSR_Code_RT_1990_PM_STOCKHOLM;
  #define SRM_HSRCODRT1990PMSTOCK_SWEDEN  ((SRM_HSR_Code_RT_1990_PM_STOCKHOLM)(1))
typedef SRM_Integer SRM_HSR_Code_S_AM_1969;
  #define SRM_HSRCODSAM1969_ARGENTINA  ((SRM_HSR_Code_S_AM_1969)(1))
  #define SRM_HSRCODSAM1969_BALTRA_GALAPAGOS_ISLANDS  ((SRM_HSR_Code_S_AM_1969)(2))
  #define SRM_HSRCODSAM1969_BOLIVIA  ((SRM_HSR_Code_S_AM_1969)(3))
  #define SRM_HSRCODSAM1969_BRAZIL  ((SRM_HSR_Code_S_AM_1969)(4))
  #define SRM_HSRCODSAM1969_CHILE  ((SRM_HSR_Code_S_AM_1969)(5))
  #define SRM_HSRCODSAM1969_COLOMBIA  ((SRM_HSR_Code_S_AM_1969)(6))
  #define SRM_HSRCODSAM1969_ECUADOR_EXCL_GALAPAGOS_ISLANDS  ((SRM_HSR_Code_S_AM_1969)(7))
  #define SRM_HSRCODSAM1969_GUYANA  ((SRM_HSR_Code_S_AM_1969)(8))
  #define SRM_HSRCODSAM1969_MEAN_SOLUTION  ((SRM_HSR_Code_S_AM_1969)(9))
  #define SRM_HSRCODSAM1969_PARAGUAY  ((SRM_HSR_Code_S_AM_1969)(10))
  #define SRM_HSRCODSAM1969_PERU  ((SRM_HSR_Code_S_AM_1969)(11))
  #define SRM_HSRCODSAM1969_TRINIDAD_TOBAGO  ((SRM_HSR_Code_S_AM_1969)(12))
  #define SRM_HSRCODSAM1969_VENEZUELA  ((SRM_HSR_Code_S_AM_1969)(13))
typedef SRM_Integer SRM_HSR_Code_S_ASIA_1987;
  #define SRM_HSRCODSASIA1987_SINGAPORE  ((SRM_HSR_Code_S_ASIA_1987)(1))
typedef SRM_Integer SRM_HSR_Code_S_JTSK_1993;
  #define SRM_HSRCODSJTSK1993_CZECH_REPUBLIC  ((SRM_HSR_Code_S_JTSK_1993)(1))
  #define SRM_HSRCODSJTSK1993_CZECH_REPUBLIC_SLOVAKIA  ((SRM_HSR_Code_S_JTSK_1993)(2))
  #define SRM_HSRCODSJTSK1993_SLOVAKIA  ((SRM_HSR_Code_S_JTSK_1993)(3))
typedef SRM_Integer SRM_HSR_Code_S42_PULKOVO;
  #define SRM_HSRCODS42PULKOVO_AFGHANISTAN  ((SRM_HSR_Code_S42_PULKOVO)(1))
  #define SRM_HSRCODS42PULKOVO_ALBANIA  ((SRM_HSR_Code_S42_PULKOVO)(2))
  #define SRM_HSRCODS42PULKOVO_CZECH_REPUBLIC_SLOVAKIA  ((SRM_HSR_Code_S42_PULKOVO)(3))
  #define SRM_HSRCODS42PULKOVO_HUNGARY  ((SRM_HSR_Code_S42_PULKOVO)(4))
  #define SRM_HSRCODS42PULKOVO_KAZAKHSTAN  ((SRM_HSR_Code_S42_PULKOVO)(5))
  #define SRM_HSRCODS42PULKOVO_LATVIA  ((SRM_HSR_Code_S42_PULKOVO)(6))
  #define SRM_HSRCODS42PULKOVO_POLAND_3  ((SRM_HSR_Code_S42_PULKOVO)(7))
  #define SRM_HSRCODS42PULKOVO_POLAND_7  ((SRM_HSR_Code_S42_PULKOVO)(8))
  #define SRM_HSRCODS42PULKOVO_ROMANIA  ((SRM_HSR_Code_S42_PULKOVO)(9))
  #define SRM_HSRCODS42PULKOVO_ROMANIA_G  ((SRM_HSR_Code_S42_PULKOVO)(10))
typedef SRM_Integer SRM_HSR_Code_SANTO_DOS_1965;
  #define SRM_HSRCODSANTODOS1965_ESPIRITO_SANTO_ISLAND  ((SRM_HSR_Code_SANTO_DOS_1965)(1))
typedef SRM_Integer SRM_HSR_Code_SAO_BRAZ_1987;
    

#define SRM_HSRCODSAOBRAZ1987_SAO_MIGUEL_SANTA_MARIA_ISLANDS

((SRM_HSR_Code_SAO_BRAZ_1987)(1))
typedef SRM_Integer SRM_HSR_Code_SAPPER_HILL_1943;
  #define SRM_HSRCODSAP1943_E_FALKLAND_ISLANDS_3  ((SRM_HSR_Code_SAPPER_HILL_1943)(1))
  #define SRM_HSRCODSAP1943_E_FALKLAND_ISLANDS_ADJ2000_7  ((SRM_HSR_Code_SAPPER_HILL_1943)(2))
typedef SRM_Integer SRM_HSR_Code_SATURN_1988;
  #define SRM_HSRCODSATURN1988_IDENTITY  ((SRM_HSR_Code_SATURN_1988)(1))
typedef SRM_Integer SRM_HSR_Code_SATURN_MAGNETIC_1993;
  #define SRM_HSRCODSATURNMAG1993_VOYAGER  ((SRM_HSR_Code_SATURN_MAGNETIC_1993)(1))
typedef SRM_Integer SRM_HSR_Code_SCHWARZECK_1991;
  #define SRM_HSRCODSCHW1991_NAMIBIA  ((SRM_HSR_Code_SCHWARZECK_1991)(1))
typedef SRM_Integer SRM_HSR_Code_SELVAGEM_GRANDE_1938;
  #define SRM_HSRCODSELVGR1938_SALVAGE_ISLANDS  ((SRM_HSR_Code_SELVAGEM_GRANDE_1938)(1))
typedef SRM_Integer SRM_HSR_Code_SIERRA_LEONE_1960;
  #define SRM_HSRCODSIERLEON1960_SIERRA_LEONE  ((SRM_HSR_Code_SIERRA_LEONE_1960)(1))
typedef SRM_Integer SRM_HSR_Code_SIRGAS_2000;
  #define SRM_HSRCODSIRGAS2000_IDENTITY_BY_MEASUREMENT  ((SRM_HSR_Code_SIRGAS_2000)(1))
typedef SRM_Integer SRM_HSR_Code_SOUTHEAST_1943;
  #define SRM_HSRCODSE1943_SEYCHELLES_ISLANDS  ((SRM_HSR_Code_SOUTHEAST_1943)(1))
typedef SRM_Integer SRM_HSR_Code_SOVIET_GEODETIC_1985;
  #define SRM_HSRCODSOVG1985_RUSSIA  ((SRM_HSR_Code_SOVIET_GEODETIC_1985)(1))
typedef SRM_Integer SRM_HSR_Code_SOVIET_GEODETIC_1990;
  #define SRM_HSRCODSOVG1990_RUSSIA  ((SRM_HSR_Code_SOVIET_GEODETIC_1990)(1))
typedef SRM_Integer SRM_HSR_Code_SUN_1992;
  #define SRM_HSRCODSUN1992_IDENTITY  ((SRM_HSR_Code_SUN_1992)(1))
typedef SRM_Integer SRM_HSR_Code_TANANARIVE_OBS_1925;
  #define SRM_HSRCODTANAN1925_MADAGASCAR_3  ((SRM_HSR_Code_TANANARIVE_OBS_1925)(1))
  #define SRM_HSRCODTANAN1925_MADAGASCAR_7  ((SRM_HSR_Code_TANANARIVE_OBS_1925)(2))
typedef SRM_Integer SRM_HSR_Code_TANANARIVE_OBS_1925_PM_PARIS;
  #define SRM_HSRCODTANAN1925PMPARIS_MADAGASCAR_3  ((SRM_HSR_Code_TANANARIVE_OBS_1925_PM_PARIS)(1))
  #define SRM_HSRCODTANAN1925PMPARIS_MADAGASCAR_7  ((SRM_HSR_Code_TANANARIVE_OBS_1925_PM_PARIS)(2))
typedef SRM_Integer SRM_HSR_Code_TELESTO_1988;
  #define SRM_HSRCODTELESTO1988_IDENTITY  ((SRM_HSR_Code_TELESTO_1988)(1))
typedef SRM_Integer SRM_HSR_Code_TERN_1961;
  #define SRM_HSRCODTERN1961_TERN_ISLAND  ((SRM_HSR_Code_TERN_1961)(1))
typedef SRM_Integer SRM_HSR_Code_TETHYS_1991;
  #define SRM_HSRCODTETHYS1991_IDENTITY  ((SRM_HSR_Code_TETHYS_1991)(1))
typedef SRM_Integer SRM_HSR_Code_THALASSA_1991;
  #define SRM_HSRCODTHALASSA1991_IDENTITY  ((SRM_HSR_Code_THALASSA_1991)(1))
typedef SRM_Integer SRM_HSR_Code_THEBE_2000;
  #define SRM_HSRCODTHEBE2000_IDENTITY  ((SRM_HSR_Code_THEBE_2000)(1))
typedef SRM_Integer SRM_HSR_Code_TIMBALAI_BESSEL_1948;
  #define SRM_HSRCODTIMBB1948_BRUNEI_E_MALAYSIA_7  ((SRM_HSR_Code_TIMBALAI_BESSEL_1948)(1))
typedef SRM_Integer SRM_HSR_Code_TIMBALAI_BESSEL_ADJ_1968;
  #define SRM_HSRCODTIMBBA1968_BRUNEI_E_MALAYSIA_7  ((SRM_HSR_Code_TIMBALAI_BESSEL_ADJ_1968)(1))
typedef SRM_Integer SRM_HSR_Code_TIMBALAI_EVEREST_1948;
  #define SRM_HSRCODTIMBEV1948_BRUNEI_E_MALAYSIA_3  ((SRM_HSR_Code_TIMBALAI_EVEREST_1948)(1))
  #define SRM_HSRCODTIMBEV1948_BRUNEI_E_MALAYSIA_7  ((SRM_HSR_Code_TIMBALAI_EVEREST_1948)(2))
typedef SRM_Integer SRM_HSR_Code_TIMBALAI_EVEREST_ADJ_1968;
  #define SRM_HSRCODTIMBEVA1968_BRUNEI_E_MALAYSIA_7  ((SRM_HSR_Code_TIMBALAI_EVEREST_ADJ_1968)(1))
typedef SRM_Integer SRM_HSR_Code_TITAN_1982;
  #define SRM_HSRCODTITAN1982_IDENTITY  ((SRM_HSR_Code_TITAN_1982)(1))
typedef SRM_Integer SRM_HSR_Code_TITANIA_1988;
  #define SRM_HSRCODTITANIA1988_IDENTITY  ((SRM_HSR_Code_TITANIA_1988)(1))
typedef SRM_Integer SRM_HSR_Code_TOKYO_1991;
  #define SRM_HSRCODTOKYO1991_JAPAN  ((SRM_HSR_Code_TOKYO_1991)(1))
  #define SRM_HSRCODTOKYO1991_MEAN_SOLUTION  ((SRM_HSR_Code_TOKYO_1991)(2))
  #define SRM_HSRCODTOKYO1991_OKINAWA  ((SRM_HSR_Code_TOKYO_1991)(3))
  #define SRM_HSRCODTOKYO1991_SOUTH_KOREA_1991  ((SRM_HSR_Code_TOKYO_1991)(4))
  #define SRM_HSRCODTOKYO1991_SOUTH_KOREA_1997  ((SRM_HSR_Code_TOKYO_1991)(5))
typedef SRM_Integer SRM_HSR_Code_TRISTAN_1968;
  #define SRM_HSRCODTRISTAN1968_TRISTAN_DA_CUNHA  ((SRM_HSR_Code_TRISTAN_1968)(1))
typedef SRM_Integer SRM_HSR_Code_TRITON_1991;
  #define SRM_HSRCODTRITON1991_IDENTITY  ((SRM_HSR_Code_TRITON_1991)(1))
typedef SRM_Integer SRM_HSR_Code_UMBRIEL_1988;
  #define SRM_HSRCODUMBRIEL1988_IDENTITY  ((SRM_HSR_Code_UMBRIEL_1988)(1))
typedef SRM_Integer SRM_HSR_Code_URANUS_1988;
  #define SRM_HSRCODURANUS1988_IDENTITY  ((SRM_HSR_Code_URANUS_1988)(1))
typedef SRM_Integer SRM_HSR_Code_URANUS_MAGNETIC_1993;
  #define SRM_HSRCODURANUSMAG1993_VOYAGER  ((SRM_HSR_Code_URANUS_MAGNETIC_1993)(1))
typedef SRM_Integer SRM_HSR_Code_VENUS_1991;
  #define SRM_HSRCODVENUS1991_IDENTITY  ((SRM_HSR_Code_VENUS_1991)(1))
typedef SRM_Integer SRM_HSR_Code_VITI_LEVU_1916;
  #define SRM_HSRCODVITLEV1916_VITI_LEVU_ISLANDS  ((SRM_HSR_Code_VITI_LEVU_1916)(1))
typedef SRM_Integer SRM_HSR_Code_VOIROL_1874;
  #define SRM_HSRCODVOIR1874_ALGERIA  ((SRM_HSR_Code_VOIROL_1874)(1))
typedef SRM_Integer SRM_HSR_Code_VOIROL_1874_PM_PARIS;
  #define SRM_HSRCODVOIR1874PMPARIS_ALGERIA  ((SRM_HSR_Code_VOIROL_1874_PM_PARIS)(1))
typedef SRM_Integer SRM_HSR_Code_VOIROL_1960_PM_PARIS;
  #define SRM_HSRCODVOIR1960PMPARIS_ALGERIA  ((SRM_HSR_Code_VOIROL_1960_PM_PARIS)(1))
typedef SRM_Integer SRM_HSR_Code_WAKE_1952;
  #define SRM_HSRCODWAKE1952_WAKE_ATOLL  ((SRM_HSR_Code_WAKE_1952)(1))
typedef SRM_Integer SRM_HSR_Code_WAKE_ENIWETOK_1960;
  #define SRM_HSRCODWAKENI1960_MARSHALL_ISLANDS  ((SRM_HSR_Code_WAKE_ENIWETOK_1960)(1))
typedef SRM_Integer SRM_HSR_Code_WGS_1972;
  #define SRM_HSRCODWGS1972_GLOBAL  ((SRM_HSR_Code_WGS_1972)(1))
typedef SRM_Integer SRM_HSR_Code_WGS_1984;
  #define SRM_HSRCODWGS1984_IDENTITY  ((SRM_HSR_Code_WGS_1984)(1))
typedef SRM_Integer SRM_HSR_Code_YACARE_1987;
  #define SRM_HSRCODYAC1987_URUGUAY  ((SRM_HSR_Code_YACARE_1987)(1))
typedef SRM_Integer SRM_HSR_Code_ZANDERIJ_1987;
  #define SRM_HSRCODZAND1987_SURINAME  ((SRM_HSR_Code_ZANDERIJ_1987)(1))
typedef SRM_Integer SRM_ORM_Code;
  #define SRM_ORMCOD_ABSTRACT_2D  ((SRM_ORM_Code)(1))
  #define SRM_ORMCOD_ABSTRACT_3D  ((SRM_ORM_Code)(2))
  #define SRM_ORMCOD_ADINDAN_1991  ((SRM_ORM_Code)(3))
  #define SRM_ORMCOD_ADRASTEA_2000  ((SRM_ORM_Code)(4))
  #define SRM_ORMCOD_AFGOOYE_1987  ((SRM_ORM_Code)(5))
  #define SRM_ORMCOD_AIN_EL_ABD_1970  ((SRM_ORM_Code)(6))
  #define SRM_ORMCOD_AMALTHEA_2000  ((SRM_ORM_Code)(7))
  #define SRM_ORMCOD_AMERICAN_SAMOA_1962  ((SRM_ORM_Code)(8))
  #define SRM_ORMCOD_AMERSFOORT_1885_1903  ((SRM_ORM_Code)(9))
  #define SRM_ORMCOD_ANNA_1_1965  ((SRM_ORM_Code)(10))
  #define SRM_ORMCOD_ANTIGUA_1943  ((SRM_ORM_Code)(11))
  #define SRM_ORMCOD_ARC_1950  ((SRM_ORM_Code)(12))
  #define SRM_ORMCOD_ARC_1960  ((SRM_ORM_Code)(13))
  #define SRM_ORMCOD_ARIEL_1988  ((SRM_ORM_Code)(14))
  #define SRM_ORMCOD_ASCENSION_1958  ((SRM_ORM_Code)(15))
  #define SRM_ORMCOD_ATLAS_1988  ((SRM_ORM_Code)(16))
  #define SRM_ORMCOD_AUSTRALIAN_GEOD_1966  ((SRM_ORM_Code)(17))
  #define SRM_ORMCOD_AUSTRALIAN_GEOD_1984  ((SRM_ORM_Code)(18))
  #define SRM_ORMCOD_AYABELLE_LIGHTHOUSE_1991  ((SRM_ORM_Code)(19))
  #define SRM_ORMCOD_BEACON_E_1945  ((SRM_ORM_Code)(20))
  #define SRM_ORMCOD_BELGIUM_1972  ((SRM_ORM_Code)(21))
  #define SRM_ORMCOD_BELINDA_1988  ((SRM_ORM_Code)(22))
  #define SRM_ORMCOD_BELLEVUE_IGN_1987  ((SRM_ORM_Code)(23))
  #define SRM_ORMCOD_BERMUDA_1957  ((SRM_ORM_Code)(24))
  #define SRM_ORMCOD_BERN_1898  ((SRM_ORM_Code)(25))
  #define SRM_ORMCOD_BERN_1898_PM_BERN  ((SRM_ORM_Code)(26))
  #define SRM_ORMCOD_BIANCA_1988  ((SRM_ORM_Code)(27))
  #define SRM_ORMCOD_BISSAU_1991  ((SRM_ORM_Code)(28))
  #define SRM_ORMCOD_BOGOTA_OBS_1987  ((SRM_ORM_Code)(29))
  #define SRM_ORMCOD_BOGOTA_OBS_1987_PM_BOGOTA  ((SRM_ORM_Code)(30))
  #define SRM_ORMCOD_BUKIT_RIMPAH_1987  ((SRM_ORM_Code)(31))
  #define SRM_ORMCOD_CALLISTO_2000  ((SRM_ORM_Code)(32))
  #define SRM_ORMCOD_CALYPSO_1988  ((SRM_ORM_Code)(33))
  #define SRM_ORMCOD_CAMP_AREA_1987  ((SRM_ORM_Code)(34))
  #define SRM_ORMCOD_CAMPO_INCHAUSPE_1969  ((SRM_ORM_Code)(35))
  #define SRM_ORMCOD_CANTON_1966  ((SRM_ORM_Code)(36))
  #define SRM_ORMCOD_CAPE_1987  ((SRM_ORM_Code)(37))
  #define SRM_ORMCOD_CAPE_CANAVERAL_1991  ((SRM_ORM_Code)(38))
  #define SRM_ORMCOD_CARTHAGE_1987  ((SRM_ORM_Code)(39))
  #define SRM_ORMCOD_CHARON_1991  ((SRM_ORM_Code)(40))
  #define SRM_ORMCOD_CHATHAM_1971  ((SRM_ORM_Code)(41))
  #define SRM_ORMCOD_CHUA_1987  ((SRM_ORM_Code)(42))
  #define SRM_ORMCOD_COAMPS_1998  ((SRM_ORM_Code)(43))
  #define SRM_ORMCOD_CORDELIA_1988  ((SRM_ORM_Code)(44))
  #define SRM_ORMCOD_CORREGO_ALEGRE_1987  ((SRM_ORM_Code)(45))
  #define SRM_ORMCOD_CRESSIDA_1988  ((SRM_ORM_Code)(46))
  #define SRM_ORMCOD_CYPRUS_1935  ((SRM_ORM_Code)(47))
  #define SRM_ORMCOD_DABOLA_1991  ((SRM_ORM_Code)(48))
  #define SRM_ORMCOD_DECEPTION_1993  ((SRM_ORM_Code)(49))
  #define SRM_ORMCOD_DEIMOS_1988  ((SRM_ORM_Code)(50))
  #define SRM_ORMCOD_DESDEMONA_1988  ((SRM_ORM_Code)(51))
  #define SRM_ORMCOD_DESPINA_1991  ((SRM_ORM_Code)(52))
  #define SRM_ORMCOD_DIONE_1982  ((SRM_ORM_Code)(53))
  #define SRM_ORMCOD_DJAKARTA_1987  ((SRM_ORM_Code)(54))
  #define SRM_ORMCOD_DJAKARTA_1987_PM_DJAKARTA  ((SRM_ORM_Code)(55))
  #define SRM_ORMCOD_DOS_1968  ((SRM_ORM_Code)(56))
  #define SRM_ORMCOD_DOS_71_4_1987  ((SRM_ORM_Code)(57))
  #define SRM_ORMCOD_EARTH_INERTIAL_ARIES_1950  ((SRM_ORM_Code)(58))
  #define SRM_ORMCOD_EARTH_INERTIAL_ARIES_TRUE_OF_DATE  ((SRM_ORM_Code)(59))
  #define SRM_ORMCOD_EARTH_INERTIAL_J2000r0  ((SRM_ORM_Code)(60))
  #define SRM_ORMCOD_EARTH_SOLAR_ECLIPTIC  ((SRM_ORM_Code)(61))
  #define SRM_ORMCOD_EARTH_SOLAR_EQUATORIAL  ((SRM_ORM_Code)(62))
  #define SRM_ORMCOD_EARTH_SOLAR_MAG_DIPOLE  ((SRM_ORM_Code)(63))
  #define SRM_ORMCOD_EARTH_SOLAR_MAGNETOSPHERIC  ((SRM_ORM_Code)(64))
  #define SRM_ORMCOD_EASTER_1967  ((SRM_ORM_Code)(65))
  #define SRM_ORMCOD_ENCELADUS_1994  ((SRM_ORM_Code)(66))
  #define SRM_ORMCOD_EPIMETHEUS_1988  ((SRM_ORM_Code)(67))
  #define SRM_ORMCOD_EROS_2000  ((SRM_ORM_Code)(68))
  #define SRM_ORMCOD_ESTONIA_1937  ((SRM_ORM_Code)(69))
  #define SRM_ORMCOD_ETRS_1989  ((SRM_ORM_Code)(70))
  #define SRM_ORMCOD_EUROPA_2000  ((SRM_ORM_Code)(71))
  #define SRM_ORMCOD_EUROPE_1950  ((SRM_ORM_Code)(72))
  #define SRM_ORMCOD_EUROPE_1973  ((SRM_ORM_Code)(73))
  #define SRM_ORMCOD_FAHUD_1987  ((SRM_ORM_Code)(74))
  #define SRM_ORMCOD_FORT_THOMAS_1955  ((SRM_ORM_Code)(75))
  #define SRM_ORMCOD_GALATEA_1991  ((SRM_ORM_Code)(76))
  #define SRM_ORMCOD_GAN_1970  ((SRM_ORM_Code)(77))
  #define SRM_ORMCOD_GANYMEDE_2000  ((SRM_ORM_Code)(78))
  #define SRM_ORMCOD_GANYMEDE_MAGNETIC_2000  ((SRM_ORM_Code)(79))
  #define SRM_ORMCOD_GASPRA_1991  ((SRM_ORM_Code)(80))
  #define SRM_ORMCOD_GDA_1994  ((SRM_ORM_Code)(81))
  #define SRM_ORMCOD_GEODETIC_DATUM_1949  ((SRM_ORM_Code)(82))
  #define SRM_ORMCOD_GEOMAGNETIC_1945  ((SRM_ORM_Code)(83))
  #define SRM_ORMCOD_GEOMAGNETIC_1950  ((SRM_ORM_Code)(84))
  #define SRM_ORMCOD_GEOMAGNETIC_1955  ((SRM_ORM_Code)(85))
  #define SRM_ORMCOD_GEOMAGNETIC_1960  ((SRM_ORM_Code)(86))
  #define SRM_ORMCOD_GEOMAGNETIC_1965  ((SRM_ORM_Code)(87))
  #define SRM_ORMCOD_GEOMAGNETIC_1970  ((SRM_ORM_Code)(88))
  #define SRM_ORMCOD_GEOMAGNETIC_1975  ((SRM_ORM_Code)(89))
  #define SRM_ORMCOD_GEOMAGNETIC_1980  ((SRM_ORM_Code)(90))
  #define SRM_ORMCOD_GEOMAGNETIC_1985  ((SRM_ORM_Code)(91))
  #define SRM_ORMCOD_GEOMAGNETIC_1990  ((SRM_ORM_Code)(92))
  #define SRM_ORMCOD_GEOMAGNETIC_1995  ((SRM_ORM_Code)(93))
  #define SRM_ORMCOD_GEOMAGNETIC_2000  ((SRM_ORM_Code)(94))
  #define SRM_ORMCOD_GGRS_1987  ((SRM_ORM_Code)(95))
  #define SRM_ORMCOD_GRACIOSA_BASE_SW_1948  ((SRM_ORM_Code)(96))
  #define SRM_ORMCOD_GUAM_1963  ((SRM_ORM_Code)(97))
  #define SRM_ORMCOD_GUNONG_SEGARA_1987  ((SRM_ORM_Code)(98))
  #define SRM_ORMCOD_GUX_1_1987  ((SRM_ORM_Code)(99))
  #define SRM_ORMCOD_HARTEBEESTHOCK_1994  ((SRM_ORM_Code)(100))
  #define SRM_ORMCOD_HELENE_1992  ((SRM_ORM_Code)(101))
  #define SRM_ORMCOD_HELIO_ARIES_ECLIPTIC_J2000r0  ((SRM_ORM_Code)(102))
  #define SRM_ORMCOD_HELIO_ARIES_ECLIPTIC_TRUE_OF_DATE  ((SRM_ORM_Code)(103))
  #define SRM_ORMCOD_HELIO_EARTH_ECLIPTIC  ((SRM_ORM_Code)(104))
  #define SRM_ORMCOD_HELIO_EARTH_EQUATORIAL  ((SRM_ORM_Code)(105))
  #define SRM_ORMCOD_HERAT_NORTH_1987  ((SRM_ORM_Code)(106))
  #define SRM_ORMCOD_HERMANNSKOGEL_1871  ((SRM_ORM_Code)(107))
  #define SRM_ORMCOD_HJORSEY_1955  ((SRM_ORM_Code)(108))
  #define SRM_ORMCOD_HONG_KONG_1963  ((SRM_ORM_Code)(109))
  #define SRM_ORMCOD_HONG_KONG_1980  ((SRM_ORM_Code)(110))
  #define SRM_ORMCOD_HU_TZU_SHAN_1991  ((SRM_ORM_Code)(111))
  #define SRM_ORMCOD_HUNGARIAN_1972  ((SRM_ORM_Code)(112))
  #define SRM_ORMCOD_IAPETUS_1988  ((SRM_ORM_Code)(113))
  #define SRM_ORMCOD_IDA_1991  ((SRM_ORM_Code)(114))
  #define SRM_ORMCOD_INDIAN_1916  ((SRM_ORM_Code)(115))
  #define SRM_ORMCOD_INDIAN_1954  ((SRM_ORM_Code)(116))
  #define SRM_ORMCOD_INDIAN_1956  ((SRM_ORM_Code)(117))
  #define SRM_ORMCOD_INDIAN_1960  ((SRM_ORM_Code)(118))
  #define SRM_ORMCOD_INDIAN_1962  ((SRM_ORM_Code)(119))
  #define SRM_ORMCOD_INDIAN_1975  ((SRM_ORM_Code)(120))
  #define SRM_ORMCOD_INDONESIAN_1974  ((SRM_ORM_Code)(121))
  #define SRM_ORMCOD_IO_2000  ((SRM_ORM_Code)(122))
  #define SRM_ORMCOD_IRAQ_KUWAIT_BNDRY_1992  ((SRM_ORM_Code)(123))
  #define SRM_ORMCOD_IRELAND_1965  ((SRM_ORM_Code)(124))
  #define SRM_ORMCOD_ISTS_061_1968  ((SRM_ORM_Code)(125))
  #define SRM_ORMCOD_ISTS_073_1969  ((SRM_ORM_Code)(126))
  #define SRM_ORMCOD_JANUS_1988  ((SRM_ORM_Code)(127))
  #define SRM_ORMCOD_JGD_2000  ((SRM_ORM_Code)(128))
  #define SRM_ORMCOD_JOHNSTON_1961  ((SRM_ORM_Code)(129))
  #define SRM_ORMCOD_JULIET_1988  ((SRM_ORM_Code)(130))
  #define SRM_ORMCOD_JUPITER_1988  ((SRM_ORM_Code)(131))
  #define SRM_ORMCOD_JUPITER_INERTIAL  ((SRM_ORM_Code)(132))
  #define SRM_ORMCOD_JUPITER_MAGNETIC_1993  ((SRM_ORM_Code)(133))
  #define SRM_ORMCOD_JUPITER_SOLAR_ECLIPTIC  ((SRM_ORM_Code)(134))
  #define SRM_ORMCOD_JUPITER_SOLAR_EQUATORIAL  ((SRM_ORM_Code)(135))
  #define SRM_ORMCOD_JUPITER_SOLAR_MAG_DIPOLE  ((SRM_ORM_Code)(136))
  #define SRM_ORMCOD_JUPITER_SOLAR_MAG_ECLIPTIC  ((SRM_ORM_Code)(137))
  #define SRM_ORMCOD_KANDAWALA_1987  ((SRM_ORM_Code)(138))
  #define SRM_ORMCOD_KERGUELEN_1949  ((SRM_ORM_Code)(139))
  #define SRM_ORMCOD_KERTAU_1948  ((SRM_ORM_Code)(140))
  #define SRM_ORMCOD_KOREAN_GEODETIC_1995  ((SRM_ORM_Code)(141))
  #define SRM_ORMCOD_KUSAIE_1951  ((SRM_ORM_Code)(142))
  #define SRM_ORMCOD_LANDESVERMESSUNG_1995  ((SRM_ORM_Code)(143))
  #define SRM_ORMCOD_LARISSA_1991  ((SRM_ORM_Code)(144))
  #define SRM_ORMCOD_LC5_1961  ((SRM_ORM_Code)(145))
  #define SRM_ORMCOD_LEIGON_1991  ((SRM_ORM_Code)(146))
  #define SRM_ORMCOD_LIBERIA_1964  ((SRM_ORM_Code)(147))
  #define SRM_ORMCOD_LISBON_D73  ((SRM_ORM_Code)(148))
  #define SRM_ORMCOD_LKS_1994  ((SRM_ORM_Code)(149))
  #define SRM_ORMCOD_LUZON_1987  ((SRM_ORM_Code)(150))
  #define SRM_ORMCOD_M_PORALOKO_1991  ((SRM_ORM_Code)(151))
  #define SRM_ORMCOD_MAHE_1971  ((SRM_ORM_Code)(152))
  #define SRM_ORMCOD_MARCUS_STATION_1952  ((SRM_ORM_Code)(153))
  #define SRM_ORMCOD_MARS_2000  ((SRM_ORM_Code)(154))
  #define SRM_ORMCOD_MARS_INERTIAL  ((SRM_ORM_Code)(155))
  #define SRM_ORMCOD_MARS_SPHERE_2000  ((SRM_ORM_Code)(156))
  #define SRM_ORMCOD_MASS_1999  ((SRM_ORM_Code)(157))
  #define SRM_ORMCOD_MASSAWA_1987  ((SRM_ORM_Code)(158))
  #define SRM_ORMCOD_MERCHICH_1987  ((SRM_ORM_Code)(159))
  #define SRM_ORMCOD_MERCURY_1988  ((SRM_ORM_Code)(160))
  #define SRM_ORMCOD_MERCURY_INERTIAL  ((SRM_ORM_Code)(161))
  #define SRM_ORMCOD_METIS_2000  ((SRM_ORM_Code)(162))
  #define SRM_ORMCOD_MIDWAY_1961  ((SRM_ORM_Code)(163))
  #define SRM_ORMCOD_MIMAS_1994  ((SRM_ORM_Code)(164))
  #define SRM_ORMCOD_MINNA_1991  ((SRM_ORM_Code)(165))
  #define SRM_ORMCOD_MIRANDA_1988  ((SRM_ORM_Code)(166))
  #define SRM_ORMCOD_MM5_1997  ((SRM_ORM_Code)(167))
  #define SRM_ORMCOD_MODTRAN_MIDLATITUDE_N_1989  ((SRM_ORM_Code)(168))
  #define SRM_ORMCOD_MODTRAN_MIDLATITUTDE_S_1989  ((SRM_ORM_Code)(169))
  #define SRM_ORMCOD_MODTRAN_SUBARCTIC_N_1989  ((SRM_ORM_Code)(170))
  #define SRM_ORMCOD_MODTRAN_SUBARCTIC_S_1989  ((SRM_ORM_Code)(171))
  #define SRM_ORMCOD_MODTRAN_TROPICAL_1989  ((SRM_ORM_Code)(172))
  #define SRM_ORMCOD_MONTSERRAT_1958  ((SRM_ORM_Code)(173))
  #define SRM_ORMCOD_MOON_1991  ((SRM_ORM_Code)(174))
  #define SRM_ORMCOD_MULTIGEN_FLAT_EARTH_1989  ((SRM_ORM_Code)(175))
  #define SRM_ORMCOD_N_AM_1927  ((SRM_ORM_Code)(176))
  #define SRM_ORMCOD_N_AM_1983  ((SRM_ORM_Code)(177))
  #define SRM_ORMCOD_N_SAHARA_1959  ((SRM_ORM_Code)(178))
  #define SRM_ORMCOD_NAHRWAN_1987  ((SRM_ORM_Code)(179))
  #define SRM_ORMCOD_NAIAD_1991  ((SRM_ORM_Code)(180))
  #define SRM_ORMCOD_NAPARIMA_1991  ((SRM_ORM_Code)(181))
  #define SRM_ORMCOD_NEPTUNE_1991  ((SRM_ORM_Code)(182))
  #define SRM_ORMCOD_NEPTUNE_INERTIAL  ((SRM_ORM_Code)(183))
  #define SRM_ORMCOD_NEPTUNE_MAGNETIC_1993  ((SRM_ORM_Code)(184))
  #define SRM_ORMCOD_NOGAPS_1988  ((SRM_ORM_Code)(185))
  #define SRM_ORMCOD_NTF_1896  ((SRM_ORM_Code)(186))
  #define SRM_ORMCOD_NTF_1896_PM_PARIS  ((SRM_ORM_Code)(187))
  #define SRM_ORMCOD_OBERON_1988  ((SRM_ORM_Code)(188))
  #define SRM_ORMCOD_OBSERV_METEORO_1939  ((SRM_ORM_Code)(189))
  #define SRM_ORMCOD_OLD_EGYPTIAN_1907  ((SRM_ORM_Code)(190))
  #define SRM_ORMCOD_OLD_HAWAIIAN_CLARKE_1987  ((SRM_ORM_Code)(191))
  #define SRM_ORMCOD_OLD_HAWAIIAN_INT_1987  ((SRM_ORM_Code)(192))
  #define SRM_ORMCOD_OPHELIA_1988  ((SRM_ORM_Code)(193))
  #define SRM_ORMCOD_OSGB_1936  ((SRM_ORM_Code)(194))
  #define SRM_ORMCOD_PALESTINE_1928  ((SRM_ORM_Code)(195))
  #define SRM_ORMCOD_PAN_1991  ((SRM_ORM_Code)(196))
  #define SRM_ORMCOD_PANDORA_1988  ((SRM_ORM_Code)(197))
  #define SRM_ORMCOD_PHOBOS_1988  ((SRM_ORM_Code)(198))
  #define SRM_ORMCOD_PHOEBE_1988  ((SRM_ORM_Code)(199))
  #define SRM_ORMCOD_PICO_DE_LAS_NIEVES_1987  ((SRM_ORM_Code)(200))
  #define SRM_ORMCOD_PITCAIRN_1967  ((SRM_ORM_Code)(201))
  #define SRM_ORMCOD_PLUTO_1994  ((SRM_ORM_Code)(202))
  #define SRM_ORMCOD_PLUTO_INERTIAL  ((SRM_ORM_Code)(203))
  #define SRM_ORMCOD_POINT_58_1991  ((SRM_ORM_Code)(204))
  #define SRM_ORMCOD_POINTE_NOIRE_1948  ((SRM_ORM_Code)(205))
  #define SRM_ORMCOD_PORTIA_1988  ((SRM_ORM_Code)(206))
  #define SRM_ORMCOD_PORTO_SANTO_1936  ((SRM_ORM_Code)(207))
  #define SRM_ORMCOD_PROMETHEUS_1988  ((SRM_ORM_Code)(208))
  #define SRM_ORMCOD_PROTEUS_1991  ((SRM_ORM_Code)(209))
  #define SRM_ORMCOD_PROV_S_AM_1956  ((SRM_ORM_Code)(210))
  #define SRM_ORMCOD_PROV_S_CHILEAN_1963  ((SRM_ORM_Code)(211))
  #define SRM_ORMCOD_PUCK_1988  ((SRM_ORM_Code)(212))
  #define SRM_ORMCOD_PUERTO_RICO_1987  ((SRM_ORM_Code)(213))
  #define SRM_ORMCOD_PULKOVO_1942  ((SRM_ORM_Code)(214))
  #define SRM_ORMCOD_QATAR_NATIONAL_1974  ((SRM_ORM_Code)(215))
  #define SRM_ORMCOD_QATAR_NATIONAL_1995  ((SRM_ORM_Code)(216))
  #define SRM_ORMCOD_QORNOQ_1987  ((SRM_ORM_Code)(217))
  #define SRM_ORMCOD_REUNION_1947  ((SRM_ORM_Code)(218))
  #define SRM_ORMCOD_RGF_1993  ((SRM_ORM_Code)(219))
  #define SRM_ORMCOD_RHEA_1988  ((SRM_ORM_Code)(220))
  #define SRM_ORMCOD_ROME_1940  ((SRM_ORM_Code)(221))
  #define SRM_ORMCOD_ROME_1940_PM_ROME  ((SRM_ORM_Code)(222))
  #define SRM_ORMCOD_ROSALIND_1988  ((SRM_ORM_Code)(223))
  #define SRM_ORMCOD_RT_1990  ((SRM_ORM_Code)(224))
  #define SRM_ORMCOD_RT_1990_PM_STOCKHOLM  ((SRM_ORM_Code)(225))
  #define SRM_ORMCOD_S_AM_1969  ((SRM_ORM_Code)(226))
  #define SRM_ORMCOD_S_AM_1987  ((SRM_ORM_Code)(227))
  #define SRM_ORMCOD_S_JTSK_1993  ((SRM_ORM_Code)(228))
  #define SRM_ORMCOD_S42_PULKOVO  ((SRM_ORM_Code)(229))
  #define SRM_ORMCOD_SANTO_DOS_1965  ((SRM_ORM_Code)(230))
  #define SRM_ORMCOD_SAO_BRAZ_1987  ((SRM_ORM_Code)(231))
  #define SRM_ORMCOD_SAPPER_HILL_1943  ((SRM_ORM_Code)(232))
  #define SRM_ORMCOD_SATURN_1988  ((SRM_ORM_Code)(233))
  #define SRM_ORMCOD_SATURN_INERTIAL  ((SRM_ORM_Code)(234))
  #define SRM_ORMCOD_SATURN_MAGNETIC_1993  ((SRM_ORM_Code)(235))
  #define SRM_ORMCOD_SCHWARZECK_1991  ((SRM_ORM_Code)(236))
  #define SRM_ORMCOD_SELVAGEM_GRANDE_1938  ((SRM_ORM_Code)(237))
  #define SRM_ORMCOD_SIERRA_LEONE_1960  ((SRM_ORM_Code)(238))
  #define SRM_ORMCOD_SIRGAS_2000  ((SRM_ORM_Code)(239))
  #define SRM_ORMCOD_SOUTHEAST_1943  ((SRM_ORM_Code)(240))
  #define SRM_ORMCOD_SOVIET_GEODETIC_1985  ((SRM_ORM_Code)(241))
  #define SRM_ORMCOD_SOVIET_GEODETIC_1990  ((SRM_ORM_Code)(242))
  #define SRM_ORMCOD_SUN_1992  ((SRM_ORM_Code)(243))
  #define SRM_ORMCOD_TANANARIVE_OBS_1925  ((SRM_ORM_Code)(244))
  #define SRM_ORMCOD_TANANARIVE_OBS_1925_PM_PARIS  ((SRM_ORM_Code)(245))
  #define SRM_ORMCOD_TELESTO_1988  ((SRM_ORM_Code)(246))
  #define SRM_ORMCOD_TERN_1961  ((SRM_ORM_Code)(247))
  #define SRM_ORMCOD_TETHYS_1991  ((SRM_ORM_Code)(248))
  #define SRM_ORMCOD_THALASSA_1991  ((SRM_ORM_Code)(249))
  #define SRM_ORMCOD_THEBE_2000  ((SRM_ORM_Code)(250))
  #define SRM_ORMCOD_TIMBALAI_BESSEL_1948  ((SRM_ORM_Code)(251))
  #define SRM_ORMCOD_TIMBALAI_BESSEL_ADJ_1968  ((SRM_ORM_Code)(252))
  #define SRM_ORMCOD_TIMBALAI_EVEREST_1948  ((SRM_ORM_Code)(253))
  #define SRM_ORMCOD_TIMBALAI_EVEREST_ADJ_1968  ((SRM_ORM_Code)(254))
  #define SRM_ORMCOD_TITAN_1982  ((SRM_ORM_Code)(255))
  #define SRM_ORMCOD_TITANIA_1988  ((SRM_ORM_Code)(256))
  #define SRM_ORMCOD_TOKYO_1991  ((SRM_ORM_Code)(257))
  #define SRM_ORMCOD_TRISTAN_1968  ((SRM_ORM_Code)(258))
  #define SRM_ORMCOD_TRITON_1991  ((SRM_ORM_Code)(259))
  #define SRM_ORMCOD_UMBRIEL_1988  ((SRM_ORM_Code)(260))
  #define SRM_ORMCOD_URANUS_1988  ((SRM_ORM_Code)(261))
  #define SRM_ORMCOD_URANUS_INERTIAL  ((SRM_ORM_Code)(262))
  #define SRM_ORMCOD_URANUS_MAGNETIC_1993  ((SRM_ORM_Code)(263))
  #define SRM_ORMCOD_VENUS_1991  ((SRM_ORM_Code)(264))
  #define SRM_ORMCOD_VENUS_INERTIAL  ((SRM_ORM_Code)(265))
  #define SRM_ORMCOD_VITI_LEVU_1916  ((SRM_ORM_Code)(266))
  #define SRM_ORMCOD_VOIROL_1874  ((SRM_ORM_Code)(267))
  #define SRM_ORMCOD_VOIROL_1874_PM_PARIS  ((SRM_ORM_Code)(268))
  #define SRM_ORMCOD_VOIROL_1960  ((SRM_ORM_Code)(269))
  #define SRM_ORMCOD_VOIROL_1960_PM_PARIS  ((SRM_ORM_Code)(270))
  #define SRM_ORMCOD_WAKE_1952  ((SRM_ORM_Code)(271))
  #define SRM_ORMCOD_WAKE_ENIWETOK_1960  ((SRM_ORM_Code)(272))
  #define SRM_ORMCOD_WGS_1972  ((SRM_ORM_Code)(273))
  #define SRM_ORMCOD_WGS_1984  ((SRM_ORM_Code)(274))
  #define SRM_ORMCOD_YACARE_1987  ((SRM_ORM_Code)(275))
  #define SRM_ORMCOD_ZANDERIJ_1987  ((SRM_ORM_Code)(276))
typedef SRM_Integer SRM_ORMT_Code;
  #define SRM_ORMTCOD_BI_AXIS_ORIGIN_2D  ((SRM_ORMT_Code)(1))
  #define SRM_ORMTCOD_SPHERE  ((SRM_ORMT_Code)(2))
  #define SRM_ORMTCOD_OBLATE_ELLIPSOID  ((SRM_ORMT_Code)(3))
  #define SRM_ORMTCOD_PROLATE_ELLIPSOID  ((SRM_ORMT_Code)(4))
  #define SRM_ORMTCOD_TRI_AXIAL_ELLIPSOID  ((SRM_ORMT_Code)(5))
  #define SRM_ORMTCOD_BI_AXIS_ORIGIN_3D  ((SRM_ORMT_Code)(6))
  #define SRM_ORMTCOD_TRI_PLANE  ((SRM_ORMT_Code)(7))
typedef SRM_Integer SRM_SRF_Code;
  #define SRM_SRFCOD_BRITISH_NATIONAL_GRID  ((SRM_SRF_Code)(1))
  #define SRM_SRFCOD_DELAWARE_SPCS_1983  ((SRM_SRF_Code)(2))
  #define SRM_SRFCOD_GEOCENTRIC_DATUM_AUSTRALIA_1994  ((SRM_SRF_Code)(3))
  #define SRM_SRFCOD_GEOCENTRIC_WGS_1984  ((SRM_SRF_Code)(4))
  #define SRM_SRFCOD_GEODETIC_AUSTRALIA_1984  ((SRM_SRF_Code)(5))
  #define SRM_SRFCOD_GEODETIC_WGS_1984  ((SRM_SRF_Code)(6))
  #define SRM_SRFCOD_GEODETIC_EUROPE_1950_7  ((SRM_SRF_Code)(7))
  #define SRM_SRFCOD_GEODETIC_N_AMERICAN_1983  ((SRM_SRF_Code)(8))
  #define SRM_SRFCOD_IRISH_GRID_1965  ((SRM_SRF_Code)(9))
  #define SRM_SRFCOD_IRISH_TRANSVERSE_MERCATOR_1989  ((SRM_SRF_Code)(10))
  #define SRM_SRFCOD_LAMBERT_93  ((SRM_SRF_Code)(11))
  #define SRM_SRFCOD_LAMBERT_II_WIDE  ((SRM_SRF_Code)(12))
  #define SRM_SRFCOD_MARS_PLANETOCENTRIC_2000  ((SRM_SRF_Code)(13))
  #define SRM_SRFCOD_MARS_PLANETOGRAPHIC  ((SRM_SRF_Code)(14))
  #define SRM_SRFCOD_MARYLAND_SPCS_1983  ((SRM_SRF_Code)(15))
typedef SRM_Integer SRM_SRFS_Code;
  #define SRM_SRFSCOD_ALABAMA_SPCS  ((SRM_SRFS_Code)(1))
  #define SRM_SRFSCOD_GTRS_GLOBAL_COORDINATE_SYSTEM  ((SRM_SRFS_Code)(2))
  #define SRM_SRFSCOD_JAPAN_RECTANGULAR_PLANE_CS  ((SRM_SRFS_Code)(3))
  #define SRM_SRFSCOD_LAMBERT_NTF  ((SRM_SRFS_Code)(4))
  #define SRM_SRFSCOD_UNIVERSAL_POLAR_STEREOGRAPHIC  ((SRM_SRFS_Code)(5))
  #define SRM_SRFSCOD_UNIVERSAL_TRANSVERSE_MERCATOR  ((SRM_SRFS_Code)(6))
  #define SRM_SRFSCOD_WISCONSIN_SPCS  ((SRM_SRFS_Code)(7))
typedef SRM_Integer SRM_SRFS_Member_Code;
typedef SRM_Integer SRM_SRFT_Code;
  #define SRM_SRFTCOD_CELESTIOCENTRIC  ((SRM_SRFT_Code)(1))
  #define SRM_SRFTCOD_LOCAL_SPACE_RECTANGULAR_3D  ((SRM_SRFT_Code)(2))
  #define SRM_SRFTCOD_CELESTIODETIC  ((SRM_SRFT_Code)(3))
  #define SRM_SRFTCOD_PLANETODETIC  ((SRM_SRFT_Code)(4))
  #define SRM_SRFTCOD_LOCAL_TANGENT_SPACE_EUCLIDEAN  ((SRM_SRFT_Code)(5))
  #define SRM_SRFTCOD_LOCAL_TANGENT_SPACE_AZIMUTHAL_SPHERICAL  ((SRM_SRFT_Code)(6))
  #define SRM_SRFTCOD_LOCAL_TANGENT_SPACE_CYLINDRICAL  ((SRM_SRFT_Code)(7))
  #define SRM_SRFTCOD_CELESTIOMAGNETIC  ((SRM_SRFT_Code)(8))
  #define SRM_SRFTCOD_EQUATORIAL_INERTIAL  ((SRM_SRFT_Code)(9))
  #define SRM_SRFTCOD_SOLAR_ECLIPTIC  ((SRM_SRFT_Code)(10))
  #define SRM_SRFTCOD_SOLAR_EQUATORIAL  ((SRM_SRFT_Code)(11))
  #define SRM_SRFTCOD_SOLAR_MAGNETIC_ECLIPTIC  ((SRM_SRFT_Code)(12))
  #define SRM_SRFTCOD_SOLAR_MAGNETIC_DIPOLE  ((SRM_SRFT_Code)(13))
  #define SRM_SRFTCOD_HELIOSPHERIC_ARIES_ECLIPTIC  ((SRM_SRFT_Code)(14))
  #define SRM_SRFTCOD_HELIOSPHERIC_EARTH_ECLIPTIC  ((SRM_SRFT_Code)(15))
  #define SRM_SRFTCOD_HELIOSPHERIC_EARTH_EQUATORIAL  ((SRM_SRFT_Code)(16))
  #define SRM_SRFTCOD_MERCATOR  ((SRM_SRFT_Code)(17))
  #define SRM_SRFTCOD_OBLIQUE_MERCATOR_SPHERICAL  ((SRM_SRFT_Code)(18))
  #define SRM_SRFTCOD_TRANSVERSE_MERCATOR  ((SRM_SRFT_Code)(19))
  #define SRM_SRFTCOD_LAMBERT_CONFORMAL_CONIC  ((SRM_SRFT_Code)(20))
  #define SRM_SRFTCOD_POLAR_STEREOGRAPHIC  ((SRM_SRFT_Code)(21))
  #define SRM_SRFTCOD_EQUIDISTANT_CYLINDRICAL  ((SRM_SRFT_Code)(22))
  #define SRM_SRFTCOD_LOCAL_SPACE_RECTANGULAR_2D  ((SRM_SRFT_Code)(23))
  #define SRM_SRFTCOD_LOCAL_SPACE_AZIMUTHAL  ((SRM_SRFT_Code)(24))
  #define SRM_SRFTCOD_LOCAL_SPACE_POLAR  ((SRM_SRFT_Code)(25))
typedef SRM_Integer SRM_VOS_Code;
  #define SRM_VOSCOD_EGM96_GEOID  ((SRM_VOS_Code)(1))
  #define SRM_VOSCOD_IGLD_1955  ((SRM_VOS_Code)(2))
  #define SRM_VOSCOD_IGLD_1985  ((SRM_VOS_Code)(3))
  #define SRM_VOSCOD_MSL  ((SRM_VOS_Code)(4))
  #define SRM_VOSCOD_NAVD_1988  ((SRM_VOS_Code)(5))
  #define SRM_VOSCOD_NGVD_1929  ((SRM_VOS_Code)(6))
  #define SRM_VOSCOD_OSGM_2002  ((SRM_VOS_Code)(7))
  #define SRM_VOSCOD_WGS84_ELLIPSOID  ((SRM_VOS_Code)(8))
  #define SRM_VOSCOD_WGS84_GEOID  ((SRM_VOS_Code)(9))
typedef struct {
  SRM_Long_Float  azimuth;
  SRM_Long_Float  radius;
} SRM_Azimuthal_2D_Coordinate;
typedef struct {
  SRM_Long_Float  longitude;
  SRM_Long_Float  latitude;
  SRM_Long_Float  ellipsoidal_height;
} SRM_Celestiodetic_3D_Coordinate;
typedef struct {
  SRM_Long_Float  longitude;
  SRM_Long_Float  latitude;
} SRM_Celestiodetic_Surface_Coordinate;
typedef struct {
  SRM_Coordinate_Code  coordinate_code;
  union _SRM_Coordinate_Union {
    SRM_Azimuthal_2D_Coordinate  az_2d;
    SRM_Celestiocentric_3D_Coordinate  cc_3d;
    SRM_Celestiodetic_3D_Coordinate  cd_3d;
    SRM_Celestiodetic_Surface_Coordinate  cd_surface;
    SRM_Celestiodetic_3D_Coordinate  pd_3d;
    SRM_Celestiodetic_Surface_Coordinate  pd_surface;
    SRM_Spherical_3D_Coordinate  cm_3d;
    SRM_Map_Projection_3D_Coordinate  ec_aug_3d;
    SRM_Map_Projection_Surface_Coordinate  ec_surface;
    SRM_Equatorial_Inertial_3D_Coordinate  ei_3d;
    SRM_Spherical_3D_Coordinate  haec_3d;
    SRM_Spherical_3D_Coordinate  heeq_3d;
    SRM_Map_Projection_3D_Coordinate  lcc_aug_3d;
    SRM_Euclidean_2D_Coordinate  lsr_2d;
    SRM_Euclidean_3D_Coordinate  lsr_3d;
    SRM_LTSAS_3D_Coordinate  ltsas_3d;
    SRM_LTSAS_Surface_Coordinate  ltsas_surface;
    SRM_LTSC_3D_Coordinate  ltsc_3d;
    SRM_LTSC_Surface_Coordinate  ltsc_surface;
    SRM_LTSE_3D_Coordinate  ltse_3d;
    SRM_LTSE_Surface_Coordinate  ltse_surface;
    SRM_Map_Projection_3D_Coordinate  m_aug_3d;
    SRM_Map_Projection_Surface_Coordinate  m_surface;
    SRM_Map_Projection_3D_Coordinate  oms_aug_3d;
    SRM_Map_Projection_Surface_Coordinate  oms_surface;
    SRM_Polar_2D_Coordinate  polar_2d;
    SRM_Map_Projection_3D_Coordinate  ps_aug_3d;
    SRM_Map_Projection_Surface_Coordinate  ps_surface;
    SRM_Spherical_3D_Coordinate  sec_3d;
    SRM_Spherical_3D_Coordinate  seq_3d;
    SRM_Spherical_3D_Coordinate  smd_3d;
    SRM_Spherical_3D_Coordinate  sme_3d;
    SRM_Map_Projection_3D_Coordinate  tm_aug_3d;
    SRM_Map_Projection_Surface_Coordinate  tm_surface;
  } value;
} SRM_Coordinate;
typedef struct {
  SRM_Long_Float  right_ascension;
  SRM_Long_Float  declination;
  SRM_Long_Float  radius;
} SRM_Equatorial_Inertial_3D_Coordinate;
typedef struct {
  SRM_Long_Float  origin_longitude;
  SRM_Long_Float  standard_latitude;
  SRM_Long_Float  central_scale;
  SRM_Long_Float  false_easting;
  SRM_Long_Float  false_northing;
} SRM_Equidistant_Cylindrical_Parameters;
typedef struct {
  SRM_Long_Float  u;
  SRM_Long_Float  v;
} SRM_Euclidean_2D_Coordinate;
typedef struct {
  SRM_Long_Float  u;
  SRM_Long_Float  v;
  SRM_Long_Float  w;
} SRM_Euclidean_3D_Coordinate;
typedef struct {
  SRM_Long_Float  origin_longitude;
  SRM_Long_Float  origin_latitude;
  SRM_Long_Float  longitude1;
  SRM_Long_Float  latitude1;
  SRM_Long_Float  false_easting;
  SRM_Long_Float  false_northing;
} SRM_Lambert_Conformal_Conic_Parameters;
typedef struct {
  SRM_Axis_Direction  forward_direction;
} SRM_Local_Space_Rectangular_2D_Parameters;
typedef struct {
  SRM_Axis_Direction  forward_direction;
  SRM_Axis_Direction  up_direction;
} SRM_Local_Space_Rectangular_3D_Parameters;
typedef struct {
  SRM_Long_Float  geodetic_longitude;
  SRM_Long_Float  geodetic_latitude;
  SRM_Long_Float  azimuth;
  SRM_Long_Float  height_offset;
} SRM_Local_Tangent_Parameters;
typedef struct {
  SRM_Long_Float  geodetic_longitude;
  SRM_Long_Float  geodetic_latitude;
  SRM_Long_Float  azimuth;
  SRM_Long_Float  x_false_origin;
  SRM_Long_Float  y_false_origin;
  SRM_Long_Float  height_offset;
} SRM_Local_Tangent_Space_Euclidean_Parameters;
typedef struct {
  SRM_Long_Float  azimuth;
  SRM_Long_Float  angle;
  SRM_Long_Float  radius;
} SRM_LTSAS_3D_Coordinate;
typedef struct {
  SRM_Long_Float  azimuth;
  SRM_Long_Float  angle;
} SRM_LTSAS_Surface_Coordinate;
typedef struct {
  SRM_Long_Float  azimuth;
  SRM_Long_Float  radius;
  SRM_Long_Float  height;
} SRM_LTSC_3D_Coordinate;
typedef struct {
  SRM_Long_Float  angle;
  SRM_Long_Float  radius;
} SRM_LTSC_Surface_Coordinate;
typedef struct {
  SRM_Long_Float  azimuth;
  SRM_Long_Float  radius;
  SRM_Long_Float  height;
} SRM_LTSE_3D_Coordinate;
typedef struct {
  SRM_Long_Float  angle;
  SRM_Long_Float  radius;
} SRM_LTSE_Surface_Coordinate;
typedef struct {
  SRM_Long_Float  easting;
  SRM_Long_Float  northing;
  SRM_Long_Float  ellipsoidal_height;
} SRM_Map_Projection_3D_Coordinate;
typedef struct {
  SRM_Long_Float  easting;
  SRM_Long_Float  northing;
} SRM_Map_Projection_Surface_Coordinate;
typedef struct {
  SRM_Long_Float  origin_longitude;
  SRM_Long_Float  origin_latitude;
  SRM_Long_Float  central_scale;
  SRM_Long_Float  false_easting;
  SRM_Long_Float  false_northing;
} SRM_Mercator_Parameters;
typedef struct {
  SRM_Long_Float  longitude1;
  SRM_Long_Float  latitude1;
  SRM_Long_Float  longitude2;
  SRM_Long_Float  latitude2;
  SRM_Long_Float  central_scale;
  SRM_Long_Float  false_easting;
  SRM_Long_Float  false_northing;
} SRM_Oblique_Mercator_Parameters;
typedef struct {
  SRM_ORM_Code  orm_code;
  union _SRM_ORM_Union {
    SRM_HSR_Code_ABSTRACT_2D  abstract_2d;
    SRM_HSR_Code_ABSTRACT_3D  abstract_3d;
    SRM_HSR_Code_ADINDAN_1991  adindan_1991;
    SRM_HSR_Code_ADRASTEA_2000  adrastea_2000;
    SRM_HSR_Code_AFGOOYE_1987  afgooye_1987;
    SRM_HSR_Code_AIN_EL_ABD_1970  ail_el_abd_1970;
    SRM_HSR_Code_AMALTHEA_2000  amalthea_2000;
    SRM_HSR_Code_AMERICAN_SAMOA_1962  american_samoa_1962;
    SRM_HSR_Code_AMERSFOORT_1885_1903  amersfoort_1885_1903;
    SRM_HSR_Code_ANNA_1_1965  anna_1_1965;
    SRM_HSR_Code_ANTIGUA_1943  antigua_1943;
    SRM_HSR_Code_ARC_1950  arc_1950;
    SRM_HSR_Code_ARC_1960  arc_1960;
    SRM_HSR_Code_ARIEL_1988  ariel_1988;
    SRM_HSR_Code_ASCENSION_1958  ascension_1958;
    SRM_HSR_Code_ATLAS_1988  atlas_1988;
    SRM_HSR_Code_AUSTRALIAN_GEOD_1966  australian_geod_1966;
    SRM_HSR_Code_AUSTRALIAN_GEOD_1984  australian_geod_1984;
    SRM_HSR_Code_AYABELLE_LIGHTHOUSE_1991  ayabelle_lighthouse_1991;
    SRM_HSR_Code_BEACON_E_1945  beacon_e_1945;
    SRM_HSR_Code_BELGIUM_1972  belgium_1972;
    SRM_HSR_Code_BELINDA_1988  belinda_1988;
    SRM_HSR_Code_BELLEVUE_IGN_1987  bellevue_ign_1987;
    SRM_HSR_Code_BERMUDA_1957  bermuda_1957;
    SRM_HSR_Code_BERN_1898  bern_1898;
    SRM_HSR_Code_BERN_1898_PM_BERN  bern_1898_pm_bern;
    SRM_HSR_Code_BIANCA_1988  bianca_1988;
    SRM_HSR_Code_BISSAU_1991  bissau_1991;
    SRM_HSR_Code_BOGOTA_OBS_1987  bogota_obs_1987;
    SRM_HSR_Code_BOGOTA_OBS_1987_PM_BOGOTA  bogota_obs_1987_pm_bogota;
    SRM_HSR_Code_BUKIT_RIMPAH_1987  bukit_rimpah_1987;
    SRM_HSR_Code_CALLISTO_2000  callisto_2000;
    SRM_HSR_Code_CALYPSO_1988  calypso_1988;
    SRM_HSR_Code_CAMP_AREA_1987  camp_area_1987;
    SRM_HSR_Code_CAMPO_INCHAUSPE_1969  campo_inchauspe_1969;
    SRM_HSR_Code_CANTON_1966  canton_1966;
    SRM_HSR_Code_CAPE_1987  cape_1987;
    SRM_HSR_Code_CAPE_CANAVERAL_1991  cape_canaveral_1991;
    SRM_HSR_Code_CARTHAGE_1987  carthage_1987;
    SRM_HSR_Code_CHARON_1991  charon_1991;
    SRM_HSR_Code_CHATHAM_1971  chatham_1971;
    SRM_HSR_Code_CHUA_1987  chua_1987;
    SRM_HSR_Code_COAMPS_1998  coamps_1998;
    SRM_HSR_Code_CORDELIA_1988  cordelia_1988;
    SRM_HSR_Code_CORREGO_ALEGRE_1987  corrego_alegre_1987;
    SRM_HSR_Code_CRESSIDA_1988  cressida_1988;
    SRM_HSR_Code_CYPRUS_1935  cyprus_1935;
    SRM_HSR_Code_DABOLA_1991  dabola_1991;
    SRM_HSR_Code_DECEPTION_1993  deception_1993;
    SRM_HSR_Code_DEIMOS_1988  deimos_1988;
    SRM_HSR_Code_DESDEMONA_1988  desdemona_1988;
    SRM_HSR_Code_DESPINA_1991  despina_1991;
    SRM_HSR_Code_DIONE_1982  dione_1982;
    SRM_HSR_Code_DJAKARTA_1987  djakarta_1987;
    SRM_HSR_Code_DJAKARTA_1987_PM_DJAKARTA  djakarta_1987_pm_djakarta;
    SRM_HSR_Code_DOS_1968  dos_1968;
    SRM_HSR_Code_DOS_71_4_1987  dos_71_4_1987;
    SRM_HSR_Code_EARTH_INERTIAL_ARIES_1950  earth_inertial_aries_1950;
    SRM_HSR_Code_EARTH_INERTIAL_ARIES_TRUE_OF_DATE  earth_inertial_aries_true_of_date;
    SRM_HSR_Code_EARTH_INERTIAL_J2000r0  earth_inertial_j2000r0;
    SRM_HSR_Code_EARTH_SOLAR_ECLIPTIC  earth_solar_ecliptic;
    SRM_HSR_Code_EARTH_SOLAR_EQUATORIAL  earth_solar_equatorial;
    SRM_HSR_Code_EARTH_SOLAR_MAG_DIPOLE  earth_solar_mag_dipole;
    SRM_HSR_Code_EARTH_SOLAR_MAGNETOSPHERIC  earth_solar_magnetospheric;
    SRM_HSR_Code_EASTER_1967  easter_1967;
    SRM_HSR_Code_ENCELADUS_1994  enceladus_1994;
    SRM_HSR_Code_EPIMETHEUS_1988  epimetheus_1988;
    SRM_HSR_Code_EROS_2000  eros_2000;
    SRM_HSR_Code_ESTONIA_1937  estonia_1937;
    SRM_HSR_Code_ETRS_1989  etrs_1989;
    SRM_HSR_Code_EUROPA_2000  europa_2000;
    SRM_HSR_Code_EUROPE_1950  europe_1950;
    SRM_HSR_Code_EUROPE_1973  europe_1973;
    SRM_HSR_Code_FAHUD_1987  fahud_1987;
    SRM_HSR_Code_FORT_THOMAS_1955  fort_thomas_1955;
    SRM_HSR_Code_GALATEA_1991  galatea_1991;
    SRM_HSR_Code_GAN_1970  gan_1970;
    SRM_HSR_Code_GANYMEDE_2000  ganymede_2000;
    SRM_HSR_Code_GANYMEDE_MAGNETIC_2000  ganymede_magnetic_2000;
    SRM_HSR_Code_GASPRA_1991  gaspra_1991;
    SRM_HSR_Code_GDA_1994  gda_1994;
    SRM_HSR_Code_GEODETIC_DATUM_1949  geodetic_datum_1949;
    SRM_HSR_Code_GEOMAGNETIC_1945  geomagnetic_1945;
    SRM_HSR_Code_GEOMAGNETIC_1950  geomagnetic_1950;
    SRM_HSR_Code_GEOMAGNETIC_1955  geomagnetic_1955;
    SRM_HSR_Code_GEOMAGNETIC_1960  geomagnetic_1960;
    SRM_HSR_Code_GEOMAGNETIC_1965  geomagnetic_1965;
    SRM_HSR_Code_GEOMAGNETIC_1970  geomagnetic_1970;
    SRM_HSR_Code_GEOMAGNETIC_1975  geomagnetic_1975;
    SRM_HSR_Code_GEOMAGNETIC_1980  geomagnetic_1980;
    SRM_HSR_Code_GEOMAGNETIC_1985  geomagnetic_1985;
    SRM_HSR_Code_GEOMAGNETIC_1990  geomagnetic_1990;
    SRM_HSR_Code_GEOMAGNETIC_1995  geomagnetic_1995;
    SRM_HSR_Code_GEOMAGNETIC_2000  geomagnetic_2000;
    SRM_HSR_Code_GGRS_1987  ggrs_1987;
    SRM_HSR_Code_GRACIOSA_BASE_SW_1948  graciosa_base_sw_1948;
    SRM_HSR_Code_GUAM_1963  guam_1963;
    SRM_HSR_Code_GUNONG_SEGARA_1987  gunong_segara_1987;
    SRM_HSR_Code_GUX_1_1987  gux_1_1987;
    SRM_HSR_Code_HARTEBEESTHOCK_1994  hartebeesthock_1994;
    SRM_HSR_Code_HELENE_1992  helene_1992;
    SRM_HSR_Code_HELIO_ARIES_ECLIPTIC_J2000r0  helio_aries_ecliptic_j2000r0
    SRM_HSR_Code_HELIO_ARIES_ECLIPTIC_TRUE_OF_DATE  helio_aries_ecliptic_true_of_date;
    SRM_HSR_Code_HELIO_EARTH_ECLIPTIC  helio_earth_ecliptic;
    SRM_HSR_Code_HELIO_EARTH_EQUATORIAL  helio_earth_equatorial;
    SRM_HSR_Code_HERAT_NORTH_1987  herat_north_1987;
    SRM_HSR_Code_HERMANNSKOGEL_1871  hermannskogel_1871;
    SRM_HSR_Code_HJORSEY_1955  hjorsey_1955;
    SRM_HSR_Code_HONG_KONG_1963  hong_kong_1963;
    SRM_HSR_Code_HONG_KONG_1980  hong_kong_1980;
    SRM_HSR_Code_HU_TZU_SHAN_1991  hu_tzu_shan_1991;
    SRM_HSR_Code_HUNGARIAN_1972  hungarian_1972;
    SRM_HSR_Code_IAPETUS_1988  iapetus_1988;
    SRM_HSR_Code_IDA_1991  ida_1991;
    SRM_HSR_Code_INDIAN_1916  indian_1916;
    SRM_HSR_Code_INDIAN_1954  indian_1954;
    SRM_HSR_Code_INDIAN_1956  indian_1956;
    SRM_HSR_Code_INDIAN_1960  indian_1960;
    SRM_HSR_Code_INDIAN_1962  indian_1962;
    SRM_HSR_Code_INDIAN_1975  indian_1975;
    SRM_HSR_Code_INDONESIAN_1974  indonesian_1974;
    SRM_HSR_Code_IO_2000  io_2000;
    SRM_HSR_Code_IRAQ_KUWAIT_BNDRY_1992  iraq_kuwait_bndry_1992;
    SRM_HSR_Code_IRELAND_1965  ireland_1965;
    SRM_HSR_Code_ISTS_061_1968  ists_061_1968;
    SRM_HSR_Code_ISTS_073_1969  ists_073_1969;
    SRM_HSR_Code_JANUS_1988  janus_1988;
    SRM_HSR_Code_JGD_2000  jgd_2000;
    SRM_HSR_Code_JOHNSTON_1961  johnston_1961;
    SRM_HSR_Code_JULIET_1988  juliet_1988;
    SRM_HSR_Code_JUPITER_1988  jupiter_1988;
    SRM_HSR_Code_JUPITER_INERTIAL  jupiter_inertial;
    SRM_HSR_Code_JUPITER_MAGNETIC_1993  jupiter_magnetic_1993;
    SRM_HSR_Code_JUPITER_SOLAR_ECLIPTIC  jupiter_solar_ecliptic;
    SRM_HSR_Code_JUPITER_SOLAR_EQUATORIAL  jupiter_solar_equatorial;
    SRM_HSR_Code_JUPITER_SOLAR_MAG_DIPOLE  jupiter_solar_mag_dipole;
    SRM_HSR_Code_JUPITER_SOLAR_MAG_ECLIPTIC  jupiter_solar_mag_ecliptic;
    SRM_HSR_Code_KANDAWALA_1987  kandawala_1987;
    SRM_HSR_Code_KERGUELEN_1949  kerguelen_1949;
    SRM_HSR_Code_KERTAU_1948  kertau_1948;
    SRM_HSR_Code_KOREAN_GEODETIC_1995  korean_geodetic_1995;
    SRM_HSR_Code_KUSAIE_1951  kusaie_1951;
    SRM_HSR_Code_LANDESVERMESSUNG_1995  landesvermessung_1995;
    SRM_HSR_Code_LARISSA_1991  larissa_1991;
    SRM_HSR_Code_LC5_1961  lc5_1961;
    SRM_HSR_Code_LEIGON_1991  leigon_1991;
    SRM_HSR_Code_LIBERIA_1964  liberia_1964;
    SRM_HSR_Code_LISBON_D73  lisbon_d73;
    SRM_HSR_Code_LKS_1994  lks_1994;
    SRM_HSR_Code_LUZON_1987  luzon_1987;
    SRM_HSR_Code_M_PORALOKO_1991  m_poraloko_1991;
    SRM_HSR_Code_MAHE_1971  mahe_1971;
    SRM_HSR_Code_MARCUS_STATION_1952  marcus_station_1952;
    SRM_HSR_Code_MARS_2000  mars_2000;
    SRM_HSR_Code_MARS_INERTIAL  mars_inertial;
    SRM_HSR_Code_MARS_SPHERE_2000  mars_sphere_2000;
    SRM_HSR_Code_MASS_1999  mass_1999;
    SRM_HSR_Code_MASSAWA_1987  massawa_1987;
    SRM_HSR_Code_MERCHICH_1987  merchich_1987;
    SRM_HSR_Code_MERCURY_1988  mercury_1988;
    SRM_HSR_Code_MERCURY_INERTIAL  mercury_inertial;
    SRM_HSR_Code_METIS_2000  metis_2000;
    SRM_HSR_Code_MIDWAY_1961  midway_1961;
    SRM_HSR_Code_MIMAS_1994  mimas_1994;
    SRM_HSR_Code_MINNA_1991  minna_1991;
    SRM_HSR_Code_MIRANDA_1988  miranda_1988;
    SRM_HSR_Code_MM5_1997  mm5_1997;
    SRM_HSR_Code_MODTRAN_MIDLATITUDE_N_1989  modtran_midlatitude_n_1989;
    SRM_HSR_Code_MODTRAN_MIDLATITUTDE_S_1989  modtran_midlatitude_s_1989;
    SRM_HSR_Code_MODTRAN_SUBARCTIC_N_1989  modtran_subarctic_n_1989;
    SRM_HSR_Code_MODTRAN_SUBARCTIC_S_1989  modtran_subarctic_s_1989;
    SRM_HSR_Code_MODTRAN_TROPICAL_1989  modtran_tropical_1989;
    SRM_HSR_Code_MONTSERRAT_1958  montserrat_1958;
    SRM_HSR_Code_MOON_1991  moon_1991;
    SRM_HSR_Code_MULTIGEN_FLAT_EARTH_1989  multigen_flat_earth_1989;
    SRM_HSR_Code_N_AM_1927  n_am_1927;
    SRM_HSR_Code_N_AM_1983  n_am_1983;
    SRM_HSR_Code_N_SAHARA_1959  n_sahara_1959;
    SRM_HSR_Code_NAHRWAN_1987  nahrwan_1987;
    SRM_HSR_Code_NAIAD_1991  naiad_1991;
    SRM_HSR_Code_NAPARIMA_1991  naparima_1991;
    SRM_HSR_Code_NEPTUNE_1991  neptune_1991;
    SRM_HSR_Code_NEPTUNE_INERTIAL  neptune_inertial;
    SRM_HSR_Code_NEPTUNE_MAGNETIC_1993  neptune_magnetic_1993;
    SRM_HSR_Code_NOGAPS_1988  nogaps_1988;
    SRM_HSR_Code_NTF_1896  ntf_1896;
    SRM_HSR_Code_NTF_1896_PM_PARIS  ntf_1896_pm_paris;
    SRM_HSR_Code_OBERON_1988  oberon_1988;
    SRM_HSR_Code_OBSERV_METEORO_1939  observ_meteoro_1939;
    SRM_HSR_Code_OLD_EGYPTIAN_1907  old_egyptian_1907;
    SRM_HSR_Code_OLD_HAWAIIAN_CLARKE_1987  old_hawaiian_clarke_1987;
    SRM_HSR_Code_OLD_HAWAIIAN_INT_1987  old_hawaiian_int_1987;
    SRM_HSR_Code_OPHELIA_1988  ophelia_1988;
    SRM_HSR_Code_OSGB_1936  osgb_1936;
    SRM_HSR_Code_PALESTINE_1928  palestine_1928;
    SRM_HSR_Code_PAN_1991  pan_1991;
    SRM_HSR_Code_PANDORA_1988  pandora_1988;
    SRM_HSR_Code_PHOBOS_1988  phobos_1988;
    SRM_HSR_Code_PHOEBE_1988  phoebe_1988;
    SRM_HSR_Code_PICO_DE_LAS_NIEVES_1987  pico_de_las_nieves_1987;
    SRM_HSR_Code_PITCAIRN_1967  pitcairn_1967;
    SRM_HSR_Code_PLUTO_1994  pluto_1994;
    SRM_HSR_Code_PLUTO_INERTIAL  pluto_inertial;
    SRM_HSR_Code_POINT_58_1991  point_58_1991;
    SRM_HSR_Code_POINTE_NOIRE_1948  pointe_noire_1948;
    SRM_HSR_Code_PORTIA_1988  portia_1988;
    SRM_HSR_Code_PORTO_SANTO_1936  porto_santo_1936;
    SRM_HSR_Code_PROMETHEUS_1988  prometheus_1988;
    SRM_HSR_Code_PROTEUS_1991  proteus_1991;
    SRM_HSR_Code_PROV_S_AM_1956  prov_s_am_1956;
    SRM_HSR_Code_PROV_S_CHILEAN_1963  prov_s_chilean_1963;
    SRM_HSR_Code_PUCK_1988  puck_1988;
    SRM_HSR_Code_PUERTO_RICO_1987  puerto_rico_1987;
    SRM_HSR_Code_PULKOVO_1942  pulkovo_1942;
    SRM_HSR_Code_QATAR_NATIONAL_1974  qatar_national_1974;
    SRM_HSR_Code_QATAR_NATIONAL_1995  qatar_national_1995;
    SRM_HSR_Code_QORNOQ_1987  qornoq_1987;
    SRM_HSR_Code_REUNION_1947  reunion_1947;
    SRM_HSR_Code_RGF_1993  rgf_1993;
    SRM_HSR_Code_RHEA_1988  rhea_1988;
    SRM_HSR_Code_ROME_1940  rome_1940;
    SRM_HSR_Code_ROME_1940_PM_ROME  rome_1940_pm_rome;
    SRM_HSR_Code_ROSALIND_1988  rosalind_1988;
    SRM_HSR_Code_RT_1990  rt_1990;
    SRM_HSR_Code_RT_1990_PM_STOCKHOLM  rt_1990_pm_stockholm;
    SRM_HSR_Code_S_AM_1969  s_am_1969;
    SRM_HSR_Code_S_AM_1987  s_am_1987;
    SRM_HSR_Code_S_JTSK_1993  s_jtsk_1993;
    SRM_HSR_Code_S42_PULKOVO  s42_pulkovo;
    SRM_HSR_Code_SANTO_DOS_1965  santo_dos_1965;
    SRM_HSR_Code_SAO_BRAZ_1987  sao_braz_1987;
    SRM_HSR_Code_SAPPER_HILL_1943  sapper_hill_1943;
    SRM_HSR_Code_SATURN_1988  saturn_1988;
    SRM_HSR_Code_SATURN_INERTIAL  saturn_inertial;
    SRM_HSR_Code_SATURN_MAGNETIC_1993  saturn_magnetic_1993;
    SRM_HSR_Code_SCHWARZECK_1991  schwarzeck_1991;
    SRM_HSR_Code_SELVAGEM_GRANDE_1938  selvagem_grande_1938;
    SRM_HSR_Code_SIERRA_LEONE_1960  sierra_leone_1960;
    SRM_HSR_Code_SIRGAS_2000  sirgas_2000;
    SRM_HSR_Code_SOUTHEAST_1943  southeast_1943;
    SRM_HSR_Code_SOVIET_GEODETIC_1985  soviet_geodetic_1985;
    SRM_HSR_Code_SOVIET_GEODETIC_1990  soviet_geodetic_1990;
    SRM_HSR_Code_SUN_1992  sun_1992;
    SRM_HSR_Code_TANANARIVE_OBS_1925  tananarive_obs_1925;
    SRM_HSR_Code_TANANARIVE_OBS_1925_PM_PARIS  tananarive_obs_1925_pm_paris;
    SRM_HSR_Code_TELESTO_1988  telesto_1988;
    SRM_HSR_Code_TERN_1961  tern_1961;
    SRM_HSR_Code_TETHYS_1991  tethys_1991;
    SRM_HSR_Code_THALASSA_1991  thalassa_1991;
    SRM_HSR_Code_THEBE_2000  thebe_2000;
    SRM_HSR_Code_TIMBALAI_BESSEL_1948  timbalai_bessel_1948;
    SRM_HSR_Code_TIMBALAI_BESSEL_ADJ_1968  timbalai_bessel_adj_1968;
    SRM_HSR_Code_TIMBALAI_EVEREST_1948  timbalai_everest_1948;
    SRM_HSR_Code_TIMBALAI_EVEREST_ADJ_1968  timbalai_everest_adj_1968;
    SRM_HSR_Code_TITAN_1982  titan_1982;
    SRM_HSR_Code_TITANIA_1988  titania_1988;
    SRM_HSR_Code_TOKYO_1991  tokyo_1991;
    SRM_HSR_Code_TRISTAN_1968  tristan_1968;
    SRM_HSR_Code_TRITON_1991  triton_1991;
    SRM_HSR_Code_UMBRIEL_1988  umbriel_1988;
    SRM_HSR_Code_URANUS_1988  uranus_1988;
    SRM_HSR_Code_URANUS_INERTIAL  uranus_inertial;
    SRM_HSR_Code_URANUS_MAGNETIC_1993  uranus_magnetic_1993;
    SRM_HSR_Code_VENUS_1991  venus_1991;
    SRM_HSR_Code_VENUS_INERTIAL  venus_inertial;
    SRM_HSR_Code_VITI_LEVU_1916  viti_levu_1916;
    SRM_HSR_Code_VOIROL_1874  voirol_1874;
    SRM_HSR_Code_VOIROL_1874_PM_PARIS  voirol_1874_pm_paris;
    SRM_HSR_Code_VOIROL_1960  voirol_1960;
    SRM_HSR_Code_VOIROL_1960_PM_PARIS  voirol_1960_pm_paris;
    SRM_HSR_Code_WAKE_1952  wake_1952;
    SRM_HSR_Code_WAKE_ENIWETOK_1960  wake_eniwetok_1960;
    SRM_HSR_Code_WGS_1972  wgs_1972;
    SRM_HSR_Code_WGS_1984  wgs_1984;
    SRM_HSR_Code_YACARE_1987  yacare_1987;
    SRM_HSR_Code_ZANDERIJ_1987  zanderij_1987;
  } value;
} SRM_ORM;
typedef struct {
  SRM_Long_Float  delta_x;
  SRM_Long_Float  delta_y;
  SRM_Long_Float  omega;
  SRM_Long_Float  omega_2;
  SRM_Long_Float  omega_3;
  SRM_Long_Float  delta_s;
} SRM_ORM_Transformation_2D_Parameters;
typedef struct {
  SRM_Long_Float  delta_x;
  SRM_Long_Float  delta_y;
  SRM_Long_Float  delta_z;
  SRM_Long_Float  omega_1;
  SRM_Long_Float  omega_2;
  SRM_Long_Float  omega_3;
  SRM_Long_Float  delta_s;
} SRM_ORM_Transformation_3D_Parameters;
typedef struct {
  SRM_Long_Float  angle;
  SRM_Long_Float  radius;
} SRM_Polar_2D_Coordinate;
typedef struct {
  SRM_Polar_Aspect  polar_aspect;
  SRM_Long_Float  origin_longitude;
  SRM_Long_Float  true_scale_latitude;
  SRM_Long_Float  true_scale;
  SRM_Long_Float  false_easting;
  SRM_Long_Float  false_northing;
} SRM_Polar_Stereographic_Parameters;
typedef struct {
  SRM_Long_Float  longitude;
  SRM_Long_Float  latitude;
  SRM_Long_Float  radius;
} SRM_Spherical_3D_Coordinate;
typedef struct {
  SRM_VOS_Code  vos_code;
  SRM_SRF_Parameters_Info  srf_parameters_info;
  EDCS_Unit_Code  angular_unit;
  EDCS_Unit_Code  linear_unit;
  EDCS_Scale_Code  linear_scale;
} SRM_SRF_Info;
typedef struct {
  SRM_Parameters_Info_Code  srf_parameters_info_code;
  union _SRM_SRF_Parameters_Info_Union {
    SRM_SRFT_Code_Parameters  srft;
    SRM_SRFS_Code_Info  srfs;
    SRM_SRF_Code  srf;
  } value;
} SRM_SRF_Parameters_Info;
typedef struct {
  SRM_ORM_Parameters  orm_parameters;
  SRM_SRFS_Code  set_code;
  SRM_SRFS_Member_Code  member_code;
} SRM_SRFS_Code_Info;
typedef struct {
  SRM_SRFS_Code  set_code;
  SRM_SRFS_Member_Code  member_code;
} SRM_SRFS_Codes;
typedef struct {
  SRM_SRFT_Code  srft_code;
  SRM_SRF_Parameters_Info_Code  type;
  union _SRM_SRF_Codes_Info_Union {
    SRM_Unused  template;
    SRM_SRFS_Codes  srfs_codes;
    SRM_SRF_Code  srf_code;
  } value;
} SRM_SRF_Codes_Info;
typedef struct {
  SRM_Integer  unused;
} SRM_Unused;
typedef struct {
  SRM_SRFT_Code  template_code;
  SRM_ORM  orm;
  union _SRM_SRFT_Code_Parameters_Union {
    SRM_Unused  cc_srf_parameters;
    SRM_LSR_3D_Parameters  lsr_3d_srf_parameters;
    SRM_LSR_2D_Parameters  lsr_2d_srf_parameters;
    SRM_Unused  cd_srf_parameters;
    SRM_Unused  pd_srf_parameters;
    SRM_LTSE_Parameters  ltse_parameters;
    SRM_LTSAS_Parameters  ltsas_parameters;
    SRM_LTSC_Parameters  ltsc_parameters;
    SRM_Unused  polar_srf_parameters;
    SRM_Unused  cm_srf_parameters;
    SRM_Unused  ei_srf_parameters;
    SRM_Unused  sec_srf_parameters;
    SRM_Unused  seq_srf_parameters;
    SRM_Unused  sms_srf_parameters;
    SRM_Unused  sm_srf_parameters;
    SRM_Unused  haec_srf_parameters;
    SRM_Unused  heec_srf_parameters;
    SRM_Unused  heeq_srf_parameters;
    SRM_Mercator_Parameters  m_srf_parameters;
    SRM_Oblique_Mercator_Parameters  om_srf_parameters;
    SRM_Transverse_Mercator_Parameters  tm_srf_parameters;
    SRM_Lambert_Conformal_Conic_Parameters  lcc_srf_parameters;
    SRM_Polar_Stereographic_Parameters  ps_srf_parameters;
    SRM_Equidistant_Cylindrical_Parameters  ec_srf_parameters;
  } value;
} SRM_SRFT_Code_Parameters;

A.3 Bound constructs in srm_objects.h

typedef SRM_Status_Code SRM_Create (
  SRM_Object_Reference  **object  /* OUT create object */
);
typedef SRM_Status_Code SRM_Destroy (
  SRM_Object_Reference  *object  /* object to destroy*/
);
typedef SRM_Status_Code SRM_GetORMCodes (
  SRM_Object_Reference  *this, 
  SRM_ORM  *orm  /* OUT */
);
typedef SRM_Status_Code SRM_GetSRFCodes (
  SRM_Object_Reference  *this, 
  SRM_SRF_Codes_Info  *srf_codes_info  /* OUT srf codes info */
);
typedef SRM_Status_Code SRM_GetCSCode (
  SRM_Object_Reference  *this, 
  SRM_CS_Code  *cs_code  /* OUT cs code */
);
typedef SRM_Status_Code SRM_ChangeCoordinate2DSRF (
  SRM_Object_Reference  *this, 
  const SRM_Object_Reference  *source_srf, 
  const SRM_Coordinate2D  *source_coordinate, 
        SRM_Coordinate2D  **target_coordinate  /* OUT */
);
typedef SRM_Status_Code SRM_ChangeCoordinate2DSRFObject (
  SRM_Object_Reference  *this, 
  const SRM_Object_Reference  *source_srf, 
  const SRM_Coordinate2D  *source_coordinate, 
  const SRM_ORM_Transformation_2D_Parameters  *h_st, 
        SRM_Coordinate2D  **target_coordinate  /* OUT */
);
typedef SRM_Status_Code SRM_CreateCoordinate2D (
  SRM_Object_Reference  *this, 
  SRM_Long_Float  first_coordinate_component, 
  SRM_Long_Float  second_coordinate_component, 
  SRM_Coordinate2D  **new_coordinate  /* OUT */
);
typedef SRM_Status_Code SRM_EuclideanDistance2D (
  SRM_Object_Reference  *this, 
  const SRM_Coordinate2D  *source_coordinate, 
  const SRM_Coordinate2D  *target_coordinate 
        SRM_Long_Float  *distance  /* OUT */
);
typedef SRM_Status_Code SRM_Generating2D (
  SRM_Object_Reference  *this, 
  const SRM_Coordinate2D  *coordinate, 
        SRM_Position2D  **position  /* OUT */
);
typedef SRM_Status_Code SRM_GetCoordinate2DValues (
        SRM_Object_Reference  *this, 
  const SRM_Coordinate2D  *new_coordinate, 
        SRM_Long_Float  *first_coordinate_component,  /* OUT */
        SRM_Long_Float  *second_coordinate_component  /* OUT */
);
typedef SRM_Status_Code SRM_InverseGenerating2D (
        SRM_Object_Reference  *this, 
  const SRM_Position2D  *position, 
        SRM_Coordinate2D  **coordinate  /* OUT */
);
typedef SRM_Status_Code SRM_ChangeCoordinate3DSRF (
        SRM_Object_Reference  *this, 
  const SRM_Object_Reference  *source_srf, 
  const SRM_Coordinate3D  *source_coordinate, 
        SRM_Coordinate3D  **target_coordinate,  /* OUT */
        SRM_Coordinate_Valid_Region  *region  /* OUT */
);
typedef SRM_Status_Code SRM_ChangeCoordinate3DSRFObject (
        SRM_Object_Reference  *this, 
  const SRM_Object_Reference  *source_srf, 
  const SRM_Coordinate3D  *source_coordinate, 
  const SRM_ORM_Transformation_3D_Parameters  *h_st, 
        SRM_Coordinate3D  **target_coordinate,  /* OUT */
        SRM_Coordinate_Valid_Region  *region  /* OUT */
);
typedef SRM_Status_Code SRM_ChangeDirectionSRF (
        SRM_Object_Reference  *this, 
  const SRM_Object_Reference  *source_srf, 
  const SRM_Direction  *source_direction, 
        SRM_Direction  **target_direction,  /* OUT */
        SRM_Coordinate_Valid_Region  *ref_coord_region  /* OUT */
);
typedef SRM_Status_Code SRM_ChangeDirectionSRFObject (
        SRM_Object_Reference  *this, 
  const SRM_Object_Reference  *source_srf, 
  const SRM_Direction  *source_direction, 
  const SRM_ORM_Transformation_3D_Parameters  *source_direction, 
        SRM_Direction  **target_direction,  /* OUT */
        SRM_Coordinate_Valid_Region  *ref_coord_region  /* OUT */
);
typedef SRM_Status_Code SRM_CreateCoordinate3D (
  SRM_Object_Reference  *this, 
  SRM_Long_Float  first_coordinate_component, 
  SRM_Long_Float  second_coordinate_component, 
  SRM_Long_Float  third_coordinate_component, 
  SRM_Coordinate3D  **new_coordinate  /* OUT */
);
typedef SRM_Status_Code SRM_CreateDirection (
        SRM_Object_Reference  *this, 
  const SRM_Coordinate3D  reference_coordinate, 
        SRM_Long_Float  first_direction_component, 
        SRM_Long_Float  second_direction_component, 
        SRM_Long_Float  third_direction_component, 
        SRM_Direction  **new_direction  /* OUT */
);
typedef SRM_Status_Code SRM_EuclideanDistance3D (
        SRM_Object_Reference  *this, 
  const SRM_Coordinate3D  *source_coordinate, 
  const SRM_Coordinate3D  *target_coordinate, 
        SRM_Long_Float  *distance  /* OUT */
);
typedef SRM_Status_Code SRM_Generating3D (
        SRM_Object_Reference  *this, 
  const SRM_Coordinate3D  *coordinate, 
        SRM_Position3D  **position  /* OUT */
);
typedef SRM_Status_Code SRM_GetCoordinate3DValues (
        SRM_Object_Reference  *this, 
  const SRM_Coordinate3D  *coordinate, 
        SRM_Long_Float  *first_coordinate_component,  /* OUT */
        SRM_Long_Float  *second_coordinate_component,  /* OUT */
        SRM_Long_Float  *third_coordinate_component  /* OUT */
);
typedef SRM_Status_Code SRM_GetDirectionValues (
        SRM_Object_Reference  *this, 
  const SRM_Direction  *direction, 
        SRM_Coordinate3D  **reference_coordinate,  /* OUT */
        SRM_Long_Float  *first_direction_component,  /* OUT */
        SRM_Long_Float  *second_direction_component,  /* OUT */
        SRM_Long_Float  *third_direction_component  /* OUT */
);
typedef SRM_Status_Code SRM_GetExtendedValidRegion (
  SRM_Object_Reference  *this, 
  SRM_Integer  component, 
  SRM_Interval_Type  *type,  /* OUT */
  SRM_Long_Float  *extended_lower,  /* OUT */
  SRM_Long_Float  *lower,  /* OUT */
  SRM_Long_Float  *upper,  /* OUT */
  SRM_Long_Float  *extended_upper  /* OUT */
);
typedef SRM_Status_Code SRM_GetValidRegion (
  SRM_Object_Reference  *this, 
  SRM_Integer  component, 
  SRM_Interval_Type  *type,  /* OUT */
  SRM_Long_Float  *lower,  /* OUT */
  SRM_Long_Float  *upper  /* OUT */
);
typedef SRM_Status_Code SRM_InverseGenerating3D (
        SRM_Object_Reference  *this, 
  const SRM_Position3D  *position, 
        SRM_Coordinate3D  **coordinate,  /* OUT */
        SRM_Coordinate_Valid_Region  *region  /* OUT */
);
typedef SRM_Status_Code SRM_SetExtendedValidRegion (
  SRM_Object_Reference  *this, 
  SRM_Integer  coordinate, 
  SRM_Interval_Type  type,
  SRM_Long_Float  extended_lower,
  SRM_Long_Float  lower, 
  SRM_Long_Float  upper, 
  SRM_Long_Float  extended_upper
);
typedef SRM_Status_Code SRM_SetValidRegion (
  SRM_Object_Reference  *this, 
  SRM_Integer  coordinate, 
  SRM_Interval_Type  type,
  SRM_Long_Float  lower,
  SRM_Long_Float  upper
);
typedef SRM_Status_Code SRM_AssociateSurfaceCoordinateTPS (
        SRM_Object_Reference  *this, 
  const SRM_Coordinate3D  *coordinate, 
        SRM_SurfaceCoordinate  **on_surface_coordinate  /* OUT */
);
typedef SRM_Status_Code SRM_CreateSurfaceCoordinateTPS (
  SRM_Object_Reference  *this, 
  SRM_Long_Float  first_coordinate_component, 
  SRM_Long_Float  second_coordinate_component, 
  SRM_SurfaceCoordinate  **new_coordinate  /* OUT */
);
typedef SRM_Status_Code SRM_EuclideanDistanceTPS (
        SRM_Object_Reference  *this, 
  const SRM_SurfaceCoordinate  *source_coordinate, 
  const SRM_SurfaceCoordinate  *target_coordinate, 
        SRM_Long_Float  *distance  /* OUT */
);
typedef SRM_Status_Code SRM_GetSurfaceCoordinateValuesTPS (
        SRM_Object_Reference  *this, 
  const SRM_SurfaceCoordinate  *coordinate, 
        SRM_Long_Float  *first_coordinate_component,  /* OUT */
        SRM_Long_Float  *second_coordinate_component  /* OUT */
);
typedef SRM_Status_Code SRM_PromoteSurfaceCoordinateTPS (
        SRM_Object_Reference  *this, 
  const SRM_SurfaceCoordinate  *surface_coordinate, 
        SRM_Coordinate3D  **coordinate  /* OUT */
);
typedef SRM_Status_Code SRM_AssociateSurfaceCoordinateEH (
        SRM_Object_Reference  *this, 
  const SRM_Coordinate3D  *coordinate, 
        SRM_SurfaceCoordinate  **on_surface_coordinate  /* OUT */
);
typedef SRM_Status_Code SRM_CreateLocalTangentSpaceEuclideanSRF (
        SRM_Object_Reference  *this,
  const SRM_SurfaceCoordinate  *surface_coordinate, 
        SRM_Long_Float  azimuth,
        SRM_Long_Float  false_x_origin,
        SRM_Long_Float  false_y_origin, 
        SRM_Long_Float  offset_height, 
        SRM_LocalTangentSpaceEuclidean  **local_tangent_Euclidean_srf  /* OUT */
);
typedef SRM_Status_Code SRM_CreateSurfaceCoordinateEH (
  SRM_Object_Reference  *this, 
  SRM_Long_Float  first_coordinate_component, 
  SRM_Long_Float  second_coordinate_component, 
  SRM_SurfaceCoordinate  **new_coordinate  /* OUT */
);
typedef SRM_Status_Code SRM_EuclideanDistanceEH (
        SRM_Object_Reference  *this, 
  const SRM_SurfaceCoordinate  *source_coordinate, 
  const SRM_SurfaceCoordinate  *target_coordinate, 
        SRM_Long_Float  *distance  /* OUT */
);
typedef SRM_Status_Code SRM_GeodesicDistance (
        SRM_Object_Reference  *this, 
  const SRM_SurfaceCoordinate  *source_coordinate, 
  const SRM_SurfaceCoordinate  *target_coordinate, 
        SRM_Long_Float  *distance  /* OUT */
);
typedef SRM_Status_Code SRM_GetSurfaceCoordinateValuesEH (
        SRM_Object_Reference  *this, 
  const SRM_SurfaceCoordinate  *coordinate, 
        SRM_Long_Float  *first_coordinate_component,  /* OUT */
        SRM_Long_Float  *second_coordinate_component  /* OUT */
);
typedef SRM_Status_Code SRM_PromoteSurfaceCoordinateEH (
        SRM_Object_Reference  *this, 
  const SRM_SurfaceCoordinate  *surface_coordinate, 
        SRM_Coordinate3D  **coordinate  /* OUT */
);
typedef SRM_Status_Code SRM_ConvergenceOfTheMeridian (
        SRM_Object_Reference  *this, 
  const SRM_SurfaceCoordinate  *surface_coordinate, 
        SRM_Long_Float  *gamma  /* OUT */
);
typedef SRM_Status_Code SRM_GetExtendedValidGeodeticRegion (
  SRM_Object_Reference  *this, 
  SRM_Integer  component,
  SRM_Interval_Type  *type,  /* OUT */ 
  SRM_Long_Float  *extended_lower,  /* OUT */
  SRM_Long_Float  *lower,  /* OUT */
  SRM_Long_Float  *upper,  /* OUT */
  SRM_Long_Float  *extended_upper  /* OUT */
);
typedef SRM_Status_Code SRM_GetValidGeodeticRegion (
  SRM_Object_Reference  *this, 
  SRM_Integer  component,
  SRM_Interval_Type  *type,  /* OUT */ 
  SRM_Long_Float  *lower,  /* OUT */
  SRM_Long_Float  *upper  /* OUT */
);
typedef SRM_Status_Code SRM_MapAzimuth (
        SRM_Object_Reference  *this, 
  const SRM_SurfaceCoordinate  *surface_coordinate, 
  const SRM_SurfaceCoordinate  *target_coordinate, 
        SRM_Long_Float  *azimuth  /* OUT */
);
typedef SRM_Status_Code SRM_PointScale (
        SRM_Object_Reference  *this, 
  const SRM_SurfaceCoordinate  *surface_coordinate, 
        SRM_Long_Float  *scale  /* OUT */
);
typedef SRM_Status_Code SRM_SetExtendedValidGeodeticRegion (
  SRM_Object_Reference  *this, 
  SRM_Integer  component,
  SRM_Interval_Type  type,
  SRM_Long_Float  extended_lower, 
  SRM_Long_Float  lower,
  SRM_Long_Float  upper,
  SRM_Long_Float  extended_upper
);
typedef SRM_Status_Code SRM_SetValidGeodeticRegion (
  SRM_Object_Reference  *this, 
  SRM_Integer  component,
  SRM_Interval_Type  type,
  SRM_Long_Float  lower, 
  SRM_Long_Float  upper
);
typedef SRM_Status_Code SRM_CC_Create (
  SRM_ORM  orm,
  SRM_Celestiocentric  *new_srf  /* OUT */ 
);
typedef struct {
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_CC_Create  *Create; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_Generating3D  *Generating3D; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCodes  *GetCSCodes; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidRegion  *SetValidRegion;
} SRM_CC_Method_List;
typedef struct {
  void  *state;
  SRM_CC_Method_List  *methods; 
} SRM_Celestiocentric;
typedef SRM_Status_Code SRM_CD_Create (
  SRM_ORM  orm,
  SRM_Celestiodetic  *new_srf  /* OUT */ 
);
typedef struct {
  SRM_AssociateSurfaceCoordinateEH  *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_CD_Create  *Create; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_CreateLocalTangentSpaceEuclideanSRF  *CreateLocalTangentSpaceEuclideanSRF; 
  SRM_CreateSurfaceCoordinateEH  *CreateSurfaceCoordinate; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_EuclideanDistanceEH  *EuclideanDistanceEH; 
  SRM_Generating3D  *Generating3D; 
  SRM_GeodesicDistance  *GeodesicDistance; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCodes  *GetCSCodes; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_GetSurfaceCoordinateValuesEH  *GetSurfaceCoordinateValues; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_PromoteSurfaceCoordinateEH  *PromoteSurfaceCoordinate; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidRegion  *SetValidRegion; 
  SRM_VerticalOffset
  *VerticalOffset;
} SRM_CD_Method_List;
typedef struct {
  void  *state;
  SRM_CD_Method_List  *methods; 
} SRM_Celestiodetic;
typedef SRM_Status_Code SRM_CM_Create (
  SRM_ORM  orm,
  SRM_Celestiomagnetic  *new_srf  /* OUT */ 
);
typedef struct {
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_CM_Create  *Create; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_Generating3D  *Generating3D; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCodes  *GetCSCodes; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidRegion  *SetValidRegion;
} SRM_CM_Method_List;
typedef struct {
  void  *state;
  SRM_CM_Method_List  *methods; 
} SRM_Celestiomagnetic;
typedef struct {
  SRM_Destroy  *destroy; 
} SRM_Coordinate2D_Method_List;
typedef struct {
  void  *state;
  SRM_Coordinate2D_Method_List  *methods; 
} SRM_Coordinate2D;
typedef struct {
  SRM_Destroy  *destroy; 
} SRM_Coordinate3D_Method_List;
typedef struct {
  void  *state;
  SRM_Coordinate3D_Method_List  *methods; 
} SRM_Coordinate3D;
typedef struct {
  SRM_Destroy  *destroy; 
} SRM_Direction_Method_List;
typedef struct {
  void  *state;
  SRM_Direction_Method_List  *methods; 
} SRM_Direction;
typedef SRM_Status_Code SRM_EI_Create (
  SRM_ORM  orm,
  SRM_EquatorialInertial  *new_srf  /* OUT */ 
);
typedef struct {
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_EI_Create  *Create; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_Generating3D  *Generating3D; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCodes  *GetCSCodes; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidRegion  *SetValidRegion;
} SRM_EI_Method_List;
typedef struct {
  void  *state;
  SRM_EI_Method_List  *methods; 
} SRM_EquatorialInertial;
typedef SRM_Status_Code SRM_EC_Create (
        SRM_ORM  orm,
  const SRM_Equidistant_Cylindrical_Parameters  parameters,
        SRM_EquidistantCylindrical  *new_srf  /* OUT */
);
typedef SRM_Status_Code SRM_EC_GetSRFParameters (
  SRM_Object_Reference  *this, 
  SRM_Equidistant_Cylindrical_Parameters  **parameters  /* OUT */
);
typedef struct {
  SRM_AssociateSurfaceCoordinateEH  *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_EC_Create  *Create; 
  SRM_ConvergenceOfTheMeridian  *ConvergenceOfTheMeridian; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_CreateLocalTangentPlaneEuclideanSRF  *CreateLocalTangentPlaneEuclideanSRF; 
  SRM_CreateSurfaceCoordinateEH  *CreateSurfaceCoordinate; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_EuclideanDistanceEH  *EuclideanDistanceEH; 
  SRM_Generating3D  *Generating3D; 
  SRM_GeodesicDistance  *GeodesicDistance; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCode  *GetCSCode; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidGeodeticRegion  *GetExtendedValidGeodeticRegion; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_EC_GetSRFParameters  *GetSRFParameters; 
  SRM_GetSurfaceCoordinateValuesEH  *GetSurfaceCoordinateValues; 
  SRM_GetValidGeodeticRegion  *GetValidGeodeticRegion; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_MapAzimuth  *MapAzimuth; 
  SRM_PromoteSurfaceCoordinateEH  *PromoteSurfaceCoordinate; 
  SRM_PointScale  *PointScale; 
  SRM_SetExtendedValidGeodeticRegion  *SetExtendedValidGeodeticRegion; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidGeodeticRegion  *SetValidGeodeticRegion; 
  SRM_SetValidRegion  *SetValidRegion; 
  SRM_VerticalOffset  *VerticalOffset;
} SRM_EC_Method_List;
typedef struct {
  void  *state;
  SRM_EC_Method_List  *methods; 
} SRM_EquidistanceCylindrical;
typedef SRM_Status_Code SRM_HAEC_Create (
  SRM_ORM  orm,
  SRM_HeliosphericAriesEcliptic  *new_srf  /* OUT */ 
);
typedef struct {
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_HAEC_Create  *Create; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_Generating3D  *Generating3D; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCodes  *GetCSCodes; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidRegion  *SetValidRegion;
} SRM_HAEC_Method_List;
typedef struct {
  void  *state;
  SRM_HAEC_Method_List  *methods; 
} SRM_HeliosphericAriesEcliptic;
typedef SRM_Status_Code SRM_HEEC_Create (
  SRM_ORM  orm,
  SRM_HeliosphericEarthEcliptic  *new_srf  /* OUT */ 
);
typedef struct {
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_HEEC_Create  *Create; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_Generating3D  *Generating3D; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCodes  *GetCSCodes; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidRegion  *SetValidRegion;
} SRM_HEEC_Method_List;
typedef struct {
  void  *state;
  SRM_HEEC_Method_List  *methods; 
} SRM_HeliosphericEarthEcliptic;
typedef SRM_Status_Code SRM_HEEQ_Create (
  SRM_ORM  orm,
  SRM_HeliosphericEarthEquatorial  *new_srf  /* OUT */ 
);
typedef struct {
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_HEEQ_Create  *Create; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_Generating3D  *Generating3D; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCodes  *GetCSCodes; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidRegion  *SetValidRegion;
} SRM_HEEC_Method_List;
typedef struct {
  void  *state;
  SRM_HEEQ_Method_List  *methods; 
} SRM_HeliosphericEarthEquatorial;
typedef SRM_Status_Code SRM_LCC_Create (
  SRM_ORM  orm,
  SRM_LambertConformalConic  *new_srf  /* OUT */ 
);
typedef SRM_Status_Code SRM_LCC_GetSRFParameters (
  SRM_Object_Reference  *this, 
  SRM_Lambert_Conformal_Conic_Parameters  **parameters  /* OUT */
);
typedef struct {
  SRM_AssociateSurfaceCoordinateEH  *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_LCC_Create  *Create; 
  SRM_ConvergenceOfTheMeridian  *ConvergenceOfTheMeridian; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_CreateLocalTangentPlaneEuclideanSRF  *CreateLocalTangentPlaneEuclideanSRF; 
  SRM_CreateSurfaceCoordinateEH  *CreateSurfaceCoordinate; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_EuclideanDistanceEH  *EuclideanDistanceEH; 
  SRM_Generating3D  *Generating3D; 
  SRM_GeodesicDistance  *GeodesicDistance; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCode  *GetCSCode; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidGeodeticRegion  *GetExtendedValidGeodeticRegion; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_LCC_GetSRFParameters  *GetSRFParameters; 
  SRM_GetSurfaceCoordinateValuesEH  *GetSurfaceCoordinateValues; 
  SRM_GetValidGeodeticRegion  *GetValidGeodeticRegion; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_MapAzimuth  *MapAzimuth; 
  SRM_PromoteSurfaceCoordinateEH  *PromoteSurfaceCoordinate; 
  SRM_PointScale  *PointScale; 
  SRM_SetExtendedValidGeodeticRegion  *SetExtendedValidGeodeticRegion; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidGeodeticRegion  *SetValidGeodeticRegion; 
  SRM_SetValidRegion  *SetValidRegion; 
  SRM_VerticalOffset  *VerticalOffset;
} SRM_LCC_Method_List;
typedef struct {
  void  *state;
  SRM_LCC_Method_List  *methods; 
} SRM_LambertConformalConic;
typedef SRM_Status_Code SRM_LSA_Create (
  SRM_ORM  orm,
  SRM_LocalSpaceAzimuthal  *new_srf  /* OUT */ 
);

typedef struct {
  SRM_ChangeCoordinate2DSRF  *ChangeCoordinate2DSRF; 
  SRM_ChangeCoordinate2DSRFObject  *ChangeCoordinate2DSRFObject; 
  SRM_LSA_Create  *Create; 
  SRM_CreateCoordinate2D  *CreateCoordinate2D; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance2D  *EuclideanDistance2D; 
  SRM_Generating2D  *Generating2D; 
  SRM_GetCoordinate2DValues  *GetCoordinate2DValues; 
  SRM_GetCSCodes  *GetCSCodes; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_InverseGenerating2  *InverseGenerating2D;
} SRM_LSA_Method_List;
typedef struct {
  void  *state;
  SRM_LSA_Method_List  *methods; 
} SRM_LocalSpaceAzimuthal;
typedef SRM_Status_Code SRM_LSP_Create (
  SRM_ORM  orm,
  SRM_LocalSpacePolar  *new_srf  /* OUT */ 
);
typedef struct {
  void  *state;
  SRM_ChangeCoordinate2DSRF  *ChangeCoordinate2DSRF; 
  SRM_ChangeCoordinate2DSRFObject  *ChangeCoordinate2DSRFObject; 
  SRM_LSP_Create  *Create; 
  SRM_CreateCoordinate2D  *CreateCoordinate2D; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance2D  *EuclideanDistance2D; 
  SRM_Generating2D  *Generating2D; 
  SRM_GetCoordinate2DValues  *GetCoordinate2DValues; 
  SRM_GetCSCodes  *GetCSCodes; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_InverseGenerating2  *InverseGenerating2D;
} SRM_LSP_Method_List;
typedef struct {
  void  *state;
  SRM_LSP_Method_List  *methods; 
} SRM_LocalSpacePolar;
typedef SRM_Status_Code SRM_LSR2D_Create (
        SRM_ORM  orm,
  const SRM_Local_Space_Rectangular_2D_Parameters  srf_parameters,
        SRM_LocalSpaceRectangular2D  *new_srf  /* OUT */
);
typedef SRM_Status_Code SRM_LSR2D_GetSRFParameters (
  SRM_Local_Space_Rectangular_2D_Parameters  **parameters  /* OUT */
);
typedef struct {
  SRM_ChangeCoordinate2DSRF  *ChangeCoordinate2DSRF; 
  SRM_ChangeCoordinate2DSRFObject  *ChangeCoordinate2DSRFObject; 
  SRM_LSR2D_Create  *Create; 
  SRM_CreateCoordinate2D  *CreateCoordinate2D; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance2D  *EuclideanDistance2D; 
  SRM_Generating2D  *Generating2D; 
  SRM_GetCoordinate2DValues  *GetCoordinate2DValues; 
  SRM_GetCSCodes  *GetCSCodes; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_InverseGenerating2  *InverseGenerating2D;
} SRM_LSR2D_Method_List;
typedef struct {
  void  *state;
  SRM_LSR2D_Method_List  *methods; 
} SRM_LocalSpaceRectangular2D;
typedef SRM_Status_Code SRM_LSP_Create (
  SRM_ORM  orm,
  SRM_LocalSpaceRectangular3D  *new_srf  /* OUT */ 
);
typedef SRM_Status_Code SRM_LSR3D_GetSRFParameters (
  SRM_Object_Reference  *this, 
        SRM_Local_Space_Rectangular_3D_Parameters  **parameters  /* OUT */
);
typedef struct {
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_LSR3D_Create  *Create; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_Generating3D  *Generating3D; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCodes  *GetCSCodes; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidRegion  *SetValidRegion;
} SRM_LSR3D_Method_List;
typedef struct {
  void  *state;
  SRM_LSR3D_Method_List  *methods; 
} SRM_LocalSpaceRectangular3D;
typedef SRM_Status_Code SRM_LTSAS_Create (
        SRM_ORM  orm,
  const SRM_Local_Tangent_Space_Azimuthal_Parameters  parameters,
        SRM_LocalTangentSpaceAzimuthalSpherical  *new_srf  /* OUT */
);
typedef SRM_Status_Code SRM_LTSAS_GetSRFParameters (
  SRM_Object_Reference  *this, 
  SRM_Local_Tangent_Parameters  *parameters  /* OUT */
);
typedef struct {
  SRM_AssociateSurfaceCoordinateTPS  *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_LTSAS_Create  *Create; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_CreateSurfaceCoordinateTPS  *CreateSurfaceCoordinate; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_EuclideanDistanceTPS  *EuclideanDistanceTPS; 
  SRM_Generating3D  *Generating3D; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCodes  *GetCSCodes; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_LTSAS_GetSRFParameters  *GetSRFParameters; 
  SRM_GetSurfaceCoordinateValuesTPS  *GetSurfaceCoordinateValues; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_PromoteSurfaceCoordinateTPS  *PromoteSurfaceCoordinate; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidRegion  *SetValidRegion;
} SRM_LTSAS_Method_List;
typedef struct {
  void  *state;
  SRM_LTSAS_Method_List  *methods; 
} SRM_LocalTangentSpaceAzimuthalSpherical;
typedef SRM_Status_Code SRM_LTSC_Create (
  SRM_ORM  orm,
  SRM_LocalTangentSpaceCylindrical  *new_srf  /* OUT */ 
);
typedef SRM_Status_Code SRM_LTSC_GetSRFParameters (
  SRM_Object_Reference  *this, 
  SRM_Local_Tangent_Parameters  **parameters  /* OUT */
);
typedef struct {
  SRM_AssociateSurfaceCoordinateTPS  *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_LTSC_Create  *Create; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_CreateSurfaceCoordinateTPS  *CreateSurfaceCoordinate; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_EuclideanDistanceTPS  *EuclideanDistanceTPS; 
  SRM_Generating3D  *Generating3D; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCodes  *GetCSCodes; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_LTSC_GetSRFParameters  *GetSRFParameters; 
  SRM_GetSurfaceCoordinateValuesTPS  *GetSurfaceCoordinateValues; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_PromoteSurfaceCoordinateTPS  *PromoteSurfaceCoordinate; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidRegion  *SetValidRegion;
} SRM_LTSC_Method_List;
typedef struct {
  void  *state;
  SRM_LTSC_Method_List  *methods; 
} SRM_LocalTangentSpaceCylindrical;
typedef SRM_Status_Code SRM_LTSE_Create (
  SRM_ORM  orm,
  SRM_LocalTangentSpaceEuclidean  *new_srf  /* OUT */ 
);
typedef SRM_Status_Code SRM_LTSE_GetSRFParameters (
  SRM_Object_Reference  *this, 
  SRM_Local_Tangent_Space_Euclidean_Parameters  **parameters  /* OUT */
);
typedef struct {
  SRM_AssociateSurfaceCoordinateTPS  *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_LTSE_Create  *Create; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_CreateSurfaceCoordinateTPS  *CreateSurfaceCoordinate; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_EuclideanDistanceTPS  *EuclideanDistanceTPS; 
  SRM_Generating3D  *Generating3D; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCodes  *GetCSCodes; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_LTSE_GetSRFParameters  *GetSRFParameters; 
  SRM_GetSurfaceCoordinateValuesTPS  *GetSurfaceCoordinateValues; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_PromoteSurfaceCoordinateTPS  *PromoteSurfaceCoordinate; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidRegion  *SetValidRegion;
} SRM_LTSE_Method_List;
typedef struct {
  void  *state;
  SRM_LTSE_Method_List  *methods; 
} SRM_LocalTangentSpaceEuclidean;
typedef SRM_Status_Code SRM_M_Create (
  SRM_ORM  orm,
  SRM_Mercator  *new_srf  /* OUT */
);
typedef SRM_Status_Code SRM_M_GetSRFParameters (
  SRM_Object_Reference  *this, 
  SRM_Mercator_Parameters  **parameters  /* OUT */
);
typedef struct {
  SRM_AssociateSurfaceCoordinateEH  *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_M_Create  *Create; 
  SRM_ConvergenceOfTheMeridian  *ConvergenceOfTheMeridian; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_CreateLocalTangentPlaneEuclideanSRF  *CreateLocalTangentPlaneEuclideanSRF; 
  SRM_CreateSurfaceCoordinateEH  *CreateSurfaceCoordinate; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_EuclideanDistanceEH  *EuclideanDistanceEH; 
  SRM_Generating3D  *Generating3D; 
  SRM_GeodesicDistance  *GeodesicDistance; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCode  *GetCSCode; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidGeodeticRegion  *GetExtendedValidGeodeticRegion; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_M_GetSRFParameters  *GetSRFParameters; 
  SRM_GetSurfaceCoordinateValuesEH  *GetSurfaceCoordinateValues; 
  SRM_GetValidGeodeticRegion  *GetValidGeodeticRegion; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_MapAzimuth  *MapAzimuth; 
  SRM_PromoteSurfaceCoordinateEH  *PromoteSurfaceCoordinate; 
  SRM_PointScale  *PointScale; 
  SRM_SetExtendedValidGeodeticRegion  *SetExtendedValidGeodeticRegion; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidGeodeticRegion  *SetValidGeodeticRegion; 
  SRM_SetValidRegion  *SetValidRegion; 
  SRM_VerticalOffset  *VerticalOffset;
} SRM_M_Method_List;
typedef struct {
  void  *state;
  SRM_M_Method_List  *methods; 
} SRM_Mercator;
typedef SRM_Status_Code SRM_OM_Create (
  SRM_ORM  orm,
  SRM_ObliqueMercator  *new_srf  /* OUT */
);
typedef SRM_Status_Code SRM_OM_GetSRFParameters (
  SRM_Object_Reference  *this, 
  SRM_Oblique_Mercator_Parameters  **parameters  /* OUT */
);
typedef struct {
  SRM_AssociateSurfaceCoordinateEH  *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_OM_Create  *Create; 
  SRM_ConvergenceOfTheMeridian  *ConvergenceOfTheMeridian; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_CreateLocalTangentPlaneEuclideanSRF  *CreateLocalTangentPlaneEuclideanSRF; 
  SRM_CreateSurfaceCoordinateEH  *CreateSurfaceCoordinate; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_EuclideanDistanceEH  *EuclideanDistanceEH; 
  SRM_Generating3D  *Generating3D; 
  SRM_GeodesicDistance  *GeodesicDistance; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCode  *GetCSCode; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidGeodeticRegion  *GetExtendedValidGeodeticRegion; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_OM_GetSRFParameters  *GetSRFParameters; 
  SRM_GetSurfaceCoordinateValuesEH  *GetSurfaceCoordinateValues; 
  SRM_GetValidGeodeticRegion  *GetValidGeodeticRegion; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_MapAzimuth  *MapAzimuth; 
  SRM_PromoteSurfaceCoordinateEH  *PromoteSurfaceCoordinate; 
  SRM_PointScale  *PointScale; 
  SRM_SetExtendedValidGeodeticRegion  *SetExtendedValidGeodeticRegion; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidGeodeticRegion  *SetValidGeodeticRegion; 
  SRM_SetValidRegion  *SetValidRegion; 
  SRM_VerticalOffset  *VerticalOffset;
} SRM_OM_Method_List;
typedef struct {
  void  *state;
  SRM_OM_Method_List  *methods; 
} SRM_ObliqueMercatorSpherical;
typedef SRM_Status_Code SRM_PD_Create (
  SRM_ORM  orm,
  SRM_Planetodetic  *new_srf  /* OUT */
);
typedef struct {
  SRM_AssociateSurfaceCoordinateEH  *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_PD_Create  *Create; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_CreateLocalTangentSpaceEuclideanSRF  *CreateLocalTangentSpaceEuclideanSRF; 
  SRM_CreateSurfaceCoordinateEH  *CreateSurfaceCoordinate; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_EuclideanDistanceEH  *EuclideanDistanceEH; 
  SRM_Generating3D  *Generating3D; 
  SRM_GeodesicDistance  *GeodesicDistance; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCodes  *GetCSCodes; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_GetSurfaceCoordinateValuesEH  *GetSurfaceCoordinateValues; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_PromoteSurfaceCoordinateEH  *PromoteSurfaceCoordinate; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidRegion  *SetValidRegion; 
  SRM_VerticalOffset  *VerticalOffset;
} SRM_PD_Method_List;
typedef struct {
  void  *state;
  SRM_PD_Method_List  *methods; 
} SRM_Planetodetic;
typedef SRM_Status_Code SRM_PS_Create (
        SRM_ORM  orm,
  const SRM_Polar_Stereographic_Parameters  parameters,
        SRM_PolarStereographic  *new_srf  /* OUT */
);
typedef SRM_Status_Code SRM_PS_GetSRFParameters (
  SRM_Object_Reference  *this, 
  SRM_Polar_Stereographic_Parameters  **parameters  /* OUT */
);
typedef struct {
  SRM_AssociateSurfaceCoordinateEH  *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_PS_Create  *Create; 
  SRM_ConvergenceOfTheMeridian  *ConvergenceOfTheMeridian; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_CreateLocalTangentPlaneEuclideanSRF  *CreateLocalTangentPlaneEuclideanSRF; 
  SRM_CreateSurfaceCoordinateEH  *CreateSurfaceCoordinate; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_EuclideanDistanceEH  *EuclideanDistanceEH; 
  SRM_Generating3D  *Generating3D; 
  SRM_GeodesicDistance  *GeodesicDistance; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCode  *GetCSCode; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidGeodeticRegion  *GetExtendedValidGeodeticRegion; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_PS_GetSRFParameters  *GetSRFParameters; 
  SRM_GetSurfaceCoordinateValuesEH  *GetSurfaceCoordinateValues; 
  SRM_GetValidGeodeticRegion  *GetValidGeodeticRegion; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_MapAzimuth  *MapAzimuth; 
  SRM_PromoteSurfaceCoordinateEH  *PromoteSurfaceCoordinate; 
  SRM_PointScale  *PointScale; 
  SRM_SetExtendedValidGeodeticRegion  *SetExtendedValidGeodeticRegion; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidGeodeticRegion  *SetValidGeodeticRegion; 
  SRM_SetValidRegion  *SetValidRegion; 
  SRM_VerticalOffset  *VerticalOffset;
} SRM_PS_Method_List;
typedef struct {
  void  *state;
  SRM_PS_Method_List  *methods; 
} SRM_PolarStereographic;
typedef struct {
  SRM_Destroy  *destroy; 
} SRM_Position2D_Method_List;
typedef struct {
  void  *state;
  SRM_Position2D_Method_List  *methods; 
} SRM_Position2D;
typedef struct {
  SRM_Destroy  *destroy; 
} SRM_Position3D_Method_List;
typedef struct {
  void  *state;
  SRM_Position3D_Method_List  *methods; 
} SRM_Position3D;
typedef SRM_Status_Code SRM_SE_Create (
  SRM_ORM  orm,
  SRM_SolarEcliptic  *new_srf  /* OUT */
);
typedef struct {
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_SE_Create  *Create; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_Generating3D  *Generating3D; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCodes  *GetCSCodes; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidRegion  *SetValidRegion;
} SRM_SE_Method_List;
typedef struct {
  void  *state;
  SRM_SE_Method_List  *methods; 
} SRM_SolarEcliptic;
typedef SRM_Status_Code SRM_SEQ_Create (
  SRM_ORM  orm,
  SRM_SolarEquatorial  *new_srf  /* OUT */
);
typedef struct {
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_SEQ_Create  *Create; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_Generating3D  *Generating3D; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCodes  *GetCSCodes; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidRegion  *SetValidRegion;
} SRM_SEQ_Method_List;
typedef struct {
  void  *state;
  SRM_SEQ_Method_List  *methods; 
} SRM_SolarEquatorial;
typedef SRM_Status_Code SRM_SMD_Create (
  SRM_ORM  orm,
  SRM_SolarMagneticDipole  *new_srf  /* OUT */
);
typedef struct {
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_SMD_Create  *Create; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_Generating3D  *Generating3D; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCodes  *GetCSCodes; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidRegion  *SetValidRegion;
} SRM_SMD_Method_List;
typedef struct {
  void  *state;
  SRM_SMD_Method_List  *methods; 
} SRM_SolarMagneticDipole;
typedef SRM_Status_Code SRM_SME_Create (
  SRM_ORM  orm,
  SRM_SolarMagneticEcliptic  *new_srf  /* OUT */
);
typedef struct {
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_SME_Create  *Create; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_Generating3D  *Generating3D; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCodes  *GetCSCodes; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidRegion  *SetValidRegion;
} SRM_SME_Method_List;
typedef struct {
  void  *state;
  SRM_SME_Method_List  *methods; 
} SRM_SolarMagneticEcliptic;
typedef struct {
  SRM_Destroy  *destroy; 
} SRM_SurfaceCoordinate_Method_List;
typedef struct {
  void  *state;
  SRM_SurfaceCoordinate_Method_List  *methods; 
} SRM_SurfaceCoordinate;
typedef SRM_Status_Code SRM_TM_Create (
  SRM_ORM  orm,
  SRM_ObliqueMercator  *new_srf  /* OUT */
);
typedef SRM_Status_Code SRM_TM_GetSRFParameters (
  SRM_Object_Reference  *this, 
        SRM_Mercator_Parameters  **parameters  /* OUT */
);
typedef struct {
  SRM_AssociateSurfaceCoordinateEH  *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DSRF  *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject  *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionSRF  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject  *ChangeDirectionSRFObject; 
  SRM_TM_Create  *Create; 
  SRM_ConvergenceOfTheMeridian  *ConvergenceOfTheMeridian; 
  SRM_CreateCoordinate3D  *CreateCoordinate3D; 
  SRM_CreateDirection  *CreateDirection; 
  SRM_CreateLocalTangentPlaneEuclideanSRF  *CreateLocalTangentPlaneEuclideanSRF; 
  SRM_CreateSurfaceCoordinateEH  *CreateSurfaceCoordinate; 
  SRM_Destroy  *Destroy; 
  SRM_EuclideanDistance3D  *EuclideanDistance3D; 
  SRM_EuclideanDistanceEH  *EuclideanDistanceEH; 
  SRM_Generating3D  *Generating3D; 
  SRM_GeodesicDistance  *GeodesicDistance; 
  SRM_GetCoordinate3DValues  *GetCoordinate3DValues; 
  SRM_GetCSCode  *GetCSCode; 
  SRM_GetDirectionValues  *GetDirectionValues; 
  SRM_GetExtendedValidGeodeticRegion  *GetExtendedValidGeodeticRegion; 
  SRM_GetExtendedValidRegion  *GetExtendedValidRegion; 
  SRM_GetORMCodes  *GetORMCodes; 
  SRM_GetSRFCodes  *GetSRFCodes; 
  SRM_TM_GetSRFParameters  *GetSRFParameters; 
  SRM_GetSurfaceCoordinateValuesEH  *GetSurfaceCoordinateValues; 
  SRM_GetValidGeodeticRegion  *GetValidGeodeticRegion; 
  SRM_GetValidRegion  *GetValidRegion; 
  SRM_InverseGenerating3D  *InverseGenerating3D; 
  SRM_MapAzimuth  *MapAzimuth; 
  SRM_PromoteSurfaceCoordinateEH  *PromoteSurfaceCoordinate; 
  SRM_PointScale  *PointScale; 
  SRM_SetExtendedValidGeodeticRegion  *SetExtendedValidGeodeticRegion; 
  SRM_SetExtendedValidRegion  *SetExtendedValidRegion; 
  SRM_SetValidGeodeticRegion  *SetValidGeodeticRegion; 
  SRM_SetValidRegion  *SetValidRegion; 
  SRM_VerticalOffset  *VerticalOffset;
} SRM_TM_Method_List;
typedef struct {
  void  *state;
  SRM_TM_Method_List  *methods; 
} SRM_TransverseMercator;
typedef SRM_Status_Code SRM_CreateSRFSetMember (
  SRM_SRFS_Code  srfs_code,
  SRM_SRFS_Member_Code  srf_member_code,
  SRM_ORM  orm,
  SRM_ObjectReference  *new_srf  /* OUT */
);

typedef SRM_Status_Code SRM_CreateStandardSRF (
  SRM_SRF_Code  srf_code,
  SRM_ObjectReference  *new_srf  /* OUT */
);

http://www.iso.ch/iso/en/ittf/PubliclyAvailableStandards/ISO_IEC_18042-4_Ed1.html