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/04/05 21:32:45 curt
41 Revision 1.3 1998/08/06 12:46:39 curt
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.
48 Revision 1.1 1997/05/29 00:09:56 curt
49 Initial Flight Gear revision.
51 * Revision 1.2 1994/01/11 18:50:35 bjax
52 * Corrected include files (was ls_eom.h) and DATA types changed
55 * Revision 1.1 1992/12/30 13:18:46 bjax
59 ----------------------------------------------------------------------------
61 REFERENCES: Stevens, Brian L.; and Lewis, Frank L.: "Aircraft
62 Control and Simulation", Wiley and Sons, 1992.
65 ----------------------------------------------------------------------------
69 ----------------------------------------------------------------------------
73 ----------------------------------------------------------------------------
77 ----------------------------------------------------------------------------
81 --------------------------------------------------------------------------*/
83 #include "ls_constants.h"
84 #include "ls_gravity.h"
87 #define GM 1.4076431E16
90 void ls_gravity( SCALAR radius, SCALAR lat, SCALAR *gravity )
93 SCALAR radius_ratio, rrsq, sinsqlat;
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);