precision_grillix_m.f90 Source File


Contents


Source Code

module precision_grillix_m
    !! Definition of precision for GRILLIX   

    ! Import precision from PARALLAX
    use precision_m, only : FP, MPI_FP, NF90_FP, FP_EPS, FP_NAN, FP_SMALLEST_EXP, FP_LARGEST

    implicit none
    save

    integer, public, parameter :: GP = FP
    !! GRILLIX precision
    integer, public, parameter :: MPI_GP = MPI_FP
    !! GRILLIX MPI precision
    real(GP), public, parameter :: GP_EPS = FP_EPS
    !! Machine epsilon for GRILLIX precision
    real(GP), public, parameter :: GP_NAN = FP_NAN
    !! NaN for GRILLIX precision
    real(GP), public, parameter :: GP_SMALLEST_EXP = FP_SMALLEST_EXP
    !! Smallest allowable exponent for the exp function for GRILLIX precision
    real(GP), public, parameter :: GP_LARGEST = FP_LARGEST
    !! Largest allowable number for GRILLIX precision
    real(GP), public, parameter :: GP_LARGE = GP_LARGEST*(10.0_GP**(-log10(GP_LARGEST)*0.7_GP))
    !! A large number that still allows floating point operations (For double precision, roughly 10^92)
end module precision_grillix_m