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

source: trunk/NEMO/TOP_SRC/SMS/p4zsink.F @ 186

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

CL + CE : NEMO TRC_SRC start

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 5.0 KB
Line 
1CDIR$ LIST
2      SUBROUTINE p4zsink
3#if defined key_passivetrc && defined key_trc_pisces
4CCC---------------------------------------------------------------------
5CCC
6CCC          ROUTINE p4zsink : PISCES MODEL
7CCC          ******************************
8CCC
9CCC  PURPOSE :
10CCC  ---------
11CCC         Compute vertical flux of particulate matter due to
12CCC         gravitational sinking
13CCC
14CC   INPUT :
15CC   -----
16CC      common
17CC              all the common defined in opa
18CC
19CC
20CC   OUTPUT :                   : no
21CC   ------
22CC
23CC   EXTERNAL :
24CC   --------
25CC            p4zsink2
26CC
27CC   MODIFICATIONS:
28CC   --------------
29CC      original  : 2004 - O. Aumont 
30CC----------------------------------------------------------------------
31CC parameters and commons
32CC ======================
33CDIR$ NOLIST
34      USE oce_trc
35      USE trp_trc
36      USE sms
37      IMPLICIT NONE
38CDIR$ LIST
39CC----------------------------------------------------------------------
40CC local declarations
41CC ==================
42      INTEGER jksed, ji, jj, jk
43      REAL xagg1,xagg2,xagg3,xagg4
44      REAL zdepfact
45CC----------------------------------------------------------------------
46CC statement functions
47CC ===================
48CDIR$ NOLIST
49#include "domzgr_substitute.h90"
50CDIR$ LIST
51C
52C
53C    Sinking speeds of detritus is increased with depth as shown
54C    by data and from the coagulation theory
55C    -----------------------------------------------------------
56C
57         jksed=10
58C
59       DO jk=1,jpk-1
60         DO jj=1,jpj
61           DO ji=1,jpi
62       zdepfact=sqrt(max(0.,fsdepw(ji,jj,jk+1)-hmld(ji,jj))/5000.)
63     &     *(max(0.,fsdepw(ji,jj,jk+1)-hmld(ji,jj))/5000.)
64     &     *tmask(ji,jj,jk)
65       wsbio4(ji,jj,jk)=wsbio2+(200.-wsbio2)*zdepfact
66       wsbio3(ji,jj,jk)=wsbio+(10.-wsbio)*zdepfact
67             END DO
68           END DO
69         END DO
70CCC Chris
71      DO jk=1,jpk-1
72         DO jj=1,jpj
73           DO ji=1,jpi
74              wsbio4(ji,jj,jk) = min( wsbio4(ji,jj,jk),
75     $         0.75*fse3t(ji,jj,jk)/(rfact2/rjjss) )
76             wsbio3(ji,jj,jk) = min( wsbio3(ji,jj,jk),
77     $         0.75*fse3t(ji,jj,jk)/(rfact2/rjjss) )
78             END DO
79           END DO
80         END DO
81CCC Chris
82C
83C   INITIALIZE TO ZERO ALL THE SINKING ARRAYS
84C   -----------------------------------------
85C
86         sinking=0.
87         sinking2=0.
88         sinkcal=0.
89         sinkfer=0.
90         sinksil=0.
91         sinkfer2=0.
92C
93C   Compute the sedimentation term using p4zsink2 for all
94C   the sinking particles
95C   -----------------------------------------------------
96C
97          CALL p4zsink2(wsbio3,sinking,jppoc)
98          CALL p4zsink2(wsbio3,sinkfer,jpsfe)
99          CALL p4zsink2(wsbio4,sinking2,jpgoc)
100          CALL p4zsink2(wsbio4,sinkfer2,jpbfe)
101          CALL p4zsink2(wsbio4,sinksil,jpdsi)
102          CALL p4zsink2(wsbio4,sinkcal,jpcal)
103C
104C  Exchange between organic matter compartments due to
105C  coagulation/disaggregation
106C  ---------------------------------------------------
107C
108         DO jk = 1,jpk-1
109           DO jj = 1,jpj
110             DO ji = 1,jpi
111C
112C    Part I : Coagulation dependent on turbulence
113C    ----------------------------------------------
114C
115         xagg1=15./rjjss*rfact2*zdiss(ji,jj,jk)
116     &     *trn(ji,jj,jk,jppoc)*trn(ji,jj,jk,jppoc)
117#    if defined key_off_degrad
118     &     *facvol(ji,jj,jk)
119#    endif
120
121         xagg2=7.2E3/rjjss*rfact2*zdiss(ji,jj,jk)
122     &     *trn(ji,jj,jk,jppoc)*trn(ji,jj,jk,jpgoc)
123#    if defined key_off_degrad
124     &     *facvol(ji,jj,jk)
125#    endif
126C
127C    Aggregation of small into large particles
128C    Part II : Differential settling
129C    ----------------------------------------------
130C
131         xagg3=0.2/rjjss*rfact2
132     &     *trn(ji,jj,jk,jppoc)*trn(ji,jj,jk,jpgoc)
133#    if defined key_off_degrad
134     &     *facvol(ji,jj,jk)
135#    endif
136
137         xagg4=0./rjjss*rfact2
138     &     *trn(ji,jj,jk,jppoc)*trn(ji,jj,jk,jppoc)
139#    if defined key_off_degrad
140     &     *facvol(ji,jj,jk)
141#    endif
142
143         xagg(ji,jj,jk)=xagg1+xagg2+xagg3+xagg4
144         xaggfe(ji,jj,jk)=xagg(ji,jj,jk)*trn(ji,jj,jk,jpsfe)/
145     &     (trn(ji,jj,jk,jppoc)+rtrn)
146C
147C     Aggregation of DOC to small particles
148C     --------------------------------------
149C
150         xaggdoc(ji,jj,jk)=(0.4*trn(ji,jj,jk,jpdoc)
151     &     +1018.*trn(ji,jj,jk,jppoc))/rjjss*rfact2
152     &     *zdiss(ji,jj,jk)*trn(ji,jj,jk,jpdoc)
153#    if defined key_off_degrad
154     &     *facvol(ji,jj,jk)
155#    endif
156
157         xaggdoc2(ji,jj,jk)=7.1E3*trn(ji,jj,jk,jpgoc)*rfact2
158     &     /rjjss*zdiss(ji,jj,jk)*trn(ji,jj,jk,jpdoc)
159#    if defined key_off_degrad
160     &    *facvol(ji,jj,jk)
161#    endif
162C
163             END DO
164           END DO
165         END DO
166
167#    if defined key_trc_dia3d
168          trc2d(:,:,5) = sinking(:,:,jksed+1)*1.e3*rfact2r
169          trc2d(:,:,6) = sinking2(:,:,jksed+1)*1.e3*rfact2r
170          trc2d(:,:,7) = sinkfer(:,:,jksed+1)*1.e3*rfact2r
171          trc2d(:,:,8) = sinkfer2(:,:,jksed+1)*1.e3*rfact2r
172          trc2d(:,:,9) = sinksil(:,:,jksed+1)*1.e3*rfact2r
173          trc2d(:,:,10) = sinkcal(:,:,jksed+1)*1.e3*rfact2r
174#    endif
175C
176#endif
177      RETURN
178      END
179
Note: See TracBrowser for help on using the repository browser.