A.2

Replace the content of A.2 with the following:

typedef unsigned long SRM_Integer_Positive;
typedef long SRM_Integer;
typedef double SRM_Long_Float;
typedef enum {
  SRM_FALSE = 0,
  SRM_TRUE = 1
} SRM_Boolean;

typedef void* SRM_Object_Reference;
#define NULL_Object ((SRM_Object_Reference)(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_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_NORTH,
  SRM_PLRASP_SOUTH
} SRM_Polar_Aspect;
typedef SRM_Integer SRM_CS_Code;
#define SRM_CSCOD_UNSPECIFIED                      ((SRM_CS_Code)(0))
#define SRM_CSCOD_EUCLIDEAN_3D                     ((SRM_CS_Code)(1))
#define SRM_CSCOD_LOCOCENT_EUCLIDEAN_3D            ((SRM_CS_Code)(2))
#define SRM_CSCOD_EQUATORIAL_SPHERICAL             ((SRM_CS_Code)(3))
#define SRM_CSCOD_LOCOCENT_EQUATORIAL_SPHERICAL    ((SRM_CS_Code)(4))
#define SRM_CSCOD_AZIMUTHAL_SPHERICAL              ((SRM_CS_Code)(5))
#define SRM_CSCOD_LOCOCENT_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_LOCOCENTRIC_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_LOCOCENT_EUCLIDEAN_2D            ((SRM_CS_Code)(23))
#define SRM_CSCOD_AZIMUTHAL                        ((SRM_CS_Code)(24))
#define SRM_CSCOD_LOCOCENT_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_DSS_Code;
#define SRM_DSSCOD_UNSPECIFIED     ((SRM_DSS_Code)(0))
#define SRM_DSSCOD_EGM96_GEOID     ((SRM_DSS_Code)(1))
#define SRM_DSSCOD_IGLD_1955       ((SRM_DSS_Code)(2))
#define SRM_DSSCOD_IGLD_1985       ((SRM_DSS_Code)(3))
#define SRM_DSSCOD_MSL             ((SRM_DSS_Code)(4))
#define SRM_DSSCOD_NAVD_1988       ((SRM_DSS_Code)(5))
#define SRM_DSSCOD_NGVD_1929       ((SRM_DSS_Code)(6))
#define SRM_DSSCOD_OSGM_2002       ((SRM_DSS_Code)(7))
#define SRM_DSSCOD_WGS84_ELLIPSOID ((SRM_DSS_Code)(8))
#define SRM_DSSCOD_EGM84_GEOID     ((SRM_DSS_Code)(9))
typedef SRM_Integer SRM_OBRS_Code;
#define SRM_OBRSCOD_UNSPECIFIED                    ((SRM_OBRS_Code)(0))
#define SRM_OBRSCOD_EQUATORIAL_INTERTIAL           ((SRM_OBRS_Code)(1))
#define SRM_OBRSCOD_SOLAR_ECLIPTIC                 ((SRM_OBRS_Code)(2))
#define SRM_OBRSCOD_SOLAR_EQUATORIAL               ((SRM_OBRS_Code)(3))
#define SRM_OBRSCOD_HELIOCENTRIC_ARIES_ECLIPTIC    ((SRM_OBRS_Code)(4))
#define SRM_OBRSCOD_HELIOCENT_PLANET_ECLIPTIC      ((SRM_OBRS_Code)(5))
#define SRM_OBRSCOD_HELIOCENT_PLANET_EQUATORIAL    ((SRM_OBRS_Code)(6))
#define SRM_OBRSCOD_CELESTIOMAGNETIC               ((SRM_OBRS_Code)(7))
#define SRM_OBRSCOD_SOLAR_MAGNETIC_ECLIPTIC        ((SRM_OBRS_Code)(8))
#define SRM_OBRSCOD_SOLAR_MAGNETIC_DIPOLE          ((SRM_OBRS_Code)(9))
typedef SRM_Integer SRM_ORM_Code;
#define SRM_ORMCOD_UNSPECIFIED                       ((SRM_ORM_Code)(0))
#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_ANNA_1_1965                       ((SRM_ORM_Code)(9))
#define SRM_ORMCOD_ANTIGUA_1943                      ((SRM_ORM_Code)(10))
#define SRM_ORMCOD_ARC_1950                          ((SRM_ORM_Code)(11))
#define SRM_ORMCOD_ARC_1960                          ((SRM_ORM_Code)(12))
#define SRM_ORMCOD_ARIEL_1988                        ((SRM_ORM_Code)(13))
#define SRM_ORMCOD_ASCENSION_1958                    ((SRM_ORM_Code)(14))
#define SRM_ORMCOD_ATLAS_1988                        ((SRM_ORM_Code)(15))
#define SRM_ORMCOD_AUSTRALIAN_GEOD_1966              ((SRM_ORM_Code)(16))
#define SRM_ORMCOD_AUSTRALIAN_GEOD_1984              ((SRM_ORM_Code)(17))
#define SRM_ORMCOD_AYABELLE_LIGHTHOUSE_1991          ((SRM_ORM_Code)(18))
#define SRM_ORMCOD_BEACON_E_1945                     ((SRM_ORM_Code)(19))
#define SRM_ORMCOD_BELINDA_1988                      ((SRM_ORM_Code)(20))
#define SRM_ORMCOD_BELLEVUE_IGN_1987                 ((SRM_ORM_Code)(21))
#define SRM_ORMCOD_BERMUDA_1957                      ((SRM_ORM_Code)(22))
#define SRM_ORMCOD_BIANCA_1988                       ((SRM_ORM_Code)(23))
#define SRM_ORMCOD_BISSAU_1991                       ((SRM_ORM_Code)(24))
#define SRM_ORMCOD_BOGOTA_OBS_1987                   ((SRM_ORM_Code)(25))
#define SRM_ORMCOD_BOGOTA_OBS_1987_PM_BOGOTA         ((SRM_ORM_Code)(26))
#define SRM_ORMCOD_BUKIT_RIMPAH_1987                 ((SRM_ORM_Code)(27))
#define SRM_ORMCOD_CALLISTO_2000                     ((SRM_ORM_Code)(28))
#define SRM_ORMCOD_CALYPSO_1988                      ((SRM_ORM_Code)(29))
#define SRM_ORMCOD_CAMP_AREA_1987                    ((SRM_ORM_Code)(30))
#define SRM_ORMCOD_CAMPO_INCHAUSPE_1969              ((SRM_ORM_Code)(31))
#define SRM_ORMCOD_CANTON_1966                       ((SRM_ORM_Code)(32))
#define SRM_ORMCOD_CAPE_1987                         ((SRM_ORM_Code)(33))
#define SRM_ORMCOD_CAPE_CANAVERAL_1991               ((SRM_ORM_Code)(34))
#define SRM_ORMCOD_CARTHAGE_1987                     ((SRM_ORM_Code)(35))
#define SRM_ORMCOD_CHARON_1991                       ((SRM_ORM_Code)(36))
#define SRM_ORMCOD_CHATHAM_1971                      ((SRM_ORM_Code)(37))
#define SRM_ORMCOD_CHUA_1987                         ((SRM_ORM_Code)(38))
#define SRM_ORMCOD_COAMPS_1998                       ((SRM_ORM_Code)(39))
#define SRM_ORMCOD_CORDELIA_1988                     ((SRM_ORM_Code)(40))
#define SRM_ORMCOD_CORREGO_ALEGRE_1987               ((SRM_ORM_Code)(41))
#define SRM_ORMCOD_CRESSIDA_1988                     ((SRM_ORM_Code)(42))
#define SRM_ORMCOD_DABOLA_1991                       ((SRM_ORM_Code)(43))
#define SRM_ORMCOD_DECEPTION_1993                    ((SRM_ORM_Code)(44))
#define SRM_ORMCOD_DEIMOS_1988                       ((SRM_ORM_Code)(45))
#define SRM_ORMCOD_DESDEMONA_1988                    ((SRM_ORM_Code)(46))
#define SRM_ORMCOD_DESPINA_1991                      ((SRM_ORM_Code)(47))
#define SRM_ORMCOD_DIONE_1982                        ((SRM_ORM_Code)(48))
#define SRM_ORMCOD_DJAKARTA_1987                     ((SRM_ORM_Code)(49))
#define SRM_ORMCOD_DJAKARTA_1987_PM_DJAKARTA         ((SRM_ORM_Code)(50))
#define SRM_ORMCOD_DOS_1968                          ((SRM_ORM_Code)(51))
#define SRM_ORMCOD_DOS_71_4_1987                     ((SRM_ORM_Code)(52))
#define SRM_ORMCOD_EARTH_INERT_ARIES_1950            ((SRM_ORM_Code)(53))
#define SRM_ORMCOD_EARTH_INERT_ARIES_TRUE_OF_DATE    ((SRM_ORM_Code)(54))
#define SRM_ORMCOD_EARTH_INERTIAL_J2000r0            ((SRM_ORM_Code)(55))
#define SRM_ORMCOD_EARTH_SOLAR_ECLIPTIC              ((SRM_ORM_Code)(56))
#define SRM_ORMCOD_EARTH_SOLAR_EQUATORIAL            ((SRM_ORM_Code)(57))
#define SRM_ORMCOD_EARTH_SOLAR_MAG_DIPOLE            ((SRM_ORM_Code)(58))
#define SRM_ORMCOD_EARTH_SOLAR_MAGNETOSPHERIC        ((SRM_ORM_Code)(59))
#define SRM_ORMCOD_EASTER_1967                       ((SRM_ORM_Code)(60))
#define SRM_ORMCOD_ENCELADUS_1994                    ((SRM_ORM_Code)(61))
#define SRM_ORMCOD_EPIMETHEUS_1988                   ((SRM_ORM_Code)(62))
#define SRM_ORMCOD_EROS_2000                         ((SRM_ORM_Code)(63))
#define SRM_ORMCOD_ESTONIA_1937                      ((SRM_ORM_Code)(64))
#define SRM_ORMCOD_ETRS_1989                         ((SRM_ORM_Code)(65))
#define SRM_ORMCOD_EUROPA_2000                       ((SRM_ORM_Code)(66))
#define SRM_ORMCOD_EUROPE_1950                       ((SRM_ORM_Code)(67))
#define SRM_ORMCOD_EUROPE_1979                       ((SRM_ORM_Code)(68))
#define SRM_ORMCOD_FAHUD_1987                        ((SRM_ORM_Code)(69))
#define SRM_ORMCOD_FORT_THOMAS_1955                  ((SRM_ORM_Code)(70))
#define SRM_ORMCOD_GALATEA_1991                      ((SRM_ORM_Code)(71))
#define SRM_ORMCOD_GAN_1970                          ((SRM_ORM_Code)(72))
#define SRM_ORMCOD_GANYMEDE_2000                     ((SRM_ORM_Code)(73))
#define SRM_ORMCOD_GASPRA_1991                       ((SRM_ORM_Code)(74))
#define SRM_ORMCOD_GDA_1994                          ((SRM_ORM_Code)(75))
#define SRM_ORMCOD_GEODETIC_DATUM_1949               ((SRM_ORM_Code)(76))
#define SRM_ORMCOD_GEOMAGNETIC_1945                  ((SRM_ORM_Code)(77))
#define SRM_ORMCOD_GEOMAGNETIC_1950                  ((SRM_ORM_Code)(78))
#define SRM_ORMCOD_GEOMAGNETIC_1955                  ((SRM_ORM_Code)(79))
#define SRM_ORMCOD_GEOMAGNETIC_1960                  ((SRM_ORM_Code)(80))
#define SRM_ORMCOD_GEOMAGNETIC_1965                  ((SRM_ORM_Code)(81))
#define SRM_ORMCOD_GEOMAGNETIC_1970                  ((SRM_ORM_Code)(82))
#define SRM_ORMCOD_GEOMAGNETIC_1975                  ((SRM_ORM_Code)(83))
#define SRM_ORMCOD_GEOMAGNETIC_1980                  ((SRM_ORM_Code)(84))
#define SRM_ORMCOD_GEOMAGNETIC_1985                  ((SRM_ORM_Code)(85))
#define SRM_ORMCOD_GEOMAGNETIC_1990                  ((SRM_ORM_Code)(86))
#define SRM_ORMCOD_GEOMAGNETIC_1995                  ((SRM_ORM_Code)(87))
#define SRM_ORMCOD_GEOMAGNETIC_2000                  ((SRM_ORM_Code)(88))
#define SRM_ORMCOD_GRACIOSA_BASE_SW_1948             ((SRM_ORM_Code)(89))
#define SRM_ORMCOD_GUAM_1963                         ((SRM_ORM_Code)(90))
#define SRM_ORMCOD_GUNONG_SEGARA_1987                ((SRM_ORM_Code)(91))
#define SRM_ORMCOD_GUX_1_1987                        ((SRM_ORM_Code)(92))
#define SRM_ORMCOD_HELENE_1992                       ((SRM_ORM_Code)(93))
#define SRM_ORMCOD_HELIO_ARIES_ECLIPT_J2000r0        ((SRM_ORM_Code)(94))
#define SRM_ORMCOD_HELIO_ARIES_ECLIPT_TRUE_OF_DATE   ((SRM_ORM_Code)(95))
#define SRM_ORMCOD_HELIO_EARTH_ECLIPTIC              ((SRM_ORM_Code)(96))
#define SRM_ORMCOD_HELIO_EARTH_EQUATORIAL            ((SRM_ORM_Code)(97))
#define SRM_ORMCOD_HERAT_NORTH_1987                  ((SRM_ORM_Code)(98))
#define SRM_ORMCOD_HERMANNSKOGEL_1871                ((SRM_ORM_Code)(99))
#define SRM_ORMCOD_HJORSEY_1955                      ((SRM_ORM_Code)(100))
#define SRM_ORMCOD_HONG_KONG_1963                    ((SRM_ORM_Code)(101))
#define SRM_ORMCOD_HU_TZU_SHAN_1991                  ((SRM_ORM_Code)(102))
#define SRM_ORMCOD_IAPETUS_1988                      ((SRM_ORM_Code)(103))
#define SRM_ORMCOD_IDA_1991                          ((SRM_ORM_Code)(104))
#define SRM_ORMCOD_INDIAN_1916                       ((SRM_ORM_Code)(105))
#define SRM_ORMCOD_INDIAN_1954                       ((SRM_ORM_Code)(106))
#define SRM_ORMCOD_INDIAN_1956                       ((SRM_ORM_Code)(107))
#define SRM_ORMCOD_INDIAN_1960                       ((SRM_ORM_Code)(108))
#define SRM_ORMCOD_INDIAN_1962                       ((SRM_ORM_Code)(109))
#define SRM_ORMCOD_INDIAN_1975                       ((SRM_ORM_Code)(110))
#define SRM_ORMCOD_INDONESIAN_1974                   ((SRM_ORM_Code)(111))
#define SRM_ORMCOD_IO_2000                           ((SRM_ORM_Code)(112))
#define SRM_ORMCOD_IRELAND_1965                      ((SRM_ORM_Code)(113))
#define SRM_ORMCOD_ISTS_061_1968                     ((SRM_ORM_Code)(114))
#define SRM_ORMCOD_ISTS_073_1969                     ((SRM_ORM_Code)(115))
#define SRM_ORMCOD_JANUS_1988                        ((SRM_ORM_Code)(116))
#define SRM_ORMCOD_JGD_2000                          ((SRM_ORM_Code)(117))
#define SRM_ORMCOD_JOHNSTON_1961                     ((SRM_ORM_Code)(118))
#define SRM_ORMCOD_JULIET_1988                       ((SRM_ORM_Code)(119))
#define SRM_ORMCOD_JUPITER_1988                      ((SRM_ORM_Code)(120))
#define SRM_ORMCOD_JUPITER_INERTIAL                  ((SRM_ORM_Code)(121))
#define SRM_ORMCOD_JUPITER_MAGNETIC_1993             ((SRM_ORM_Code)(122))
#define SRM_ORMCOD_JUPITER_SOLAR_ECLIPTIC            ((SRM_ORM_Code)(123))
#define SRM_ORMCOD_JUPITER_SOLAR_EQUATORIAL          ((SRM_ORM_Code)(124))
#define SRM_ORMCOD_JUPITER_SOLAR_MAG_DIPOLE          ((SRM_ORM_Code)(125))
#define SRM_ORMCOD_JUPITER_SOLAR_MAG_ECLIPTIC        ((SRM_ORM_Code)(126))
#define SRM_ORMCOD_KANDAWALA_1987                    ((SRM_ORM_Code)(127))
#define SRM_ORMCOD_KERGUELEN_1949                    ((SRM_ORM_Code)(128))
#define SRM_ORMCOD_KERTAU_1948                       ((SRM_ORM_Code)(129))
#define SRM_ORMCOD_KOREAN_GEODETIC_1995              ((SRM_ORM_Code)(130))
#define SRM_ORMCOD_KUSAIE_1951                       ((SRM_ORM_Code)(131))
#define SRM_ORMCOD_LARISSA_1991                      ((SRM_ORM_Code)(132))
#define SRM_ORMCOD_LC5_1961                          ((SRM_ORM_Code)(133))
#define SRM_ORMCOD_LEIGON_1991                       ((SRM_ORM_Code)(134))
#define SRM_ORMCOD_LIBERIA_1964                      ((SRM_ORM_Code)(135))
#define SRM_ORMCOD_LUZON_1987                        ((SRM_ORM_Code)(136))
#define SRM_ORMCOD_M_PORALOKO_1991                   ((SRM_ORM_Code)(137))
#define SRM_ORMCOD_MAHE_1971                         ((SRM_ORM_Code)(138))
#define SRM_ORMCOD_MARCUS_STATION_1952               ((SRM_ORM_Code)(139))
#define SRM_ORMCOD_MARS_2000                         ((SRM_ORM_Code)(140))
#define SRM_ORMCOD_MARS_INERTIAL                     ((SRM_ORM_Code)(141))
#define SRM_ORMCOD_MARS_SPHERE_2000                  ((SRM_ORM_Code)(142))
#define SRM_ORMCOD_MASS_1999                         ((SRM_ORM_Code)(143))
#define SRM_ORMCOD_MASSAWA_1987                      ((SRM_ORM_Code)(144))
#define SRM_ORMCOD_MERCHICH_1987                     ((SRM_ORM_Code)(145))
#define SRM_ORMCOD_MERCURY_1988                      ((SRM_ORM_Code)(146))
#define SRM_ORMCOD_MERCURY_INERTIAL                  ((SRM_ORM_Code)(147))
#define SRM_ORMCOD_METIS_2000                        ((SRM_ORM_Code)(148))
#define SRM_ORMCOD_MIDWAY_1961                       ((SRM_ORM_Code)(149))
#define SRM_ORMCOD_MIMAS_1994                        ((SRM_ORM_Code)(150))
#define SRM_ORMCOD_MINNA_1991                        ((SRM_ORM_Code)(151))
#define SRM_ORMCOD_MIRANDA_1988                      ((SRM_ORM_Code)(152))
#define SRM_ORMCOD_MM5_1997                          ((SRM_ORM_Code)(153))
#define SRM_ORMCOD_MODTRAN_MIDLAT_N_1989             ((SRM_ORM_Code)(154))
#define SRM_ORMCOD_MODTRAN_MIDLAT_S_1989             ((SRM_ORM_Code)(155))
#define SRM_ORMCOD_MODTRAN_SUBARCTIC_N_1989          ((SRM_ORM_Code)(156))
#define SRM_ORMCOD_MODTRAN_SUBARCTIC_S_1989          ((SRM_ORM_Code)(157))
#define SRM_ORMCOD_MODTRAN_TROPICAL_1989             ((SRM_ORM_Code)(158))
#define SRM_ORMCOD_MONTSERRAT_1958                   ((SRM_ORM_Code)(159))
#define SRM_ORMCOD_MOON_1991                         ((SRM_ORM_Code)(160))
#define SRM_ORMCOD_MULTIGEN_FLAT_EARTH_1989          ((SRM_ORM_Code)(161))
#define SRM_ORMCOD_N_AM_1927                         ((SRM_ORM_Code)(162))
#define SRM_ORMCOD_N_AM_1983                         ((SRM_ORM_Code)(163))
#define SRM_ORMCOD_N_SAHARA_1959                     ((SRM_ORM_Code)(164))
#define SRM_ORMCOD_NAHRWAN_1987                      ((SRM_ORM_Code)(165))
#define SRM_ORMCOD_NAIAD_1991                        ((SRM_ORM_Code)(166))
#define SRM_ORMCOD_NAPARIMA_1991                     ((SRM_ORM_Code)(167))
#define SRM_ORMCOD_NEPTUNE_1991                      ((SRM_ORM_Code)(168))
#define SRM_ORMCOD_NEPTUNE_INERTIAL                  ((SRM_ORM_Code)(169))
#define SRM_ORMCOD_NEPTUNE_MAGNETIC_1993             ((SRM_ORM_Code)(170))
#define SRM_ORMCOD_NOGAPS_1988                       ((SRM_ORM_Code)(171))
#define SRM_ORMCOD_NTF_1896                          ((SRM_ORM_Code)(172))
#define SRM_ORMCOD_NTF_1896_PM_PARIS                 ((SRM_ORM_Code)(173))
#define SRM_ORMCOD_OBERON_1988                       ((SRM_ORM_Code)(174))
#define SRM_ORMCOD_OBSERV_METEORO_1939               ((SRM_ORM_Code)(175))
#define SRM_ORMCOD_OLD_EGYPTIAN_1907                 ((SRM_ORM_Code)(176))
#define SRM_ORMCOD_OLD_HAWAIIAN_CLARKE_1987          ((SRM_ORM_Code)(177))
#define SRM_ORMCOD_OLD_HAWAIIAN_INT_1987             ((SRM_ORM_Code)(178))
#define SRM_ORMCOD_OPHELIA_1988                      ((SRM_ORM_Code)(179))
#define SRM_ORMCOD_OSGB_1936                         ((SRM_ORM_Code)(180))
#define SRM_ORMCOD_PAN_1991                          ((SRM_ORM_Code)(181))
#define SRM_ORMCOD_PANDORA_1988                      ((SRM_ORM_Code)(182))
#define SRM_ORMCOD_PHOBOS_1988                       ((SRM_ORM_Code)(183))
#define SRM_ORMCOD_PHOEBE_1988                       ((SRM_ORM_Code)(184))
#define SRM_ORMCOD_PICO_DE_LAS_NIEVES_1987           ((SRM_ORM_Code)(185))
#define SRM_ORMCOD_PITCAIRN_1967                     ((SRM_ORM_Code)(186))
#define SRM_ORMCOD_PLUTO_1994                        ((SRM_ORM_Code)(187))
#define SRM_ORMCOD_PLUTO_INERTIAL                    ((SRM_ORM_Code)(188))
#define SRM_ORMCOD_POINT_58_1991                     ((SRM_ORM_Code)(189))
#define SRM_ORMCOD_POINTE_NOIRE_1948                 ((SRM_ORM_Code)(190))
#define SRM_ORMCOD_PORTIA_1988                       ((SRM_ORM_Code)(191))
#define SRM_ORMCOD_PORTO_SANTO_1936                  ((SRM_ORM_Code)(192))
#define SRM_ORMCOD_PROMETHEUS_1988                   ((SRM_ORM_Code)(193))
#define SRM_ORMCOD_PROTEUS_1991                      ((SRM_ORM_Code)(194))
#define SRM_ORMCOD_PROV_S_AM_1956                    ((SRM_ORM_Code)(195))
#define SRM_ORMCOD_PROV_S_CHILEAN_1963               ((SRM_ORM_Code)(196))
#define SRM_ORMCOD_PUCK_1988                         ((SRM_ORM_Code)(197))
#define SRM_ORMCOD_PUERTO_RICO_1987                  ((SRM_ORM_Code)(198))
#define SRM_ORMCOD_PULKOVO_1942                      ((SRM_ORM_Code)(199))
#define SRM_ORMCOD_QATAR_NATIONAL_1974               ((SRM_ORM_Code)(200))
#define SRM_ORMCOD_QORNOQ_1987                       ((SRM_ORM_Code)(201))
#define SRM_ORMCOD_REUNION_1947                      ((SRM_ORM_Code)(202))
#define SRM_ORMCOD_RGF_1993                          ((SRM_ORM_Code)(203))
#define SRM_ORMCOD_RHEA_1988                         ((SRM_ORM_Code)(204))
#define SRM_ORMCOD_ROME_1940                         ((SRM_ORM_Code)(205))
#define SRM_ORMCOD_ROME_1940_PM_ROME                 ((SRM_ORM_Code)(206))
#define SRM_ORMCOD_ROSALIND_1988                     ((SRM_ORM_Code)(207))
#define SRM_ORMCOD_S_AM_1969                         ((SRM_ORM_Code)(208))
#define SRM_ORMCOD_S_ASIA_1987                       ((SRM_ORM_Code)(209))
#define SRM_ORMCOD_S_JTSK_1993                       ((SRM_ORM_Code)(210))
#define SRM_ORMCOD_S42_PULKOVO                       ((SRM_ORM_Code)(211))
#define SRM_ORMCOD_SANTO_DOS_1965                    ((SRM_ORM_Code)(212))
#define SRM_ORMCOD_SAO_BRAZ_1987                     ((SRM_ORM_Code)(213))
#define SRM_ORMCOD_SAPPER_HILL_1943                  ((SRM_ORM_Code)(214))
#define SRM_ORMCOD_SATURN_1988                       ((SRM_ORM_Code)(215))
#define SRM_ORMCOD_SATURN_INERTIAL                   ((SRM_ORM_Code)(216))
#define SRM_ORMCOD_SATURN_MAGNETIC_1993              ((SRM_ORM_Code)(217))
#define SRM_ORMCOD_SCHWARZECK_1991                   ((SRM_ORM_Code)(218))
#define SRM_ORMCOD_SELVAGEM_GRANDE_1938              ((SRM_ORM_Code)(219))
#define SRM_ORMCOD_SIERRA_LEONE_1960                 ((SRM_ORM_Code)(220))
#define SRM_ORMCOD_SIRGAS_2000                       ((SRM_ORM_Code)(221))
#define SRM_ORMCOD_SUN_1992                          ((SRM_ORM_Code)(222))
#define SRM_ORMCOD_TANANARIVE_OBS_1925               ((SRM_ORM_Code)(223))
#define SRM_ORMCOD_TANANARIVE_OBS_1925_PM_PARIS      ((SRM_ORM_Code)(224))
#define SRM_ORMCOD_TELESTO_1988                      ((SRM_ORM_Code)(225))
#define SRM_ORMCOD_TERN_1961                         ((SRM_ORM_Code)(226))
#define SRM_ORMCOD_TETHYS_1991                       ((SRM_ORM_Code)(227))
#define SRM_ORMCOD_THALASSA_1991                     ((SRM_ORM_Code)(228))
#define SRM_ORMCOD_THEBE_2000                        ((SRM_ORM_Code)(229))
#define SRM_ORMCOD_TIMBALAI_EVEREST_1948             ((SRM_ORM_Code)(230))
#define SRM_ORMCOD_TITAN_1982                        ((SRM_ORM_Code)(231))
#define SRM_ORMCOD_TITANIA_1988                      ((SRM_ORM_Code)(232))
#define SRM_ORMCOD_TOKYO_1991                        ((SRM_ORM_Code)(233))
#define SRM_ORMCOD_TRISTAN_1968                      ((SRM_ORM_Code)(234))
#define SRM_ORMCOD_TRITON_1991                       ((SRM_ORM_Code)(235))
#define SRM_ORMCOD_UMBRIEL_1988                      ((SRM_ORM_Code)(236))
#define SRM_ORMCOD_URANUS_1988                       ((SRM_ORM_Code)(237))
#define SRM_ORMCOD_URANUS_INERTIAL                   ((SRM_ORM_Code)(238))
#define SRM_ORMCOD_URANUS_MAGNETIC_1993              ((SRM_ORM_Code)(239))
#define SRM_ORMCOD_VENUS_1991                        ((SRM_ORM_Code)(240))
#define SRM_ORMCOD_VENUS_INERTIAL                    ((SRM_ORM_Code)(241))
#define SRM_ORMCOD_VITI_LEVU_1916                    ((SRM_ORM_Code)(242))
#define SRM_ORMCOD_VOIROL_1874                       ((SRM_ORM_Code)(243))
#define SRM_ORMCOD_VOIROL_1874_PM_PARIS              ((SRM_ORM_Code)(244))
#define SRM_ORMCOD_VOIROL_1960                       ((SRM_ORM_Code)(245))
#define SRM_ORMCOD_VOIROL_1960_PM_PARIS              ((SRM_ORM_Code)(246))
#define SRM_ORMCOD_WAKE_1952                         ((SRM_ORM_Code)(247))
#define SRM_ORMCOD_WAKE_ENIWETOK_1960                ((SRM_ORM_Code)(248))
#define SRM_ORMCOD_WGS_1972                          ((SRM_ORM_Code)(249))
#define SRM_ORMCOD_WGS_1984                          ((SRM_ORM_Code)(250))
#define SRM_ORMCOD_YACARE_1987                       ((SRM_ORM_Code)(251))
#define SRM_ORMCOD_ZANDERIJ_1987                     ((SRM_ORM_Code)(252))
typedef SRM_Integer SRM_ORMT_Code;
#define SRM_ORMTCOD_UNSPECIFIED             ((SRM_ORMT_Code)(0))
#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_SPHERE_ORIGIN           ((SRM_ORMT_Code)(7))
#define SRM_ORMTCOD_OBLATE_ELLIPSOID_ORIGIN ((SRM_ORMT_Code)(8))
#define SRM_ORMTCOD_TRI_PLANE               ((SRM_ORMT_Code)(9))
typedef SRM_Integer SRM_RD_Code;
#define SRM_RDCOD_UNSPECIFIED                ((SRM_RD_Code)(0))
#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))
#define SRM_RDCOD_ADRASTEA_2000              ((SRM_RD_Code)(16))
#define SRM_RDCOD_AIRY_1830                  ((SRM_RD_Code)(17))
#define SRM_RDCOD_AMALTHEA_2000              ((SRM_RD_Code)(18))
#define SRM_RDCOD_ANANKE_1988                ((SRM_RD_Code)(19))
#define SRM_RDCOD_APL_4r5_1968               ((SRM_RD_Code)(20))
#define SRM_RDCOD_ARIEL_1988                 ((SRM_RD_Code)(21))
#define SRM_RDCOD_ATLAS_1988                 ((SRM_RD_Code)(22))
#define SRM_RDCOD_AUSTRALIAN_NATIONAL_1966   ((SRM_RD_Code)(23))
#define SRM_RDCOD_AVERAGE_TERRESTRIAL_1977   ((SRM_RD_Code)(24))
#define SRM_RDCOD_BELINDA_1988               ((SRM_RD_Code)(25))
#define SRM_RDCOD_BESSEL_1841_ETHIOPIA       ((SRM_RD_Code)(26))
#define SRM_RDCOD_BESSEL_1841_NAMBIA         ((SRM_RD_Code)(27))
#define SRM_RDCOD_BIANCA_1988                ((SRM_RD_Code)(28))
#define SRM_RDCOD_CALLISTO_2000              ((SRM_RD_Code)(29))
#define SRM_RDCOD_CALYPSO_1988               ((SRM_RD_Code)(30))
#define SRM_RDCOD_CARME_1988                 ((SRM_RD_Code)(31))
#define SRM_RDCOD_CHARON_1991                ((SRM_RD_Code)(32))
#define SRM_RDCOD_CLARKE_1858                ((SRM_RD_Code)(33))
#define SRM_RDCOD_CLARKE_1858_MODIFIED       ((SRM_RD_Code)(34))
#define SRM_RDCOD_CLARKE_1866                ((SRM_RD_Code)(35))
#define SRM_RDCOD_CLARKE_1880                ((SRM_RD_Code)(36))
#define SRM_RDCOD_CLARKE_1880_CAPE           ((SRM_RD_Code)(37))
#define SRM_RDCOD_CLARKE_1880_FIJI           ((SRM_RD_Code)(38))
#define SRM_RDCOD_CLARKE_1880_IGN            ((SRM_RD_Code)(39))
#define SRM_RDCOD_CLARKE_1880_PALESTINE      ((SRM_RD_Code)(40))
#define SRM_RDCOD_CLARKE_1880_SYRIA          ((SRM_RD_Code)(41))
#define SRM_RDCOD_COAMPS_1998                ((SRM_RD_Code)(42))
#define SRM_RDCOD_CORDELIA_1988              ((SRM_RD_Code)(43))
#define SRM_RDCOD_CRESSIDA_1988              ((SRM_RD_Code)(44))
#define SRM_RDCOD_DANISH_1876                ((SRM_RD_Code)(45))
#define SRM_RDCOD_DEIMOS_1988                ((SRM_RD_Code)(46))
#define SRM_RDCOD_DELAMBRE_1810              ((SRM_RD_Code)(47))
#define SRM_RDCOD_DESDEMONA_1988             ((SRM_RD_Code)(48))
#define SRM_RDCOD_DESPINA_1991               ((SRM_RD_Code)(49))
#define SRM_RDCOD_DIONE_1982                 ((SRM_RD_Code)(50))
#define SRM_RDCOD_ELARA_1988                 ((SRM_RD_Code)(51))
#define SRM_RDCOD_ENCELADUS_1994             ((SRM_RD_Code)(52))
#define SRM_RDCOD_EPIMETHEUS_1988            ((SRM_RD_Code)(53))
#define SRM_RDCOD_EROS_2000                  ((SRM_RD_Code)(54))
#define SRM_RDCOD_EUROPA_2000                ((SRM_RD_Code)(55))
#define SRM_RDCOD_EVEREST_ADJ_1937           ((SRM_RD_Code)(56))
#define SRM_RDCOD_EVEREST_1948               ((SRM_RD_Code)(57))
#define SRM_RDCOD_EVEREST_1956               ((SRM_RD_Code)(58))
#define SRM_RDCOD_EVEREST_REVISED_1962       ((SRM_RD_Code)(59))
#define SRM_RDCOD_EVEREST_1969               ((SRM_RD_Code)(60))
#define SRM_RDCOD_EVEREST_BRUNEI_1967        ((SRM_RD_Code)(61))
#define SRM_RDCOD_FISCHER_1960               ((SRM_RD_Code)(62))
#define SRM_RDCOD_FISCHER_1968               ((SRM_RD_Code)(63))
#define SRM_RDCOD_GALATEA_1991               ((SRM_RD_Code)(64))
#define SRM_RDCOD_GANYMEDE_2000              ((SRM_RD_Code)(65))
#define SRM_RDCOD_GASPRA_1991                ((SRM_RD_Code)(66))
#define SRM_RDCOD_GRS_1967                   ((SRM_RD_Code)(67))
#define SRM_RDCOD_GRS_1980                   ((SRM_RD_Code)(68))
#define SRM_RDCOD_HELENE_1992                ((SRM_RD_Code)(69))
#define SRM_RDCOD_HELMERT_1906               ((SRM_RD_Code)(70))
#define SRM_RDCOD_HIMALIA_1988               ((SRM_RD_Code)(71))
#define SRM_RDCOD_HOUGH_1960                 ((SRM_RD_Code)(72))
#define SRM_RDCOD_HYPERION_2000              ((SRM_RD_Code)(73))
#define SRM_RDCOD_IAG_1975                   ((SRM_RD_Code)(74))
#define SRM_RDCOD_IAPETUS_1988               ((SRM_RD_Code)(75))
#define SRM_RDCOD_IDA_1991                   ((SRM_RD_Code)(76))
#define SRM_RDCOD_INDONESIAN_1974            ((SRM_RD_Code)(77))
#define SRM_RDCOD_INTERNATIONAL_1924         ((SRM_RD_Code)(78))
#define SRM_RDCOD_IO_2000                    ((SRM_RD_Code)(79))
#define SRM_RDCOD_JANUS_1988                 ((SRM_RD_Code)(80))
#define SRM_RDCOD_JULIET_1988                ((SRM_RD_Code)(81))
#define SRM_RDCOD_JUPITER_1988               ((SRM_RD_Code)(82))
#define SRM_RDCOD_KLEOPATRA_2000             ((SRM_RD_Code)(83))
#define SRM_RDCOD_KRASSOVSKY_1940            ((SRM_RD_Code)(84))
#define SRM_RDCOD_KRAYENHOFF_1827            ((SRM_RD_Code)(85))
#define SRM_RDCOD_LARISSA_1991               ((SRM_RD_Code)(86))
#define SRM_RDCOD_LEDA_1988                  ((SRM_RD_Code)(87))
#define SRM_RDCOD_LYSITHEA_1988              ((SRM_RD_Code)(88))
#define SRM_RDCOD_MARS_2000                  ((SRM_RD_Code)(89))
#define SRM_RDCOD_MARS_SPHERE_2000           ((SRM_RD_Code)(90))
#define SRM_RDCOD_MASS_1999                  ((SRM_RD_Code)(91))
#define SRM_RDCOD_MERCURY_1988               ((SRM_RD_Code)(92))
#define SRM_RDCOD_METIS_2000                 ((SRM_RD_Code)(93))
#define SRM_RDCOD_MIMAS_1994                 ((SRM_RD_Code)(94))
#define SRM_RDCOD_MIRANDA_1988               ((SRM_RD_Code)(95))
#define SRM_RDCOD_MM5_1997                   ((SRM_RD_Code)(96))
#define SRM_RDCOD_MODIFIED_AIRY_1849         ((SRM_RD_Code)(97))
#define SRM_RDCOD_MODIFIED_FISCHER_1960      ((SRM_RD_Code)(98))
#define SRM_RDCOD_MODTRAN_MIDLATITUDE_1989   ((SRM_RD_Code)(99))
#define SRM_RDCOD_MODTRAN_SUBARCTIC_1989     ((SRM_RD_Code)(100))
#define SRM_RDCOD_MODTRAN_TROPICAL_1989      ((SRM_RD_Code)(101))
#define SRM_RDCOD_MOON_1991                  ((SRM_RD_Code)(102))
#define SRM_RDCOD_MULTIGEN_FLAT_EARTH_1989   ((SRM_RD_Code)(103))
#define SRM_RDCOD_NAIAD_1991                 ((SRM_RD_Code)(104))
#define SRM_RDCOD_NEPTUNE_1991               ((SRM_RD_Code)(105))
#define SRM_RDCOD_NEREID_1991                ((SRM_RD_Code)(106))
#define SRM_RDCOD_NOGAPS_1988                ((SRM_RD_Code)(107))
#define SRM_RDCOD_OBERON_1988                ((SRM_RD_Code)(108))
#define SRM_RDCOD_OPHELIA_1988               ((SRM_RD_Code)(109))
#define SRM_RDCOD_PAN_1991                   ((SRM_RD_Code)(110))
#define SRM_RDCOD_PANDORA_1988               ((SRM_RD_Code)(111))
#define SRM_RDCOD_PASIPHAE_1988              ((SRM_RD_Code)(112))
#define SRM_RDCOD_PHOBOS_1988                ((SRM_RD_Code)(113))
#define SRM_RDCOD_PHOEBE_1988                ((SRM_RD_Code)(114))
#define SRM_RDCOD_PLESSIS_MODIFIED_1817      ((SRM_RD_Code)(115))
#define SRM_RDCOD_PLUTO_1994                 ((SRM_RD_Code)(116))
#define SRM_RDCOD_PORTIA_1988                ((SRM_RD_Code)(117))
#define SRM_RDCOD_PROMETHEUS_1988            ((SRM_RD_Code)(118))
#define SRM_RDCOD_PROTEUS_1991               ((SRM_RD_Code)(119))
#define SRM_RDCOD_PUCK_1988                  ((SRM_RD_Code)(120))
#define SRM_RDCOD_RHEA_1988                  ((SRM_RD_Code)(121))
#define SRM_RDCOD_ROSALIND_1988              ((SRM_RD_Code)(122))
#define SRM_RDCOD_SATURN_1988                ((SRM_RD_Code)(123))
#define SRM_RDCOD_SINOPE_1988                ((SRM_RD_Code)(124))
#define SRM_RDCOD_SOUTH_AMERICAN_1969        ((SRM_RD_Code)(125))
#define SRM_RDCOD_SOVIET_GEODETIC_1985       ((SRM_RD_Code)(126))
#define SRM_RDCOD_SOVIET_GEODETIC_1990       ((SRM_RD_Code)(127))
#define SRM_RDCOD_STRUVE_1860                ((SRM_RD_Code)(128))
#define SRM_RDCOD_SUN_1992                   ((SRM_RD_Code)(129))
#define SRM_RDCOD_TELESTO_1988               ((SRM_RD_Code)(130))
#define SRM_RDCOD_TETHYS_1991                ((SRM_RD_Code)(131))
#define SRM_RDCOD_THALASSA_1991              ((SRM_RD_Code)(132))
#define SRM_RDCOD_THEBE_2000                 ((SRM_RD_Code)(133))
#define SRM_RDCOD_TITAN_1982                 ((SRM_RD_Code)(134))
#define SRM_RDCOD_TITANIA_1988               ((SRM_RD_Code)(135))
#define SRM_RDCOD_TRITON_1991                ((SRM_RD_Code)(136))
#define SRM_RDCOD_UMBRIEL_1988               ((SRM_RD_Code)(137))
#define SRM_RDCOD_URANUS_1988                ((SRM_RD_Code)(138))
#define SRM_RDCOD_VENUS_1991                 ((SRM_RD_Code)(139))
#define SRM_RDCOD_WALBECK_AMS_1963           ((SRM_RD_Code)(140))
#define SRM_RDCOD_WALBECK_PLANHEFT_1942      ((SRM_RD_Code)(141))
#define SRM_RDCOD_WAR_OFFICE_1924            ((SRM_RD_Code)(142))
#define SRM_RDCOD_WGS_1960                   ((SRM_RD_Code)(143))
#define SRM_RDCOD_WGS_1966                   ((SRM_RD_Code)(144))
#define SRM_RDCOD_WGS_1984                   ((SRM_RD_Code)(145))
#define SRM_RDCOD_WGS_1972                   ((SRM_RD_Code)(146))
typedef SRM_Integer SRM_RT_Code;
#define SRM_RTCOD_UNSPECIFIED                                ((SRM_RT_Code)(0))
#define SRM_RTCOD_ABSTRACT_2D_IDENTITY                       ((SRM_RT_Code)(1))
#define SRM_RTCOD_ABSTRACT_3D_IDENTITY                       ((SRM_RT_Code)(2))
#define SRM_RTCOD_ADINDAN_1991_BURKINA_FASO                  ((SRM_RT_Code)(3))
#define SRM_RTCOD_ADINDAN_1991_CAMEROON                      ((SRM_RT_Code)(4))
#define SRM_RTCOD_ADINDAN_1991_ETHIOPIA                      ((SRM_RT_Code)(5))
#define SRM_RTCOD_ADINDAN_1991_MALI                          ((SRM_RT_Code)(6))
#define SRM_RTCOD_ADINDAN_1991_MEAN_SOLUTION                 ((SRM_RT_Code)(7))
#define SRM_RTCOD_ADINDAN_1991_SENEGAL                       ((SRM_RT_Code)(8))
#define SRM_RTCOD_ADINDAN_1991_SUDAN                         ((SRM_RT_Code)(9))
#define SRM_RTCOD_ADRASTEA_2000_IDENTITY                     ((SRM_RT_Code)(10))
#define SRM_RTCOD_AFGOOYE_1987_SOMALIA                       ((SRM_RT_Code)(11))
#define SRM_RTCOD_AIN_EL_ABD_1970_BAHRAIN_ISLAND             ((SRM_RT_Code)(12))
#define SRM_RTCOD_AIN_EL_ABD_1970_SAUDI_ARABIA               ((SRM_RT_Code)(13))
#define SRM_RTCOD_AMALTHEA_2000_IDENTITY                     ((SRM_RT_Code)(14))
#define SRM_RTCOD_AMERICAN_SAMOA_1962_AMERICAN_SAMOA_ISLANDS ((SRM_RT_Code)(15))
#define SRM_RTCOD_ANNA_1_1965_COCOS_ISLANDS                  ((SRM_RT_Code)(16))
#define SRM_RTCOD_ANTIGUA_1943_ANTIGUA_LEEWARD_ISLANDS       ((SRM_RT_Code)(17))
#define SRM_RTCOD_ARC_1950_3_ZIMBABWE                        ((SRM_RT_Code)(18))
#define SRM_RTCOD_ARC_1950_BOTSWANA                          ((SRM_RT_Code)(19))
#define SRM_RTCOD_ARC_1950_BURUNDI                           ((SRM_RT_Code)(20))
#define SRM_RTCOD_ARC_1950_LESOTHO                           ((SRM_RT_Code)(21))
#define SRM_RTCOD_ARC_1950_MALAWI                            ((SRM_RT_Code)(22))
#define SRM_RTCOD_ARC_1950_MEAN_SOLUTION                     ((SRM_RT_Code)(23))
#define SRM_RTCOD_ARC_1950_SWAZILAND                         ((SRM_RT_Code)(24))
#define SRM_RTCOD_ARC_1950_ZAIRE                             ((SRM_RT_Code)(25))
#define SRM_RTCOD_ARC_1950_ZAMBIA                            ((SRM_RT_Code)(26))
#define SRM_RTCOD_ARC_1960_3_KENYA                           ((SRM_RT_Code)(27))
#define SRM_RTCOD_ARC_1960_MEAN_SOLUTION                     ((SRM_RT_Code)(28))
#define SRM_RTCOD_ARC_1960_TANZANIA                          ((SRM_RT_Code)(29))
#define SRM_RTCOD_ARIEL_1988_IDENTITY                        ((SRM_RT_Code)(30))
#define SRM_RTCOD_ASCENSION_1958_ASCENSION_ISLAND            ((SRM_RT_Code)(31))
#define SRM_RTCOD_ATLAS_1988_IDENTITY                        ((SRM_RT_Code)(32))
#define SRM_RTCOD_AUSTRALIAN_GEOD_1966_AUSTRALIA_TASMANIA    ((SRM_RT_Code)(33))
#define SRM_RTCOD_AUSTRALIA_GEOD_1984_3_AUSTRALIA_TASMANIA   ((SRM_RT_Code)(34))
#define SRM_RTCOD_AUSTRALIA_GEOD_1984_7_AUSTRALIA_TASMANIA   ((SRM_RT_Code)(35))
#define SRM_RTCOD_AYABELLE_LIGHTHOUSE_1991_DJIBOUTI          ((SRM_RT_Code)(36))
#define SRM_RTCOD_BEACON_E_1945_IWO_JIMA_ISLAND              ((SRM_RT_Code)(37))
#define SRM_RTCOD_BELINDA_1988_IDENTITY                      ((SRM_RT_Code)(38))
#define SRM_RTCOD_BELLEVUE_IGN_1987_EFATE_ERROMANGO_ISLANDS  ((SRM_RT_Code)(39))
#define SRM_RTCOD_BERMUDA_1957_BERMUDA                       ((SRM_RT_Code)(40))
#define SRM_RTCOD_BIANCA_1988_IDENTITY                       ((SRM_RT_Code)(41))
#define SRM_RTCOD_BISSAU_1991_GUINEA_BISSAU                  ((SRM_RT_Code)(42))
#define SRM_RTCOD_BOGOTA_OBS_1987_COLOMBIA                   ((SRM_RT_Code)(43))
#define SRM_RTCOD_BOGOTA_OBS_1987_PM_BOGOTA_COLOMBIA         ((SRM_RT_Code)(44))
#define SRM_RTCOD_BUKIT_RIMPAH_1987_BANGKA_BELITUNG_ISLANDS  ((SRM_RT_Code)(45))
#define SRM_RTCOD_CALLISTO_2000_IDENTITY                     ((SRM_RT_Code)(46))
#define SRM_RTCOD_CALYPSO_1988_IDENTITY                      ((SRM_RT_Code)(47))
#define SRM_RTCOD_CAMP_AREA_1987_MCMURDO_CAMP                ((SRM_RT_Code)(48))
#define SRM_RTCOD_CAMPO_INCHAUSPE_1969_ARGENTINA             ((SRM_RT_Code)(49))
#define SRM_RTCOD_CANTON_1966_PHOENIX_ISLANDS                ((SRM_RT_Code)(50))
#define SRM_RTCOD_CAPE_1987_SOUTH_AFRICA                     ((SRM_RT_Code)(51))
#define SRM_RTCOD_CAPE_CANAVERAL_1991_MEAN_SOLUTION          ((SRM_RT_Code)(52))
#define SRM_RTCOD_CARTHAGE_1987_TUNISIA                      ((SRM_RT_Code)(53))
#define SRM_RTCOD_CHARON_1991_IDENTITY                       ((SRM_RT_Code)(54))
#define SRM_RTCOD_CHATHAM_1971_CHATHAM_ISLANDS               ((SRM_RT_Code)(55))
#define SRM_RTCOD_CHUA_1987_PARAGUAY                         ((SRM_RT_Code)(56))
#define SRM_RTCOD_COAMPS_1998_IDENTITY_BY_DEFAULT            ((SRM_RT_Code)(57))
#define SRM_RTCOD_CORDELIA_1988_IDENTITY                     ((SRM_RT_Code)(58))
#define SRM_RTCOD_CORREGO_ALEGRE_1987_BRAZIL                 ((SRM_RT_Code)(59))
#define SRM_RTCOD_CRESSIDA_1988_IDENTITY                     ((SRM_RT_Code)(60))
#define SRM_RTCOD_DABOLA_1991_GUINEA                         ((SRM_RT_Code)(61))
#define SRM_RTCOD_DECEPTION_1993_DECEPTION_ISLAND            ((SRM_RT_Code)(62))
#define SRM_RTCOD_DEIMOS_1988_IDENTITY                       ((SRM_RT_Code)(63))
#define SRM_RTCOD_DESDEMONA_1988_IDENTITY                    ((SRM_RT_Code)(64))
#define SRM_RTCOD_DESPINA_1991_IDENTITY                      ((SRM_RT_Code)(65))
#define SRM_RTCOD_DIONE_1982_IDENTITY                        ((SRM_RT_Code)(66))
#define SRM_RTCOD_DJAKARTA_1987_PM_DJAKARTA_SUMATRA          ((SRM_RT_Code)(67))
#define SRM_RTCOD_DJAKARTA_1987_SUMATRA                      ((SRM_RT_Code)(68))
#define SRM_RTCOD_DOS_1968_GIZO_ISLAND                       ((SRM_RT_Code)(69))
#define SRM_RTCOD_DOS_71_4_1987_ST_HELENA_ISLAND             ((SRM_RT_Code)(70))
#define SRM_RTCOD_EASTER_1967_EASTER_ISLAND                  ((SRM_RT_Code)(71))
#define SRM_RTCOD_ENCELADUS_1994_IDENTITY                    ((SRM_RT_Code)(72))
#define SRM_RTCOD_EPIMETHEUS_1988_IDENTITY                   ((SRM_RT_Code)(73))
#define SRM_RTCOD_EROS_2000_IDENTITY                         ((SRM_RT_Code)(74))
#define SRM_RTCOD_ESTONIA_1937_ESTONIA                       ((SRM_RT_Code)(75))
#define SRM_RTCOD_ETRS_1989_IDENTITY_BY_MEASUREMENT          ((SRM_RT_Code)(76))
#define SRM_RTCOD_EUROPA_2000_IDENTITY                       ((SRM_RT_Code)(77))
#define SRM_RTCOD_EUROPE_1950_3_CYPRUS                       ((SRM_RT_Code)(78))
#define SRM_RTCOD_EUROPE_1950_CHANNEL_ISLANDS                ((SRM_RT_Code)(79))
#define SRM_RTCOD_EUROPE_1950_EGYPT                          ((SRM_RT_Code)(80))
#define SRM_RTCOD_EUROPE_1950_ENGLAND_SCOTLAND               ((SRM_RT_Code)(81))
#define SRM_RTCOD_EUROPE_1950_GREECE                         ((SRM_RT_Code)(82))
#define SRM_RTCOD_EUROPE_1950_IRAN                           ((SRM_RT_Code)(83))
#define SRM_RTCOD_EUROPE_1950_IRAQ                           ((SRM_RT_Code)(84))
#define SRM_RTCOD_EUROPE_1950_IRELAND                        ((SRM_RT_Code)(85))
#define SRM_RTCOD_EUROPE_1950_MALTA                          ((SRM_RT_Code)(86))
#define SRM_RTCOD_EUROPE_1950_MEAN_SOLUTION                  ((SRM_RT_Code)(87))
#define SRM_RTCOD_EUROPE_1950_NORWAY                         ((SRM_RT_Code)(88))
#define SRM_RTCOD_EUROPE_1950_PORTUGAL_SPAIN                 ((SRM_RT_Code)(89))
#define SRM_RTCOD_EUROPE_1950_SARDINIA                       ((SRM_RT_Code)(90))
#define SRM_RTCOD_EUROPE_1950_SICILY                         ((SRM_RT_Code)(91))
#define SRM_RTCOD_EUROPE_1950_TUNISIA                        ((SRM_RT_Code)(92))
#define SRM_RTCOD_EUROPE_1950_W_EUROPE_MEAN_SOLUTION         ((SRM_RT_Code)(93))
#define SRM_RTCOD_EUROPE_1979_MEAN_SOLUTION                  ((SRM_RT_Code)(94))
#define SRM_RTCOD_FAHUD_1987_3_OMAN                          ((SRM_RT_Code)(95))
#define SRM_RTCOD_FAHUD_1987_7_OMAN                          ((SRM_RT_Code)(96))
#define SRM_RTCOD_FORT_THOMAS_1955_ST_KITTS_NEVIS_LEEWARD_ISLANDS ((SRM_RT_Code)(97))
#define SRM_RTCOD_GALATEA_1991_IDENTITY                      ((SRM_RT_Code)(98))
#define SRM_RTCOD_GAN_1970_MALDIVES                          ((SRM_RT_Code)(99))
#define SRM_RTCOD_GANYMEDE_2000_IDENTITY                     ((SRM_RT_Code)(100))
#define SRM_RTCOD_GASPRA_1991_IDENTITY                       ((SRM_RT_Code)(101))
#define SRM_RTCOD_GDA_1994_IDENTITY_BY_DEFAULT               ((SRM_RT_Code)(102))
#define SRM_RTCOD_GEODETIC_DATUM_1949_3_NEW_ZEALAND          ((SRM_RT_Code)(103))
#define SRM_RTCOD_GEODETIC_DATUM_1949_7_NEW_ZEALAND          ((SRM_RT_Code)(104))
#define SRM_RTCOD_GEOMAGNETIC_1945_DGRF                      ((SRM_RT_Code)(105))
#define SRM_RTCOD_GEOMAGNETIC_1950_DGRF                      ((SRM_RT_Code)(106))
#define SRM_RTCOD_GEOMAGNETIC_1955_DGRF                      ((SRM_RT_Code)(107))
#define SRM_RTCOD_GEOMAGNETIC_1960_DGRF                      ((SRM_RT_Code)(108))
#define SRM_RTCOD_GEOMAGNETIC_1965_DGRF                      ((SRM_RT_Code)(109))
#define SRM_RTCOD_GEOMAGNETIC_1970_DGRF                      ((SRM_RT_Code)(110))
#define SRM_RTCOD_GEOMAGNETIC_1975_DGRF                      ((SRM_RT_Code)(111))
#define SRM_RTCOD_GEOMAGNETIC_1980_DGRF                      ((SRM_RT_Code)(112))
#define SRM_RTCOD_GEOMAGNETIC_1985_DGRF                      ((SRM_RT_Code)(113))
#define SRM_RTCOD_GEOMAGNETIC_1990_DGRF                      ((SRM_RT_Code)(114))
#define SRM_RTCOD_GEOMAGNETIC_1995_IGRF                      ((SRM_RT_Code)(115))
#define SRM_RTCOD_GEOMAGNETIC_2000_IGRF                      ((SRM_RT_Code)(116))
#define SRM_RTCOD_GRACIOSA_BASE_SW_1948_CENTRAL_AZORES       ((SRM_RT_Code)(117))
#define SRM_RTCOD_GUAM_1963_GUAM                             ((SRM_RT_Code)(118))
#define SRM_RTCOD_GUNONG_SEGARA_1987_KALIMANTAN_ISLAND       ((SRM_RT_Code)(119))
#define SRM_RTCOD_GUX_1_1987_GUADALCANAL_ISLAND              ((SRM_RT_Code)(120))
#define SRM_RTCOD_HELENE_1992_IDENTITY                       ((SRM_RT_Code)(121))
#define SRM_RTCOD_HERAT_NORTH_1987_AFGHANISTAN               ((SRM_RT_Code)(122))
#define SRM_RTCOD_HERMANNSKOGEL_1871_3_YUGOSLAVIA            ((SRM_RT_Code)(123))
#define SRM_RTCOD_HJORSEY_1955_ICELAND                       ((SRM_RT_Code)(124))
#define SRM_RTCOD_HONG_KONG_1963_HONG_KONG                   ((SRM_RT_Code)(125))
#define SRM_RTCOD_HU_TZU_SHAN_1991_TAIWAN                    ((SRM_RT_Code)(126))
#define SRM_RTCOD_IAPETUS_1988_IDENTITY                      ((SRM_RT_Code)(127))
#define SRM_RTCOD_IDA_1991_IDENTITY                          ((SRM_RT_Code)(128))
#define SRM_RTCOD_INDIAN_1916_3_BANGLADESH                   ((SRM_RT_Code)(129))
#define SRM_RTCOD_INDIAN_1916_7_BANGLADESH                   ((SRM_RT_Code)(130))
#define SRM_RTCOD_INDIAN_1954_THAILAND                       ((SRM_RT_Code)(131))
#define SRM_RTCOD_INDIAN_1956_INDIA_NEPAL                    ((SRM_RT_Code)(132))
#define SRM_RTCOD_INDIAN_1960_CON_SON_ISLAND                 ((SRM_RT_Code)(133))
#define SRM_RTCOD_INDIAN_1960_VIETNAM_16_N                   ((SRM_RT_Code)(134))
#define SRM_RTCOD_INDIAN_1962_PAKISTAN                       ((SRM_RT_Code)(135))
#define SRM_RTCOD_INDIAN_1975_1991_THAILAND                  ((SRM_RT_Code)(136))
#define SRM_RTCOD_INDIAN_1975_1997_THAILAND                  ((SRM_RT_Code)(137))
#define SRM_RTCOD_INDONESIAN_1974_INDONESIA                  ((SRM_RT_Code)(138))
#define SRM_RTCOD_IO_2000_IDENTITY                           ((SRM_RT_Code)(139))
#define SRM_RTCOD_IRELAND_1965_3_IRELAND                     ((SRM_RT_Code)(140))
#define SRM_RTCOD_IRELAND_1965_7_IRELAND                     ((SRM_RT_Code)(141))
#define SRM_RTCOD_ISTS_061_1968_SOUTH_GEORGIA_ISLAND         ((SRM_RT_Code)(142))
#define SRM_RTCOD_ISTS_073_1969_DIEGO_GARCIA                 ((SRM_RT_Code)(143))
#define SRM_RTCOD_JANUS_1988_IDENTITY                        ((SRM_RT_Code)(144))
#define SRM_RTCOD_JGD_2000_IDENTITY_BY_DEFAULT               ((SRM_RT_Code)(145))
#define SRM_RTCOD_JOHNSTON_1961_JOHNSTON_ISLAND              ((SRM_RT_Code)(146))
#define SRM_RTCOD_JULIET_1988_IDENTITY                       ((SRM_RT_Code)(147))
#define SRM_RTCOD_JUPITER_1988_IDENTITY                      ((SRM_RT_Code)(148))
#define SRM_RTCOD_JUPITER_MAGNETIC_1993_VOYAGER              ((SRM_RT_Code)(149))
#define SRM_RTCOD_KANDAWALA_1987_3_SRI_LANKA                 ((SRM_RT_Code)(150))
#define SRM_RTCOD_KERGUELEN_1949_KERGUELEN_ISLAND            ((SRM_RT_Code)(151))
#define SRM_RTCOD_KERTAU_1948_3_W_MALAYSIA_SINGAPORE         ((SRM_RT_Code)(152))
#define SRM_RTCOD_KOREAN_GEODETIC_1995_SOUTH_KOREA           ((SRM_RT_Code)(153))
#define SRM_RTCOD_KUSAIE_1951_CAROLINE_ISLANDS               ((SRM_RT_Code)(154))
#define SRM_RTCOD_LARISSA_1991_IDENTITY                      ((SRM_RT_Code)(155))
#define SRM_RTCOD_LC5_1961_CAYMAN_BRAC_ISLAND                ((SRM_RT_Code)(156))
#define SRM_RTCOD_LEIGON_1991_3_GHANA                        ((SRM_RT_Code)(157))
#define SRM_RTCOD_LEIGON_1991_7_GHANA                        ((SRM_RT_Code)(158))
#define SRM_RTCOD_LIBERIA_1964_LIBERIA                       ((SRM_RT_Code)(159))
#define SRM_RTCOD_LUZON_1987_MINDANAO_ISLAND                 ((SRM_RT_Code)(160))
#define SRM_RTCOD_LUZON_1987_PHILIPPINES_EXCLUDING_MINDANAO_ISLAND ((SRM_RT_Code)(161))
#define SRM_RTCOD_M_PORALOKO_1991_GABON                      ((SRM_RT_Code)(162))
#define SRM_RTCOD_MAHE_1971_MAHE_ISLAND                      ((SRM_RT_Code)(163))
#define SRM_RTCOD_MARCUS_STATION_1952_MARCUS_ISLANDS         ((SRM_RT_Code)(164))
#define SRM_RTCOD_MARS_2000_IDENTITY                         ((SRM_RT_Code)(165))
#define SRM_RTCOD_MARS_SPHERE_2000_IDENTITY_BY_DEFAULT       ((SRM_RT_Code)(166))
#define SRM_RTCOD_MASS_1999_IDENTITY_BY_DEFAULT              ((SRM_RT_Code)(167))
#define SRM_RTCOD_MASSAWA_1987_ERITREA_ETHIOPIA              ((SRM_RT_Code)(168))
#define SRM_RTCOD_MERCHICH_1987_MOROCCO                      ((SRM_RT_Code)(169))
#define SRM_RTCOD_MERCURY_1988_IDENTITY                      ((SRM_RT_Code)(170))
#define SRM_RTCOD_METIS_2000_IDENTITY                        ((SRM_RT_Code)(171))
#define SRM_RTCOD_MIDWAY_1961_MIDWAY_ISLANDS                 ((SRM_RT_Code)(172))
#define SRM_RTCOD_MIMAS_1994_IDENTITY                        ((SRM_RT_Code)(173))
#define SRM_RTCOD_MINNA_1991_CAMEROON                        ((SRM_RT_Code)(174))
#define SRM_RTCOD_MINNA_1991_NIGERIA                         ((SRM_RT_Code)(175))
#define SRM_RTCOD_MIRANDA_1988_IDENTITY                      ((SRM_RT_Code)(176))
#define SRM_RTCOD_MM5_1997_IDENTITY_BY_DEFAULT               ((SRM_RT_Code)(177))
#define SRM_RTCOD_MODTRAN_MIDLATITUDE_N_1989_IDENTITY_BY_DEFAULT ((SRM_RT_Code)(178))
#define SRM_RTCOD_MODTRAN_MIDLATITUDE_S_1989_IDENTITY_BY_DEFAULT ((SRM_RT_Code)(179))
#define SRM_RTCOD_MODTRAN_SUBARCTIC_N_1989_IDENTITY_BY_DEFAULT ((SRM_RT_Code)(180))
#define SRM_RTCOD_MODTRAN_SUBARCTIC_S_1989_IDENTITY_BY_DEFAULT ((SRM_RT_Code)(181))
#define SRM_RTCOD_MODTRAN_TROPICAL_1989_IDENTITY_BY_DEFAULT  ((SRM_RT_Code)(182))
#define SRM_RTCOD_MONTSERRAT_1958_MONTSERRAT_LEEWARD_ISLANDS ((SRM_RT_Code)(183))
#define SRM_RTCOD_MOON_1991_IDENTITY                         ((SRM_RT_Code)(184))
#define SRM_RTCOD_MULTIGEN_FLAT_EARTH_1989_IDENTITY_BY_DEFAULT ((SRM_RT_Code)(185))
#define SRM_RTCOD_N_AM_1927_ALASKA_EXCLUDING_ALEUTIAN_ISLANDS  ((SRM_RT_Code)(186))
#define SRM_RTCOD_N_AM_1927_ALBERTA_BRITISH_COLUMBIA         ((SRM_RT_Code)(187))
#define SRM_RTCOD_N_AM_1927_BAHAMAS_EXCLUDING_SAN_SALVADOR_ISLAND ((SRM_RT_Code)(188))
#define SRM_RTCOD_N_AM_1927_CANADA                           ((SRM_RT_Code)(189))
#define SRM_RTCOD_N_AM_1927_CANAL_ZONE                       ((SRM_RT_Code)(190))
#define SRM_RTCOD_N_AM_1927_CARIBBEAN                        ((SRM_RT_Code)(191))
#define SRM_RTCOD_N_AM_1927_CENTRAL_AMERICA                  ((SRM_RT_Code)(192))
#define SRM_RTCOD_N_AM_1927_CONTINENTAL_US                   ((SRM_RT_Code)(193))
#define SRM_RTCOD_N_AM_1927_CUBA                             ((SRM_RT_Code)(194))
#define SRM_RTCOD_N_AM_1927_EAST_ALEUTIAN_ISLANDS            ((SRM_RT_Code)(195))
#define SRM_RTCOD_N_AM_1927_EASTERN_CANADA                   ((SRM_RT_Code)(196))
#define SRM_RTCOD_N_AM_1927_EASTERN_US                       ((SRM_RT_Code)(197))
#define SRM_RTCOD_N_AM_1927_HAYES_PENINSULA                  ((SRM_RT_Code)(198))
#define SRM_RTCOD_N_AM_1927_MANITOBA_ONTARIO                 ((SRM_RT_Code)(199))
#define SRM_RTCOD_N_AM_1927_MEXICO                           ((SRM_RT_Code)(200))
#define SRM_RTCOD_N_AM_1927_NW_TERRITORIES_SASKATCHEWAN      ((SRM_RT_Code)(201))
#define SRM_RTCOD_N_AM_1927_SAN_SALVADOR_ISLAND              ((SRM_RT_Code)(202))
#define SRM_RTCOD_N_AM_1927_WEST_ALEUTIAN_ISLANDS            ((SRM_RT_Code)(203))
#define SRM_RTCOD_N_AM_1927_WESTERN_US                       ((SRM_RT_Code)(204))
#define SRM_RTCOD_N_AM_1927_YUKON                            ((SRM_RT_Code)(205))
#define SRM_RTCOD_N_AM_1983_ALASKA_EXCLUDING_ALEUTIAN_ISLANDS ((SRM_RT_Code)(206))
#define SRM_RTCOD_N_AM_1983_ALEUTIAN_ISLANDS                 ((SRM_RT_Code)(207))
#define SRM_RTCOD_N_AM_1983_CANADA                           ((SRM_RT_Code)(208))
#define SRM_RTCOD_N_AM_1983_CONTINENTAL_US                   ((SRM_RT_Code)(209))
#define SRM_RTCOD_N_AM_1983_HAWAII                           ((SRM_RT_Code)(210))
#define SRM_RTCOD_N_AM_1983_MEXICO_CENTRAL_AMERICA           ((SRM_RT_Code)(211))
#define SRM_RTCOD_N_SAHARA_1959_ALGERIA                      ((SRM_RT_Code)(212))
#define SRM_RTCOD_NAHRWAN_1987_MASIRAH_ISLAND                ((SRM_RT_Code)(213))
#define SRM_RTCOD_NAHRWAN_1987_SAUDI_ARABIA                  ((SRM_RT_Code)(214))
#define SRM_RTCOD_NAHRWAN_1987_UNITED_ARAB_EMIRATES          ((SRM_RT_Code)(215))
#define SRM_RTCOD_NAIAD_1991_IDENTITY                        ((SRM_RT_Code)(216))
#define SRM_RTCOD_NAPARIMA_1991_TRINIDAD_TOBAGO              ((SRM_RT_Code)(217))
#define SRM_RTCOD_NEPTUNE_1991_IDENTITY                      ((SRM_RT_Code)(218))
#define SRM_RTCOD_NEPTUNE_MAGNETIC_1993_VOYAGER              ((SRM_RT_Code)(219))
#define SRM_RTCOD_NOGAPS_1988_IDENTITY_BY_DEFAULT            ((SRM_RT_Code)(220))
#define SRM_RTCOD_NTF_1896_FRANCE                            ((SRM_RT_Code)(221))
#define SRM_RTCOD_NTF_1896_PM_PARIS_FRANCE                   ((SRM_RT_Code)(222))
#define SRM_RTCOD_OBERON_1988_IDENTITY                       ((SRM_RT_Code)(223))
#define SRM_RTCOD_OBSERV_METEORO_1939_CORVO_FLORES_ISLANDS   ((SRM_RT_Code)(224))
#define SRM_RTCOD_OLD_EGYPTIAN_1907_EGYPT                    ((SRM_RT_Code)(225))
#define SRM_RTCOD_OLD_HAWAII_C_1987_HAWAII                   ((SRM_RT_Code)(226))
#define SRM_RTCOD_OLD_HAWAII_C_1987_KAUAI                    ((SRM_RT_Code)(227))
#define SRM_RTCOD_OLD_HAWAII_C_1987_MAUI                     ((SRM_RT_Code)(228))
#define SRM_RTCOD_OLD_HAWAII_C_1987_MEAN_SOLUTION            ((SRM_RT_Code)(229))
#define SRM_RTCOD_OLD_HAWAII_C_1987_OAHU                     ((SRM_RT_Code)(230))
#define SRM_RTCOD_OLD_HAWAII_I_1987_HAWAII                   ((SRM_RT_Code)(231))
#define SRM_RTCOD_OLD_HAWAII_I_1987_KAUAI                    ((SRM_RT_Code)(232))
#define SRM_RTCOD_OLD_HAWAII_I_1987_MAUI                     ((SRM_RT_Code)(233))
#define SRM_RTCOD_OLD_HAWAII_I_1987_MEAN_SOLUTION            ((SRM_RT_Code)(234))
#define SRM_RTCOD_OLD_HAWAII_I_1987_OAHU                     ((SRM_RT_Code)(235))
#define SRM_RTCOD_OPHELIA_1988_IDENTITY                      ((SRM_RT_Code)(236))
#define SRM_RTCOD_OSGB_1936_3_MEAN_SOLUTION                  ((SRM_RT_Code)(237))
#define SRM_RTCOD_OSGB_1936_7_GREAT_BRITAIN                  ((SRM_RT_Code)(238))
#define SRM_RTCOD_OSGB_1936_ENGLAND                          ((SRM_RT_Code)(239))
#define SRM_RTCOD_OSGB_1936_ENGLAND_ISLE_OF_MAN_WALES        ((SRM_RT_Code)(240))
#define SRM_RTCOD_OSGB_1936_SCOTLAND_SHETLAND_ISLANDS        ((SRM_RT_Code)(241))
#define SRM_RTCOD_OSGB_1936_WALES                            ((SRM_RT_Code)(242))
#define SRM_RTCOD_PAN_1991_IDENTITY                          ((SRM_RT_Code)(243))
#define SRM_RTCOD_PANDORA_1988_IDENTITY                      ((SRM_RT_Code)(244))
#define SRM_RTCOD_PHOBOS_1988_IDENTITY                       ((SRM_RT_Code)(245))
#define SRM_RTCOD_PHOEBE_1988_IDENTITY                       ((SRM_RT_Code)(246))
#define SRM_RTCOD_PICO_DE_LAS_NIEVES_1987_CANARY_ISLANDS     ((SRM_RT_Code)(247))
#define SRM_RTCOD_PITCAIRN_1967_PITCAIRN_ISLAND              ((SRM_RT_Code)(248))
#define SRM_RTCOD_PLUTO_1994_IDENTITY                        ((SRM_RT_Code)(249))
#define SRM_RTCOD_POINT_58_1991_MEAN_SOLUTION                ((SRM_RT_Code)(250))
#define SRM_RTCOD_POINTE_NOIRE_1948_CONGO                    ((SRM_RT_Code)(251))
#define SRM_RTCOD_PORTIA_1988_IDENTITY                       ((SRM_RT_Code)(252))
#define SRM_RTCOD_PORTO_SANTO_1936_PORTO_SANTO_MADEIRA_ISLANDS ((SRM_RT_Code)(253))
#define SRM_RTCOD_PROMETHEUS_1988_IDENTITY                   ((SRM_RT_Code)(254))
#define SRM_RTCOD_PROTEUS_1991_IDENTITY                      ((SRM_RT_Code)(255))
#define SRM_RTCOD_PROV_S_AM_1956_3_VENEZUELA                 ((SRM_RT_Code)(256))
#define SRM_RTCOD_PROV_S_AM_1956_7_VENEZUELA                 ((SRM_RT_Code)(257))
#define SRM_RTCOD_PROV_S_AM_1956_BOLIVIA                     ((SRM_RT_Code)(258))
#define SRM_RTCOD_PROV_S_AM_1956_COLOMBIA                    ((SRM_RT_Code)(259))
#define SRM_RTCOD_PROV_S_AM_1956_ECUADOR                     ((SRM_RT_Code)(260))
#define SRM_RTCOD_PROV_S_AM_1956_GUYANA                      ((SRM_RT_Code)(261))
#define SRM_RTCOD_PROV_S_AM_1956_MEAN_SOLUTION               ((SRM_RT_Code)(262))
#define SRM_RTCOD_PROV_S_AM_1956_N_CHILE_19_S                ((SRM_RT_Code)(263))
#define SRM_RTCOD_PROV_S_AM_1956_PERU                        ((SRM_RT_Code)(264))
#define SRM_RTCOD_PROV_S_AM_1956_S_CHILE_43_S                ((SRM_RT_Code)(265))
#define SRM_RTCOD_PROV_S_CHILEAN_1963_SOUTH_CHILE            ((SRM_RT_Code)(266))
#define SRM_RTCOD_PUCK_1988_IDENTITY                         ((SRM_RT_Code)(267))
#define SRM_RTCOD_PUERTO_RICO_1987_PUERTO_RICO_VIRGIN_ISLANDS ((SRM_RT_Code)(268))
#define SRM_RTCOD_PULKOVO_1942_RUSSIA                        ((SRM_RT_Code)(269))
#define SRM_RTCOD_QATAR_NATIONAL_1974_3_QATAR                ((SRM_RT_Code)(270))
#define SRM_RTCOD_QORNOQ_1987_SOUTH_GREENLAND                ((SRM_RT_Code)(271))
#define SRM_RTCOD_REUNION_1947_MASCARENE_ISLANDS             ((SRM_RT_Code)(272))
#define SRM_RTCOD_RGF_1993_IDENTITY_BY_MEASUREMENT           ((SRM_RT_Code)(273))
#define SRM_RTCOD_RHEA_1988_IDENTITY                         ((SRM_RT_Code)(274))
#define SRM_RTCOD_ROME_1940_PM_ROME_SARDINIA                 ((SRM_RT_Code)(275))
#define SRM_RTCOD_ROME_1940_SARDINIA                         ((SRM_RT_Code)(276))
#define SRM_RTCOD_ROSALIND_1988_IDENTITY                     ((SRM_RT_Code)(277))
#define SRM_RTCOD_S_AM_1969_ARGENTINA                        ((SRM_RT_Code)(278))
#define SRM_RTCOD_S_AM_1969_BALTRA_GALAPAGOS_ISLANDS         ((SRM_RT_Code)(279))
#define SRM_RTCOD_S_AM_1969_BOLIVIA                          ((SRM_RT_Code)(280))
#define SRM_RTCOD_S_AM_1969_BRAZIL                           ((SRM_RT_Code)(281))
#define SRM_RTCOD_S_AM_1969_CHILE                            ((SRM_RT_Code)(282))
#define SRM_RTCOD_S_AM_1969_COLOMBIA                         ((SRM_RT_Code)(283))
#define SRM_RTCOD_S_AM_1969_ECUADOR_EXCLUDING_GALAPAGOS_ISLANDS ((SRM_RT_Code)(284))
#define SRM_RTCOD_S_AM_1969_GUYANA                           ((SRM_RT_Code)(285))
#define SRM_RTCOD_S_AM_1969_MEAN_SOLUTION                    ((SRM_RT_Code)(286))
#define SRM_RTCOD_S_AM_1969_PARAGUAY                         ((SRM_RT_Code)(287))
#define SRM_RTCOD_S_AM_1969_PERU                             ((SRM_RT_Code)(288))
#define SRM_RTCOD_S_AM_1969_TRINIDAD_TOBAGO                  ((SRM_RT_Code)(289))
#define SRM_RTCOD_S_AM_1969_VENEZUELA                        ((SRM_RT_Code)(290))
#define SRM_RTCOD_S_ASIA_1987_SINGAPORE                      ((SRM_RT_Code)(291))
#define SRM_RTCOD_S_JTSK_1993_CZECH_REPUBLIC                 ((SRM_RT_Code)(292))
#define SRM_RTCOD_S_JTSK_1993_CZECH_SLOVAKIA                 ((SRM_RT_Code)(293))
#define SRM_RTCOD_S42_PULKOVO_3_POLAND                       ((SRM_RT_Code)(294))
#define SRM_RTCOD_S42_PULKOVO_ALBANIA                        ((SRM_RT_Code)(295))
#define SRM_RTCOD_S42_PULKOVO_CZECH_REPUBLIC_SLOVAKIA        ((SRM_RT_Code)(296))
#define SRM_RTCOD_S42_PULKOVO_G_ROMANIA                      ((SRM_RT_Code)(297))
#define SRM_RTCOD_S42_PULKOVO_HUNGARY                        ((SRM_RT_Code)(298))
#define SRM_RTCOD_S42_PULKOVO_KAZAKHSTAN                     ((SRM_RT_Code)(299))
#define SRM_RTCOD_S42_PULKOVO_LATVIA                         ((SRM_RT_Code)(300))
#define SRM_RTCOD_SANTO_DOS_1965_ESPIRITO_SANTO_ISLAND       ((SRM_RT_Code)(301))
#define SRM_RTCOD_SAO_BRAZ_1987_SAO_MIGUEL_SANTA_MARIA_ISLANDS ((SRM_RT_Code)(302))
#define SRM_RTCOD_SAPPER_HILL_1943_3_E_FALKLAND_ISLANDS      ((SRM_RT_Code)(303))
#define SRM_RTCOD_SATURN_1988_IDENTITY                       ((SRM_RT_Code)(304))
#define SRM_RTCOD_SATURN_MAGNETIC_1993_VOYAGER               ((SRM_RT_Code)(305))
#define SRM_RTCOD_SCHWARZECK_1991_NAMIBIA                    ((SRM_RT_Code)(306))
#define SRM_RTCOD_SELVAGEM_GRANDE_1938_SALVAGE_ISLANDS       ((SRM_RT_Code)(307))
#define SRM_RTCOD_SIERRA_LEONE_1960_SIERRA_LEONE             ((SRM_RT_Code)(308))
#define SRM_RTCOD_SIRGAS_2000_IDENTITY_BY_DEFAULT            ((SRM_RT_Code)(309))
#define SRM_RTCOD_SUN_1992_IDENTITY                          ((SRM_RT_Code)(310))
#define SRM_RTCOD_TANANARIVE_OBS_1925_3_MADAGASCAR           ((SRM_RT_Code)(311))
#define SRM_RTCOD_TANANARIVE_OBS_1925_PM_PARIS_3_MADAGASCAR  ((SRM_RT_Code)(312))
#define SRM_RTCOD_TELESTO_1988_IDENTITY                      ((SRM_RT_Code)(313))
#define SRM_RTCOD_TERN_1961_TERN_ISLAND                      ((SRM_RT_Code)(314))
#define SRM_RTCOD_TETHYS_1991_IDENTITY                       ((SRM_RT_Code)(315))
#define SRM_RTCOD_THALASSA_1991_IDENTITY                     ((SRM_RT_Code)(316))
#define SRM_RTCOD_THEBE_2000_IDENTITY                        ((SRM_RT_Code)(317))
#define SRM_RTCOD_TIMBALAI_EVRST_1948_3_BRUNEI_E_MALAYSIA    ((SRM_RT_Code)(318))
#define SRM_RTCOD_TIMBALAI_EVRST_1948_7_BRUNEI_E_MALAYSIA    ((SRM_RT_Code)(319))
#define SRM_RTCOD_TITAN_1982_IDENTITY                        ((SRM_RT_Code)(320))
#define SRM_RTCOD_TITANIA_1988_IDENTITY                      ((SRM_RT_Code)(321))
#define SRM_RTCOD_TOKYO_1991_JAPAN                           ((SRM_RT_Code)(322))
#define SRM_RTCOD_TOKYO_1991_MEAN_SOLUTION                   ((SRM_RT_Code)(323))
#define SRM_RTCOD_TOKYO_1991_OKINAWA                         ((SRM_RT_Code)(324))
#define SRM_RTCOD_TOKYO_1991_1991_SOUTH_KOREA                ((SRM_RT_Code)(325))
#define SRM_RTCOD_TOKYO_1991_1997_SOUTH_KOREA                ((SRM_RT_Code)(326))
#define SRM_RTCOD_TRISTAN_1968_TRISTAN_DA_CUNHA              ((SRM_RT_Code)(327))
#define SRM_RTCOD_TRITON_1991_IDENTITY                       ((SRM_RT_Code)(328))
#define SRM_RTCOD_UMBRIEL_1988_IDENTITY                      ((SRM_RT_Code)(329))
#define SRM_RTCOD_URANUS_1988_IDENTITY                       ((SRM_RT_Code)(330))
#define SRM_RTCOD_URANUS_MAGNETIC_1993_VOYAGER               ((SRM_RT_Code)(331))
#define SRM_RTCOD_VENUS_1991_IDENTITY                        ((SRM_RT_Code)(332))
#define SRM_RTCOD_VITI_LEVU_1916_VITI_LEVU_ISLANDS           ((SRM_RT_Code)(333))
#define SRM_RTCOD_VOIROL_1874_ALGERIA                        ((SRM_RT_Code)(334))
#define SRM_RTCOD_VOIROL_1874_PM_PARIS_ALGERIA               ((SRM_RT_Code)(335))
#define SRM_RTCOD_VOIROL_1960_ALGERIA                        ((SRM_RT_Code)(336))
#define SRM_RTCOD_VOIROL_1960_PM_PARIS_ALGERIA               ((SRM_RT_Code)(337))
#define SRM_RTCOD_WAKE_1952_WAKE_ATOLL                       ((SRM_RT_Code)(338))
#define SRM_RTCOD_WAKE_ENIWETOK_1960_MARSHALL_ISLANDS        ((SRM_RT_Code)(339))
#define SRM_RTCOD_WGS_1972_GLOBAL                            ((SRM_RT_Code)(340))
#define SRM_RTCOD_WGS_1984_IDENTITY                          ((SRM_RT_Code)(341))
#define SRM_RTCOD_YACARE_1987_URUGUAY                        ((SRM_RT_Code)(342))
#define SRM_RTCOD_ZANDERIJ_1987_SURINAME                     ((SRM_RT_Code)(343))
typedef SRM_Integer SRM_Spatial_Coordinate_Code;
#define SRM_SPACOORDCOD_UNSPECIFIED      ((SRM_Spatial_Coordinate_Code)(0))
#define SRM_SPACOORDCOD_CC_3D            ((SRM_Spatial_Coordinate_Code)(1))
#define SRM_SPACOORDCOD_CD_3D            ((SRM_Spatial_Coordinate_Code)(2))
#define SRM_SPACOORDCOD_CD_SURFACE       ((SRM_Spatial_Coordinate_Code)(3))
#define SRM_SPACOORDCOD_CM_3D            ((SRM_Spatial_Coordinate_Code)(4))
#define SRM_SPACOORDCOD_EC_AUGMENTED_3D  ((SRM_Spatial_Coordinate_Code)(5))
#define SRM_SPACOORDCOD_EC_SURFACE       ((SRM_Spatial_Coordinate_Code)(6))
#define SRM_SPACOORDCOD_EI_3D            ((SRM_Spatial_Coordinate_Code)(7))
#define SRM_SPACOORDCOD_HAEC_3D          ((SRM_Spatial_Coordinate_Code)(8))
#define SRM_SPACOORDCOD_HEEC_3D          ((SRM_Spatial_Coordinate_Code)(9))
#define SRM_SPACOORDCOD_HEEQ_3D          ((SRM_Spatial_Coordinate_Code)(10))
#define SRM_SPACOORDCOD_LCC_AUGMENTED_3D ((SRM_Spatial_Coordinate_Code)(11))
#define SRM_SPACOORDCOD_LCC_SURFACE      ((SRM_Spatial_Coordinate_Code)(12))
#define SRM_SPACOORDCOD_LCE_3D           ((SRM_Spatial_Coordinate_Code)(13))
#define SRM_SPACOORDCOD_LSA_2D           ((SRM_Spatial_Coordinate_Code)(14))
#define SRM_SPACOORDCOD_LSP_2D           ((SRM_Spatial_Coordinate_Code)(15))
#define SRM_SPACOORDCOD_LSR_2D           ((SRM_Spatial_Coordinate_Code)(16))
#define SRM_SPACOORDCOD_LSR_3D           ((SRM_Spatial_Coordinate_Code)(17))
#define SRM_SPACOORDCOD_LTSAS_3D         ((SRM_Spatial_Coordinate_Code)(18))
#define SRM_SPACOORDCOD_LTSAS_SURFACE    ((SRM_Spatial_Coordinate_Code)(19))
#define SRM_SPACOORDCOD_LTSC_3D          ((SRM_Spatial_Coordinate_Code)(20))
#define SRM_SPACOORDCOD_LTSC_SURFACE     ((SRM_Spatial_Coordinate_Code)(21))
#define SRM_SPACOORDCOD_LTSE_3D          ((SRM_Spatial_Coordinate_Code)(22))
#define SRM_SPACOORDCOD_LTSE_SURFACE     ((SRM_Spatial_Coordinate_Code)(23))
#define SRM_SPACOORDCOD_M_AUGMENTED_3D   ((SRM_Spatial_Coordinate_Code)(24))
#define SRM_SPACOORDCOD_M_SURFACE        ((SRM_Spatial_Coordinate_Code)(25))
#define SRM_SPACOORDCOD_OMS_AUGMENTED_3D ((SRM_Spatial_Coordinate_Code)(26))
#define SRM_SPACOORDCOD_OMS_SURFACE      ((SRM_Spatial_Coordinate_Code)(27))
#define SRM_SPACOORDCOD_PD_3D            ((SRM_Spatial_Coordinate_Code)(28))
#define SRM_SPACOORDCOD_PD_SURFACE       ((SRM_Spatial_Coordinate_Code)(29))
#define SRM_SPACOORDCOD_PS_AUGMENTED_3D  ((SRM_Spatial_Coordinate_Code)(30))
#define SRM_SPACOORDCOD_PS_SURFACE       ((SRM_Spatial_Coordinate_Code)(31))
#define SRM_SPACOORDCOD_SEC_3D           ((SRM_Spatial_Coordinate_Code)(32))
#define SRM_SPACOORDCOD_SEQ_3D           ((SRM_Spatial_Coordinate_Code)(33))
#define SRM_SPACOORDCOD_SMD_3D           ((SRM_Spatial_Coordinate_Code)(34))
#define SRM_SPACOORDCOD_SME_3D           ((SRM_Spatial_Coordinate_Code)(35))
#define SRM_SPACOORDCOD_TM_AUGMENTED_3D  ((SRM_Spatial_Coordinate_Code)(36))
#define SRM_SPACOORDCOD_TM_SURFACE       ((SRM_Spatial_Coordinate_Code)(37))
typedef SRM_Integer SRM_SRF_Code;
#define SRM_SRFCOD_UNSPECIFIED                    ((SRM_SRF_Code)(0))
#define SRM_SRFCOD_BRITISH_NATIONAL_GRID_AIRY     ((SRM_SRF_Code)(1))
#define SRM_SRFCOD_BRITISH_OSGRS80_GRID           ((SRM_SRF_Code)(2))
#define SRM_SRFCOD_DELAWARE_SPCS_1983             ((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_N_AMERICAN_1983       ((SRM_SRF_Code)(7))
#define SRM_SRFCOD_IRISH_GRID_1965                ((SRM_SRF_Code)(8))
#define SRM_SRFCOD_IRISH_TRANSVERSE_MERCATOR_1989 ((SRM_SRF_Code)(9))
#define SRM_SRFCOD_LAMBERT_93                     ((SRM_SRF_Code)(10))
#define SRM_SRFCOD_LAMBERT_II_WIDE                ((SRM_SRF_Code)(11))
#define SRM_SRFCOD_MARS_PLANETOCENTRIC_2000       ((SRM_SRF_Code)(12))
#define SRM_SRFCOD_MARS_PLANETOGRAPHIC_2000       ((SRM_SRF_Code)(13))
#define SRM_SRFCOD_MARYLAND_SPCS_1983             ((SRM_SRF_Code)(14))
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_SRFS_Code;
#define SRM_SRFSCOD_UNSPECIFIED                   ((SRM_SRFS_Code)(0))
#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_SRFSM_Alabama_SPCS_Code;
#define SRM_SRFSMALCOD_WEST_ZONE ((SRM_SRFSM_Alabama_SPCS_Code)(1))
#define SRM_SRFSMALCOD_EAST_ZONE ((SRM_SRFSM_Alabama_SPCS_Code)(2))
typedef SRM_Integer SRM_SRFSM_GTRS_GCS_Code; 
typedef SRM_Integer SRM_SRFSM_Japan_Rectangular_Plane_CS_Code;
#define SRM_SRFSMJPRPCSCOD_ZONE_I     ((SRM_SRFSM_Japan_Rectangular_Plane_CS_Code)(1))
#define SRM_SRFSMJPRPCSCOD_ZONE_II    ((SRM_SRFSM_Japan_Rectangular_Plane_CS_Code)(2))
#define SRM_SRFSMJPRPCSCOD_ZONE_III   ((SRM_SRFSM_Japan_Rectangular_Plane_CS_Code)(3))
#define SRM_SRFSMJPRPCSCOD_ZONE_IV    ((SRM_SRFSM_Japan_Rectangular_Plane_CS_Code)(4))
#define SRM_SRFSMJPRPCSCOD_ZONE_V     ((SRM_SRFSM_Japan_Rectangular_Plane_CS_Code)(5))
#define SRM_SRFSMJPRPCSCOD_ZONE_VI    ((SRM_SRFSM_Japan_Rectangular_Plane_CS_Code)(6))
#define SRM_SRFSMJPRPCSCOD_ZONE_VII   ((SRM_SRFSM_Japan_Rectangular_Plane_CS_Code)(7))
#define SRM_SRFSMJPRPCSCOD_ZONE_VIII  ((SRM_SRFSM_Japan_Rectangular_Plane_CS_Code)(8))
#define SRM_SRFSMJPRPCSCOD_ZONE_IX    ((SRM_SRFSM_Japan_Rectangular_Plane_CS_Code)(9))
#define SRM_SRFSMJPRPCSCOD_ZONE_X     ((SRM_SRFSM_Japan_Rectangular_Plane_CS_Code)(10))
#define SRM_SRFSMJPRPCSCOD_ZONE_XI    ((SRM_SRFSM_Japan_Rectangular_Plane_CS_Code)(11))
#define SRM_SRFSMJPRPCSCOD_ZONE_XII   ((SRM_SRFSM_Japan_Rectangular_Plane_CS_Code)(12))
#define SRM_SRFSMJPRPCSCOD_ZONE_XIII  ((SRM_SRFSM_Japan_Rectangular_Plane_CS_Code)(13))
#define SRM_SRFSMJPRPCSCOD_ZONE_XIV   ((SRM_SRFSM_Japan_Rectangular_Plane_CS_Code)(14))
#define SRM_SRFSMJPRPCSCOD_ZONE_XV    ((SRM_SRFSM_Japan_Rectangular_Plane_CS_Code)(15))
#define SRM_SRFSMJPRPCSCOD_ZONE_XVI   ((SRM_SRFSM_Japan_Rectangular_Plane_CS_Code)(16))
#define SRM_SRFSMJPRPCSCOD_ZONE_XVII  ((SRM_SRFSM_Japan_Rectangular_Plane_CS_Code)(17))
#define SRM_SRFSMJPRPCSCOD_ZONE_XVIII ((SRM_SRFSM_Japan_Rectangular_Plane_CS_Code)(18))
#define SRM_SRFSMJPRPCSCOD_ZONE_XIX   ((SRM_SRFSM_Japan_Rectangular_Plane_CS_Code)(19))
typedef SRM_Integer SRM_SRFSM_Lambert_NTF_Code;
#define SRM_SRFSMLAMNTFCOD_ZONE_I   ((SRM_SRFSM_Lambert_NTF_Code)(1))
#define SRM_SRFSMLAMNTFCOD_ZONE_II  ((SRM_SRFSM_Lambert_NTF_Code)(2))
#define SRM_SRFSMLAMNTFCOD_ZONE_III ((SRM_SRFSM_Lambert_NTF_Code)(3))
#define SRM_SRFSMLAMNTFCOD_ZONE_IV  ((SRM_SRFSM_Lambert_NTF_Code)(4))
typedef SRM_Integer SRM_SRFSM_UPS_Code;
#define SRM_SRFSMUPSCOD_NORTHERN_POLE ((SRM_SRFSM_UPS_Code)(1))
#define SRM_SRFSMUPSCOD_SOUTHERN_POLE ((SRM_SRFSM_UPS_Code)(2))
typedef SRM_Integer SRM_SRFSM_UTM_Code;
#define SRM_SRFSMUTMCOD_ZONE_1_NORTHERN_HEMISPHERE  ((SRM_SRFSM_UTM_Code)(1))
#define SRM_SRFSMUTMCOD_ZONE_2_NORTHERN_HEMISPHERE  ((SRM_SRFSM_UTM_Code)(2))
#define SRM_SRFSMUTMCOD_ZONE_3_NORTHERN_HEMISPHERE  ((SRM_SRFSM_UTM_Code)(3))
#define SRM_SRFSMUTMCOD_ZONE_4_NORTHERN_HEMISPHERE  ((SRM_SRFSM_UTM_Code)(4))
#define SRM_SRFSMUTMCOD_ZONE_5_NORTHERN_HEMISPHERE  ((SRM_SRFSM_UTM_Code)(5))
#define SRM_SRFSMUTMCOD_ZONE_6_NORTHERN_HEMISPHERE  ((SRM_SRFSM_UTM_Code)(6))
#define SRM_SRFSMUTMCOD_ZONE_7_NORTHERN_HEMISPHERE  ((SRM_SRFSM_UTM_Code)(7))
#define SRM_SRFSMUTMCOD_ZONE_8_NORTHERN_HEMISPHERE  ((SRM_SRFSM_UTM_Code)(8))
#define SRM_SRFSMUTMCOD_ZONE_9_NORTHERN_HEMISPHERE  ((SRM_SRFSM_UTM_Code)(9))
#define SRM_SRFSMUTMCOD_ZONE_10_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(10))
#define SRM_SRFSMUTMCOD_ZONE_11_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(11))
#define SRM_SRFSMUTMCOD_ZONE_12_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(12))
#define SRM_SRFSMUTMCOD_ZONE_13_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(13))
#define SRM_SRFSMUTMCOD_ZONE_14_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(14))
#define SRM_SRFSMUTMCOD_ZONE_15_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(15))
#define SRM_SRFSMUTMCOD_ZONE_16_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(16))
#define SRM_SRFSMUTMCOD_ZONE_17_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(17))
#define SRM_SRFSMUTMCOD_ZONE_18_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(18))
#define SRM_SRFSMUTMCOD_ZONE_19_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(19))
#define SRM_SRFSMUTMCOD_ZONE_20_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(20))
#define SRM_SRFSMUTMCOD_ZONE_21_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(21))
#define SRM_SRFSMUTMCOD_ZONE_22_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(22))
#define SRM_SRFSMUTMCOD_ZONE_23_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(23))
#define SRM_SRFSMUTMCOD_ZONE_24_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(24))
#define SRM_SRFSMUTMCOD_ZONE_25_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(25))
#define SRM_SRFSMUTMCOD_ZONE_26_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(26))
#define SRM_SRFSMUTMCOD_ZONE_27_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(27))
#define SRM_SRFSMUTMCOD_ZONE_28_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(28))
#define SRM_SRFSMUTMCOD_ZONE_29_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(29))
#define SRM_SRFSMUTMCOD_ZONE_30_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(30))
#define SRM_SRFSMUTMCOD_ZONE_31_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(31))
#define SRM_SRFSMUTMCOD_ZONE_32_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(32))
#define SRM_SRFSMUTMCOD_ZONE_33_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(33))
#define SRM_SRFSMUTMCOD_ZONE_34_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(34))
#define SRM_SRFSMUTMCOD_ZONE_35_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(35))
#define SRM_SRFSMUTMCOD_ZONE_36_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(36))
#define SRM_SRFSMUTMCOD_ZONE_37_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(37))
#define SRM_SRFSMUTMCOD_ZONE_38_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(38))
#define SRM_SRFSMUTMCOD_ZONE_39_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(39))
#define SRM_SRFSMUTMCOD_ZONE_40_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(40))
#define SRM_SRFSMUTMCOD_ZONE_41_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(41))
#define SRM_SRFSMUTMCOD_ZONE_42_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(42))
#define SRM_SRFSMUTMCOD_ZONE_43_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(43))
#define SRM_SRFSMUTMCOD_ZONE_44_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(44))
#define SRM_SRFSMUTMCOD_ZONE_45_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(45))
#define SRM_SRFSMUTMCOD_ZONE_46_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(46))
#define SRM_SRFSMUTMCOD_ZONE_47_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(47))
#define SRM_SRFSMUTMCOD_ZONE_48_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(48))
#define SRM_SRFSMUTMCOD_ZONE_49_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(49))
#define SRM_SRFSMUTMCOD_ZONE_50_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(50))
#define SRM_SRFSMUTMCOD_ZONE_51_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(51))
#define SRM_SRFSMUTMCOD_ZONE_52_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(52))
#define SRM_SRFSMUTMCOD_ZONE_53_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(53))
#define SRM_SRFSMUTMCOD_ZONE_54_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(54))
#define SRM_SRFSMUTMCOD_ZONE_55_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(55))
#define SRM_SRFSMUTMCOD_ZONE_56_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(56))
#define SRM_SRFSMUTMCOD_ZONE_57_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(57))
#define SRM_SRFSMUTMCOD_ZONE_58_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(58))
#define SRM_SRFSMUTMCOD_ZONE_59_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(59))
#define SRM_SRFSMUTMCOD_ZONE_60_NORTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(60))
#define SRM_SRFSMUTMCOD_ZONE_1_SOUTHERN_HEMISPHERE  ((SRM_SRFSM_UTM_Code)(61))
#define SRM_SRFSMUTMCOD_ZONE_2_SOUTHERN_HEMISPHERE  ((SRM_SRFSM_UTM_Code)(62))
#define SRM_SRFSMUTMCOD_ZONE_3_SOUTHERN_HEMISPHERE  ((SRM_SRFSM_UTM_Code)(63))
#define SRM_SRFSMUTMCOD_ZONE_4_SOUTHERN_HEMISPHERE  ((SRM_SRFSM_UTM_Code)(64))
#define SRM_SRFSMUTMCOD_ZONE_5_SOUTHERN_HEMISPHERE  ((SRM_SRFSM_UTM_Code)(65))
#define SRM_SRFSMUTMCOD_ZONE_6_SOUTHERN_HEMISPHERE  ((SRM_SRFSM_UTM_Code)(66))
#define SRM_SRFSMUTMCOD_ZONE_7_SOUTHERN_HEMISPHERE  ((SRM_SRFSM_UTM_Code)(67))
#define SRM_SRFSMUTMCOD_ZONE_8_SOUTHERN_HEMISPHERE  ((SRM_SRFSM_UTM_Code)(68))
#define SRM_SRFSMUTMCOD_ZONE_9_SOUTHERN_HEMISPHERE  ((SRM_SRFSM_UTM_Code)(69))
#define SRM_SRFSMUTMCOD_ZONE_10_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(70))
#define SRM_SRFSMUTMCOD_ZONE_11_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(71))
#define SRM_SRFSMUTMCOD_ZONE_12_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(72))
#define SRM_SRFSMUTMCOD_ZONE_13_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(73))
#define SRM_SRFSMUTMCOD_ZONE_14_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(74))
#define SRM_SRFSMUTMCOD_ZONE_15_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(75))
#define SRM_SRFSMUTMCOD_ZONE_16_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(76))
#define SRM_SRFSMUTMCOD_ZONE_17_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(77))
#define SRM_SRFSMUTMCOD_ZONE_18_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(78))
#define SRM_SRFSMUTMCOD_ZONE_19_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(79))
#define SRM_SRFSMUTMCOD_ZONE_20_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(80))
#define SRM_SRFSMUTMCOD_ZONE_21_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(81))
#define SRM_SRFSMUTMCOD_ZONE_22_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(82))
#define SRM_SRFSMUTMCOD_ZONE_23_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(83))
#define SRM_SRFSMUTMCOD_ZONE_24_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(84))
#define SRM_SRFSMUTMCOD_ZONE_25_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(85))
#define SRM_SRFSMUTMCOD_ZONE_26_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(86))
#define SRM_SRFSMUTMCOD_ZONE_27_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(87))
#define SRM_SRFSMUTMCOD_ZONE_28_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(88))
#define SRM_SRFSMUTMCOD_ZONE_29_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(89))
#define SRM_SRFSMUTMCOD_ZONE_30_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(90))
#define SRM_SRFSMUTMCOD_ZONE_31_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(91))
#define SRM_SRFSMUTMCOD_ZONE_32_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(92))
#define SRM_SRFSMUTMCOD_ZONE_33_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(93))
#define SRM_SRFSMUTMCOD_ZONE_34_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(94))
#define SRM_SRFSMUTMCOD_ZONE_35_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(95))
#define SRM_SRFSMUTMCOD_ZONE_36_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(96))
#define SRM_SRFSMUTMCOD_ZONE_37_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(97))
#define SRM_SRFSMUTMCOD_ZONE_38_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(98))
#define SRM_SRFSMUTMCOD_ZONE_39_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(99))
#define SRM_SRFSMUTMCOD_ZONE_40_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(100))
#define SRM_SRFSMUTMCOD_ZONE_41_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(101))
#define SRM_SRFSMUTMCOD_ZONE_42_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(102))
#define SRM_SRFSMUTMCOD_ZONE_43_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(103))
#define SRM_SRFSMUTMCOD_ZONE_44_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(104))
#define SRM_SRFSMUTMCOD_ZONE_45_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(105))
#define SRM_SRFSMUTMCOD_ZONE_46_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(106))
#define SRM_SRFSMUTMCOD_ZONE_47_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(107))
#define SRM_SRFSMUTMCOD_ZONE_48_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(108))
#define SRM_SRFSMUTMCOD_ZONE_49_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(109))
#define SRM_SRFSMUTMCOD_ZONE_50_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(110))
#define SRM_SRFSMUTMCOD_ZONE_51_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(111))
#define SRM_SRFSMUTMCOD_ZONE_52_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(112))
#define SRM_SRFSMUTMCOD_ZONE_53_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(113))
#define SRM_SRFSMUTMCOD_ZONE_54_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(114))
#define SRM_SRFSMUTMCOD_ZONE_55_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(115))
#define SRM_SRFSMUTMCOD_ZONE_56_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(116))
#define SRM_SRFSMUTMCOD_ZONE_57_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(117))
#define SRM_SRFSMUTMCOD_ZONE_58_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(118))
#define SRM_SRFSMUTMCOD_ZONE_59_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(119))
#define SRM_SRFSMUTMCOD_ZONE_60_SOUTHERN_HEMISPHERE ((SRM_SRFSM_UTM_Code)(120))
typedef SRM_Integer SRM_SRFSM_Wisconsin_SPCS_Code;
#define SRM_SRFSMWNSPCSCOD_SOUTH_ZONE   ((SRM_SRFSM_Wisconsin_SPCS_Code)(1))
#define SRM_SRFSMWNSPCSCOD_CENTRAL_ZONE ((SRM_SRFSM_Wisconsin_SPCS_Code)(2))
#define SRM_SRFSMWNSPCSCOD_NORTH_ZONE   ((SRM_SRFSM_Wisconsin_SPCS_Code)(3))
typedef SRM_Integer SRM_SRFT_Code;
#define SRM_SRFTCOD_UNSPECIFIED                             ((SRM_SRFT_Code)(0))
#define SRM_SRFTCOD_CELESTIOCENTRIC                         ((SRM_SRFT_Code)(1))
#define SRM_SRFTCOD_LOCAL_SPACE_RECT_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_SPC_EUCLIDEAN             ((SRM_SRFT_Code)(5))
#define SRM_SRFTCOD_LOCAL_TANGENT_SPC_AZIMUTHAL_SPHERICAL   ((SRM_SRFT_Code)(6))
#define SRM_SRFTCOD_LOCAL_TANGENT_SPC_CYLINDRICAL           ((SRM_SRFT_Code)(7))
#define SRM_SRFTCOD_LOCOCENTRIC_EUCLIDEAN_3D                ((SRM_SRFT_Code)(8))
#define SRM_SRFTCOD_CELESTIOMAGNETIC                        ((SRM_SRFT_Code)(9))
#define SRM_SRFTCOD_EQUATORIAL_INERTIAL                     ((SRM_SRFT_Code)(10))
#define SRM_SRFTCOD_SOLAR_ECLIPTIC                          ((SRM_SRFT_Code)(11))
#define SRM_SRFTCOD_SOLAR_EQUATORIAL                        ((SRM_SRFT_Code)(12))
#define SRM_SRFTCOD_SOLAR_MAGNETIC_ECLIPTIC                 ((SRM_SRFT_Code)(13))
#define SRM_SRFTCOD_SOLAR_MAGNETIC_DIPOLE                   ((SRM_SRFT_Code)(14))
#define SRM_SRFTCOD_HELIOSPHER_ARIES_ECLIPTIC               ((SRM_SRFT_Code)(15))
#define SRM_SRFTCOD_HELIOSPHER_EARTH_ECLIPTIC               ((SRM_SRFT_Code)(16))
#define SRM_SRFTCOD_HELIOSPHER_EARTH_EQUATORIAL             ((SRM_SRFT_Code)(17))
#define SRM_SRFTCOD_MERCATOR                                ((SRM_SRFT_Code)(18))
#define SRM_SRFTCOD_OBLIQUE_MERCATOR_SPHERICAL              ((SRM_SRFT_Code)(19))
#define SRM_SRFTCOD_TRANSVERSE_MERCATOR                     ((SRM_SRFT_Code)(20))
#define SRM_SRFTCOD_LAMBERT_CONFORMAL_CONIC                 ((SRM_SRFT_Code)(21))
#define SRM_SRFTCOD_POLAR_STEREOGRAPHIC                     ((SRM_SRFT_Code)(22))
#define SRM_SRFTCOD_EQUIDISTANT_CYLINDRICAL                 ((SRM_SRFT_Code)(23))
#define SRM_SRFTCOD_LOCAL_SPACE_RECT_2D                     ((SRM_SRFT_Code)(24))
#define SRM_SRFTCOD_LOCAL_SPACE_AZIMUTHAL_2D                ((SRM_SRFT_Code)(25))
#define SRM_SRFTCOD_LOCAL_SPACE_POLAR_2D                    ((SRM_SRFT_Code)(26))
typedef SRM_Integer SRM_Status_Code;
#define SRM_STATCOD_SUCCESS                   ((SRM_Status_Code)(1))
#define SRM_STATCOD_INVALID_SRF               ((SRM_Status_Code)(2))
#define SRM_STATCOD_INVALID_SOURCE_SRF        ((SRM_Status_Code)(3))
#define SRM_STATCOD_INVALID_SOURCE_COORDINATE ((SRM_Status_Code)(4))
#define SRM_STATCOD_INVALID_TARGET_COORDINATE ((SRM_Status_Code)(5))
#define SRM_STATCOD_INVALID_POINT1_COORDINATE ((SRM_Status_Code)(6))
#define SRM_STATCOD_INVALID_POINT2_COORDINATE ((SRM_Status_Code)(7))
#define SRM_STATCOD_OPERATION_UNSUPPORTED     ((SRM_Status_Code)(8))
#define SRM_STATCOD_INVALID_SOURCE_DIRECTION  ((SRM_Status_Code)(9))
#define SRM_STATCOD_INVALID_TARGET_DIRECTION  ((SRM_Status_Code)(10))
#define SRM_STATCOD_INVALID_CODE              ((SRM_Status_Code)(11))
#define SRM_STATCOD_INVALID_INPUT             ((SRM_Status_Code)(12))
#define SRM_STATCOD_CREATION_FAILURE          ((SRM_Status_Code)(13))
#define SRM_STATCOD_DESTRUCTION_FAILURE       ((SRM_Status_Code)(14))
#define SRM_STATCOD_FLOATING_OVERFLOW         ((SRM_Status_Code)(15))
#define SRM_STATCOD_FLOATING_UNDERFLOW        ((SRM_Status_Code)(16))
#define SRM_STATCOD_FLOATING_POINT_ERROR      ((SRM_Status_Code)(17))
#define SRM_STATCOD_MEMORY_ALLOCATION_ERROR   ((SRM_Status_Code)(18))
#define SRM_STATCOD_BUFFER_OVERFLOW           ((SRM_Status_Code)(2401))
#define SRM_STATCOD_ENUMERATION_VALUE_INVALID ((SRM_Status_Code)(2402))
typedef struct {
  SRM_Integer          length;
  SRM_Object_Reference *coordinate2D_array;
} SRM_Coordinate2D_Array;
typedef struct {
  SRM_Integer          length;
  SRM_Object_Reference *coordinate3D_array;
} SRM_Coordinate3D_Array;
typedef struct {
  SRM_Integer                 length;
  SRM_Coordinate_Valid_Region *valid_region_array;
} SRM_Coordinate_Valid_Region_Array;
typedef struct {
  SRM_Integer          length;
  SRM_Object_Reference *direction_array;
} SRM_Direction_Array;
typedef struct {
  SRM_Long_Float array[3];
} SRM_Vector_3D; 
typedef struct {
  SRM_Long_Float array[3][3];
} SRM_Matrix_3x3;
typedef struct {
  SRM_Long_Float array[4][4];
} SRM_Matrix_4x4;
typedef struct {
  SRM_Long_Float  longitude;
  SRM_Long_Float  latitude;
  SRM_Long_Float  ellipsoidal_height;
} SRM_CD_3D_Coordinate;
typedef struct {
  SRM_Long_Float  longitude;
  SRM_Long_Float  latitude;
} SRM_CD_Surface_Coordinate;
typedef struct {
  SRM_Long_Float  right_ascension;
  SRM_Long_Float  declination;
  SRM_Long_Float  radius;
} SRM_EI_3D_Coordinate;
typedef struct {
  SRM_Long_Float  longitude;
  SRM_Long_Float  latitude;
  SRM_Long_Float  radius;
} SRM_Equatorial_Spherical_3D_Coordinate;
typedef struct {
  SRM_Long_Float  origin_longitude;
  SRM_Long_Float  central_scale;
  SRM_Long_Float  false_easting;
  SRM_Long_Float  false_northing;
} SRM_EC_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  latitude1;
  SRM_Long_Float  latitude2;
  SRM_Long_Float  false_easting;
  SRM_Long_Float  false_northing;
} SRM_LCC_Parameters;
typedef struct {
  SRM_Vector_3D  lococentre;
  SRM_Vector_3D  primary_axis;
  SRM_Vector_3D  secondary_axis;
} SRM_LCE_3D_Parameters;
typedef struct {
  SRM_Long_Float  azimuth;
  SRM_Long_Float  radius;
} SRM_LSA_2D_Coordinate;
typedef struct {
  SRM_Long_Float  radius;
  SRM_Long_Float  angle;
} SRM_LSP_2D_Coordinate;
typedef struct {
  SRM_Axis_Direction  forward_direction;
} SRM_LSR_2D_Parameters;
typedef struct {
  SRM_Axis_Direction  forward_direction;
  SRM_Axis_Direction  up_direction;
} SRM_LSR_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  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  x;
  SRM_Long_Float  y;
  SRM_Long_Float  height;
} SRM_LTSE_3D_Coordinate;
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_LTSE_Parameters;
typedef struct {
  SRM_Long_Float  x;
  SRM_Long_Float  y;
} 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  central_scale;
  SRM_Long_Float  false_easting;
  SRM_Long_Float  false_northing;
} SRM_M_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_Long_Float  delta_x;
  SRM_Long_Float  delta_y;
  SRM_Long_Float  omega;
  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  latitude;
  SRM_Long_Float  longitude;
  SRM_Long_Float  ellipsoidal_height;
} SRM_PD_3D_Coordinate;
typedef struct {
  SRM_Long_Float  latitude;
  SRM_Long_Float  longitude;
} SRM_PD_Surface_Coordinate;
typedef struct {
  SRM_Polar_Aspect  polar_aspect;
  SRM_Long_Float    origin_longitude;
  SRM_Long_Float    central_scale;
  SRM_Long_Float    false_easting;
  SRM_Long_Float    false_northing;
} SRM_PS_Parameters;
typedef struct {
  SRM_SRFS_Code  set_code;
  union _SRM_SRFS_Code_Info_Union {
    SRM_Integer  srfsm_unspecified;
    SRM_SRFSM_Alabama_SPCS_Code                srfsm_alabama_spcs;
    SRM_SRFSM_GTRS_GCS_Code                    srfsm_gtrs_gcs;
    SRM_SRFSM_Japan_Rectangular_Plane_CS_Code  srfsm_japan_rectangular_plane_cs;
    SRM_SRFSM_Lambert_NTF_Code                 srfsm_lambert_ntf;
    SRM_SRFSM_UPS_Code                         srfsm_ups;
    SRM_SRFSM_UTM_Code                         srfsm_utm;
    SRM_SRFSM_Wisconsin_SPCS_Code              srfsm_wisconsin_spcs;
  } value;
} SRM_SRFS_Code_Info;
typedef struct {
  SRM_ORM_Code        orm_code;
  SRM_SRFS_Code_Info  srfs_code_info;
} SRM_SRFS_Info;
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_TM_Parameters;
typedef struct {
  SRM_Integer  unused;
} SRM_Unused;
typedef struct {
  SRM_SRFT_Code  template_code;
  SRM_ORM_Code   orm_code;
  union _SRM_SRFT_Parameters_Union { /* varisant is template_code */
    SRM_Unused                       cc_srf_parameters;
    SRM_LSR_3D_Parameters            lsr_3d_srf_parameters;
    SRM_Unused                       cd_srf_parameters;
    SRM_Unused                       pd_srf_parameters;
    SRM_LTSE_Parameters              ltse_parameters;
    SRM_Local_Tangent_Parameters     ltsas_parameters;
    SRM_Local_Tangent_Parameters     ltsc_parameters;
    SRM_LCE_3D_Parameters            lce_3d_srf_parameters;
    SRM_Unused                       cm_srf_parameters;
    SRM_Unused                       ei_srf_parameters;
    SRM_Unused                       sec_srf_parameters;
    SRM_Unused                       seq_srf_parameters;
    SRM_Unused                       sme_srf_parameters;
    SRM_Unused                       smd_srf_parameters;
    SRM_Unused                       haec_srf_parameters;
    SRM_Unused                       heec_srf_parameters;
    SRM_Unused                       heeq_srf_parameters;
    SRM_M_Parameters                 m_srf_parameters;
    SRM_Oblique_Mercator_Parameters  oms_srf_parameters;
    SRM_TM_Parameters                tm_srf_parameters;
    SRM_LCC_Parameters               lcc_srf_parameters;
    SRM_PS_Parameters                ps_srf_parameters;
    SRM_EC_Parameters                ec_srf_parameters;
    SRM_LSR_2D_Parameters            lsr_2d_srf_parameters;
    SRM_Unused                       lsa_srf_parameters;
    SRM_Unused                       lsp_srf_parameters;
  } value;
} SRM_SRFT_Parameters;
typedef struct {
  SRM_SRF_Parameters_Info_Code  srf_parameters_info_code;
  union _SRM_SRF_Parameters_Info_Union {
    SRM_SRFT_Parameters  srf_template;
    SRM_SRFS_Info        srf_set;
    SRM_SRF_Code         srf_instance;
  } value;
} SRM_SRF_Parameters_Info;
typedef struct {
  SRM_DSS_Code             dss_code;
  SRM_SRF_Parameters_Info  srf_parameters_info;
} SRM_SRF_Reference_Surface_Info;
typedef struct {
  SRM_Spatial_Coordinate_Code  spatial_coord_code;
  union _SRM_Coordinate_Union {
    SRM_Unused                             unspecified;
    SRM_Euclidean_3D_Coordinate            cc_3d;
    SRM_CD_3D_Coordinate                   cd_3d;
    SRM_CD_Surface_Coordinate              cd_surface;
    SRM_Equatorial_Spherical_3D_Coordinate cm_3d;
    SRM_Map_Projection_3D_Coordinate       ec_aug_3d;
    SRM_Map_Projection_Surface_Coordinate  ec_surface;
    SRM_EI_3D_Coordinate                   ei_3d;
    SRM_Equatorial_Spherical_3D_Coordinate haec_3d;
    SRM_Equatorial_Spherical_3D_Coordinate heec_3d;
    SRM_Equatorial_Spherical_3D_Coordinate heeq_3d;
    SRM_Map_Projection_3D_Coordinate       lcc_aug_3d;
    SRM_Map_Projection_Surface_Coordinate  lcc_surface;
    SRM_Euclidean_3D_Coordinate            lce_3d;
    SRM_LSA_2D_Coordinate                  lsa_2d;
    SRM_LSP_2D_Coordinate                  lsp_2d;
    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_PD_3D_Coordinate                   pd_3d;
    SRM_PD_Surface_Coordinate              pd_surface;
    SRM_Map_Projection_3D_Coordinate       ps_aug_3d;
    SRM_Map_Projection_Surface_Coordinate  ps_surface;
    SRM_Equatorial_Spherical_3D_Coordinate sec_3d;
    SRM_Equatorial_Spherical_3D_Coordinate seq_3d;
    SRM_Euclidean_3D_Coordinate            smd_3d;
    SRM_Euclidean_3D_Coordinate            sme_3d;
    SRM_Map_Projection_3D_Coordinate       tm_aug_3d;
    SRM_Map_Projection_Surface_Coordinate  tm_surface;
  } value;
} SRM_Coordinate;

