Extended IDL Help

This page was created by the IDL library routine mk_html_help. For more information on this routine, refer to the IDL Online Help Navigator or type:

     ? mk_html_help

at the IDL command line prompt.

Last modified: Sat Sep 23 18:13:50 2006.


List of Routines


Routine Descriptions

OCLC_EPQ03_AAREADME

[Next Routine] [List of Routines]
 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)
 

(See oclc_epq03_AAREADME.pro)


OCLC_EPQ03_AVG

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
  oclc_epq03_avg
 PURPOSE: (one line)
  average raw y and phi
 DESCRIPTION:
  average raw y and phi
 CATEGORY:
  Occultation lightcurve (oclc)
 CALLING SEQUENCE:
  oclc_epq03_avg, yraw, phiraw, istart, iend, ytop, ybot, phimid
 INPUTS:
  yraw : shadow radius at shell center from original data (cm)
  phiraw : flux at shell center from original data
  istart : array of starting indices for averaged bins
  iend : array of starting indices for averaged bins
 KEYWORD INPUT PARAMETERS:
  deltayraw : change in yraw over a bin, for unevenly-spaced data
 KEYWORD OUTPUT PARAMETERS:
  none
 OUTPUTS:
  ytop : shadow radius at averaged shell top
  ybot : shadow radius at averaged shell bottom
  phimid : flux at averaged shell mid
 PROCEDURE:
  Elliot, Person and Qu 2003, eq. 32 and discussion following
 MODIFICATION HISTORY:
  Written 2006 Sep 16, Leslie Young, SwRI

(See oclc_epq03_avg.pro)


OCLC_EPQ03_BDNU

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
  oclc_epq03_bdnu
 PURPOSE: (one line)
  calculate bdnu from rbot, dtheta
 DESCRIPTION:
  calculate bdnu from rbot, dtheta
 CATEGORY:
  Occultation lightcurve (oclc)
 CALLING SEQUENCE:
  bdnubot = oclc_epq03_bdnu(rbot, rtop, thetamid, deltathetamid, ib, ch)
 INPUTS:
  rbot = planet radius, at shell bottom border
  rtop = planet radius, at shell top border
   rbot[i] = r_{i + 1/2}
   rtop[i] = r_{i - 1/2}
  thetamid = bending angle at shell midpoint
  deltathetamid = change in bending angle over shell
  ib = index of top of inversion region
  ch = 1 if adding chapman top, 0 otherwise
 OPTIONAL INPUT PARAMETERS:
  none
 KEYWORD INPUT PARAMETERS:
  none
 KEYWORD OUTPUT PARAMETERS:
  none
 OUTPUTS:
  snubot = bending angle at shell borders
 COMMON BLOCKS:
  None
 SIDE EFFECTS:
 RESTRICTIONS:
  
 PROCEDURE:
  See inv_dnu.doc

 MODIFICATION HISTORY:
  Written 2006 Aug 23, Leslie Young, SwRI

(See oclc_epq03_bdnu.pro)


