123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- MODULE p4zbio
- !!======================================================================
- !! *** MODULE p4zbio ***
- !! TOP : PISCES bio-model
- !!======================================================================
- !! History : 1.0 ! 2004 (O. Aumont) Original code
- !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90
- !!----------------------------------------------------------------------
- #if defined key_pisces
- !!----------------------------------------------------------------------
- !! 'key_pisces' PISCES bio-model
- !!----------------------------------------------------------------------
- !! p4z_bio : computes the interactions between the different
- !! compartments of PISCES
- !!----------------------------------------------------------------------
- USE oce_trc ! shared variables between ocean and passive tracers
- USE trc ! passive tracers common variables
- USE sms_pisces ! PISCES Source Minus Sink variables
- USE p4zsink ! vertical flux of particulate matter due to sinking
- USE p4zopt ! optical model
- USE p4zlim ! Co-limitations of differents nutrients
- USE p4zprod ! Growth rate of the 2 phyto groups
- USE p4zmort ! Mortality terms for phytoplankton
- USE p4zmicro ! Sources and sinks of microzooplankton
- USE p4zmeso ! Sources and sinks of mesozooplankton
- USE p4zrem ! Remineralisation of organic matter
- USE p4zfechem
- USE prtctl_trc ! print control for debugging
- USE iom ! I/O manager
-
- IMPLICIT NONE
- PRIVATE
- PUBLIC p4z_bio
- !!* Substitution
- # include "top_substitute.h90"
- !!----------------------------------------------------------------------
- !! NEMO/TOP 3.3 , NEMO Consortium (2010)
- !! $Id: p4zbio.F90 3160 2011-11-20 14:27:18Z cetlod $
- !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
- !!----------------------------------------------------------------------
- CONTAINS
- SUBROUTINE p4z_bio ( kt, knt )
- !!---------------------------------------------------------------------
- !! *** ROUTINE p4z_bio ***
- !!
- !! ** Purpose : Ecosystem model in the whole ocean: computes the
- !! different interactions between the different compartments
- !! of PISCES
- !!
- !! ** Method : - ???
- !!---------------------------------------------------------------------
- INTEGER, INTENT(in) :: kt, knt
- INTEGER :: ji, jj, jk, jn
- CHARACTER (len=25) :: charout
- !!---------------------------------------------------------------------
- !
- IF( nn_timing == 1 ) CALL timing_start('p4z_bio')
- !
- ! ASSIGN THE SHEAR RATE THAT IS USED FOR AGGREGATION
- ! OF PHYTOPLANKTON AND DETRITUS
- xdiss(:,:,:) = 1.
- !!gm the use of nmld should be better here?
- DO jk = 2, jpkm1
- DO jj = 1, jpj
- DO ji = 1, jpi
- IF( fsdepw(ji,jj,jk+1) > hmld(ji,jj) ) xdiss(ji,jj,jk) = 0.01
- END DO
- END DO
- END DO
-
- CALL p4z_opt ( kt, knt ) ! Optic: PAR in the water column
- CALL p4z_sink ( kt, knt ) ! vertical flux of particulate organic matter
- CALL p4z_fechem(kt, knt ) ! Iron chemistry/scavenging
- CALL p4z_lim ( kt, knt ) ! co-limitations by the various nutrients
- CALL p4z_prod ( kt, knt ) ! phytoplankton growth rate over the global ocean.
- ! ! (for each element : C, Si, Fe, Chl )
- CALL p4z_mort ( kt ) ! phytoplankton mortality
- ! ! zooplankton sources/sinks routines
- CALL p4z_micro( kt, knt ) ! microzooplankton
- CALL p4z_meso ( kt, knt ) ! mesozooplankton
- CALL p4z_rem ( kt, knt ) ! remineralization terms of organic matter+scavenging of Fe
- ! ! test if tracers concentrations fall below 0.
- ! !
- IF(ln_ctl) THEN ! print mean trends (used for debugging)
- WRITE(charout, FMT="('bio ')")
- CALL prt_ctl_trc_info(charout)
- CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm)
- ENDIF
- !
- IF( nn_timing == 1 ) CALL timing_stop('p4z_bio')
- !
- END SUBROUTINE p4z_bio
- #else
- !!======================================================================
- !! Dummy module : No PISCES bio-model
- !!======================================================================
- CONTAINS
- SUBROUTINE p4z_bio ! Empty routine
- END SUBROUTINE p4z_bio
- #endif
- !!======================================================================
- END MODULE p4zbio
|