FRAC
Fractional part of a number.
 
 
RFRAC
Rational FRAC.
 
 
CINT
Complex INT.
 
 
RINT
Rational INT.
 
 
RNINT
Rational NINT.
 
 
CMOD
Complex MOD.
 
 
RMOD
Rational MOD.
 
 
CUBEROOT
Computes the cube root.
 
 
CLOG10
Complex common logarithm.
 
 
TANHC
Tanhc function.
 
 
CTANHC
Complex tanhc function.
 
 
ERROR FUNCTIONS
From http://www.netlib.org/specfun
DERFCX
 
 
H2HMSD
Convert decimal hours to hours, minutes, and seconds. Seconds are returned as a real value.
 
 
HMS2H
Convert hours, minutes, and seconds to decimal hours.
 
 
RIEMANNZETA
Riemann zeta function.
Algorithm from "Atlas for Computing Mathematical Functions" by W.J. Thompson, Wiley, 1997.
 
 
REDUCE
Reduce an angle to the range [angle_min, angle_max).
 
 
KEPLER
Solves the elliptical Kepler's equation by the Markley method.
 
      
    
  
    
      
  
Uses 
      
      
      
      
  
       
      
      
      
      
  
module~~funcs~~UsesGraph 
 
module~funcs 
 
funcs 
 
module~bessel 
 
bessel 
 
 
 
module~funcs->module~bessel 
 
 
 
module~stats 
 
stats 
 
 
 
module~funcs->module~stats 
 
 
 
assert 
 
assert 
 
module~funcs->assert 
 
 
iso_fortran_env 
 
iso_fortran_env 
 
 
 
module~funcs->iso_fortran_env 
 
 
 
module~hyper 
 
hyper 
 
 
 
module~funcs->module~hyper 
 
 
 
module~fgamma 
 
fgamma 
 
 
 
module~funcs->module~fgamma 
 
 
 
module~trig 
 
trig 
 
 
 
module~funcs->module~trig 
 
 
 
module~rat 
 
rat 
 
 
 
module~funcs->module~rat 
 
 
 
module~bessel->assert 
 
 
 
module~rjk 
 
rjk 
 
 
 
module~bessel->module~rjk 
 
 
 
module~i1 
 
i1 
 
 
 
module~bessel->module~i1 
 
 
 
module~k0 
 
k0 
 
 
 
module~bessel->module~k0 
 
 
 
module~rjb 
 
rjb 
 
 
 
module~bessel->module~rjb 
 
 
 
module~i0 
 
i0 
 
 
 
module~bessel->module~i0 
 
 
 
module~k1 
 
k1 
 
 
 
module~bessel->module~k1 
 
 
 
module~rjy 
 
rjy 
 
 
 
module~bessel->module~rjy 
 
 
 
module~rji 
 
rji 
 
 
 
module~bessel->module~rji 
 
 
 
module~stats->assert 
 
 
module~hyper->assert 
 
 
 
 
module~hyper->iso_fortran_env 
 
 
 
module~hyper->module~rat 
 
 
 
ieee_arithmetic 
 
ieee_arithmetic 
 
 
 
module~hyper->ieee_arithmetic 
 
 
 
module~global 
 
GLOBAL 
 
 
 
module~hyper->module~global 
 
 
 
module~fgamma->assert 
 
 
module~trig->assert 
 
 
module~rat->assert 
 
 
 
module~rat->iso_fortran_env 
 
 
 
module~global->assert 
 
 
 
 
 
 
    Nodes of different colours represent the following: 
    
Graph Key 
 
Module 
 
Module 
 
Submodule 
 
Submodule 
 
Subroutine 
 
Subroutine 
 
Function 
 
Function 
 
Program 
 
Program 
 
This Page's Entity 
 
This Page's Entity 
 
 
 
    
    Solid arrows point from a submodule to the (sub)module which it is
    descended from. Dashed arrows point from a module or program unit to 
    modules which it uses.
    
      
       
      
       
     
    
    
    
    
      
  
Used by 
      
      
  
  
  
    
module~~funcs~~UsedByGraph 
 
module~funcs 
 
funcs 
 
program~rpn 
 
RPN 
 
 
 
program~rpn->module~funcs 
 
 
 
module~stackops 
 
stackops 
 
 
 
program~rpn->module~stackops 
 
 
 
 
module~evals 
 
evals 
 
 
 
program~rpn->module~evals 
 
 
 
module~stackops->module~funcs 
 
 
 
