]> git.mxchange.org Git - flightgear.git/blob - src/FDM/LaRCsim/ls_gravity.c
resync JSBSim
[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  2002/09/10 01:14:02  curt
39 Initial revision
40
41 Revision 1.1.1.1  1999/06/17 18:07:34  curt
42 Start of 0.7.x branch
43
44 Revision 1.1.1.1  1999/04/05 21:32:45  curt
45 Start of 0.6.x branch.
46
47 Revision 1.3  1998/08/06 12:46:39  curt
48 Header change.
49
50 Revision 1.2  1998/01/19 18:40:26  curt
51 Tons of little changes to clean up the code and to remove fatal errors
52 when building with the c++ compiler.
53
54 Revision 1.1  1997/05/29 00:09:56  curt
55 Initial Flight Gear revision.
56
57  * Revision 1.2  1994/01/11  18:50:35  bjax
58  * Corrected include files (was ls_eom.h) and DATA types changed
59  * to SCALARs. EBJ
60  *
61  * Revision 1.1  1992/12/30  13:18:46  bjax
62  * Initial revision
63  *              
64
65 ----------------------------------------------------------------------------
66
67                 REFERENCES:     Stevens, Brian L.; and Lewis, Frank L.: "Aircraft 
68                                 Control and Simulation", Wiley and Sons, 1992.
69                                 ISBN 0-471-
70
71 ----------------------------------------------------------------------------
72
73                 CALLED BY:
74
75 ----------------------------------------------------------------------------
76
77                 CALLS TO:
78
79 ----------------------------------------------------------------------------
80
81                 INPUTS:
82
83 ----------------------------------------------------------------------------
84
85                 OUTPUTS:
86
87 --------------------------------------------------------------------------*/
88 #include "ls_types.h"
89 #include "ls_constants.h"
90 #include "ls_gravity.h"
91 #include <math.h>
92
93 #define GM      1.4076431E16
94 #define J2      1.08263E-3
95
96 void ls_gravity( SCALAR radius, SCALAR lat, SCALAR *gravity )
97 {
98
99         SCALAR  radius_ratio, rrsq, sinsqlat;
100         
101         radius_ratio = radius/EQUATORIAL_RADIUS;
102         rrsq = radius_ratio*radius_ratio;
103         sinsqlat = sin(lat)*sin(lat);
104         *gravity = (GM/(radius*radius))
105                 *sqrt(2.25*rrsq*rrsq*J2*J2*(5*sinsqlat*sinsqlat -2*sinsqlat + 1)
106                                 + 3*rrsq*J2*(1 - 3*sinsqlat) + 1);
107
108 }