- Timestamp:
- 2012-11-21T14:19:18+01:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_NOC_2012_rev3555/NEMOGCM/NEMO/OPA_SRC/DOM/phycst.F90
r3294 r3625 27 27 REAL(wp), PUBLIC :: rsmall = 0.5 * EPSILON( 1.e0 ) !: smallest real computer value 28 28 29 REAL(wp), PUBLIC :: rday = 24.*60.*60. !: day (s) 30 REAL(wp), PUBLIC :: rsiyea !: sideral year (s) 31 REAL(wp), PUBLIC :: rsiday !: sideral day (s) 32 REAL(wp), PUBLIC :: raamo = 12._wp !: number of months in one year 33 REAL(wp), PUBLIC :: rjjhh = 24._wp !: number of hours in one day 34 REAL(wp), PUBLIC :: rhhmm = 60._wp !: number of minutes in one hour 35 REAL(wp), PUBLIC :: rmmss = 60._wp !: number of seconds in one minute 36 !! REAL(wp), PUBLIC :: omega = 7.292115083046061e-5_wp , & !: change the last digit! 37 REAL(wp), PUBLIC :: omega !: earth rotation parameter 38 REAL(wp), PUBLIC :: ra = 6371229._wp !: earth radius (meter) 39 REAL(wp), PUBLIC :: grav = 9.80665_wp !: gravity (m/s2) 40 41 REAL(wp), PUBLIC :: rtt = 273.16_wp !: triple point of temperature (Kelvin) 42 REAL(wp), PUBLIC :: rt0 = 273.15_wp !: freezing point of water (Kelvin) 29 REAL(wp), PUBLIC :: rday = 24.*60.*60. !: day [s] 30 REAL(wp), PUBLIC :: rsiyea !: sideral year [s] 31 REAL(wp), PUBLIC :: rsiday !: sideral day [s] 32 REAL(wp), PUBLIC :: raamo = 12._wp !: number of months in one year 33 REAL(wp), PUBLIC :: rjjhh = 24._wp !: number of hours in one day 34 REAL(wp), PUBLIC :: rhhmm = 60._wp !: number of minutes in one hour 35 REAL(wp), PUBLIC :: rmmss = 60._wp !: number of seconds in one minute 36 REAL(wp), PUBLIC :: omega !: earth rotation parameter [s-1] 37 REAL(wp), PUBLIC :: ra = 6371229._wp !: earth radius [m] 38 REAL(wp), PUBLIC :: grav = 9.80665_wp !: gravity [m/s2] 39 40 REAL(wp), PUBLIC :: rtt = 273.16_wp !: triple point of temperature [Kelvin] 41 REAL(wp), PUBLIC :: rt0 = 273.15_wp !: freezing point of fresh water [Kelvin] 43 42 #if defined key_lim3 44 REAL(wp), PUBLIC :: rt0_snow = 273.16_wp !: melting point of snow (Kelvin) 45 REAL(wp), PUBLIC :: rt0_ice = 273.16_wp !: melting point of ice (Kelvin) 46 #else 47 REAL(wp), PUBLIC :: rt0_snow = 273.15_wp !: melting point of snow (Kelvin) 48 REAL(wp), PUBLIC :: rt0_ice = 273.05_wp !: melting point of ice (Kelvin) 49 #endif 50 43 REAL(wp), PUBLIC :: rt0_snow = 273.16_wp !: melting point of snow [Kelvin] 44 REAL(wp), PUBLIC :: rt0_ice = 273.16_wp !: melting point of ice [Kelvin] 45 #else 46 REAL(wp), PUBLIC :: rt0_snow = 273.15_wp !: melting point of snow [Kelvin] 47 REAL(wp), PUBLIC :: rt0_ice = 273.05_wp !: melting point of ice [Kelvin] 48 #endif 51 49 #if defined key_cice 52 REAL(wp), PUBLIC :: rau0 = 1026._wp !: reference volumic mass (density) (kg/m3) 53 #else 54 REAL(wp), PUBLIC :: rau0 = 1035._wp !: reference volumic mass (density) (kg/m3) 55 #endif 56 REAL(wp), PUBLIC :: rau0r !: reference specific volume (m3/kg) 57 REAL(wp), PUBLIC :: rcp = 4.e+3_wp !: ocean specific heat 58 REAL(wp), PUBLIC :: ro0cpr !: = 1. / ( rau0 * rcp ) 50 REAL(wp), PUBLIC :: rau0 = 1026._wp !: volumic mass of reference [kg/m3] 51 #else 52 REAL(wp), PUBLIC :: rau0 = 1035._wp !: volumic mass of reference [kg/m3] 53 #endif 54 REAL(wp), PUBLIC :: r1_rau0 !: = 1. / rau0 [m3/kg] 55 REAL(wp), PUBLIC :: rauw = 1000._wp !: volumic mass of pure water [m3/kg] 56 REAL(wp), PUBLIC :: rcp = 4.e3_wp !: ocean specific heat [J/Kelvin] 57 REAL(wp), PUBLIC :: r1_rcp !: = 1. / rcp [Kelvin/J] 58 REAL(wp), PUBLIC :: r1_rau0_rcp !: = 1. / ( rau0 * rcp ) 59 60 REAL(wp), PUBLIC :: rhosn = 330._wp !: volumic mass of snow [kg/m3] 61 REAL(wp), PUBLIC :: emic = 0.97_wp !: emissivity of snow or ice 62 REAL(wp), PUBLIC :: sice = 6.0_wp !: salinity of ice [psu] 63 REAL(wp), PUBLIC :: soce = 34.7_wp !: salinity of sea [psu] 64 REAL(wp), PUBLIC :: cevap = 2.5e+6_wp !: latent heat of evaporation (water) 65 REAL(wp), PUBLIC :: srgamma = 0.9_wp !: correction factor for solar radiation (Oberhuber, 1974) 66 REAL(wp), PUBLIC :: vkarmn = 0.4_wp !: von Karman constant 67 REAL(wp), PUBLIC :: stefan = 5.67e-8_wp !: Stefan-Boltzmann constant 59 68 60 69 #if defined key_lim3 || defined key_cice 61 REAL(wp), PUBLIC :: rcdsn = 0.31_wp !: thermal conductivity of snow 62 REAL(wp), PUBLIC :: rcdic = 2.034396_wp !: thermal conductivity of fresh ice 63 REAL(wp), PUBLIC :: cpic = 2067.0 !: specific heat of sea ice 64 REAL(wp), PUBLIC :: lsub = 2.834e+6 !: pure ice latent heat of sublimation (J.kg-1) 65 REAL(wp), PUBLIC :: lfus = 0.334e+6 !: latent heat of fusion of fresh ice (J.kg-1) 66 REAL(wp), PUBLIC :: rhoic = 917._wp !: volumic mass of sea ice (kg/m3) 67 REAL(wp), PUBLIC :: tmut = 0.054 !: decrease of seawater meltpoint with salinity 68 #else 69 REAL(wp), PUBLIC :: rcdsn = 0.22_wp !: conductivity of the snow 70 REAL(wp), PUBLIC :: rcdic = 2.034396_wp !: conductivity of the ice 71 REAL(wp), PUBLIC :: rcpsn = 6.9069e+5_wp !: density times specific heat for snow 72 REAL(wp), PUBLIC :: rcpic = 1.8837e+6_wp !: volumetric latent heat fusion of sea ice 73 REAL(wp), PUBLIC :: lfus = 0.3337e+6 !: latent heat of fusion of fresh ice (J.kg-1) 74 REAL(wp), PUBLIC :: xlsn = 110.121e+6_wp !: volumetric latent heat fusion of snow 75 REAL(wp), PUBLIC :: xlic = 300.33e+6_wp !: volumetric latent heat fusion of ice 76 REAL(wp), PUBLIC :: xsn = 2.8e+6 !: latent heat of sublimation of snow 77 REAL(wp), PUBLIC :: rhoic = 900._wp !: volumic mass of sea ice (kg/m3) 78 #endif 79 REAL(wp), PUBLIC :: rhosn = 330._wp !: volumic mass of snow (kg/m3) 80 REAL(wp), PUBLIC :: emic = 0.97_wp !: emissivity of snow or ice 81 REAL(wp), PUBLIC :: sice = 6.0_wp !: reference salinity of ice (psu) 82 REAL(wp), PUBLIC :: soce = 34.7_wp !: reference salinity of sea (psu) 83 REAL(wp), PUBLIC :: cevap = 2.5e+6_wp !: latent heat of evaporation (water) 84 REAL(wp), PUBLIC :: srgamma = 0.9_wp !: correction factor for solar radiation (Oberhuber, 1974) 85 REAL(wp), PUBLIC :: vkarmn = 0.4_wp !: von Karman constant 86 REAL(wp), PUBLIC :: stefan = 5.67e-8_wp !: Stefan-Boltzmann constant 70 REAL(wp), PUBLIC :: rhoic = 917._wp !: volumic mass of sea ice [kg/m3] 71 REAL(wp), PUBLIC :: rcdic = 2.034396_wp !: thermal conductivity of fresh ice 72 REAL(wp), PUBLIC :: rcdsn = 0.31_wp !: thermal conductivity of snow 73 REAL(wp), PUBLIC :: cpic = 2067.0_wp !: specific heat for ice 74 REAL(wp), PUBLIC :: lsub = 2.834e+6_wp !: pure ice latent heat of sublimation [J/kg] 75 REAL(wp), PUBLIC :: lfus = 0.334e+6_wp !: latent heat of fusion of fresh ice [J/kg] 76 REAL(wp), PUBLIC :: tmut = 0.054_wp !: decrease of seawater meltpoint with salinity 77 REAL(wp), PUBLIC :: xlsn !: = lfus*rhosn (volumetric latent heat fusion of snow) [J/m3] 78 #else 79 REAL(wp), PUBLIC :: rhoic = 900._wp !: volumic mass of sea ice [kg/m3] 80 REAL(wp), PUBLIC :: rcdic = 2.034396_wp !: conductivity of the ice [W/m/K] 81 REAL(wp), PUBLIC :: rcpic = 1.8837e+6_wp !: volumetric specific heat for ice [J/m3/K] 82 REAL(wp), PUBLIC :: cpic !: = rcpic / rhoic (specific heat for ice) [J/Kg/K] 83 REAL(wp), PUBLIC :: rcdsn = 0.22_wp !: conductivity of the snow [W/m/K] 84 REAL(wp), PUBLIC :: rcpsn = 6.9069e+5_wp !: volumetric specific heat for snow [J/m3/K] 85 REAL(wp), PUBLIC :: xlsn = 110.121e+6_wp !: volumetric latent heat fusion of snow [J/m3] 86 REAL(wp), PUBLIC :: lfus !: = xlsn / rhosn (latent heat of fusion of fresh ice) [J/Kg] 87 REAL(wp), PUBLIC :: xlic = 300.33e+6_wp !: volumetric latent heat fusion of ice [J/m3] 88 REAL(wp), PUBLIC :: xsn = 2.8e+6_wp !: volumetric latent heat of sublimation of snow [J/m3] 89 #endif 87 90 !!---------------------------------------------------------------------- 88 91 !! NEMO/OPA 3.3 , NEMO Consortium (2010) … … 102 105 !!---------------------------------------------------------------------- 103 106 104 ! ! Define additional parameters 105 rsiyea = 365.25 * rday * 2. * rpi / 6.283076 106 rsiday = rday / ( 1. + rday / rsiyea ) 107 #if defined key_cice 108 omega = 7.292116e-05 109 #else 110 omega = 2. * rpi / rsiday 111 #endif 112 113 rau0r = 1. / rau0 114 ro0cpr = 1. / ( rau0 * rcp ) 115 116 117 IF(lwp) THEN ! control print 118 WRITE(numout,*) 119 WRITE(numout,*) ' phy_cst : initialization of ocean parameters and constants' 120 WRITE(numout,*) ' ~~~~~~~' 107 IF(lwp) WRITE(numout,*) 108 IF(lwp) WRITE(numout,*) ' phy_cst : initialization of ocean parameters and constants' 109 IF(lwp) WRITE(numout,*) ' ~~~~~~~' 110 111 ! Ocean Parameters 112 ! ---------------- 113 IF(lwp) THEN 121 114 WRITE(numout,*) ' Domain info' 122 115 WRITE(numout,*) ' dimension of model' … … 131 124 WRITE(numout,*) ' jpnij : ', jpnij 132 125 WRITE(numout,*) ' lateral domain boundary condition type : jperio = ', jperio 133 WRITE(numout,*) 134 WRITE(numout,*) ' Constants' 135 WRITE(numout,*) 136 WRITE(numout,*) ' mathematical constant rpi = ', rpi 137 WRITE(numout,*) ' day rday = ', rday, ' s' 138 WRITE(numout,*) ' sideral year rsiyea = ', rsiyea, ' s' 139 WRITE(numout,*) ' sideral day rsiday = ', rsiday, ' s' 140 WRITE(numout,*) ' omega omega = ', omega, ' s-1' 141 WRITE(numout,*) 142 WRITE(numout,*) ' nb of months per year raamo = ', raamo, ' months' 143 WRITE(numout,*) ' nb of hours per day rjjhh = ', rjjhh, ' hours' 144 WRITE(numout,*) ' nb of minutes per hour rhhmm = ', rhhmm, ' mn' 145 WRITE(numout,*) ' nb of seconds per minute rmmss = ', rmmss, ' s' 146 WRITE(numout,*) 147 WRITE(numout,*) ' earth radius ra = ', ra, ' m' 148 WRITE(numout,*) ' gravity grav = ', grav , ' m/s^2' 149 WRITE(numout,*) 150 WRITE(numout,*) ' triple point of temperature rtt = ', rtt , ' K' 151 WRITE(numout,*) ' freezing point of water rt0 = ', rt0 , ' K' 152 WRITE(numout,*) ' melting point of snow rt0_snow = ', rt0_snow, ' K' 153 WRITE(numout,*) ' melting point of ice rt0_ice = ', rt0_ice , ' K' 154 WRITE(numout,*) 155 WRITE(numout,*) ' ocean reference volumic mass rau0 = ', rau0 , ' kg/m^3' 156 WRITE(numout,*) ' ocean reference specific volume rau0r = ', rau0r, ' m^3/Kg' 157 WRITE(numout,*) ' ocean specific heat rcp = ', rcp 158 WRITE(numout,*) ' 1. / ( rau0 * rcp ) = ro0cpr = ', ro0cpr 126 ENDIF 127 128 ! Define constants 129 ! ---------------- 130 IF(lwp) WRITE(numout,*) 131 IF(lwp) WRITE(numout,*) ' Constants' 132 133 IF(lwp) WRITE(numout,*) 134 IF(lwp) WRITE(numout,*) ' mathematical constant rpi = ', rpi 135 136 rsiyea = 365.25_wp * rday * 2._wp * rpi / 6.283076_wp 137 rsiday = rday / ( 1._wp + rday / rsiyea ) 138 #if defined key_cice 139 omega = 7.292116e-05 140 #else 141 omega = 2._wp * rpi / rsiday 142 #endif 143 IF(lwp) WRITE(numout,*) 144 IF(lwp) WRITE(numout,*) ' day rday = ', rday, ' s' 145 IF(lwp) WRITE(numout,*) ' sideral year rsiyea = ', rsiyea, ' s' 146 IF(lwp) WRITE(numout,*) ' sideral day rsiday = ', rsiday, ' s' 147 IF(lwp) WRITE(numout,*) ' omega omega = ', omega, ' s^-1' 148 149 IF(lwp) WRITE(numout,*) 150 IF(lwp) WRITE(numout,*) ' nb of months per year raamo = ', raamo, ' months' 151 IF(lwp) WRITE(numout,*) ' nb of hours per day rjjhh = ', rjjhh, ' hours' 152 IF(lwp) WRITE(numout,*) ' nb of minutes per hour rhhmm = ', rhhmm, ' mn' 153 IF(lwp) WRITE(numout,*) ' nb of seconds per minute rmmss = ', rmmss, ' s' 154 155 IF(lwp) WRITE(numout,*) 156 IF(lwp) WRITE(numout,*) ' earth radius ra = ', ra, ' m' 157 IF(lwp) WRITE(numout,*) ' gravity grav = ', grav , ' m/s^2' 158 159 IF(lwp) WRITE(numout,*) 160 IF(lwp) WRITE(numout,*) ' triple point of temperature rtt = ', rtt , ' K' 161 IF(lwp) WRITE(numout,*) ' freezing point of water rt0 = ', rt0 , ' K' 162 IF(lwp) WRITE(numout,*) ' melting point of snow rt0_snow = ', rt0_snow, ' K' 163 IF(lwp) WRITE(numout,*) ' melting point of ice rt0_ice = ', rt0_ice , ' K' 164 165 r1_rau0 = 1._wp / rau0 166 r1_rcp = 1._wp / rcp 167 r1_rau0_rcp = 1._wp / ( rau0 * rcp ) 168 IF(lwp) WRITE(numout,*) 169 IF(lwp) WRITE(numout,*) ' volumic mass of pure water rauw = ', rauw , ' kg/m^3' 170 IF(lwp) WRITE(numout,*) ' volumic mass of reference rau0 = ', rau0 , ' kg/m^3' 171 IF(lwp) WRITE(numout,*) ' 1. / rau0 r1_rau0 = ', r1_rau0, ' m^3/kg' 172 IF(lwp) WRITE(numout,*) ' ocean specific heat rcp = ', rcp , ' J/Kelvin' 173 IF(lwp) WRITE(numout,*) ' 1. / ( rau0 * rcp ) r1_rau0_rcp = ', r1_rau0_rcp 174 175 176 #if defined key_lim3 || defined key_cice 177 xlsn = lfus * rhosn ! volumetric latent heat fusion of snow [J/m3] 178 #else 179 cpic = rcpic / rhoic ! specific heat for ice [J/Kg/K] 180 lfus = xlsn / rhosn ! latent heat of fusion of fresh ice 181 #endif 182 183 IF(lwp) THEN 159 184 WRITE(numout,*) 160 185 WRITE(numout,*) ' thermal conductivity of the snow = ', rcdsn , ' J/s/m/K' 161 186 WRITE(numout,*) ' thermal conductivity of the ice = ', rcdic , ' J/s/m/K' 162 #if defined key_lim3163 187 WRITE(numout,*) ' fresh ice specific heat = ', cpic , ' J/kg/K' 164 188 WRITE(numout,*) ' latent heat of fusion of fresh ice / snow = ', lfus , ' J/kg' 189 #if defined key_lim3 || defined key_cice 165 190 WRITE(numout,*) ' latent heat of subl. of fresh ice / snow = ', lsub , ' J/kg' 166 #elif defined key_cice167 WRITE(numout,*) ' latent heat of fusion of fresh ice / snow = ', lfus , ' J/kg'168 191 #else 169 192 WRITE(numout,*) ' density times specific heat for snow = ', rcpsn , ' J/m^3/K' 170 193 WRITE(numout,*) ' density times specific heat for ice = ', rcpic , ' J/m^3/K' 171 194 WRITE(numout,*) ' volumetric latent heat fusion of sea ice = ', xlic , ' J/m' 172 WRITE(numout,*) ' volumetric latent heat fusion of snow = ', xlsn , ' J/m'173 195 WRITE(numout,*) ' latent heat of sublimation of snow = ', xsn , ' J/kg' 174 196 #endif 197 WRITE(numout,*) ' volumetric latent heat fusion of snow = ', xlsn , ' J/m^3' 175 198 WRITE(numout,*) ' density of sea ice = ', rhoic , ' kg/m^3' 176 199 WRITE(numout,*) ' density of snow = ', rhosn , ' kg/m^3'
Note: See TracChangeset
for help on using the changeset viewer.