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.
p4zlys.F in tags/nemo_v1_04/NEMO/TOP_SRC/SMS – NEMO

source: tags/nemo_v1_04/NEMO/TOP_SRC/SMS/p4zlys.F @ 8023

Last change on this file since 8023 was 274, checked in by opalod, 19 years ago

nemo_v1_update_005:RB: update headers for the TOP component.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 4.5 KB
Line 
1CCC$Header$
2CCC  TOP 1.0 , LOCEAN-IPSL (2005)
3C This software is governed by CeCILL licence see modipsl/doc/NEMO_CeCILL.txt
4C ---------------------------------------------------------------------------
5CDIR$ LIST
6       SUBROUTINE p4zlys
7#if defined key_passivetrc && defined key_trc_pisces
8CCC---------------------------------------------------------------------
9CCC
10CCC        ROUTINE p4zlys : PISCES MODEL
11CCC        *****************************
12CCC
13CCC
14CCC     PURPOSE.
15CCC     --------
16CCC          *P4ZLYS*  CALCULATES DEGREE OF CACO3 SATURATION IN THE WATER
17CCC                    COLUMN, DISSOLUTION/PRECIPITATION OF CACO3 AND LOSS
18CCC                    OF CACO3 TO THE CACO3 SEDIMENT POOL.
19CC
20CC     EXTERNALS.
21CC     ----------
22CC          NONE.
23CC
24CC   MODIFICATIONS:
25CC   --------------
26CC      original      : 1988-07 E. MAIER-REIMER      MPI HAMBURG
27CC      additions     : 1998    O. Aumont
28CC      modifications : 1999    C. Le Quere
29CC      modifications : 2004    O. Aumont
30CC ---------------------------------------------------------------------------
31CC parameters and commons
32CC ======================
33CDIR$ NOLIST
34      USE oce_trc
35      USE trp_trc
36      USE sms
37      IMPLICIT NONE
38CDIR$ LIST
39CC----------------------------------------------------------------------
40CC local declarations
41CC ==================
42C
43      INTEGER ji, jj, jk, jn
44      REAL zbot, zalk, zdic, zph, remco3, ah2
45      REAL delco3, excess, dispot
46C
47C
48C* 1.1  BEGIN OF ITERATION
49C ------------------------
50C
51      DO jn = 1,5
52C
53C* 1.2  COMPUTE [CO3--] and [H+] CONCENTRATIONS
54C -------------------------------------------
55C
56        DO jk = 1,jpkm1
57          DO jj=1,jpj
58            DO ji = 1, jpi
59C
60C* 1.3  SET DUMMY VARIABLE FOR TOTAL BORATE
61C -----------------------------------------
62C
63              zbot = borat(ji,jj,jk)
64C
65C* 1.4  SET DUMMY VARIABLE FOR [H+]
66C ---------------------------------
67C
68              zph = hi(ji,jj,jk)*tmask(ji,jj,jk)
69     &           +(1.-tmask(ji,jj,jk))*1.e-9
70C
71C* 1.5  SET DUMMY VARIABLE FOR [SUM(CO2)]GIVEN 
72C -------------------------------------------
73C
74              zdic = trn(ji,jj,jk,jpdic) 
75C
76C* 1.6 CALCULATE [ALK]([CO3--], [HCO3-])
77C ------------------------------------
78C
79              zalk=trn(ji,jj,jk,jptal)-
80     &            (akw3(ji,jj,jk)/zph-zph
81     &            +zbot/(1.+zph/akb3(ji,jj,jk)))
82C
83C* 2.10 CALCULATE [H+] and [CO3--]
84C -----------------------------------------
85C
86              ah2=sqrt((zdic-zalk)*(zdic-zalk)+
87     &          4.*(zalk*ak23(ji,jj,jk)/ak13(ji,jj,jk))
88     &          *(2*zdic-zalk))
89C
90              ah2=0.5*ak13(ji,jj,jk)/zalk*((zdic-zalk)+ah2)
91              co3(ji,jj,jk) = zalk/(2.+ah2/ak23(ji,jj,jk))
92C
93              hi(ji,jj,jk)  = ah2
94C
95            ENDDO
96          ENDDO
97        END DO
98      END DO
99C
100C     ---------------------------------------------------------
101C*    2. CALCULATE DEGREE OF CACO3 SATURATION AND CORRESPONDING
102C        DISSOLOUTION AND PRECIPITATION OF CACO3 (BE AWARE OF
103C        MGCO3)
104C     ---------------------------------------------------------
105C
106      DO jk = 1,jpkm1
107        DO jj = 1,jpj
108          DO ji = 1, jpi
109C
110C* 2.1  DEVIATION OF [CO3--] FROM SATURATION VALUE
111C ------------------------------------------------
112C
113            delco3 = co3(ji,jj,jk)-aksp(ji,jj,jk)/calcon
114C
115C* 2.2  SET DEGREE OF UNDER-/SUPERSATURATION
116C ------------------------------------------
117C
118            excess = max(0.,delco3)
119C
120C* 2.3  AMOUNT CACO3 (12C) THAT RE-ENTERS SOLUTION
121C       (ACCORDING TO THIS FORMULATION ALSO SOME PARTICULATE
122C       CACO3 GETS DISSOLVED EVEN IN THE CASE OF OVERSATURATION)
123C --------------------------------------------------------------
124C
125            dispot = trn(ji,jj,jk,jpcal)*min(1.,
126     &          (1.-delco3/(dispo0+abs(delco3))) )
127#    if defined key_off_degrad
128     &          *facvol(ji,jj,jk)
129#    endif
130C
131C* 2.4  CHANGE OF [CO3--] , [ALK], PARTICULATE [CACO3],
132C       AND [SUM(CO2)] DUE TO CACO3 DISSOLUTION/PRECIPITATION
133C -----------------------------------------------------------
134C
135            remco3=dispot/rmoss
136            co3(ji,jj,jk) = co3(ji,jj,jk)+
137     &          remco3*rfact
138            tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal)+
139     &          2.*remco3
140            tra(ji,jj,jk,jpcal) = tra(ji,jj,jk,jpcal)-
141     &          remco3
142            tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic)+
143     &          remco3
144C
145          ENDDO
146        ENDDO
147      END DO
148
149#    if defined key_trc_dia3d
150         trc3d(:,:,:,1) = hi(:,:,:)
151         trc3d(:,:,:,2) = co3(:,:,:)
152         trc3d(:,:,:,3) = aksp(:,:,:)/calcon
153#    endif
154
155C
156#endif
157      RETURN
158      END
Note: See TracBrowser for help on using the repository browser.