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

Last change on this file since 772 was 772, checked in by gm, 13 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:keywords set to Author Date Id Revision
File size: 4.5 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 p4zlim
8#if defined key_top && defined key_pisces
9CCC---------------------------------------------------------------------
10CCC
11CCC             ROUTINE p4zlim : PISCES MODEL
12CCC             *****************************
13CCC
14CCC  PURPOSE :
15CCC  ---------
16CCC         Compute the co-limitations by the various nutrients
17CCC         for the various phytoplankton species
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   MODIFICATIONS:
31CC   --------------
32CC      original  : O. Aumont (2004)
33CC----------------------------------------------------------------------
34CC parameters and commons
35CC ======================
36CDIR$ NOLIST
37      USE oce_trc
38      USE trp_trc
39      USE sms
40      IMPLICIT NONE
41#include "domzgr_substitute.h90"
42CDIR$ LIST
43CC----------------------------------------------------------------------
44CC local declarations
45CC ==================
46      INTEGER ji, jj, jk
47      REAL xlim1,xlim2,xlim3,xlim4,zno3,zferlim
48      REAL xconctemp,xconctemp2,xconctempn,xconctempn2
49C
50C  Tuning of the iron concentration to a minimum
51C  level that is set to the detection limit
52C  -------------------------------------
53C
54        do jk=1,jpk
55          do jj=1,jpj
56            do ji=1,jpi
57        zno3=trn(ji,jj,jk,jpno3)*1E6
58        zferlim=max(1.5E-11*(zno3/40)**2,3E-12)
59        zferlim=min(zferlim,1.5E-11)
60        trn(ji,jj,jk,jpfer)=max(trn(ji,jj,jk,jpfer),zferlim)
61            end do
62          end do
63        end do
64C
65C  Computation of a variable Ks for iron on diatoms
66C  taking into account that increasing biomass is
67C  made of generally bigger cells
68C  ------------------------------------------------
69C
70        DO jk=1,jpkm1
71          DO jj=1,jpj
72            DO ji=1,jpi
73        xconctemp=max(0.,trn(ji,jj,jk,jpdia)-5E-7)
74        xconctemp2=min(5.E-7,trn(ji,jj,jk,jpdia))
75        xconctempn=max(0.,trn(ji,jj,jk,jpphy)-1E-6)
76        xconctempn2=min(1.E-6,trn(ji,jj,jk,jpphy))
77        concdfe(ji,jj,jk)=(xconctemp2*conc3+0.4E-9*
78     .    xconctemp)/(xconctemp2+xconctemp+rtrn)
79        concdfe(ji,jj,jk)=max(conc3,concdfe(ji,jj,jk))
80        concnfe(ji,jj,jk)=(xconctempn2*conc2+0.08E-9*
81     .    xconctempn)/(xconctempn2+xconctempn+rtrn)
82        concnfe(ji,jj,jk)=max(conc2,concnfe(ji,jj,jk))
83            END DO
84          END DO
85        END DO
86C
87        DO jk = 1,jpkm1
88          DO jj = 1,jpj
89            DO ji = 1,jpi
90C   
91C      Michaelis-Menten Limitation term for nutrients
92C      Small flagellates
93C      -----------------------------------------------
94C
95        xnanono3(ji,jj,jk)=trn(ji,jj,jk,jpno3)*concnnh4
96     &      /(conc0*concnnh4+concnnh4*trn(ji,jj,jk,jpno3)+
97     &        conc0*trn(ji,jj,jk,jpnh4))
98        xnanonh4(ji,jj,jk)=trn(ji,jj,jk,jpnh4)*conc0
99     &      /(conc0*concnnh4+concnnh4*trn(ji,jj,jk,jpno3)+
100     &        conc0*trn(ji,jj,jk,jpnh4))
101        xlim1=xnanono3(ji,jj,jk)+xnanonh4(ji,jj,jk)
102        xlim2=trn(ji,jj,jk,jppo4)/(trn(ji,jj,jk,jppo4)+concnnh4)
103        xlim3=trn(ji,jj,jk,jpfer)/(trn(ji,jj,jk,jpfer)
104     &     +concnfe(ji,jj,jk))
105        xlimphy(ji,jj,jk)=min(xlim1,xlim2,xlim3)
106        xlim1=trn(ji,jj,jk,jpnh4)/(concnnh4+trn(ji,jj,jk,jpnh4))
107        xlim3=trn(ji,jj,jk,jpfer)/(trn(ji,jj,jk,jpfer)+conc2)
108        xlim4=trn(ji,jj,jk,jpdoc)/(trn(ji,jj,jk,jpdoc)+xkdoc2)
109        xlimbac(ji,jj,jk)=min(xlim1,xlim2,xlim3)*xlim4
110C
111            END DO
112          END DO
113        END DO
114C
115        DO jk = 1,jpkm1
116          DO jj = 1,jpj
117            DO ji = 1,jpi
118C
119C   Michaelis-Menten Limitation term for nutrients
120C   Diatoms
121C   ----------------------------------------------
122C
123        xdiatno3(ji,jj,jk)=trn(ji,jj,jk,jpno3)*concdnh4
124     &      /(conc1*concdnh4+concdnh4*trn(ji,jj,jk,jpno3)+
125     &        conc1*trn(ji,jj,jk,jpnh4))
126        xdiatnh4(ji,jj,jk)=trn(ji,jj,jk,jpnh4)*conc1
127     &      /(conc1*concdnh4+concdnh4*trn(ji,jj,jk,jpno3)+
128     &        conc1*trn(ji,jj,jk,jpnh4))
129
130        xlim1=xdiatno3(ji,jj,jk)+xdiatnh4(ji,jj,jk)
131        xlim2=trn(ji,jj,jk,jppo4)/(trn(ji,jj,jk,jppo4)+concdnh4)
132        xlim3=trn(ji,jj,jk,jpsil)/(trn(ji,jj,jk,jpsil)+xksi(ji,jj))
133        xlim4=trn(ji,jj,jk,jpfer)/(trn(ji,jj,jk,jpfer)
134     &      +concdfe(ji,jj,jk))
135        xlimdia(ji,jj,jk)=min(xlim1,xlim2,xlim3,xlim4)
136C
137            END DO
138          END DO
139        END DO
140C
141#endif
142      RETURN
143      END
Note: See TracBrowser for help on using the repository browser.