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 @ 719

Last change on this file since 719 was 719, checked in by ctlod, 17 years ago

get back to the nemo_v2_3 version for trunk

  • 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.7 APPARENT SOLUBILITY PRODUCT K'SP OF CALCITE IN SEAWATER
183C       (S=27-43, T=2-25 DEG C) AT pres =0 (ATMOSPH. PRESSURE)
184C       (MUCCI 1983)
185C -------------------------------------------------------------
186C
187            aksp0 = akcc1+akcc2*tkel+akcc3*ztr+akcc4*log10(tkel)+
188     &      (akcc5+akcc6*tkel+
189     &      akcc7*ztr)*zsqrt+akcc8*sal+akcc9*sal15
190
191
192C
193C* 2.6 K1, K2 OF CARBONIC ACID, KB OF BORIC ACID, KW (H2O) (LIT.?)
194C -----------------------------------------------------------------
195C
196            ak1   = 10**(ck1)
197            ak2   = 10**(ck2)
198            akb   = exp(ckb)
199            akp1  = exp(ckp1)
200            akp2  = exp(ckp2)
201            akp3  = exp(ckp3)
202            aksi  = exp(cksi)
203            akw   = exp(ckw)
204            aksp1 = 10**(aksp0)
205            aks   = exp(cks)
206            akf   = exp(ckf)
207
208
209C
210C* 2.8 FORMULA FOR CPEXP AFTER EDMOND AND GIESKES (1970)
211C        (REFERENCE TO CULBERSON AND PYTKOQICZ (1968) AS MADE
212C        IN BROECKER ET AL. (1982) IS INCORRECT; HERE RGAS IS
213C        TAKEN TENFOLD TO CORRECT FOR THE NOTATION OF pres  IN
214C        DBAR INSTEAD OF BAR AND THE EXPRESSION FOR CPEXP IS
215C        MULTIPLIED BY LN(10.) TO ALLOW USE OF EXP-FUNCTION
216C        WITH BASIS E IN THE FORMULA FOR AKSPP (CF. EDMOND
217C        AND GIESKES (1970), P. 1285 AND P. 1286 (THE SMALL
218C        FORMULA ON P. 1286 IS RIGHT AND CONSISTENT WITH THE
219C        SIGN IN PARTIAL MOLAR VOLUME CHANGE AS SHOWN ON
220C        P. 1285))
221C -----------------------------------------------------------
222C
223            cpexp = pres /(rgas*tkel)
224            cpexp2 = pres * pres/(rgas*tkel)
225C
226C* 2.9 KB OF BORIC ACID, K1,K2 OF CARBONIC ACID PRESSURE
227C        CORRECTION AFTER CULBERSON AND PYTKOWICZ (1968)
228C        (CF. BROECKER ET AL., 1982)
229C --------------------------------------------------------
230C
231            zbuf1 = -(devk1(3)+devk2(3)*tc+devk3(3)*tc*tc)
232            zbuf2 = 0.5*(devk4(3)+devk5(3)*tc)
233            akb3(ji,jj,jk) = akb*exp(zbuf1*cpexp+zbuf2*cpexp2)
234
235            zbuf1 = -(devk1(1)+devk2(1)*tc+devk3(1)*tc*tc)
236            zbuf2 = 0.5*(devk4(1)+devk5(1)*tc)
237            ak13(ji,jj,jk) = ak1*exp(zbuf1*cpexp+zbuf2*cpexp2)
238
239            zbuf1 = -(devk1(2)+devk2(2)*tc+devk3(2)*tc*tc)
240            zbuf2 = 0.5*(devk4(2)+devk5(2)*tc)
241            ak23(ji,jj,jk) = ak2*exp(zbuf1*cpexp+zbuf2*cpexp2)
242
243            zbuf1 = -(devk1(4)+devk2(4)*tc+devk3(4)*tc*tc)
244            zbuf2 = 0.5*(devk4(4)+devk5(4)*tc)
245            akp13(ji,jj,jk) = akp1*exp(zbuf1*cpexp+zbuf2*cpexp2)
246
247            zbuf1 = -(devk1(5)+devk2(5)*tc+devk3(5)*tc*tc)
248            zbuf2 = 0.5*(devk4(5)+devk5(5)*tc)
249            akp23(ji,jj,jk) = akp2*exp(zbuf1*cpexp+zbuf2*cpexp2)
250
251            zbuf1 = -(devk1(6)+devk2(6)*tc+devk3(6)*tc*tc)
252            zbuf2 = 0.5*(devk4(6)+devk5(6)*tc)
253            akp33(ji,jj,jk) = akp3*exp(zbuf1*cpexp+zbuf2*cpexp2)
254
255            zbuf1 = -(devk1(7)+devk2(7)*tc+devk3(7)*tc*tc)
256            zbuf2 = 0.5*(devk4(7)+devk5(7)*tc)
257            akw3(ji,jj,jk) = akw*exp(zbuf1*cpexp+zbuf2*cpexp2)
258
259C  Ksi
260C            aksi3(ji,jj,jk) = aksi
261C
262C  Or using coefficient of borates (cf millero 95+ corrected version html doc co2sys)
263C  "deltaVsi and deltaKsi have been estimated from the value of boric acid"
264C
265            zbuf1 = -(devk1(3)+devk2(3)*tc+devk3(3)*tc*tc)
266            zbuf2 = 0.5*(devk4(3)+devk5(3)*tc)
267            aksi3(ji,jj,jk) = aksi*exp(zbuf1*cpexp+zbuf2*cpexp2)
268
269C
270C
271C* 2.15 APPARENT SOLUBILITY PRODUCT K'SP OF CALCITE 
272C        AS FUNCTION OF PRESSURE FOLLOWING MILLERO
273C        (P. 1285) AND BERNER (1976)
274C -------------------------------------------------
275
276            zbuf1 = -(devk1(8)+devk2(8)*tc+devk3(8)*tc*tc)
277            zbuf2 = 0.5*(devk4(8)+devk5(8)*tc)
278            aksp(ji,jj,jk) = aksp1*exp(zbuf1*cpexp+zbuf2*cpexp2)
279
280C  Pressure correction for sulfate and fluoride
281C
282            zbuf1 = -(devk1(9)+devk2(9)*tc+devk3(9)*tc*tc)
283            zbuf2 = 0.5*(devk4(9)+devk5(9)*tc)
284            aks3(ji,jj,jk) = aks*exp(zbuf1*cpexp+zbuf2*cpexp2)
285
286            zbuf1 = -(devk1(10)+devk2(10)*tc+devk3(10)*tc*tc)
287            zbuf2 = 0.5*(devk4(10)+devk5(10)*tc)
288            akf3(ji,jj,jk) = akf*exp(zbuf1*cpexp+zbuf2*cpexp2)
289
290
291C
292C* 2.11 TOTAL BORATE CONCENTR. [MOLES/L]
293C --------------------------------------
294C
295            borat(ji,jj,jk) = bor1*cl*bor2
296C
297C  2.12 Iron and SIO3 saturation concentration from ...
298C  ----------------------------------------------------
299C
300         sio3eq(ji,jj,jk)=exp(log(10.)*(6.44-968./tkel))*1E-6
301         fekeq(ji,jj,jk)=10**(17.27-1565.7/(273.15+tc))
302C
303          ENDDO
304        ENDDO
305      END DO
306C
307#endif
308C
309      RETURN
310      END
Note: See TracBrowser for help on using the repository browser.