OpenCPN Partial API docs
Loading...
Searching...
No Matches
GeomagnetismHeader.h File Reference

Geomagnetism Library subroutines. More...

Go to the source code of this file.

Classes

struct  MAGtype_MagneticModel
 
struct  MAGtype_Ellipsoid
 
struct  MAGtype_CoordGeodetic
 
struct  MAGtype_CoordSpherical
 
struct  MAGtype_Date
 
struct  MAGtype_LegendreFunction
 
struct  MAGtype_MagneticResults
 
struct  MAGtype_SphericalHarmonicVariables
 
struct  MAGtype_GeoMagneticElements
 
struct  MAGtype_Geoid
 
struct  MAGtype_Gradient
 
struct  MAGtype_CoordGeodeticStr
 
struct  MAGtype_UTMParameters
 

Macros

#define GEOMAGHEADER_H
 
#define READONLYMODE   "r"
 
#define MAXLINELENGTH   (1024)
 
#define NOOFPARAMS   (15)
 
#define NOOFCOEFFICIENTS   (7)
 
#define _DEGREE_NOT_FOUND   (-2)
 
#define CALCULATE_NUMTERMS(N)   (N * (N + 1) / 2 + N)
 
#define INCL_ERROR_BASE   (0.20)
 
#define DECL_ERROR_OFFSET_BASE   (0.36)
 
#define F_ERROR_BASE   (130)
 
#define DECL_ERROR_SLOPE_BASE   (5000)
 
#define WMM_ERROR_MULTIPLIER   1.21
 
#define IGRF_ERROR_MULTIPLIER   1.21
 
#define WMMHR_UNCERTAINTY_F   134
 
#define WMMHR_UNCERTAINTY_H   130
 
#define WMMHR_UNCERTAINTY_X   135
 
#define WMMHR_UNCERTAINTY_Y   85
 
#define WMMHR_UNCERTAINTY_Z   134
 
#define WMMHR_UNCERTAINTY_I   0.19
 
#define WMMHR_UNCERTAINTY_D_OFFSET   0.25
 
#define WMMHR_UNCERTAINTY_D_COEF   5205
 
#define WMM_UNCERTAINTY_F   138
 
#define WMM_UNCERTAINTY_H   133
 
#define WMM_UNCERTAINTY_X   137
 
#define WMM_UNCERTAINTY_Y   89
 
#define WMM_UNCERTAINTY_Z   141
 
#define WMM_UNCERTAINTY_I   0.20
 
#define WMM_UNCERTAINTY_D_OFFSET   0.26
 
#define WMM_UNCERTAINTY_D_COEF   5417
 
#define M_PI   ((2) * (acos(0.0)))
 
#define RAD2DEG(rad)   ((rad) * (180.0L / M_PI))
 
#define DEG2RAD(deg)   ((deg) * (M_PI / 180.0L))
 
#define ATanH(x)   (0.5 * log((1 + x) / (1 - x)))
 
#define TRUE   ((int)1)
 
#define FALSE   ((int)0)
 
#define MAG_PS_MIN_LAT_DEGREE    -55 /* Minimum Latitude for Polar Stereographic projection in degrees */
 
#define MAG_PS_MAX_LAT_DEGREE    55 /* Maximum Latitude for Polar Stereographic projection in degrees */
 
#define MAG_UTM_MIN_LAT_DEGREE    -80.5 /* Minimum Latitude for UTM projection in degrees */
 
#define MAG_UTM_MAX_LAT_DEGREE    84.5 /* Maximum Latitude for UTM projection in degrees */
 
#define MAG_GEO_POLE_TOLERANCE   1e-5
 
#define MAG_USE_GEOID    1 /* 1 Geoid - Ellipsoid difference should be corrected, 0 otherwise */
 
#define LAT_BOUND_MIN   -90
 
#define LAT_BOUND_MAX   90
 
#define LON_BOUND_MIN   -180
 
#define LON_BOUND_MAX   360
 
#define ALT_BOUND_MIN   -10
 
#define NO_ALT_MAX   -99999
 
#define USER_GAVE_UP   -1
 
#define DEC_YEAR_BOUND_MIN   2024.866
 
#define DEC_YEAR_BOUND_MAX   2030
 
#define WGS84ON   1
 
#define MSLON   2
 

Enumerations

enum  PARAMS {
  SHDF , MODELNAME , PUBLISHER , RELEASEDATE ,
  DATACUTOFF , MODELSTARTYEAR , MODELENDYEAR , EPOCH ,
  INTSTATICDEG , INTSECVARDEG , EXTSTATICDEG , EXTSECVARDEG ,
  GEOMAGREFRAD , NORMALIZATION , SPATBASFUNC
}
 
enum  COEFFICIENTS {
  IE , N , M , GNM ,
  HNM , DGNM , DHNM
}
 
enum  YYYYMMDD { YEAR , MONTH , DAY }
 

Functions

int MAG_Geomag (MAGtype_Ellipsoid Ellip, MAGtype_CoordSpherical CoordSpherical, MAGtype_CoordGeodetic CoordGeodetic, MAGtype_MagneticModel *TimedMagneticModel, MAGtype_GeoMagneticElements *GeoMagneticElements)
 
void MAG_Gradient (MAGtype_Ellipsoid Ellip, MAGtype_CoordGeodetic CoordGeodetic, MAGtype_MagneticModel *TimedMagneticModel, MAGtype_Gradient *Gradient)
 
