anchor.diff:      module procedure xyz2latlon_double, xyz2latlon_quad_double, xyz2latlon_quad
     end interface
   
  -  real(kind=8), public :: PI   !< the circular constant \f$\pi\f$
  -  real(kind=16), public :: PIQ !< the circular constant \f$\pi\f$ in quadruple precision.
  -  real(kind=8), public :: D2R  !< coefficient for degree to radian.
  +  real(kind=8),  public, save :: PI !< the circular constant \f$\pi\f$
  +  real(kind=16), public, save :: PIQ !< the circular constant \f$\pi\f$ in quadruple precision.
  +  real(kind=8),  public, save :: D2R !< coefficient for degree to radian.
   
     logical,private :: is_initialized = .false.
   
   contains
  -
  -subroutine write_PI(test_str)
  -  implicit none
  -  character(len=*), intent(IN) :: test_str
  -
  -  write(0,*) trim(test_str)
  -  write(0,*) "write_PI ", PI
  -
  -end subroutine write_PI
   
   !===================================================================================
   !> initialize this library
  
positive.code:   real(kind=8), intent(OUT) :: lat !< latitude [deg]
    real(kind=8), intent(OUT) :: lon !< longitude [deg]
  
    lat = atan2(z, sqrt(x*x+y*y))
    !lon = acos(x/cos(lat))
    lon = acos(x/sqrt(x*x+y*y))
  
negative.code: 
  module jcf_sphere_lib
  implicit none
  
    public :: cal_inverse_matrix
    public :: latlon2xyz
  