source: NEMO/branches/2020/dev_r12563_ASINTER-06_ABL_improvement/src/TOP/PISCES/P4Z/p4zbio.F90

Last change on this file was 12377, checked in by acc, 10 months ago

The big one. Merging all 2019 developments from the option 1 branch back onto the trunk.

This changeset reproduces 2019/dev_r11943_MERGE_2019 on the trunk using a 2-URL merge
onto a working copy of the trunk. I.e.:

svn merge —ignore-ancestry \

svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/trunk \
svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/branches/2019/dev_r11943_MERGE_2019 ./

The —ignore-ancestry flag avoids problems that may otherwise arise from the fact that
the merge history been trunk and branch may have been applied in a different order but
care has been taken before this step to ensure that all applicable fixes and updates
are present in the merge branch.

The trunk state just before this step has been branched to releases/release-4.0-HEAD
and that branch has been immediately tagged as releases/release-4.0.2. Any fixes
or additions in response to tickets on 4.0, 4.0.1 or 4.0.2 should be done on
releases/release-4.0-HEAD. From now on future 'point' releases (e.g. 4.0.2) will
remain unchanged with periodic releases as needs demand. Note release-4.0-HEAD is a
transitional naming convention. Future full releases, say 4.2, will have a release-4.2
branch which fulfills this role and the first point release (e.g. 4.2.0) will be made
immediately following the release branch creation.

2020 developments can be started from any trunk revision later than this one.

  • Property svn:keywords set to Id
