#include <assert.h>
#include <stdio.h>
-const float THIRD = (1.0/3.0);
-const float f_0 = 47.7; // 47.7 MHz from [Alg 1.1], to convert frequency into wavenumber and vica versa
-
using namespace std;
+namespace ITM {
+
+const double THIRD = (1.0/3.0);
+const double f_0 = 47.7; // 47.7 MHz from [Alg 1.1], to convert frequency into wavenumber and vica versa
+
struct prop_type {
// General input
return 0.0;
}
-#define set_warn(txt, err) printf("%s:%d %s\n", __func__, __LINE__, txt);
-
+//#define set_warn(txt, err) printf("%s:%d %s\n", __func__, __LINE__, txt);
+#define set_warn(txt, err)
// :13: single-knife attenuation, page 6
/*
* computers," Princeton Univ. Press, 1955) and the maximum error should be
* 4.5e-4.
*/
+#if 1
static
double qerfi(double q)
{
return v;
}
+#endif
// :41: preparatory routine, page 20
* surface impedance @zgnd
* It may be used with either the area prediction or the point-to-point mode.
*/
+#if 1
static
void qlrps(double fmhz, double zsys, double en0, int ipol, double eps, double sgm, prop_type &prop)
prop.Z_g_real = prop_zgnd.real();
prop.Z_g_imag = prop_zgnd.imag();
}
+#endif
// :30: Function curv, page 15
// :28: Area variablity, page 14
+#if 1
static
double avar(double zzt, double zzl, double zzc, prop_type &prop, propv_type &propv)
{
kdv = propv.mdvar;
no_situation_variability = kdv >= 20;
if (no_situation_variability)
- no_situation_variability -= 20;
+ kdv -= 20;
no_location_variability = kdv >= 10;
if (no_location_variability)
return avarv;
}
-
+#endif
// :45: Find to horizons, page 24
/*
n = 10 * ka - 5;
kb = n - ka + 1;
sn = n - 1;
- assert((s = new double[n+2]) != 0);
+ s = new double[n+2];
s[0] = sn;
s[1] = 1.0;
xb = (xb - xa) / sn;
* pfl[0] = np, the number of points in the path
* pfl[1] = xi, the length of each increment
*/
+#if 1
static
void qlrpfl(double pfl[], int klimx, int mdvarx, prop_type &prop, propv_type &propv)
{
lrprop(0.0, prop);
}
+#endif
//********************************************************
double zc, zr;
double q = eno;
long ja, jb, i, np;
- double dkm, xkm;
double fs;
prop.h_g[0] = tht_m; // Tx height above ground level
zc = qerfi(conf);
zr = qerfi(rel);
np = (long)elev[0];
- dkm = (elev[1] * elev[0]) / 1000.0;
- xkm = elev[1] / 1000.0;
+#if 0
+ double dkm = (elev[1] * elev[0]) / 1000.0;
+ double xkm = elev[1] / 1000.0;
+#endif
ja = (long)(3.0 + 0.1 * elev[0]);
jb = np - ja + 6;
errnum = prop.kwx;
}
#endif
+
+}