p4zbio
Overview
Main PISCES module that manages the interactions between the different compartments of the model depending on the version.
Module Name: p4zbio
Model: PISCES (version NEMO 5.0)
Subroutine: p4z_bio
p4z_bio
1. Initialization
Shear Rate:
- calculates the shear rate (
xdiss(ji,jj,jk)) which equal 1 in the mixed layer and 0.01 below the mixed layer (depth (gdepw) >hmld). The 100-fold reduction in shear rate below the mixed layer reflects reduced turbulent mixing.
Particulate Production/Consumption:
- Initializes Particulate Organic Carbon (POC) arrays:
prodpoc(:,:,:) = 0.0- POC productionconspoc(:,:,:) = 0.0- POC consumption
- For non-p2z models, initializes Large Organic Carbon (GOC) arrays:
prodgoc(:,:,:) = 0.0- GOC productionconsgoc(:,:,:) = 0.0- GOC consumption
2. Main Sequence
PISCES biogeochemical process call order.
-
Optical Model (
p4z_opt)- Computes Photosynthetically Available Radiation (PAR) throughout the water column
-
Vertical Sinking (
p4z_sink)- Calculates vertical flux of particulate organic matter
-
Model-Specific Biological Process Calls
- PISCES-Simple (
ln_p2z = .true.):p2z_lim- Limitation by nitratep2z_prod- Phytoplankton growth ratep2z_mort- Mortality termsp2z_micro- Generic zooplankton
- PISCES-Operational (
ln_p4z = .true.):p4z_lim- Co-limitations by nutrientsp4z_prod- Phytoplankton growth ratep4z_mort- Mortality termsp4z_micro- Microzooplanktonp4z_meso- Mesozooplankton
- PISCES-Research (
ln_p5z = .true.):p5z_lim- Co-limitations by nutrientsp5z_prod- Phytoplankton growth ratep5z_mort- Mortality termsp5z_micro- Microzooplanktonp5z_meso- Mesozooplankton
- PISCES Simple:
p2z_rem- Organic matter remineralization
- PISCES Operational/Research:
p4z_agg- Particle aggregationp4z_rem- Organic matter remineralization and Fe scavenging
- All versions:
p4z_poc- Remineralization of organic particles
- PISCES Operational/Research:
p4z_ligand(optional;ln_ligand = .true.) - Production of organic ligands
- PISCES-Simple (
3. Size Class Updates
Updates phytoplankton size classes with minimum threshold of 1.0:
sizen(:,:,:)- Nanophytoplankton size (all versions)sized(:,:,:)- Diatom size (p4zandp5zversions)sizep(:,:,:)- Picophytoplankton size (p5zonly)
Note
Minimum size of 1.0 prevents numerical issues in subsequent calculations.
4. Debugging Output
When sn_cfctl%l_prttrc = .true.:
- Prints mean trends of all tracers
- Uses
prt_ctlfor formatted output
Note
Use sn_cfctl%l_prttrc flag produces extensive output
Execution Flow Diagram
START p4z_bio
│
├─► Initialize shear rate (xdiss)
│ • Mixed layer: 1.0
│ • Below mixed layer: 0.01
│
├─► Initialize production/consumption arrays
│ • prodpoc, conspoc
│ • prodgoc, consgoc (if not p2z)
│
├─► GENERAL PROCESSES
│ ├─► p4z_opt (optical model)
│ ├─► p4z_sink (vertical sinking)
│ └─► p4z_fechem (iron chemistry)
│
├─► MODEL-SPECIFIC PROCESSES
│ │
│ ├─► IF ln_p2z (PISCES-Simple)
│ │ ├─► p2z_lim (nutrient limitation)
│ │ ├─► p2z_prod (production)
│ │ ├─► p2z_mort (mortality)
│ │ └─► p2z_micro (microzooplankton)
│ │
│ ├─► ELSE IF ln_p4z (PISCES-Operational)
│ │ ├─► p4z_lim (nutrient limitation)
│ │ ├─► p4z_prod (production)
│ │ ├─► p4z_mort (mortality)
│ │ ├─► p4z_micro (microzooplankton)
│ │ └─► p4z_meso (mesozooplankton)
│ │
│ └─► ELSE (PISCES-Research)
│ ├─► p5z_lim (nutrient limitation)
│ ├─► p5z_prod (production)
│ ├─► p5z_mort (mortality)
│ ├─► p5z_micro (microzooplankton)
│ └─► p5z_meso (mesozooplankton)
│
├─► REMINERALIZATION PROCESSES
│ ├─► IF ln_p2z
│ │ └─► p2z_rem
│ └─► ELSE
│ ├─► p4z_agg (aggregation)
│ └─► p4z_rem (remineralization)
│ └─► p4z_poc (POC remineralization)
│
├─► OPTIONAL PROCESSES
│ ├─► p4z_ligand (ligand production, optional)
│ └─► p4z_diaz (diazotrophy)
│
├─► POST-PROCESSING
│ └─► Update size classes (sizen, sized, sizep)
│
└─► DEBUG OUTPUT (if enabled)
└─► Print tracer trends
│
END p4z_bio
Input Parameters
| Parameter | Type | Intent | Description |
|---|---|---|---|
kt |
INTEGER | IN | Current time step index |
knt |
INTEGER | IN | Sub-time step counter |
Kbb |
INTEGER | IN | Time level index (before) |
Kmm |
INTEGER | IN | Time level index (now/middle) |
Krhs |
INTEGER | IN | Time level index (right-hand side/tendencies) |
Variables
Input Arrays
gdepw(ji,jj,jk,Kmm)- Depth of w-pointshmld(ji,jj)- Mixed layer depth
Output Arrays
xdiss(ji,jj,jk)- Shear rate for aggregation of phytoplankton and detritusprodpoc(ji,jj,jk)- POC production rateconspoc(ji,jj,jk)- POC consumption rateprodgoc(ji,jj,jk)- GOC production rate (p4z/p5zonly)consgoc(ji,jj,jk)- GOC consumption rate (p4z/p5zonly)sizen/sized/sizep(ji,jj,jk)- Phytoplankton size classestr(:,:,:,:,Krhs)- Tracer tendencies
Control Flags
| Flag | Type | Description | Debugging option |
|---|---|---|---|
ln_timing |
LOGICAL | Enables timing diagnostics | |
ln_p2z |
LOGICAL | Activates PISCES-Simple | |
ln_p4z |
LOGICAL | Activates PISCES-Operational | |
ln_p5z |
LOGICAL | Activates PISCES-Research | |
ln_ligand |
LOGICAL | Enables ligand production | |
ln_fechem |
LOGICAL | Enables iron chemistry | ✅ |
ln_prod |
LOGICAL | Enables primary production | ✅ |
ln_mort |
LOGICAL | Enables mortality processes | ✅ |
ln_micro |
LOGICAL | Enables microzooplankton | ✅ |
ln_meso |
LOGICAL | Enables mesozooplankton | ✅ |
ln_poc |
LOGICAL | Enables POC remineralization | ✅ |
ln_agg |
LOGICAL | Enables particle aggregation | ✅ |
ln_rem |
LOGICAL | Enables remineralization | ✅ |
ln_diaz |
LOGICAL | Enables diazotrophy | ✅ |
Warning
- Enable/Disable processes by logical flag in the PISCES namelist for debugging purposes only
Dependencies
oce_trc- Shared variables between ocean and passive tracerstrc- Passive tracers common variablessms_pisces- PISCES Source Minus Sink variablesp4zsink- Vertical flux of particulate matter due to sinkingp4zopt- Optical modelp4zrem- Remineralization of organic matterp4zpoc- Remineralization of organic particlesp4zagg- Aggregation of particlesp4zfechem- Iron chemistryp4zligand- Prognostic ligand modelp4zdiaz- Diazotrophyprtctl- Print control for debuggingiom- I/O manager
For PISCES-Simple:
p2zlim- Co-limitation by nitratep2zprod- Phytoplankton growth ratep2zmicro- Microzooplankton sources/sinksp2zmort- Phytoplankton mortality
For PISCES-Operational:
p4zlim- Co-limitations by different nutrientsp4zprod- Growth rate of 2 phytoplankton groupsp4zmort- Phytoplankton mortalityp4zmicro- Microzooplankton sources/sinksp4zmeso- Mesozooplankton sources/sinks
For PISCES-Research:
p5zlim- Co-limitations by different nutrientsp5zprod- Growth rate of 3 phytoplankton groupsp5zmort- Phytoplankton mortalityp5zmicro- Microzooplankton sources/sinksp5zmeso- Mesozooplankton sources/sinks
Document Version: 1.0
Last Updated: October 2025
Source code: NEMO 5.0