int MAG_robustReadMagModels (char *filename, MAGtype_MagneticModel *(*magneticmodels)[], int array_size)
 
int MAG_SetDefaults (MAGtype_Ellipsoid *Ellip, MAGtype_Geoid *Geoid)
 
void MAG_Error (int control)
 
void MAG_PrintGradient (MAGtype_Gradient Gradient)
 
void MAG_PrintUserData (MAGtype_GeoMagneticElements GeomagElements, MAGtype_CoordGeodetic SpaceInput, MAGtype_Date TimeInput, MAGtype_MagneticModel *MagneticModel, MAGtype_Geoid *Geoid)
 
int MAG_Warnings (int control, double value, MAGtype_MagneticModel *MagneticModel)
 
MAGtype_LegendreFunctionMAG_AllocateLegendreFunctionMemory (int NumTerms)
 
MAGtype_MagneticModelMAG_AllocateModelMemory (int NumTerms)
 
MAGtype_SphericalHarmonicVariablesMAG_AllocateSphVarMemory (int nMax)
 
void MAG_AssignHeaderValues (MAGtype_MagneticModel *model, char values[][MAXLINELENGTH])
 
void MAG_AssignMagneticModelCoeffs (MAGtype_MagneticModel *Assignee, MAGtype_MagneticModel *Source, int nMax, int nMaxSecVar)
 
int MAG_FreeMemory (MAGtype_MagneticModel *MagneticModel, MAGtype_MagneticModel *TimedMagneticModel, MAGtype_LegendreFunction *LegendreFunction)
 
int MAG_FreeLegendreMemory (MAGtype_LegendreFunction *LegendreFunction)
 
int MAG_FreeMagneticModelMemory (MAGtype_MagneticModel *MagneticModel)
 
int MAG_FreeSphVarMemory (MAGtype_SphericalHarmonicVariables *SphVar)
 
void MAG_PrintWMMFormat (char *filename, MAGtype_MagneticModel *MagneticModel)
 
void MAG_PrintEMMFormat (char *filename, char *filenameSV, MAGtype_MagneticModel *MagneticModel)
 
void MAG_PrintSHDFFormat (char *filename, MAGtype_MagneticModel *(*MagneticModel)[], int epochs)
 
int MAG_readMagneticModel (char *filename, MAGtype_MagneticModel *MagneticModel)
 
int MAG_readMagneticModel_SHDF (char *filename, MAGtype_MagneticModel *(*magneticmodels)[], int array_size)
 
char * MAG_Trim (char *str)
 
void MAG_BaseErrors (double DeclCoef, double DeclBaseline, double InclOffset, double FOffset, double Multiplier, double H, double *DeclErr, double *InclErr, double *FErr)
 
int MAG_CalculateGeoMagneticElements (MAGtype_MagneticResults *MagneticResultsGeo, MAGtype_GeoMagneticElements *GeoMagneticElements)
 
void MAG_CalculateGradientElements (MAGtype_MagneticResults GradResults, MAGtype_GeoMagneticElements MagneticElements, MAGtype_GeoMagneticElements *GradElements)
 
int MAG_CalculateSecularVariationElements (MAGtype_MagneticResults MagneticVariation, MAGtype_GeoMagneticElements *MagneticElements)
 
int MAG_CalculateGridVariation (MAGtype_CoordGeodetic location, MAGtype_GeoMagneticElements *elements)
 
void MAG_CartesianToGeodetic (MAGtype_Ellipsoid Ellip, double x, double y, double z, MAGtype_CoordGeodetic *CoordGeodetic)
 
MAGtype_CoordGeodetic MAG_CoordGeodeticAssign (MAGtype_CoordGeodetic CoordGeodetic)
 
int MAG_DateToYear (MAGtype_Date *Calendar_Date, char *Error)
 
void MAG_DegreeToDMSstring (double DegreesOfArc, int UnitDepth, char *DMSstring)
 
void MAG_DMSstringToDegree (char *DMSstring, double *DegreesOfArc)
 
void MAG_ErrorCalc (MAGtype_GeoMagneticElements B, MAGtype_GeoMagneticElements *Errors)
 
int MAG_GeodeticToSpherical (MAGtype_Ellipsoid Ellip, MAGtype_CoordGeodetic CoordGeodetic, MAGtype_CoordSpherical *CoordSpherical)
 
MAGtype_GeoMagneticElements MAG_GeoMagneticElementsAssign (MAGtype_GeoMagneticElements Elements)
 
MAGtype_GeoMagneticElements MAG_GeoMagneticElementsScale (MAGtype_GeoMagneticElements Elements, double factor)
 
MAGtype_GeoMagneticElements MAG_GeoMagneticElementsSubtract (MAGtype_GeoMagneticElements minuend, MAGtype_GeoMagneticElements subtrahend)
 
int MAG_GetTransverseMercator (MAGtype_CoordGeodetic CoordGeodetic, MAGtype_UTMParameters *UTMParameters)
 
int MAG_GetUTMParameters (double Latitude, double Longitude, int *Zone, char *Hemisphere, double *CentralMeridian)
 
int MAG_isNaN (double d)
 
int MAG_RotateMagneticVector (MAGtype_CoordSpherical, MAGtype_CoordGeodetic CoordGeodetic, MAGtype_MagneticResults MagneticResultsSph, MAGtype_MagneticResults *MagneticResultsGeo)
 
