mod_oasis_kinds.F90 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. !> Defines kinds for OASIS
  2. !-------------------------------------------------------------------
  3. ! BOP
  4. !
  5. ! !MODULE: mod_oasis_kinds
  6. MODULE mod_oasis_kinds
  7. !
  8. ! !USES:
  9. !
  10. ! !PUBLIC TYPES:
  11. IMPLICIT NONE
  12. public
  13. SAVE
  14. !
  15. ! !PUBLIC MEMBER FUNCTIONS:
  16. !
  17. ! !PARAMETERS:
  18. INTEGER, PARAMETER :: ic_sm = 8
  19. INTEGER, PARAMETER :: ic_med = 64
  20. INTEGER, PARAMETER :: ic_long = 256
  21. INTEGER, PARAMETER :: ic_xl = 1024
  22. INTEGER, PARAMETER :: ic_lvar = 80 ! max length of variable, model name, grid name
  23. INTEGER, PARAMETER :: ic_lvar2= 120 ! max length of partition
  24. INTEGER, PARAMETER :: ip_single_p = SELECTED_REAL_KIND(6,37)
  25. INTEGER, PARAMETER :: ip_double_p = SELECTED_REAL_KIND(12,307)
  26. INTEGER, PARAMETER :: ip_realwp_p = ip_double_p
  27. LOGICAL, PARAMETER :: ll_single = .FALSE.
  28. INTEGER, PARAMETER :: ip_i2_p = SELECTED_INT_KIND(4)
  29. INTEGER, PARAMETER :: ip_i4_p = SELECTED_INT_KIND(9)
  30. #ifdef SX
  31. INTEGER, PARAMETER :: ip_i8_p = SELECTED_INT_KIND(15)
  32. #else
  33. INTEGER, PARAMETER :: ip_i8_p = SELECTED_INT_KIND(18)
  34. #endif
  35. INTEGER, PARAMETER :: ip_intwp_p = ip_i4_p
  36. INTEGER, PARAMETER :: ip_r8_p = ip_double_p
  37. !
  38. ! !PUBLIC DATA MEMBERS:
  39. !
  40. ! !DESCRIPTION:
  41. ! This modules contains the parameters defining the precision used for
  42. ! real and integer variables
  43. !
  44. END MODULE mod_oasis_kinds