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.
p4zdiat.F90 in branches/dev_001_GM/NEMO/TOP_SRC/PISCES_SMS – NEMO

source: branches/dev_001_GM/NEMO/TOP_SRC/PISCES_SMS/p4zdiat.F90 @ 775

Last change on this file since 775 was 775, checked in by gm, 16 years ago

dev_001_GM - PISCES in F90 : encapsulation of all p4z...F files in module F90 + doctor norme for local variables - compilation OK

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 4.4 KB
Line 
1MODULE p4zdiat
2   !!======================================================================
3   !!                         ***  MODULE p4zdiat  ***
4   !! TOP :   PISCES Compute the mortality terms for diatoms
5   !!======================================================================
6   !! History :   1.0  !  2002     (O. Aumont)  Original code
7   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  F90
8   !!----------------------------------------------------------------------
9#if defined key_pisces
10   !!----------------------------------------------------------------------
11   !!   'key_pisces'                                       PISCES bio-model
12   !!----------------------------------------------------------------------
13   !!   p4z_diat       :   Compute the mortality terms for diatoms
14   !!----------------------------------------------------------------------
15   USE oce_trc         !
16   USE trp_trc         !
17   USE sms             !
18
19   IMPLICIT NONE
20   PRIVATE
21
22   PUBLIC   p4z_diat    ! called in p4zbio.F90
23
24   !!* Substitution
25#  include "domzgr_substitute.h90"
26   !!----------------------------------------------------------------------
27   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007)
28   !! $Header:$
29   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
30   !!----------------------------------------------------------------------
31
32CONTAINS
33
34   SUBROUTINE p4z_diat
35      !!---------------------------------------------------------------------
36      !!                     ***  ROUTINE p4z_diat  ***
37      !!
38      !! ** Purpose :   Compute the mortality terms for diatoms
39      !!
40      !! ** Method  : - ???
41      !!---------------------------------------------------------------------
42      INTEGER  ::   ji, jj, jk
43      REAL(wp) ::   zfact, zstep, zcompadi
44      !!---------------------------------------------------------------------
45
46        zstep = rfact2 / rjjss      ! Time step duration for biology
47
48
49!    Aggregation term for diatoms is increased in case of nutrient
50!    stress as observed in reality. The stressed cells become more
51!    sticky and coagulate to sink quickly out of the euphotic zone
52!     ------------------------------------------------------------
53
54      DO jk = 1, jpkm1
55         DO jj = 1, jpj
56            DO ji = 1, jpi
57
58               zcompadi = MAX( ( trn(ji,jj,jk,jpdia) - 1e-8), 0. )
59               zfact    = 1. / ( trn(ji,jj,jk,jpdia) + rtrn )
60
61!    Aggregation term for diatoms is increased in case of nutrient
62!    stress as observed in reality. The stressed cells become more
63!    sticky and coagulate to sink quickly out of the euphotic zone
64!     ------------------------------------------------------------
65
66               respp2 (ji,jj,jk) = 1.e6 * zstep * (  wchl + wchld * ( 1.- xlimdia(ji,jj,jk) )  )    &
67# if defined key_off_degrad
68                  &              * facvol(ji,jj,jk)       &
69# endif
70                  &              * zdiss(ji,jj,jk) * zcompadi * trn(ji,jj,jk,jpdia)
71                                                                               
72               respds (ji,jj,jk) = respp2(ji,jj,jk) * trn(ji,jj,jk,jpbsi) * zfact
73
74               respdf (ji,jj,jk) = respp2(ji,jj,jk) * trn(ji,jj,jk,jpdfe) * zfact
75                                                                               
76               respdch(ji,jj,jk) = respp2(ji,jj,jk) * trn(ji,jj,jk,jpdch) * zfact
77
78!     Phytoplankton mortality.
79!     ------------------------
80               tortp2 (ji,jj,jk) = mprat2 * zstep * trn(ji,jj,jk,jpdia)     &
81# if defined key_off_degrad
82                  &              * facvol(ji,jj,jk)       &
83# endif
84                  &              / ( xkmort + trn(ji,jj,jk,jpdia) ) * zcompadi
85
86               tortds (ji,jj,jk) = tortp2(ji,jj,jk) * trn(ji,jj,jk,jpbsi) * zfact
87
88               tortdf (ji,jj,jk) = tortp2(ji,jj,jk) * trn(ji,jj,jk,jpdfe) * zfact
89
90               tortdch(ji,jj,jk) = tortp2(ji,jj,jk) * trn(ji,jj,jk,jpdch) * zfact
91
92            END DO
93         END DO
94      END DO
95      !
96   END SUBROUTINE p4z_diat
97
98#else
99   !!======================================================================
100   !!  Dummy module :                                   No PISCES bio-model
101   !!======================================================================
102CONTAINS
103   SUBROUTINE p4z_diat                    ! Empty routine
104   END SUBROUTINE p4z_diat
105#endif 
106
107   !!======================================================================
108END MODULE  p4zdiat
Note: See TracBrowser for help on using the repository browser.