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

source: branches/dev_001_GM/NEMO/TOP_SRC/PISCES_SMS/p4zprod.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: 7.8 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 p4zprod
[772]8#if defined key_top && defined key_pisces
[186]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
[339]45#include "domzgr_substitute.h90"
[186]46CDIR$ LIST
47CC----------------------------------------------------------------------
48CC local declarations
49CC ==================
50      INTEGER ji, jj, jk
51      REAL silfac,pislopen(jpi,jpj,jpk),pislope2n(jpi,jpj,jpk)
[339]52      REAL zmixnano(jpi,jpj),zmixdiat(jpi,jpj),zfact
[186]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)
[617]57      REAL xlim,silfac2,siborn,zprod
58      REAL zmxltst,zmxlday,xlim1
[339]59C
[186]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
[339]74        DO jk = 1,jpkm1
75          DO jj = 1,jpj
76            DO ji = 1,jpi
[186]77C
78C      Computation of the P-I slope for nanos and diatoms
79C      --------------------------------------------------
80C
81        ztn=max(0.,tn(ji,jj,jk)-15.)
[339]82        zadap=1.+2.*ztn/(2.+ztn)
83        zadap2=1.
[186]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
[339]102        DO  jk = 1,jpkm1
[186]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
[339]118        DO  jk = 1,jpkm1
[186]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
[339]129C
[617]130        xlim1=trn(ji,jj,jk,jpsil)/(trn(ji,jj,jk,jpsil)+xksi1)
[339]131        xlim=xdiatno3(ji,jj,jk)+xdiatnh4(ji,jj,jk)
132C
133        silim=min(prdia(ji,jj,jk)/(rtrn+prmax(ji,jj,jk)),
134     &    trn(ji,jj,jk,jpfer)/(concdfe(ji,jj,jk)+trn(ji,jj,jk,jpfer)),
135     &    trn(ji,jj,jk,jppo4)/(concdnh4+trn(ji,jj,jk,jppo4)),
136     &    xlim)
[617]137        silfac=5.4*exp(-4.23*silim)*max(0.,min(1.,2.2*(xlim1-0.5)))+1.
[186]138        siborn=max(0.,(trn(ji,jj,jk,jpsil)-15.E-6))
[339]139        silfac2=1.+3.*siborn/(siborn+xksi2)
[617]140        silfac=min(6.4,silfac*silfac2)
[186]141C
142        ysopt(ji,jj,jk)=grosip*trn(ji,jj,jk,jpsil)/(trn(ji,jj,jk,jpsil)
[339]143     $    +xksi1)*silfac
[186]144C
145            END DO
146          END DO
147        END DO
[339]148C
149C    Computation of the limitation term due to
150C    A mixed layer deeper than the euphotic depth
151C    --------------------------------------------
152C
153        DO jj=1,jpj
154          DO ji=1,jpi
155         zmxltst=max(0.,hmld(ji,jj)-zmeu(ji,jj))
156         zmxlday=zmxltst**2/rjjss
[651]157         zmixnano(ji,jj)=1.-zmxlday/(1.+zmxlday)
158         zmixdiat(ji,jj)=1.-zmxlday/(3.+zmxlday)
[339]159          END DO
160        END DO
161                                                                               
162        DO  jk = 1,jpkm1
[186]163          DO  jj = 1,jpj
164            DO  ji = 1,jpi
[339]165         if (fsdepw(ji,jj,jk+1).le.hmld(ji,jj)) then
166C
[186]167C     Mixed-layer effect on production
168C     --------------------------------
169C
[339]170         prbio(ji,jj,jk)=prbio(ji,jj,jk)*zmixnano(ji,jj)
171         prdia(ji,jj,jk)=prdia(ji,jj,jk)*zmixdiat(ji,jj)
172         endif
[186]173            END DO
174          END DO
175        END DO
[339]176C
177        DO jk = 1,jpkm1
[186]178          DO jj = 1,jpj
179            DO ji = 1,jpi
180C
181C      Computation of the maximum light intensity
182C      ------------------------------------------
183C
184        etot2(ji,jj,jk)=etot(ji,jj,jk)*24./(strn(ji,jj)+rtrn)
185        IF (strn(ji,jj).lt.1.) etot2(ji,jj,jk)=etot(ji,jj,jk)
186C
187            END DO
188          END DO
189        END DO
190
[339]191        DO jk = 1,jpkm1
[186]192          DO jj = 1,jpj
193            DO ji = 1,jpi
194C
195C     Computation of the various production terms for nanophyto.
196C     ----------------------------------------------------------
197C
[617]198        pislopen(ji,jj,jk)=pislopead(ji,jj,jk)
199     &    *trn(ji,jj,jk,jpnch)/(rtrn+trn(ji,jj,jk,jpphy)*12.)
200     &    /(prmax(ji,jj,jk)*rjjss*max(0.1,xlimphy(ji,jj,jk))+rtrn)
201
[186]202        prbiochl = prmax(ji,jj,jk)
203     &    *(1.-exp(-pislopen(ji,jj,jk)*etot2(ji,jj,jk)))
204
205        prorca(ji,jj,jk) = prbio(ji,jj,jk)
206     &    *xlimphy(ji,jj,jk)*trn(ji,jj,jk,jpphy)*rfact2
207
208        pronew(ji,jj,jk)=prorca(ji,jj,jk)*xnanono3(ji,jj,jk)
209     &    /(xnanono3(ji,jj,jk)+xnanonh4(ji,jj,jk)+rtrn)
210        proreg(ji,jj,jk)=prorca(ji,jj,jk)-pronew(ji,jj,jk)
211C
212        zprod=rjjss*prorca(ji,jj,jk)*prbiochl*trn(ji,jj,jk,jpphy)
[339]213     &    *max(0.1,xlimphy(ji,jj,jk))
214
215        prorca5(ji,jj,jk) = (fecnm)**2*zprod/chlcnm
[186]216     &    /(pislopead(ji,jj,jk)*etot2(ji,jj,jk)*trn(ji,jj,jk,jpnfe)
217     &    +rtrn)
218
[617]219        prorca6(ji,jj,jk) = chlcnm*144.*zprod/(pislopead(ji,jj,jk)
220     &    *etot2(ji,jj,jk)*trn(ji,jj,jk,jpnch)+rtrn)
[186]221
222            END DO
223          END DO
224        END DO
225
[339]226        DO  jk = 1,jpkm1
[186]227          DO  jj = 1,jpj
228            DO  ji = 1,jpi
229C
230C       Computation of the various production terms for diatoms
231C       -------------------------------------------------------
232C
[617]233        pislope2n(ji,jj,jk)=pislopead2(ji,jj,jk)
234     &    *trn(ji,jj,jk,jpdch)/(rtrn+trn(ji,jj,jk,jpdia)*12.)
235     &    /(prmax(ji,jj,jk)*rjjss*max(0.1,xlimdia(ji,jj,jk))+rtrn)
236
[186]237        prdiachl = prmax(ji,jj,jk)
238     &    *(1.-exp(-etot2(ji,jj,jk)*pislope2n(ji,jj,jk)))
239C
240        prorca2(ji,jj,jk) = prdia(ji,jj,jk)
241     &    *xlimdia(ji,jj,jk)*trn(ji,jj,jk,jpdia)*rfact2
[651]242
[186]243C
244        pronew2(ji,jj,jk)=prorca2(ji,jj,jk)*xdiatno3(ji,jj,jk)
245     &    /(xdiatno3(ji,jj,jk)+xdiatnh4(ji,jj,jk)+rtrn)
246        proreg2(ji,jj,jk)=prorca2(ji,jj,jk)-pronew2(ji,jj,jk)
247        prorca3(ji,jj,jk) = prorca2(ji,jj,jk)*ysopt(ji,jj,jk)
248C
[339]249        zprod=rjjss*prorca2(ji,jj,jk)*prdiachl*trn(ji,jj,jk,jpdia)
250     &    *max(0.1,xlimdia(ji,jj,jk))
251
[186]252C
[617]253        prorca4(ji,jj,jk) = (fecdm)**2*zprod/chlcdm
[186]254     &    /(pislopead2(ji,jj,jk)*etot2(ji,jj,jk)*trn(ji,jj,jk,jpdfe)
255     &    +rtrn)
256C
[339]257        prorca7(ji,jj,jk) = chlcdm*144.*zprod/(pislopead2(ji,jj,jk)
[617]258     &    *etot2(ji,jj,jk)*trn(ji,jj,jk,jpdch)+rtrn)
[186]259C
260            END DO
261          END DO
262        END DO
263C
264#endif
265      RETURN
266      END
Note: See TracBrowser for help on using the repository browser.