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