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

source: trunk/NEMO/TOP_SRC/SMS/p4zmeso.F @ 247

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

CL : Add CVS Header and CeCILL licence information

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 5.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 p4zmeso
8#if defined key_passivetrc && defined key_trc_pisces
9CCC---------------------------------------------------------------------
10CCC
11CCC            ROUTINE p4zmeso : PISCES MODEL
12CCC            ******************************
13CCC
14CCC  PURPOSE :
15CCC  ---------
16CCC         Compute the sources/sinks for mesozooplankton
17CCC
18CC   METHOD :
19CC   -------
20CC     
21CC
22CC   INPUT :
23CC   -----
24CC      argument
25CC              None
26CC      common
27CC              all the common defined in opa
28CC
29CC
30CC   OUTPUT :                   : no
31CC   ------
32CC
33CC   EXTERNAL :
34CC   --------
35CC          None
36CC
37CC   MODIFICATIONS:
38CC   --------------
39CC      original  : O. Aumont (2002)
40CC----------------------------------------------------------------------
41CC parameters and commons
42CC ======================
43CDIR$ NOLIST
44      USE oce_trc
45      USE trp_trc
46      USE sms
47      IMPLICIT NONE
48CDIR$ LIST
49CC----------------------------------------------------------------------
50CC local declarations
51CC ==================
52      INTEGER ji, jj, jk
53      REAL compadi,compaph,compapoc,compaz
54      REAL compam,zdenom,graze2
55C
56        DO jk = 1,jpkm1
57          DO jj = 1,jpj
58            DO ji = 1,jpi
59C
60        compam=max((trn(ji,jj,jk,jpmes)-1.E-9),0.)
61C
62C     Respiration rates of both zooplankton
63C     -------------------------------------
64C
65        respz2(ji,jj,jk) = resrat2*rfact2/rjjss
66     &    *trn(ji,jj,jk,jpmes)/(xkmort+trn(ji,jj,jk,jpmes))
67     &    *compam*tmask(ji,jj,jk)
68#    if defined key_off_degrad
69     &    *facvol(ji,jj,jk)
70#    endif
71C
72C     Zooplankton mortality. A square function has been selected with
73C     no real reason except that it seems to be more stable and may
74C     mimic predation.
75C     ---------------------------------------------------------------
76C
77        tortz2(ji,jj,jk) = mzrat2*1E6*rfact2/rjjss*tgfunc(ji,jj,jk)
78     &    *trn(ji,jj,jk,jpmes)*compam*tmask(ji,jj,jk)
79#    if defined key_off_degrad
80     &    *facvol(ji,jj,jk)
81#    endif
82C
83            END DO
84          END DO
85        END DO
86
87        DO jk = 1,jpkm1
88          DO jj = 1,jpj
89            DO ji = 1,jpi
90C
91        compadi = max((trn(ji,jj,jk,jpdia)-1E-8),0.)
92        compaz = max((trn(ji,jj,jk,jpzoo)-1.E-9),0.)
93        compaph = max((trn(ji,jj,jk,jpphy)-1E-8),0.)
94        compapoc=max((trn(ji,jj,jk,jppoc)-1E-9),0.)
95C
96C     Microzooplankton grazing
97C     ------------------------
98C
99        graze2 = grazrat2/rjjss*rfact2*tmask(ji,jj,jk)
100     &    *Tgfunc(ji,jj,jk)
101#    if defined key_off_degrad
102     &    *facvol(ji,jj,jk)
103#    endif
104
105        zdenom=1./(xkgraz2+xprefc*trn(ji,jj,jk,jpdia)
106     &    +xprefz*trn(ji,jj,jk,jpzoo)
107     &    +xprefp*trn(ji,jj,jk,jpphy)
108     &    +xprefpoc*trn(ji,jj,jk,jppoc))
109
110        grazd(ji,jj,jk) = graze2*xprefc*compadi*zdenom
111     &    *trn(ji,jj,jk,jpmes)
112
113        grazz(ji,jj,jk) = graze2*xprefz*compaz*zdenom
114     &    *trn(ji,jj,jk,jpmes)
115
116        grazn(ji,jj,jk) = graze2*xprefp*compaph*zdenom
117     &    *trn(ji,jj,jk,jpmes)
118
119        grazpoc(ji,jj,jk) = graze2*xprefpoc*compapoc*zdenom
120     &    *trn(ji,jj,jk,jpmes)
121
122        graznf(ji,jj,jk) = grazn(ji,jj,jk)
123     &    *trn(ji,jj,jk,jpnfe)/(trn(ji,jj,jk,jpphy)+rtrn)
124
125        graznch(ji,jj,jk) = grazn(ji,jj,jk)
126     &    *trn(ji,jj,jk,jpnch)/(trn(ji,jj,jk,jpphy)+rtrn)
127
128        grazs(ji,jj,jk) = grazd(ji,jj,jk)
129     &    *trn(ji,jj,jk,jpbsi)/(trn(ji,jj,jk,jpdia)+rtrn)
130
131        grazf(ji,jj,jk) = grazd(ji,jj,jk)
132     &    *trn(ji,jj,jk,jpdfe)/(trn(ji,jj,jk,jpdia)+rtrn)
133
134        grazdch(ji,jj,jk) = grazd(ji,jj,jk)
135     &    *trn(ji,jj,jk,jpdch)/(trn(ji,jj,jk,jpdia)+rtrn)
136
137        grazpof(ji,jj,jk) = grazpoc(ji,jj,jk)
138     &    *trn(ji,jj,jk,jpsfe)/(trn(ji,jj,jk,jppoc)+rtrn)
139C
140            END DO
141          END DO
142        END DO
143
144        DO jk = 1,jpkm1
145          DO jj = 1,jpj
146            DO ji = 1,jpi
147C
148C    Mesozooplankton flux feeding on GOC
149C    ----------------------------------
150C
151        grazffe(ji,jj,jk) = 1.3E-2/5.6E-7*rfact2/rjjss
152     &    *wsbio4(ji,jj,jk)*trn(ji,jj,jk,jpgoc)*trn(ji,jj,jk,jpmes)
153#    if defined key_off_degrad
154     &    *facvol(ji,jj,jk)
155#    endif
156
157        grazfff(ji,jj,jk) = grazffe(ji,jj,jk)
158     &    *trn(ji,jj,jk,jpbfe)/(trn(ji,jj,jk,jpgoc)+rtrn)
159C
160            END DO
161          END DO
162        END DO
163
164        DO jk = 1,jpkm1
165          DO jj = 1,jpj
166            DO ji = 1,jpi
167C
168C    Mesozooplankton efficiency
169C    --------------------------
170C
171        grarem2(ji,jj,jk)=(grazd(ji,jj,jk)+grazz(ji,jj,jk)
172     &    +grazn(ji,jj,jk)+grazpoc(ji,jj,jk)+grazffe(ji,jj,jk))
173     &    *(1.-epsher2-unass2)
174
175        grafer2(ji,jj,jk)=(grazf(ji,jj,jk)+graznf(ji,jj,jk)
176     &    +grazz(ji,jj,jk)*ferat3+grazpof(ji,jj,jk)
177     &    +grazfff(ji,jj,jk))*(1.-epsher2-unass2)
178     &    +epsher2*(grazd(ji,jj,jk)*max(
179     &    (trn(ji,jj,jk,jpdfe)/(trn(ji,jj,jk,jpdia)+rtrn)
180     &    -ferat3),0.)+grazn(ji,jj,jk)*max(
181     &    (trn(ji,jj,jk,jpnfe)/(trn(ji,jj,jk,jpphy)+rtrn)
182     &    -ferat3),0.)+grazpoc(ji,jj,jk)*max(
183     &    (trn(ji,jj,jk,jpsfe)/(trn(ji,jj,jk,jppoc)+rtrn)
184     &    -ferat3),0.)+grazffe(ji,jj,jk)*max(
185     &    (trn(ji,jj,jk,jpbfe)/(trn(ji,jj,jk,jpgoc)+rtrn)
186     &    -ferat3),0.))
187
188        grapoc2(ji,jj,jk)=(grazd(ji,jj,jk)+grazz(ji,jj,jk)
189     &    +grazn(ji,jj,jk)+grazpoc(ji,jj,jk)+grazffe(ji,jj,jk))*unass2
190
191            END DO
192          END DO
193        END DO
194C
195#endif
196      RETURN
197      END
198
Note: See TracBrowser for help on using the repository browser.