- Timestamp:
- 2016-11-30T17:56:53+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_merge_2016/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90
r6945 r7403 8 8 !! 3.4 ! 2011-06 (O. Aumont, C. Ethe) Quota model for iron 9 9 !!---------------------------------------------------------------------- 10 #if defined key_pisces11 !!----------------------------------------------------------------------12 !! 'key_top' and TOP models13 !! 'key_pisces' PISCES bio-model14 !!----------------------------------------------------------------------15 10 !! p4z_rem : Compute remineralization/dissolution of organic compounds 16 11 !! p4z_rem_init : Initialisation of parameters for remineralisation … … 20 15 USE trc ! passive tracers common variables 21 16 USE sms_pisces ! PISCES Source Minus Sink variables 22 USE p4zopt ! optical model23 17 USE p4zche ! chemical model 24 18 USE p4zprod ! Growth rate of the 2 phyto groups 25 USE p4zmeso ! Sources and sinks of mesozooplankton26 USE p4zint ! interpolation and computation of various fields27 19 USE p4zlim 28 20 USE prtctl_trc ! print control for debugging … … 38 30 39 31 !! * Shared module variables 32 REAL(wp), PUBLIC :: xremikc !: remineralisation rate of DOC 33 REAL(wp), PUBLIC :: xremikn !: remineralisation rate of DON 34 REAL(wp), PUBLIC :: xremikp !: remineralisation rate of DOP 40 35 REAL(wp), PUBLIC :: xremik !: remineralisation rate of POC 41 REAL(wp), PUBLIC :: xremip !: remineralisation rate of DOC42 36 REAL(wp), PUBLIC :: nitrif !: NH4 nitrification rate 43 37 REAL(wp), PUBLIC :: xsirem !: remineralisation rate of POC 44 38 REAL(wp), PUBLIC :: xsiremlab !: fast remineralisation rate of POC 45 39 REAL(wp), PUBLIC :: xsilab !: fraction of labile biogenic silica 46 40 REAL(wp), PUBLIC :: feratb !: Fe/C quota in bacteria 41 REAL(wp), PUBLIC :: xkferb !: Half-saturation constant for bacteria Fe/C 47 42 48 43 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: denitr !: denitrification array 49 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: denitnh4 !: - - - - -50 44 51 45 !!---------------------------------------------------------------------- … … 68 62 ! 69 63 INTEGER :: ji, jj, jk 70 REAL(wp) :: zremi p, zremik, zsiremin64 REAL(wp) :: zremik, zremikc, zremikn, zremikp, zsiremin, zfact 71 65 REAL(wp) :: zsatur, zsatur2, znusil, znusil2, zdep, zdepmin, zfactdep 72 REAL(wp) :: zbactfer, zorem, zorem2, zofer, zolimit 73 REAL(wp) :: zosil, ztem 74 #if ! defined key_kriest 75 REAL(wp) :: zofer2 76 #endif 77 REAL(wp) :: zonitr, zstep, zfact 66 REAL(wp) :: zbactfer, zolimit, zonitr, zrfact2 67 REAL(wp) :: zosil, ztem, zdenitnh4, zolimic, zolimin, zolimip, zdenitrn, zdenitrp 78 68 CHARACTER (len=25) :: charout 79 69 REAL(wp), POINTER, DIMENSION(:,: ) :: ztempbac 80 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdepbac, zolimi, zdepprod, z w3d70 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdepbac, zolimi, zdepprod, zfacsi, zw3d, zfacsib 81 71 !!--------------------------------------------------------------------- 82 72 ! … … 85 75 ! Allocate temporary workspace 86 76 CALL wrk_alloc( jpi, jpj, ztempbac ) 87 CALL wrk_alloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi )77 CALL wrk_alloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi, zfacsi, zfacsib ) 88 78 89 79 ! Initialisation of temprary arrys 90 80 zdepprod(:,:,:) = 1._wp 91 81 ztempbac(:,:) = 0._wp 82 zfacsib(:,:,:) = xsilab / ( 1.0 - xsilab ) 83 zfacsi(:,:,:) = xsilab 92 84 93 85 ! Computation of the mean phytoplankton concentration as … … 112 104 END DO 113 105 106 IF( ln_p4z ) THEN 107 DO jk = 1, jpkm1 108 DO jj = 1, jpj 109 DO ji = 1, jpi 110 ! DOC ammonification. Depends on depth, phytoplankton biomass 111 ! and a limitation term which is supposed to be a parameterization of the bacterial activity. 112 zremik = xremik * xstep / 1.e-6 * xlimbac(ji,jj,jk) * zdepbac(ji,jj,jk) 113 zremik = MAX( zremik, 2.74e-4 * xstep ) 114 ! Ammonification in oxic waters with oxygen consumption 115 ! ----------------------------------------------------- 116 zolimit = zremik * ( 1.- nitrfac(ji,jj,jk) ) * trb(ji,jj,jk,jpdoc) 117 zolimi(ji,jj,jk) = MIN( ( trb(ji,jj,jk,jpoxy) - rtrn ) / o2ut, zolimit ) 118 ! Ammonification in suboxic waters with denitrification 119 ! ------------------------------------------------------- 120 denitr(ji,jj,jk) = MIN( ( trb(ji,jj,jk,jpno3) - rtrn ) / rdenit, & 121 & zremik * nitrfac(ji,jj,jk) * trb(ji,jj,jk,jpdoc) ) 122 ! 123 zolimi (ji,jj,jk) = MAX( 0.e0, zolimi (ji,jj,jk) ) 124 denitr (ji,jj,jk) = MAX( 0.e0, denitr (ji,jj,jk) ) 125 ! 126 tra(ji,jj,jk,jppo4) = tra(ji,jj,jk,jppo4) + zolimi (ji,jj,jk) + denitr(ji,jj,jk) 127 tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + zolimi (ji,jj,jk) + denitr(ji,jj,jk) 128 tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) - denitr (ji,jj,jk) * rdenit 129 tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) - zolimi (ji,jj,jk) - denitr(ji,jj,jk) 130 tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) - zolimi (ji,jj,jk) * o2ut 131 tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) + zolimi (ji,jj,jk) + denitr(ji,jj,jk) 132 tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) + rno3 * ( zolimi(ji,jj,jk) & 133 & + ( rdenit + 1.) * denitr(ji,jj,jk) ) 134 END DO 135 END DO 136 END DO 137 ELSE 138 DO jk = 1, jpkm1 139 DO jj = 1, jpj 140 DO ji = 1, jpi 141 ! DOC ammonification. Depends on depth, phytoplankton biomass 142 ! and a limitation term which is supposed to be a parameterization of the bacterial activity. 143 ! ----------------------------------------------------------------- 144 zremik = xstep / 1.e-6 * MAX(0.01, xlimbac(ji,jj,jk)) * zdepbac(ji,jj,jk) 145 zremik = MAX( zremik, 2.74e-4 * xstep / xremikc ) 146 147 zremikc = xremikc * zremik 148 zremikn = xremikn / xremikc 149 zremikp = xremikp / xremikc 150 151 ! Ammonification in oxic waters with oxygen consumption 152 ! ----------------------------------------------------- 153 zolimit = zremikc * ( 1.- nitrfac(ji,jj,jk) ) * trb(ji,jj,jk,jpdoc) 154 zolimic = MAX( 0.e0, MIN( ( trb(ji,jj,jk,jpoxy) - rtrn ) / o2ut, zolimit ) ) 155 zolimi(ji,jj,jk) = zolimic 156 zolimin = zremikn * zolimic * trb(ji,jj,jk,jpdon) / ( trb(ji,jj,jk,jpdoc) + rtrn ) 157 zolimip = zremikp * zolimic * trb(ji,jj,jk,jpdop) / ( trb(ji,jj,jk,jpdoc) + rtrn ) 158 159 ! Ammonification in suboxic waters with denitrification 160 ! ------------------------------------------------------- 161 zolimit = zremikc * nitrfac(ji,jj,jk) * trb(ji,jj,jk,jpdoc) 162 denitr(ji,jj,jk) = MIN( ( trb(ji,jj,jk,jpno3) - rtrn ) / rdenit, zolimit ) 163 denitr(ji,jj,jk) = MAX( 0.e0, denitr(ji,jj,jk) ) 164 zdenitrn = zremikn * denitr(ji,jj,jk) * trb(ji,jj,jk,jpdon) / ( trb(ji,jj,jk,jpdoc) + rtrn ) 165 zdenitrp = zremikp * denitr(ji,jj,jk) * trb(ji,jj,jk,jpdop) / ( trb(ji,jj,jk,jpdoc) + rtrn ) 166 167 tra(ji,jj,jk,jppo4) = tra(ji,jj,jk,jppo4) + zolimip + zdenitrp 168 tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + zolimin + zdenitrn 169 tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) - denitr(ji,jj,jk) * rdenit 170 tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) - zolimic - denitr(ji,jj,jk) 171 tra(ji,jj,jk,jpdon) = tra(ji,jj,jk,jpdon) - zolimin - zdenitrn 172 tra(ji,jj,jk,jpdop) = tra(ji,jj,jk,jpdop) - zolimip - zdenitrp 173 tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) - zolimic * o2ut 174 tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) + zolimic + denitr(ji,jj,jk) 175 tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) + rno3 * ( zolimin + ( rdenit + 1.) * zdenitrn ) 176 END DO 177 END DO 178 END DO 179 ! 180 ENDIF 181 182 114 183 DO jk = 1, jpkm1 115 184 DO jj = 1, jpj 116 185 DO ji = 1, jpi 117 zstep = xstep118 # if defined key_degrad119 zstep = zstep * facvol(ji,jj,jk)120 # endif121 ! DOC ammonification. Depends on depth, phytoplankton biomass122 ! and a limitation term which is supposed to be a parameterization123 ! of the bacterial activity.124 zremik = xremik * zstep / 1.e-6 * xlimbac(ji,jj,jk) * zdepbac(ji,jj,jk)125 zremik = MAX( zremik, 2.74e-4 * xstep )126 ! Ammonification in oxic waters with oxygen consumption127 ! -----------------------------------------------------128 zolimit = zremik * ( 1.- nitrfac(ji,jj,jk) ) * trb(ji,jj,jk,jpdoc)129 zolimi(ji,jj,jk) = MIN( ( trb(ji,jj,jk,jpoxy) - rtrn ) / o2ut, zolimit )130 ! Ammonification in suboxic waters with denitrification131 ! -------------------------------------------------------132 denitr(ji,jj,jk) = MIN( ( trb(ji,jj,jk,jpno3) - rtrn ) / rdenit, &133 & zremik * nitrfac(ji,jj,jk) * trb(ji,jj,jk,jpdoc) )134 !135 zolimi (ji,jj,jk) = MAX( 0.e0, zolimi (ji,jj,jk) )136 denitr (ji,jj,jk) = MAX( 0.e0, denitr (ji,jj,jk) )137 !138 END DO139 END DO140 END DO141 142 143 DO jk = 1, jpkm1144 DO jj = 1, jpj145 DO ji = 1, jpi146 zstep = xstep147 # if defined key_degrad148 zstep = zstep * facvol(ji,jj,jk)149 # endif150 186 ! NH4 nitrification to NO3. Ceased for oxygen concentrations 151 187 ! below 2 umol/L. Inhibited at strong light 152 188 ! ---------------------------------------------------------- 153 zonitr =nitrif * zstep * trb(ji,jj,jk,jpnh4) / ( 1.+ emoy(ji,jj,jk) ) * ( 1.- nitrfac(ji,jj,jk) ) 154 denitnh4(ji,jj,jk) = nitrif * zstep * trb(ji,jj,jk,jpnh4) * nitrfac(ji,jj,jk) 189 zonitr = nitrif * xstep * trb(ji,jj,jk,jpnh4) * ( 1.- nitrfac(ji,jj,jk) ) & 190 & / ( 1.+ emoy(ji,jj,jk) ) * ( 1. + fr_i(ji,jj) * emoy(ji,jj,jk) ) 191 zdenitnh4 = nitrif * xstep * trb(ji,jj,jk,jpnh4) * nitrfac(ji,jj,jk) 155 192 ! Update of the tracers trends 156 193 ! ---------------------------- 157 tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) - zonitr - denitnh4(ji,jj,jk)158 tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) + zonitr - rdenita * denitnh4(ji,jj,jk)194 tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) - zonitr - zdenitnh4 195 tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) + zonitr - rdenita * zdenitnh4 159 196 tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) - o2nit * zonitr 160 tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) - 2 * rno3 * zonitr + rno3 * ( rdenita - 1. ) * denitnh4(ji,jj,jk)197 tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) - 2 * rno3 * zonitr + rno3 * ( rdenita - 1. ) * zdenitnh4 161 198 END DO 162 199 END DO … … 177 214 ! studies (especially at Papa) have shown this uptake to be significant 178 215 ! ---------------------------------------------------------- 179 zbactfer = 10.e-6* rfact2 * prmax(ji,jj,jk) * xlimbacl(ji,jj,jk) &180 & * trb(ji,jj,jk,jpfer) / ( 2.5E-10+ trb(ji,jj,jk,jpfer) ) &216 zbactfer = feratb * rfact2 * prmax(ji,jj,jk) * xlimbacl(ji,jj,jk) & 217 & * trb(ji,jj,jk,jpfer) / ( xkferb + trb(ji,jj,jk,jpfer) ) & 181 218 & * zdepprod(ji,jj,jk) * zdepbac(ji,jj,jk) 182 #if defined key_kriest183 tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - zbactfer*0.05184 tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zbactfer*0.05185 #else186 219 tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - zbactfer*0.16 187 220 tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zbactfer*0.12 188 221 tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zbactfer*0.04 189 #endif190 222 END DO 191 223 END DO … … 198 230 ENDIF 199 231 232 ! Initialization of the array which contains the labile fraction 233 ! of bSi. Set to a constant in the upper ocean 234 ! --------------------------------------------------------------- 235 200 236 DO jk = 1, jpkm1 201 237 DO jj = 1, jpj 202 238 DO ji = 1, jpi 203 zstep = xstep 204 # if defined key_degrad 205 zstep = zstep * facvol(ji,jj,jk) 206 # endif 207 ! POC disaggregation by turbulence and bacterial activity. 208 ! -------------------------------------------------------- 209 zremip = xremip * zstep * tgfunc(ji,jj,jk) * ( 1.- 0.55 * nitrfac(ji,jj,jk) ) 210 211 ! POC disaggregation rate is reduced in anoxic zone as shown by 212 ! sediment traps data. In oxic area, the exponent of the martin s 213 ! law is around -0.87. In anoxic zone, it is around -0.35. This 214 ! means a disaggregation constant about 0.5 the value in oxic zones 215 ! ----------------------------------------------------------------- 216 zorem = zremip * trb(ji,jj,jk,jppoc) 217 zofer = zremip * trb(ji,jj,jk,jpsfe) 218 #if ! defined key_kriest 219 zorem2 = zremip * trb(ji,jj,jk,jpgoc) 220 zofer2 = zremip * trb(ji,jj,jk,jpbfe) 221 #else 222 zorem2 = zremip * trb(ji,jj,jk,jpnum) 223 #endif 224 225 ! Update the appropriate tracers trends 226 ! ------------------------------------- 227 228 tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) + zorem 229 tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) + zofer 230 #if defined key_kriest 231 tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) - zorem 232 tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) - zorem2 233 tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) - zofer 234 #else 235 tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zorem2 - zorem 236 tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) - zorem2 237 tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zofer2 - zofer 238 tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) - zofer2 239 #endif 240 241 END DO 242 END DO 243 END DO 244 245 IF(ln_ctl) THEN ! print mean trends (used for debugging) 246 WRITE(charout, FMT="('rem3')") 247 CALL prt_ctl_trc_info(charout) 248 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 249 ENDIF 250 251 DO jk = 1, jpkm1 252 DO jj = 1, jpj 253 DO ji = 1, jpi 254 zstep = xstep 255 # if defined key_degrad 256 zstep = zstep * facvol(ji,jj,jk) 257 # endif 239 zdep = MAX( hmld(ji,jj), heup_01(ji,jj) ) 240 zsatur = MAX( rtrn, ( sio3eq(ji,jj,jk) - trb(ji,jj,jk,jpsil) ) / ( sio3eq(ji,jj,jk) + rtrn ) ) 241 zsatur2 = ( 1. + tsn(ji,jj,jk,jp_tem) / 400.)**37 242 znusil = 0.225 * ( 1. + tsn(ji,jj,jk,jp_tem) / 15.) * zsatur + 0.775 * zsatur2 * zsatur**9.25 258 243 ! Remineralization rate of BSi depedant on T and saturation 259 244 ! --------------------------------------------------------- 260 zsatur = ( sio3eq(ji,jj,jk) - trb(ji,jj,jk,jpsil) ) / ( sio3eq(ji,jj,jk) + rtrn ) 261 zsatur = MAX( rtrn, zsatur ) 262 zsatur2 = ( 1. + tsn(ji,jj,jk,jp_tem) / 400.)**37 263 znusil = 0.225 * ( 1. + tsn(ji,jj,jk,jp_tem) / 15.) * zsatur + 0.775 * zsatur2 * zsatur**9.25 264 znusil2 = 0.225 * ( 1. + tsn(ji,jj,1,jp_tem) / 15.) + 0.775 * zsatur2 265 266 ! Two classes of BSi are considered : a labile fraction and 267 ! a more refractory one. The ratio between both fractions is 268 ! constant and specified in the namelist. 269 ! ---------------------------------------------------------- 270 zdep = MAX( hmld(ji,jj), heup(ji,jj) ) 271 zdep = MAX( 0., gdept_n(ji,jj,jk) - zdep ) 272 ztem = MAX( tsn(ji,jj,1,jp_tem), 0. ) 273 zfactdep = xsilab * EXP(-( xsiremlab - xsirem ) * znusil2 * zdep / wsbio2 ) * ztem / ( ztem + 10. ) 274 zsiremin = ( xsiremlab * zfactdep + xsirem * ( 1. - zfactdep ) ) * zstep * znusil 245 IF ( gdept_n(ji,jj,jk) > zdep ) THEN 246 zfacsib(ji,jj,jk) = zfacsib(ji,jj,jk-1) * EXP( -0.5 * ( xsiremlab - xsirem ) & 247 & * znusil * e3t_n(ji,jj,jk) / wsbio4(ji,jj,jk) ) 248 zfacsi(ji,jj,jk) = zfacsib(ji,jj,jk) / ( 1.0 + zfacsib(ji,jj,jk) ) 249 zfacsib(ji,jj,jk) = zfacsib(ji,jj,jk) * EXP( -0.5 * ( xsiremlab - xsirem ) & 250 & * znusil * e3t_n(ji,jj,jk) / wsbio4(ji,jj,jk) ) 251 ENDIF 252 zsiremin = ( xsiremlab * zfacsi(ji,jj,jk) + xsirem * ( 1. - zfacsi(ji,jj,jk) ) ) * xstep * znusil 275 253 zosil = zsiremin * trb(ji,jj,jk,jpgsi) 276 254 ! … … 283 261 284 262 IF(ln_ctl) THEN ! print mean trends (used for debugging) 285 WRITE(charout, FMT="('rem 4')")263 WRITE(charout, FMT="('rem3')") 286 264 CALL prt_ctl_trc_info(charout) 287 265 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 288 266 ENDIF 289 290 ! Update the arrays TRA which contain the biological sources and sinks291 ! --------------------------------------------------------------------292 293 DO jk = 1, jpkm1294 tra(:,:,jk,jppo4) = tra(:,:,jk,jppo4) + zolimi (:,:,jk) + denitr(:,:,jk)295 tra(:,:,jk,jpnh4) = tra(:,:,jk,jpnh4) + zolimi (:,:,jk) + denitr(:,:,jk)296 tra(:,:,jk,jpno3) = tra(:,:,jk,jpno3) - denitr (:,:,jk) * rdenit297 tra(:,:,jk,jpdoc) = tra(:,:,jk,jpdoc) - zolimi (:,:,jk) - denitr(:,:,jk)298 tra(:,:,jk,jpoxy) = tra(:,:,jk,jpoxy) - zolimi (:,:,jk) * o2ut299 tra(:,:,jk,jpdic) = tra(:,:,jk,jpdic) + zolimi (:,:,jk) + denitr(:,:,jk)300 tra(:,:,jk,jptal) = tra(:,:,jk,jptal) + rno3 * ( zolimi(:,:,jk) + ( rdenit + 1.) * denitr(:,:,jk) )301 END DO302 267 303 268 IF( knt == nrdttrc ) THEN … … 316 281 CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 317 282 ENDIF 318 319 IF(ln_ctl) THEN ! print mean trends (used for debugging)320 WRITE(charout, FMT="('rem6')")321 CALL prt_ctl_trc_info(charout)322 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm)323 ENDIF324 283 ! 325 284 CALL wrk_dealloc( jpi, jpj, ztempbac ) 326 CALL wrk_dealloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi )285 CALL wrk_dealloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi, zfacsi, zfacsib ) 327 286 ! 328 287 IF( nn_timing == 1 ) CALL timing_stop('p4z_rem') … … 343 302 !! 344 303 !!---------------------------------------------------------------------- 345 NAMELIST/nampisrem/ xremik, xremip, nitrif, xsirem, xsiremlab, xsilab 304 NAMELIST/nampisrem/ xremik, nitrif, xsirem, xsiremlab, xsilab, feratb, xkferb, & 305 & xremikc, xremikn, xremikp 346 306 INTEGER :: ios ! Local integer output status for namelist read 347 307 … … 359 319 WRITE(numout,*) ' Namelist parameters for remineralization, nampisrem' 360 320 WRITE(numout,*) ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' 361 WRITE(numout,*) ' remineralisation rate of POC xremip =', xremip 362 WRITE(numout,*) ' remineralization rate of DOC xremik =', xremik 321 IF( ln_p4z ) THEN 322 WRITE(numout,*) ' remineralization rate of DOC xremik =', xremik 323 ELSE 324 WRITE(numout,*) ' remineralization rate of DOC xremikc =', xremikc 325 WRITE(numout,*) ' remineralization rate of DON xremikn =', xremikn 326 WRITE(numout,*) ' remineralization rate of DOP xremikp =', xremikp 327 ENDIF 363 328 WRITE(numout,*) ' remineralization rate of Si xsirem =', xsirem 364 329 WRITE(numout,*) ' fast remineralization rate of Si xsiremlab =', xsiremlab 365 330 WRITE(numout,*) ' fraction of labile biogenic silica xsilab =', xsilab 366 331 WRITE(numout,*) ' NH4 nitrification rate nitrif =', nitrif 332 WRITE(numout,*) ' Bacterial Fe/C ratio feratb =', feratb 333 WRITE(numout,*) ' Half-saturation constant for bact. Fe/C xkferb =', xkferb 367 334 ENDIF 368 335 ! 369 336 denitr (:,:,:) = 0._wp 370 denitnh4(:,:,:) = 0._wp371 337 ! 372 338 END SUBROUTINE p4z_rem_init … … 377 343 !! *** ROUTINE p4z_rem_alloc *** 378 344 !!---------------------------------------------------------------------- 379 ALLOCATE( denitr(jpi,jpj,jpk), denitnh4(jpi,jpj,jpk),STAT=p4z_rem_alloc )345 ALLOCATE( denitr(jpi,jpj,jpk), STAT=p4z_rem_alloc ) 380 346 ! 381 347 IF( p4z_rem_alloc /= 0 ) CALL ctl_warn('p4z_rem_alloc: failed to allocate arrays') 382 348 ! 383 349 END FUNCTION p4z_rem_alloc 384 385 #else386 !!======================================================================387 !! Dummy module : No PISCES bio-model388 !!======================================================================389 CONTAINS390 SUBROUTINE p4z_rem ! Empty routine391 END SUBROUTINE p4z_rem392 #endif393 350 394 351 !!======================================================================
Note: See TracChangeset
for help on using the changeset viewer.