module~evals->module~funcs 
 
 
 
module~evals->module~stackops 
 
 
 
 
 
 
    Nodes of different colours represent the following: 
    
Graph Key 
 
Module 
 
Module 
 
Submodule 
 
Submodule 
 
Subroutine 
 
Subroutine 
 
Function 
 
Function 
 
Program 
 
Program 
 
This Page's Entity 
 
This Page's Entity 
 
 
 
    
    Solid arrows point from a submodule to the (sub)module which it is
    descended from. Dashed arrows point from a module or program unit to 
    modules which it uses.
    
      
   
  
       
     
    
    
    
    
    
    
    
    Variables 
    
Type Visibility 
Attributes Name Initial  
  
  
  
  
  
   real(kind=wp), 
  
  private, 
  parameter :: 
  xinf  = huge(0._wp)  
  
 
  
  
  
  
  
   real(kind=wp), 
  
  private, 
  parameter :: 
  xmax  = xinf  
  
 
  
  
  
  
  
   real(kind=wp), 
  
  private, 
  parameter :: 
  xmin  = tiny(0._wp)  
  
 
  
  
  
  
  
   complex(kind=wp), 
  
  private, 
  parameter :: 
  c0  = (0._wp, 0._wp)  
  
 
 
     
    
    
    
    
    
    
    
   Interfaces 
   
     
  
  
  
  
  
  
    
    
    
    
public elemental function CUBEROOT_r (X) result(cuberoot)
    
    
   
 
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   real(kind=wp), 
  intent(in) 
   
  
  :: 
  X  
  
 
 
      
    
    
  
  
  
  
     Return Value real(kind=wp)
    
  
    
     
  
    
    
    
    
public elemental function CUBEROOT_c (Z) result(cuberoot)
    
    
   
 
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   complex(kind=wp), 
  intent(in) 
   
  
  :: 
  Z  
  
 
 
      
    
    
  
  
  
  
     Return Value complex(kind=wp)
    
  
    
     
  
  
   
 
    
     
  
  
  
  
  
  
    
    
    
    
public elemental function FRAC_r (X) result(Y)
    
    
   
 
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   real(kind=wp), 
  intent(in) 
   
  
  :: 
  X  
  
 
 
      
    
    
  
  
  
  
     Return Value real(kind=wp)
    
  
    
     
  
    
    
    
    
public elemental function FRAC_c (X) result(frac)
    
    
   
 
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   complex(kind=wp), 
  intent(in) 
   
  
  :: 
  X  
  
 
 
      
    
    
  
  
  
  
     Return Value complex(kind=wp)
    
  
    
     
  
  
   
 
    
     
  
  
  
  
  
  
    
    
    
    
public elemental function SINC_r (X) result(sinc)
    
    
   
 
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   real(kind=wp), 
  intent(in) 
   
  
  :: 
  X  
  
 
 
      
    
    
  
  
  
  
     Return Value real(kind=wp)
    
  
    
     
  
    
    
    
    
public elemental function SINC_c (Z) result(sinc)
    
    
   
 
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   complex(kind=wp), 
  intent(in) 
   
  
  :: 
  Z  
  
 
 
      
    
    
  
  
  
  
     Return Value complex(kind=wp)
    
  
    
     
  
  
   
 
    
     
  
  
  
  
  
  
    
    
    
    
public elemental function TANC_r (X) result(tanc)
    
    
   
 
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   real(kind=wp), 
  intent(in) 
   
  
  :: 
  X  
  
 
 
      
    
    
  
  
  
  
     Return Value real(kind=wp)
    
  
    
     
  
    
    
    
    
public elemental function TANC_c (Z) result(tanc)
    
    
   
 
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   complex(kind=wp), 
  intent(in) 
   
  
  :: 
  Z  
  
 
 
      
    
    
  
  
  
  
     Return Value complex(kind=wp)
    
  
    
     
  
  
   
 
    
     
  
    
    
    
    
    
     
    
    Functions 
    
    
  
  
public elemental function FRAC_r (X) result(Y)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   real(kind=wp), 
  intent(in) 
   
  
  :: 
  X  
  
 
 
      
    
    
  
  
  
  
     Return Value real(kind=wp)
    
  
    
   
   
    
    
  
  
public elemental function FRAC_c (X) result(frac)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   complex(kind=wp), 
  intent(in) 
   
  
  :: 
  X  
  
 
 
      
    
    
  
  
  
  
     Return Value complex(kind=wp)
    
  
    
   
   
    
    
  
  
