8 #include "Anisotropic1.h"
9 #include "AtmosModel.h"
10 #include "IException.h"
88 double xmunot_0, ymunot_0;
90 double xmunot_1, ymunot_1;
95 if(p_atmosBha == 0.0) {
99 if(p_atmosTau == 0.0) {
108 if(p_atmosWha == 1.0) {
109 QString msg =
"Anisotropic conservative case not implemented yet - WHA parameter cannot be set to 1.0";
110 msg +=
"This will cause negative planetary curvature to occur.";
130 (1.0 + (1.0 / 3.0) * p_atmosBha *
p_atmosWham)) / (1.0 -
164 (1.0 / 3.0) * p_atmosWha * p_atmosBha) / (1.0 - (
p_atmosX0_1 -
168 SetOldTau(p_atmosTau);
169 SetOldWha(p_atmosWha);
175 if(incidence == 90.0) {
179 munot = cos((
PI / 180.0) * incidence);
182 maxval = max(1.0e-30, hpsq1 + munot * munot);
184 munotp = max(munotp, p_atmosTau / 69.0);
185 if(emission == 90.0) {
189 mu = cos((
PI / 180.0) * emission);
192 maxval = max(1.0e-30, hpsq1 + mu * mu);
194 mup = max(mup, p_atmosTau / 69.0);
196 maxval = max(1.0e-30, munotp);
197 xx = -p_atmosTau / maxval;
206 emunot = exp(-p_atmosTau / munotp);
209 maxval = max(1.0e-30, mup);
210 xx = -p_atmosTau / maxval;
219 emu = exp(-p_atmosTau / mup);
247 cosazss = 0.0 - munot * mu;
250 cosazss = cos((
PI / 180.0) * phase) - munot * mu;
253 xystuff = cxx * xmunot_0 * xmu_0 - cyy * ymunot_0 *
254 ymu_0 -
p_atmosP0 * sum * (xmu_0 * ymunot_0 + ymu_0 *
255 xmunot_0) + cosazss * p_atmosBha * (xmu_1 *
256 xmunot_1 - ymu_1 * ymunot_1);
257 p_pstd = 0.25 * p_atmosWha * munotp / (munotp + mup) * xystuff;