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

source: trunk/NEMO/TOP_SRC/SMS/p4zlim.F @ 341

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

nemo_v1_update_028 : CT : add missing headers

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.4 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_passivetrc && defined key_trc_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
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
55        trn(:,:,:,jpfer)=max(trn(:,:,:,jpfer),1.E-11)
56C
57C  Computation of a variable Ks for iron on diatoms
58C  taking into account that increasing biomass is
59C  made of generally bigger cells
60C  ------------------------------------------------
61C
62        DO jk=1,jpkm1
63          DO jj=1,jpj
64            DO ji=1,jpi
65        xconctemp=max(0.,trn(ji,jj,jk,jpdia)-5E-7)
66        xconctemp2=min(5.E-7,trn(ji,jj,jk,jpdia))
67        xconctempn=max(0.,trn(ji,jj,jk,jpphy)-1E-6)
68        xconctempn2=min(1.E-6,trn(ji,jj,jk,jpphy))
69        concdfe(ji,jj,jk)=(xconctemp2*conc3+0.4E-9*
70     .    xconctemp)/(xconctemp2+xconctemp+rtrn)
71        concdfe(ji,jj,jk)=max(conc3,concdfe(ji,jj,jk))
72        concnfe(ji,jj,jk)=(xconctempn2*conc2+0.08E-9*
73     .    xconctempn)/(xconctempn2+xconctempn+rtrn)
74        concnfe(ji,jj,jk)=max(conc2,concnfe(ji,jj,jk))
75            END DO
76          END DO
77        END DO
78C
79        DO jk = 1,jpkm1
80          DO jj = 1,jpj
81            DO ji = 1,jpi
82C   
83C      Michaelis-Menten Limitation term for nutrients
84C      Small flagellates
85C      -----------------------------------------------
86C
87        xnanono3(ji,jj,jk)=trn(ji,jj,jk,jpno3)*concnnh4
88     &      /(conc0*concnnh4+concnnh4*trn(ji,jj,jk,jpno3)+
89     &        conc0*trn(ji,jj,jk,jpnh4))
90        xnanonh4(ji,jj,jk)=trn(ji,jj,jk,jpnh4)*conc0
91     &      /(conc0*concnnh4+concnnh4*trn(ji,jj,jk,jpno3)+
92     &        conc0*trn(ji,jj,jk,jpnh4))
93        xlim1=xnanono3(ji,jj,jk)+xnanonh4(ji,jj,jk)
94        xlim2=trn(ji,jj,jk,jppo4)/(trn(ji,jj,jk,jppo4)+concnnh4)
95        xlim3=trn(ji,jj,jk,jpfer)/(trn(ji,jj,jk,jpfer)
96     &     +concnfe(ji,jj,jk))
97        xlimphy(ji,jj,jk)=min(xlim1,xlim2,xlim3)
98        xlim1=trn(ji,jj,jk,jpnh4)/(concnnh4+trn(ji,jj,jk,jpnh4))
99        xlim3=trn(ji,jj,jk,jpfer)/(trn(ji,jj,jk,jpfer)+conc2)
100        xlim4=trn(ji,jj,jk,jpdoc)/(trn(ji,jj,jk,jpdoc)+xkdoc2)
101        xlimbac(ji,jj,jk)=min(xlim1,xlim2,xlim3)*xlim4
102C
103            END DO
104          END DO
105        END DO
106C
107        DO jk = 1,jpkm1
108          DO jj = 1,jpj
109            DO ji = 1,jpi
110C
111C   Michaelis-Menten Limitation term for nutrients
112C   Diatoms
113C   ----------------------------------------------
114C
115        xdiatno3(ji,jj,jk)=trn(ji,jj,jk,jpno3)*concdnh4
116     &      /(conc1*concdnh4+concdnh4*trn(ji,jj,jk,jpno3)+
117     &        conc1*trn(ji,jj,jk,jpnh4))
118        xdiatnh4(ji,jj,jk)=trn(ji,jj,jk,jpnh4)*conc1
119     &      /(conc1*concdnh4+concdnh4*trn(ji,jj,jk,jpno3)+
120     &        conc1*trn(ji,jj,jk,jpnh4))
121
122        xlim1=xdiatno3(ji,jj,jk)+xdiatnh4(ji,jj,jk)
123        xlim2=trn(ji,jj,jk,jppo4)/(trn(ji,jj,jk,jppo4)+concdnh4)
124        xlim3=trn(ji,jj,jk,jpsil)/(trn(ji,jj,jk,jpsil)+xksi(ji,jj))
125        xlim4=trn(ji,jj,jk,jpfer)/(trn(ji,jj,jk,jpfer)
126     &      +concdfe(ji,jj,jk))
127        xlimdia(ji,jj,jk)=min(xlim1,xlim2,xlim3,xlim4)
128        xlim4=trn(ji,jj,jk,jpfer)/(trn(ji,jj,jk,jpfer)+conc3)
129        xlimdia2(ji,jj,jk)=min(xlim1,xlim2,xlim3,xlim4)
130C
131            END DO
132          END DO
133        END DO
134C
135#endif
136      RETURN
137      END
Note: See TracBrowser for help on using the repository browser.