public elemental function CINT (X) result(Y)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   complex(kind=wp), 
  intent(in) 
   
  
  :: 
  X  
  
 
 
      
    
    
  
  
  
  
     Return Value complex(kind=wp)
    
  
    
   
   
    
    
  
  
public elemental function RINT (N, D) result(R)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   integer, 
  intent(in) 
   
  
  :: 
  N  
  
 
  
  
  
  
  
   integer, 
  intent(in) 
   
  
  :: 
  D  
  
 
 
      
    
    
  
  
  
  
     Return Value integer
    
  
    
   
   
    
    
  
  
public elemental function CMOD (X, Y) result(Z)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   complex(kind=wp), 
  intent(in) 
   
  
  :: 
  X  
  
 
  
  
  
  
  
   complex(kind=wp), 
  intent(in) 
   
  
  :: 
  Y  
  
 
 
      
    
    
  
  
  
  
     Return Value complex(kind=wp)
    
  
    
   
   
    
    
  
  
public elemental function CUBEROOT_r (X) result(cuberoot)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   real(kind=wp), 
  intent(in) 
   
  
  :: 
  X  
  
 
 
      
    
    
  
  
  
  
     Return Value real(kind=wp)
    
  
    
   
   
    
    
  
  
public elemental function CUBEROOT_c (Z) result(cuberoot)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   complex(kind=wp), 
  intent(in) 
   
  
  :: 
  Z  
  
 
 
      
    
    
  
  
  
  
     Return Value complex(kind=wp)
    
  
    
   
   
    
    
  
  
public elemental function CLOG10 (X)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   complex(kind=wp), 
  intent(in) 
   
  
  :: 
  X  
  
 
 
      
    
    
  
  
  
  
     Return Value complex(kind=wp)
    
  
    
   
   
    
    
  
  
public elemental function LOG1P (X) result(Y)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   real(kind=wp), 
  intent(in) 
   
  
  :: 
  X  
  
 
 
      
    
    
  
  
  
  
     Return Value real(kind=wp)
    
  
    
   
   
    
    
  
  
public elemental function SINC_r (X) result(sinc)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   real(kind=wp), 
  intent(in) 
   
  
  :: 
  X  
  
 
 
      
    
    
  
  
  
  
     Return Value real(kind=wp)
    
  
    
   
   
    
    
  
  
public elemental function SINC_c (Z) result(sinc)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   complex(kind=wp), 
  intent(in) 
   
  
  :: 
  Z  
  
 
 
      
    
    
  
  
  
  
     Return Value complex(kind=wp)
    
  
    
   
   
    
    
  
  
public elemental function TANC_r (X) result(tanc)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   real(kind=wp), 
  intent(in) 
   
  
  :: 
  X  
  
 
 
      
    
    
  
  
  
  
     Return Value real(kind=wp)
    
  
    
   
   
    
    
  
  
public elemental function TANC_c (Z) result(tanc)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   complex(kind=wp), 
  intent(in) 
   
  
  :: 
  Z  
  
 
 
      
    
    
  
  
  
  
     Return Value complex(kind=wp)
    
  
    
   
   
    
    
  
  
public elemental function SINHC (X) result(Y)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   real(kind=wp), 
  intent(in) 
   
  
  :: 
  X  
  
 
 
      
    
    
  
  
  
  
     Return Value real(kind=wp)
    
  
    
   
   
    
    
  
  
public elemental function CSINHC (Z) result(Y)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   complex(kind=wp), 
  intent(in) 
   
  
  :: 
  Z  
  
 
 
      
    
    
  
  
  
  
     Return Value complex(kind=wp)
    
  
    
   
   
    
    
  
  
public elemental function TANHC (X) result(Y)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   real(kind=wp), 
  intent(in) 
   
  
  :: 
  X  
  
 
 
      
    
    
  
  
  
  
     Return Value real(kind=wp)
    
  
    
   
   
    
    
  
  
public elemental function CTANHC (Z) result(Y)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   complex(kind=wp), 
  intent(in) 
   
  
  :: 
  Z  
  
 
 
      
    
    
  
  
  
  
     Return Value complex(kind=wp)
    
  
    
   
   
    
    
  
  
