New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
p4zche.F in trunk/NEMO/TOP_SRC/SMS – NEMO

source: trunk/NEMO/TOP_SRC/SMS/p4zche.F @ 617

Last change on this file since 617 was 617, checked in by opalod, 17 years ago

* empty log message *

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 10.0 KB
Line 
1
2CCC $Header$ 
3CCC  TOP 1.0 , LOCEAN-IPSL (2005) 
4C This software is governed by CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 
5C ---------------------------------------------------------------------------
6CDIR$ LIST
7      SUBROUTINE p4zche
8#if defined key_passivetrc && defined key_trc_pisces
9CCC---------------------------------------------------------------------
10CCC
11CCC          ROUTINE p4zche : PISCES MODEL
12CCC          *****************************
13CCC
14CCC     PURPOSE.
15CCC     --------
16CCC          *P4ZCHE* : Sea water chemistry computed following OCMIP protocol
17CCC
18CCC
19CC     EXTERNALS.
20CC     ----------
21CC          rhop
22CC
23CC   MODIFICATIONS:
24CC   --------------
25CC      original :      1988 E. Maier-Reimer
26CC      additions :     1998 O. Aumont
27CC      modifications : 1999 C. Le Quere
28CC      modifications : 2004 O. Aumont
29CC      modifications : 2006 R. Gangsto
30CC----------------------------------------------------------------------
31CC parameters and commons
32CC ======================
33CDIR$ nolist
34      USE oce_trc
35      USE trp_trc
36      USE sms
37      IMPLICIT NONE
38#include "domzgr_substitute.h90"
39CDIR$ list
40CC----------------------------------------------------------------------
41CC local declarations
42CC ==================
43C
44      INTEGER ji, jj, jk
45      REAL tkel, sal,  qtt, zbuf1, zbuf2
46      REAL pres, tc, cl, cpexp, cek0, oxy, cpexp2
47      REAL zsqrt, ztr, zlogt, cek1
48      REAL zqtt, qtt2, sal15, zis, zis2, zisqrt
49      REAL ckb, ck1, ck2, ckw, ak1, ak2, akb, aksp0, akw
50      REAL ckp1, ckp2, ckp3, cksi, akp1, akp2, akp3, aksi
51      REAL st, ft, cks, ckf, aks, akf, aksp1
52
53C
54C* 1. CHEMICAL CONSTANTS - SURFACE LAYER
55C ---------------------------------------
56C
57      DO jj = 1,jpj
58        DO ji = 1,jpi
59C
60C* 1.1 SET ABSOLUTE TEMPERATURE
61C ------------------------------
62C
63          tkel = tn(ji,jj,1)+273.16
64          qtt = tkel*0.01
65          qtt2=qtt*qtt
66          sal = sn(ji,jj,1) + (1.-tmask(ji,jj,1))*35.
67          zqtt=log(qtt)
68C
69C* 1.2 LN(K0) OF SOLUBILITY OF CO2 (EQ. 12, WEISS, 1980)
70C      AND FOR THE ATMOSPHERE FOR NON IDEAL GAS
71C -------------------------------------------------------
72C
73          cek0 = c00+c01/qtt+c02*zqtt+sal*(c03+c04*qtt+c05*qtt2)
74          cek1 = ca0+ca1/qtt+ca2*zqtt+ca3*qtt2+sal*(ca4
75     &      +ca5*qtt+ca6*qtt2)
76C
77C* 1.3 LN(K0) OF SOLUBILITY OF O2 and N2 (EQ. 4, WEISS, 1970)
78C ------------------------------------------------------------
79C
80          oxy = ox0+ox1/qtt+ox2*zqtt+sal*(ox3+ox4*qtt+ox5*qtt2)
81C
82C* 1.4 SET SOLUBILITIES OF O2 AND CO2
83C -----------------------------------
84C
85          chemc(ji,jj,1) = exp(cek0)*1.E-6*rhop(ji,jj,1)/1000.
86          chemc(ji,jj,2) = exp(oxy)*oxyco
87          chemc(ji,jj,3) = exp(cek1)*1.E-6*rhop(ji,jj,1)/1000.
88C
89        ENDDO
90      END DO
91C
92C* 2 CHEMICAL CONSTANTS - DEEP OCEAN
93C -------------------------------------
94C
95      DO jk = 1,jpk
96        DO jj = 1,jpj
97          DO ji = 1,jpi
98C
99C* 2.1 SET PRESSION
100C -----------------
101C
102            pres = 1.025e-1*fsdept(ji,jj,jk)
103C
104C* 2.2 SET ABSOLUTE TEMPERATURE
105C ------------------------------
106C
107            tkel   = tn(ji,jj,jk)+273.16
108            qtt    = tkel*0.01
109            sal    = sn(ji,jj,jk) + (1.-tmask(ji,jj,jk))*35.
110            zsqrt  = sqrt(sal)
111            sal15  = zsqrt*sal
112            zlogt  = log(tkel)
113            ztr    = 1./tkel
114            zis    = 19.924*sal/(1000.-1.005*sal)
115            zis2   = zis*zis
116            zisqrt = sqrt(zis)
117            tc = tn(ji,jj,jk) + (1.-tmask(ji,jj,jk))*20.
118C
119C* 2.3 CHLORINITY (WOOSTER ET AL., 1969)
120C ---------------------------------------
121C
122            cl = sal*salchl
123C
124C* 2.4 TOTAL SULFATE CONCENTR. [MOLES/kg soln]
125C --------------------------------------------
126C
127            st = st1*cl*st2
128C
129C* 2.5 TOTAL FLUORIDE CONCENTR. [MOLES/kg soln]
130C ---------------------------------------------
131C
132            ft = ft1*cl*ft2
133C
134C* 2.6 DISSOCIATION CONSTANT FOR SULFATES
135C on free H scale (Dickson 1990)
136C -------------------------------------------------------
137C
138            cks=exp(ks1*ztr+ks0+ks2*zlogt+(ks3*ztr+ks4+ks5*zlogt)
139     &      *zisqrt+(ks6*ztr+ks7+ks8*zlogt)*zis+ks9*ztr*zis
140     &      *zisqrt+ks10*ztr*zis2+log(ks11+ks12*sal))
141C
142C* 2.7 DISSOCIATION CONSTANT FOR FLUORIDES
143C on free H scale (Dickson and Riley 79)
144C -------------------------------------------------------
145C
146            ckf=exp(kf1*ztr+kf0+kf2*zisqrt+log(kf3+kf4*sal))
147
148C
149C* 2.4 DISSOCIATION CONSTANT FOR CARBONATE AND BORATE
150C -------------------------------------------------------
151C
152            ckb = (cb0+cb1*zsqrt+cb2*sal+cb3*sal15+cb4*sal*sal)*ztr
153     &          +(cb5+cb6*zsqrt+cb7*sal)+
154     &          (cb8+cb9*zsqrt+cb10*sal)*zlogt+cb11*zsqrt*tkel
155     &          +log((1.+st/cks+ft/ckf)/(1.+st/cks))
156            ck1 = c10*ztr+c11+c12*zlogt+c13*sal+c14*sal**2
157            ck2 = c20*ztr+c21+c22*sal+c23*sal**2
158C
159C* 2.5 PKW (H2O) (DICKSON AND RILEY, 1979)
160C -----------------------------------------
161C
162            ckw = cw0*ztr+cw1+cw2*zlogt+(cw3*ztr+cw4+cw5*zlogt)*
163     &          zsqrt+cw6*sal
164
165C
166C
167C* 2.10 DISSOCIATION CONSTANT FOR PHOSPHATE AND SILICATE (seawater scale)
168C  ---------------------------------------------------------------------
169C
170            ckp1 = cp10+cp11*ztr+cp12*zlogt+zsqrt*(cp13*ztr
171     &           +cp14)+sal*(cp15*ztr+cp16)
172            ckp2 = cp20+cp21*ztr+cp22*zlogt+zsqrt*(cp23*ztr
173     &           +cp24)+sal*(cp25*ztr+cp26)
174            ckp3 = cp30+cp31*ztr+zsqrt*(cp32*ztr
175     &           +cp33)+sal*(cp34*ztr+cp35)
176            cksi = cs10+cs11*ztr+cs12*zlogt+zisqrt*(cs13*ztr
177     &           +cs14)+zis*(cs15*ztr+cs16)+zis2*(cs17*ztr
178     &           +cs18)+log(1.+cs19*sal)
179     &           +log(cs20+cs21*sal)
180
181C
182C* 2.6 K1, K2 OF CARBONIC ACID, KB OF BORIC ACID, KW (H2O) (LIT.?)
183C -----------------------------------------------------------------
184C
185            ak1   = 10**(ck1)
186            ak2   = 10**(ck2)
187            akb   = exp(ckb)
188            akp1  = exp(ckp1)
189            akp2  = exp(ckp2)
190            akp3  = exp(ckp3)
191            aksi  = exp(cksi)
192            akw   = exp(ckw)
193            aksp1 = 10**(aksp0)
194            aks   = exp(cks)
195            akf   = exp(ckf)
196
197
198C
199C*2.7 APPARENT SOLUBILITY PRODUCT K'SP OF CALCITE IN SEAWATER
200C       (S=27-43, T=2-25 DEG C) AT pres =0 (ATMOSPH. PRESSURE)
201C       (MUCCI 1983)
202C -------------------------------------------------------------
203C
204            aksp0 = akcc1+akcc2*tkel+akcc3*ztr+akcc4*log10(tkel)+
205     &      (akcc5+akcc6*tkel+
206     &      akcc7*ztr)*zsqrt+akcc8*sal+akcc9*sal15
207
208C
209C* 2.8 FORMULA FOR CPEXP AFTER EDMOND AND GIESKES (1970)
210C        (REFERENCE TO CULBERSON AND PYTKOQICZ (1968) AS MADE
211C        IN BROECKER ET AL. (1982) IS INCORRECT; HERE RGAS IS
212C        TAKEN TENFOLD TO CORRECT FOR THE NOTATION OF pres  IN
213C        DBAR INSTEAD OF BAR AND THE EXPRESSION FOR CPEXP IS
214C        MULTIPLIED BY LN(10.) TO ALLOW USE OF EXP-FUNCTION
215C        WITH BASIS E IN THE FORMULA FOR AKSPP (CF. EDMOND
216C        AND GIESKES (1970), P. 1285 AND P. 1286 (THE SMALL
217C        FORMULA ON P. 1286 IS RIGHT AND CONSISTENT WITH THE
218C        SIGN IN PARTIAL MOLAR VOLUME CHANGE AS SHOWN ON
219C        P. 1285))
220C -----------------------------------------------------------
221C
222            cpexp = pres /(rgas*tkel)
223            cpexp2 = pres * pres/(rgas*tkel)
224C
225C* 2.9 KB OF BORIC ACID, K1,K2 OF CARBONIC ACID PRESSURE
226C        CORRECTION AFTER CULBERSON AND PYTKOWICZ (1968)
227C        (CF. BROECKER ET AL., 1982)
228C --------------------------------------------------------
229C
230            zbuf1 = -(devk1(3)+devk2(3)*tc+devk3(3)*tc*tc)
231            zbuf2 = 0.5*(devk4(3)+devk5(3)*tc)
232            akb3(ji,jj,jk) = akb*exp(zbuf1*cpexp+zbuf2*cpexp2)
233
234            zbuf1 = -(devk1(1)+devk2(1)*tc+devk3(1)*tc*tc)
235            zbuf2 = 0.5*(devk4(1)+devk5(1)*tc)
236            ak13(ji,jj,jk) = ak1*exp(zbuf1*cpexp+zbuf2*cpexp2)
237
238            zbuf1 = -(devk1(2)+devk2(2)*tc+devk3(2)*tc*tc)
239            zbuf2 = 0.5*(devk4(2)+devk5(2)*tc)
240            ak23(ji,jj,jk) = ak2*exp(zbuf1*cpexp+zbuf2*cpexp2)
241
242            zbuf1 = -(devk1(4)+devk2(4)*tc+devk3(4)*tc*tc)
243            zbuf2 = 0.5*(devk4(4)+devk5(4)*tc)
244            akp13(ji,jj,jk) = akp1*exp(zbuf1*cpexp+zbuf2*cpexp2)
245
246            zbuf1 = -(devk1(5)+devk2(5)*tc+devk3(5)*tc*tc)
247            zbuf2 = 0.5*(devk4(5)+devk5(5)*tc)
248            akp23(ji,jj,jk) = akp2*exp(zbuf1*cpexp+zbuf2*cpexp2)
249
250            zbuf1 = -(devk1(6)+devk2(6)*tc+devk3(6)*tc*tc)
251            zbuf2 = 0.5*(devk4(6)+devk5(6)*tc)
252            akp33(ji,jj,jk) = akp3*exp(zbuf1*cpexp+zbuf2*cpexp2)
253
254            zbuf1 = -(devk1(7)+devk2(7)*tc+devk3(7)*tc*tc)
255            zbuf2 = 0.5*(devk4(7)+devk5(7)*tc)
256            akw3(ji,jj,jk) = akw*exp(zbuf1*cpexp+zbuf2*cpexp2)
257
258C  Ksi
259C            aksi3(ji,jj,jk) = aksi
260C
261C  Or using coefficient of borates (cf millero 95+ corrected version html doc co2sys)
262C  "deltaVsi and deltaKsi have been estimated from the value of boric acid"
263C
264            zbuf1 = -(devk1(3)+devk2(3)*tc+devk3(3)*tc*tc)
265            zbuf2 = 0.5*(devk4(3)+devk5(3)*tc)
266            aksi3(ji,jj,jk) = aksi*exp(zbuf1*cpexp+zbuf2*cpexp2)
267
268C
269C
270C* 2.15 APPARENT SOLUBILITY PRODUCT K'SP OF CALCITE 
271C        AS FUNCTION OF PRESSURE FOLLOWING MILLERO
272C        (P. 1285) AND BERNER (1976)
273C -------------------------------------------------
274
275            zbuf1 = -(devk1(8)+devk2(8)*tc+devk3(8)*tc*tc)
276            zbuf2 = 0.5*(devk4(8)+devk5(8)*tc)
277            aksp(ji,jj,jk) = aksp1*exp(zbuf1*cpexp+zbuf2*cpexp2)
278
279C  Pressure correction for sulfate and fluoride
280C
281            zbuf1 = -(devk1(9)+devk2(9)*tc+devk3(9)*tc*tc)
282            zbuf2 = 0.5*(devk4(9)+devk5(9)*tc)
283            aks3(ji,jj,jk) = aks*exp(zbuf1*cpexp+zbuf2*cpexp2)
284
285            zbuf1 = -(devk1(10)+devk2(10)*tc+devk3(10)*tc*tc)
286            zbuf2 = 0.5*(devk4(10)+devk5(10)*tc)
287            akf3(ji,jj,jk) = akf*exp(zbuf1*cpexp+zbuf2*cpexp2)
288
289
290C
291C* 2.11 TOTAL BORATE CONCENTR. [MOLES/L]
292C --------------------------------------
293C
294            borat(ji,jj,jk) = bor1*cl*bor2
295C
296C  2.12 Iron and SIO3 saturation concentration from ...
297C  ----------------------------------------------------
298C
299         sio3eq(ji,jj,jk)=exp(log(10.)*(6.44-968./tkel))*1E-6
300         fekeq(ji,jj,jk)=10**(17.27-1565.7/(273.15+tc))
301C
302          ENDDO
303        ENDDO
304      END DO
305C
306#endif
307C
308      RETURN
309      END
Note: See TracBrowser for help on using the repository browser.