;+ ; NAME: ; oclc_epq03_AAREADME ; PURPOSE ; Print the file 'oclc_epq03_AAREADME.pro' ; CATEGORY: ; Occultation lightcurve (oclc) ; CALLING SEQUENCE: ; oclc_ey92_AAREADME ; ; PROCEDURE ; ; README_oclc_epq03 ; ; These routines implement the model of Elliot, Person and Qu 2003. ; Analysis of stellar occultation data for planetary atmospheres. II - ; Inversion, with application to Pluto and Triton. Ap J 126: 1041-1079. ; ; The routines are called oclc_epq03_*. oclc stands for OCcultation ; LightCurve. EPQ03 refers to the paper cited above. ; Other occultation lightcurves can be implemented, and will be prefixed ; oclc__.pro. ; ; --------------------------------------------------------------------------- ; OVERVIEW ; --------------------------------------------------------------------------- ; ; This formulation is a numerical implementation of the Abel transform, ; integrating the bending angle along the line of sight through the ; atmosphere. ; ; It is a challenge to keep track of the shells on which the variables are ; defines, since some are tabulated at shell centers and others at shell ; boundaries. ; ; We begin by reproducing Figure 2 and caption from EPQ03: ; ; ====================================================================================================================== ; . ; Boundary {############################## r ^####### y ^ ; Integral {#################################|####### | ; Region {#################################|####### | ; _ r_b = r_{i_b-1/2} _ _ _ _ _ _ ________________...............| ; { { | \_______________ y_b = y_{i_b-1/2} _ _ ; { { | | } ; { Delta r_i_b { r_i_b + | } ; { { | | } ; Inversion { { | + y_i_b } Delta y_i_b ; Summation { r_{i_b+1/2} _ _ _ _ _ _ ___________....................| } ; Region { { | \____theta_{i_b+1/2}| } ; { { | \__________ y_{i_b+1/2} _ _ _ _ _ ; { Delta r_{i_b+1} { r_{i_b+1} + | } ; { { | | } ; { { | | } ; { r_{i_b+3/2} _ _ _ _ _ _ _______........................+ y_{i_b+1} } Delta y_{i_b+3/2} ; { | \_____ theta_{i_b+3/2}| } ; { | \_____ | } ; { | \_____ | } ; _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ \______ y_i_{b+3/2} _ _ _ _ _ ; | | ; // // ; Body Plane Observer Plane ; // // ; | | ; r = 0 + y = 0 + ; ; <--------------- D -------------> ; ; EPQ03 Figure 2. Shells used in inversion summations. This magnified ; view of the body section of Fig 1 shows our scheme for the inversion ; shells. Note that the integral shell indeices, i, occur at shell ; midpoints, while the index of i-1/2 denotes the upper boundary of the ; shell i and i+1/2 denotes its lowerboundary. Corresponding values on ; the y-axis are determined by the ray paths for the refracted ; starlight, and the shaded area above is the inersion boundary integral ; region. The first shell of the inversion region ("boundary shell") ; begins at radius r=r_b and has an index i = i_b ; ; ====================================================================================================================== ; ; To maintain the strictest 1-to-1 correspondence with the cited paper, we ; will use the shell index scheme so defined. ; ; The scheme tabulates some values on shell centers and others on shell boundarys. ; ; shell center (integer i): y, Delta y, phi, sigma(phi), Delta r, Delta theta ; shell edge (half-integer i): r, theta, nu, n, p, T, H ; ; --------------------------------------------------------------------------- ; VARIABLES ; --------------------------------------------------------------------------- ; ; ch ; EPQ03 notation: none ; flag - 1 to include an analytic approximation to the integral from ; the top of the highest shell to infinity.; (Not well tested) ; ; distobs ; EPQ03 notation: D ; Distance between target and observer ; scalar ; cm ; ; deltathetamid ; EPQ03 notation: Delta theta_i ; change in theta over one shell (effectively at shell midpoint) ; negative for an isothermal atmosphere. ; radian ; ; deltaymid ; EPQ03 notation: Delta y_i ; width of the shadow radius shell, defined as y_{i+1/2} - y_{i-1/2} ; so delta_y is negative for an isothermal atmosphere. ; ; ; i ; EPQ03 notation: i ; index of shells ranging from 0 (topmost) to imax-1 ; EPQ02 is 1-based, and we use the native IDL 0-based arrays. ; This has no practical impact ; ; ib ; EPQ03 notation: i_b ; index of first (highest) shell for the inversion. ; 1 <= i < ib shells of boundary integral region ; ib <= i <= imax shells of inversion ; scalar ; unitless ; ; iminus ; EPQ03 notation: i - 1/2 ; index of top of shell i ; unitless ; ; imax ; largest shell index (closest to surface) ; scalar ; unitless ; ; j ; EPQ03 notation: j ; summation shell index for calculating r_i, theta_i, nu_i, p_i, ; ranging from ib to i. ; scalar ; unitless ; ; mp ; EPQ03 notation: M_p (Eq 21) ; Mass of planet (or other occulting body ; gm ; ; mu ; EPQ03 notation: mu (Eq 31) ; molecular weight ; unitless (eg 12 for C) ; ; nbot ; EPQ03 notation: n_{i+1/2} (Eq. 55) ; number density at shell bottom ; molecule/cm^3 ; ; nu ; EPQ03 notation: nu_{i+1/2} (Eq. 54) ; Refractivity. ; Unitless ; ; nustp ; EPQ03 notation: nu_STP (Eq. 17) ; Refractivity at STP (1.01325 bar, 273.15 K) ; Unitless ; ; phimid ; EPQ03 notation: phi_i ; normalized stellar flux at shell center ; unitless. ; ; r ; EPQ03 notation: r ; planet radius (distance from planet center). ; cm ; ; rbot ; EPQ03 notation: r_{i+1/2} ; planet radius (distance from planet center) at shell bottom ; cm ; ; rtop ; EPQ03 notation: r_{i-1/2} ; planet radius (distance from planet center) at shell top ; cm ; ; thetabot ; EPQ03 notation: theta_{i+1/2} ; bending angle, negative for an isothermal atmosphere, at shell bottom ; radians. ; ; thetamid ; EPQ03 notation: theta_i ; bending angle, negative for an isothermal atmosphere. ; radians. ; ; yb ; shadow radius at beginning of inversion ; equivalent to y_{i_b - 1/2} or ytop[ib] ; ; ybot ; EPQ03 notation: y_{i+1/2} (eg eq. 33) ; shadow radius array tabulted at shell bottom, ; [same as rho in oclc_ey92] ; indexed from 0 to imax-1, ; cm ; ; ymid ; EPQ03 notation: y_i (eg eq. 34) ; shadow radius array tabulted at shell mid, ; [same as rho in oclc_ey92] ; indexed from 0 to imax-1, ; cm ; ; ytop ; EPQ03 notation: y_{i-1/2} (eg eq. 33) ; shadow radius array tabulted at shell top, ; [same as rho in oclc_ey92] ; indexed from 0 to imax-1, ; cm ; ; --------------------------------------------------------------------------- ; LOW-LEVEL FUNCTIONS ; --------------------------------------------------------------------------- ; ; bnubot = oclc_epq03_bnu(rbot, rtop, thetamid, deltathetamid, ib, ch) ; bpbot = oclc_epq03_bp(rbot, rtop, thetamid, deltathetamid, ib, ch) ; deltathetamid = oclc_epq03_deltathetamid(thetabot) ; deltaymid = oclc_epq03_deltaymid(ymid) ; nbot = oclc_epq03_n(rbot, rtop, thetamid, deltathetamid, ib, ch, nustp) ; pbot = oclc_epq03_p(rbot, rtop, thetamid, deltathetamid, ib, ch, mp, mu, nustp) ; oclc_eqp03_r,ymid, deltaymid, phimid, ib, imax, rbot ; snubot = oclc_epq03_snu(rbot, rtop, deltathetamid, ib) ; spbot = oclc_epq03_sp(rbot, rtop, deltathetamid, ib) ; thetabot = oclc_epq03_theta(ybot,rbot, distobs) ; ybot = oclc_epq03_ybot(ymid) ; ytop = oclc_epq03_ytop(ymid) ; ;- pro oclc_epq03_AAREADME findpro, 'oclc_epq03_AAREADME', dirlist=dirlist, /noprint tmp = ' ' openr, lun, dirlist[0]+'/oclc_epq03_AAREADME.pro', /get_lun while not eof(lun) do begin readf,lun,tmp print, tmp endwhile free_lun,lun end