Changeset 12537 for NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p5zmort.F90
- Timestamp:
- 2020-03-11T16:02:54+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p5zmort.F90
r11536 r12537 2 2 !!====================================================================== 3 3 !! *** MODULE p5zmort *** 4 !! TOP : PISCES Compute the mortality terms for phytoplankton4 !! TOP : PISCES-QUOTA Compute the mortality terms for phytoplankton 5 5 !!====================================================================== 6 6 !! History : 1.0 ! 2002 (O. Aumont) Original code … … 14 14 USE trc ! passive tracers common variables 15 15 USE sms_pisces ! PISCES Source Minus Sink variables 16 USE p4zlim 17 USE p5zlim ! Phytoplankton limitation terms 16 USE p4zlim ! Phytoplankton limitation terms (p4z) 17 USE p5zlim ! Phytoplankton limitation terms (p5z) 18 18 USE prtctl_trc ! print control for debugging 19 19 … … 21 21 PRIVATE 22 22 23 PUBLIC p5z_mort 24 PUBLIC p5z_mort_init 23 PUBLIC p5z_mort ! Called from p4zbio.F90 24 PUBLIC p5z_mort_init ! Called from trcini_pisces.F90 25 25 26 26 !! * Shared module variables 27 REAL(wp), PUBLIC :: wchln !:28 REAL(wp), PUBLIC :: wchlp !: 29 REAL(wp), PUBLIC :: wchld !: 30 REAL(wp), PUBLIC :: wchldm !: 31 REAL(wp), PUBLIC :: mpratn !:32 REAL(wp), PUBLIC :: mpratp !: 33 REAL(wp), PUBLIC :: mpratd !: 27 REAL(wp), PUBLIC :: wchln !! Quadratic mortality rate of nanophytoplankton 28 REAL(wp), PUBLIC :: wchlp !: Quadratic mortality rate of picophytoplankton 29 REAL(wp), PUBLIC :: wchld !: Quadratic mortality rate of diatoms 30 REAL(wp), PUBLIC :: wchldm !: Maximum quadratic mortality rate of diatoms 31 REAL(wp), PUBLIC :: mpratn !: Linear mortality rate of nanophytoplankton 32 REAL(wp), PUBLIC :: mpratp !: Linear mortality rate of picophytoplankton 33 REAL(wp), PUBLIC :: mpratd !: Linear mortality rate of diatoms 34 34 35 35 !!---------------------------------------------------------------------- … … 45 45 !! *** ROUTINE p5z_mort *** 46 46 !! 47 !! ** Purpose : Calls the different subroutine to initialize andcompute47 !! ** Purpose : Calls the different subroutine to compute 48 48 !! the different phytoplankton mortality terms 49 49 !! … … 82 82 DO ji = 1, jpi 83 83 zcompaph = MAX( ( trb(ji,jj,jk,jpphy) - 1e-9 ), 0.e0 ) 84 ! Squared mortality of Phyto similar to a sedimentation termduring85 ! 86 ! -----------------------------------------------------------------84 ! Quadratic mortality of nano due to aggregation during 85 ! blooms (Doney et al. 1996) 86 ! ----------------------------------------------------- 87 87 zrespp = wchln * 1.e6 * xstep * xdiss(ji,jj,jk) * zcompaph * trb(ji,jj,jk,jpphy) 88 88 89 ! Phytoplankton linear mortality 90 ! ------------------------------ 91 ztortp = mpratn * xstep * zcompaph 89 ! Phytoplankton linear mortality 90 ! A michaelis-menten like term is introduced to avoid 91 ! extinction of nanophyto in highly limited areas 92 ! ---------------------------------------------------- 93 ztortp = mpratn * xstep * zcompaphi * trb(ji,jj,jk,jpphy) / ( xkmort + trb(ji,jj,jk,jpphy) ) 92 94 zmortp = zrespp + ztortp 93 95 94 ! 96 ! Update the arrays TRA which contains the biological sources and sinks 95 97 96 98 zfactn = trb(ji,jj,jk,jpnph)/(trb(ji,jj,jk,jpphy)+rtrn) … … 103 105 tra(ji,jj,jk,jpnch) = tra(ji,jj,jk,jpnch) - zmortp * zfactch 104 106 tra(ji,jj,jk,jpnfe) = tra(ji,jj,jk,jpnfe) - zmortp * zfactfe 107 ! Production PIC particles due to mortality 105 108 zprcaca = xfracal(ji,jj,jk) * zmortp 106 !107 109 prodcal(ji,jj,jk) = prodcal(ji,jj,jk) + zprcaca ! prodcal=prodcal(nanophy)+prodcal(microzoo)+prodcal(mesozoo) 108 110 ! … … 151 153 DO ji = 1, jpi 152 154 zcompaph = MAX( ( trb(ji,jj,jk,jppic) - 1e-9 ), 0.e0 ) 153 ! Squared mortality of Phyto similar to a sedimentation term during 154 ! blooms (Doney et al. 1996) 155 ! ----------------------------------------------------------------- 155 156 ! Quadratic mortality of pico due to aggregation during 157 ! blooms (Doney et al. 1996) 158 ! ----------------------------------------------------- 156 159 zrespp = wchlp * 1.e6 * xstep * xdiss(ji,jj,jk) * zcompaph * trb(ji,jj,jk,jppic) 157 160 158 ! Phytoplankton mortality 159 ztortp = mpratp * xstep * zcompaph 161 ! Phytoplankton linear mortality 162 ! A michaelis-menten like term is introduced to avoid 163 ! extinction of picophyto in highly limited areas 164 ! ---------------------------------------------------- 165 ztortp = mpratp * xstep * zcompaph * trb(ji,jj,jk,jppic) / ( xkmort + trb(ji,jj,jk,jppic) ) 160 166 zmortp = zrespp + ztortp 161 167 162 168 ! Update the arrays TRA which contains the biological sources and sinks 163 164 169 zfactn = trb(ji,jj,jk,jpnpi)/(trb(ji,jj,jk,jppic)+rtrn) 165 170 zfactp = trb(ji,jj,jk,jpppi)/(trb(ji,jj,jk,jppic)+rtrn) … … 225 230 zrespp2 = 1.e6 * xstep * ( wchld + wchldm * zlim1 ) * xdiss(ji,jj,jk) * zcompadi * trb(ji,jj,jk,jpdia) 226 231 227 ! Phytoplankton linear mortality 228 ! ------------------------------ 229 ztortp2 = mpratd * xstep * zcompadi 232 ! Phytoplankton linear mortality 233 ! A michaelis-menten like term is introduced to avoid 234 ! extinction of diatoms in highly limited areas 235 ! --------------------------------------------------- 236 ztortp2 = mpratd * xstep * zcompadi * trb(ji,jj,jk,jpdia) / ( xkmort + trb(ji,jj,jk,jpdia) ) 230 237 zmortp2 = zrespp2 + ztortp2 231 238 … … 273 280 !! *** ROUTINE p5z_mort_init *** 274 281 !! 275 !! ** Purpose : Initialization of phytoplankton parameters276 !! 277 !! ** Method : Read the namp ismort namelist and check the parameters282 !! ** Purpose : Initialization of phytoplankton mortality parameters 283 !! 284 !! ** Method : Read the namp5zmort namelist and check the parameters 278 285 !! called at the first timestep 279 286 !! 280 !! ** input : Namelist namp ismort287 !! ** input : Namelist namp5zmort 281 288 !! 282 289 !!---------------------------------------------------------------------- 283 INTEGER :: ios 290 INTEGER :: ios ! Local integer output status for namelist read 284 291 !! 285 292 NAMELIST/namp5zmort/ wchln, wchlp, wchld, wchldm, mpratn, mpratp, mpratd 286 293 !!---------------------------------------------------------------------- 287 294 288 REWIND( numnatp_ref ) ! Namelist namp ismort in reference namelist : Pisces phytoplankton295 REWIND( numnatp_ref ) ! Namelist namp5zmort in reference namelist : Pisces phytoplankton 289 296 READ ( numnatp_ref, namp5zmort, IOSTAT = ios, ERR = 901) 290 297 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namp5zmort in reference namelist' ) 291 298 292 REWIND( numnatp_cfg ) ! Namelist namp ismort in configuration namelist : Pisces phytoplankton299 REWIND( numnatp_cfg ) ! Namelist namp5zmort in configuration namelist : Pisces phytoplankton 293 300 READ ( numnatp_cfg, namp5zmort, IOSTAT = ios, ERR = 902 ) 294 301 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namp5zmort in configuration namelist' )
Note: See TracChangeset
for help on using the changeset viewer.