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

source: trunk/NEMO/TOP_SRC/SMS/p4zprod.F @ 565

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

nemo_v1_update_028 : CT : add missing headers

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 7.6 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 p4zprod
8#if defined key_passivetrc && defined key_trc_pisces
9CCC---------------------------------------------------------------------
10CCC
11CCC           ROUTINE p4zprod : PISCES MODEL
12CCC           ******************************
13CCC
14CCC  PURPOSE :
15CCC  ---------
16CCC         Compute the phytoplankton production depending on
17CCC         light, temperature and nutrient availability
18CCC
19CC   INPUT :
20CC   -----
21CC      argument
22CC              None
23CC      common
24CC              all the common defined in opa
25CC
26CC
27CC   OUTPUT :                   : no
28CC   ------
29CC
30CC   EXTERNAL :
31CC   --------
32CC             p4zday
33CC
34CC   MODIFICATIONS:
35CC   --------------
36CC      original  : O. Aumont (2004) 
37CC----------------------------------------------------------------------
38CC parameters and commons
39CC ======================
40CDIR$ NOLIST
41      USE oce_trc
42      USE trp_trc
43      USE sms
44      IMPLICIT NONE
45#include "domzgr_substitute.h90"
46CDIR$ LIST
47CC----------------------------------------------------------------------
48CC local declarations
49CC ==================
50      INTEGER ji, jj, jk
51      REAL silfac,pislopen(jpi,jpj,jpk),pislope2n(jpi,jpj,jpk)
52      REAL zmixnano(jpi,jpj),zmixdiat(jpi,jpj),zfact
53      REAL prdiachl,prbiochl,silim,ztn,zadap,zadap2
54      REAL ysopt(jpi,jpj,jpk),pislopead(jpi,jpj,jpk)
55      REAL prdia(jpi,jpj,jpk),prbio(jpi,jpj,jpk)
56      REAL etot2(jpi,jpj,jpk),pislopead2(jpi,jpj,jpk)
57      REAL xlim,silfac2,siborn,zprod,zprod2
58      REAL zmxltst,zmxlday
59C
60C     Computation of the optimal production
61C     -------------------------------------
62C
63C
64        prmax(:,:,:)=0.6/rjjss*tgfunc(:,:,:)
65#    if defined key_off_degrad
66     &  *facvol(:,:,:)
67#    endif
68C
69C     Computation of the day length
70C     -----------------------------
71C
72        call p4zday 
73
74        DO jk = 1,jpkm1
75          DO jj = 1,jpj
76            DO ji = 1,jpi
77C
78C      Computation of the P-I slope for nanos and diatoms
79C      --------------------------------------------------
80C
81        ztn=max(0.,tn(ji,jj,jk)-15.)
82        zadap=1.+2.*ztn/(2.+ztn)
83        zadap2=1.
84
85        zfact=exp(-0.21*emoy(ji,jj,jk))
86
87        pislopead(ji,jj,jk)=pislope*(1.+zadap*zfact)
88        pislopead2(ji,jj,jk)=pislope2*(1.+zadap2*zfact)
89
90        pislopen(ji,jj,jk)=pislopead(ji,jj,jk)
91     &    *trn(ji,jj,jk,jpnch)/(rtrn+trn(ji,jj,jk,jpphy)*12.)
92     &    /(prmax(ji,jj,jk)*rjjss*xlimphy(ji,jj,jk)+rtrn)
93
94        pislope2n(ji,jj,jk)=pislopead2(ji,jj,jk)
95     &    *trn(ji,jj,jk,jpdch)/(rtrn+trn(ji,jj,jk,jpdia)*12.)
96     &    /(prmax(ji,jj,jk)*rjjss*xlimdia(ji,jj,jk)+rtrn)
97C
98            END DO
99          END DO
100        END DO
101
102        DO  jk = 1,jpkm1
103          DO  jj = 1,jpj
104            DO  ji = 1,jpi
105C
106C     Computation of production function
107C     ----------------------------------
108C
109        prbio(ji,jj,jk) = prmax(ji,jj,jk)
110     &    *(1.-exp(-pislopen(ji,jj,jk)*etot(ji,jj,jk)))
111        prdia(ji,jj,jk) = prmax(ji,jj,jk)
112     &    *(1.-exp(-pislope2n(ji,jj,jk)*etot(ji,jj,jk)))
113
114            END DO
115          END DO
116        END DO
117
118        DO  jk = 1,jpkm1
119          DO  jj = 1,jpj
120            DO  ji = 1,jpi
121C
122C    Si/C of diatoms
123C    ------------------------
124C    Si/C increases with iron stress and silicate availability
125C    Si/C is arbitrariliy increased for very high Si concentrations
126C    to mimic the very high ratios observed in the Southern Ocean
127c    (silpot2)
128C
129C
130        xlim=xdiatno3(ji,jj,jk)+xdiatnh4(ji,jj,jk)
131C
132        silim=min(prdia(ji,jj,jk)/(rtrn+prmax(ji,jj,jk)),
133     &    trn(ji,jj,jk,jpfer)/(concdfe(ji,jj,jk)+trn(ji,jj,jk,jpfer)),
134     &    trn(ji,jj,jk,jppo4)/(concdnh4+trn(ji,jj,jk,jppo4)),
135     &    xlim)
136        silfac=5.4*exp(-4.23*silim)+1.13
137        siborn=max(0.,(trn(ji,jj,jk,jpsil)-15.E-6))
138        silfac2=1.+3.*siborn/(siborn+xksi2)
139        silfac=min(7.6,silfac*silfac2)
140C
141        ysopt(ji,jj,jk)=grosip*trn(ji,jj,jk,jpsil)/(trn(ji,jj,jk,jpsil)
142     $    +xksi1)*silfac
143C
144            END DO
145          END DO
146        END DO
147C
148C    Computation of the limitation term due to
149C    A mixed layer deeper than the euphotic depth
150C    --------------------------------------------
151C
152        DO jj=1,jpj
153          DO ji=1,jpi
154         zmxltst=max(0.,hmld(ji,jj)-zmeu(ji,jj))
155         zmxlday=zmxltst**2/rjjss
156         zmixnano(ji,jj)=1.-zmxlday/(12.+zmxlday)
157         zmixdiat(ji,jj)=1.-zmxlday/(36.+zmxlday)
158          END DO
159        END DO
160                                                                               
161        DO  jk = 1,jpkm1
162          DO  jj = 1,jpj
163            DO  ji = 1,jpi
164         if (fsdepw(ji,jj,jk+1).le.hmld(ji,jj)) then
165C
166C     Mixed-layer effect on production
167C     --------------------------------
168C
169         prbio(ji,jj,jk)=prbio(ji,jj,jk)*zmixnano(ji,jj)
170         prdia(ji,jj,jk)=prdia(ji,jj,jk)*zmixdiat(ji,jj)
171         endif
172            END DO
173          END DO
174        END DO
175C
176        DO jk = 1,jpkm1
177          DO jj = 1,jpj
178            DO ji = 1,jpi
179C
180C      Computation of the maximum light intensity
181C      ------------------------------------------
182C
183        etot2(ji,jj,jk)=etot(ji,jj,jk)*24./(strn(ji,jj)+rtrn)
184        IF (strn(ji,jj).lt.1.) etot2(ji,jj,jk)=etot(ji,jj,jk)
185C
186            END DO
187          END DO
188        END DO
189
190        DO jk = 1,jpkm1
191          DO jj = 1,jpj
192            DO ji = 1,jpi
193C
194C     Computation of the various production terms for nanophyto.
195C     ----------------------------------------------------------
196C
197        prbiochl = prmax(ji,jj,jk)
198     &    *(1.-exp(-pislopen(ji,jj,jk)*etot2(ji,jj,jk)))
199
200        prorca(ji,jj,jk) = prbio(ji,jj,jk)
201     &    *xlimphy(ji,jj,jk)*trn(ji,jj,jk,jpphy)*rfact2
202
203        pronew(ji,jj,jk)=prorca(ji,jj,jk)*xnanono3(ji,jj,jk)
204     &    /(xnanono3(ji,jj,jk)+xnanonh4(ji,jj,jk)+rtrn)
205        proreg(ji,jj,jk)=prorca(ji,jj,jk)-pronew(ji,jj,jk)
206C
207        zprod=rjjss*prorca(ji,jj,jk)*prbiochl*trn(ji,jj,jk,jpphy)
208     &    *xlimphy(ji,jj,jk)
209
210        zprod2=rjjss*prorca(ji,jj,jk)*prbiochl*trn(ji,jj,jk,jpphy)
211     &    *max(0.1,xlimphy(ji,jj,jk))
212
213        prorca5(ji,jj,jk) = (fecnm)**2*zprod/chlcnm
214     &    /(pislopead(ji,jj,jk)*etot2(ji,jj,jk)*trn(ji,jj,jk,jpnfe)
215     &    +rtrn)
216
217        prorca6(ji,jj,jk) = chlcnm*144.*zprod2/(pislopead(ji,jj,jk)
218     &    *etot2(ji,jj,jk)*max(trn(ji,jj,jk,jpnch),1.E-10)+rtrn)
219
220            END DO
221          END DO
222        END DO
223
224        DO  jk = 1,jpkm1
225          DO  jj = 1,jpj
226            DO  ji = 1,jpi
227C
228C       Computation of the various production terms for diatoms
229C       -------------------------------------------------------
230C
231        prdiachl = prmax(ji,jj,jk)
232     &    *(1.-exp(-etot2(ji,jj,jk)*pislope2n(ji,jj,jk)))
233C
234        prorca2(ji,jj,jk) = prdia(ji,jj,jk)
235     &    *xlimdia(ji,jj,jk)*trn(ji,jj,jk,jpdia)*rfact2
236C
237        pronew2(ji,jj,jk)=prorca2(ji,jj,jk)*xdiatno3(ji,jj,jk)
238     &    /(xdiatno3(ji,jj,jk)+xdiatnh4(ji,jj,jk)+rtrn)
239        proreg2(ji,jj,jk)=prorca2(ji,jj,jk)-pronew2(ji,jj,jk)
240        prorca3(ji,jj,jk) = prorca2(ji,jj,jk)*ysopt(ji,jj,jk)
241C
242        zprod=rjjss*prorca2(ji,jj,jk)*prdiachl*trn(ji,jj,jk,jpdia)
243     &    *max(0.1,xlimdia(ji,jj,jk))
244
245        zprod2=rjjss*prorca2(ji,jj,jk)*prdiachl*xlimdia2(ji,jj,jk)
246     &    *trn(ji,jj,jk,jpdia)
247
248C
249        prorca4(ji,jj,jk) = (fecdm)**2*zprod2/chlcdm
250     &    /(pislopead2(ji,jj,jk)*etot2(ji,jj,jk)*trn(ji,jj,jk,jpdfe)
251     &    +rtrn)
252C
253        prorca7(ji,jj,jk) = chlcdm*144.*zprod/(pislopead2(ji,jj,jk)
254     &    *etot2(ji,jj,jk)*max(trn(ji,jj,jk,jpdch),1.E-10)+rtrn)
255C
256            END DO
257          END DO
258        END DO
259C
260#endif
261      RETURN
262      END
263
Note: See TracBrowser for help on using the repository browser.