Module kindef includes a number of commonly used constants (for example, PI) that can be used in user subroutines. The variable descriptions are self-explanatory.
MODULE kindef USE precision SAVE INTEGER, PARAMETER :: INT1 = SELECTED_INT_KIND (2) INTEGER, PARAMETER :: INT2 = SELECTED_INT_KIND (4) INTEGER, PARAMETER :: REAL4 = SELECTED_REAL_KIND (6,30) INTEGER, PARAMETER :: REAL8H= SELECTED_REAL_KIND (12,300) INTEGER (INT4), PARAMETER :: LARGE = 999999 INTEGER (INT4), PARAMETER :: IUNDEF = 11111 INTEGER (INT4), PARAMETER :: MAXINT = 30000 INTEGER (INT4), PARAMETER :: MAXEXP = 20 REAL (REAL8), PARAMETER :: EPSLN1 = 1.0E-1_real8 REAL (REAL8), PARAMETER :: EPSLN2 = 1.0E-2_real8 REAL (REAL8), PARAMETER :: EPSLN3 = 1.0E-3_real8 REAL (REAL8), PARAMETER :: EPSLN4 = 1.0E-4_real8 REAL (REAL8), PARAMETER :: EPSLN5 = 1.0E-5_real8 REAL (REAL8), PARAMETER :: EPSLN6 = 1.0E-6_real8 REAL (REAL8), PARAMETER :: EPSLN7 = 1.0E-7_real8 REAL (REAL8), PARAMETER :: EPSLN8 = 1.0E-8_real8 REAL (REAL8), PARAMETER :: EPSLN9 = 1.0E-9_real8 REAL (REAL8), PARAMETER :: EPSLN10 = 1.0E-10_real8 REAL (REAL8), PARAMETER :: EPSLN11 = 1.0E-11_real8 REAL (REAL8), PARAMETER :: EPSLN12 = 1.0E-12_real8 REAL (REAL8), PARAMETER :: EPSLN13 = 1.0E-13_real8 REAL (REAL8), PARAMETER :: EPSLN14 = 1.0E-14_real8 REAL (REAL8), PARAMETER :: EPSLN15 = 1.0E-15_real8 REAL (REAL8), PARAMETER :: EPSLN16 = 1.0E-16_real8 REAL (REAL8), PARAMETER :: EPSLN17 = 1.0E-17_real8 REAL (REAL8), PARAMETER :: EPSLN18 = 1.0E-18_real8 REAL (REAL8), PARAMETER :: EPSLN19 = 1.0E-19_real8 REAL (REAL8), PARAMETER :: EPSLN20 = 1.0E-20_real8 REAL (REAL8), PARAMETER :: ZERO = 0.0_real8 REAL (REAL8), PARAMETER :: ONE = 1.0_real8 REAL (REAL8), PARAMETER :: TWO = 2.0_real8 REAL (REAL8), PARAMETER :: THREE = 3.0_real8 REAL (REAL8), PARAMETER :: FOUR = 4.0_real8 REAL (REAL8), PARAMETER :: FIVE = 5.0_real8 REAL (REAL8), PARAMETER :: SIX = 6.0_real8 REAL (REAL8), PARAMETER :: SEVEN = 7.0_real8 REAL (REAL8), PARAMETER :: EIGHT = 8.0_real8 REAL (REAL8), PARAMETER :: NINE = 9.0_real8 REAL (REAL8), PARAMETER :: TEN = 10.0_real8 REAL (REAL8), PARAMETER :: TWELVE = 12.0_real8 REAL (REAL8), PARAMETER :: SIXTEEN = 16.0_real8 REAL (REAL8), PARAMETER :: NINETY = NINE * TEN REAL (REAL8), PARAMETER :: HUNDRED = TEN * TEN REAL (REAL8), PARAMETER :: ONE80 = TWO * NINE * TEN REAL (REAL8), PARAMETER :: TWO70 = THREE * NINE * TEN REAL (REAL8), PARAMETER :: THREE60 = TWO * ONE80 REAL (REAL8), PARAMETER :: THRHUN = THREE * HUNDRED REAL (REAL8), PARAMETER :: THOUSAND = HUNDRED * TEN REAL (REAL8), PARAMETER :: TENTHOUS = HUNDRED * HUNDRED REAL (REAL8), PARAMETER :: PI = 3.14159265358979_real8 REAL (REAL8), PARAMETER :: SMALL = 1.0E-20_real8 REAL (REAL8), PARAMETER :: BIG = 1.01E20_real8 REAL (REAL8), PARAMETER :: BIG2 = TWO*BIG REAL (REAL8), PARAMETER :: UNDEF = 1.01E11_real8 REAL (REAL8), PARAMETER :: UNDEFP = TWO*UNDEF REAL (REAL8), PARAMETER :: CUTOFF = 1.0E-10_real8 REAL (REAL8), PARAMETER :: COMP_MAX = 3.0_real8 REAL (REAL8), PARAMETER :: K_VOID=1.E-5_real8 REAL (REAL8), PARAMETER :: HALF = ONE/TWO REAL (REAL8), PARAMETER :: THIRD = ONE/THREE REAL (REAL8), PARAMETER :: TWTHRD = TWO/THREE REAL (REAL8), PARAMETER :: QUART = ONE/FOUR REAL (REAL8), PARAMETER :: FIFTH = ONE/FIVE REAL (REAL8), PARAMETER :: FRTHRD = FOUR/THREE REAL (REAL8), PARAMETER :: SIXTH = ONE/SIX REAL (REAL8), PARAMETER :: OVER7 = ONE/SEVEN REAL (REAL8), PARAMETER :: OVER8 = ONE/EIGHT REAL (REAL8), PARAMETER :: OVER9 = ONE/NINE REAL (REAL8), PARAMETER :: TENTH = ONE/TEN REAL (REAL8), PARAMETER :: ONEME = ONE - SMALL REAL (REAL8), PARAMETER :: EPSCNV = EPSPP2 END MODULE kindef