1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
use crate*;
use eform;
use cratezp;
use gd2gce;
/*
** - - - - - - - - -
** e r a G d 2 g c
** - - - - - - - - -
**
** Transform geodetic coordinates to geocentric using the specified
** reference ellipsoid.
**
** Given:
** n int ellipsoid identifier (Note 1)
** elong double longitude (radians, east +ve)
** phi double latitude (geodetic, radians, Note 3)
** height double height above ellipsoid (geodetic, Notes 2,3)
**
** Returned:
** xyz double[3] geocentric vector (Note 2)
**
** Returned (function value):
** int status: 0 = OK
** -1 = illegal identifier (Note 3)
** -2 = illegal case (Note 3)
**
** Notes:
**
** 1) The identifier n is a number that specifies the choice of
** reference ellipsoid. The following are supported:
**
** n ellipsoid
**
** 1 ERFA_WGS84
** 2 ERFA_GRS80
** 3 ERFA_WGS72
**
** The n value has no significance outside the ERFA software. For
** convenience, symbols ERFA_WGS84 etc. are defined in erfam.h.
**
** 2) The height (height, given) and the geocentric vector (xyz,
** returned) are in meters.
**
** 3) No validation is performed on the arguments elong, phi and
** height. An error status -1 means that the identifier n is
** illegal. An error status -2 protects against cases that would
** lead to arithmetic exceptions. In all error cases, xyz is set
** to zeros.
**
** 4) The inverse transformation is performed in the function eraGc2gd.
**
** Called:
** eraEform Earth reference ellipsoids
** eraGd2gce geodetic to geocentric transformation, general
** eraZp zero p-vector
**
** This revision: 2021 May 11
**
** Copyright (C) 2013-2021, NumFOCUS Foundation.
** Derived, with permission, from the SOFA library. See notes at end of file.
*/