phycst.f90 5.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. MODULE phycst
  2. !!======================================================================
  3. !! *** MODULE phycst ***
  4. !! Definition of of both ocean and ice parameters used in the code
  5. !!=====================================================================
  6. !! History : OPA ! 1990-10 (C. Levy - G. Madec) Original code
  7. !! 8.1 ! 1991-11 (G. Madec, M. Imbard) cosmetic changes
  8. !! NEMO 1.0 ! 2002-08 (G. Madec, C. Ethe) F90, add ice constants
  9. !! - ! 2006-08 (G. Madec) style
  10. !! 3.2 ! 2006-08 (S. Masson, G. Madec) suppress useless variables + style
  11. !!----------------------------------------------------------------------
  12. !!----------------------------------------------------------------------
  13. !! phy_cst : define and print physical constant and domain parameters
  14. !!----------------------------------------------------------------------
  15. use par_kind
  16. IMPLICIT NONE
  17. PRIVATE
  18. PUBLIC phy_cst ! routine called by inipar.F90
  19. REAL(wp), PUBLIC :: rpi = 3.141592653589793_wp !: pi
  20. REAL(wp), PUBLIC :: rad = 3.141592653589793_wp / 180._wp !: conversion from degre into radian
  21. REAL(wp), PUBLIC :: rsmall = 0.5 * EPSILON( 1.e0 ) !: smallest real computer value
  22. REAL(wp), PUBLIC :: rday = 24.*60.*60. !: day (s)
  23. REAL(wp), PUBLIC :: rsiyea !: sideral year (s)
  24. REAL(wp), PUBLIC :: rsiday !: sideral day (s)
  25. REAL(wp), PUBLIC :: raamo = 12._wp !: number of months in one year
  26. REAL(wp), PUBLIC :: rjjhh = 24._wp !: number of hours in one day
  27. REAL(wp), PUBLIC :: rhhmm = 60._wp !: number of minutes in one hour
  28. REAL(wp), PUBLIC :: rmmss = 60._wp !: number of seconds in one minute
  29. !! REAL(wp), PUBLIC :: omega = 7.292115083046061e-5_wp , & !: change the last digit!
  30. REAL(wp), PUBLIC :: omega !: earth rotation parameter
  31. REAL(wp), PUBLIC :: ra = 6371229._wp !: earth radius (meter)
  32. REAL(wp), PUBLIC :: grav = 9.80665_wp !: gravity (m/s2)
  33. REAL(wp), PUBLIC :: rtt = 273.16_wp !: triple point of temperature (Kelvin)
  34. REAL(wp), PUBLIC :: rt0 = 273.15_wp !: freezing point of water (Kelvin)
  35. REAL(wp), PUBLIC :: rt0_snow = 273.15_wp !: melting point of snow (Kelvin)
  36. REAL(wp), PUBLIC :: rt0_ice = 273.05_wp !: melting point of ice (Kelvin)
  37. REAL(wp), PUBLIC :: rau0 = 1020._wp !: reference volumic mass (density) (kg/m3)
  38. REAL(wp), PUBLIC :: rau0r !: reference specific volume (m3/kg)
  39. REAL(wp), PUBLIC :: rcp = 4.e+3_wp !: ocean specific heat
  40. REAL(wp), PUBLIC :: ro0cpr !: = 1. / ( rau0 * rcp )
  41. REAL(wp), PUBLIC :: rcdsn = 0.22_wp !: conductivity of the snow
  42. REAL(wp), PUBLIC :: rcdic = 2.034396_wp !: conductivity of the ice
  43. REAL(wp), PUBLIC :: rcpsn = 6.9069e+5_wp !: density times specific heat for snow
  44. REAL(wp), PUBLIC :: rcpic = 1.8837e+6_wp !: volumetric latent heat fusion of sea ice
  45. REAL(wp), PUBLIC :: xlsn = 110.121e+6_wp !: volumetric latent heat fusion of snow
  46. REAL(wp), PUBLIC :: xlic = 300.33e+6_wp !: volumetric latent heat fusion of ice
  47. REAL(wp), PUBLIC :: xsn = 2.8e+6 !: latent heat of sublimation of snow
  48. REAL(wp), PUBLIC :: rhoic = 900._wp !: volumic mass of sea ice (kg/m3)
  49. REAL(wp), PUBLIC :: rhosn = 330._wp !: volumic mass of snow (kg/m3)
  50. REAL(wp), PUBLIC :: emic = 0.97_wp !: emissivity of snow or ice
  51. REAL(wp), PUBLIC :: sice = 6.0_wp !: reference salinity of ice (psu)
  52. REAL(wp), PUBLIC :: soce = 34.7_wp !: reference salinity of sea (psu)
  53. REAL(wp), PUBLIC :: cevap = 2.5e+6_wp !: latent heat of evaporation (water)
  54. REAL(wp), PUBLIC :: srgamma = 0.9_wp !: correction factor for solar radiation (Oberhuber, 1974)
  55. REAL(wp), PUBLIC :: vkarmn = 0.4_wp !: von Karman constant
  56. REAL(wp), PUBLIC :: stefan = 5.67e-8_wp !: Stefan-Boltzmann constant
  57. !!----------------------------------------------------------------------
  58. !! NEMO/OPA 3.2 , LOCEAN-IPSL (2009)
  59. !! $Id: phycst.F90 1932 2010-06-15 10:28:20Z smasson $
  60. !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
  61. !!----------------------------------------------------------------------
  62. CONTAINS
  63. SUBROUTINE phy_cst
  64. !!----------------------------------------------------------------------
  65. !! *** ROUTINE phy_cst ***
  66. !!
  67. !! ** Purpose : Print model parameters and set and print the constants
  68. !!----------------------------------------------------------------------
  69. CHARACTER (len=64) :: cform = "(A12, 3(A13, I7) )"
  70. !!----------------------------------------------------------------------
  71. ! ! Define additional parameters
  72. rsiyea = 365.25 * rday * 2. * rpi / 6.283076
  73. rsiday = rday / ( 1. + rday / rsiyea )
  74. omega = 2. * rpi / rsiday
  75. rau0r = 1. / rau0
  76. ro0cpr = 1. / ( rau0 * rcp )
  77. END SUBROUTINE phy_cst
  78. !!======================================================================
  79. END MODULE phycst