OCLC_EPQ03_BNU

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
  oclc_epq03_bnu
 PURPOSE: (one line)
  calculate bnu from rbot, dtheta
 DESCRIPTION:
  calculate bnu from rbot, dtheta
 CATEGORY:
  Occultation lightcurve (oclc)
 CALLING SEQUENCE:
  bnubot = oclc_epq03_bnu(rbot, rtop, thetamid, deltathetamid, ib, ch)
 INPUTS:
  rbot = planet radius, at shell bottom border
  rtop = planet radius, at shell top border
   rbot[i] = r_{i + 1/2}
   rtop[i] = r_{i - 1/2}
  thetamid = bending angle at shell midpoint
  deltathetamid = change in bending angle over shell
  ib = index of top of inversion region
  ch = 1 if adding chapman top, 0 otherwise
 OPTIONAL INPUT PARAMETERS:
  none
 KEYWORD INPUT PARAMETERS:
  none
 KEYWORD OUTPUT PARAMETERS:
  none
 OUTPUTS:
   bnubot = refractivity integral at shell borders
 COMMON BLOCKS:
  None
 SIDE EFFECTS:
 RESTRICTIONS:
  
 PROCEDURE:
  For the bins, follow
  Elliot, Person and Qu 2003, 
    eq 35, 57 - similarity of integrand for Inu and Bnu
    eq. 51, 52 - summation form for Snu approx. to Inu
  For the topmost bin, note:

 eq 13 can be written

            1   / inf 
 nu(r) = - ---  |     theta(r')/r' dx
            pi  / 0
           
 We are concerned with the integral above the topmost bin.
 Let's call the radius of the topmost bin R = rtop[0] = r_1/2.
 Then the integral starts at 
 X = sqrt(R^2 - r^2)

               1   / inf 
 nu_ch(r) = - ---  |     theta(r')/r' dx
               pi  / X

 Assuming that theta/r is an exponential with scale height H, this
 integral is

               1  theta(R)
 nu_ch(r) = - --- -------- * H * ch(R/H, asin(r/R) )
               pi    R
 
 where ch is the Chapman grazing incidence integral
  R/H = X_p is the radius/scale_height at base of integral
  asin(r/R) = zenith angle of integration path at R

 MODIFICATION HISTORY:
  Written 2006 Aug 23, Leslie Young, SwRI

(See oclc_epq03_bnu.pro)


OCLC_EPQ03_BP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
  oclc_epq03_bp
 PURPOSE: (one line)
  calculate bp from rbot, dtheta
 DESCRIPTION:
  calculate bp from rbot, dtheta
 CATEGORY:
  Occultation lightcurve (oclc)
 CALLING SEQUENCE:
  bpbot = oclc_epq03_bp(rbot, rtop, thetamid, deltathetamid, ib, ch)
 INPUTS:
  rbot = planet radius, at shell bottom border
  rtop = planet radius, at shell top border
   rbot[i] = r_{i + 1/2}
   rtop[i] = r_{i - 1/2}
  thetamid = bending angle at shell midpoint
  deltathetamid = change in bending angle over shell
  ib = index of top of inversion region
  ch = 1 if adding chapman top, 0 otherwise
 OPTIONAL INPUT PARAMETERS:
  none
 KEYWORD INPUT PARAMETERS:
  none
 KEYWORD OUTPUT PARAMETERS:
  none
 OUTPUTS:
  bpbot = pressure integral at shell bottoms
 COMMON BLOCKS:
  None
 SIDE EFFECTS:
 RESTRICTIONS:
  Topmost (rtop[0] to infinity) not implemented
 PROCEDURE:

 MODIFICATION HISTORY:
  Written 2006 Aug 23, Leslie Young, SwRI

(See oclc_epq03_bp.pro)


OCLC_EPQ03_DELTARMID

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
  oclc_epq03_deltarmid
 PURPOSE: (one line)
  calculate deltarmid from rbot
 DESCRIPTION:
  calculate deltarmid from rbot
 CATEGORY:
  Occultation lightcurve (oclc)
 CALLING SEQUENCE:
  deltarmid = oclc_epq03_deltarmid(rbot,  rtop, rmid)
 INPUTS:
  rbot = planet radius, at shell bottom border
 OPTIONAL INPUT PARAMETERS:
  none
 KEYWORD INPUT PARAMETERS:
  none
 KEYWORD OUTPUT PARAMETERS:
  none
 OUTPUTS:
  deltarmid = change in planet radius over shell
  rtop = planet radius at shell top
  rmid = planet radius at shell center
 COMMON BLOCKS:
  None
 SIDE EFFECTS:
 RESTRICTIONS:
 PROCEDURE:
  Elliot, Person and Qu 2003, eq. 45

  coded to ensure rtop[i] exactly equals rbot[i-1]

 MODIFICATION HISTORY:
  Written 2006 Sep 16, Leslie Young, SwRI

(See oclc_epq03_deltarmid.pro)


OCLC_EPQ03_DELTATHETAMID

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
  oclc_epq03_deltathetamid
 PURPOSE: (one line)
  calculate delta theta at shell mid points
 DESCRIPTION:
  calculate delta theta at shell mid points
 CATEGORY:
  Occultation lightcurve (oclc)
 CALLING SEQUENCE:
  deltathetamid = oclc_epq03_deltathetamid(thetabot)
 INPUTS:
  thetabot = bending angle (tablulated at shell bottom)
 OPTIONAL INPUT PARAMETERS:
  none
 KEYWORD INPUT PARAMETERS:
  none
 KEYWORD OUTPUT PARAMETERS:
  none
 OUTPUTS:
  deltathetamid: change in shadow radius over a shell
 COMMON BLOCKS:
  None
 SIDE EFFECTS:
 RESTRICTIONS:
  None
 PROCEDURE:
  Elliot, Person and Qu 2003, eq. 48

  

 MODIFICATION HISTORY:
  Written 2006 Aug 23, Leslie Young, SwRI

(See oclc_epq03_deltathetamid.pro)


OCLC_EPQ03_DELTAYMID

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
  oclc_epq03_deltaymid
 PURPOSE: (one line)
  calculate delta y
 DESCRIPTION:
  calculate delta y
 CATEGORY:
  Occultation lightcurve (oclc)
 CALLING SEQUENCE:
  deltaymid = oclc_epq03_deltaymid(ymid)
 INPUTS:
  ymid = shadow radius (tabulated at shell centers)
 OPTIONAL INPUT PARAMETERS:
  none
 KEYWORD INPUT PARAMETERS:
  none
 KEYWORD OUTPUT PARAMETERS:
  none
 OUTPUTS:
  deltaymid: change in shadow radius over a shell
 COMMON BLOCKS:
  None
 SIDE EFFECTS:
 RESTRICTIONS:
  None
 PROCEDURE:
  Elliot, Person and Qu 2003, eq. 33
 MODIFICATION HISTORY:
  Written 2006 Aug 23, Leslie Young, SwRI

(See oclc_epq03_deltaymid.pro)


OCLC_EPQ03_DNU

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
  oclc_epq03_dnu
 PURPOSE: (one line)
  calculate dnu = d nu / d r from radius and bending angle
 DESCRIPTION:
  calculate dnu = d nu / d r from radius and bending angle
 CATEGORY:
  Occultation lightcurve (oclc)
 CALLING SEQUENCE:
  dnubot = oclc_epq03_dnu(rbot, rtop, thetamid, deltathetamid, $
                         ib, ch)
 INPUTS:
  rbot = planet radius, at shell bottom border
  rtop = planet radius, at shell top border
   rbot[i] = r_{i + 1/2}
   rtop[i] = r_{i - 1/2}
  thetamid = bending angle at shell midpoint
  deltathetamid = change in bending angle over shell
  ib = index of top of inversion region
  ch = 1 if adding chapman top, 0 otherwise
 OPTIONAL INPUT PARAMETERS:
  none
 KEYWORD INPUT PARAMETERS:
  none
 KEYWORD OUTPUT PARAMETERS:
  none
 OUTPUTS:
  snubot = refractivity integral at shell bottoms
 COMMON BLOCKS:
  None
 SIDE EFFECTS:
 RESTRICTIONS:
 PROCEDURE:
  See notes in inv_dnu.doc

 MODIFICATION HISTORY:
  Written 2006 Aug 23, Leslie Young, SwRI

(See oclc_epq03_dnu.pro)


OCLC_EPQ03_N

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
  oclc_epq03_n
 PURPOSE: (one line)
  calculate n from radius and bending angle
 DESCRIPTION:
  calculate n from radius and bending angle
 CATEGORY:
  Occultation lightcurve (oclc)
 CALLING SEQUENCE:
  nbot = oclc_epq03_n(rbot, rtop, thetamid, deltathetamid, $
                         ib, ch, nustp)
 INPUTS:
  rbot = planet radius, at shell bottom border
  rtop = planet radius, at shell top border
   rbot[i] = r_{i + 1/2}
   rtop[i] = r_{i - 1/2}
  thetamid = bending angle at shell midpoint
  deltathetamid = change in bending angle over shell
  ib = index of top of inversion region
  ch = 1 if adding chapman top, 0 otherwise
  nustp = refractivity at STP
 OPTIONAL INPUT PARAMETERS:
  none
 KEYWORD INPUT PARAMETERS:
  none
 KEYWORD OUTPUT PARAMETERS:
  none
 OUTPUTS:
  snubot = refractivity integral at shell bottoms
 COMMON BLOCKS:
  None
 SIDE EFFECTS:
 RESTRICTIONS:
  What's snu?  What's S_nu with you?
 PROCEDURE:
  Elliot, Person and Qu 2003, eq. 51, 52

 MODIFICATION HISTORY:
  Written 2006 Aug 23, Leslie Young, SwRI

(See oclc_epq03_n.pro)


OCLC_EPQ03_NU

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
  oclc_epq03_nu
 PURPOSE: (one line)
  calculate refractivity from radius and bending angle
 DESCRIPTION:
  calculate refractivity from radius and bending angle
 CATEGORY:
  Occultation lightcurve (oclc)
 CALLING SEQUENCE:
  nbot = oclc_epq03_nu(rbot, rtop, thetamid, deltathetamid, $
                         ib, ch, nustp)
 INPUTS:
  rbot = planet radius, at shell bottom border
  rtop = planet radius, at shell top border
   rbot[i] = r_{i + 1/2}
   rtop[i] = r_{i - 1/2}
  thetamid = bending angle at shell midpoint
  deltathetamid = change in bending angle over shell
  ib = index of top of inversion region
  ch = 1 if adding chapman top, 0 otherwise
 OPTIONAL INPUT PARAMETERS:
  none
 KEYWORD INPUT PARAMETERS:
  none
 KEYWORD OUTPUT PARAMETERS:
  none
 OUTPUTS:
  nubot = refractivity at shell bottoms
 COMMON BLOCKS:
  None
 SIDE EFFECTS:
 RESTRICTIONS:
 PROCEDURE:
  Elliot, Person and Qu 2003, eq. 51, 52

 MODIFICATION HISTORY:
  Written 2006 Aug 23, Leslie Young, SwRI

(See oclc_epq03_nu.pro)


OCLC_EPQ03_P

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
  oclc_epq03_p
 PURPOSE: (one line)
  calculate p from radius and bending angle
 DESCRIPTION:
  calculate p from radius and bending angle
 CATEGORY:
  Occultation lightcurve (oclc)
 CALLING SEQUENCE:
  pbot = oclc_epq03_p(rbot, rtop, thetamid, deltathetamid, $
                         ib, ch, mp, mu, nustp)
 INPUTS:
  rbot = planet radius, at shell bottom border
  rtop = planet radius, at shell top border
   rbot[i] = r_{i + 1/2}
   rtop[i] = r_{i - 1/2}
  thetamid = bending angle at shell midpoint
  deltathetamid = change in bending angle over shell
  ib = index of top of inversion region
  ch = 1 if adding chapman top, 0 otherwise
  nustp = refractivity at STP
  mu = molecular weight
  mp = mass of planet (or dwarf)
 OPTIONAL INPUT PARAMETERS:
  none
 KEYWORD INPUT PARAMETERS:
  none
 KEYWORD OUTPUT PARAMETERS:
  none
 OUTPUTS:
  snubot = refractivity integral at shell bottoms
 COMMON BLOCKS:
  None
 SIDE EFFECTS:
 RESTRICTIONS:
 PROCEDURE:
  Elliot, Person and Qu 2003, eq. 51, 53

 MODIFICATION HISTORY:
  Written 2006 Aug 23, Leslie Young, SwRI

(See oclc_epq03_p.pro)


OCLC_EPQ03_R

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
  oclc_epq03_r
 PURPOSE: (one line)
  calculate r from y, delta_y, phi
 DESCRIPTION:
  calculate r from y, delta_y, phi
 CATEGORY:
  Occultation lightcurve (oclc)
 CALLING SEQUENCE:
  oclc_eqp03_r,ymid, deltaymid, phimid, ib, imax, rbot
 INPUTS:
  ymid = shadow radius, at shell centers
  deltaymid = change in shadow radius, at shell centers
  phimid = flux, at shell centers
  ib = first shell for inversion
  imax = lowest (last) shell
 OPTIONAL INPUT PARAMETERS:
  none
 KEYWORD INPUT PARAMETERS:
  none
 KEYWORD OUTPUT PARAMETERS:
  none
 OUTPUTS:
  rbot = radius, with values filled in for i = ib+0.5 .. imax+0.5
 COMMON BLOCKS:
  None
 SIDE EFFECTS:
 RESTRICTIONS:
 PROCEDURE:
  Elliot, Person and Qu 2003, eq. 44

 MODIFICATION HISTORY:
  Written 2006 Aug 23, Leslie Young, SwRI

(See oclc_epq03_r.pro)


OCLC_EPQ03_SDNU

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
  oclc_epq03_sdnu
 PURPOSE: (one line)
  calculate sdnu from rbot, dtheta
 DESCRIPTION:
  calculate sdnu from rbot, dtheta
 CATEGORY:
  Occultation lightcurve (oclc)
 CALLING SEQUENCE:
  sdnubot = oclc_epq03_sdnu(rbot, rtop, deltathetamid, ib)
 INPUTS:
  rbot = planet radius, at shell bottom border
  rtop = planet radius, at shell top border
   rbot[i] = r_{i + 1/2}
   rtop[i] = r_{i - 1/2}
  deltathetamid
 OPTIONAL INPUT PARAMETERS:
  none
 KEYWORD INPUT PARAMETERS:
  none
 KEYWORD OUTPUT PARAMETERS:
  none
 OUTPUTS:
  sdnubot = refractivity integral at shell bottoms
 COMMON BLOCKS:
  None
 SIDE EFFECTS:
 RESTRICTIONS:
  What's sdnu?  What's S_nu with you?
 PROCEDURE:
  Elliot, Person and Qu 2003, eq. 51, 52

 MODIFICATION HISTORY:
  Written 2006 Aug 23, Leslie Young, SwRI

(See oclc_epq03_sdnu.pro)


OCLC_EPQ03_SNU

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
  oclc_epq03_snu
 PURPOSE: (one line)
  calculate snu from rbot, dtheta
 DESCRIPTION:
  calculate snu from rbot, dtheta
 CATEGORY:
  Occultation lightcurve (oclc)
 CALLING SEQUENCE:
  snubot = oclc_epq03_snu(rbot, rtop, deltathetamid, ib)
 INPUTS:
  rbot = planet radius, at shell bottom border
  rtop = planet radius, at shell top border
   rbot[i] = r_{i + 1/2}
   rtop[i] = r_{i - 1/2}
  deltathetamid
 OPTIONAL INPUT PARAMETERS:
  none
 KEYWORD INPUT PARAMETERS:
  none
 KEYWORD OUTPUT PARAMETERS:
  none
 OUTPUTS:
  snubot = refractivity integral at shell bottoms
 COMMON BLOCKS:
  None
 SIDE EFFECTS:
 RESTRICTIONS:
  What's snu?  What's S_nu with you?
 PROCEDURE:
  Elliot, Person and Qu 2003, eq. 51, 52

 MODIFICATION HISTORY:
  Written 2006 Aug 23, Leslie Young, SwRI

(See oclc_epq03_snu.pro)


OCLC_EPQ03_SP

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
  oclc_epq03_sp
 PURPOSE: (one line)
  calculate sp from rbot, dtheta
 DESCRIPTION:
  calculate sp from rbot, dtheta
 CATEGORY:
  Occultation lightcurve (oclc)
 CALLING SEQUENCE:
  spbot = oclc_epq03_sp(rbot, rtop, deltathetamid, ib)
 INPUTS:
  rbot = planet radius, at shell bottom border
  rtop = planet radius, at shell top border
   rbot[i] = r_{i + 1/2}
   rtop[i] = r_{i - 1/2}
  deltathetamid
 OPTIONAL INPUT PARAMETERS:
  none
 KEYWORD INPUT PARAMETERS:
  none
 KEYWORD OUTPUT PARAMETERS:
  none
 OUTPUTS:
  spbot = pressure integral at shell bottoms
 COMMON BLOCKS:
  None
 SIDE EFFECTS:
 RESTRICTIONS:
  What's snu?  What's S_nu with you?
 PROCEDURE:
  Elliot, Person and Qu 2003, eq. 51, 53

 MODIFICATION HISTORY:
  Written 2006 Aug 23, Leslie Young, SwRI

(See oclc_epq03_sp.pro)


OCLC_EPQ03_TABLE11

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
  oclc_epq03_table11
 PURPOSE: (one line)
  reproduce epq03_table11
 DESCRIPTION:
  reproduce epq03_table11
 CATEGORY:
  Occultation lightcurve (oclc)
 CALLING SEQUENCE:
  oclc_epq03_table11
 INPUTS:
 OPTIONAL INPUT PARAMETERS:
  none
 KEYWORD INPUT PARAMETERS:
  kaofn = kaofn
 KEYWORD OUTPUT PARAMETERS:
  none
 OUTPUTS:
 COMMON BLOCKS:
  None
 SIDE EFFECTS:
 RESTRICTIONS:
  None
 PROCEDURE:
  Elliot, Person and Qu 2003, Fig. 2
 MODIFICATION HISTORY:
  Written 2006 Aug 23, Leslie Young, SwRI

(See oclc_epq03_table11.pro)


OCLC_EPQ03_THETA

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
  oclc_epq03_theta
 PURPOSE: (one line)
  calculate theta from y, r
 DESCRIPTION:
  calculate theta from y, r
 CATEGORY:
  Occultation lightcurve (oclc)
 CALLING SEQUENCE:
  thetabot = oclc_epq03_theta(ybot,rbot, distobs)
 INPUTS:
  ybot = shadow radius, at shell bottom border
  rbot = planet radius, at shell bottom border
  distobs = target-observer distance
 OPTIONAL INPUT PARAMETERS:
  none
 KEYWORD INPUT PARAMETERS:
  none
 KEYWORD OUTPUT PARAMETERS:
  none
 OUTPUTS:
  thetabot = bending angle at shell borders
 COMMON BLOCKS:
  None
 SIDE EFFECTS:
 RESTRICTIONS:
 PROCEDURE:
  Elliot, Person and Qu 2003, eq. 47

 MODIFICATION HISTORY:
  Written 2006 Aug 23, Leslie Young, SwRI

(See oclc_epq03_theta.pro)


OCLC_EPQ03_YBOT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
  oclc_epq03_ybot
 PURPOSE: (one line)
  calculate y at bottom of shells
 DESCRIPTION:
  calculate y at bottom of shells
 CATEGORY:
  Occultation lightcurve (oclc)
 CALLING SEQUENCE:
  ybot = oclc_epq03_ybot(ymid)
 INPUTS:
  ymid = shadow radius (tabulated at shell centers)
 OPTIONAL INPUT PARAMETERS:
  none
 KEYWORD INPUT PARAMETERS:
  none
 KEYWORD OUTPUT PARAMETERS:
  none
 OUTPUTS:
  deltaymid: change in shadow radius over a shell
 COMMON BLOCKS:
  None
 SIDE EFFECTS:
 RESTRICTIONS:
  None
 PROCEDURE:
  We want to make sure that (1) ytop[i] = ybot[i-1] and
  (2) ybot[i] - ytop[i] = deltaymid[i] 
  Elliot, Person and Qu 2003, eq. 33
 MODIFICATION HISTORY:
  Written 2006 Sep 16, Leslie Young, SwRI

(See oclc_epq03_ybot.pro)


OCLC_EPQ03_YTOP

[Previous Routine] [List of Routines]
 NAME:
  oclc_epq03_ytop
 PURPOSE: (one line)
  calculate y at bottom of shells
 DESCRIPTION:
  calculate y at bottom of shells
 CATEGORY:
  Occultation lightcurve (oclc)
 CALLING SEQUENCE:
  ytop = oclc_epq03_ytop(ymid)
 INPUTS:
  ymid = shadow radius (tabulated at shell centers)
 OPTIONAL INPUT PARAMETERS:
  none
 KEYWORD INPUT PARAMETERS:
  none
 KEYWORD OUTPUT PARAMETERS:
  none
 OUTPUTS:
  deltaymid: change in shadow radius over a shell
 COMMON BLOCKS:
  None
 SIDE EFFECTS:
 RESTRICTIONS:
  None
 PROCEDURE:
  We want to make sure that (1) ytop[i] = ybot[i-1] and
  (2) ybot[i] - ytop[i] = deltaymid[i] 
  Elliot, Person and Qu 2003, eq. 33
 MODIFICATION HISTORY:
  Written 2006 Sep 16, Leslie Young, SwRI

(See oclc_epq03_ytop.pro)