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 tags/nemo_v1_04/NEMO/TOP_SRC/SMS – NEMO

source: tags/nemo_v1_04/NEMO/TOP_SRC/SMS/p4zsink.F @ 280

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