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 @ 274

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

nemo_v1_update_005:RB: update headers for the TOP component.

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