const_ec_v.F90 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. !#################################################################
  2. !
  3. ! NAME
  4. ! const_ec_v - vertical level definition of the ecwmf model
  5. !
  6. ! USAGE
  7. ! use const_ec_v
  8. !
  9. !### macro's #####################################################
  10. !
  11. #define TRACEBACK write (gol,'("in ",a," (",a,", line",i5,")")') rname, __FILE__, __LINE__; call goErr
  12. #define IF_NOTOK_RETURN(action) if (status/=0) then; TRACEBACK; action; return; end if
  13. #define IF_ERROR_RETURN(action) if (status> 0) then; TRACEBACK; action; return; end if
  14. !
  15. #include "tm5.inc"
  16. !
  17. !#################################################################
  18. module const_ec_v
  19. use GO, only : gol, goPr, goErr
  20. implicit none
  21. ! --- in/out -----------------------------
  22. private
  23. public :: lme, a_ec, b_ec
  24. ! --- const --------------------------------
  25. ! number of levels:
  26. integer, parameter :: lme = 60
  27. ! Hybrid coordinate coefficients at half level interfaces,
  28. ! specifying 60 vertical ECMWF levels.
  29. ! Coefficient a is given in [Pa] .
  30. ! Pressure at a certain hybrid level is defined as: p = a + b.SP
  31. real, parameter :: a_ec(0:lme) = (/ &
  32. 0.000000, 20.000000, 38.425343, 63.647804, &
  33. 95.636963, 134.483307, 180.584351, 234.779053, &
  34. 298.495789, 373.971924, 464.618134, 575.651001, &
  35. 713.218079, 883.660522, 1094.834717, 1356.474609, &
  36. 1680.640259, 2082.273926, 2579.888672, 3196.421631, &
  37. 3960.291504, 4906.708496, 6018.019531, 7306.631348, &
  38. 8765.053711, 10376.126953, 12077.446289, 13775.325195, &
  39. 15379.805664, 16819.474609, 18045.183594, 19027.695313, &
  40. 19755.109375, 20222.205078, 20429.863281, 20384.480469, &
  41. 20097.402344, 19584.330078, 18864.750000, 17961.357422, &
  42. 16899.468750, 15706.447266, 14411.124023, 13043.218750, &
  43. 11632.758789, 10209.500977, 8802.356445, 7438.803223, &
  44. 6144.314941, 4941.778320, 3850.913330, 2887.696533, &
  45. 2063.779785, 1385.912598, 855.361755, 467.333588, &
  46. 210.393890, 65.889244, 7.367743, 0.000000, &
  47. 0.000000/)
  48. real, parameter :: b_ec(0:lme) = (/ &
  49. 0.00000000, 0.00000000, 0.00000000, 0.00000000, &
  50. 0.00000000, 0.00000000, 0.00000000, 0.00000000, &
  51. 0.00000000, 0.00000000, 0.00000000, 0.00000000, &
  52. 0.00000000, 0.00000000, 0.00000000, 0.00000000, &
  53. 0.00000000, 0.00000000, 0.00000000, 0.00000000, &
  54. 0.00000000, 0.00000000, 0.00000000, 0.00000000, &
  55. 0.00007582, 0.00046139, 0.00181516, 0.00508112, &
  56. 0.01114291, 0.02067788, 0.03412116, 0.05169041, &
  57. 0.07353383, 0.09967469, 0.13002251, 0.16438432, &
  58. 0.20247590, 0.24393314, 0.28832296, 0.33515489, &
  59. 0.38389215, 0.43396294, 0.48477158, 0.53570992, &
  60. 0.58616841, 0.63554746, 0.68326861, 0.72878581, &
  61. 0.77159661, 0.81125343, 0.84737492, 0.87965691, &
  62. 0.90788388, 0.93194032, 0.95182151, 0.96764523, &
  63. 0.97966272, 0.98827010, 0.99401945, 0.99763012, &
  64. 1.00000000 /)
  65. end module const_ec_v