A.3

Replace the content of A.3 with the following:

#include "srm_types.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 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_SurfaceCoordinate_Method_List;
typedef struct {
  void                               *state;
  SRM_SurfaceCoordinate_Method_List  *methods; 
} SRM_SurfaceCoordinate;
typedef struct {
  SRM_Destroy  *destroy; 
} SRM_Direction_Method_List;
typedef struct {
  void                       *state;
  SRM_Direction_Method_List  *methods; 
} SRM_Direction;
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_GetORMCodes (
  SRM_Object_Reference  this_object, 
  SRM_ORM_Code          *orm_code,  /* OUT */
  SRM_RT_Code           *rt_code    /* OUT */
);
typedef SRM_Status_Code SRM_GetSRFCodes (
  SRM_Object_Reference  this_object,
  SRM_SRFT_Code         *srft_code,      /* OUT srf template code */
  SRM_SRF_Code          *srf_code,       /* OUT srf code */
  SRM_SRFS_Code_Info    *srfs_code_info  /* OUT srfs code info */
);
typedef SRM_Status_Code SRM_GetCSCode (
  SRM_Object_Reference  this_object, 
  SRM_CS_Code           *cs_code      /* OUT cs code */
);
typedef SRM_Status_Code SRM_ChangeCoordinate2DSRF (
        SRM_Object_Reference  this_object, 
  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_object, 
  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_ChangeCoordinate2DArraySRF (
        SRM_Object_Reference   this_object, 
  const SRM_Object_Reference   source_srf, 
  const SRM_Coordinate2D_Array *source_coordinate_array, 
        SRM_Coordinate2D_Array *target_coordinate_array,  /* OUT */
        SRM_Integer_Positive   *index
);
typedef SRM_Status_Code SRM_ChangeCoordinate2DArraySRFObject (
        SRM_Object_Reference                  this_object, 
  const SRM_Object_Reference                  source_srf, 
  const SRM_Coordinate2D_Array                *source_coordinate_array, 
  const SRM_ORM_Transformation_2D_Parameters  *h_st, 
        SRM_Coordinate2D_Array                *target_coordinate_array,  /* OUT */
        SRM_Integer_Positive                  *index                     /* OUT */
);
typedef SRM_Status_Code SRM_CreateCoordinate2D (
  SRM_Object_Reference  this_object, 
  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_object, 
  const SRM_Coordinate2D     *source_coordinate, 
  const SRM_Coordinate2D     *target_coordinate, 
        SRM_Long_Float       *distance           /* OUT */
);
typedef SRM_Status_Code SRM_GetCoordinate2DValues (
        SRM_Object_Reference this_object, 
  const SRM_Coordinate2D     coordinate, 
        SRM_Long_Float       *first_coordinate_component,  /* OUT */
        SRM_Long_Float       *second_coordinate_component  /* OUT */
);
typedef SRM_Status_Code SRM_ChangeCoordinate3DSRF (
        SRM_Object_Reference        this_object, 
  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_object, 
  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_ChangeCoordinate3DArraySRF (
        SRM_Object_Reference               this_object, 
  const SRM_Object_Reference               source_srf, 
  const SRM_Coordinate3D_Array             *source_coordinate_array, 
        SRM_Coordinate3D_Array             *target_coordinate_array,  /* OUT */
        SRM_Integer_Positive               *index,                    /* OUT */
        SRM_Coordinate_Valid_Region_Array  *region_array              /* OUT */
);
typedef SRM_Status_Code SRM_ChangeCoordinate3DArraySRFObject (
        SRM_Object_Reference                 this_object, 
  const SRM_Object_Reference                 source_srf, 
  const SRM_Coordinate3D_Array               *source_coordinate_array, 
  const SRM_ORM_Transformation_3D_Parameters *h_st, 
        SRM_Coordinate3D_Array               *target_coordinate_array,  /* OUT */
        SRM_Coordinate_Valid_Region_Array    *region_array              /* OUT */
);
typedef SRM_Status_Code SRM_ChangeDirectionSRF (
        SRM_Object_Reference        this_object, 
  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_object, 
  const SRM_Object_Reference                 source_srf, 
  const SRM_Direction                        *source_direction, 
  const SRM_ORM_Transformation_3D_Parameters *h_st, 
        SRM_Direction                        *target_direction, /* OUT */
        SRM_Coordinate_Valid_Region          *ref_coord_region  /* OUT */
);
typedef SRM_Status_Code SRM_ChangeDirectionArraySRF (
        SRM_Object_Reference              this_object, 
  const SRM_Object_Reference              source_srf, 
  const SRM_Direction_Array               *source_direction_array, 
        SRM_Direction_Array               *target_direction_array, /* OUT */
        SRM_Integer_Positive              *index,                  /* OUT */
        SRM_Coordinate_Valid_Region_Array *ref_coord_region_array  /* OUT */
);
typedef SRM_Status_Code SRM_ChangeDirectionArraySRFObject (
        SRM_Object_Reference                 this_object, 
  const SRM_Object_Reference                 source_srf, 
  const SRM_Direction_Array                  *source_direction_array, 
  const SRM_ORM_Transformation_3D_Parameters *h_st, 
        SRM_Direction_Array                  *target_direction_array, /* OUT */
        SRM_Integer_Positive                 *index,                  /* OUT */
        SRM_Coordinate_Valid_Region_Array    *ref_coord_region_array  /* OUT */
);
typedef SRM_Status_Code SRM_CreateCoordinate3D (
  SRM_Object_Reference  this_object, 
  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_object, 
  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_CreateLococentricEuclidean3DSRF (
        SRM_Object_Reference  this_object, 
  const SRM_Coordinate3D      *lococentre, 
  const SRM_Direction         *primary_axis, 
  const SRM_Direction         *secondary_axis, 
        SRM_Object_Reference  *lococentricEuclidean3D_srf  /* OUT */
);
typedef SRM_Status_Code SRM_EuclideanDistance3D (
        SRM_Object_Reference  this_object, 
  const SRM_Coordinate3D      *point1_coordinate, 
  const SRM_Coordinate3D      *point2_coordinate, 
        SRM_Long_Float        *distance           /* OUT */
);
typedef SRM_Status_Code SRM_GetCoordinate3DValues (
        SRM_Object_Reference  this_object, 
  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_object, 
  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_object, 
  SRM_Integer           component_identifier, 
  SRM_Interval_Type     *interval_type,        /* OUT */
  SRM_Long_Float        *extended_lower_bount, /* OUT */
  SRM_Long_Float        *lower_bound,          /* OUT */
  SRM_Long_Float        *upper_bound,          /* OUT */
  SRM_Long_Float        *extended_upper_bound  /* OUT */
);
typedef SRM_Status_Code SRM_GetValidRegion (
  SRM_Object_Reference  this_object, 
  SRM_Integer           component_identifier, 
  SRM_Interval_Type     *interval_type,       /* OUT */
  SRM_Long_Float        *lower_bound,         /* OUT */
  SRM_Long_Float        *upper_bound          /* OUT */
);
typedef SRM_Status_Code SRM_SetExtendedValidRegion (
  SRM_Object_Reference  this_object, 
  SRM_Integer           coordinate_identifier, 
  SRM_Interval_Type     Interval_type,
  SRM_Long_Float        extended_lower_bound,
  SRM_Long_Float        lower_bound, 
  SRM_Long_Float        upper_bound,
  SRM_Long_Float        extended_upper_bound
);
typedef SRM_Status_Code SRM_SetValidRegion (
  SRM_Object_Reference  this_object, 
  SRM_Integer           coordinate_identifier, 
  SRM_Interval_Type     interval_type,
  SRM_Long_Float        lower_bound,
  SRM_Long_Float        upper_bound
);
typedef SRM_Status_Code SRM_AssociateSurfaceCoordinateTPS (
        SRM_Object_Reference  this_object, 
  const SRM_Coordinate3D      *coordinate, 
        SRM_SurfaceCoordinate *on_surface_coordinate  /* OUT */
);
typedef SRM_Status_Code SRM_CreateSurfaceCoordinateTPS (
  SRM_Object_Reference  this_object, 
  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_object, 
  const SRM_SurfaceCoordinate *point1_coordinate, 
  const SRM_SurfaceCoordinate *point2_coordinate, 
        SRM_Long_Float        *distance           /* OUT */
);
typedef SRM_Status_Code SRM_GetSurfaceCoordinateValuesTPS (
        SRM_Object_Reference  this_object, 
  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_object, 
  const SRM_SurfaceCoordinate  *surface_coordinate, 
        SRM_Coordinate3D  **coordinate  /* OUT */
);
typedef SRM_Status_Code SRM_LTSE_GetSRFParameters (
  SRM_Object_Reference  this_object, 
  SRM_LTSE_Parameters   *parameters  /* OUT */
);
typedef struct {
  SRM_AssociateSurfaceCoordinateTPS    *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DArraySRF       *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF            *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject      *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF          *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject    *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF               *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject         *ChangeDirectionSRFObject; 
  SRM_CreateCoordinate3D               *CreateCoordinate3D; 
  SRM_CreateDirection                  *CreateDirection; 
  SRM_CreateLococentricEuclidean3DSRF  *CreateLococentricEuclidean3D;
  SRM_CreateSurfaceCoordinateTPS       *CreateSurfaceCoordinate; 
  SRM_Destroy                          *Destroy; 
  SRM_EuclideanDistance3D              *EuclideanDistance3D; 
  SRM_EuclideanDistanceTPS             *EuclideanDistanceTPS; 
  SRM_GetCoordinate3DValues            *GetCoordinate3DValues; 
  SRM_GetCSCode                        *GetCSCode; 
  SRM_GetDirectionValues               *GetDirectionValues; 
  SRM_GetExtendedValidRegion           *GetExtendedValidRegion; 
  SRM_GetORMCodes                      *GetORMCodes; 
  SRM_GetSRFCodes                      *GetSRFCodes; 
  SRM_LTSE_GetSRFParameters            *GetSRFParameters; 
  SRM_GetSurfaceCoordinateValuesTPS    *GetSurfaceCoordinateValues; 
  SRM_GetValidRegion                   *GetValidRegion; 
  SRM_PromoteSurfaceCoordinateTPS      *PromoteSurfaceCoordinate; 
  SRM_SetExtendedValidRegion           *SetExtendedValidRegion; 
  SRM_SetValidRegion                   *SetValidRegion;
} SRM_LTSE_Method_List;
typedef struct {
  void                  *state;
  SRM_LTSE_Method_List  *methods; 
} SRM_LocalTangentSpaceEuclidean;
SRM_Status_Code SRM_LTSE_Create (
      SRM_ORM_Code                    orm_code,
      SRM_RT_Code                     rt_code,
const SRM_LTSE_Parameters             *parameters,
      SRM_LocalTangentSpaceEuclidean  *new_srf     /* OUT */ 
);
typedef SRM_Status_Code SRM_AssociateSurfaceCoordinateEH (
        SRM_Object_Reference  this_object, 
  const SRM_Coordinate3D      *coordinate, 
        SRM_SurfaceCoordinate *on_surface_coordinate  /* OUT */
);
typedef SRM_Status_Code SRM_CreateLocalTangentSpaceEuclideanSRF (
        SRM_Object_Reference           this_object,
  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_object, 
  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_object, 
  const SRM_SurfaceCoordinate *point1_coordinate, 
  const SRM_SurfaceCoordinate *point2_coordinate, 
        SRM_Long_Float        *distance           /* OUT */
);
typedef SRM_Status_Code SRM_GeodesicDistance (
        SRM_Object_Reference  this_object, 
  const SRM_SurfaceCoordinate *point1_coordinate, 
  const SRM_SurfaceCoordinate *point2_coordinate, 
        SRM_Long_Float        *distance           /* OUT */
);
typedef SRM_Status_Code SRM_GetSurfaceCoordinateValuesEH (
        SRM_Object_Reference  this_object, 
  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_object, 
  const SRM_SurfaceCoordinate *surface_coordinate, 
        SRM_Coordinate3D      *coordinate          /* OUT */
);
typedef SRM_Status_Code SRM_VerticalOffset (
        SRM_Object_Reference  this_object,
        SRM_DSS_Code          dss_code,
  const SRM_SurfaceCoordinate *surface_coordinate, 
        SRM_Long_Float        *separation          /* OUT */
);
typedef SRM_Status_Code SRM_ConvergenceOfTheMeridian (
        SRM_Object_Reference  this_object, 
  const SRM_SurfaceCoordinate *surface_coordinate, 
        SRM_Long_Float        *gamma               /* OUT */
);
typedef SRM_Status_Code SRM_GetExtendedValidGeodeticRegion (
  SRM_Object_Reference  this_object, 
  SRM_Integer           component_identifier,
  SRM_Interval_Type     *interval_type,        /* OUT */ 
  SRM_Long_Float        *extended_lower_bound, /* OUT */
  SRM_Long_Float        *lower_bound,          /* OUT */
  SRM_Long_Float        *upper_bound,          /* OUT */
  SRM_Long_Float        *extended_upper_bound  /* OUT */
);
typedef SRM_Status_Code SRM_GetValidGeodeticRegion (
  SRM_Object_Reference  this_object, 
  SRM_Integer           component_identifier,
  SRM_Interval_Type     *interval_type,       /* OUT */ 
  SRM_Long_Float        *lower_bound,         /* OUT */
  SRM_Long_Float        *upper_bound          /* OUT */
);
typedef SRM_Status_Code SRM_MapAzimuth (
        SRM_Object_Reference  this_object, 
  const SRM_SurfaceCoordinate *point1_coordinate, 
  const SRM_SurfaceCoordinate *point2_coordinate, 
        SRM_Long_Float        *azimuth            /* OUT */
);
typedef SRM_Status_Code SRM_PointDistortion (
        SRM_Object_Reference  this_object, 
  const SRM_SurfaceCoordinate *surface_coordinate, 
        SRM_Long_Float        *distortion          /* OUT */
);
typedef SRM_Status_Code SRM_SetExtendedValidGeodeticRegion (
  SRM_Object_Reference  this_object, 
  SRM_Integer           component_identifier,
  SRM_Interval_Type     interval_type,
  SRM_Long_Float        extended_lower_bound, 
  SRM_Long_Float        lower_bound,
  SRM_Long_Float        upper_bound,
  SRM_Long_Float        extended_upper_bound
);
typedef SRM_Status_Code SRM_SetValidGeodeticRegion (
  SRM_Object_Reference  this_object, 
  SRM_Integer           component_identifier,
  SRM_Interval_Type     interval_type,
  SRM_Long_Float        lower_bound, 
  SRM_Long_Float        upper_bound
);
typedef struct {
  SRM_ChangeCoordinate3DArraySRF       *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF            *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject      *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF          *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject    *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF               *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject         *ChangeDirectionSRFObject; 
  SRM_CreateCoordinate3D               *CreateCoordinate3D; 
  SRM_CreateDirection                  *CreateDirection;
  SRM_CreateLococentricEuclidean3DSRF  *CreateLococentricEuclidean3D;
  SRM_Destroy                          *Destroy; 
  SRM_EuclideanDistance3D              *EuclideanDistance3D; 
  SRM_GetCoordinate3DValues            *GetCoordinate3DValues; 
  SRM_GetCSCode                        *GetCSCode; 
  SRM_GetDirectionValues               *GetDirectionValues; 
  SRM_GetExtendedValidRegion           *GetExtendedValidRegion; 
  SRM_GetORMCodes                      *GetORMCodes; 
  SRM_GetSRFCodes                      *GetSRFCodes; 
  SRM_GetValidRegion                   *GetValidRegion; 
  SRM_SetExtendedValidRegion           *SetExtendedValidRegion; 
  SRM_SetValidRegion                   *SetValidRegion;
} SRM_CC_Method_List;
typedef struct {
  void                *state;
  SRM_CC_Method_List  *methods; 
} SRM_Celestiocentric;
SRM_Status_Code SRM_CC_Create (
  SRM_ORM_Code         orm_code,
  SRM_RT_Code          rt_code,
  SRM_Celestiocentric  *new_srf  /* OUT */ 
);
typedef struct {
  SRM_AssociateSurfaceCoordinateEH        *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DArraySRF          *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject    *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF               *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject         *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF             *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject       *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF                  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject            *ChangeDirectionSRFObject; 
  SRM_CreateCoordinate3D                  *CreateCoordinate3D; 
  SRM_CreateDirection                     *CreateDirection; 
  SRM_CreateLocalTangentSpaceEuclideanSRF *CreateLocalTangentSpaceEuclideanSRF; 
  SRM_CreateLococentricEuclidean3DSRF     *CreateLococentricEuclidean3D;
  SRM_CreateSurfaceCoordinateEH           *CreateSurfaceCoordinate; 
  SRM_Destroy                             *Destroy; 
  SRM_EuclideanDistance3D                 *EuclideanDistance3D; 
  SRM_EuclideanDistanceEH                 *EuclideanDistanceEH; 
  SRM_GeodesicDistance                    *GeodesicDistance; 
  SRM_GetCoordinate3DValues               *GetCoordinate3DValues; 
  SRM_GetCSCode                           *GetCSCode; 
  SRM_GetDirectionValues                  *GetDirectionValues; 
  SRM_GetExtendedValidRegion              *GetExtendedValidRegion; 
  SRM_GetORMCodes                         *GetORMCodes; 
  SRM_GetSRFCodes                         *GetSRFCodes; 
  SRM_GetSurfaceCoordinateValuesEH        *GetSurfaceCoordinateValues; 
  SRM_GetValidRegion                      *GetValidRegion; 
  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;
SRM_Status_Code SRM_CD_Create (
  SRM_ORM_Code       orm_code,
  SRM_RT_Code        rt_code,
  SRM_Celestiodetic  *new_srf  /* OUT */ 
);
typedef struct {
  SRM_ChangeCoordinate3DArraySRF       *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF            *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject      *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF          *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject    *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF               *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject         *ChangeDirectionSRFObject; 
  SRM_CreateCoordinate3D               *CreateCoordinate3D; 
  SRM_CreateDirection                  *CreateDirection; 
  SRM_CreateLococentricEuclidean3DSRF  *CreateLococentricEuclidean3D;
  SRM_Destroy                          *Destroy; 
  SRM_EuclideanDistance3D              *EuclideanDistance3D; 
  SRM_GetCoordinate3DValues            *GetCoordinate3DValues; 
  SRM_GetCSCode                        *GetCSCode; 
  SRM_GetDirectionValues               *GetDirectionValues; 
  SRM_GetExtendedValidRegion           *GetExtendedValidRegion; 
  SRM_GetORMCodes                      *GetORMCodes; 
  SRM_GetSRFCodes                      *GetSRFCodes; 
  SRM_GetValidRegion                   *GetValidRegion; 
  SRM_SetExtendedValidRegion           *SetExtendedValidRegion; 
  SRM_SetValidRegion                   *SetValidRegion;
} SRM_CM_Method_List;
typedef struct {
  void                *state;
  SRM_CM_Method_List  *methods; 
} SRM_Celestiomagnetic;
SRM_Status_Code SRM_CM_Create (
  SRM_ORM_Code          orm_code,
  SRM_RT_Code           rt_code,
  SRM_Celestiomagnetic  *new_srf  /* OUT */ 
);
typedef struct {
  SRM_ChangeCoordinate3DArraySRF       *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF            *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject      *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF          *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject    *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF               *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject         *ChangeDirectionSRFObject; 
  SRM_CreateCoordinate3D               *CreateCoordinate3D; 
  SRM_CreateDirection                  *CreateDirection; 
  SRM_CreateLococentricEuclidean3DSRF  *CreateLococentricEuclidean3D;
  SRM_Destroy                          *Destroy; 
  SRM_EuclideanDistance3D              *EuclideanDistance3D; 
  SRM_GetCoordinate3DValues            *GetCoordinate3DValues; 
  SRM_GetCSCode                        *GetCSCode; 
  SRM_GetDirectionValues               *GetDirectionValues; 
  SRM_GetExtendedValidRegion           *GetExtendedValidRegion; 
  SRM_GetORMCodes                      *GetORMCodes; 
  SRM_GetSRFCodes                      *GetSRFCodes; 
  SRM_GetValidRegion                   *GetValidRegion; 
  SRM_SetExtendedValidRegion           *SetExtendedValidRegion; 
  SRM_SetValidRegion                   *SetValidRegion;
} SRM_EI_Method_List;
typedef struct {
  void                *state;
  SRM_EI_Method_List  *methods; 
} SRM_EquatorialInertial;
SRM_Status_Code SRM_EI_Create (
  SRM_ORM_Code            orm_code,
  SRM_RT_Code             rt_code,
  SRM_EquatorialInertial  *new_srf  /* OUT */ 
);
typedef SRM_Status_Code SRM_EC_GetSRFParameters (
  SRM_Object_Reference  this_object, 
  SRM_EC_Parameters     *parameters  /* OUT */
);
typedef struct {
  SRM_AssociateSurfaceCoordinateEH        *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DArraySRF          *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject    *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF               *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject         *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF             *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject       *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF                  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject            *ChangeDirectionSRFObject; 
  SRM_CreateCoordinate3D                  *CreateCoordinate3D; 
  SRM_CreateDirection                     *CreateDirection; 
  SRM_CreateLocalTangentSpaceEuclideanSRF *CreateLocalTangentPlaneEuclideanSRF; 
  SRM_CreateLococentricEuclidean3DSRF     *CreateLococentricEuclidean3D;
  SRM_CreateSurfaceCoordinateEH           *CreateSurfaceCoordinate; 
  SRM_Destroy                             *Destroy; 
  SRM_EuclideanDistance3D                 *EuclideanDistance3D; 
  SRM_EuclideanDistanceEH                 *EuclideanDistanceEH; 
  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_MapAzimuth                          *MapAzimuth; 
  SRM_PromoteSurfaceCoordinateEH          *PromoteSurfaceCoordinate; 
  SRM_PointDistortion                     *PointDistortion; 
  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_EquidistantCylindrical;
SRM_Status_Code SRM_EC_Create (
        SRM_ORM_Code                orm_code,
        SRM_RT_Code                 rt_code,
  const SRM_EC_Parameters           *parameters,
        SRM_EquidistantCylindrical  *new_srf  /* OUT */
);
typedef struct {
  SRM_ChangeCoordinate3DArraySRF       *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF            *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject      *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF          *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject    *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF               *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject         *ChangeDirectionSRFObject; 
  SRM_CreateCoordinate3D               *CreateCoordinate3D; 
  SRM_CreateDirection                  *CreateDirection; 
  SRM_CreateLococentricEuclidean3DSRF  *CreateLococentricEuclidean3D;
  SRM_Destroy                          *Destroy; 
  SRM_EuclideanDistance3D              *EuclideanDistance3D; 
  SRM_GetCoordinate3DValues            *GetCoordinate3DValues; 
  SRM_GetCSCode                        *GetCSCode; 
  SRM_GetDirectionValues               *GetDirectionValues; 
  SRM_GetExtendedValidRegion           *GetExtendedValidRegion; 
  SRM_GetORMCodes                      *GetORMCodes; 
  SRM_GetSRFCodes                      *GetSRFCodes; 
  SRM_GetValidRegion                   *GetValidRegion; 
  SRM_SetExtendedValidRegion           *SetExtendedValidRegion; 
  SRM_SetValidRegion                   *SetValidRegion;
} SRM_HAEC_Method_List;
typedef struct {
  void                  *state;
  SRM_HAEC_Method_List  *methods; 
} SRM_HeliosphericAriesEcliptic;
SRM_Status_Code SRM_HAEC_Create (
  SRM_ORM_Code                   orm_code,
  SRM_RT_Code                    rt_code,
  SRM_HeliosphericAriesEcliptic  *new_srf  /* OUT */ 
);
typedef struct {
  SRM_ChangeCoordinate3DArraySRF       *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF            *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject      *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF          *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject    *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF               *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject         *ChangeDirectionSRFObject; 
  SRM_CreateCoordinate3D               *CreateCoordinate3D; 
  SRM_CreateDirection                  *CreateDirection; 
  SRM_CreateLococentricEuclidean3DSRF  *CreateLococentricEuclidean3D;
  SRM_Destroy                          *Destroy; 
  SRM_EuclideanDistance3D              *EuclideanDistance3D; 
  SRM_GetCoordinate3DValues            *GetCoordinate3DValues; 
  SRM_GetCSCode                        *GetCSCode; 
  SRM_GetDirectionValues               *GetDirectionValues; 
  SRM_GetExtendedValidRegion           *GetExtendedValidRegion; 
  SRM_GetORMCodes                      *GetORMCodes; 
  SRM_GetSRFCodes                      *GetSRFCodes; 
  SRM_GetValidRegion                   *GetValidRegion; 
  SRM_SetExtendedValidRegion           *SetExtendedValidRegion; 
  SRM_SetValidRegion                   *SetValidRegion;
} SRM_HEEC_Method_List;
typedef struct {
  void                  *state;
  SRM_HEEC_Method_List  *methods; 
} SRM_HeliosphericEarthEcliptic;
SRM_Status_Code SRM_HEEC_Create (
  SRM_ORM_Code                   orm_code,
  SRM_RT_Code                    rt_code,
  SRM_HeliosphericEarthEcliptic  *new_srf  /* OUT */ 
);
typedef struct {
  SRM_ChangeCoordinate3DArraySRF       *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF            *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject      *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF          *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject    *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF               *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject         *ChangeDirectionSRFObject; 
  SRM_CreateCoordinate3D               *CreateCoordinate3D; 
  SRM_CreateDirection                  *CreateDirection; 
  SRM_CreateLococentricEuclidean3DSRF  *CreateLococentricEuclidean3D;
  SRM_Destroy                          *Destroy; 
  SRM_EuclideanDistance3D              *EuclideanDistance3D; 
  SRM_GetCoordinate3DValues            *GetCoordinate3DValues; 
  SRM_GetCSCode                        *GetCSCode; 
  SRM_GetDirectionValues               *GetDirectionValues; 
  SRM_GetExtendedValidRegion           *GetExtendedValidRegion; 
  SRM_GetORMCodes                      *GetORMCodes; 
  SRM_GetSRFCodes                      *GetSRFCodes; 
  SRM_GetValidRegion                   *GetValidRegion; 
  SRM_SetExtendedValidRegion           *SetExtendedValidRegion; 
  SRM_SetValidRegion                   *SetValidRegion;
} SRM_HEEQ_Method_List;
typedef struct {
  void                  *state;
  SRM_HEEQ_Method_List  *methods; 
} SRM_HeliosphericEarthEquatorial;
SRM_Status_Code SRM_HEEQ_Create (
  SRM_ORM_Code                     orm_code,
  SRM_RT_Code                      rt_code,
  SRM_HeliosphericEarthEquatorial  *new_srf  /* OUT */ 
);
typedef SRM_Status_Code SRM_LCC_GetSRFParameters (
  SRM_Object_Reference this_object, 
  SRM_LCC_Parameters   *parameters  /* OUT */
);
typedef struct {
  SRM_AssociateSurfaceCoordinateEH        *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DArraySRF          *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject    *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF               *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject         *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF             *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject       *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF                  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject            *ChangeDirectionSRFObject; 
  SRM_ConvergenceOfTheMeridian            *ConvergenceOfTheMeridian; 
  SRM_CreateCoordinate3D                  *CreateCoordinate3D; 
  SRM_CreateDirection                     *CreateDirection; 
  SRM_CreateLocalTangentSpaceEuclideanSRF *CreateLocalTangentPlaneEuclideanSRF; 
  SRM_CreateLococentricEuclidean3DSRF     *CreateLococentricEuclidean3D;
  SRM_CreateSurfaceCoordinateEH           *CreateSurfaceCoordinate; 
  SRM_Destroy                             *Destroy; 
  SRM_EuclideanDistance3D                 *EuclideanDistance3D; 
  SRM_EuclideanDistanceEH                 *EuclideanDistanceEH; 
  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_MapAzimuth                          *MapAzimuth; 
  SRM_PromoteSurfaceCoordinateEH          *PromoteSurfaceCoordinate; 
  SRM_PointDistortion                     *PointDistortion; 
  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;
SRM_Status_Code SRM_LCC_Create (
      SRM_ORM_Code              orm_code,
      SRM_RT_Code               rt_code,
const SRM_LCC_Parameters        *parameters,
      SRM_LambertConformalConic *new_srf     /* OUT */ 
);
typedef struct {
  SRM_ChangeCoordinate2DArraySRF       *ChangeCoordinate2DArraySRF; 
  SRM_ChangeCoordinate2DArraySRFObject *ChangeCoordinate2DArraySRFObject; 
  SRM_ChangeCoordinate2DSRF            *ChangeCoordinate2DSRF; 
  SRM_ChangeCoordinate2DSRFObject      *ChangeCoordinate2DSRFObject; 
  SRM_CreateCoordinate2D               *CreateCoordinate2D; 
  SRM_Destroy                          *Destroy; 
  SRM_EuclideanDistance2D              *EuclideanDistance2D; 
  SRM_GetCoordinate2DValues            *GetCoordinate2DValues; 
  SRM_GetCSCode                        *GetCSCode; 
  SRM_GetORMCodes                      *GetORMCodes; 
  SRM_GetSRFCodes                      *GetSRFCodes; 
} SRM_LSA_Method_List;
typedef struct {
  void                 *state;
  SRM_LSA_Method_List  *methods; 
} SRM_LocalSpaceAzimuthal;
SRM_Status_Code SRM_LSA_Create (
  SRM_ORM_Code             orm_code,
  SRM_RT_Code              rt_code,
  SRM_LocalSpaceAzimuthal  *new_srf  /* OUT */ 
);
typedef struct {
  SRM_ChangeCoordinate2DArraySRF       *ChangeCoordinate2DArraySRF; 
  SRM_ChangeCoordinate2DArraySRFObject *ChangeCoordinate2DArraySRFObject; 
  SRM_ChangeCoordinate2DSRF            *ChangeCoordinate2DSRF; 
  SRM_ChangeCoordinate2DSRFObject      *ChangeCoordinate2DSRFObject; 
  SRM_CreateCoordinate2D               *CreateCoordinate2D; 
  SRM_Destroy                          *Destroy; 
  SRM_EuclideanDistance2D              *EuclideanDistance2D; 
  SRM_GetCoordinate2DValues            *GetCoordinate2DValues; 
  SRM_GetCSCode                        *GetCSCode; 
  SRM_GetORMCodes                      *GetORMCodes; 
  SRM_GetSRFCodes                      *GetSRFCodes; 
} SRM_LSP_Method_List;
typedef struct {
  void                 *state;
  SRM_LSP_Method_List  *methods; 
} SRM_LocalSpacePolar;
SRM_Status_Code SRM_LSP_Create (
  SRM_ORM_Code         orm_code,
  SRM_RT_Code          rt_code,
  SRM_LocalSpacePolar  *new_srf  /* OUT */ 
);
typedef SRM_Status_Code SRM_LSR_2D_GetSRFParameters (
  SRM_Object_Reference   this_object,
  SRM_LSR_2D_Parameters  *parameters  /* OUT */
);
typedef struct {
  SRM_ChangeCoordinate2DArraySRF       *ChangeCoordinate2DArraySRF; 
  SRM_ChangeCoordinate2DArraySRFObject *ChangeCoordinate2DArraySRFObject; 
  SRM_ChangeCoordinate2DSRF            *ChangeCoordinate2DSRF; 
  SRM_ChangeCoordinate2DSRFObject      *ChangeCoordinate2DSRFObject; 
  SRM_CreateCoordinate2D               *CreateCoordinate2D; 
  SRM_Destroy                          *Destroy; 
  SRM_EuclideanDistance2D              *EuclideanDistance2D; 
  SRM_GetCoordinate2DValues            *GetCoordinate2DValues; 
  SRM_GetCSCode                        *GetCSCode; 
  SRM_GetORMCodes                      *GetORMCodes; 
  SRM_GetSRFCodes                      *GetSRFCodes;
  SRM_LSR_2D_GetSRFParameters          *GetSRFParameters;
} SRM_LSR_2D_Method_List;
typedef struct {
  void                    *state;
  SRM_LSR_2D_Method_List  *methods; 
} SRM_LocalSpaceRectangular2D;
SRM_Status_Code SRM_LSR_2D_Create (
        SRM_ORM_Code           orm_code,
        SRM_RT_Code            rt_code,
  const SRM_LSR_2D_Parameters  *parameters,
        SRM_LocalSpaceRectangular2D  *new_srf  /* OUT */
);
typedef SRM_Status_Code SRM_LSR_3D_GetSRFParameters (
  SRM_Object_Reference   this_object, 
  SRM_LSR_3D_Parameters  *parameters  /* OUT */
);
typedef struct {
  SRM_ChangeCoordinate3DArraySRF       *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF            *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject      *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF          *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject    *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF               *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject         *ChangeDirectionSRFObject; 
  SRM_CreateCoordinate3D               *CreateCoordinate3D; 
  SRM_CreateDirection                  *CreateDirection; 
  SRM_CreateLococentricEuclidean3DSRF  *CreateLococentricEuclidean3D;
  SRM_Destroy                          *Destroy; 
  SRM_EuclideanDistance3D              *EuclideanDistance3D; 
  SRM_GetCoordinate3DValues            *GetCoordinate3DValues; 
  SRM_GetCSCode                        *GetCSCode; 
  SRM_GetDirectionValues               *GetDirectionValues; 
  SRM_GetExtendedValidRegion           *GetExtendedValidRegion; 
  SRM_GetORMCodes                      *GetORMCodes; 
  SRM_GetSRFCodes                      *GetSRFCodes;
  SRM_LSR_3D_GetSRFParameters          *GetSRFParameters;
  SRM_GetValidRegion                   *GetValidRegion; 
  SRM_SetExtendedValidRegion           *SetExtendedValidRegion; 
  SRM_SetValidRegion                   *SetValidRegion;
} SRM_LSR_3D_Method_List;
typedef struct {
  void                    *state;
  SRM_LSR_3D_Method_List  *methods; 
} SRM_LocalSpaceRectangular3D;
SRM_Status_Code SRM_LSR_3D_Create (
        SRM_ORM_Code                 orm_code,
        SRM_RT_Code                  rt_code,
  const SRM_LSR_3D_Parameters        *parameters,
        SRM_LocalSpaceRectangular3D  *new_srf  /* OUT */ 
);
typedef SRM_Status_Code SRM_LTSAS_GetSRFParameters (
  SRM_Object_Reference          this_object, 
  SRM_Local_Tangent_Parameters  *parameters  /* OUT */
);
typedef struct {
  SRM_AssociateSurfaceCoordinateTPS    *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DArraySRF       *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF            *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject      *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF          *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject    *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF               *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject         *ChangeDirectionSRFObject; 
  SRM_CreateCoordinate3D               *CreateCoordinate3D; 
  SRM_CreateDirection                  *CreateDirection; 
  SRM_CreateLococentricEuclidean3DSRF  *CreateLococentricEuclidean3D;
  SRM_CreateSurfaceCoordinateTPS       *CreateSurfaceCoordinate; 
  SRM_Destroy                          *Destroy; 
  SRM_EuclideanDistance3D              *EuclideanDistance3D; 
  SRM_EuclideanDistanceTPS             *EuclideanDistanceTPS; 
  SRM_GetCoordinate3DValues            *GetCoordinate3DValues; 
  SRM_GetCSCode                        *GetCSCode; 
  SRM_GetDirectionValues               *GetDirectionValues; 
  SRM_GetExtendedValidRegion           *GetExtendedValidRegion; 
  SRM_GetORMCodes                      *GetORMCodes; 
  SRM_GetSRFCodes                      *GetSRFCodes; 
  SRM_LTSAS_GetSRFParameters           *GetSRFParameters; 
  SRM_GetSurfaceCoordinateValuesTPS    *GetSurfaceCoordinateValues; 
  SRM_GetValidRegion                   *GetValidRegion; 
  SRM_PromoteSurfaceCoordinateTPS      *PromoteSurfaceCoordinate; 
  SRM_SetExtendedValidRegion           *SetExtendedValidRegion; 
  SRM_SetValidRegion                   *SetValidRegion;
} SRM_LTSAS_Method_List;
typedef struct {
  void                   *state;
  SRM_LTSAS_Method_List  *methods; 
} SRM_LocalTangentSpaceAzimuthalSpherical;
SRM_Status_Code SRM_LTSAS_Create (
        SRM_ORM_Code                             orm_code,
        SRM_RT_Code                              rt_code,
  const SRM_Local_Tangent_Parameters             parameters,
        SRM_LocalTangentSpaceAzimuthalSpherical  *new_srf    /* OUT */
);
typedef SRM_Status_Code SRM_LTSC_GetSRFParameters (
  SRM_Object_Reference          this_object, 
  SRM_Local_Tangent_Parameters  *parameters  /* OUT */
);
typedef struct {
  SRM_AssociateSurfaceCoordinateTPS    *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DArraySRF       *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF            *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject      *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF          *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject    *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF               *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject         *ChangeDirectionSRFObject; 
  SRM_CreateCoordinate3D               *CreateCoordinate3D; 
  SRM_CreateDirection                  *CreateDirection; 
  SRM_CreateLococentricEuclidean3DSRF  *CreateLococentricEuclidean3D;
  SRM_CreateSurfaceCoordinateTPS       *CreateSurfaceCoordinate; 
  SRM_Destroy                          *Destroy; 
  SRM_EuclideanDistance3D              *EuclideanDistance3D; 
  SRM_EuclideanDistanceTPS             *EuclideanDistanceTPS; 
  SRM_GetCoordinate3DValues            *GetCoordinate3DValues; 
  SRM_GetCSCode                        *GetCSCode; 
  SRM_GetDirectionValues               *GetDirectionValues; 
  SRM_GetExtendedValidRegion           *GetExtendedValidRegion; 
  SRM_GetORMCodes                      *GetORMCodes; 
  SRM_GetSRFCodes                      *GetSRFCodes; 
  SRM_LTSC_GetSRFParameters            *GetSRFParameters; 
  SRM_GetSurfaceCoordinateValuesTPS    *GetSurfaceCoordinateValues; 
  SRM_GetValidRegion                   *GetValidRegion; 
  SRM_PromoteSurfaceCoordinateTPS      *PromoteSurfaceCoordinate; 
  SRM_SetExtendedValidRegion           *SetExtendedValidRegion; 
  SRM_SetValidRegion                   *SetValidRegion;
} SRM_LTSC_Method_List;
typedef struct {
  void                  *state;
  SRM_LTSC_Method_List  *methods; 
} SRM_LocalTangentSpaceCylindrical;
SRM_Status_Code SRM_LTSC_Create (
        SRM_ORM_Code                     orm_code,
        SRM_RT_Code                      rt_code,
  const SRM_Local_Tangent_Parameters     *parameters,
        SRM_LocalTangentSpaceCylindrical *new_srf     /* OUT */ 
);
typedef SRM_Status_Code SRM_LCE_3D_GetSRFParameters (
  SRM_Object_Reference   this_object, 
  SRM_LCE_3D_Parameters  *parameters  /* OUT */
);
typedef struct {
  SRM_ChangeCoordinate3DArraySRF       *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF            *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject      *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF          *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject    *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF               *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject         *ChangeDirectionSRFObject; 
  SRM_CreateCoordinate3D               *CreateCoordinate3D; 
  SRM_CreateDirection                  *CreateDirection; 
  SRM_CreateLococentricEuclidean3DSRF  *CreateLococentricEuclidean3D;
  SRM_Destroy                          *Destroy; 
  SRM_EuclideanDistance3D              *EuclideanDistance3D; 
  SRM_GetCoordinate3DValues            *GetCoordinate3DValues; 
  SRM_GetCSCode                        *GetCSCode; 
  SRM_GetDirectionValues               *GetDirectionValues; 
  SRM_GetExtendedValidRegion           *GetExtendedValidRegion; 
  SRM_GetORMCodes                      *GetORMCodes; 
  SRM_GetSRFCodes                      *GetSRFCodes; 
  SRM_LCE_3D_GetSRFParameters          *GetSRFParameters; 
  SRM_GetValidRegion                   *GetValidRegion; 
  SRM_SetExtendedValidRegion           *SetExtendedValidRegion; 
  SRM_SetValidRegion                   *SetValidRegion;
} SRM_LCE_3D_Method_List;
typedef struct {
  void                   *state;
  SRM_LCE_3D_Method_List *methods; 
} SRM_LococentricEuclidean3D;
SRM_Status_Code SRM_LCE_3D_Create (
        SRM_ORM_Code               orm_code,
        SRM_RT_Code                rt_code,
  const SRM_LCE_3D_Parameters      *parameters,
        SRM_LococentricEuclidean3D *new_srf     /* OUT */ 
);
typedef SRM_Status_Code SRM_M_GetSRFParameters (
  SRM_Object_Reference  this_object, 
  SRM_M_Parameters      *parameters  /* OUT */
);
typedef struct {
  SRM_AssociateSurfaceCoordinateEH        *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DArraySRF          *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject    *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF               *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject         *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF             *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject       *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF                  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject            *ChangeDirectionSRFObject; 
  SRM_ConvergenceOfTheMeridian            *ConvergenceOfTheMeridian; 
  SRM_CreateCoordinate3D                  *CreateCoordinate3D; 
  SRM_CreateDirection                     *CreateDirection; 
  SRM_CreateLocalTangentSpaceEuclideanSRF *CreateLocalTangentPlaneEuclideanSRF; 
  SRM_CreateLococentricEuclidean3DSRF     *CreateLococentricEuclidean3D;
  SRM_CreateSurfaceCoordinateEH           *CreateSurfaceCoordinate; 
  SRM_Destroy                             *Destroy; 
  SRM_EuclideanDistance3D                 *EuclideanDistance3D; 
  SRM_EuclideanDistanceEH                 *EuclideanDistanceEH; 
  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_MapAzimuth                          *MapAzimuth; 
  SRM_PromoteSurfaceCoordinateEH          *PromoteSurfaceCoordinate; 
  SRM_PointDistortion                     *PointDistortion; 
  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;
SRM_Status_Code SRM_M_Create (
        SRM_ORM_Code     orm_code,
        SRM_RT_Code      rt_code,
  const SRM_M_Parameters *parameters,
        SRM_Mercator     *new_srf     /* OUT */
);
typedef SRM_Status_Code SRM_OMS_GetSRFParameters (
  SRM_Object_Reference             this_object, 
  SRM_Oblique_Mercator_Parameters  *parameters  /* OUT */
);
typedef struct {
  SRM_AssociateSurfaceCoordinateEH        *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DArraySRF          *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject    *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF               *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject         *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF             *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject       *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF                  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject            *ChangeDirectionSRFObject; 
  SRM_ConvergenceOfTheMeridian            *ConvergenceOfTheMeridian; 
  SRM_CreateCoordinate3D                  *CreateCoordinate3D; 
  SRM_CreateDirection                     *CreateDirection; 
  SRM_CreateLocalTangentSpaceEuclideanSRF *CreateLocalTangentPlaneEuclideanSRF; 
  SRM_CreateLococentricEuclidean3DSRF     *CreateLococentricEuclidean3D;
  SRM_CreateSurfaceCoordinateEH           *CreateSurfaceCoordinate; 
  SRM_Destroy                             *Destroy; 
  SRM_EuclideanDistance3D                 *EuclideanDistance3D; 
  SRM_EuclideanDistanceEH                 *EuclideanDistanceEH; 
  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_OMS_GetSRFParameters                *GetSRFParameters; 
  SRM_GetSurfaceCoordinateValuesEH        *GetSurfaceCoordinateValues; 
  SRM_GetValidGeodeticRegion              *GetValidGeodeticRegion; 
  SRM_GetValidRegion                      *GetValidRegion; 
  SRM_MapAzimuth                          *MapAzimuth; 
  SRM_PromoteSurfaceCoordinateEH          *PromoteSurfaceCoordinate; 
  SRM_PointDistortion                     *PointDistortion; 
  SRM_SetExtendedValidGeodeticRegion      *SetExtendedValidGeodeticRegion; 
  SRM_SetExtendedValidRegion              *SetExtendedValidRegion; 
  SRM_SetValidGeodeticRegion              *SetValidGeodeticRegion; 
  SRM_SetValidRegion                      *SetValidRegion; 
  SRM_VerticalOffset                      *VerticalOffset;
} SRM_OMS_Method_List;
typedef struct {
  void                 *state;
  SRM_OMS_Method_List  *methods; 
} SRM_ObliqueMercatorSpherical;
SRM_Status_Code SRM_OMS_Create (
        SRM_ORM_Code                    orm_code,
        SRM_RT_Code                     rt_code,
  const SRM_Oblique_Mercator_Parameters *parameters,
        SRM_ObliqueMercatorSpherical    *new_srf      /* OUT */
);
typedef struct {
  SRM_AssociateSurfaceCoordinateEH        *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DArraySRF          *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject    *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF               *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject         *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF             *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject       *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF                  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject            *ChangeDirectionSRFObject; 
  SRM_CreateCoordinate3D                  *CreateCoordinate3D; 
  SRM_CreateDirection                     *CreateDirection; 
  SRM_CreateLocalTangentSpaceEuclideanSRF *CreateLocalTangentSpaceEuclideanSRF; 
  SRM_CreateLococentricEuclidean3DSRF     *CreateLococentricEuclidean3D;
  SRM_CreateSurfaceCoordinateEH           *CreateSurfaceCoordinate; 
  SRM_Destroy                             *Destroy; 
  SRM_EuclideanDistance3D                 *EuclideanDistance3D; 
  SRM_EuclideanDistanceEH                 *EuclideanDistanceEH; 
  SRM_GeodesicDistance                    *GeodesicDistance; 
  SRM_GetCoordinate3DValues               *GetCoordinate3DValues; 
  SRM_GetCSCode                           *GetCSCode; 
  SRM_GetDirectionValues                  *GetDirectionValues; 
  SRM_GetExtendedValidRegion              *GetExtendedValidRegion; 
  SRM_GetORMCodes                         *GetORMCodes; 
  SRM_GetSRFCodes                         *GetSRFCodes; 
  SRM_GetSurfaceCoordinateValuesEH        *GetSurfaceCoordinateValues; 
  SRM_GetValidRegion                      *GetValidRegion; 
  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;
SRM_Status_Code SRM_PD_Create (
  SRM_ORM_Code      orm_code,
  SRM_RT_Code       rt_code,
  SRM_Planetodetic  *new_srf  /* OUT */
);
typedef SRM_Status_Code SRM_PS_GetSRFParameters (
  SRM_Object_Reference this_object, 
  SRM_PS_Parameters    *parameters  /* OUT */
);
typedef struct {
  SRM_AssociateSurfaceCoordinateEH        *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DArraySRF          *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject    *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF               *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject         *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF             *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject       *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF                  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject            *ChangeDirectionSRFObject; 
  SRM_ConvergenceOfTheMeridian            *ConvergenceOfTheMeridian; 
  SRM_CreateCoordinate3D                  *CreateCoordinate3D; 
  SRM_CreateDirection                     *CreateDirection; 
  SRM_CreateLocalTangentSpaceEuclideanSRF *CreateLocalTangentPlaneEuclideanSRF; 
  SRM_CreateLococentricEuclidean3DSRF     *CreateLococentricEuclidean3D;
  SRM_CreateSurfaceCoordinateEH           *CreateSurfaceCoordinate; 
  SRM_Destroy                             *Destroy; 
  SRM_EuclideanDistance3D                 *EuclideanDistance3D; 
  SRM_EuclideanDistanceEH                 *EuclideanDistanceEH; 
  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_MapAzimuth                          *MapAzimuth; 
  SRM_PromoteSurfaceCoordinateEH          *PromoteSurfaceCoordinate; 
  SRM_PointDistortion                     *PointDistortion; 
  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;
SRM_Status_Code SRM_PS_Create (
        SRM_ORM_Code           orm_code,
        SRM_RT_Code            rt_code,
  const SRM_PS_Parameters      *parameters,
        SRM_PolarStereographic *new_srf     /* OUT */
);
typedef struct {
  SRM_ChangeCoordinate3DArraySRF       *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF            *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject      *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF          *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject    *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF               *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject         *ChangeDirectionSRFObject; 
  SRM_CreateCoordinate3D               *CreateCoordinate3D; 
  SRM_CreateDirection                  *CreateDirection; 
  SRM_CreateLococentricEuclidean3DSRF  *CreateLococentricEuclidean3D;
  SRM_Destroy                          *Destroy; 
  SRM_EuclideanDistance3D              *EuclideanDistance3D; 
  SRM_GetCoordinate3DValues            *GetCoordinate3DValues; 
  SRM_GetCSCode                        *GetCSCode; 
  SRM_GetDirectionValues               *GetDirectionValues; 
  SRM_GetExtendedValidRegion           *GetExtendedValidRegion; 
  SRM_GetORMCodes                      *GetORMCodes; 
  SRM_GetSRFCodes                      *GetSRFCodes; 
  SRM_GetValidRegion                   *GetValidRegion; 
  SRM_SetExtendedValidRegion           *SetExtendedValidRegion; 
  SRM_SetValidRegion                   *SetValidRegion;
} SRM_SEC_Method_List;
typedef struct {
  void                 *state;
  SRM_SEC_Method_List  *methods; 
} SRM_SolarEcliptic;
SRM_Status_Code SRM_SEC_Create (
  SRM_ORM_Code      orm_code,
  SRM_RT_Code       rt_code,
  SRM_SolarEcliptic *new_srf  /* OUT */
);
typedef struct {
  SRM_ChangeCoordinate3DArraySRF       *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF            *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject      *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF          *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject    *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF               *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject         *ChangeDirectionSRFObject; 
  SRM_CreateCoordinate3D               *CreateCoordinate3D; 
  SRM_CreateDirection                  *CreateDirection; 
  SRM_CreateLococentricEuclidean3DSRF  *CreateLococentricEuclidean3D;
  SRM_Destroy                          *Destroy; 
  SRM_EuclideanDistance3D              *EuclideanDistance3D; 
  SRM_GetCoordinate3DValues            *GetCoordinate3DValues; 
  SRM_GetCSCode                        *GetCSCode; 
  SRM_GetDirectionValues               *GetDirectionValues; 
  SRM_GetExtendedValidRegion           *GetExtendedValidRegion; 
  SRM_GetORMCodes                      *GetORMCodes; 
  SRM_GetSRFCodes                      *GetSRFCodes; 
  SRM_GetValidRegion                   *GetValidRegion; 
  SRM_SetExtendedValidRegion           *SetExtendedValidRegion; 
  SRM_SetValidRegion                   *SetValidRegion;
} SRM_SEQ_Method_List;
typedef struct {
  void                 *state;
  SRM_SEQ_Method_List  *methods; 
} SRM_SolarEquatorial;
SRM_Status_Code SRM_SEQ_Create (
  SRM_ORM_Code         orm_code,
  SRM_RT_Code          rt_code,
  SRM_SolarEquatorial  *new_srf  /* OUT */
);
typedef struct {
  SRM_ChangeCoordinate3DArraySRF       *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF            *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject      *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF          *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject    *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF               *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject         *ChangeDirectionSRFObject; 
  SRM_CreateCoordinate3D               *CreateCoordinate3D; 
  SRM_CreateDirection                  *CreateDirection; 
  SRM_CreateLococentricEuclidean3DSRF  *CreateLococentricEuclidean3D;
  SRM_Destroy                          *Destroy; 
  SRM_EuclideanDistance3D              *EuclideanDistance3D; 
  SRM_GetCoordinate3DValues            *GetCoordinate3DValues; 
  SRM_GetCSCode                        *GetCSCode; 
  SRM_GetDirectionValues               *GetDirectionValues; 
  SRM_GetExtendedValidRegion           *GetExtendedValidRegion; 
  SRM_GetORMCodes                      *GetORMCodes; 
  SRM_GetSRFCodes                      *GetSRFCodes; 
  SRM_GetValidRegion                   *GetValidRegion; 
  SRM_SetExtendedValidRegion           *SetExtendedValidRegion; 
  SRM_SetValidRegion                   *SetValidRegion;
} SRM_SMD_Method_List;
typedef struct {
  void                 *state;
  SRM_SMD_Method_List  *methods; 
} SRM_SolarMagneticDipole;
SRM_Status_Code SRM_SMD_Create (
  SRM_ORM_Code             orm_code,
  SRM_RT_Code              rt_code,
  SRM_SolarMagneticDipole  *new_srf  /* OUT */
);
typedef struct {
  SRM_ChangeCoordinate3DArraySRF       *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF            *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject      *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF          *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject    *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF               *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject         *ChangeDirectionSRFObject; 
  SRM_CreateCoordinate3D               *CreateCoordinate3D; 
  SRM_CreateDirection                  *CreateDirection; 
  SRM_CreateLococentricEuclidean3DSRF  *CreateLococentricEuclidean3D;
  SRM_Destroy                          *Destroy; 
  SRM_EuclideanDistance3D              *EuclideanDistance3D; 
  SRM_GetCoordinate3DValues            *GetCoordinate3DValues; 
  SRM_GetCSCode                        *GetCSCode; 
  SRM_GetDirectionValues               *GetDirectionValues; 
  SRM_GetExtendedValidRegion           *GetExtendedValidRegion; 
  SRM_GetORMCodes                      *GetORMCodes; 
  SRM_GetSRFCodes                      *GetSRFCodes; 
  SRM_GetValidRegion                   *GetValidRegion; 
  SRM_SetExtendedValidRegion           *SetExtendedValidRegion; 
  SRM_SetValidRegion                   *SetValidRegion;
} SRM_SME_Method_List;
typedef struct {
  void                 *state;
  SRM_SME_Method_List  *methods; 
} SRM_SolarMagneticEcliptic;
SRM_Status_Code SRM_SME_Create (
  SRM_ORM_Code               orm_code,
  SRM_RT_Code                rt_code,
  SRM_SolarMagneticEcliptic  *new_srf  /* OUT */
);
typedef SRM_Status_Code SRM_TM_GetSRFParameters (
  SRM_Object_Reference  this_object, 
  SRM_TM_Parameters     *parameters  /* OUT */
);
typedef struct {
  SRM_AssociateSurfaceCoordinateEH        *AssociateSurfaceCoordinate; 
  SRM_ChangeCoordinate3DArraySRF          *ChangeCoordinate3DArraySRF; 
  SRM_ChangeCoordinate3DArraySRFObject    *ChangeCoordinate3DArraySRFObject; 
  SRM_ChangeCoordinate3DSRF               *ChangeCoordinate3DSRF; 
  SRM_ChangeCoordinate3DSRFObject         *ChangeCoordinate3DSRFObject; 
  SRM_ChangeDirectionArraySRF             *ChangeDirectionArraySRF; 
  SRM_ChangeDirectionArraySRFObject       *ChangeDirectionArraySRFObject; 
  SRM_ChangeDirectionSRF                  *ChangeDirectionSRF; 
  SRM_ChangeDirectionSRFObject            *ChangeDirectionSRFObject; 
  SRM_ConvergenceOfTheMeridian            *ConvergenceOfTheMeridian; 
  SRM_CreateCoordinate3D                  *CreateCoordinate3D; 
  SRM_CreateDirection                     *CreateDirection; 
  SRM_CreateLocalTangentSpaceEuclideanSRF *CreateLocalTangentPlaneEuclideanSRF; 
  SRM_CreateLococentricEuclidean3DSRF     *CreateLococentricEuclidean3D;
  SRM_CreateSurfaceCoordinateEH           *CreateSurfaceCoordinate; 
  SRM_Destroy                             *Destroy; 
  SRM_EuclideanDistance3D                 *EuclideanDistance3D; 
  SRM_EuclideanDistanceEH                 *EuclideanDistanceEH; 
  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_MapAzimuth                          *MapAzimuth; 
  SRM_PromoteSurfaceCoordinateEH          *PromoteSurfaceCoordinate; 
  SRM_PointDistortion                     *PointDistortion; 
  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;
SRM_Status_Code SRM_TM_Create (
        SRM_ORM_Code           orm_code,
        SRM_RT_Code            rt_code,
  const SRM_TM_Parameters      *parameters,
        SRM_TransverseMercator *new_srf      /* OUT */
);
SRM_Status_Code SRM_CreateSRFSetMember (
  const SRM_SRFS_Code_Info    *srfs_code_info,
        SRM_ORM_Code          orm_code,
        SRM_RT_Code           rt_code,
        SRM_Object_Reference  new_srf  /* OUT */
);

SRM_Status_Code SRM_CreateStandardSRF (
  SRM_SRF_Code          srf_code,
  SRM_RT_Code           rt_code,
  SRM_Object_Reference  new_srf  /* OUT */
);
SRM_Status_Code SRM_QueryORMSupport (
  SRM_ORM_Code orm_code,
  SRM_RT_Code  rt_code,
  SRM_Boolean  *supported  /* OUT */
);
SRM_Status_Code SRM_QuerySRFTSupport (
  SRM_SRFT_Code  srft_code,
  SRM_Boolean    *supported  /* OUT */
);