void MAG_SphericalToCartesian (MAGtype_CoordSpherical CoordSpherical, double *x, double *y, double *z)
 
void MAG_SphericalToGeodetic (MAGtype_Ellipsoid Ellip, MAGtype_CoordSpherical CoordSpherical, MAGtype_CoordGeodetic *CoordGeodetic)
 
void MAG_TMfwd4 (double Eps, double Epssq, double K0R4, double K0R4oa, double Acoeff[], double Lam0, double K0, double falseE, double falseN, int XYonly, double Lambda, double Phi, double *X, double *Y, double *pscale, double *CoM)
 
int MAG_YearToDate (MAGtype_Date *Date)
 
int MAG_AssociatedLegendreFunction (MAGtype_CoordSpherical CoordSpherical, int nMax, MAGtype_LegendreFunction *LegendreFunction)
 
int MAG_CheckGeographicPole (MAGtype_CoordGeodetic *CoordGeodetic)
 
int MAG_ComputeSphericalHarmonicVariables (MAGtype_Ellipsoid Ellip, MAGtype_CoordSpherical CoordSpherical, int nMax, MAGtype_SphericalHarmonicVariables *SphVariables)
 
void MAG_GradY (MAGtype_Ellipsoid Ellip, MAGtype_CoordSpherical CoordSpherical, MAGtype_CoordGeodetic CoordGeodetic, MAGtype_MagneticModel *TimedMagneticModel, MAGtype_GeoMagneticElements GeoMagneticElements, MAGtype_GeoMagneticElements *GradYElements)
 
void MAG_GradYSummation (MAGtype_LegendreFunction *LegendreFunction, MAGtype_MagneticModel *MagneticModel, MAGtype_SphericalHarmonicVariables SphVariables, MAGtype_CoordSpherical CoordSpherical, MAGtype_MagneticResults *GradY)
 
int MAG_PcupHigh (double *Pcup, double *dPcup, double x, int nMax)
 
int MAG_PcupLow (double *Pcup, double *dPcup, double x, int nMax)
 
int MAG_SecVarSummation (MAGtype_LegendreFunction *LegendreFunction, MAGtype_MagneticModel *MagneticModel, MAGtype_SphericalHarmonicVariables SphVariables, MAGtype_CoordSpherical CoordSpherical, MAGtype_MagneticResults *MagneticResults)
 
int MAG_SecVarSummationSpecial (MAGtype_MagneticModel *MagneticModel, MAGtype_SphericalHarmonicVariables SphVariables, MAGtype_CoordSpherical CoordSpherical, MAGtype_MagneticResults *MagneticResults)
 
int MAG_Summation (MAGtype_LegendreFunction *LegendreFunction, MAGtype_MagneticModel *MagneticModel, MAGtype_SphericalHarmonicVariables SphVariables, MAGtype_CoordSpherical CoordSpherical, MAGtype_MagneticResults *MagneticResults)
 
int MAG_SummationSpecial (MAGtype_MagneticModel *MagneticModel, MAGtype_SphericalHarmonicVariables SphVariables, MAGtype_CoordSpherical CoordSpherical, MAGtype_MagneticResults *MagneticResults)
 
int MAG_TimelyModifyMagneticModel (MAGtype_Date UserDate, MAGtype_MagneticModel *MagneticModel, MAGtype_MagneticModel *TimedMagneticModel)
 
int MAG_ConvertGeoidToEllipsoidHeight (MAGtype_CoordGeodetic *CoordGeodetic, MAGtype_Geoid *Geoid)
 
int MAG_GetGeoidHeight (double Latitude, double Longitude, double *DeltaHeight, MAGtype_Geoid *Geoid)
 
void MAG_EquivalentLatLon (double lat, double lon, double *repairedLat, double *repairedLon)
 
void MAG_WMMErrorCalc (double H, MAGtype_GeoMagneticElements *Uncertainty)
 
void MAG_WMMHRErrorCalc (double H, MAGtype_GeoMagneticElements *Uncertainty)
 
void MAG_PrintUserDataWithUncertainty (MAGtype_GeoMagneticElements GeomagElements, MAGtype_GeoMagneticElements Errors, MAGtype_CoordGeodetic SpaceInput, MAGtype_Date TimeInput, MAGtype_MagneticModel *MagneticModel, MAGtype_Geoid *Geoid)
 
double MAG_dtstr_to_dyear (char *edit_date)
 
size_t MAG_strlcpy_equivalent (char *dst, char *src, size_t dstlen)
 

Detailed Description

Geomagnetism Library subroutines.

Copyright: This is free and unencumbered software released into the public domain.

WMM Subroutine library was tested in the following environments

1. Red Hat Linux  with GCC Compiler
2. MS Windows XP with CodeGear C++ compiler
3. Sun Solaris with GCC Compiler

  Last changed by: $Author: Li-Yin Young $
  Last changed on: $Date: 2024-11-08 10:49:40 -0700 $

Definition in file GeomagnetismHeader.h.

Macro Definition Documentation

◆ _DEGREE_NOT_FOUND

#define _DEGREE_NOT_FOUND   (-2)

Definition at line 42 of file GeomagnetismHeader.h.

◆ ALT_BOUND_MIN

#define ALT_BOUND_MIN   -10

Definition at line 108 of file GeomagnetismHeader.h.

◆ ATanH

