Changeset 6225 for branches/2014/dev_r4704_NOC5_MPP_BDY_UPDATE/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90
- Timestamp:
- 2016-01-08T10:35:19+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_r4704_NOC5_MPP_BDY_UPDATE/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90
r4624 r6225 50 50 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: denitnh4 !: - - - - - 51 51 52 !!* Substitution53 # include "top_substitute.h90"54 52 !!---------------------------------------------------------------------- 55 53 !! NEMO/TOP 3.3 , NEMO Consortium (2010) … … 59 57 CONTAINS 60 58 61 SUBROUTINE p4z_rem( kt, jnt )59 SUBROUTINE p4z_rem( kt, knt ) 62 60 !!--------------------------------------------------------------------- 63 61 !! *** ROUTINE p4z_rem *** … … 68 66 !!--------------------------------------------------------------------- 69 67 ! 70 INTEGER, INTENT(in) :: kt, jnt ! ocean time step68 INTEGER, INTENT(in) :: kt, knt ! ocean time step 71 69 ! 72 70 INTEGER :: ji, jj, jk … … 78 76 REAL(wp) :: zofer2 79 77 #endif 80 REAL(wp) :: zonitr, zstep, z rfact278 REAL(wp) :: zonitr, zstep, zfact 81 79 CHARACTER (len=25) :: charout 82 REAL(wp), POINTER, DIMENSION(:,: ) :: ztempbac 83 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdepbac, zolimi, zdepprod 80 REAL(wp), POINTER, DIMENSION(:,: ) :: ztempbac 81 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdepbac, zolimi, zdepprod, zw3d 84 82 !!--------------------------------------------------------------------- 85 83 ! … … 103 101 DO ji = 1, jpi 104 102 zdep = MAX( hmld(ji,jj), heup(ji,jj) ) 105 IF( fsdept(ji,jj,jk) < zdep ) THEN106 zdepbac(ji,jj,jk) = MIN( 0.7 * ( tr n(ji,jj,jk,jpzoo) + 2.* trn(ji,jj,jk,jpmes) ), 4.e-6 )103 IF( gdept_n(ji,jj,jk) < zdep ) THEN 104 zdepbac(ji,jj,jk) = MIN( 0.7 * ( trb(ji,jj,jk,jpzoo) + 2.* trb(ji,jj,jk,jpmes) ), 4.e-6 ) 107 105 ztempbac(ji,jj) = zdepbac(ji,jj,jk) 108 106 ELSE 109 zdepmin = MIN( 1., zdep / fsdept(ji,jj,jk) )107 zdepmin = MIN( 1., zdep / gdept_n(ji,jj,jk) ) 110 108 zdepbac (ji,jj,jk) = zdepmin**0.683 * ztempbac(ji,jj) 111 109 zdepprod(ji,jj,jk) = zdepmin**0.273 … … 119 117 DO ji = 1, jpi 120 118 ! denitrification factor computed from O2 levels 121 nitrfac(ji,jj,jk) = MAX( 0.e0, 0.4 * ( 6.e-6 - tr n(ji,jj,jk,jpoxy) ) &122 & / ( oxymin + tr n(ji,jj,jk,jpoxy) ) )119 nitrfac(ji,jj,jk) = MAX( 0.e0, 0.4 * ( 6.e-6 - trb(ji,jj,jk,jpoxy) ) & 120 & / ( oxymin + trb(ji,jj,jk,jpoxy) ) ) 123 121 nitrfac(ji,jj,jk) = MIN( 1., nitrfac(ji,jj,jk) ) 124 122 END DO … … 140 138 ! Ammonification in oxic waters with oxygen consumption 141 139 ! ----------------------------------------------------- 142 zolimit = zremik * ( 1.- nitrfac(ji,jj,jk) ) * tr n(ji,jj,jk,jpdoc)143 zolimi(ji,jj,jk) = MIN( ( tr n(ji,jj,jk,jpoxy) - rtrn ) / o2ut, zolimit )140 zolimit = zremik * ( 1.- nitrfac(ji,jj,jk) ) * trb(ji,jj,jk,jpdoc) 141 zolimi(ji,jj,jk) = MIN( ( trb(ji,jj,jk,jpoxy) - rtrn ) / o2ut, zolimit ) 144 142 ! Ammonification in suboxic waters with denitrification 145 143 ! ------------------------------------------------------- 146 denitr(ji,jj,jk) = MIN( ( tr n(ji,jj,jk,jpno3) - rtrn ) / rdenit, &147 & zremik * nitrfac(ji,jj,jk) * tr n(ji,jj,jk,jpdoc) )144 denitr(ji,jj,jk) = MIN( ( trb(ji,jj,jk,jpno3) - rtrn ) / rdenit, & 145 & zremik * nitrfac(ji,jj,jk) * trb(ji,jj,jk,jpdoc) ) 148 146 ! 149 147 zolimi (ji,jj,jk) = MAX( 0.e0, zolimi (ji,jj,jk) ) … … 165 163 ! below 2 umol/L. Inhibited at strong light 166 164 ! ---------------------------------------------------------- 167 zonitr =nitrif * zstep * tr n(ji,jj,jk,jpnh4) / ( 1.+ emoy(ji,jj,jk) ) * ( 1.- nitrfac(ji,jj,jk) )168 denitnh4(ji,jj,jk) = nitrif * zstep * tr n(ji,jj,jk,jpnh4) * nitrfac(ji,jj,jk)165 zonitr =nitrif * zstep * trb(ji,jj,jk,jpnh4) / ( 1.+ emoy(ji,jj,jk) ) * ( 1.- nitrfac(ji,jj,jk) ) 166 denitnh4(ji,jj,jk) = nitrif * zstep * trb(ji,jj,jk,jpnh4) * nitrfac(ji,jj,jk) 169 167 ! Update of the tracers trends 170 168 ! ---------------------------- … … 192 190 ! ---------------------------------------------------------- 193 191 zbactfer = 10.e-6 * rfact2 * prmax(ji,jj,jk) * xlimbacl(ji,jj,jk) & 194 & * tr n(ji,jj,jk,jpfer) / ( 2.5E-10 + trn(ji,jj,jk,jpfer) ) &192 & * trb(ji,jj,jk,jpfer) / ( 2.5E-10 + trb(ji,jj,jk,jpfer) ) & 195 193 & * zdepprod(ji,jj,jk) * zdepbac(ji,jj,jk) 196 194 #if defined key_kriest … … 228 226 ! means a disaggregation constant about 0.5 the value in oxic zones 229 227 ! ----------------------------------------------------------------- 230 zorem = zremip * tr n(ji,jj,jk,jppoc)231 zofer = zremip * tr n(ji,jj,jk,jpsfe)228 zorem = zremip * trb(ji,jj,jk,jppoc) 229 zofer = zremip * trb(ji,jj,jk,jpsfe) 232 230 #if ! defined key_kriest 233 zorem2 = zremip * tr n(ji,jj,jk,jpgoc)234 zofer2 = zremip * tr n(ji,jj,jk,jpbfe)231 zorem2 = zremip * trb(ji,jj,jk,jpgoc) 232 zofer2 = zremip * trb(ji,jj,jk,jpbfe) 235 233 #else 236 zorem2 = zremip * tr n(ji,jj,jk,jpnum)234 zorem2 = zremip * trb(ji,jj,jk,jpnum) 237 235 #endif 238 236 … … 272 270 ! Remineralization rate of BSi depedant on T and saturation 273 271 ! --------------------------------------------------------- 274 zsatur = ( sio3eq(ji,jj,jk) - tr n(ji,jj,jk,jpsil) ) / ( sio3eq(ji,jj,jk) + rtrn )272 zsatur = ( sio3eq(ji,jj,jk) - trb(ji,jj,jk,jpsil) ) / ( sio3eq(ji,jj,jk) + rtrn ) 275 273 zsatur = MAX( rtrn, zsatur ) 276 274 zsatur2 = ( 1. + tsn(ji,jj,jk,jp_tem) / 400.)**37 … … 283 281 ! ---------------------------------------------------------- 284 282 zdep = MAX( hmld(ji,jj), heup(ji,jj) ) 285 zdep = MAX( 0., fsdept(ji,jj,jk) - zdep )283 zdep = MAX( 0., gdept_n(ji,jj,jk) - zdep ) 286 284 ztem = MAX( tsn(ji,jj,1,jp_tem), 0. ) 287 285 zfactdep = xsilab * EXP(-( xsiremlab - xsirem ) * znusil2 * zdep / wsbio2 ) * ztem / ( ztem + 10. ) 288 286 zsiremin = ( xsiremlab * zfactdep + xsirem * ( 1. - zfactdep ) ) * zstep * znusil 289 zosil = zsiremin * tr n(ji,jj,jk,jpgsi)287 zosil = zsiremin * trb(ji,jj,jk,jpgsi) 290 288 ! 291 289 tra(ji,jj,jk,jpgsi) = tra(ji,jj,jk,jpgsi) - zosil … … 315 313 END DO 316 314 317 IF( ln_diatrc .AND. lk_iomput .AND. jnt == nrdttrc ) THEN 318 zrfact2 = 1.e3 * rfact2r 319 CALL iom_put( "REMIN" , zolimi(:,:,:) * tmask(:,:,:) * zrfact2 ) ! Remineralisation rate 320 CALL iom_put( "DENIT" , denitr(:,:,:) * rdenit * rno3 * tmask(:,:,:) * zrfact2 ) ! Denitrification 321 ENDIF 315 IF( knt == nrdttrc ) THEN 316 CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 317 zfact = 1.e+3 * rfact2r ! conversion from mol/l/kt to mol/m3/s 318 ! 319 IF( iom_use( "REMIN" ) ) THEN 320 zw3d(:,:,:) = zolimi(:,:,:) * tmask(:,:,:) * zfact ! Remineralisation rate 321 CALL iom_put( "REMIN" , zw3d ) 322 ENDIF 323 IF( iom_use( "DENIT" ) ) THEN 324 zw3d(:,:,:) = denitr(:,:,:) * rdenit * rno3 * tmask(:,:,:) * zfact ! Denitrification 325 CALL iom_put( "DENIT" , zw3d ) 326 ENDIF 327 ! 328 CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 329 ENDIF 322 330 323 331 IF(ln_ctl) THEN ! print mean trends (used for debugging)
Note: See TracChangeset
for help on using the changeset viewer.