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