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.
p4zflx.F in trunk/NEMO/TOP_SRC/SMS – NEMO

source: trunk/NEMO/TOP_SRC/SMS/p4zflx.F @ 340

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

nemo_v1_update_027 : CE + RB + CT : update of SMS routines

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 4.7 KB
Line 
1CDIR$ LIST
2      SUBROUTINE p4zflx
3#if defined key_passivetrc && defined key_trc_pisces
4CCC---------------------------------------------------------------------
5CCC
6CCC          ROUTINE p4zflx : PISCES MODEL
7CCC          *****************************
8CCC
9CCC
10CC     PURPOSE.
11CC     --------
12CC          *P4ZFLX* CALCULATES GAS EXCHANGE AND CHEMISTRY AT SEA SURFACE
13CC
14CC     EXTERNALS.
15CC     ----------
16CC          NONE.
17CC
18CC   MODIFICATIONS:
19CC   --------------
20CC      original      : 1988-07 E. MAIER-REIMER      MPI HAMBURG
21CC      additions     : 1998    O. Aumont
22CC      modifications : 1999    C. Le Quere
23CC      modifications : 2004    O. Aumont
24CC     -----------------------------------------------------------------
25CC  parameters and commons
26CC ======================
27CDIR$ NOLIST
28      USE oce_trc
29      USE trp_trc
30      USE sms
31      IMPLICIT NONE
32#include "domzgr_substitute.h90"
33CDIR$ LIST
34CC----------------------------------------------------------------------
35CC local declarations
36CC ==================
37C
38      INTEGER nspyr, ji, jj, krorr
39      REAL zpdtan
40      REAL kgco2(jpi,jpj),kgo2(jpi,jpj)
41      REAL ttc, ws
42      REAL fld, flu, oxy16, flu16, zfact
43      REAL zph,ah2,zbot,zdic,zalk,schmitto2, zalka
44      REAL schmittco2
45C
46C
47C  1. ASSIGNATION TO EXPONENTS IN THE LISS AND MERLIVAT
48C     FORMULATION OF THE GAS EXCHANGE RATE
49c -----------------------------------------------------
50C
51      zpdtan = raass / rdt
52      nspyr  = nint(zpdtan)
53C
54C* 1.1 SURFACE CHEMISTRY (PCO2 AND [H+] IN
55C     SURFACE LAYER); THE RESULT OF THIS CALCULATION
56C     IS USED TO COMPUTE AIR-SEA FLUX OF CO2
57C ---------------------------------------------------
58C
59      DO krorr = 1,10
60C
61        DO jj = 1,jpj
62          DO ji = 1,jpi
63C
64C* 1.2 DUMMY VARIABLES FOR DIC, H+, AND BORATE
65C --------------------------------------------
66C
67        zbot = borat(ji,jj,1)
68        zfact = rhop(ji,jj,1)/1000.+rtrn
69        zdic  = trn(ji,jj,1,jpdic)/zfact
70        zph = max(hi(ji,jj,1),1.E-10)/zfact
71        zalka = trn(ji,jj,1,jptal)/zfact
72C
73C* 1.3 CALCULATE [ALK]([CO3--], [HCO3-])
74C ------------------------------------
75C
76        zalk=zalka-
77     &        (akw3(ji,jj,1)/zph-zph+zbot/(1.+zph/akb3(ji,jj,1)))
78C
79C* 1.4 CALCULATE [H+] AND [H2CO3]
80C -----------------------------------------
81C
82         ah2=sqrt((zdic-zalk)**2+4*(zalk*ak23(ji,jj,1)
83     &     /ak13(ji,jj,1))*(2*zdic-zalk))
84        ah2=0.5*ak13(ji,jj,1)/zalk*((zdic-zalk)+ah2)
85        h2co3(ji,jj) = (2*zdic-zalk)/(2.+ak13(ji,jj,1)/ah2)*zfact
86        hi(ji,jj,1)  = ah2*zfact
87          END DO
88        END DO
89      END DO
90C
91C
92C 2. COMPUTE FLUXES
93C --------------
94C
95C 2.1 FIRST COMPUTE GAS EXCHANGE COEFFICIENTS
96C -------------------------------------------
97C
98      DO jj = 1,jpj
99        DO ji = 1,jpi
100C
101          ttc = min(35.,tn(ji,jj,1))
102          schmittco2=2073.1-125.62*ttc+3.6276*ttc**2
103     &      -0.043126*ttc**3
104          ws=vatm(ji,jj)
105C
106C 2.2 COMPUTE GAS EXCHANGE FOR CO2
107C --------------------------------
108C
109          kgco2(ji,jj) = (0.3*ws*ws + 2.5*(0.5246+ttc*(0.016256+
110     &      ttc*0.00049946)))*sqrt(660./schmittco2)
111C
112C 2.3 CONVERT TO m/s, and apply sea-ice cover
113C -----------------------------------------------------
114C
115          kgco2(ji,jj) = kgco2(ji,jj)/(100.*3600.)
116     &      *(1-freeze(ji,jj))*tmask(ji,jj,1)
117C
118         END DO
119       END DO
120C
121C 2.5 COMPUTE GAS EXCHANGE COEFFICIENT FO O2 FROM
122C      Waninkhof EQUATIONS
123C -----------------------------------------------
124C
125       DO jj = 1,jpj
126         DO ji = 1,jpi
127C
128          ws = vatm(ji,jj)
129          schmitto2 = 1953.4-128.0*ttc+3.9918*ttc**2
130     &      -0.050091*ttc**3
131
132          kgo2(ji,jj) = (0.3*ws*ws + 2.5*(0.5246+ttc*(0.016256+
133     &      ttc*0.00049946)))*sqrt(660./schmitto2)
134C
135C CONVERT TO m/s AND APPLY SEA ICE COVER
136C -------------------------------------
137C
138          kgo2(ji,jj) = kgo2(ji,jj)/(100.*3600.)
139     $      *(1-freeze(ji,jj))*tmask(ji,jj,1)
140C
141         ENDDO
142       ENDDO
143C
144       DO jj = 1,jpj
145         DO ji = 1,jpi
146C
147C Compute CO2 flux for the sea and air
148C ------------------------------------
149C
150          fld = atcco2*tmask(ji,jj,1)*chemc(ji,jj,3)*kgco2(ji,jj)
151          flu = h2co3(ji,jj)*tmask(ji,jj,1)*kgco2(ji,jj)
152          tra(ji,jj,1,jpdic)= tra(ji,jj,1,jpdic)+(fld-flu)
153     &      /fse3t(ji,jj,1)
154C
155C Compute O2 flux 
156C ---------------
157C
158          oxy16 = trn(ji,jj,1,jpoxy)
159          flu16 = (atcox*chemc(ji,jj,2)-oxy16)*kgo2(ji,jj)
160          tra(ji,jj,1,jpoxy) = tra(ji,jj,1,jpoxy)+flu16
161     &      /fse3t(ji,jj,1)
162C
163C Save diagnostics
164C ----------------
165C
166#    if defined key_trc_diaadd
167          trc2d(ji,jj,1) = (fld-flu)*1000.
168          trc2d(ji,jj,2) = flu16*1000.
169          trc2d(ji,jj,3) = kgco2(ji,jj)
170          trc2d(ji,jj,4) = atcco2-h2co3(ji,jj)/(chemc(ji,jj,1)+rtrn)
171#    endif
172C
173        END DO
174      END DO
175C
176#endif
177      RETURN
178      END
Note: See TracBrowser for help on using the repository browser.