public elemental function ERFCX (X)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   real(kind=wp), 
  intent(in) 
   
  
  :: 
  X  
  
 
 
      
    
    
  
  
  
  
     Return Value real(kind=wp)
    
  
    
   
   
    
    
  
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   real(kind=wp), 
  intent(in) 
   
  
  :: 
  S  
  
 
  
  
  
  
  
   real(kind=wp), 
  intent(in) 
   
  
  :: 
  EPS  
  
 
 
      
    
    
  
  
  
  
     Return Value real(kind=wp)
    
  
    
   
   
    
    
  
  
public elemental function REDUCE (THETA, ANGLE_MIN) result(RHO)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   real(kind=wp), 
  intent(in) 
   
  
  :: 
  THETA  
  
 
  
  
  
  
  
   real(kind=wp), 
  intent(in) 
   
  
  :: 
  ANGLE_MIN  
  
 
 
      
    
    
  
  
  
  
     Return Value real(kind=wp)
    
  
    
   
   
    
    
  
  
public elemental function KEPLER (MA, ECC) result(E5)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   real(kind=wp), 
  intent(in) 
   
  
  :: 
  MA  
  
 
  
  
  
  
  
   real(kind=wp), 
  intent(in) 
   
  
  :: 
  ECC  
  
 
 
      
    
    
  
  
  
  
     Return Value real(kind=wp)
    
  
    
   
   
    
    
  
  
public elemental function toLower (str)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   character(len=*), 
  intent(in) 
   
  
  :: 
  str  
  
 
 
      
    
    
  
  
  
  
     Return Value character(len=len(str))
    
  
    
   
   
    
    
  
  
public elemental function toUpper (str)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   character(len=*), 
  intent(in) 
   
  
  :: 
  str  
  
 
 
      
    
    
  
  
  
  
     Return Value character(len=len(str))
    
  
    
   
   
    
     
    
    
    
    
    Subroutines 
    
    
  
  
public elemental subroutine RFRAC (N, D, NR, DR)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   integer, 
  intent(in) 
   
  
  :: 
  N  
  
 
  
  
  
  
  
   integer, 
  intent(in) 
   
  
  :: 
  D  
  
 
  
  
  
  
  
   integer, 
  intent(out) 
   
  
  :: 
  NR  
  
 
  
  
  
  
  
   integer, 
  intent(out) 
   
  
  :: 
  DR  
  
 
 
      
    
    
   
   
    
    
  
  
public elemental subroutine RNINT (N, D)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   integer, 
  intent(inout) 
   
  
  :: 
  N  
  
 
  
  
  
  
  
   integer, 
  intent(inout) 
   
  
  :: 
  D  
  
 
 
      
    
    
   
   
    
    
  
  
public elemental subroutine RMOD (N1, D1, N2, D2, NR, DR)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   integer, 
  intent(in) 
   
  
  :: 
  N1  
  
 
  
  
  
  
  
   integer, 
  intent(in) 
   
  
  :: 
  D1  
  
 
  
  
  
  
  
   integer, 
  intent(in) 
   
  
  :: 
  N2  
  
 
  
  
  
  
  
   integer, 
  intent(in) 
   
  
  :: 
  D2  
  
 
  
  
  
  
  
   integer, 
  intent(out) 
   
  
  :: 
  NR  
  
 
  
  
  
  
  
   integer, 
  intent(out) 
   
  
  :: 
  DR  
  
 
 
      
    
    
   
   
    
    
  
  
public elemental subroutine H2HMSD (DHR, IHR, IMIN, SEC)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   real(kind=wp), 
  intent(in) 
   
  
  :: 
  DHR  
  
 
  
  
  
  
  
   integer, 
  intent(out) 
   
  
  :: 
  IHR  
  
 
  
  
  
  
  
   integer, 
  intent(out) 
   
  
  :: 
  IMIN  
  
 
  
  
  
  
  
   real(kind=wp), 
  intent(out) 
   
  
  :: 
  SEC  
  
 
 
      
    
    
   
   
    
    
  
  
public elemental subroutine HMS2H (IHR, IMIN, SEC, DHR)
    
    
   
  
  
       
    
    
    Arguments 
    
      
      
Type 
Intent Optional 
Attributes Name  
  
  
  
  
  
   integer, 
  intent(in) 
   
  
  :: 
  IHR  
  
 
  
  
  
  
  
   integer, 
  intent(in) 
   
  
  :: 
  IMIN  
  
 
  
  
  
  
  
   real(kind=wp), 
  intent(in) 
   
  
  :: 
  SEC  
  
 
  
  
  
  
  
   real(kind=wp), 
  intent(out) 
   
  
  :: 
  DHR