#define ATanH (   x)    (0.5 * log((1 + x) / (1 - x)))

Definition at line 82 of file GeomagnetismHeader.h.

◆ CALCULATE_NUMTERMS

#define CALCULATE_NUMTERMS (   N)    (N * (N + 1) / 2 + N)

Definition at line 43 of file GeomagnetismHeader.h.

◆ DEC_YEAR_BOUND_MAX

#define DEC_YEAR_BOUND_MAX   2030

Definition at line 112 of file GeomagnetismHeader.h.

◆ DEC_YEAR_BOUND_MIN

#define DEC_YEAR_BOUND_MIN   2024.866

Definition at line 111 of file GeomagnetismHeader.h.

◆ DECL_ERROR_OFFSET_BASE

#define DECL_ERROR_OFFSET_BASE   (0.36)

Definition at line 49 of file GeomagnetismHeader.h.

◆ DECL_ERROR_SLOPE_BASE

#define DECL_ERROR_SLOPE_BASE   (5000)

Definition at line 51 of file GeomagnetismHeader.h.

◆ DEG2RAD

#define DEG2RAD (   deg)    ((deg) * (M_PI / 180.0L))

Definition at line 81 of file GeomagnetismHeader.h.

◆ F_ERROR_BASE

#define F_ERROR_BASE   (130)

Definition at line 50 of file GeomagnetismHeader.h.

◆ FALSE

#define FALSE   ((int)0)

Definition at line 88 of file GeomagnetismHeader.h.

◆ GEOMAGHEADER_H

#define GEOMAGHEADER_H

Definition at line 31 of file GeomagnetismHeader.h.

◆ IGRF_ERROR_MULTIPLIER

#define IGRF_ERROR_MULTIPLIER   1.21

Definition at line 53 of file GeomagnetismHeader.h.

◆ INCL_ERROR_BASE

#define INCL_ERROR_BASE   (0.20)

Definition at line 48 of file GeomagnetismHeader.h.

◆ LAT_BOUND_MAX

#define LAT_BOUND_MAX   90

Definition at line 105 of file GeomagnetismHeader.h.

◆ LAT_BOUND_MIN

#define LAT_BOUND_MIN   -90

Definition at line 104 of file GeomagnetismHeader.h.

◆ LON_BOUND_MAX

#define LON_BOUND_MAX   360

Definition at line 107 of file GeomagnetismHeader.h.

◆ LON_BOUND_MIN

#define LON_BOUND_MIN   -180

Definition at line 106 of file GeomagnetismHeader.h.

◆ M_PI

#define M_PI   ((2) * (acos(0.0)))

Definition at line 77 of file GeomagnetismHeader.h.

◆ MAG_GEO_POLE_TOLERANCE

#define MAG_GEO_POLE_TOLERANCE   1e-5

Definition at line 100 of file GeomagnetismHeader.h.

◆ MAG_PS_MAX_LAT_DEGREE

#define MAG_PS_MAX_LAT_DEGREE    55 /* Maximum Latitude for Polar Stereographic projection in degrees */

Definition at line 93 of file GeomagnetismHeader.h.

◆ MAG_PS_MIN_LAT_DEGREE

#define MAG_PS_MIN_LAT_DEGREE    -55 /* Minimum Latitude for Polar Stereographic projection in degrees */

Definition at line 91 of file GeomagnetismHeader.h.

◆ MAG_USE_GEOID

#define MAG_USE_GEOID    1 /* 1 Geoid - Ellipsoid difference should be corrected, 0 otherwise */

Definition at line 101 of file GeomagnetismHeader.h.

◆ MAG_UTM_MAX_LAT_DEGREE

#define MAG_UTM_MAX_LAT_DEGREE    84.5 /* Maximum Latitude for UTM projection in degrees */

Definition at line 97 of file GeomagnetismHeader.h.

◆ MAG_UTM_MIN_LAT_DEGREE

#define MAG_UTM_MIN_LAT_DEGREE    -80.5 /* Minimum Latitude for UTM projection in degrees */

Definition at line 95 of file GeomagnetismHeader.h.

◆ MAXLINELENGTH

#define MAXLINELENGTH   (1024)

Definition at line 38 of file GeomagnetismHeader.h.

◆ MSLON

#define MSLON   2

Definition at line 115 of file GeomagnetismHeader.h.

◆ NO_ALT_MAX

#define NO_ALT_MAX   -99999

Definition at line 109 of file GeomagnetismHeader.h.

◆ NOOFCOEFFICIENTS

#define NOOFCOEFFICIENTS   (7)

Definition at line 40 of file GeomagnetismHeader.h.

◆ NOOFPARAMS

#define NOOFPARAMS   (15)

Definition at line 39 of file GeomagnetismHeader.h.

◆ RAD2DEG

#define RAD2DEG (   rad)    ((rad) * (180.0L / M_PI))

Definition at line 80 of file GeomagnetismHeader.h.

◆ READONLYMODE

#define READONLYMODE   "r"

Definition at line 37 of file GeomagnetismHeader.h.

◆ TRUE

#define TRUE   ((int)1)

Definition at line 85 of file GeomagnetismHeader.h.

◆ USER_GAVE_UP

#define USER_GAVE_UP   -1

Definition at line 110 of file GeomagnetismHeader.h.

◆ WGS84ON

#define WGS84ON   1

Definition at line 114 of file GeomagnetismHeader.h.

◆ WMM_ERROR_MULTIPLIER

