double precision function DCPVAL ( P, N, T ) C C C******************************************************************************* C C Copyright (C) 1993, California Institute of Technology. U.S. C Government Sponsorhip under NASA Contract NAS7-918 is C acknowledged. C C******************************************************************************* C C emulates DCPVAL to remove GTARG's dependence on MATH-77 C restriction: N < 10 C (not tested for N>2 ,since GTARG only uses N=2) C will cause program to halt of p(2) = 0 C reference: "MATH77 Release 3.0: A library of Mathematical C Subprograms for FORTRAN 77", JPL Applied C Mathematics Group, May 1989, JPL D-1341 C C DCPVAL evaluates a polynomial which is represented by C coefficients relative to a Chebyshev basis. C C B. Shapiro 11/18/92 C C Only enough of DCPVAL is emulated to evaluate the atmospheric C density polynomial. This is not a complete emulation of DCPVAL. C integer n double precision p(*) double precision t, u, z(10) if (n.gt.10) n=10 if (p(2).eq.0.0d0) then write(8,*) 'Invalid value p(2) = 0.' stop ' Error Exit.' end if u = ( t-p(1) ) / p(2) z(n) = p(n+3) z(n-1) = 2*u*z(n)+p(n+2) if (n.gt.2) then do i = n-2,1,-1 z(i) = 2*u*z(i+1) - z(i+2) + p(i+3) end do end if dcpval = u * z(1) - z(2) + p(3) return end