%{ /* derived.tmc: derived data * $Log: derived.tmc,v $ * Revision 1.1 2000/11/03 16:34:31 nort * Initial revision * # Revision 1.1 1993/07/24 21:42:34 nmd # Initial revision # # Revision 1.1 1993/07/14 15:36:10 nmd # Initial revision # */ #pragma off (unreferenced) static char derivedrcsid[] = "$Id: derived.tmc,v 1.1 2000/11/03 16:34:31 nort Exp $"; #pragma on (unreferenced) %} Ct16 Correct1; Ct16 Correct2; Ct16 Correct3; Ct16 Correct4; Ct16 Correct5; Ct16 CorrectCell; VEL PitotVel; TML5 reynoldsNum; %{ #include Ct16 BinaryCounting(double Counts, double PRF, double nominalPRF, double power, short norm ){ if ( PRF <= Counts || PRF < 2 ) return (0xFFFF); else if (norm) return( log(1-Counts/PRF)/log((PRF-1)/PRF) * nominalPRF / PRF / power); else return( log(1-Counts/PRF)/log((PRF-1)/PRF) * nominalPRF / PRF); } #define densityFactor 4.644e-4 #define pitotFactor 5.74595e6 #define reynoldsFactor 5.74e-3 unsigned short Pitot(double pSys, double delP, double T){ pSys -= 1; delP /= 10; delP -= 0.001; T += 273.15; if ( pSys <= 0 || delP <= 0 ) return ( 0 ); return ( sqrt( delP * T * pitotFactor / pSys ) ); } unsigned long setReynoldsNumber(double vel, double pSys, double T){ double viscosity; pSys -= 1; T += 273.15; viscosity = ( 28.45 + 0.526 * T - 0.000214 * T*T ) * 1e-6; return ( vel * pSys * reynoldsFactor / ( viscosity * T) ); } %} invalidate Correct1; invalidate Correct2; invalidate Correct3; invalidate Correct4; invalidate Correct5; { Correct1 = BinaryCounting(Det1, Freq, SWNominalPRF, convert(LFLUX)/0.4, SWPowerNormalize); validate Correct1; } { Correct2 = BinaryCounting(Det2, Freq, SWNominalPRF, convert(LFLUX)/0.4, SWPowerNormalize); validate Correct2; } { Correct3 = BinaryCounting(Det3, Freq, SWNominalPRF, convert(LFLUX)/0.4, SWPowerNormalize); validate Correct3; } { Correct4 = BinaryCounting(Det4, Freq, SWNominalPRF, convert(LFLUX)/0.4, SWPowerNormalize); validate Correct4; } { Correct5 = BinaryCounting(Det5, Freq, SWNominalPRF, convert(LFLUX)/0.4, SWPowerNormalize); validate Correct5; } invalidate PitotVel; { PitotVel = Pitot(convert(P_TOT), convert(P_PITOT), convert(T_SYS)); validate PitotVel; } invalidate reynoldsNum; { reynoldsNum = setReynoldsNumber(convert(PitotVel), convert(P_TOT), convert(T_SYS)); validate reynoldsNum; } invalidate CorrectCell; { double power; power = convert(LFLUX)/0.4; if ( power > 0.05 ) CorrectCell = OHCell / power; else (CorrectCell = 0); validate CorrectCell; }