#define WMM_ERROR_MULTIPLIER   1.21

Definition at line 52 of file GeomagnetismHeader.h.

◆ WMM_UNCERTAINTY_D_COEF

#define WMM_UNCERTAINTY_D_COEF   5417

Definition at line 74 of file GeomagnetismHeader.h.

◆ WMM_UNCERTAINTY_D_OFFSET

#define WMM_UNCERTAINTY_D_OFFSET   0.26

Definition at line 73 of file GeomagnetismHeader.h.

◆ WMM_UNCERTAINTY_F

#define WMM_UNCERTAINTY_F   138

Definition at line 67 of file GeomagnetismHeader.h.

◆ WMM_UNCERTAINTY_H

#define WMM_UNCERTAINTY_H   133

Definition at line 68 of file GeomagnetismHeader.h.

◆ WMM_UNCERTAINTY_I

#define WMM_UNCERTAINTY_I   0.20

Definition at line 72 of file GeomagnetismHeader.h.

◆ WMM_UNCERTAINTY_X

#define WMM_UNCERTAINTY_X   137

Definition at line 69 of file GeomagnetismHeader.h.

◆ WMM_UNCERTAINTY_Y

#define WMM_UNCERTAINTY_Y   89

Definition at line 70 of file GeomagnetismHeader.h.

◆ WMM_UNCERTAINTY_Z

#define WMM_UNCERTAINTY_Z   141

Definition at line 71 of file GeomagnetismHeader.h.

◆ WMMHR_UNCERTAINTY_D_COEF

#define WMMHR_UNCERTAINTY_D_COEF   5205

Definition at line 65 of file GeomagnetismHeader.h.

◆ WMMHR_UNCERTAINTY_D_OFFSET

#define WMMHR_UNCERTAINTY_D_OFFSET   0.25

Definition at line 64 of file GeomagnetismHeader.h.

◆ WMMHR_UNCERTAINTY_F

#define WMMHR_UNCERTAINTY_F   134

Definition at line 58 of file GeomagnetismHeader.h.

◆ WMMHR_UNCERTAINTY_H

#define WMMHR_UNCERTAINTY_H   130

Definition at line 59 of file GeomagnetismHeader.h.

◆ WMMHR_UNCERTAINTY_I

#define WMMHR_UNCERTAINTY_I   0.19

Definition at line 63 of file GeomagnetismHeader.h.

◆ WMMHR_UNCERTAINTY_X

#define WMMHR_UNCERTAINTY_X   135

Definition at line 60 of file GeomagnetismHeader.h.

◆ WMMHR_UNCERTAINTY_Y

#define WMMHR_UNCERTAINTY_Y   85

Definition at line 61 of file GeomagnetismHeader.h.

◆ WMMHR_UNCERTAINTY_Z

#define WMMHR_UNCERTAINTY_Z   134

Definition at line 62 of file GeomagnetismHeader.h.

Enumeration Type Documentation

◆ COEFFICIENTS

enum COEFFICIENTS

Definition at line 266 of file GeomagnetismHeader.h.

◆ PARAMS

enum PARAMS

Definition at line 248 of file GeomagnetismHeader.h.

◆ YYYYMMDD

enum YYYYMMDD

Definition at line 268 of file GeomagnetismHeader.h.

Function Documentation

◆ MAG_AllocateLegendreFunctionMemory()

MAGtype_LegendreFunction * MAG_AllocateLegendreFunctionMemory ( int  NumTerms)

Definition at line 776 of file GeomagnetismLibrary.c.

◆ MAG_AllocateModelMemory()

MAGtype_MagneticModel * MAG_AllocateModelMemory ( int  NumTerms)

Definition at line 818 of file GeomagnetismLibrary.c.

◆ MAG_AllocateSphVarMemory()

MAGtype_SphericalHarmonicVariables * MAG_AllocateSphVarMemory ( int  nMax)

Definition at line 900 of file GeomagnetismLibrary.c.

◆ MAG_AssignHeaderValues()

void MAG_AssignHeaderValues ( MAGtype_MagneticModel model,
char  values[][MAXLINELENGTH] 
)

Definition at line 911 of file GeomagnetismLibrary.c.

◆ MAG_AssignMagneticModelCoeffs()

void MAG_AssignMagneticModelCoeffs ( MAGtype_MagneticModel Assignee,
MAGtype_MagneticModel Source,
int  nMax,
int  nMaxSecVar 
)

Definition at line 933 of file GeomagnetismLibrary.c.

◆ MAG_AssociatedLegendreFunction()

int MAG_AssociatedLegendreFunction ( MAGtype_CoordSpherical  CoordSpherical,
int  nMax,
MAGtype_LegendreFunction LegendreFunction 
)

Definition at line 2551 of file GeomagnetismLibrary.c.

◆ MAG_BaseErrors()

void MAG_BaseErrors ( double  DeclCoef,
double  DeclBaseline,
double  InclOffset,
double  FOffset,
double  Multiplier,
double  H,
double *  DeclErr,
double *  InclErr,
double *  FErr 
)

Definition at line 1543 of file GeomagnetismLibrary.c.

◆ MAG_CalculateGeoMagneticElements()

int MAG_CalculateGeoMagneticElements ( MAGtype_MagneticResults MagneticResultsGeo,
MAGtype_GeoMagneticElements GeoMagneticElements 
)

