change TESSEROID to MAG_TESSEROID

This commit is contained in:
张壹 2021-05-06 21:40:45 +08:00
parent 95e17fce02
commit c351a5ac13
8 changed files with 58 additions and 58 deletions

View File

@ -14,7 +14,7 @@ Defines the TESSEROID, SPHERE, and PRISM structures.
/* Split a tesseroid into 8. */ /* Split a tesseroid into 8. */
void split_tess(TESSEROID tess, TESSEROID *split) void split_tess(MAG_TESSEROID tess, MAG_TESSEROID *split)
{ {
double dlon = 0.5*(tess.e - tess.w), double dlon = 0.5*(tess.e - tess.w),
dlat = 0.5*(tess.n - tess.s), dlat = 0.5*(tess.n - tess.s),

View File

@ -3,8 +3,8 @@ Data structures for geometric elements and functions that operate on them.
Defines the TESSEROID, SPHERE, and PRISM structures. Defines the TESSEROID, SPHERE, and PRISM structures.
*/ */
#ifndef _TESSEROIDS_GEOMETRY_H_ #ifndef _MAG_TESSEROIDS_GEOMETRY_H_
#define _TESSEROIDS_GEOMETRY_H_ #define _MAG_TESSEROIDS_GEOMETRY_H_
/* Store information on a tesseroid */ /* Store information on a tesseroid */
@ -29,9 +29,9 @@ typedef struct tess_struct {
//double Rx; //double Rx;
//double Ry; //double Ry;
//double Rz; //double Rz;
} TESSEROID; } MAG_TESSEROID;
void split_tess(TESSEROID tess, TESSEROID *split); void split_tess(MAG_TESSEROID tess, MAG_TESSEROID *split);
#endif #endif

View File

@ -22,7 +22,7 @@ Karlsruhe, Germany.
/* Calculates the field of a tesseroid model at a given point. */ /* Calculates the field of a tesseroid model at a given point. */
double calc_tess_model(TESSEROID *model, int size, double lonp, double latp, double rp, GLQ *glq_lon, GLQ *glq_lat, GLQ *glq_r, double (*field)(TESSEROID, double, double, double, GLQ, GLQ, GLQ)) double calc_tess_model(MAG_TESSEROID *model, int size, double lonp, double latp, double rp, GLQ *glq_lon, GLQ *glq_lat, GLQ *glq_r, double (*field)(MAG_TESSEROID, double, double, double, GLQ, GLQ, GLQ))
{ {
double res; double res;
int tess; int tess;
@ -49,7 +49,7 @@ double calc_tess_model(TESSEROID *model, int size, double lonp, double latp, dou
return res; return res;
} }
void calc_tess_model_triple(TESSEROID *model, int size, double lonp, double latp, double rp, GLQ *glq_lon, GLQ *glq_lat, GLQ *glq_r, void (*field_triple)(TESSEROID, double, double, double, GLQ, GLQ, GLQ, double*), double *res) void calc_tess_model_triple(MAG_TESSEROID *model, int size, double lonp, double latp, double rp, GLQ *glq_lon, GLQ *glq_lat, GLQ *glq_r, void (*field_triple)(MAG_TESSEROID, double, double, double, GLQ, GLQ, GLQ, double*), double *res)
{ {
double r1, r2, r3, ri[3]; double r1, r2, r3, ri[3];
int tess; int tess;
@ -89,11 +89,11 @@ void calc_tess_model_triple(TESSEROID *model, int size, double lonp, double latp
/* Adaptatively calculate the field of a tesseroid model at a given point */ /* Adaptatively calculate the field of a tesseroid model at a given point */
double calc_tess_model_adapt(TESSEROID *model, int size, double lonp, double latp, double rp, GLQ *glq_lon, GLQ *glq_lat, GLQ *glq_r, double (*field)(TESSEROID, double, double, double, GLQ, GLQ, GLQ), double ratio) double calc_tess_model_adapt(MAG_TESSEROID *model, int size, double lonp, double latp, double rp, GLQ *glq_lon, GLQ *glq_lat, GLQ *glq_r, double (*field)(MAG_TESSEROID, double, double, double, GLQ, GLQ, GLQ), double ratio)
{ {
double res, dist, lont, latt, rt, d2r = PI/180.; double res, dist, lont, latt, rt, d2r = PI/180.;
int tess; int tess;
TESSEROID split[8]; MAG_TESSEROID split[8];
res = 0; res = 0;
for(tess = 0; tess < size; tess++) for(tess = 0; tess < size; tess++)
@ -153,7 +153,7 @@ double calc_tess_model_adapt(TESSEROID *model, int size, double lonp, double lat
} }
/* Calculates gxx caused by a tesseroid. */ /* Calculates gxx caused by a tesseroid. */
double tess_gxx(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, double tess_gxx(MAG_TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon,
GLQ glq_lat, GLQ glq_r) GLQ glq_lat, GLQ glq_r)
{ {
double d2r = PI/180., l_sqr, kphi, coslatp, coslatc, sinlatp, sinlatc, double d2r = PI/180., l_sqr, kphi, coslatp, coslatc, sinlatp, sinlatc,
@ -197,7 +197,7 @@ double tess_gxx(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon
/* Calculates gxy caused by a tesseroid. */ /* Calculates gxy caused by a tesseroid. */
double tess_gxy(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, double tess_gxy(MAG_TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon,
GLQ glq_lat, GLQ glq_r) GLQ glq_lat, GLQ glq_r)
{ {
double d2r = PI/180., l_sqr, kphi, coslatp, coslatc, sinlatp, sinlatc, double d2r = PI/180., l_sqr, kphi, coslatp, coslatc, sinlatp, sinlatc,
@ -246,7 +246,7 @@ double tess_gxy(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon
/* Calculates gxz caused by a tesseroid. */ /* Calculates gxz caused by a tesseroid. */
double tess_gxz(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, double tess_gxz(MAG_TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon,
GLQ glq_lat, GLQ glq_r) GLQ glq_lat, GLQ glq_r)
{ {
double d2r = PI/180., l_sqr, kphi, coslatp, coslatc, sinlatp, sinlatc, double d2r = PI/180., l_sqr, kphi, coslatp, coslatc, sinlatp, sinlatc,
@ -295,7 +295,7 @@ double tess_gxz(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon
/* Calculates gyy caused by a tesseroid. */ /* Calculates gyy caused by a tesseroid. */
double tess_gyy(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, double tess_gyy(MAG_TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon,
GLQ glq_lat, GLQ glq_r) GLQ glq_lat, GLQ glq_r)
{ {
double d2r = PI/180., l_sqr, coslatp, coslatc, sinlatp, sinlatc, double d2r = PI/180., l_sqr, coslatp, coslatc, sinlatp, sinlatc,
@ -340,7 +340,7 @@ double tess_gyy(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon
/* Calculates gyz caused by a tesseroid. */ /* Calculates gyz caused by a tesseroid. */
double tess_gyz(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, double tess_gyz(MAG_TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon,
GLQ glq_lat, GLQ glq_r) GLQ glq_lat, GLQ glq_r)
{ {
double d2r = PI/180., l_sqr, coslatp, coslatc, sinlatp, sinlatc, double d2r = PI/180., l_sqr, coslatp, coslatc, sinlatp, sinlatc,
@ -388,7 +388,7 @@ double tess_gyz(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon
/* Calculates gzz caused by a tesseroid. */ /* Calculates gzz caused by a tesseroid. */
double tess_gzz(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, double tess_gzz(MAG_TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon,
GLQ glq_lat, GLQ glq_r) GLQ glq_lat, GLQ glq_r)
{ {
double d2r = PI/180., l_sqr, coslatp, coslatc, sinlatp, sinlatc, double d2r = PI/180., l_sqr, coslatp, coslatc, sinlatp, sinlatc,
@ -432,7 +432,7 @@ double tess_gzz(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon
} }
/*Calculate three gravity gradient components simultaneously*/ /*Calculate three gravity gradient components simultaneously*/
void tess_gxz_gyz_gzz(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, void tess_gxz_gyz_gzz(MAG_TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon,
GLQ glq_lat, GLQ glq_r, double *res) GLQ glq_lat, GLQ glq_r, double *res)
{ {
double d2r = PI/180., l_sqr, coslatp, coslatc, sinlatp, sinlatc, sinlon, double d2r = PI/180., l_sqr, coslatp, coslatc, sinlatp, sinlatc, sinlon,
@ -496,7 +496,7 @@ void tess_gxz_gyz_gzz(TESSEROID tess, double lonp, double latp, double rp, GLQ g
return; return;
} }
void tess_gxx_gxy_gxz(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, void tess_gxx_gxy_gxz(MAG_TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon,
GLQ glq_lat, GLQ glq_r, double *res) GLQ glq_lat, GLQ glq_r, double *res)
{ {
double d2r = PI/180., l_sqr, coslatp, coslatc, sinlatp, sinlatc, sinlon, double d2r = PI/180., l_sqr, coslatp, coslatc, sinlatp, sinlatc, sinlon,
@ -562,7 +562,7 @@ void tess_gxx_gxy_gxz(TESSEROID tess, double lonp, double latp, double rp, GLQ g
void tess_gxy_gyy_gyz(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, void tess_gxy_gyy_gyz(MAG_TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon,
GLQ glq_lat, GLQ glq_r, double *res) GLQ glq_lat, GLQ glq_r, double *res)
{ {
double d2r = PI/180., l_sqr, coslatp, coslatc, sinlatp, sinlatc, sinlon, double d2r = PI/180., l_sqr, coslatp, coslatc, sinlatp, sinlatc, sinlon,

View File

@ -1,6 +1,6 @@
/* /*
Functions that calculate the gravitational potential and its first and second Functions that calculate the gravitational potential and its first and second
derivatives for the tesseroid. derivatives for the MAG_tesseroid.
The gravity gradients can be calculated using the general formula of The gravity gradients can be calculated using the general formula of
Grombein et al. (2010). Grombein et al. (2010).
@ -16,7 +16,7 @@ inverted, so a positive density results in positive gz.
Example Example
------- -------
To calculate the gzz component due to a tesseroid on a regular grid: To calculate the gzz component due to a MAG_tesseroid on a regular grid:
#include <stdio.h> #include <stdio.h>
#include "glq.h"r #include "glq.h"r
@ -25,7 +25,7 @@ To calculate the gzz component due to a tesseroid on a regular grid:
int main() int main()
{ {
TESSEROID tess = {1000, 44, 46, -1, 1, MEAN_EARTH_RADIUS - 100000, MAG_TESSEROID tess = {1000, 44, 46, -1, 1, MEAN_EARTH_RADIUS - 100000,
MEAN_EARTH_RADIUS}; MEAN_EARTH_RADIUS};
GLQ *glqlon, *glqlat, *glqr; GLQ *glqlon, *glqlat, *glqr;
double lon, lat, r = MEAN_EARTH_RADIUS + 1500000, res; double lon, lat, r = MEAN_EARTH_RADIUS + 1500000, res;
@ -65,29 +65,29 @@ KIT Scientific Reports 7547, ISBN 978-3-86644-510-9, KIT Scientific Publishing,
Karlsruhe, Germany. Karlsruhe, Germany.
*/ */
#ifndef _TESSEROIDS_GRAV_TESS_H_ #ifndef _MAG_TESSEROIDS_GRAV_TESS_H_
#define _TESSEROIDS_GRAV_TESS_H_ #define _MAG_TESSEROIDS_GRAV_TESS_H_
/* Needed for definition of TESSEROID */ /* Needed for definition of MAG_TESSEROID */
#include "geometry.h" #include "geometry.h"
/* Needed for definition of GLQ */ /* Needed for definition of GLQ */
#include "glq.h" #include "glq.h"
double calc_tess_model(TESSEROID *model, int size, double lonp, double latp, double rp, GLQ *glq_lon, GLQ *glq_lat, GLQ *glq_r, double (*field)(TESSEROID, double, double, double, GLQ, GLQ, GLQ)); double calc_tess_model(MAG_TESSEROID *model, int size, double lonp, double latp, double rp, GLQ *glq_lon, GLQ *glq_lat, GLQ *glq_r, double (*field)(MAG_TESSEROID, double, double, double, GLQ, GLQ, GLQ));
void calc_tess_model_triple(TESSEROID *model, int size, double lonp, double latp, double rp, GLQ *glq_lon, GLQ *glq_lat, GLQ *glq_r, void calc_tess_model_triple(MAG_TESSEROID *model, int size, double lonp, double latp, double rp, GLQ *glq_lon, GLQ *glq_lat, GLQ *glq_r,
void (*field_triple)(TESSEROID, double, double, double, GLQ, GLQ, GLQ, double*), double *res); void (*field_triple)(MAG_TESSEROID, double, double, double, GLQ, GLQ, GLQ, double*), double *res);
double calc_tess_model_adapt(TESSEROID *model, int size, double lonp, double latp, double rp, GLQ *glq_lon, GLQ *glq_lat, GLQ *glq_r, double (*field)(TESSEROID, double, double, double, GLQ, GLQ, GLQ), double ratio); double calc_tess_model_adapt(MAG_TESSEROID *model, int size, double lonp, double latp, double rp, GLQ *glq_lon, GLQ *glq_lat, GLQ *glq_r, double (*field)(MAG_TESSEROID, double, double, double, GLQ, GLQ, GLQ), double ratio);
double tess_gxx(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, GLQ glq_lat, GLQ glq_r); double tess_gxx(MAG_TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, GLQ glq_lat, GLQ glq_r);
double tess_gxy(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, GLQ glq_lat, GLQ glq_r); double tess_gxy(MAG_TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, GLQ glq_lat, GLQ glq_r);
double tess_gxz(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, GLQ glq_lat, GLQ glq_r); double tess_gxz(MAG_TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, GLQ glq_lat, GLQ glq_r);
double tess_gyy(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, GLQ glq_lat, GLQ glq_r); double tess_gyy(MAG_TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, GLQ glq_lat, GLQ glq_r);
double tess_gyz(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, GLQ glq_lat, GLQ glq_r); double tess_gyz(MAG_TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, GLQ glq_lat, GLQ glq_r);
double tess_gzz(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, GLQ glq_lat, GLQ glq_r); double tess_gzz(MAG_TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, GLQ glq_lat, GLQ glq_r);
void tess_gxz_gyz_gzz(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, GLQ glq_lat, GLQ glq_r, double *res); void tess_gxz_gyz_gzz(MAG_TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, GLQ glq_lat, GLQ glq_r, double *res);
void tess_gxx_gxy_gxz(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, GLQ glq_lat, GLQ glq_r, double *res); void tess_gxx_gxy_gxz(MAG_TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, GLQ glq_lat, GLQ glq_r, double *res);
void tess_gxy_gyy_gyz(TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, GLQ glq_lat, GLQ glq_r, double *res); void tess_gxy_gyy_gyz(MAG_TESSEROID tess, double lonp, double latp, double rp, GLQ glq_lon, GLQ glq_lat, GLQ glq_r, double *res);
#endif #endif

View File

@ -564,7 +564,7 @@ void strstrip(char *str)
/* Read a single tesseroid from a string */ /* Read a single tesseroid from a string */
int gets_mag_tess(const char *str, TESSEROID *tess) int gets_mag_tess(const char *str, MAG_TESSEROID *tess)
{ {
double w, e, s, n, top, bot, dens, suscept, Bx, By, Bz, Rx, Ry, Rz; double w, e, s, n, top, bot, dens, suscept, Bx, By, Bz, Rx, Ry, Rz;
int nread, nchars; int nread, nchars;
@ -595,14 +595,14 @@ int gets_mag_tess(const char *str, TESSEROID *tess)
} }
//ELDAR BAYKIEV//////////////////////////////// //ELDAR BAYKIEV////////////////////////////////
TESSEROID * read_mag_tess_model(FILE *modelfile, int *size) MAG_TESSEROID * read_mag_tess_model(FILE *modelfile, int *size)
{ {
TESSEROID *model, *tmp; MAG_TESSEROID *model, *tmp;
int buffsize = 300, line, badinput = 0, error_exit = 0; int buffsize = 300, line, badinput = 0, error_exit = 0;
char sbuff[10000]; char sbuff[10000];
/* Start with a single buffer allocation and expand later if necessary */ /* Start with a single buffer allocation and expand later if necessary */
model = (TESSEROID *)malloc(buffsize*sizeof(TESSEROID)); model = (MAG_TESSEROID *)malloc(buffsize*sizeof(MAG_TESSEROID));
if(model == NULL) if(model == NULL)
{ {
log_error("problem allocating initial memory to load tesseroid model."); log_error("problem allocating initial memory to load tesseroid model.");
@ -630,7 +630,7 @@ TESSEROID * read_mag_tess_model(FILE *modelfile, int *size)
if(*size == buffsize) if(*size == buffsize)
{ {
buffsize += buffsize; buffsize += buffsize;
tmp = (TESSEROID *)realloc(model, buffsize*sizeof(TESSEROID)); tmp = (MAG_TESSEROID *)realloc(model, buffsize*sizeof(MAG_TESSEROID));
if(tmp == NULL) if(tmp == NULL)
{ {
/* Need to free because realloc leaves unchanged in case of /* Need to free because realloc leaves unchanged in case of
@ -660,7 +660,7 @@ TESSEROID * read_mag_tess_model(FILE *modelfile, int *size)
/* Adjust the size of the model */ /* Adjust the size of the model */
if(*size != 0) if(*size != 0)
{ {
tmp = (TESSEROID *)realloc(model, (*size)*sizeof(TESSEROID)); tmp = (MAG_TESSEROID *)realloc(model, (*size)*sizeof(MAG_TESSEROID));
if(tmp == NULL) if(tmp == NULL)
{ {
/* Need to free because realloc leaves unchanged in case of /* Need to free because realloc leaves unchanged in case of

View File

@ -3,10 +3,10 @@ Input and output parsing tools.
*/ */
#ifndef _TESSEROIDS_PARSERS_H_ #ifndef _MAG_TESSEROIDS_PARSERS_H_
#define _TESSEROIDS_PARSERS_H_ #define _MAG_TESSEROIDS_PARSERS_H_
/* Needed for definition of TESSEROID and PRISM */ /* Needed for definition of MAG_TESSEROID and PRISM */
#include "geometry.h" #include "geometry.h"
/* Need for the definition of FILE */ /* Need for the definition of FILE */
#include <stdio.h> #include <stdio.h>
@ -68,8 +68,8 @@ int parse_gradcalc_args(int argc, char **argv, const char *progname, GRADCALC_AR
void strstrip(char *str); void strstrip(char *str);
int gets_mag_tess(const char *str, TESSEROID *tess); int gets_mag_tess(const char *str, MAG_TESSEROID *tess);
TESSEROID * read_mag_tess_model(FILE *modelfile, int *size); MAG_TESSEROID * read_mag_tess_model(FILE *modelfile, int *size);
#endif #endif

View File

@ -24,7 +24,7 @@ Generic main function for the tessb* programs.
/* Print the help message for tessh* programs */ /* Print the help message for tessh* programs */
void print_tessb_help(const char *progname) void print_tessb_help(const char *progname)
{ {
printf("MAGNETIC TESSEROIDS\n"); printf("MAGNETIC MAG_TESSEROIDS\n");
printf("Usage: %s MODELFILE [OPTIONS]\n\n", progname); printf("Usage: %s MODELFILE [OPTIONS]\n\n", progname);
if(strcmp(progname + 4, "pot") == 0) if(strcmp(progname + 4, "pot") == 0)
{ {
@ -41,12 +41,12 @@ void print_tessb_help(const char *progname)
/* Run the main for a generic tessh* program */ /* Run the main for a generic tessh* program */
int run_tessb_main(int argc, char **argv, const char *progname, int run_tessb_main(int argc, char **argv, const char *progname,
double (*field)(TESSEROID, double, double, double, GLQ, GLQ, GLQ), double (*field)(MAG_TESSEROID, double, double, double, GLQ, GLQ, GLQ),
double ratio1, double ratio2, double ratio3) double ratio1, double ratio2, double ratio3)
{ {
TESSB_ARGS args; TESSB_ARGS args;
GLQ *glq_lon, *glq_lat, *glq_r; GLQ *glq_lon, *glq_lat, *glq_r;
TESSEROID *model; MAG_TESSEROID *model;
int modelsize, rc, line, points = 0, error_exit = 0, bad_input = 0; int modelsize, rc, line, points = 0, error_exit = 0, bad_input = 0;
char buff[10000]; char buff[10000];
@ -65,10 +65,10 @@ int run_tessb_main(int argc, char **argv, const char *progname,
clock_t tstart; clock_t tstart;
struct tm * timeinfo; struct tm * timeinfo;
double (*field1)(TESSEROID, double, double, double, GLQ, GLQ, GLQ); double (*field1)(MAG_TESSEROID, double, double, double, GLQ, GLQ, GLQ);
double (*field2)(TESSEROID, double, double, double, GLQ, GLQ, GLQ); double (*field2)(MAG_TESSEROID, double, double, double, GLQ, GLQ, GLQ);
double (*field3)(TESSEROID, double, double, double, GLQ, GLQ, GLQ); double (*field3)(MAG_TESSEROID, double, double, double, GLQ, GLQ, GLQ);
void (*field_triple)(TESSEROID, double, double, double, GLQ, GLQ, GLQ, double*); void (*field_triple)(MAG_TESSEROID, double, double, double, GLQ, GLQ, GLQ, double*);
double ggt_1, ggt_2, ggt_3; double ggt_1, ggt_2, ggt_3;
double gtt_v[3]; double gtt_v[3];
int n_tesseroid; int n_tesseroid;

View File

@ -2,13 +2,13 @@
Generic main function for the tessb* programs. Generic main function for the tessb* programs.
*/ */
#ifndef _TESSEROIDS_TESSH_MAIN_H_ #ifndef _MAG_TESSEROIDS_TESSH_MAIN_H_
#define _TESSEROIDS_TESSH_MAIN_H_ #define _MAG_TESSEROIDS_TESSH_MAIN_H_
#include "glq.h" #include "glq.h"
#include "geometry.h" #include "geometry.h"
void print_tessb_help(const char *progname); void print_tessb_help(const char *progname);
int run_tessb_main(int argc, char **argv, const char *progname, double (*field)(TESSEROID, double, double, double, GLQ, GLQ, GLQ), double ratio1, double ratio2, double ratio3); int run_tessb_main(int argc, char **argv, const char *progname, double (*field)(MAG_TESSEROID, double, double, double, GLQ, GLQ, GLQ), double ratio1, double ratio2, double ratio3);
#endif #endif