s_swiftest_orbel Submodule


Code converted to Modern Fortran by David A. Minton Date: 2020-06-29


               swiftest_orbel_SCHGET.F

 PURPOSE:  Given an angle, efficiently compute sinh and cosh.

    Input:
         angle ==> angle in radians (real scalar)

    Output:
         shx    ==>  sinh(angle)  (real scalar)
         chx    ==>  cosh(angle)  (real scalar)

 ALGORITHM: Obvious from the code
 REMARKS: Based on the routine SCGET for sine's and cosine's.
   We use the sqrt rather than cosh (it's faster)
   BE SURE THE ANGLE IS IN RADIANS AND IT CAN'T BE LARGER THAN 300
   OR OVERFLOWS WILL OCCUR!
 AUTHOR:  M. Duncan.
 DATE WRITTEN:  May 6, 1992.
 REVISIONS:


Code converted to Modern Fortran by David A. Minton Date: 2020-06-29
! swiftest_orbel_FLON.F


 PURPOSE:  Solves Kepler's eqn. for hyperbola using hybrid approach.

         Input:
                       e ==> eccentricity anomaly. (real scalar)
                    capn ==> hyperbola mean anomaly. (real scalar)
         Returns:
              swiftest_orbel_flon ==>  eccentric anomaly. (real scalar)

 ALGORITHM: Uses power series for N in terms of F and Newton,s method
 REMARKS: ONLY GOOD FOR LOW VALUES OF N (N < 0.636*e -0.6)
 AUTHOR: M. Duncan
 DATE WRITTEN: May 26, 1992.
 REVISIONS:


Code converted to Modern Fortran by David A. Minton Date: 2020-06-29
swiftest_orbel_FGET.F


 PURPOSE:  Solves Kepler's eqn. for hyperbola using hybrid approach.

         Input:
                       e ==> eccentricity anomaly. (real scalar)
                    capn ==> hyperbola mean anomaly. (real scalar)
         Returns:
              swiftest_orbel_fget ==>  eccentric anomaly. (real scalar)

 ALGORITHM: Based on pp. 70-72 of Fitzpatrick's book "Principles of
       Cel. Mech. ".  Quartic convergence from Danby's book.
 REMARKS:
 AUTHOR: M. Duncan
 DATE WRITTEN: May 11, 1992.
 REVISIONS: 2/26/93 hfl


Code converted to Modern Fortran by David A. Minton Date: 2020-06-29
swiftest_orbel_ZGET.F


 PURPOSE:  Solves the equivalent of Kepler's eqn. for a parabola
      given Q (Fitz. notation.)

         Input:
                       q ==>  parabola mean anomaly. (real scalar)
         Returns:
              swiftest_orbel_zget ==>  eccentric anomaly. (real scalar)

 ALGORITHM: p. 70-72 of Fitzpatrick's book "Princ. of Cel. Mech."
 REMARKS: For a parabola we can solve analytically.
 AUTHOR: M. Duncan
 DATE WRITTEN: May 11, 1992.
 REVISIONS: May 27 - corrected it for negative Q and use power
   series for small Q.


Code converted to Modern Fortran by David A. Minton Date: 2020-06-29
swiftest_orbel_ESOLMD.F


 PURPOSE:  Solves Kepler's eqn.   e is ecc.   m is mean anomaly.

         Input:
                       e ==> eccentricity anomaly. (real scalar)
                       m ==> mean anomaly. (real scalar)
         Returns:
            swiftest_orbel_esolmd ==>  eccentric anomaly. (real scalar)

 ALGORITHM: Some sort of quartic convergence from Wisdom.
 REMARKS: ONLY GOOD FOR SMALL ECCENTRICITY SINCE IT ONLY
     ITERATES ONCE. (GOOD FOR PLANET CALCS.)
     ALSO DOES NOT PUT M OR E BETWEEN 0. AND 2*PI
 INCLUDES: needs SCGET.F
 AUTHOR: M. Duncan
 DATE WRITTEN: May 7, 1992.
 REVISIONS: 2/26/93 hfl


Code converted to Modern Fortran by David A. Minton Date: 2020-06-29
swiftest_orbel_EHIE.F


 PURPOSE:  Solves Kepler's eqn.   e is ecc.   m is mean anomaly.

         Input:
                       e ==> eccentricity anomaly. (real scalar)
                       m ==> mean anomaly. (real scalar)
         Returns:
          swiftest_orbel_ehybrid ==>  eccentric anomaly. (real scalar)

 ALGORITHM: Use Danby's quartic for 3 iterations.
            Eqn. is f(x) = x - e*sin(x+M). Note  that
      E = x + M. First guess is very good for e near 1.
      Need to first get M between 0. and PI and use

symmetry to return right answer if M between PI and 2PI REMARKS: Modifies M so that both E and M are in range (0,TWOPI) AUTHOR: M. Duncan DATE WRITTEN: May 25,1992. REVISIONS:



Code converted to Modern Fortran by David A. Minton Date: 2020-06-29
swiftest_orbel_EGET.F


 PURPOSE:  Solves Kepler's eqn.   e is ecc.   m is mean anomaly.

         Input:
                       e ==> eccentricity anomaly. (real scalar)
                       m ==> mean anomaly. (real scalar)
         Returns:
              swiftest_orbel_eget ==>  eccentric anomaly. (real scalar)

 ALGORITHM: Quartic convergence from Danby
 REMARKS: For results very near roundoff, give it M between
       0 and 2*pi. One can condition M before calling EGET
       by calling my double precision function MOD2PI(M).
       This is not done within the routine to speed it up
       and because it works fine even for large M.
 AUTHOR: M. Duncan
 DATE WRITTEN: May 7, 1992.
 REVISIONS: May 21, 1992.  Now have it go through EXACTLY two iterations
            with the premise that it will only be called if
      we have an ellipse with e between 0.15 and 0.8


Code converted to Modern Fortran by David A. Minton Date: 2020-06-29
swiftest_orbel_EHYBRID.F


 PURPOSE:  Solves Kepler's eqn.   e is ecc.   m is mean anomaly.

         Input:
                       e ==> eccentricity anomaly. (real scalar)
                       m ==> mean anomaly. (real scalar)
         Returns:
          swiftest_orbel_ehybrid ==>  eccentric anomaly. (real scalar)

 ALGORITHM: For e < 0.18 uses fast routine ESOLMD
      For larger e but less than 0.8, uses EGET
      For e > 0.8 uses EHIE
 REMARKS: Only EHIE brings M and E into range (0,TWOPI)
 AUTHOR: M. Duncan
 DATE WRITTEN: May 25,1992.
 REVISIONS: 2/26/93 hfl


Code converted to Modern Fortran by David A. Minton Date: 2020-06-29
swiftest_orbel_FHYBRID.F


 PURPOSE:  Solves Kepler's eqn. for hyperbola using hybrid approach.

         Input:
                       e ==> eccentricity anomaly. (real scalar)
                       n ==> hyperbola mean anomaly. (real scalar)
         Returns:
           swiftest_orbel_fhybrid ==>  eccentric anomaly. (real scalar)

 ALGORITHM: For abs(N) < 0.636*ecc -0.6 , use FLON
      For larger N, uses FGET
 REMARKS:
 AUTHOR: M. Duncan
 DATE WRITTEN: May 26,1992.
 REVISIONS::
 REVISIONS: 2/26/93 hfl


Uses

  • module~~s_swiftest_orbel~~UsesGraph module~s_swiftest_orbel s_swiftest_orbel module~swiftest swiftest module~s_swiftest_orbel->module~swiftest globals globals module~swiftest->globals module~encounter encounter module~swiftest->module~encounter module~collision collision module~swiftest->module~collision module~lambda_function lambda_function module~swiftest->module~lambda_function module~base base module~swiftest->module~base module~walltime walltime module~swiftest->module~walltime module~netcdf_io netcdf_io module~swiftest->module~netcdf_io module~operators operators module~swiftest->module~operators module~io_progress_bar io_progress_bar module~swiftest->module~io_progress_bar module~solver solver module~swiftest->module~solver module~encounter->globals module~encounter->module~base module~encounter->module~netcdf_io module~collision->globals module~collision->module~encounter module~collision->module~base module~lambda_function->globals module~base->globals module~coarray coarray module~base->module~coarray module~walltime->globals module~walltime->module~base module~netcdf_io->globals module~netcdf_io->module~base module~operators->globals module~io_progress_bar->globals module~io_progress_bar->module~base module~solver->globals module~solver->module~lambda_function module~solver->module~base ieee_exceptions ieee_exceptions module~solver->ieee_exceptions module~coarray->globals

Contents

None