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

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

nemo_v1_update_028 : CT : add missing headers

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 4.9 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
43#include "domzgr_substitute.h90"
44CDIR$ LIST
45CC----------------------------------------------------------------------
46CC local declarations
47CC ==================
48      INTEGER jksed, ji, jj, jk
49      REAL xagg1,xagg2,xagg3,xagg4
50      REAL zfact,zstep,wsmax
51C
52C    Time step duration for biology
53C    ------------------------------
54C
55       zstep=rfact2/rjjss
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       zfact=max(0.,fsdepw(ji,jj,jk+1)-hmld(ji,jj))/2000.
67       wsbio4(ji,jj,jk)=wsbio2+(200.-wsbio2)*zfact
68             END DO
69           END DO
70         END DO
71C
72C      LIMIT THE VALUES OF THE SINKING SPEEDS 
73C      TO AVOID NUMERICAL INSTABILITIES
74C
75      wsbio3(:,:,:)=wsbio
76
77      Do jk=1,jpk-1
78        DO jj=1,jpj
79          DO ji=1,jpi
80       wsmax=0.8*fse3t(ji,jj,jk)/zstep
81       wsbio4(ji,jj,jk)=min(wsbio4(ji,jj,jk),wsmax)
82       wsbio3(ji,jj,jk)=min(wsbio3(ji,jj,jk),wsmax)
83          END DO
84        END DO
85       END DO
86
87      wscal(:,:,:)=wsbio4(:,:,:)
88C
89C
90C   INITIALIZE TO ZERO ALL THE SINKING ARRAYS
91C   -----------------------------------------
92C
93         sinking=0.
94         sinking2=0.
95         sinkcal=0.
96         sinkfer=0.
97         sinksil=0.
98         sinkfer2=0.
99C
100C   Compute the sedimentation term using p4zsink2 for all
101C   the sinking particles
102C   -----------------------------------------------------
103C
104         CALL p4zsink2(wsbio3,sinking,jppoc)
105         CALL p4zsink2(wsbio3,sinkfer,jpsfe)
106         CALL p4zsink2(wsbio4,sinking2,jpgoc)
107         CALL p4zsink2(wsbio4,sinkfer2,jpbfe)
108         CALL p4zsink2(wsbio4,sinksil,jpdsi)
109         CALL p4zsink2(wscal,sinkcal,jpcal)
110C
111C  Exchange between organic matter compartments due to
112C  coagulation/disaggregation
113C  ---------------------------------------------------
114C
115         DO jk = 1,jpkm1
116           DO jj = 1,jpj
117             DO ji = 1,jpi
118C
119        zfact=zstep*zdiss(ji,jj,jk)
120C
121C    Part I : Coagulation dependent on turbulence
122C    ----------------------------------------------
123C
124         xagg1=940.*zfact*trn(ji,jj,jk,jppoc)*trn(ji,jj,jk,jppoc)
125#    if defined key_off_degrad
126     &     *facvol(ji,jj,jk)
127#    endif
128
129         xagg2=1.054E4*zfact*trn(ji,jj,jk,jppoc)*trn(ji,jj,jk,jpgoc)
130#    if defined key_off_degrad
131     &     *facvol(ji,jj,jk)
132#    endif
133C
134C    Aggregation of small into large particles
135C    Part II : Differential settling
136C    ----------------------------------------------
137C
138         xagg3=0.66*zstep*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         xagg4=0.*zstep*trn(ji,jj,jk,jppoc)*trn(ji,jj,jk,jpgoc)
144#    if defined key_off_degrad
145     &     *facvol(ji,jj,jk)
146#    endif
147C
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)=(80*trn(ji,jj,jk,jpdoc)+698.
156     &     *trn(ji,jj,jk,jppoc))*zfact*trn(ji,jj,jk,jpdoc)
157#    if defined key_off_degrad
158     &     *facvol(ji,jj,jk)
159#    endif
160
161         xaggdoc2(ji,jj,jk)=1.05E4*zfact*trn(ji,jj,jk,jpgoc)
162     &     *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.