- Timestamp:
- 2011-08-09T13:11:24+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_r2787_PISCES_improvment/NEMOGCM/NEMO/TOP_SRC/PISCES/p4zche.F90
r2715 r2823 10 10 !! - ! 2006 (R. Gangsto) modification 11 11 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 12 !! ! 2011-02 (J. Simeon, J.Orr ) update O2 solubility constants 12 13 !!---------------------------------------------------------------------- 13 14 #if defined key_pisces … … 17 18 !! p4z_che : Sea water chemistry computed following OCMIP protocol 18 19 !!---------------------------------------------------------------------- 19 USE oce_trc ! 20 USE trc ! 21 USE sms_pisces ! 22 USE lib_mpp ! MPP library20 USE oce_trc ! shared variables between ocean and passive tracers 21 USE trc ! passive tracers common variables 22 USE sms_pisces ! PISCES Source Minus Sink variables 23 USE lib_mpp ! MPP library 23 24 24 25 IMPLICIT NONE … … 32 33 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: chemc ! Solubilities of O2 and CO2 33 34 34 REAL(wp) :: salchl = 1._wp / 1.80655_wp ! conversion factor for salinity --> chlorinity (Wooster et al. 1969) 35 36 REAL(wp) :: akcc1 = -171.9065_wp ! coeff. for apparent solubility equilibrium 37 REAL(wp) :: akcc2 = -0.077993_wp ! Millero et al. 1995 from Mucci 1983 38 REAL(wp) :: akcc3 = 2839.319_wp ! 39 REAL(wp) :: akcc4 = 71.595_wp ! 40 REAL(wp) :: akcc5 = -0.77712_wp ! 41 REAL(wp) :: akcc6 = 0.0028426_wp ! 42 REAL(wp) :: akcc7 = 178.34_wp ! 43 REAL(wp) :: akcc8 = -0.07711_wp ! 44 REAL(wp) :: akcc9 = 0.0041249_wp ! 45 46 REAL(wp) :: rgas = 83.143_wp ! universal gas constants 47 REAL(wp) :: oxyco = 1._wp / 22.4144_wp 48 49 REAL(wp) :: bor1 = 0.00023_wp ! borat constants 50 REAL(wp) :: bor2 = 1._wp / 10.82_wp 51 52 REAL(wp) :: ca0 = -162.8301_wp 53 REAL(wp) :: ca1 = 218.2968_wp 54 REAL(wp) :: ca2 = 90.9241_wp 55 REAL(wp) :: ca3 = -1.47696_wp 56 REAL(wp) :: ca4 = 0.025695_wp 57 REAL(wp) :: ca5 = -0.025225_wp 58 REAL(wp) :: ca6 = 0.0049867_wp 59 60 REAL(wp) :: c10 = -3670.7_wp ! coeff. for 1. dissoc. of carbonic acid (Edmond and Gieskes, 1970) 61 REAL(wp) :: c11 = 62.008_wp 62 REAL(wp) :: c12 = -9.7944_wp 63 REAL(wp) :: c13 = 0.0118_wp 64 REAL(wp) :: c14 = -0.000116_wp 65 66 REAL(wp) :: & ! coeff. for 2. dissoc. of carbonic acid (Millero, 1995) 67 c20 = -1394.7 , & 68 c21 = -4.777 , & 69 c22 = 0.0184 , & 70 c23 = -0.000118 71 72 REAL(wp) :: & ! constants for calculate concentrations 73 st1 = 0.14 , & ! for sulfate (Morris & Riley 1966) 74 st2 = 1./96.062, & 75 ks0 = 141.328 , & 76 ks1 = -4276.1 , & 77 ks2 = -23.093 , & 78 ks3 = -13856. , & 79 ks4 = 324.57 , & 80 ks5 = -47.986 , & 81 ks6 = 35474. , & 82 ks7 = -771.54 , & 83 ks8 = 114.723 , & 84 ks9 = -2698. , & 85 ks10 = 1776. , & 86 ks11 = 1. , & 87 ks12 = -0.001005 88 89 REAL(wp) :: & ! constants for calculate concentrations 90 ft1 = 0.000067 , & ! fluorides (Dickson & Riley 1979 ) 91 ft2 = 1./18.9984 , & 92 kf0 = -12.641 , & 93 kf1 = 1590.2 , & 94 kf2 = 1.525 , & 95 kf3 = 1.0 , & 96 kf4 =-0.001005 97 98 REAL(wp) :: & ! coeff. for 1. dissoc. of boric acid (Dickson and Goyet, 1994) 99 cb0 = -8966.90, & 100 cb1 = -2890.53, & 101 cb2 = -77.942 , & 102 cb3 = 1.728 , & 103 cb4 = -0.0996 , & 104 cb5 = 148.0248, & 105 cb6 = 137.1942, & 106 cb7 = 1.62142 , & 107 cb8 = -24.4344, & 108 cb9 = -25.085 , & 109 cb10 = -0.2474 , & 110 cb11 = 0.053105 111 112 REAL(wp) :: & ! coeff. for dissoc. of water (Dickson and Riley, 1979 ) 113 cw0 = -13847.26 , & 114 cw1 = 148.9652 , & 115 cw2 = -23.6521 , & 116 cw3 = 118.67 , & 117 cw4 = -5.977 , & 118 cw5 = 1.0495 , & 119 cw6 = -0.01615 120 121 REAL(wp) :: & ! volumetric solubility constants for o2 in ml/l (Weiss, 1974) 122 ox0 = -58.3877 , & 123 ox1 = 85.8079 , & 124 ox2 = 23.8439 , & 125 ox3 = -0.034892 , & 126 ox4 = 0.015568 , & 127 ox5 = -0.0019387 128 129 REAL(wp), DIMENSION(5) :: & ! coeff. for seawater pressure correction 130 devk1, devk2, devk3, & ! (millero 95) 131 devk4, devk5 132 35 REAL(wp), PUBLIC :: atcox = 0.20946 ! units atm 36 37 REAL(wp) :: salchl = 1. / 1.80655 ! conversion factor for salinity --> chlorinity (Wooster et al. 1969) 38 REAL(wp) :: o2atm = 1. / ( 1000. * 0.20946 ) 39 40 REAL(wp) :: akcc1 = -171.9065 ! coeff. for apparent solubility equilibrium 41 REAL(wp) :: akcc2 = -0.077993 ! Millero et al. 1995 from Mucci 1983 42 REAL(wp) :: akcc3 = 2839.319 43 REAL(wp) :: akcc4 = 71.595 44 REAL(wp) :: akcc5 = -0.77712 45 REAL(wp) :: akcc6 = 0.00284263 46 REAL(wp) :: akcc7 = 178.34 47 REAL(wp) :: akcc8 = -0.07711 48 REAL(wp) :: akcc9 = 0.0041249 49 50 REAL(wp) :: rgas = 83.143 ! universal gas constants 51 REAL(wp) :: oxyco = 1. / 22.4144 ! converts from liters of an ideal gas to moles 52 53 REAL(wp) :: bor1 = 0.00023 ! borat constants 54 REAL(wp) :: bor2 = 1. / 10.82 55 56 REAL(wp) :: ca0 = -162.8301 ! WEISS & PRICE 1980, units mol/(kg atm) 57 REAL(wp) :: ca1 = 218.2968 58 REAL(wp) :: ca2 = 90.9241 59 REAL(wp) :: ca3 = -1.47696 60 REAL(wp) :: ca4 = 0.025695 61 REAL(wp) :: ca5 = -0.025225 62 REAL(wp) :: ca6 = 0.0049867 63 64 REAL(wp) :: c10 = -3670.7 ! Coeff. for 1. dissoc. of carbonic acid (Edmond and Gieskes, 1970) 65 REAL(wp) :: c11 = 62.008 66 REAL(wp) :: c12 = -9.7944 67 REAL(wp) :: c13 = 0.0118 68 REAL(wp) :: c14 = -0.000116 69 70 REAL(wp) :: c20 = -1394.7 ! coeff. for 2. dissoc. of carbonic acid (Millero, 1995) 71 REAL(wp) :: c21 = -4.777 72 REAL(wp) :: c22 = 0.0184 73 REAL(wp) :: c23 = -0.000118 74 75 REAL(wp) :: st1 = 0.14 ! constants for calculate concentrations for sulfate 76 REAL(wp) :: st2 = 1./96.062 ! (Morris & Riley 1966) 77 REAL(wp) :: ks0 = 141.328 78 REAL(wp) :: ks1 = -4276.1 79 REAL(wp) :: ks2 = -23.093 80 REAL(wp) :: ks3 = -13856. 81 REAL(wp) :: ks4 = 324.57 82 REAL(wp) :: ks5 = -47.986 83 REAL(wp) :: ks6 = 35474. 84 REAL(wp) :: ks7 = -771.54 85 REAL(wp) :: ks8 = 114.723 86 REAL(wp) :: ks9 = -2698. 87 REAL(wp) :: ks10 = 1776. 88 REAL(wp) :: ks11 = 1. 89 REAL(wp) :: ks12 = -0.001005 90 91 REAL(wp) :: ft1 = 0.000067 ! constants for calculate concentrations for fluorides 92 REAL(wp) :: ft2 = 1./18.9984 ! (Dickson & Riley 1979 ) 93 REAL(wp) :: kf0 = -12.641 94 REAL(wp) :: kf1 = 1590.2 95 REAL(wp) :: kf2 = 1.525 96 REAL(wp) :: kf3 = 1.0 97 REAL(wp) :: kf4 = -0.001005 98 99 REAL(wp) :: cb0 = -8966.90 ! Coeff. for 1. dissoc. of boric acid 100 REAL(wp) :: cb1 = -2890.53 ! (Dickson and Goyet, 1994) 101 REAL(wp) :: cb2 = -77.942 102 REAL(wp) :: cb3 = 1.728 103 REAL(wp) :: cb4 = -0.0996 104 REAL(wp) :: cb5 = 148.0248 105 REAL(wp) :: cb6 = 137.1942 106 REAL(wp) :: cb7 = 1.62142 107 REAL(wp) :: cb8 = -24.4344 108 REAL(wp) :: cb9 = -25.085 109 REAL(wp) :: cb10 = -0.2474 110 REAL(wp) :: cb11 = 0.053105 111 112 REAL(wp) :: cw0 = -13847.26 ! Coeff. for dissoc. of water (Dickson and Riley, 1979 ) 113 REAL(wp) :: cw1 = 148.9652 114 REAL(wp) :: cw2 = -23.6521 115 REAL(wp) :: cw3 = 118.67 116 REAL(wp) :: cw4 = -5.977 117 REAL(wp) :: cw5 = 1.0495 118 REAL(wp) :: cw6 = -0.01615 119 120 ! ! volumetric solubility constants for o2 in ml/L 121 REAL(wp) :: ox0 = 2.00856 ! from Table 1 for Eq 8 of Garcia and Gordon, 1992. 122 REAL(wp) :: ox1 = 3.22400 ! corrects for moisture and fugacity, but not total atmospheric pressure 123 REAL(wp) :: ox2 = 3.99063 ! Original PISCES code noted this was a solubility, but 124 REAL(wp) :: ox3 = 4.80299 ! was in fact a bunsen coefficient with units L-O2/(Lsw atm-O2) 125 REAL(wp) :: ox4 = 9.78188e-1 ! Hence, need to divide EXP( zoxy ) by 1000, ml-O2 => L-O2 126 REAL(wp) :: ox5 = 1.71069 ! and atcox = 0.20946 to add the 1/atm dimension. 127 REAL(wp) :: ox6 = -6.24097e-3 128 REAL(wp) :: ox7 = -6.93498e-3 129 REAL(wp) :: ox8 = -6.90358e-3 130 REAL(wp) :: ox9 = -4.29155e-3 131 REAL(wp) :: ox10 = -3.11680e-7 132 133 REAL(wp), DIMENSION(5) :: devk1, devk2, devk3, devk4, devk5 ! coeff. for seawater pressure correction 134 ! ! (millero 95) 133 135 DATA devk1 / -25.5 , -15.82 , -29.48 , -25.60 , -48.76 / 134 136 DATA devk2 / 0.1271 , -0.0219 , 0.1622 , 0.2324 , 0.5304 / … … 155 157 !!--------------------------------------------------------------------- 156 158 INTEGER :: ji, jj, jk 157 REAL(wp) :: ztkel, zsal , zqtt , zbuf1 , zbuf2 159 REAL(wp) :: ztkel, zt , zt2 , zsal , zsal2 , zbuf1 , zbuf2 160 REAL(wp) :: ztgg , ztgg2, ztgg3 , ztgg4 , ztgg5 158 161 REAL(wp) :: zpres, ztc , zcl , zcpexp, zoxy , zcpexp2 159 162 REAL(wp) :: zsqrt, ztr , zlogt , zcek1 160 REAL(wp) :: z lqtt, zqtt2, zsal15, zis , zis2, zisqrt163 REAL(wp) :: zis , zis2 , zsal15, zisqrt 161 164 REAL(wp) :: zckb , zck1 , zck2 , zckw , zak1 , zak2 , zakb , zaksp0, zakw 162 165 REAL(wp) :: zst , zft , zcks , zckf , zaksp1 … … 171 174 ! ! SET ABSOLUTE TEMPERATURE 172 175 ztkel = tsn(ji,jj,1,jp_tem) + 273.16 173 z qtt= ztkel * 0.01174 z qtt2 = zqtt * zqtt175 zsal = tsn(ji,jj,1,jp_sal) + ( 1.- tmask(ji,jj,1) ) * 35.176 z lqtt = LOG( zqtt )177 176 zt = ztkel * 0.01 177 zt2 = zt * zt 178 zsal = tsn(ji,jj,1,jp_sal) + ( 1.- tmask(ji,jj,1) ) * 35. 179 zsal2 = zsal * zsal 180 zlogt = LOG( zt ) 178 181 ! ! LN(K0) OF SOLUBILITY OF CO2 (EQ. 12, WEISS, 1980) 179 182 ! ! AND FOR THE ATMOSPHERE FOR NON IDEAL GAS 180 zcek1 = ca0 + ca1 / zqtt + ca2 * zlqtt + ca3 * zqtt2 + zsal*( ca4 + ca5 * zqtt + ca6 * zqtt2 ) 181 182 ! ! LN(K0) OF SOLUBILITY OF O2 and N2 (EQ. 4, WEISS, 1970) 183 zoxy = ox0 + ox1 / zqtt + ox2 * zlqtt + zsal * ( ox3 + ox4 * zqtt + ox5 * zqtt2 ) 184 185 ! ! SET SOLUBILITIES OF O2 AND CO2 186 chemc(ji,jj,1) = EXP( zcek1 ) * 1.e-6 * rhop(ji,jj,1) / 1000. 187 chemc(ji,jj,2) = EXP( zoxy ) * oxyco 188 183 zcek1 = ca0 + ca1 / zt + ca2 * zlogt + ca3 * zt2 + zsal * ( ca4 + ca5 * zt + ca6 * zt2 ) 184 ! ! LN(K0) OF SOLUBILITY OF O2 and N2 in ml/L (EQ. 8, GARCIA AND GORDON, 1992) 185 ztgg = LOG( ( 298.15 - tsn(ji,jj,1,jp_tem) ) / ztkel ) ! Set the GORDON & GARCIA scaled temperature 186 ztgg2 = ztgg * ztgg 187 ztgg3 = ztgg2 * ztgg 188 ztgg4 = ztgg3 * ztgg 189 ztgg5 = ztgg4 * ztgg 190 zoxy = ox0 + ox1 * ztgg + ox2 * ztgg2 + ox3 * ztgg3 + ox4 * ztgg4 + ox5 * ztgg5 & 191 + zsal * ( ox6 + ox7 * ztgg + ox8 * ztgg2 + ox9 * ztgg3 ) + ox10 * zsal2 192 193 ! ! SET SOLUBILITIES OF O2 AND CO2 194 chemc(ji,jj,1) = EXP( zcek1 ) * 1.e-6 * rhop(ji,jj,1) / 1000. ! mol/(L uatm) 195 chemc(ji,jj,2) = ( EXP( zoxy ) * o2atm ) * oxyco ! mol/(L atm) 196 ! 189 197 END DO 190 198 END DO … … 204 212 ! SET ABSOLUTE TEMPERATURE 205 213 ztkel = tsn(ji,jj,jk,jp_tem) + 273.16 206 zqtt = ztkel * 0.01207 214 zsal = tsn(ji,jj,jk,jp_sal) + ( 1.-tmask(ji,jj,jk) ) * 35. 208 215 zsqrt = SQRT( zsal )
Note: See TracChangeset
for help on using the changeset viewer.