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 trunk/NEMO/TOP_SRC/SMS – NEMO

source: trunk/NEMO/TOP_SRC/SMS/p4zlys.F @ 186

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

CL + CE : NEMO TRC_SRC start

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