Definition at line 1554 of file GeomagnetismLibrary.c.

◆ MAG_CalculateGradientElements()

void MAG_CalculateGradientElements ( MAGtype_MagneticResults  GradResults,
MAGtype_GeoMagneticElements  MagneticElements,
MAGtype_GeoMagneticElements GradElements 
)

Definition at line 1624 of file GeomagnetismLibrary.c.

◆ MAG_CalculateGridVariation()

int MAG_CalculateGridVariation ( MAGtype_CoordGeodetic  location,
MAGtype_GeoMagneticElements elements 
)

Definition at line 1588 of file GeomagnetismLibrary.c.

◆ MAG_CalculateSecularVariationElements()

int MAG_CalculateSecularVariationElements ( MAGtype_MagneticResults  MagneticVariation,
MAGtype_GeoMagneticElements MagneticElements 
)

Definition at line 1649 of file GeomagnetismLibrary.c.

◆ MAG_CartesianToGeodetic()

void MAG_CartesianToGeodetic ( MAGtype_Ellipsoid  Ellip,
double  x,
double  y,
double  z,
MAGtype_CoordGeodetic CoordGeodetic 
)

Definition at line 1690 of file GeomagnetismLibrary.c.

◆ MAG_CheckGeographicPole()

int MAG_CheckGeographicPole ( MAGtype_CoordGeodetic CoordGeodetic)

Definition at line 2589 of file GeomagnetismLibrary.c.

◆ MAG_ComputeSphericalHarmonicVariables()

int MAG_ComputeSphericalHarmonicVariables ( MAGtype_Ellipsoid  Ellip,
MAGtype_CoordSpherical  CoordSpherical,
int  nMax,
MAGtype_SphericalHarmonicVariables SphVariables 
)

Definition at line 2614 of file GeomagnetismLibrary.c.

◆ MAG_ConvertGeoidToEllipsoidHeight()

int MAG_ConvertGeoidToEllipsoidHeight ( MAGtype_CoordGeodetic CoordGeodetic,
MAGtype_Geoid Geoid 
)

Definition at line 3412 of file GeomagnetismLibrary.c.

◆ MAG_CoordGeodeticAssign()

MAGtype_CoordGeodetic MAG_CoordGeodeticAssign ( MAGtype_CoordGeodetic  CoordGeodetic)

Definition at line 1764 of file GeomagnetismLibrary.c.

◆ MAG_DateToYear()

int MAG_DateToYear ( MAGtype_Date Calendar_Date,
char *  Error 
)

Definition at line 1775 of file GeomagnetismLibrary.c.

◆ MAG_DegreeToDMSstring()

void MAG_DegreeToDMSstring ( double  DegreesOfArc,
int  UnitDepth,
char *  DMSstring 
)

Definition at line 1844 of file GeomagnetismLibrary.c.

◆ MAG_DMSstringToDegree()

void MAG_DMSstringToDegree ( char *  DMSstring,
double *  DegreesOfArc 
)

Definition at line 1899 of file GeomagnetismLibrary.c.

◆ MAG_dtstr_to_dyear()

double MAG_dtstr_to_dyear ( char *  edit_date)

Definition at line 86 of file GeomagnetismLibrary.c.

◆ MAG_EquivalentLatLon()

void MAG_EquivalentLatLon ( double  lat,
double  lon,
double *  repairedLat,
double *  repairedLon 
)

Definition at line 3528 of file GeomagnetismLibrary.c.

◆ MAG_Error()

void MAG_Error ( int  control)

Definition at line 382 of file GeomagnetismLibrary.c.

◆ MAG_ErrorCalc()

void MAG_ErrorCalc ( MAGtype_GeoMagneticElements  B,
MAGtype_GeoMagneticElements Errors 
)

Definition at line 1915 of file GeomagnetismLibrary.c.

◆ MAG_FreeLegendreMemory()

int MAG_FreeLegendreMemory ( MAGtype_LegendreFunction LegendreFunction)

Definition at line 1096 of file GeomagnetismLibrary.c.

◆ MAG_FreeMagneticModelMemory()

int MAG_FreeMagneticModelMemory ( MAGtype_MagneticModel MagneticModel)

Definition at line 1051 of file GeomagnetismLibrary.c.

◆ MAG_FreeMemory()

int MAG_FreeMemory ( MAGtype_MagneticModel MagneticModel,
MAGtype_MagneticModel TimedMagneticModel,
MAGtype_LegendreFunction LegendreFunction 
)

Definition at line 963 of file GeomagnetismLibrary.c.

◆ MAG_FreeSphVarMemory()

int MAG_FreeSphVarMemory ( MAGtype_SphericalHarmonicVariables SphVar)

Definition at line 1125 of file GeomagnetismLibrary.c.

◆ MAG_GeodeticToSpherical()

int MAG_GeodeticToSpherical ( MAGtype_Ellipsoid  Ellip,
MAGtype_CoordGeodetic  CoordGeodetic,
MAGtype_CoordSpherical CoordSpherical 
)

Definition at line 1937 of file GeomagnetismLibrary.c.

◆ MAG_Geomag()

int MAG_Geomag ( MAGtype_Ellipsoid  Ellip,
MAGtype_CoordSpherical  CoordSpherical,
MAGtype_CoordGeodetic  CoordGeodetic,
MAGtype_MagneticModel TimedMagneticModel,
MAGtype_GeoMagneticElements GeoMagneticElements 
)