File size: 5.8 KB
Line 
1MODULE p4zbio
2   !!======================================================================
3   !!                         ***  MODULE p4zbio  ***
4   !! TOP :   PISCES bio-model
5   !!======================================================================
6   !! History :   1.0  !  2004     (O. Aumont) Original code
7   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  F90
8   !!----------------------------------------------------------------------
9   !!   p4z_bio        :   computes the interactions between the different
10   !!                      compartments of PISCES
11   !!----------------------------------------------------------------------
12   USE oce_trc         !  shared variables between ocean and passive tracers
13   USE trc             !  passive tracers common variables
14   USE sms_pisces      !  PISCES Source Minus Sink variables
15   USE p4zsink         !  vertical flux of particulate matter due to sinking
16   USE p4zopt          !  optical model
17   USE p4zlim          !  Co-limitations of differents nutrients
18   USE p4zprod         !  Growth rate of the 2 phyto groups
19   USE p4zmort         !  Mortality terms for phytoplankton
20   USE p4zmicro        !  Sources and sinks of microzooplankton
21   USE p4zmeso         !  Sources and sinks of mesozooplankton
22   USE p5zlim          !  Co-limitations of differents nutrients
23   USE p5zprod         !  Growth rate of the 2 phyto groups
24   USE p5zmort         !  Mortality terms for phytoplankton
25   USE p5zmicro        !  Sources and sinks of microzooplankton
26   USE p5zmeso         !  Sources and sinks of mesozooplankton
27   USE p4zrem          !  Remineralisation of organic matter
28   USE p4zpoc          !  Remineralization of organic particles
29   USE p4zagg          !  Aggregation of particles
30   USE p4zfechem
31   USE p4zligand       !  Prognostic ligand model
32   USE prtctl_trc      !  print control for debugging
33   USE iom             !  I/O manager
34 
35   IMPLICIT NONE
36   PRIVATE
37
38   PUBLIC  p4z_bio   
39
40   !! * Substitutions
41#  include "do_loop_substitute.h90"
42   !!----------------------------------------------------------------------
43   !! NEMO/TOP 4.0 , NEMO Consortium (2018)
44   !! $Id$
45   !! Software governed by the CeCILL license (see ./LICENSE)
46   !!----------------------------------------------------------------------
47CONTAINS
48
49   SUBROUTINE p4z_bio ( kt, knt, Kbb, Kmm, Krhs )
50      !!---------------------------------------------------------------------
51      !!                     ***  ROUTINE p4z_bio  ***
52      !!
53      !! ** Purpose :   Ecosystem model in the whole ocean: computes the
54      !!              different interactions between the different compartments
55      !!              of PISCES
56      !!
57      !! ** Method  : - ???
58      !!---------------------------------------------------------------------
59      INTEGER, INTENT(in) :: kt, knt
60      INTEGER, INTENT(in) :: Kbb, Kmm, Krhs  ! time level indices
61      !
62      INTEGER             :: ji, jj, jk, jn
63      CHARACTER (len=25) :: charout
64      !!---------------------------------------------------------------------
65      !
66      IF( ln_timing )   CALL timing_start('p4z_bio')
67      !
68      !     ASSIGN THE SHEAR RATE THAT IS USED FOR AGGREGATION
69      !     OF PHYTOPLANKTON AND DETRITUS
70
71      xdiss(:,:,:) = 1.
72!!gm the use of nmld should be better here?
73      DO_3D_11_11( 2, jpkm1 )
74!!gm  :  use nmln  and test on jk ...  less memory acces
75         IF( gdepw(ji,jj,jk+1,Kmm) > hmld(ji,jj) )   xdiss(ji,jj,jk) = 0.01
76      END_3D
77
78      CALL p4z_opt     ( kt, knt, Kbb, Kmm       )     ! Optic: PAR in the water column
79      CALL p4z_sink    ( kt, knt, Kbb, Kmm, Krhs )     ! vertical flux of particulate organic matter
80      CALL p4z_fechem  ( kt, knt, Kbb, Kmm, Krhs )     ! Iron chemistry/scavenging
81      !
82      IF( ln_p4z ) THEN
83         CALL p4z_lim  ( kt, knt, Kbb, Kmm       )     ! co-limitations by the various nutrients
84         CALL p4z_prod ( kt, knt, Kbb, Kmm, Krhs )     ! phytoplankton growth rate over the global ocean.
85         !                                          ! (for each element : C, Si, Fe, Chl )
86         CALL p4z_mort ( kt,      Kbb,      Krhs )     ! phytoplankton mortality
87         !                                          ! zooplankton sources/sinks routines
88         CALL p4z_micro( kt, knt, Kbb,      Krhs )     ! microzooplankton
89         CALL p4z_meso ( kt, knt, Kbb,      Krhs )     ! mesozooplankton
90      ELSE
91         CALL p5z_lim  ( kt, knt, Kbb, Kmm       )     ! co-limitations by the various nutrients
92         CALL p5z_prod ( kt, knt, Kbb, Kmm, Krhs )     ! phytoplankton growth rate over the global ocean.
93         !                                          ! (for each element : C, Si, Fe, Chl )
94         CALL p5z_mort ( kt,      Kbb,      Krhs      )     ! phytoplankton mortality
95         !                                          ! zooplankton sources/sinks routines
96         CALL p5z_micro( kt, knt, Kbb,      Krhs )           ! microzooplankton
97         CALL p5z_meso ( kt, knt, Kbb,      Krhs )           ! mesozooplankton
98      ENDIF
99      !
100      CALL p4z_agg     ( kt, knt, Kbb,      Krhs )     ! Aggregation of particles
101      CALL p4z_rem     ( kt, knt, Kbb, Kmm, Krhs )     ! remineralization terms of organic matter+scavenging of Fe
102      CALL p4z_poc     ( kt, knt, Kbb, Kmm, Krhs )     ! Remineralization of organic particles
103      !
104      IF( ln_ligand )  &
105      & CALL p4z_ligand( kt, knt, Kbb,      Krhs )
106      !                                                             !
107      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
108         WRITE(charout, FMT="('bio ')")
109         CALL prt_ctl_trc_info(charout)
110         CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm)
111      ENDIF
112      !
113      IF( ln_timing )   CALL timing_stop('p4z_bio')
114      !
115   END SUBROUTINE p4z_bio
116
117   !!======================================================================
118END MODULE p4zbio
Note: See TracBrowser for help on using the repository browser.