- Timestamp:
- 2020-03-11T16:02:54+01:00 (12 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p4zrem.F90
r12524 r12537 3 3 !! *** MODULE p4zrem *** 4 4 !! TOP : PISCES Compute remineralization/dissolution of organic compounds 5 !! except for POC which is treated in p4zpoc.F90 6 !! This module is common to both PISCES and PISCES-QUOTA 5 7 !!========================================================================= 6 8 !! History : 1.0 ! 2004 (O. Aumont) Original code … … 17 19 USE p4zche ! chemical model 18 20 USE p4zprod ! Growth rate of the 2 phyto groups 19 USE p4zlim 21 USE p4zlim ! Nutrient limitation terms 20 22 USE prtctl_trc ! print control for debugging 21 23 USE iom ! I/O manager … … 26 28 27 29 PUBLIC p4z_rem ! called in p4zbio.F90 28 PUBLIC p4z_rem_init ! called in trcsms_pisces.F90 29 PUBLIC p4z_rem_alloc 30 31 REAL(wp), PUBLIC :: xremikc !: remineralisation rate of DOC 32 REAL(wp), PUBLIC :: xremikn !: remineralisation rate of DON 33 REAL(wp), PUBLIC :: xremikp !: remineralisation rate of DOP 34 REAL(wp), PUBLIC :: xremik !: remineralisation rate of POC 30 PUBLIC p4z_rem_init ! called in trcini_pisces.F90 31 PUBLIC p4z_rem_alloc ! called in trcini_pisces.F90 32 33 !! * Shared module variables 34 REAL(wp), PUBLIC :: xremikc !: remineralisation rate of DOC (p5z) 35 REAL(wp), PUBLIC :: xremikn !: remineralisation rate of DON (p5z) 36 REAL(wp), PUBLIC :: xremikp !: remineralisation rate of DOP (p5z) 37 REAL(wp), PUBLIC :: xremik !: remineralisation rate of DOC (p4z) 35 38 REAL(wp), PUBLIC :: nitrif !: NH4 nitrification rate 36 REAL(wp), PUBLIC :: xsirem !: remineralisation rate of POC37 REAL(wp), PUBLIC :: xsiremlab !: fast remineralisation rate of POC39 REAL(wp), PUBLIC :: xsirem !: remineralisation rate of biogenic silica 40 REAL(wp), PUBLIC :: xsiremlab !: fast remineralisation rate of BSi 38 41 REAL(wp), PUBLIC :: xsilab !: fraction of labile biogenic silica 39 42 REAL(wp), PUBLIC :: feratb !: Fe/C quota in bacteria 40 REAL(wp), PUBLIC :: xkferb !: Half-saturation constant for bacteria Fe/C43 REAL(wp), PUBLIC :: xkferb !: Half-saturation constant for bacterial Fe/C 41 44 42 45 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: denitr !: denitrification array … … 53 56 !! *** ROUTINE p4z_rem *** 54 57 !! 55 !! ** Purpose : Compute remineralization/scavenging of organic compounds 56 !! 57 !! ** Method : - ??? 58 !! ** Purpose : Compute remineralization/dissolution of organic compounds 59 !! Computes also nitrification of ammonium 60 !! The solubilization/remineralization of POC is treated 61 !! in p4zpoc.F90. The dissolution of calcite is processed 62 !! in p4zlys.F90. 63 !! 64 !! ** Method : - Bacterial biomass is computed implicitely based on a 65 !! parameterization developed from an explicit modeling 66 !! of PISCES in an alternative version 58 67 !!--------------------------------------------------------------------- 59 68 INTEGER, INTENT(in) :: kt, knt ! ocean time step … … 73 82 IF( ln_timing ) CALL timing_start('p4z_rem') 74 83 ! 75 ! Initialisation of arr ys84 ! Initialisation of arrays 76 85 zdepprod(:,:,:) = 1._wp 77 86 zdepeff (:,:,:) = 0.3_wp … … 81 90 zfacsi(:,:,:) = xsilab 82 91 83 ! Computation of the mean phytoplankton concentration as 84 ! a crude estimate of the bacterial biomass 92 ! Computation of the mean bacterial concentration 85 93 ! this parameterization has been deduced from a model version 86 94 ! that was modeling explicitely bacteria … … 107 115 DO jj = 1, jpj 108 116 DO ji = 1, jpi 109 ! DOC ammonification. Depends on depth, phytoplankton biomass 110 ! and a limitation term which is supposed to be a parameterization of the bacterial activity. 117 ! DOC ammonification. Depends on a limitation term of the bacterial activity 118 ! and on the implicit bacteria concentration 119 ! -------------------------------------------------------------------------- 111 120 zremik = xremik * xstep / 1.e-6 * xlimbac(ji,jj,jk) * zdepbac(ji,jj,jk) 112 121 zremik = MAX( zremik, 2.74e-4 * xstep ) 122 113 123 ! Ammonification in oxic waters with oxygen consumption 114 124 ! ----------------------------------------------------- 115 125 zolimit = zremik * ( 1.- nitrfac(ji,jj,jk) ) * trb(ji,jj,jk,jpdoc) 116 126 zolimi(ji,jj,jk) = MIN( ( trb(ji,jj,jk,jpoxy) - rtrn ) / o2ut, zolimit ) 127 117 128 ! Ammonification in suboxic waters with denitrification 118 ! ----------------------------------------------------- --129 ! ----------------------------------------------------- 119 130 zammonic = zremik * nitrfac(ji,jj,jk) * trb(ji,jj,jk,jpdoc) 120 131 denitr(ji,jj,jk) = zammonic * ( 1. - nitrfac2(ji,jj,jk) ) 121 132 denitr(ji,jj,jk) = MIN( ( trb(ji,jj,jk,jpno3) - rtrn ) / rdenit, denitr(ji,jj,jk) ) 133 134 ! Ammonification in waters depleted in O2 and NO3 based on 135 ! other redox processes 136 ! -------------------------------------------------------- 122 137 zoxyremc = zammonic - denitr(ji,jj,jk) 123 138 ! … … 125 140 denitr (ji,jj,jk) = MAX( 0.e0, denitr (ji,jj,jk) ) 126 141 zoxyremc = MAX( 0.e0, zoxyremc ) 127 128 ! 142 ! Update of the TRA arrays 129 143 tra(ji,jj,jk,jppo4) = tra(ji,jj,jk,jppo4) + zolimi (ji,jj,jk) + denitr(ji,jj,jk) + zoxyremc 130 144 tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + zolimi (ji,jj,jk) + denitr(ji,jj,jk) + zoxyremc … … 142 156 DO jj = 1, jpj 143 157 DO ji = 1, jpi 144 ! DOC ammonification. Depends on depth, phytoplankton biomass 145 ! and a limitation term which is supposed to be a parameterization of the bacterial activity. 146 ! ----------------------------------------------------------------- 158 ! DOC ammonification. Depends on a limitation term of the bacterial activity 159 ! and on the implicit bacteria concentration 160 ! --------------------------------------------------------------- 161 ----------- 147 162 zremik = xstep / 1.e-6 * MAX(0.01, xlimbac(ji,jj,jk)) * zdepbac(ji,jj,jk) 148 163 zremik = MAX( zremik, 2.74e-4 * xstep / xremikc ) … … 170 185 zoxyremn = zremikn * zoxyremc * trb(ji,jj,jk,jpdon) / ( trb(ji,jj,jk,jpdoc) + rtrn ) 171 186 zoxyremp = zremikp * zoxyremc * trb(ji,jj,jk,jpdop) / ( trb(ji,jj,jk,jpdoc) + rtrn ) 172 187 ! Update of the TRA arrays 173 188 tra(ji,jj,jk,jppo4) = tra(ji,jj,jk,jppo4) + zolimip + zdenitrp + zoxyremp 174 189 tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + zolimin + zdenitrn + zoxyremn … … 185 200 ! 186 201 ENDIF 187 188 202 189 203 DO jk = 1, jpkm1 … … 220 234 ! Bacteries are obliged to take up iron from the water. Some 221 235 ! studies (especially at Papa) have shown this uptake to be significant 222 ! ---------------------------------------------------------- 236 ! --------------------------------------------------------------------- 223 237 zbactfer = feratb * rfact2 * 0.6_wp / rday * tgfunc(ji,jj,jk) * xlimbacl(ji,jj,jk) & 224 238 & * trb(ji,jj,jk,jpfer) / ( xkferb + trb(ji,jj,jk,jpfer) ) & 225 239 & * zdepeff(ji,jj,jk) * zdepbac(ji,jj,jk) 240 241 ! Only the transfer of iron from its dissolved form to particles 242 ! is treated here. The GGE of bacteria supposed to be equal to 243 ! 0.33. This is hard-coded. 226 244 tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - zbactfer*0.33 227 245 tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zbactfer*0.25 … … 242 260 ! of bSi. Set to a constant in the upper ocean 243 261 ! --------------------------------------------------------------- 244 245 262 DO jk = 1, jpkm1 246 263 DO jj = 1, jpj 247 264 DO ji = 1, jpi 265 ! Remineralization rate of BSi depedant on T and saturation 266 ! The parameterization is taken from Ridgwell et al. (2002) 267 ! --------------------------------------------------------- 248 268 zdep = MAX( hmld(ji,jj), heup_01(ji,jj) ) 249 269 zsatur = MAX( rtrn, ( sio3eq(ji,jj,jk) - trb(ji,jj,jk,jpsil) ) / ( sio3eq(ji,jj,jk) + rtrn ) ) 250 270 zsatur2 = ( 1. + tsn(ji,jj,jk,jp_tem) / 400.)**37 251 271 znusil = 0.225 * ( 1. + tsn(ji,jj,jk,jp_tem) / 15.) * zsatur + 0.775 * zsatur2 * zsatur**9.25 252 ! Remineralization rate of BSi depedant on T and saturation253 ! ---------------------------------------------------------272 ! Computation of the vertical evolution of the labile fraction 273 ! of bSi. This is computed assuming steady state. 254 274 IF ( gdept_n(ji,jj,jk) > zdep ) THEN 255 275 zfacsib(ji,jj,jk) = zfacsib(ji,jj,jk-1) * EXP( -0.5 * ( xsiremlab - xsirem ) & … … 261 281 zsiremin = ( xsiremlab * zfacsi(ji,jj,jk) + xsirem * ( 1. - zfacsi(ji,jj,jk) ) ) * xstep * znusil 262 282 zosil = zsiremin * trb(ji,jj,jk,jpgsi) 263 ! 283 ! Update of the TRA arrays 264 284 tra(ji,jj,jk,jpgsi) = tra(ji,jj,jk,jpgsi) - zosil 265 285 tra(ji,jj,jk,jpsil) = tra(ji,jj,jk,jpsil) + zosil
Note: See TracChangeset
for help on using the changeset viewer.