]> git.mxchange.org Git - flightgear.git/blob - src/FDM/LaRCsim/ls_gravity.c
b095e6bfc51371f2cfde4ba88b73ee706827cbfa
[flightgear.git] / src / FDM / LaRCsim / ls_gravity.c
1 /***************************************************************************
2
3         TITLE:  ls_gravity
4                 
5 ----------------------------------------------------------------------------
6
7         FUNCTION:       Gravity model for LaRCsim
8
9 ----------------------------------------------------------------------------
10
11         MODULE STATUS:  developmental
12
13 ----------------------------------------------------------------------------
14
15         GENEALOGY:      Created by Bruce Jackson on September 25, 1992.
16
17 ----------------------------------------------------------------------------
18
19         DESIGNED BY:    Bruce Jackson
20                 
21         CODED BY:       Bruce Jackson
22                 
23         MAINTAINED BY:  Bruce Jackson
24
25 ----------------------------------------------------------------------------
26
27         MODIFICATION HISTORY:
28                 
29         DATE    PURPOSE                                                 BY
30                 
31         940111  Changed include files to "ls_types.h" and 
32                 "ls_constants.h" from "ls_eom.h"; also changed DATA types
33                 to SCALAR types.                                        EBJ
34                 
35                                                                                 
36 $Header$
37 $Log$
38 Revision 1.1  1999/04/05 21:32:45  curt
39 Initial revision
40
41 Revision 1.3  1998/08/06 12:46:39  curt
42 Header change.
43
44 Revision 1.2  1998/01/19 18:40:26  curt
45 Tons of little changes to clean up the code and to remove fatal errors
46 when building with the c++ compiler.
47
48 Revision 1.1  1997/05/29 00:09:56  curt
49 Initial Flight Gear revision.
50
51  * Revision 1.2  1994/01/11  18:50:35  bjax
52  * Corrected include files (was ls_eom.h) and DATA types changed
53  * to SCALARs. EBJ
54  *
55  * Revision 1.1  1992/12/30  13:18:46  bjax
56  * Initial revision
57  *              
58
59 ----------------------------------------------------------------------------
60
61                 REFERENCES:     Stevens, Brian L.; and Lewis, Frank L.: "Aircraft 
62                                 Control and Simulation", Wiley and Sons, 1992.
63                                 ISBN 0-471-
64
65 ----------------------------------------------------------------------------
66
67                 CALLED BY:
68
69 ----------------------------------------------------------------------------
70
71                 CALLS TO:
72
73 ----------------------------------------------------------------------------
74
75                 INPUTS:
76
77 ----------------------------------------------------------------------------
78
79                 OUTPUTS:
80
81 --------------------------------------------------------------------------*/
82 #include "ls_types.h"
83 #include "ls_constants.h"
84 #include "ls_gravity.h"
85 #include <math.h>
86
87 #define GM      1.4076431E16
88 #define J2      1.08263E-3
89
90 void ls_gravity( SCALAR radius, SCALAR lat, SCALAR *gravity )
91 {
92
93         SCALAR  radius_ratio, rrsq, sinsqlat;
94         
95         radius_ratio = radius/EQUATORIAL_RADIUS;
96         rrsq = radius_ratio*radius_ratio;
97         sinsqlat = sin(lat)*sin(lat);
98         *gravity = (GM/(radius*radius))
99                 *sqrt(2.25*rrsq*rrsq*J2*J2*(5*sinsqlat*sinsqlat -2*sinsqlat + 1)
100                                 + 3*rrsq*J2*(1 - 3*sinsqlat) + 1);
101
102 }