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

source: trunk/NEMO/TOP_SRC/SMS/p4zmicro.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.1 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 p4zmicro
8#if defined key_passivetrc && defined key_trc_pisces
9CCC---------------------------------------------------------------------
10CCC
11CCC           ROUTINE p4zmicro : PISCES MODEL
12CCC           *******************************
13CCC
14CCC  PURPOSE :
15CCC  ---------
16CCC         Compute the sources/sinks for microzooplankton
17CCC
18CC   INPUT :
19CC   -----
20CC      argument
21CC              None
22CC      common
23CC              all the common defined in opa
24CC
25CC
26CC   OUTPUT :                   : no
27CC   ------
28CC
29CC   EXTERNAL :
30CC   --------
31CC              None
32CC
33CC   MODIFICATIONS:
34CC   --------------
35CC      original  : O. Aumont (2004)
36CC----------------------------------------------------------------------
37CC parameters and commons
38CC ======================
39CDIR$ NOLIST
40      USE oce_trc
41      USE trp_trc
42      USE sms
43      IMPLICIT NONE
44CDIR$ LIST
45CC----------------------------------------------------------------------
46CC local declarations
47CC ==================
48      INTEGER ji, jj, jk
49      REAL compadi,compadi2,compaz,compaph,compapoc
50      REAL graze,zdenom
51      REAL zinano,zidiat,zipoc
52
53C
54
55        DO jk = 1,jpkm1
56          DO jj = 1,jpj
57            DO ji = 1,jpi
58C
59        compaz = max((trn(ji,jj,jk,jpzoo)-1.E-9),0.)
60C
61C     Respiration rates of both zooplankton
62C     -------------------------------------
63C
64        respz(ji,jj,jk) = resrat*rfact2/rjjss
65     &    *trn(ji,jj,jk,jpzoo)/(xkmort+trn(ji,jj,jk,jpzoo))
66     &    *compaz*tmask(ji,jj,jk)
67#    if defined key_off_degrad
68     &    *facvol(ji,jj,jk)
69#    endif
70C
71C     Zooplankton mortality. A square function has been selected with
72C     no real reason except that it seems to be more stable and may
73C     mimic predation.
74C     ---------------------------------------------------------------
75C
76          tortz(ji,jj,jk) = mzrat*rfact2*1E6/rjjss*tgfunc(ji,jj,jk)
77     &      *compaz*trn(ji,jj,jk,jpzoo)*tmask(ji,jj,jk)
78#    if defined key_off_degrad
79     &      *facvol(ji,jj,jk)
80#    endif
81            END DO
82          END DO
83        END DO
84C
85        DO jk = 1,jpkm1
86          DO jj = 1,jpj
87            DO ji = 1,jpi
88C
89        compadi = max((trn(ji,jj,jk,jpdia)-1E-8),0.)
90        compadi2=min(compadi,2.E-6)
91        compaph = max((trn(ji,jj,jk,jpphy)-1E-8),0.)
92        compapoc=max((trn(ji,jj,jk,jppoc)-1E-9),0.)
93C
94C     Microzooplankton grazing
95C     ------------------------
96C
97          graze = grazrat*rfact2/rjjss*tmask(ji,jj,jk)
98     &      *tgfunc(ji,jj,jk)
99#    if defined key_off_degrad
100     &      *facvol(ji,jj,jk)
101#    endif
102          zdenom = 1./(xkgraz+zprefp*compaph
103     &      +zprefc*trn(ji,jj,jk,jppoc)+zprefd*compadi2)
104
105          zinano=zprefp*trn(ji,jj,jk,jpphy)/
106     &      (zprefp*trn(ji,jj,jk,jpphy)
107     &      +zprefc*trn(ji,jj,jk,jppoc)
108     &      +zprefd*trn(ji,jj,jk,jpdia)+rtrn)
109
110          zipoc=zprefc*trn(ji,jj,jk,jppoc)/
111     &      (zprefp*trn(ji,jj,jk,jpphy)
112     &      +zprefc*trn(ji,jj,jk,jppoc)
113     &      +zprefd*trn(ji,jj,jk,jpdia)+rtrn)
114
115          zidiat=zprefd*trn(ji,jj,jk,jpdia)/
116     &      (zprefp*trn(ji,jj,jk,jpphy)
117     &      +zprefc*trn(ji,jj,jk,jppoc)
118     &      +zprefd*trn(ji,jj,jk,jpdia)+rtrn)
119
120          grazp(ji,jj,jk) = graze*zinano*compaph*zdenom
121     &      *trn(ji,jj,jk,jpzoo)
122
123          grazpf(ji,jj,jk) = grazp(ji,jj,jk)*
124     &      trn(ji,jj,jk,jpnfe)/(trn(ji,jj,jk,jpphy)+rtrn)
125
126          grazpch(ji,jj,jk) = grazp(ji,jj,jk)*
127     &      trn(ji,jj,jk,jpnch)/(trn(ji,jj,jk,jpphy)+rtrn)
128
129          grazm(ji,jj,jk) = graze*zipoc*compapoc
130     &      *zdenom*trn(ji,jj,jk,jpzoo)
131
132          grazmf(ji,jj,jk) = grazm(ji,jj,jk)
133     &      *trn(ji,jj,jk,jpsfe)/(trn(ji,jj,jk,jppoc)+rtrn)
134
135          grazsd(ji,jj,jk) = graze*zidiat*compadi2*zdenom
136     &      *trn(ji,jj,jk,jpzoo)
137
138          grazsf(ji,jj,jk) = grazsd(ji,jj,jk)
139     &      *trn(ji,jj,jk,jpdfe)/(trn(ji,jj,jk,jpdia)+rtrn)
140
141          grazss(ji,jj,jk) = grazsd(ji,jj,jk)
142     &      *trn(ji,jj,jk,jpbsi)/(trn(ji,jj,jk,jpdia)+rtrn)
143
144          grazsch(ji,jj,jk) = grazsd(ji,jj,jk)
145     &      *trn(ji,jj,jk,jpdch)/(trn(ji,jj,jk,jpdia)+rtrn)
146C
147            END DO
148          END DO
149        END DO
150C
151        DO jk = 1,jpkm1
152          DO jj = 1,jpj
153            DO ji = 1,jpi
154C
155C    Various remineralization and excretion terms
156C    --------------------------------------------
157C
158          grarem(ji,jj,jk)=(grazp(ji,jj,jk)+grazm(ji,jj,jk)
159     &      +grazsd(ji,jj,jk))*(1.-epsher-unass)
160
161          grafer(ji,jj,jk)=(grazpf(ji,jj,jk)+grazsf(ji,jj,jk)
162     &      +grazmf(ji,jj,jk))*(1.-epsher-unass)
163     &      +(grazm(ji,jj,jk)*max((trn(ji,jj,jk,jpsfe)/
164     &      (trn(ji,jj,jk,jppoc)+rtrn)-ferat3),0.)
165     &      +grazp(ji,jj,jk)*max((trn(ji,jj,jk,jpnfe)/
166     &      (trn(ji,jj,jk,jpphy)+rtrn)-ferat3),0.)
167     &      +grazsd(ji,jj,jk)*max((trn(ji,jj,jk,jpdfe)/
168     &      (trn(ji,jj,jk,jpdia)+rtrn)-ferat3),0.))*epsher
169
170          grapoc(ji,jj,jk)=(grazp(ji,jj,jk)+grazm(ji,jj,jk)
171     &      +grazsd(ji,jj,jk))*unass
172C
173              END DO
174            END DO
175          END DO
176C
177#endif
178      RETURN
179      END
180
Note: See TracBrowser for help on using the repository browser.