source: branches/dev_001_GM/NEMO/TOP_SRC/PISCES_SMS/p4zmicro.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:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 4.7 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_top && defined key_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,zdenom2
51      REAL zfact,zstep,zinano,zidiat,zipoc
52C
53C    Time step duration for biology
54C    ------------------------------
55C
56        zstep=rfact2/rjjss
57C
58
59        DO jk = 1,jpkm1
60          DO jj = 1,jpj
61            DO ji = 1,jpi
62C
63        compaz = max((trn(ji,jj,jk,jpzoo)-1.E-9),0.)
64        zfact=zstep*tgfunc(ji,jj,jk)*compaz
65#    if defined key_off_degrad
66     &    *facvol(ji,jj,jk)
67#    endif
68C
69C     Respiration rates of both zooplankton
70C     -------------------------------------
71C
72        respz(ji,jj,jk) = resrat*zfact
73     &    *(1.+3.*nitrfac(ji,jj,jk))
74     &    *trn(ji,jj,jk,jpzoo)/(xkmort+trn(ji,jj,jk,jpzoo))
75C
76C     Zooplankton mortality. A square function has been selected with
77C     no real reason except that it seems to be more stable and may
78C     mimic predation.
79C     ---------------------------------------------------------------
80C
81          tortz(ji,jj,jk) = mzrat*1E6*zfact*trn(ji,jj,jk,jpzoo)
82C
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
91        compadi = max((trn(ji,jj,jk,jpdia)-1E-8),0.)
92        compadi2=min(compadi,5.E-7)
93        compaph = max((trn(ji,jj,jk,jpphy)-2E-7),0.)
94        compapoc=max((trn(ji,jj,jk,jppoc)-1E-8),0.)
95C
96C     Microzooplankton grazing
97C     ------------------------
98C
99          zdenom2 = 1./(zprefp*compaph
100     &      +zprefc*compapoc+zprefd*compadi2+rtrn)
101
102          graze = grazrat*zstep*tgfunc(ji,jj,jk)
103     &      *trn(ji,jj,jk,jpzoo)
104#    if defined key_off_degrad
105     &      *facvol(ji,jj,jk)
106#    endif
107
108          zinano=zprefp*compaph*zdenom2
109          zipoc=zprefc*compapoc*zdenom2
110          zidiat=zprefd*compadi2*zdenom2
111
112          zdenom = 1./(xkgraz+zinano*compaph
113     &      +zipoc*compapoc+zidiat*compadi2)
114
115          grazp(ji,jj,jk) = graze*zinano*compaph*zdenom
116          grazm(ji,jj,jk) = graze*zipoc*compapoc*zdenom
117          grazsd(ji,jj,jk) = graze*zidiat*compadi2*zdenom
118
119          grazpf(ji,jj,jk) = grazp(ji,jj,jk)*
120     &      trn(ji,jj,jk,jpnfe)/(trn(ji,jj,jk,jpphy)+rtrn)
121
122          grazpch(ji,jj,jk) = grazp(ji,jj,jk)*
123     &      trn(ji,jj,jk,jpnch)/(trn(ji,jj,jk,jpphy)+rtrn)
124
125          grazmf(ji,jj,jk) = grazm(ji,jj,jk)
126     &      *trn(ji,jj,jk,jpsfe)/(trn(ji,jj,jk,jppoc)+rtrn)
127
128          grazsf(ji,jj,jk) = grazsd(ji,jj,jk)
129     &      *trn(ji,jj,jk,jpdfe)/(trn(ji,jj,jk,jpdia)+rtrn)
130
131          grazss(ji,jj,jk) = grazsd(ji,jj,jk)
132     &      *trn(ji,jj,jk,jpbsi)/(trn(ji,jj,jk,jpdia)+rtrn)
133
134          grazsch(ji,jj,jk) = grazsd(ji,jj,jk)
135     &      *trn(ji,jj,jk,jpdch)/(trn(ji,jj,jk,jpdia)+rtrn)
136C
137            END DO
138          END DO
139        END DO
140C
141        DO jk = 1,jpkm1
142          DO jj = 1,jpj
143            DO ji = 1,jpi
144C
145C    Various remineralization and excretion terms
146C    --------------------------------------------
147C
148          grarem(ji,jj,jk)=(grazp(ji,jj,jk)+grazm(ji,jj,jk)
149     &      +grazsd(ji,jj,jk))*(1.-epsher-unass)
150
151          grafer(ji,jj,jk)=(grazpf(ji,jj,jk)+grazsf(ji,jj,jk)
152     &      +grazmf(ji,jj,jk))*(1.-epsher-unass)
153     &      +(grazm(ji,jj,jk)*max((trn(ji,jj,jk,jpsfe)/
154     &      (trn(ji,jj,jk,jppoc)+rtrn)-ferat3),0.)
155     &      +grazp(ji,jj,jk)*max((trn(ji,jj,jk,jpnfe)/
156     &      (trn(ji,jj,jk,jpphy)+rtrn)-ferat3),0.)
157     &      +grazsd(ji,jj,jk)*max((trn(ji,jj,jk,jpdfe)/
158     &      (trn(ji,jj,jk,jpdia)+rtrn)-ferat3),0.))*epsher
159
160          grapoc(ji,jj,jk)=(grazp(ji,jj,jk)+grazm(ji,jj,jk)
161     &      +grazsd(ji,jj,jk))*unass
162C
163              END DO
164            END DO
165          END DO
166C
167#endif
168      RETURN
169      END
Note: See TracBrowser for help on using the repository browser.