Definition at line 130 of file GeomagnetismLibrary.c.

◆ MAG_GeoMagneticElementsAssign()

MAGtype_GeoMagneticElements MAG_GeoMagneticElementsAssign ( MAGtype_GeoMagneticElements  Elements)

Definition at line 1994 of file GeomagnetismLibrary.c.

◆ MAG_GeoMagneticElementsScale()

MAGtype_GeoMagneticElements MAG_GeoMagneticElementsScale ( MAGtype_GeoMagneticElements  Elements,
double  factor 
)

Definition at line 2016 of file GeomagnetismLibrary.c.

◆ MAG_GeoMagneticElementsSubtract()

MAGtype_GeoMagneticElements MAG_GeoMagneticElementsSubtract ( MAGtype_GeoMagneticElements  minuend,
MAGtype_GeoMagneticElements  subtrahend 
)

Definition at line 2040 of file GeomagnetismLibrary.c.

◆ MAG_GetGeoidHeight()

int MAG_GetGeoidHeight ( double  Latitude,
double  Longitude,
double *  DeltaHeight,
MAGtype_Geoid Geoid 
)

Definition at line 3451 of file GeomagnetismLibrary.c.

◆ MAG_GetTransverseMercator()

int MAG_GetTransverseMercator ( MAGtype_CoordGeodetic  CoordGeodetic,
MAGtype_UTMParameters UTMParameters 
)

Definition at line 2071 of file GeomagnetismLibrary.c.

◆ MAG_GetUTMParameters()

int MAG_GetUTMParameters ( double  Latitude,
double  Longitude,
int *  Zone,
char *  Hemisphere,
double *  CentralMeridian 
)

Definition at line 2150 of file GeomagnetismLibrary.c.

◆ MAG_Gradient()

void MAG_Gradient ( MAGtype_Ellipsoid  Ellip,
MAGtype_CoordGeodetic  CoordGeodetic,
MAGtype_MagneticModel TimedMagneticModel,
MAGtype_Gradient Gradient 
)

Definition at line 213 of file GeomagnetismLibrary.c.

◆ MAG_GradY()

void MAG_GradY ( MAGtype_Ellipsoid  Ellip,
MAGtype_CoordSpherical  CoordSpherical,
MAGtype_CoordGeodetic  CoordGeodetic,
MAGtype_MagneticModel TimedMagneticModel,
MAGtype_GeoMagneticElements  GeoMagneticElements,
MAGtype_GeoMagneticElements GradYElements 
)

Definition at line 2685 of file GeomagnetismLibrary.c.

◆ MAG_GradYSummation()

void MAG_GradYSummation ( MAGtype_LegendreFunction LegendreFunction,
MAGtype_MagneticModel MagneticModel,
MAGtype_SphericalHarmonicVariables  SphVariables,
MAGtype_CoordSpherical  CoordSpherical,
MAGtype_MagneticResults GradY 
)

Definition at line 2721 of file GeomagnetismLibrary.c.

◆ MAG_isNaN()

int MAG_isNaN ( double  d)

Definition at line 2222 of file GeomagnetismLibrary.c.

◆ MAG_PcupHigh()

int MAG_PcupHigh ( double *  Pcup,
double *  dPcup,
double  x,
int  nMax 
)

Definition at line 2776 of file GeomagnetismLibrary.c.

◆ MAG_PcupLow()

int MAG_PcupLow ( double *  Pcup,
double *  dPcup,
double  x,
int  nMax 
)

Definition at line 2947 of file GeomagnetismLibrary.c.

◆ MAG_PrintEMMFormat()

void MAG_PrintEMMFormat ( char *  filename,
char *  filenameSV,
MAGtype_MagneticModel MagneticModel 
)

Definition at line 1186 of file GeomagnetismLibrary.c.

◆ MAG_PrintGradient()

void MAG_PrintGradient ( MAGtype_Gradient  Gradient)

Definition at line 469 of file GeomagnetismLibrary.c.

◆ MAG_PrintSHDFFormat()

void MAG_PrintSHDFFormat ( char *  filename,
MAGtype_MagneticModel *(*)  MagneticModel[],
int  epochs 
)

Definition at line 1229 of file GeomagnetismLibrary.c.

◆ MAG_PrintUserData()

void MAG_PrintUserData ( MAGtype_GeoMagneticElements  GeomagElements,
MAGtype_CoordGeodetic  SpaceInput,
MAGtype_Date  TimeInput,
MAGtype_MagneticModel MagneticModel,
MAGtype_Geoid Geoid 
)

Definition at line 490 of file GeomagnetismLibrary.c.

◆ MAG_PrintUserDataWithUncertainty()

void MAG_PrintUserDataWithUncertainty ( MAGtype_GeoMagneticElements  GeomagElements,
MAGtype_GeoMagneticElements  Errors,
MAGtype_CoordGeodetic  SpaceInput,
MAGtype_Date  TimeInput,
MAGtype_MagneticModel MagneticModel,
MAGtype_Geoid Geoid 
)

Definition at line 3588 of file GeomagnetismLibrary.c.

◆ MAG_PrintWMMFormat()

void MAG_PrintWMMFormat ( char *  filename,
MAGtype_MagneticModel MagneticModel 
)

Definition at line 1156 of file GeomagnetismLibrary.c.

◆ MAG_readMagneticModel()

