!*****************
! File Description:  
!   
! Creator: Hoang-Trong Minh Tuan 
! 
! Rev: 0.1 
! Update: 
!    x.x: 
!*******************/
MODULE PRECISIONINFO
  IMPLICIT NONE
  ! change 8 to 16 or a higher value to have more decimal numbers
  ! use machine-compiler-specific double precision
  !     INTEGER, PARAMETER :: dp = KIND(1.d0)
  ! double are twice the precision of single type
  !     integer, parameter ::                  &
  !         sp = KIND(1.0),                    &
  !         dp = SELECTED_REAL_KIND(2*PRECISION(1.0_sp)),  &
  ! use precision of 16-, 32-, and 64-bit reals
  !     INTEGER, PARAMETER :: sp = SELECTED_REAL_KIND(6, 37)
  !     INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(15, 307)
  !     INTEGER, PARAMETER :: qp = SELECTED_REAL_KIND(33, 4931)
  
  INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(P=13, r=200)
  INTEGER, PARAMETER :: real8 = SELECTED_REAL_KIND(P=13, r=200)
  
  ! EPS = a close-to-zero value
  REAL(KIND=dp), PARAMETER :: EPS = 1.d-100
  SAVE
END MODULE PRECISIONINFO
