1 /***************************************************************************
5 ----------------------------------------------------------------------------
7 FUNCTION: Gravity model for LaRCsim
9 ----------------------------------------------------------------------------
11 MODULE STATUS: developmental
13 ----------------------------------------------------------------------------
15 GENEALOGY: Created by Bruce Jackson on September 25, 1992.
17 ----------------------------------------------------------------------------
19 DESIGNED BY: Bruce Jackson
21 CODED BY: Bruce Jackson
23 MAINTAINED BY: Bruce Jackson
25 ----------------------------------------------------------------------------
31 940111 Changed include files to "ls_types.h" and
32 "ls_constants.h" from "ls_eom.h"; also changed DATA types
38 Revision 1.1 1999/06/17 18:07:34 curt
41 Revision 1.1.1.1 1999/04/05 21:32:45 curt
42 Start of 0.6.x branch.
44 Revision 1.3 1998/08/06 12:46:39 curt
47 Revision 1.2 1998/01/19 18:40:26 curt
48 Tons of little changes to clean up the code and to remove fatal errors
49 when building with the c++ compiler.
51 Revision 1.1 1997/05/29 00:09:56 curt
52 Initial Flight Gear revision.
54 * Revision 1.2 1994/01/11 18:50:35 bjax
55 * Corrected include files (was ls_eom.h) and DATA types changed
58 * Revision 1.1 1992/12/30 13:18:46 bjax
62 ----------------------------------------------------------------------------
64 REFERENCES: Stevens, Brian L.; and Lewis, Frank L.: "Aircraft
65 Control and Simulation", Wiley and Sons, 1992.
68 ----------------------------------------------------------------------------
72 ----------------------------------------------------------------------------
76 ----------------------------------------------------------------------------
80 ----------------------------------------------------------------------------
84 --------------------------------------------------------------------------*/
86 #include "ls_constants.h"
87 #include "ls_gravity.h"
90 #define GM 1.4076431E16
93 void ls_gravity( SCALAR radius, SCALAR lat, SCALAR *gravity )
96 SCALAR radius_ratio, rrsq, sinsqlat;
98 radius_ratio = radius/EQUATORIAL_RADIUS;
99 rrsq = radius_ratio*radius_ratio;
100 sinsqlat = sin(lat)*sin(lat);
101 *gravity = (GM/(radius*radius))
102 *sqrt(2.25*rrsq*rrsq*J2*J2*(5*sinsqlat*sinsqlat -2*sinsqlat + 1)
103 + 3*rrsq*J2*(1 - 3*sinsqlat) + 1);