int MAG_readMagneticModel ( char *  filename,
MAGtype_MagneticModel MagneticModel 
)

Definition at line 1299 of file GeomagnetismLibrary.c.

◆ MAG_readMagneticModel_SHDF()

int MAG_readMagneticModel_SHDF ( char *  filename,
MAGtype_MagneticModel *(*)  magneticmodels[],
int  array_size 
)

Definition at line 1377 of file GeomagnetismLibrary.c.

◆ MAG_robustReadMagModels()

int MAG_robustReadMagModels ( char *  filename,
MAGtype_MagneticModel *(*)  magneticmodels[],
int  array_size 
)

Definition at line 334 of file GeomagnetismLibrary.c.

◆ MAG_RotateMagneticVector()

int MAG_RotateMagneticVector ( MAGtype_CoordSpherical  CoordSpherical,
MAGtype_CoordGeodetic  CoordGeodetic,
MAGtype_MagneticResults  MagneticResultsSph,
MAGtype_MagneticResults MagneticResultsGeo 
)

Definition at line 2224 of file GeomagnetismLibrary.c.

◆ MAG_SecVarSummation()

int MAG_SecVarSummation ( MAGtype_LegendreFunction LegendreFunction,
MAGtype_MagneticModel MagneticModel,
MAGtype_SphericalHarmonicVariables  SphVariables,
MAGtype_CoordSpherical  CoordSpherical,
MAGtype_MagneticResults MagneticResults 
)

Definition at line 3054 of file GeomagnetismLibrary.c.

◆ MAG_SecVarSummationSpecial()

int MAG_SecVarSummationSpecial ( MAGtype_MagneticModel MagneticModel,
MAGtype_SphericalHarmonicVariables  SphVariables,
MAGtype_CoordSpherical  CoordSpherical,
MAGtype_MagneticResults MagneticResults 
)

Definition at line 3124 of file GeomagnetismLibrary.c.

◆ MAG_SetDefaults()

int MAG_SetDefaults ( MAGtype_Ellipsoid Ellip,
MAGtype_Geoid Geoid 
)

Definition at line 298 of file GeomagnetismLibrary.c.

◆ MAG_SphericalToCartesian()

void MAG_SphericalToCartesian ( MAGtype_CoordSpherical  CoordSpherical,
double *  x,
double *  y,
double *  z 
)

Definition at line 2267 of file GeomagnetismLibrary.c.

◆ MAG_SphericalToGeodetic()

void MAG_SphericalToGeodetic ( MAGtype_Ellipsoid  Ellip,
MAGtype_CoordSpherical  CoordSpherical,
MAGtype_CoordGeodetic CoordGeodetic 
)

Definition at line 2281 of file GeomagnetismLibrary.c.

◆ MAG_strlcpy_equivalent()

size_t MAG_strlcpy_equivalent ( char *  dst,
char *  src,
size_t  dstlen 
)

Definition at line 3693 of file GeomagnetismLibrary.c.

◆ MAG_Summation()

int MAG_Summation ( MAGtype_LegendreFunction LegendreFunction,
MAGtype_MagneticModel MagneticModel,
MAGtype_SphericalHarmonicVariables  SphVariables,
MAGtype_CoordSpherical  CoordSpherical,
MAGtype_MagneticResults MagneticResults 
)

Definition at line 3187 of file GeomagnetismLibrary.c.

◆ MAG_SummationSpecial()

int MAG_SummationSpecial ( MAGtype_MagneticModel MagneticModel,
MAGtype_SphericalHarmonicVariables  SphVariables,
MAGtype_CoordSpherical  CoordSpherical,
MAGtype_MagneticResults MagneticResults 
)

Definition at line 3279 of file GeomagnetismLibrary.c.

◆ MAG_TimelyModifyMagneticModel()

int MAG_TimelyModifyMagneticModel ( MAGtype_Date  UserDate,
MAGtype_MagneticModel MagneticModel,
MAGtype_MagneticModel TimedMagneticModel 
)

Definition at line 3346 of file GeomagnetismLibrary.c.

◆ MAG_TMfwd4()

void MAG_TMfwd4 ( double  Eps,
double  Epssq,
double  K0R4,
double  K0R4oa,
double  Acoeff[],
double  Lam0,
double  K0,
double  falseE,
double  falseN,
int  XYonly,
double  Lambda,
double  Phi,
double *  X,
double *  Y,
double *  pscale,
double *  CoM 
)

Definition at line 2293 of file GeomagnetismLibrary.c.

◆ MAG_Trim()

char * MAG_Trim ( char *  str)

Definition at line 1519 of file GeomagnetismLibrary.c.

◆ MAG_Warnings()

int MAG_Warnings ( int  control,
double  value,
MAGtype_MagneticModel MagneticModel 
)

Definition at line 619 of file GeomagnetismLibrary.c.

◆ MAG_WMMErrorCalc()

void MAG_WMMErrorCalc ( double  H,
MAGtype_GeoMagneticElements Uncertainty 
)

Definition at line 3554 of file GeomagnetismLibrary.c.

◆ MAG_WMMHRErrorCalc()

void MAG_WMMHRErrorCalc ( double  H,
MAGtype_GeoMagneticElements Uncertainty 
)

Definition at line 3571 of file GeomagnetismLibrary.c.

◆ MAG_YearToDate()

int MAG_YearToDate ( MAGtype_Date Date)

Definition at line 2476 of file GeomagnetismLibrary.c.