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 branches/dev_001_GM/NEMO/TOP_SRC/PISCES_SMS – NEMO

source: branches/dev_001_GM/NEMO/TOP_SRC/PISCES_SMS/p4zlys.F @ 772

Last change on this file since 772 was 772, checked in by gm, 16 years ago

dev_001_GM - change the name of cpp key to key_top, key_lobster, key_pisces, key_kriest and the corresponding lk_

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