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.
p4zbio.F90 in NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z – NEMO

source: NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p4zbio.F90 @ 12759

Last change on this file since 12759 was 12759, checked in by aumont, 4 years ago

make parameterizations in PISCES-operationnal more similar to thos of PISCES-QUOTA (prey switching, optimal allocation, size, ...)

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