Changeset 13295 for NEMO/trunk/src/TOP/PISCES/P4Z
- Timestamp:
- 2020-07-10T20:24:21+02:00 (4 years ago)
- Location:
- NEMO/trunk/src/TOP/PISCES/P4Z
- Files:
-
- 24 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/TOP/PISCES/P4Z/p4zagg.F90
r13286 r13295 60 60 IF( ln_p4z ) THEN 61 61 ! 62 DO_3D _11_11(1, jpkm1 )62 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 63 63 ! 64 64 zfact = xstep * xdiss(ji,jj,jk) … … 102 102 ELSE ! ln_p5z 103 103 ! 104 DO_3D _11_11(1, jpkm1 )104 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 105 105 ! 106 106 zfact = xstep * xdiss(ji,jj,jk) -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zbc.F90
r13286 r13295 112 112 IF( ll_river ) THEN 113 113 jl = n_trc_indcbc(jpno3) 114 DO_2D _11_11114 DO_2D( 1, 1, 1, 1 ) 115 115 DO jk = 1, nk_rnf(ji,jj) 116 116 zcoef = rn_rfact / ( e1e2t(ji,jj) * h_rnf(ji,jj) * rn_cbc_time ) * tmask(ji,jj,1) … … 145 145 ALLOCATE( zironice(jpi,jpj) ) 146 146 ! 147 DO_2D _11_11147 DO_2D( 1, 1, 1, 1 ) 148 148 zdep = rfact / e3t(ji,jj,1,Kmm) 149 149 zwflux = fmmflx(ji,jj) / 1000._wp … … 297 297 IF(lwp) WRITE(numout,*) 298 298 IF(lwp) WRITE(numout,*) ' Level corresponding to 50m depth ', ik50,' ', gdept_1d(ik50+1) 299 DO_3D _00_00(1, ik50 )299 DO_3D( 0, 0, 0, 0, 1, ik50 ) 300 300 ze3t = e3t_0(ji,jj,jk) 301 301 zsurfc = e1u(ji,jj) * ( 1. - umask(ji ,jj ,jk) ) & … … 313 313 CALL lbc_lnk( 'p4zbc', zcmask , 'T', 1.0_wp ) ! lateral boundary conditions on cmask (sign unchanged) 314 314 ! 315 DO_3D _11_11(1, jpk )315 DO_3D( 1, 1, 1, 1, 1, jpk ) 316 316 zexpide = MIN( 8.,( gdept(ji,jj,jk,Kmm) / 500. )**(-1.5) ) 317 317 zdenitide = -0.9543 + 0.7662 * LOG( zexpide ) - 0.235 * LOG( zexpide )**2 -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zbio.F90
r13286 r13295 72 72 xdiss(:,:,:) = 1. 73 73 !!gm the use of nmld should be better here? 74 DO_3D _11_11(2, jpkm1 )74 DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 75 75 !!gm : use nmln and test on jk ... less memory acces 76 76 IF( gdepw(ji,jj,jk+1,Kmm) > hmld(ji,jj) ) xdiss(ji,jj,jk) = 0.01 -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zche.F90
r13237 r13295 179 179 ! 0.04°C relative to an exact computation 180 180 ! --------------------------------------------------------------------- 181 DO_3D _11_11(1, jpk )181 DO_3D( 1, 1, 1, 1, 1, jpk ) 182 182 zpres = gdept(ji,jj,jk,Kmm) / 1000. 183 183 za1 = 0.04 * ( 1.0 + 0.185 * ts(ji,jj,jk,jp_tem,Kmm) + 0.035 * (salinprac(ji,jj,jk) - 35.0) ) … … 472 472 IF( ln_timing ) CALL timing_start('ahini_for_at') 473 473 ! 474 DO_3D _11_11(1, jpk )474 DO_3D( 1, 1, 1, 1, 1, jpk ) 475 475 p_alkcb = tr(ji,jj,jk,jptal,Kbb) * 1000. / (rhop(ji,jj,jk) + rtrn) 476 476 p_dictot = tr(ji,jj,jk,jpdic,Kbb) * 1000. / (rhop(ji,jj,jk) + rtrn) … … 570 570 571 571 ! TOTAL H+ scale: conversion factor for Htot = aphscale * Hfree 572 DO_3D _11_11(1, jpk )572 DO_3D( 1, 1, 1, 1, 1, jpk ) 573 573 IF (rmask(ji,jj,jk) == 1.) THEN 574 574 p_alktot = tr(ji,jj,jk,jptal,Kbb) * 1000. / (rhop(ji,jj,jk) + rtrn) … … 599 599 600 600 DO jn = 1, jp_maxniter_atgen 601 DO_3D _11_11(1, jpk )601 DO_3D( 1, 1, 1, 1, 1, jpk ) 602 602 IF (rmask(ji,jj,jk) == 1.) THEN 603 603 zfact = rhop(ji,jj,jk) / 1000. + rtrn -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zfechem.F90
r13286 r13295 92 92 ! Chemistry is supposed to be fast enough to be at equilibrium 93 93 ! ------------------------------------------------------------ 94 DO_3D _11_11(1, jpkm1 )94 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 95 95 zTL1(ji,jj,jk) = ztotlig(ji,jj,jk) 96 96 zkeq = fekeq(ji,jj,jk) … … 107 107 108 108 zdust = 0. ! if no dust available 109 DO_3D _11_11(1, jpkm1 )109 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 110 110 ! Scavenging rate of iron. This scavenging rate depends on the load of particles of sea water. 111 111 ! This parameterization assumes a simple second order kinetics (k[Particles][Fe]). … … 177 177 IF( ln_ligand ) THEN 178 178 ! 179 DO_3D _11_11(1, jpkm1 )179 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 180 180 zlam1a = ( 0.369 * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) + 102.4 * tr(ji,jj,jk,jppoc,Kbb) ) * xdiss(ji,jj,jk) & 181 181 & + ( 114. * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) ) -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zflx.F90
r13286 r13295 110 110 IF( l_co2cpl ) satmco2(:,:) = atm_co2(:,:) 111 111 112 DO_2D _11_11112 DO_2D( 1, 1, 1, 1 ) 113 113 ! DUMMY VARIABLES FOR DIC, H+, AND BORATE 114 114 zfact = rhop(ji,jj,1) / 1000. + rtrn … … 126 126 ! ------------------------------------------- 127 127 128 DO_2D _11_11128 DO_2D( 1, 1, 1, 1 ) 129 129 ztc = MIN( 35., ts(ji,jj,1,jp_tem,Kmm) ) 130 130 ztc2 = ztc * ztc … … 145 145 146 146 147 DO_2D _11_11147 DO_2D( 1, 1, 1, 1 ) 148 148 ztkel = tempis(ji,jj,1) + 273.15 149 149 zsal = salinprac(ji,jj,1) + ( 1.- tmask(ji,jj,1) ) * 35. -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zligand.F90
r13286 r13295 52 52 IF( ln_timing ) CALL timing_start('p4z_ligand') 53 53 ! 54 DO_3D _11_11(1, jpkm1 )54 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 55 55 ! 56 56 ! ------------------------------------------------------------------ -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zlim.F90
r12377 r13295 98 98 IF( ln_timing ) CALL timing_start('p4z_lim') 99 99 ! 100 DO_3D _11_11(1, jpkm1 )100 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 101 101 102 102 ! Tuning of the iron concentration to a minimum level that is set to the detection limit … … 173 173 ! Compute the fraction of nanophytoplankton that is made of calcifiers 174 174 ! -------------------------------------------------------------------- 175 DO_3D _11_11(1, jpkm1 )175 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 176 176 zlim1 = ( tr(ji,jj,jk,jpno3,Kbb) * concnnh4 + tr(ji,jj,jk,jpnh4,Kbb) * concnno3 ) & 177 177 & / ( concnno3 * concnnh4 + concnnh4 * tr(ji,jj,jk,jpno3,Kbb) + concnno3 * tr(ji,jj,jk,jpnh4,Kbb) ) … … 193 193 END_3D 194 194 ! 195 DO_3D _11_11(1, jpkm1 )195 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 196 196 ! denitrification factor computed from O2 levels 197 197 nitrfac(ji,jj,jk) = MAX( 0.e0, 0.4 * ( 6.e-6 - tr(ji,jj,jk,jpoxy,Kbb) ) & -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zlys.F90
r13286 r13295 75 75 CALL solve_at_general( zhinit, zhi, Kbb ) 76 76 77 DO_3D _11_11(1, jpkm1 )77 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 78 78 zco3(ji,jj,jk) = tr(ji,jj,jk,jpdic,Kbb) * ak13(ji,jj,jk) * ak23(ji,jj,jk) / (zhi(ji,jj,jk)**2 & 79 79 & + ak13(ji,jj,jk) * zhi(ji,jj,jk) + ak13(ji,jj,jk) * ak23(ji,jj,jk) + rtrn ) … … 87 87 ! --------------------------------------------------------- 88 88 89 DO_3D _11_11(1, jpkm1 )89 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 90 90 91 91 ! DEVIATION OF [CO3--] FROM SATURATION VALUE -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zmeso.F90
r13286 r13295 81 81 IF( ln_timing ) CALL timing_start('p4z_meso') 82 82 ! 83 DO_3D _11_11(1, jpkm1 )83 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 84 84 zcompam = MAX( ( tr(ji,jj,jk,jpmes,Kbb) - 1.e-9 ), 0.e0 ) 85 85 zfact = xstep * tgfunc2(ji,jj,jk) * zcompam -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zmicro.F90
r13286 r13295 79 79 IF( ln_timing ) CALL timing_start('p4z_micro') 80 80 ! 81 DO_3D _11_11(1, jpkm1 )81 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 82 82 zcompaz = MAX( ( tr(ji,jj,jk,jpzoo,Kbb) - 1.e-9 ), 0.e0 ) 83 83 zfact = xstep * tgfunc2(ji,jj,jk) * zcompaz -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zmort.F90
r13286 r13295 77 77 ! 78 78 prodcal(:,:,:) = 0._wp ! calcite production variable set to zero 79 DO_3D _11_11(1, jpkm1 )79 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 80 80 zcompaph = MAX( ( tr(ji,jj,jk,jpphy,Kbb) - 1e-8 ), 0.e0 ) 81 81 ! When highly limited by macronutrients, very small cells … … 152 152 ! ------------------------------------------------------------ 153 153 154 DO_3D _11_11(1, jpkm1 )154 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 155 155 156 156 zcompadi = MAX( ( tr(ji,jj,jk,jpdia,Kbb) - 1e-9), 0. ) -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zopt.F90
r13286 r13295 89 89 IF( ln_p5z ) zchl3d(:,:,:) = zchl3d(:,:,:) + tr(:,:,:,jppch,Kbb) 90 90 ! 91 DO_3D _11_11(1, jpkm1 )91 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 92 92 zchl = ( zchl3d(ji,jj,jk) + rtrn ) * 1.e6 93 93 zchl = MIN( 10. , MAX( 0.05, zchl ) ) … … 160 160 heup_01(:,:) = gdepw(:,:,2,Kmm) 161 161 162 DO_3D _11_11(2, nksrp )162 DO_3D( 1, 1, 1, 1, 2, nksrp ) 163 163 IF( etot_ndcy(ji,jj,jk) * tmask(ji,jj,jk) >= zqsr100(ji,jj) ) THEN 164 164 neln(ji,jj) = jk+1 ! Euphotic level : 1rst T-level strictly below Euphotic layer … … 178 178 zetmp2 (:,:) = 0.e0 179 179 180 DO_3D _11_11(1, nksrp )180 DO_3D( 1, 1, 1, 1, 1, nksrp ) 181 181 IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 182 182 zetmp1 (ji,jj) = zetmp1 (ji,jj) + etot (ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! remineralisation … … 189 189 zpar(:,:,:) = etot_ndcy(:,:,:) ! diagnostic : PAR with no diurnal cycle 190 190 ! 191 DO_3D _11_11(1, nksrp )191 DO_3D( 1, 1, 1, 1, 1, nksrp ) 192 192 IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 193 193 z1_dep = 1. / ( zdepmoy(ji,jj) + rtrn ) … … 201 201 zetmp4 (:,:) = 0.e0 202 202 ! 203 DO_3D _11_11(1, nksrp )203 DO_3D( 1, 1, 1, 1, 1, nksrp ) 204 204 IF( gdepw(ji,jj,jk+1,Kmm) <= MIN(hmld(ji,jj), heup_01(ji,jj)) ) THEN 205 205 zetmp3 (ji,jj) = zetmp3 (ji,jj) + enano (ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! production … … 211 211 ediatm(:,:,:) = ediat(:,:,:) 212 212 ! 213 DO_3D _11_11(1, nksrp )213 DO_3D( 1, 1, 1, 1, 1, nksrp ) 214 214 IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 215 215 z1_dep = 1. / ( zdepmoy(ji,jj) + rtrn ) … … 221 221 IF( ln_p5z ) THEN 222 222 ALLOCATE( zetmp5(jpi,jpj) ) ; zetmp5 (:,:) = 0.e0 223 DO_3D _11_11(1, nksrp )223 DO_3D( 1, 1, 1, 1, 1, nksrp ) 224 224 IF( gdepw(ji,jj,jk+1,Kmm) <= MIN(hmld(ji,jj), heup_01(ji,jj)) ) THEN 225 225 zetmp5(ji,jj) = zetmp5 (ji,jj) + epico(ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! production … … 229 229 epicom(:,:,:) = epico(:,:,:) 230 230 ! 231 DO_3D _11_11(1, nksrp )231 DO_3D( 1, 1, 1, 1, 1, nksrp ) 232 232 IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 233 233 z1_dep = 1. / ( zdepmoy(ji,jj) + rtrn ) … … 302 302 pe3(:,:,1) = zqsr(:,:) * EXP( -0.5 * ekr(:,:,1) ) 303 303 ! 304 DO_3D _11_11(2, nksrp )304 DO_3D( 1, 1, 1, 1, 2, nksrp ) 305 305 pe1(ji,jj,jk) = pe1(ji,jj,jk-1) * EXP( -0.5 * ( ekb(ji,jj,jk-1) + ekb(ji,jj,jk) ) ) 306 306 pe2(ji,jj,jk) = pe2(ji,jj,jk-1) * EXP( -0.5 * ( ekg(ji,jj,jk-1) + ekg(ji,jj,jk) ) ) -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zpoc.F90
r13286 r13295 107 107 ! ----------------------------------------------------------------------- 108 108 ztremint(:,:,:) = zremigoc(:,:,:) 109 DO_3D _11_11(2, jpkm1 )109 DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 110 110 IF (tmask(ji,jj,jk) == 1.) THEN 111 111 zdep = hmld(ji,jj) … … 192 192 193 193 IF( ln_p4z ) THEN 194 DO_3D _11_11(1, jpkm1 )194 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 195 195 ! POC disaggregation by turbulence and bacterial activity. 196 196 ! -------------------------------------------------------- … … 212 212 END_3D 213 213 ELSE 214 DO_3D _11_11(1, jpkm1 )214 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 215 215 ! POC disaggregation by turbulence and bacterial activity. 216 216 ! -------------------------------------------------------- … … 260 260 ! ---------------------------------------------------------------- 261 261 ! 262 DO_3D _11_11(1, jpkm1 )262 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 263 263 zdep = hmld(ji,jj) 264 264 IF (tmask(ji,jj,jk) == 1. .AND. gdept(ji,jj,jk,Kmm) <= zdep ) THEN … … 275 275 ! --------------------------------------------------------------------- 276 276 ztremint(:,:,:) = zremipoc(:,:,:) 277 DO_3D _11_11(1, jpkm1 )277 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 278 278 IF (tmask(ji,jj,jk) == 1.) THEN 279 279 zdep = hmld(ji,jj) … … 310 310 ! ----------------------------------------------------------------------- 311 311 ! 312 DO_3D _11_11(2, jpkm1 )312 DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 313 313 IF (tmask(ji,jj,jk) == 1.) THEN 314 314 zdep = hmld(ji,jj) … … 384 384 385 385 IF( ln_p4z ) THEN 386 DO_3D _11_11(1, jpkm1 )386 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 387 387 IF (tmask(ji,jj,jk) == 1.) THEN 388 388 ! POC disaggregation by turbulence and bacterial activity. … … 401 401 END_3D 402 402 ELSE 403 DO_3D _11_11(1, jpkm1 )403 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 404 404 ! POC disaggregation by turbulence and bacterial activity. 405 405 ! -------------------------------------------------------- -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zprod.F90
r13286 r13295 110 110 ! day length in hours 111 111 zstrn(:,:) = 0. 112 DO_2D _11_11112 DO_2D( 1, 1, 1, 1 ) 113 113 zargu = TAN( zcodel ) * TAN( gphit(ji,jj) * rad ) 114 114 zargu = MAX( -1., MIN( 1., zargu ) ) … … 117 117 118 118 ! Impact of the day duration and light intermittency on phytoplankton growth 119 DO_3D _11_11(1, jpkm1 )119 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 120 120 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 121 121 zval = MAX( 1., zstrn(ji,jj) ) … … 135 135 136 136 ! Computation of the P-I slope for nanos and diatoms 137 DO_3D _11_11(1, jpkm1 )137 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 138 138 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 139 139 ztn = MAX( 0., ts(ji,jj,jk,jp_tem,Kmm) - 15. ) … … 150 150 END_3D 151 151 152 DO_3D _11_11(1, jpkm1 )152 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 153 153 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 154 154 ! Computation of production function for Carbon … … 171 171 ! Computation of a proxy of the N/C ratio 172 172 ! --------------------------------------- 173 DO_3D _11_11(1, jpkm1 )173 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 174 174 zval = MIN( xnanopo4(ji,jj,jk), ( xnanonh4(ji,jj,jk) + xnanono3(ji,jj,jk) ) ) & 175 175 & * zprmaxn(ji,jj,jk) / ( zprbio(ji,jj,jk) + rtrn ) … … 181 181 182 182 183 DO_3D _11_11(1, jpkm1 )183 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 184 184 185 185 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN … … 205 205 ! Sea-ice effect on production 206 206 207 DO_3D _11_11(1, jpkm1 )207 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 208 208 zprbio(ji,jj,jk) = zprbio(ji,jj,jk) * ( 1. - fr_i(ji,jj) ) 209 209 zprdia(ji,jj,jk) = zprdia(ji,jj,jk) * ( 1. - fr_i(ji,jj) ) … … 211 211 212 212 ! Computation of the various production terms 213 DO_3D _11_11(1, jpkm1 )213 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 214 214 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 215 215 ! production terms for nanophyto. (C) … … 237 237 238 238 ! Computation of the chlorophyll production terms 239 DO_3D _11_11(1, jpkm1 )239 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 240 240 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 241 241 ! production terms for nanophyto. ( chlorophyll ) … … 260 260 261 261 ! Update the arrays TRA which contain the biological sources and sinks 262 DO_3D _11_11(1, jpkm1 )262 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 263 263 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 264 264 zproreg = zprorcan(ji,jj,jk) - zpronewn(ji,jj,jk) … … 288 288 IF( ln_ligand ) THEN 289 289 zpligprod1(:,:,:) = 0._wp ; zpligprod2(:,:,:) = 0._wp 290 DO_3D _11_11(1, jpkm1 )290 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 291 291 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 292 292 zdocprod = excretd * zprorcad(ji,jj,jk) + excretn * zprorcan(ji,jj,jk) -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zrem.F90
r13286 r13295 89 89 ! that was modeling explicitely bacteria 90 90 ! ------------------------------------------------------- 91 DO_3D _11_11(1, jpkm1 )91 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 92 92 zdep = MAX( hmld(ji,jj), heup(ji,jj) ) 93 93 IF( gdept(ji,jj,jk,Kmm) < zdep ) THEN … … 103 103 104 104 IF( ln_p4z ) THEN 105 DO_3D _11_11(1, jpkm1 )105 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 106 106 ! DOC ammonification. Depends on depth, phytoplankton biomass 107 107 ! and a limitation term which is supposed to be a parameterization of the bacterial activity. … … 134 134 END_3D 135 135 ELSE 136 DO_3D _11_11(1, jpkm1 )136 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 137 137 ! DOC ammonification. Depends on depth, phytoplankton biomass 138 138 ! and a limitation term which is supposed to be a parameterization of the bacterial activity. … … 178 178 179 179 180 DO_3D _11_11(1, jpkm1 )180 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 181 181 ! NH4 nitrification to NO3. Ceased for oxygen concentrations 182 182 ! below 2 umol/L. Inhibited at strong light … … 200 200 ENDIF 201 201 202 DO_3D _11_11(1, jpkm1 )202 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 203 203 204 204 ! Bacterial uptake of iron. No iron is available in DOC. So … … 226 226 ! --------------------------------------------------------------- 227 227 228 DO_3D _11_11(1, jpkm1 )228 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 229 229 zdep = MAX( hmld(ji,jj), heup_01(ji,jj) ) 230 230 zsatur = MAX( rtrn, ( sio3eq(ji,jj,jk) - tr(ji,jj,jk,jpsil,Kbb) ) / ( sio3eq(ji,jj,jk) + rtrn ) ) -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zsed.F90
r13286 r13295 94 94 ! OA: Warning, the following part is necessary to avoid CFL problems above the sediments 95 95 ! -------------------------------------------------------------------- 96 DO_2D _11_1196 DO_2D( 1, 1, 1, 1 ) 97 97 ikt = mbkt(ji,jj) 98 98 zdep = e3t(ji,jj,ikt,Kmm) / xstep … … 104 104 ! Computation of the fraction of organic matter that is permanently buried from Dunne's model 105 105 ! ------------------------------------------------------- 106 DO_2D _11_11106 DO_2D( 1, 1, 1, 1 ) 107 107 IF( tmask(ji,jj,1) == 1 ) THEN 108 108 ikt = mbkt(ji,jj) … … 130 130 IF( .NOT.lk_sed ) zrivsil = 1._wp - sedsilfrac 131 131 132 DO_2D _11_11132 DO_2D( 1, 1, 1, 1 ) 133 133 ikt = mbkt(ji,jj) 134 134 zdep = xstep / e3t(ji,jj,ikt,Kmm) … … 142 142 ! 143 143 IF( .NOT.lk_sed ) THEN 144 DO_2D _11_11144 DO_2D( 1, 1, 1, 1 ) 145 145 ikt = mbkt(ji,jj) 146 146 zdep = xstep / e3t(ji,jj,ikt,Kmm) … … 160 160 ENDIF 161 161 ! 162 DO_2D _11_11162 DO_2D( 1, 1, 1, 1 ) 163 163 ikt = mbkt(ji,jj) 164 164 zdep = xstep / e3t(ji,jj,ikt,Kmm) … … 172 172 ! 173 173 IF( ln_p5z ) THEN 174 DO_2D _11_11174 DO_2D( 1, 1, 1, 1 ) 175 175 ikt = mbkt(ji,jj) 176 176 zdep = xstep / e3t(ji,jj,ikt,Kmm) … … 187 187 ! The 0.5 factor in zpdenit is to avoid negative NO3 concentration after 188 188 ! denitrification in the sediments. Not very clever, but simpliest option. 189 DO_2D _11_11189 DO_2D( 1, 1, 1, 1 ) 190 190 ikt = mbkt(ji,jj) 191 191 zdep = xstep / e3t(ji,jj,ikt,Kmm) … … 224 224 ENDDO 225 225 IF( ln_p4z ) THEN 226 DO_3D _11_11(1, jpkm1 )226 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 227 227 ! ! Potential nitrogen fixation dependant on temperature and iron 228 228 ztemp = ts(ji,jj,jk,jp_tem,Kmm) … … 240 240 END_3D 241 241 ELSE ! p5z 242 DO_3D _11_11(1, jpkm1 )242 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 243 243 ! ! Potential nitrogen fixation dependant on temperature and iron 244 244 ztemp = ts(ji,jj,jk,jp_tem,Kmm) … … 261 261 ! ---------------------------------------- 262 262 IF( ln_p4z ) THEN 263 DO_3D _11_11(1, jpkm1 )263 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 264 264 zfact = nitrpot(ji,jj,jk) * nitrfix 265 265 tr(ji,jj,jk,jpnh4,Krhs) = tr(ji,jj,jk,jpnh4,Krhs) + zfact / 3.0 … … 278 278 END_3D 279 279 ELSE ! p5z 280 DO_3D _11_11(1, jpkm1 )280 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 281 281 zfact = nitrpot(ji,jj,jk) * nitrfix 282 282 tr(ji,jj,jk,jpnh4,Krhs) = tr(ji,jj,jk,jpnh4,Krhs) + zfact / 3.0 -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zsink.F90
r13286 r13295 81 81 ! by data and from the coagulation theory 82 82 ! ----------------------------------------------------------- 83 DO_3D _11_11(1, jpkm1 )83 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 84 84 zmax = MAX( heup_01(ji,jj), hmld(ji,jj) ) 85 85 zfact = MAX( 0., gdepw(ji,jj,jk+1,Kmm) - zmax ) / wsbio2scale -
NEMO/trunk/src/TOP/PISCES/P4Z/p4zsms.F90
r13286 r13295 133 133 xnegtr(:,:,:) = 1.e0 134 134 DO jn = jp_pcs0, jp_pcs1 135 DO_3D _11_11(1, jpk )135 DO_3D( 1, 1, 1, 1, 1, jpk ) 136 136 IF( ( tr(ji,jj,jk,jn,Kbb) + tr(ji,jj,jk,jn,Krhs) ) < 0.e0 ) THEN 137 137 ztra = ABS( tr(ji,jj,jk,jn,Kbb) ) / ( ABS( tr(ji,jj,jk,jn,Krhs) ) + rtrn ) -
NEMO/trunk/src/TOP/PISCES/P4Z/p5zlim.F90
r12377 r13295 131 131 zratchl = 6.0 132 132 ! 133 DO_3D _11_11(1, jpkm1 )133 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 134 134 ! 135 135 ! Tuning of the iron concentration to a minimum level that is set to the detection limit … … 318 318 ! phytoplankton (see Daines et al., 2013). 319 319 ! -------------------------------------------------------------------------------------------------- 320 DO_3D _11_11(1, jpkm1 )320 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 321 321 ! Size estimation of nanophytoplankton 322 322 ! ------------------------------------ … … 367 367 ! Compute the fraction of nanophytoplankton that is made of calcifiers 368 368 ! -------------------------------------------------------------------- 369 DO_3D _11_11(1, jpkm1 )369 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 370 370 zlim1 = tr(ji,jj,jk,jpnh4,Kbb) / ( tr(ji,jj,jk,jpnh4,Kbb) + concnnh4 ) + tr(ji,jj,jk,jpno3,Kbb) & 371 371 & / ( tr(ji,jj,jk,jpno3,Kbb) + concnno3 ) * ( 1.0 - tr(ji,jj,jk,jpnh4,Kbb) & … … 385 385 END_3D 386 386 ! 387 DO_3D _11_11(1, jpkm1 )387 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 388 388 ! denitrification factor computed from O2 levels 389 389 nitrfac(ji,jj,jk) = MAX( 0.e0, 0.4 * ( 6.e-6 - tr(ji,jj,jk,jpoxy,Kbb) ) & -
NEMO/trunk/src/TOP/PISCES/P4Z/p5zmeso.F90
r13286 r13295 98 98 IF ( bmetexc2 ) zmetexcess = 1.0 99 99 100 DO_3D _11_11(1, jpkm1 )100 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 101 101 zcompam = MAX( ( tr(ji,jj,jk,jpmes,Kbb) - 1.e-9 ), 0.e0 ) 102 102 zfact = xstep * tgfunc2(ji,jj,jk) * zcompam -
NEMO/trunk/src/TOP/PISCES/P4Z/p5zmicro.F90
r13286 r13295 96 96 IF ( bmetexc ) zmetexcess = 1.0 97 97 ! 98 DO_3D _11_11(1, jpkm1 )98 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 99 99 zcompaz = MAX( ( tr(ji,jj,jk,jpzoo,Kbb) - 1.e-9 ), 0.e0 ) 100 100 zfact = xstep * tgfunc2(ji,jj,jk) * zcompaz -
NEMO/trunk/src/TOP/PISCES/P4Z/p5zmort.F90
r13286 r13295 82 82 ! 83 83 prodcal(:,:,:) = 0. !: calcite production variable set to zero 84 DO_3D _11_11(1, jpkm1 )84 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 85 85 zcompaph = MAX( ( tr(ji,jj,jk,jpphy,Kbb) - 1e-9 ), 0.e0 ) 86 86 ! Squared mortality of Phyto similar to a sedimentation term during … … 148 148 IF( ln_timing ) CALL timing_start('p5z_pico') 149 149 ! 150 DO_3D _11_11(1, jpkm1 )150 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 151 151 zcompaph = MAX( ( tr(ji,jj,jk,jppic,Kbb) - 1e-9 ), 0.e0 ) 152 152 ! Squared mortality of Phyto similar to a sedimentation term during … … 207 207 ! 208 208 209 DO_3D _11_11(1, jpkm1 )209 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 210 210 211 211 zcompadi = MAX( ( tr(ji,jj,jk,jpdia,Kbb) - 1E-9), 0. ) -
NEMO/trunk/src/TOP/PISCES/P4Z/p5zprod.F90
r13286 r13295 125 125 ! day length in hours 126 126 zstrn(:,:) = 0. 127 DO_2D _11_11127 DO_2D( 1, 1, 1, 1 ) 128 128 zargu = TAN( zcodel ) * TAN( gphit(ji,jj) * rad ) 129 129 zargu = MAX( -1., MIN( 1., zargu ) ) … … 132 132 133 133 ! Impact of the day duration on phytoplankton growth 134 DO_3D _11_11(1, jpkm1 )134 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 135 135 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 136 136 zval = MAX( 1., zstrn(ji,jj) ) … … 152 152 WHERE( zstrn(:,:) < 1.e0 ) zstrn(:,:) = 24. 153 153 154 DO_3D _11_11(1, jpkm1 )154 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 155 155 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 156 156 ! Computation of the P-I slope for nanos and diatoms … … 186 186 END_3D 187 187 188 DO_3D _11_11(1, jpkm1 )188 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 189 189 190 190 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN … … 208 208 209 209 ! Sea-ice effect on production 210 DO_3D _11_11(1, jpkm1 )210 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 211 211 zprbio(ji,jj,jk) = zprbio(ji,jj,jk) * ( 1. - fr_i(ji,jj) ) 212 212 zprpic(ji,jj,jk) = zprpic(ji,jj,jk) * ( 1. - fr_i(ji,jj) ) … … 216 216 217 217 ! Computation of the various production terms of nanophytoplankton 218 DO_3D _11_11(1, jpkm1 )218 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 219 219 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 220 220 ! production terms for nanophyto. … … 249 249 250 250 ! Computation of the various production terms of picophytoplankton 251 DO_3D _11_11(1, jpkm1 )251 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 252 252 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 253 253 ! production terms for picophyto. … … 282 282 283 283 ! Computation of the various production terms of diatoms 284 DO_3D _11_11(1, jpkm1 )284 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 285 285 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 286 286 ! production terms for diatomees … … 316 316 END_3D 317 317 318 DO_3D _11_11(1, jpkm1 )318 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 319 319 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 320 320 ! production terms for nanophyto. ( chlorophyll ) … … 347 347 348 348 ! Update the arrays TRA which contain the biological sources and sinks 349 DO_3D _11_11(1, jpkm1 )349 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 350 350 zprontot = zpronewn(ji,jj,jk) + zproregn(ji,jj,jk) 351 351 zproptot = zpronewp(ji,jj,jk) + zproregp(ji,jj,jk) … … 410 410 IF( ln_ligand ) THEN 411 411 zpligprod1(:,:,:) = 0._wp ; zpligprod2(:,:,:) = 0._wp 412 DO_3D _11_11(1, jpkm1 )412 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 413 413 zdocprod = excretd * zprorcad(ji,jj,jk) + excretn * zprorcan(ji,jj,jk) + excretp * zprorcap(ji,jj,jk) 414 414 zfeup = texcretn * zprofen(ji,jj,jk) + texcretd * zprofed(ji,jj,jk) + texcretp * zprofep(ji,jj,jk)
Note: See TracChangeset
for help on using the changeset viewer.