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