/* ** $Id: odflib.h,v 1.7 1999/05/03 21:55:25 frank Exp $ ** ** odflib function prototypes. */ #ifndef _ODFLIB_H #define _ODFLIB_H /* ** Math filters: */ typedef struct { double *q; double sum; int n, last; } RunningMeanDesc, *RunningMean; typedef struct { double *q; int *miss; double alpha; double lagValue, prevValue; int qLen, last; } ExpDelayDesc, *ExpDelay; extern double BruntVaisalaFreq (int nObs, double *s, int sInc, double *t, int tInc, double *p, int pInc, double *pPav, double *pE); extern int FindCarterArea (double degLat, double degLon); extern double CarterCorrectedDepth (double uncorr, int area, int *pCorr); extern double CarterUnCorrectedDepth (double uncorr, int area, int *pCorr); extern void CFCSetAirVals (double f11AirVal, double f12AirVal); extern double CFC11Saturation (double theta, double salt); extern double CFC12Saturation (double theta, double salt); extern void Depth (int n, double g, double *p, int pInc, double *rho, int rInc, double *depth, int dInc); extern double PtoZ (double grav, double dynz, double prsdb); extern double ZtoP (double grav, double dynz, double depth); extern void DynamicHeight (int n, double *p, int pInc, double *spVolAn, int spVolAnInc, double *dynHt, int dynHtInc); extern double Gravity (double deglat, double pdb); extern double IESRho (double s, double t, double rp); extern double IESSpVolAn (double s, double t, double p, double *sigma); extern double ITS90Temp (double t68); extern double IPTS68Temp (double t90); extern double BunsenO2 (double s, double t); extern double Poynting (double s, double t, double p); extern double O2PerLiterToPerKg (double o2mlpl, double rho); extern double O2PerKgToPerLiter (double o2umpkg, double rho); extern double O2MllToPartPress (double o2mlpl, double s, double t, double p); extern double O2PartPressToMll (double o2pp, double s, double t, double p); extern double O2Saturation (double t, double s); extern double O2SaturationPartPress (double s, double t, double p); extern double PotentialTemp (double s, double t, double p, double rp); extern double PSS78Salinity (double press, double temp, double cond); extern double PSS78Pressure (double temp, double cond, double salt); extern double PSS78Temperature (double press, double cond, double salt); extern double PSS78Conductivity (double press, double temp, double salt); extern double SoundVelocity (int method, double s, double t, double p); extern double SoundVelCandM (double s, double t, double p); extern double SoundVelDelGrosso (double s, double t, double p); extern double SoundVelWilson (double s, double t, double p); extern void Transport (int n, double *z, int zInc, double *dynHt, int dInc, double *transport, int tInc); extern double *GaussianWeights (int n); extern void Interpolate (int nPts, float *xp, int incrX, float *yp, int incrY, int iPts, float *xi, int incrXi, float *yi, int incrYi); extern int LMnlFit (int (*pInitFunc)(), int (*pCalcFunc)(), int m, int n, double *x, double *fvec, int maxfev, int printInterval, int *nfev); extern double EuclidianNorm (int n, double *x); extern double FPMachineConst (int what); extern int LMPrintMsg (int num); extern int PolynomialFit (int opcode, int maxfit, int order, double *fit, double *weights, double *r2, int nPts, double *x, double *y); extern double ProbOfZ (double z); extern double ZOfProb (double p); extern double ProbOfF (double f, int df1, int df2); extern double FOfProb (double p, int df1, int df2); extern double ProbOfR (double r, int n); extern double gammln (double xx); extern double betacf (double a, double b, double x); extern double betai (double a, double b, double x); extern RunningMean RunningMeanInit (int n, double initVal); extern double RunningMeanReset (RunningMean pR, double initVal); extern double RunningMeanCalc (RunningMean pR, double val); extern ExpDelay ExpDelayInit (double delayPeriod, double lagPeriod, double sampPeriod, double initVal); extern double ExpDelayReset (ExpDelay pE, double initVal); extern double ExpDelayCalc (ExpDelay pE, int missing, double val); extern double GreatCircleDist (double slt, double slg, double xlt, double xlg, double *course); extern void GreatCirclePos (double dist, double course, double slt, double slg, double *xlt, double *xlg); #ifdef SVR4 extern int isinf (double d); extern double quiet_nan (void); #else /* SVR4 */ extern void *memmove (void *dest, const void *src, size_t len); extern void *memset (void *dest, int byte, size_t len); #endif /* SVR4 */ #endif /* _ODFLIB_H */