- Timestamp:
- 2019-11-22T15:29:17+01:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11943_MERGE_2019/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src
- Property svn:mergeinfo deleted
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zsed.F90
r10788 r11949 39 39 CONTAINS 40 40 41 SUBROUTINE p4z_sed( kt, knt )41 SUBROUTINE p4z_sed( kt, knt, Kbb, Kmm, Krhs ) 42 42 !!--------------------------------------------------------------------- 43 43 !! *** ROUTINE p4z_sed *** … … 51 51 ! 52 52 INTEGER, INTENT(in) :: kt, knt ! ocean time step 53 INTEGER, INTENT(in) :: Kbb, Kmm, Krhs ! time level indices 53 54 INTEGER :: ji, jj, jk, ikt 54 55 REAL(wp) :: zrivalk, zrivsil, zrivno3 … … 101 102 DO jj = 1, jpj 102 103 DO ji = 1, jpi 103 zdep = rfact2 / e3t _n(ji,jj,1)104 zdep = rfact2 / e3t(ji,jj,1,Kmm) 104 105 zwflux = fmmflx(ji,jj) / 1000._wp 105 zironice(ji,jj) = MAX( -0.99 * tr b(ji,jj,1,jpfer), -zwflux * icefeinput * zdep )106 zironice(ji,jj) = MAX( -0.99 * tr(ji,jj,1,jpfer,Kbb), -zwflux * icefeinput * zdep ) 106 107 END DO 107 108 END DO 108 109 ! 109 tr a(:,:,1,jpfer) = tra(:,:,1,jpfer) + zironice(:,:)110 tr(:,:,1,jpfer,Krhs) = tr(:,:,1,jpfer,Krhs) + zironice(:,:) 110 111 ! 111 112 IF( lk_iomput .AND. knt == nrdttrc .AND. iom_use( "Ironice" ) ) & 112 & CALL iom_put( "Ironice", zironice(:,:) * 1.e+3 * rfact2r * e3t _n(:,:,1) * tmask(:,:,1) ) ! iron flux from ice113 & CALL iom_put( "Ironice", zironice(:,:) * 1.e+3 * rfact2r * e3t(:,:,1,Kmm) * tmask(:,:,1) ) ! iron flux from ice 113 114 ! 114 115 DEALLOCATE( zironice ) … … 123 124 ! ! Iron and Si deposition at the surface 124 125 IF( ln_solub ) THEN 125 zirondep(:,:,1) = solub(:,:) * dust(:,:) * mfrac * rfact2 / e3t _n(:,:,1) / 55.85 + 3.e-10 * r1_ryyss126 zirondep(:,:,1) = solub(:,:) * dust(:,:) * mfrac * rfact2 / e3t(:,:,1,Kmm) / 55.85 + 3.e-10 * r1_ryyss 126 127 ELSE 127 zirondep(:,:,1) = dustsolub * dust(:,:) * mfrac * rfact2 / e3t _n(:,:,1) / 55.85 + 3.e-10 * r1_ryyss128 ENDIF 129 zsidep(:,:) = 8.8 * 0.075 * dust(:,:) * mfrac * rfact2 / e3t _n(:,:,1) / 28.1130 zpdep (:,:,1) = 0.1 * 0.021 * dust(:,:) * mfrac * rfact2 / e3t _n(:,:,1) / 31. / po4r128 zirondep(:,:,1) = dustsolub * dust(:,:) * mfrac * rfact2 / e3t(:,:,1,Kmm) / 55.85 + 3.e-10 * r1_ryyss 129 ENDIF 130 zsidep(:,:) = 8.8 * 0.075 * dust(:,:) * mfrac * rfact2 / e3t(:,:,1,Kmm) / 28.1 131 zpdep (:,:,1) = 0.1 * 0.021 * dust(:,:) * mfrac * rfact2 / e3t(:,:,1,Kmm) / 31. / po4r 131 132 ! ! Iron solubilization of particles in the water column 132 133 ! ! dust in kg/m2/s ---> 1/55.85 to put in mol/Fe ; wdust in m/j 133 134 zwdust = 0.03 * rday / ( wdust * 55.85 ) / ( 270. * rday ) 134 135 DO jk = 2, jpkm1 135 zirondep(:,:,jk) = dust(:,:) * mfrac * zwdust * rfact2 * EXP( -gdept _n(:,:,jk) / 540. )136 zirondep(:,:,jk) = dust(:,:) * mfrac * zwdust * rfact2 * EXP( -gdept(:,:,jk,Kmm) / 540. ) 136 137 zpdep (:,:,jk) = zirondep(:,:,jk) * 0.023 137 138 END DO 138 139 ! ! Iron solubilization of particles in the water column 139 tr a(:,:,1,jpsil) = tra(:,:,1,jpsil) + zsidep (:,:)140 tr(:,:,1,jpsil,Krhs) = tr(:,:,1,jpsil,Krhs) + zsidep (:,:) 140 141 DO jk = 1, jpkm1 141 tr a(:,:,jk,jppo4) = tra(:,:,jk,jppo4) + zpdep (:,:,jk)142 tr a(:,:,jk,jpfer) = tra(:,:,jk,jpfer) + zirondep(:,:,jk)142 tr(:,:,jk,jppo4,Krhs) = tr(:,:,jk,jppo4,Krhs) + zpdep (:,:,jk) 143 tr(:,:,jk,jpfer,Krhs) = tr(:,:,jk,jpfer,Krhs) + zirondep(:,:,jk) 143 144 ENDDO 144 145 ! … … 146 147 IF( knt == nrdttrc ) THEN 147 148 IF( iom_use( "Irondep" ) ) & 148 & CALL iom_put( "Irondep", zirondep(:,:,1) * 1.e+3 * rfact2r * e3t _n(:,:,1) * tmask(:,:,1) ) ! surface downward dust depo of iron149 & CALL iom_put( "Irondep", zirondep(:,:,1) * 1.e+3 * rfact2r * e3t(:,:,1,Kmm) * tmask(:,:,1) ) ! surface downward dust depo of iron 149 150 IF( iom_use( "pdust" ) ) & 150 151 & CALL iom_put( "pdust" , dust(:,:) / ( wdust * rday ) * tmask(:,:,1) ) ! dust concentration at surface … … 161 162 DO ji = 1, jpi 162 163 DO jk = 1, nk_rnf(ji,jj) 163 tr a(ji,jj,jk,jppo4) = tra(ji,jj,jk,jppo4) + rivdip(ji,jj) * rfact2164 tr a(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) + rivdin(ji,jj) * rfact2165 tr a(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) + rivdic(ji,jj) * 5.e-5 * rfact2166 tr a(ji,jj,jk,jpsil) = tra(ji,jj,jk,jpsil) + rivdsi(ji,jj) * rfact2167 tr a(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) + rivdic(ji,jj) * rfact2168 tr a(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) + ( rivalk(ji,jj) - rno3 * rivdin(ji,jj) ) * rfact2169 tr a(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) + rivdoc(ji,jj) * rfact2164 tr(ji,jj,jk,jppo4,Krhs) = tr(ji,jj,jk,jppo4,Krhs) + rivdip(ji,jj) * rfact2 165 tr(ji,jj,jk,jpno3,Krhs) = tr(ji,jj,jk,jpno3,Krhs) + rivdin(ji,jj) * rfact2 166 tr(ji,jj,jk,jpfer,Krhs) = tr(ji,jj,jk,jpfer,Krhs) + rivdic(ji,jj) * 5.e-5 * rfact2 167 tr(ji,jj,jk,jpsil,Krhs) = tr(ji,jj,jk,jpsil,Krhs) + rivdsi(ji,jj) * rfact2 168 tr(ji,jj,jk,jpdic,Krhs) = tr(ji,jj,jk,jpdic,Krhs) + rivdic(ji,jj) * rfact2 169 tr(ji,jj,jk,jptal,Krhs) = tr(ji,jj,jk,jptal,Krhs) + ( rivalk(ji,jj) - rno3 * rivdin(ji,jj) ) * rfact2 170 tr(ji,jj,jk,jpdoc,Krhs) = tr(ji,jj,jk,jpdoc,Krhs) + rivdoc(ji,jj) * rfact2 170 171 ENDDO 171 172 ENDDO … … 175 176 DO ji = 1, jpi 176 177 DO jk = 1, nk_rnf(ji,jj) 177 tr a(ji,jj,jk,jplgw) = tra(ji,jj,jk,jplgw) + rivdic(ji,jj) * 5.e-5 * rfact2178 tr(ji,jj,jk,jplgw,Krhs) = tr(ji,jj,jk,jplgw,Krhs) + rivdic(ji,jj) * 5.e-5 * rfact2 178 179 ENDDO 179 180 ENDDO … … 184 185 DO ji = 1, jpi 185 186 DO jk = 1, nk_rnf(ji,jj) 186 tr a(ji,jj,jk,jpdop) = tra(ji,jj,jk,jpdop) + rivdop(ji,jj) * rfact2187 tr a(ji,jj,jk,jpdon) = tra(ji,jj,jk,jpdon) + rivdon(ji,jj) * rfact2187 tr(ji,jj,jk,jpdop,Krhs) = tr(ji,jj,jk,jpdop,Krhs) + rivdop(ji,jj) * rfact2 188 tr(ji,jj,jk,jpdon,Krhs) = tr(ji,jj,jk,jpdon,Krhs) + rivdon(ji,jj) * rfact2 188 189 ENDDO 189 190 ENDDO … … 195 196 ! ---------------------------------------------------------- 196 197 IF( ln_ndepo ) THEN 197 tr a(:,:,1,jpno3) = tra(:,:,1,jpno3) + nitdep(:,:) * rfact2198 tr a(:,:,1,jptal) = tra(:,:,1,jptal) - rno3 * nitdep(:,:) * rfact2198 tr(:,:,1,jpno3,Krhs) = tr(:,:,1,jpno3,Krhs) + nitdep(:,:) * rfact2 199 tr(:,:,1,jptal,Krhs) = tr(:,:,1,jptal,Krhs) - rno3 * nitdep(:,:) * rfact2 199 200 ENDIF 200 201 … … 202 203 ! ------------------------------------------------------ 203 204 IF( ln_hydrofe ) THEN 204 tr a(:,:,:,jpfer) = tra(:,:,:,jpfer) + hydrofe(:,:,:) * rfact2205 tr(:,:,:,jpfer,Krhs) = tr(:,:,:,jpfer,Krhs) + hydrofe(:,:,:) * rfact2 205 206 IF( ln_ligand ) THEN 206 tr a(:,:,:,jplgw) = tra(:,:,:,jplgw) + ( hydrofe(:,:,:) * lgw_rath ) * rfact2207 tr(:,:,:,jplgw,Krhs) = tr(:,:,:,jplgw,Krhs) + ( hydrofe(:,:,:) * lgw_rath ) * rfact2 207 208 ENDIF 208 209 ! … … 216 217 DO ji = 1, jpi 217 218 ikt = mbkt(ji,jj) 218 zdep = e3t _n(ji,jj,ikt) / xstep219 zdep = e3t(ji,jj,ikt,Kmm) / xstep 219 220 zwsbio4(ji,jj) = MIN( 0.99 * zdep, wsbio4(ji,jj,ikt) ) 220 221 zwsbio3(ji,jj) = MIN( 0.99 * zdep, wsbio3(ji,jj,ikt) ) … … 227 228 ! ------------------------------------------------------ 228 229 IF( ln_ironsed ) THEN 229 tr a(:,:,:,jpfer) = tra(:,:,:,jpfer) + ironsed(:,:,:) * rfact2230 tr(:,:,:,jpfer,Krhs) = tr(:,:,:,jpfer,Krhs) + ironsed(:,:,:) * rfact2 230 231 ! 231 232 IF( lk_iomput .AND. knt == nrdttrc .AND. iom_use( "Ironsed" ) ) & … … 240 241 IF( tmask(ji,jj,1) == 1 ) THEN 241 242 ikt = mbkt(ji,jj) 242 zflx = ( tr b(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj) &243 & + tr b(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) ) * 1E3 * 1E6 / 1E4243 zflx = ( tr(ji,jj,ikt,jpgoc,Kbb) * zwsbio4(ji,jj) & 244 & + tr(ji,jj,ikt,jppoc,Kbb) * zwsbio3(ji,jj) ) * 1E3 * 1E6 / 1E4 244 245 zflx = LOG10( MAX( 1E-3, zflx ) ) 245 zo2 = LOG10( MAX( 10. , tr b(ji,jj,ikt,jpoxy) * 1E6 ) )246 zno3 = LOG10( MAX( 1. , tr b(ji,jj,ikt,jpno3) * 1E6 * rno3 ) )247 zdep = LOG10( gdepw _n(ji,jj,ikt+1) )246 zo2 = LOG10( MAX( 10. , tr(ji,jj,ikt,jpoxy,Kbb) * 1E6 ) ) 247 zno3 = LOG10( MAX( 1. , tr(ji,jj,ikt,jpno3,Kbb) * 1E6 * rno3 ) ) 248 zdep = LOG10( gdepw(ji,jj,ikt+1,Kmm) ) 248 249 zdenit2d(ji,jj) = -2.2567 - 1.185 * zflx - 0.221 * zflx**2 - 0.3995 * zno3 * zo2 + 1.25 * zno3 & 249 250 & + 0.4721 * zo2 - 0.0996 * zdep + 0.4256 * zflx * zo2 250 251 zdenit2d(ji,jj) = 10.0**( zdenit2d(ji,jj) ) 251 252 ! 252 zflx = ( tr b(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj) &253 & + tr b(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) ) * 1E6253 zflx = ( tr(ji,jj,ikt,jpgoc,Kbb) * zwsbio4(ji,jj) & 254 & + tr(ji,jj,ikt,jppoc,Kbb) * zwsbio3(ji,jj) ) * 1E6 254 255 zbureff(ji,jj) = 0.013 + 0.53 * zflx**2 / ( 7.0 + zflx )**2 255 256 ENDIF … … 267 268 DO ji = 1, jpi 268 269 ikt = mbkt(ji,jj) 269 zdep = xstep / e3t _n(ji,jj,ikt)270 zdep = xstep / e3t(ji,jj,ikt,Kmm) 270 271 zwsc = zwsbio4(ji,jj) * zdep 271 zsiloss = tr b(ji,jj,ikt,jpgsi) * zwsc272 zcaloss = tr b(ji,jj,ikt,jpcal) * zwsc272 zsiloss = tr(ji,jj,ikt,jpgsi,Kbb) * zwsc 273 zcaloss = tr(ji,jj,ikt,jpcal,Kbb) * zwsc 273 274 ! 274 tr a(ji,jj,ikt,jpgsi) = tra(ji,jj,ikt,jpgsi) - zsiloss275 tr a(ji,jj,ikt,jpcal) = tra(ji,jj,ikt,jpcal) - zcaloss275 tr(ji,jj,ikt,jpgsi,Krhs) = tr(ji,jj,ikt,jpgsi,Krhs) - zsiloss 276 tr(ji,jj,ikt,jpcal,Krhs) = tr(ji,jj,ikt,jpcal,Krhs) - zcaloss 276 277 END DO 277 278 END DO … … 281 282 DO ji = 1, jpi 282 283 ikt = mbkt(ji,jj) 283 zdep = xstep / e3t _n(ji,jj,ikt)284 zdep = xstep / e3t(ji,jj,ikt,Kmm) 284 285 zwsc = zwsbio4(ji,jj) * zdep 285 zsiloss = tr b(ji,jj,ikt,jpgsi) * zwsc286 zcaloss = tr b(ji,jj,ikt,jpcal) * zwsc287 tr a(ji,jj,ikt,jpsil) = tra(ji,jj,ikt,jpsil) + zsiloss * zrivsil286 zsiloss = tr(ji,jj,ikt,jpgsi,Kbb) * zwsc 287 zcaloss = tr(ji,jj,ikt,jpcal,Kbb) * zwsc 288 tr(ji,jj,ikt,jpsil,Krhs) = tr(ji,jj,ikt,jpsil,Krhs) + zsiloss * zrivsil 288 289 ! 289 290 zfactcal = MIN( excess(ji,jj,ikt), 0.2 ) 290 291 zfactcal = MIN( 1., 1.3 * ( 0.2 - zfactcal ) / ( 0.4 - zfactcal ) ) 291 292 zrivalk = sedcalfrac * zfactcal 292 tr a(ji,jj,ikt,jptal) = tra(ji,jj,ikt,jptal) + zcaloss * zrivalk * 2.0293 tr a(ji,jj,ikt,jpdic) = tra(ji,jj,ikt,jpdic) + zcaloss * zrivalk294 zsedcal(ji,jj) = (1.0 - zrivalk) * zcaloss * e3t _n(ji,jj,ikt)295 zsedsi (ji,jj) = (1.0 - zrivsil) * zsiloss * e3t _n(ji,jj,ikt)293 tr(ji,jj,ikt,jptal,Krhs) = tr(ji,jj,ikt,jptal,Krhs) + zcaloss * zrivalk * 2.0 294 tr(ji,jj,ikt,jpdic,Krhs) = tr(ji,jj,ikt,jpdic,Krhs) + zcaloss * zrivalk 295 zsedcal(ji,jj) = (1.0 - zrivalk) * zcaloss * e3t(ji,jj,ikt,Kmm) 296 zsedsi (ji,jj) = (1.0 - zrivsil) * zsiloss * e3t(ji,jj,ikt,Kmm) 296 297 END DO 297 298 END DO … … 301 302 DO ji = 1, jpi 302 303 ikt = mbkt(ji,jj) 303 zdep = xstep / e3t _n(ji,jj,ikt)304 zdep = xstep / e3t(ji,jj,ikt,Kmm) 304 305 zws4 = zwsbio4(ji,jj) * zdep 305 306 zws3 = zwsbio3(ji,jj) * zdep 306 tr a(ji,jj,ikt,jpgoc) = tra(ji,jj,ikt,jpgoc) - trb(ji,jj,ikt,jpgoc) * zws4307 tr a(ji,jj,ikt,jppoc) = tra(ji,jj,ikt,jppoc) - trb(ji,jj,ikt,jppoc) * zws3308 tr a(ji,jj,ikt,jpbfe) = tra(ji,jj,ikt,jpbfe) - trb(ji,jj,ikt,jpbfe) * zws4309 tr a(ji,jj,ikt,jpsfe) = tra(ji,jj,ikt,jpsfe) - trb(ji,jj,ikt,jpsfe) * zws3307 tr(ji,jj,ikt,jpgoc,Krhs) = tr(ji,jj,ikt,jpgoc,Krhs) - tr(ji,jj,ikt,jpgoc,Kbb) * zws4 308 tr(ji,jj,ikt,jppoc,Krhs) = tr(ji,jj,ikt,jppoc,Krhs) - tr(ji,jj,ikt,jppoc,Kbb) * zws3 309 tr(ji,jj,ikt,jpbfe,Krhs) = tr(ji,jj,ikt,jpbfe,Krhs) - tr(ji,jj,ikt,jpbfe,Kbb) * zws4 310 tr(ji,jj,ikt,jpsfe,Krhs) = tr(ji,jj,ikt,jpsfe,Krhs) - tr(ji,jj,ikt,jpsfe,Kbb) * zws3 310 311 END DO 311 312 END DO … … 315 316 DO ji = 1, jpi 316 317 ikt = mbkt(ji,jj) 317 zdep = xstep / e3t _n(ji,jj,ikt)318 zdep = xstep / e3t(ji,jj,ikt,Kmm) 318 319 zws4 = zwsbio4(ji,jj) * zdep 319 320 zws3 = zwsbio3(ji,jj) * zdep 320 tr a(ji,jj,ikt,jpgon) = tra(ji,jj,ikt,jpgon) - trb(ji,jj,ikt,jpgon) * zws4321 tr a(ji,jj,ikt,jppon) = tra(ji,jj,ikt,jppon) - trb(ji,jj,ikt,jppon) * zws3322 tr a(ji,jj,ikt,jpgop) = tra(ji,jj,ikt,jpgop) - trb(ji,jj,ikt,jpgop) * zws4323 tr a(ji,jj,ikt,jppop) = tra(ji,jj,ikt,jppop) - trb(ji,jj,ikt,jppop) * zws3321 tr(ji,jj,ikt,jpgon,Krhs) = tr(ji,jj,ikt,jpgon,Krhs) - tr(ji,jj,ikt,jpgon,Kbb) * zws4 322 tr(ji,jj,ikt,jppon,Krhs) = tr(ji,jj,ikt,jppon,Krhs) - tr(ji,jj,ikt,jppon,Kbb) * zws3 323 tr(ji,jj,ikt,jpgop,Krhs) = tr(ji,jj,ikt,jpgop,Krhs) - tr(ji,jj,ikt,jpgop,Kbb) * zws4 324 tr(ji,jj,ikt,jppop,Krhs) = tr(ji,jj,ikt,jppop,Krhs) - tr(ji,jj,ikt,jppop,Kbb) * zws3 324 325 END DO 325 326 END DO … … 332 333 DO ji = 1, jpi 333 334 ikt = mbkt(ji,jj) 334 zdep = xstep / e3t _n(ji,jj,ikt)335 zdep = xstep / e3t(ji,jj,ikt,Kmm) 335 336 zws4 = zwsbio4(ji,jj) * zdep 336 337 zws3 = zwsbio3(ji,jj) * zdep 337 338 zrivno3 = 1. - zbureff(ji,jj) 338 zwstpoc = tr b(ji,jj,ikt,jpgoc) * zws4 + trb(ji,jj,ikt,jppoc) * zws3339 zpdenit = MIN( 0.5 * ( tr b(ji,jj,ikt,jpno3) - rtrn ) / rdenit, zdenit2d(ji,jj) * zwstpoc * zrivno3 )339 zwstpoc = tr(ji,jj,ikt,jpgoc,Kbb) * zws4 + tr(ji,jj,ikt,jppoc,Kbb) * zws3 340 zpdenit = MIN( 0.5 * ( tr(ji,jj,ikt,jpno3,Kbb) - rtrn ) / rdenit, zdenit2d(ji,jj) * zwstpoc * zrivno3 ) 340 341 z1pdenit = zwstpoc * zrivno3 - zpdenit 341 zolimit = MIN( ( tr b(ji,jj,ikt,jpoxy) - rtrn ) / o2ut, z1pdenit * ( 1.- nitrfac(ji,jj,ikt) ) )342 tr a(ji,jj,ikt,jpdoc) = tra(ji,jj,ikt,jpdoc) + z1pdenit - zolimit343 tr a(ji,jj,ikt,jppo4) = tra(ji,jj,ikt,jppo4) + zpdenit + zolimit344 tr a(ji,jj,ikt,jpnh4) = tra(ji,jj,ikt,jpnh4) + zpdenit + zolimit345 tr a(ji,jj,ikt,jpno3) = tra(ji,jj,ikt,jpno3) - rdenit * zpdenit346 tr a(ji,jj,ikt,jpoxy) = tra(ji,jj,ikt,jpoxy) - zolimit * o2ut347 tr a(ji,jj,ikt,jptal) = tra(ji,jj,ikt,jptal) + rno3 * (zolimit + (1.+rdenit) * zpdenit )348 tr a(ji,jj,ikt,jpdic) = tra(ji,jj,ikt,jpdic) + zpdenit + zolimit349 sdenit(ji,jj) = rdenit * zpdenit * e3t _n(ji,jj,ikt)350 zsedc(ji,jj) = (1. - zrivno3) * zwstpoc * e3t _n(ji,jj,ikt)342 zolimit = MIN( ( tr(ji,jj,ikt,jpoxy,Kbb) - rtrn ) / o2ut, z1pdenit * ( 1.- nitrfac(ji,jj,ikt) ) ) 343 tr(ji,jj,ikt,jpdoc,Krhs) = tr(ji,jj,ikt,jpdoc,Krhs) + z1pdenit - zolimit 344 tr(ji,jj,ikt,jppo4,Krhs) = tr(ji,jj,ikt,jppo4,Krhs) + zpdenit + zolimit 345 tr(ji,jj,ikt,jpnh4,Krhs) = tr(ji,jj,ikt,jpnh4,Krhs) + zpdenit + zolimit 346 tr(ji,jj,ikt,jpno3,Krhs) = tr(ji,jj,ikt,jpno3,Krhs) - rdenit * zpdenit 347 tr(ji,jj,ikt,jpoxy,Krhs) = tr(ji,jj,ikt,jpoxy,Krhs) - zolimit * o2ut 348 tr(ji,jj,ikt,jptal,Krhs) = tr(ji,jj,ikt,jptal,Krhs) + rno3 * (zolimit + (1.+rdenit) * zpdenit ) 349 tr(ji,jj,ikt,jpdic,Krhs) = tr(ji,jj,ikt,jpdic,Krhs) + zpdenit + zolimit 350 sdenit(ji,jj) = rdenit * zpdenit * e3t(ji,jj,ikt,Kmm) 351 zsedc(ji,jj) = (1. - zrivno3) * zwstpoc * e3t(ji,jj,ikt,Kmm) 351 352 IF( ln_p5z ) THEN 352 zwstpop = tr b(ji,jj,ikt,jpgop) * zws4 + trb(ji,jj,ikt,jppop) * zws3353 zwstpon = tr b(ji,jj,ikt,jpgon) * zws4 + trb(ji,jj,ikt,jppon) * zws3354 tr a(ji,jj,ikt,jpdon) = tra(ji,jj,ikt,jpdon) + ( z1pdenit - zolimit ) * zwstpon / (zwstpoc + rtrn)355 tr a(ji,jj,ikt,jpdop) = tra(ji,jj,ikt,jpdop) + ( z1pdenit - zolimit ) * zwstpop / (zwstpoc + rtrn)353 zwstpop = tr(ji,jj,ikt,jpgop,Kbb) * zws4 + tr(ji,jj,ikt,jppop,Kbb) * zws3 354 zwstpon = tr(ji,jj,ikt,jpgon,Kbb) * zws4 + tr(ji,jj,ikt,jppon,Kbb) * zws3 355 tr(ji,jj,ikt,jpdon,Krhs) = tr(ji,jj,ikt,jpdon,Krhs) + ( z1pdenit - zolimit ) * zwstpon / (zwstpoc + rtrn) 356 tr(ji,jj,ikt,jpdop,Krhs) = tr(ji,jj,ikt,jpdop,Krhs) + ( z1pdenit - zolimit ) * zwstpop / (zwstpoc + rtrn) 356 357 ENDIF 357 358 END DO … … 372 373 DO ji = 1, jpi 373 374 ! ! Potential nitrogen fixation dependant on temperature and iron 374 ztemp = ts n(ji,jj,jk,jp_tem)375 ztemp = ts(ji,jj,jk,jp_tem,Kmm) 375 376 zmudia = MAX( 0.,-0.001096*ztemp**2 + 0.057*ztemp -0.637 ) * 7.625 376 377 ! Potential nitrogen fixation dependant on temperature and iron 377 xdianh4 = tr b(ji,jj,jk,jpnh4) / ( concnnh4 + trb(ji,jj,jk,jpnh4) )378 xdiano3 = tr b(ji,jj,jk,jpno3) / ( concnno3 + trb(ji,jj,jk,jpno3) ) * (1. - xdianh4)378 xdianh4 = tr(ji,jj,jk,jpnh4,Kbb) / ( concnnh4 + tr(ji,jj,jk,jpnh4,Kbb) ) 379 xdiano3 = tr(ji,jj,jk,jpno3,Kbb) / ( concnno3 + tr(ji,jj,jk,jpno3,Kbb) ) * (1. - xdianh4) 379 380 zlim = ( 1.- xdiano3 - xdianh4 ) 380 381 IF( zlim <= 0.1 ) zlim = 0.01 381 382 zfact = zlim * rfact2 382 383 ztrfer = biron(ji,jj,jk) / ( concfediaz + biron(ji,jj,jk) ) 383 ztrpo4(ji,jj,jk) = tr b(ji,jj,jk,jppo4) / ( 1E-6 + trb(ji,jj,jk,jppo4) )384 ztrpo4(ji,jj,jk) = tr(ji,jj,jk,jppo4,Kbb) / ( 1E-6 + tr(ji,jj,jk,jppo4,Kbb) ) 384 385 ztrdp = ztrpo4(ji,jj,jk) 385 386 nitrpot(ji,jj,jk) = zmudia * r1_rday * zfact * MIN( ztrfer, ztrdp ) * zlight(ji,jj,jk) … … 392 393 DO ji = 1, jpi 393 394 ! ! Potential nitrogen fixation dependant on temperature and iron 394 ztemp = ts n(ji,jj,jk,jp_tem)395 ztemp = ts(ji,jj,jk,jp_tem,Kmm) 395 396 zmudia = MAX( 0.,-0.001096*ztemp**2 + 0.057*ztemp -0.637 ) * 7.625 396 397 ! Potential nitrogen fixation dependant on temperature and iron 397 xdianh4 = tr b(ji,jj,jk,jpnh4) / ( concnnh4 + trb(ji,jj,jk,jpnh4) )398 xdiano3 = tr b(ji,jj,jk,jpno3) / ( concnno3 + trb(ji,jj,jk,jpno3) ) * (1. - xdianh4)398 xdianh4 = tr(ji,jj,jk,jpnh4,Kbb) / ( concnnh4 + tr(ji,jj,jk,jpnh4,Kbb) ) 399 xdiano3 = tr(ji,jj,jk,jpno3,Kbb) / ( concnno3 + tr(ji,jj,jk,jpno3,Kbb) ) * (1. - xdianh4) 399 400 zlim = ( 1.- xdiano3 - xdianh4 ) 400 401 IF( zlim <= 0.1 ) zlim = 0.01 401 402 zfact = zlim * rfact2 402 403 ztrfer = biron(ji,jj,jk) / ( concfediaz + biron(ji,jj,jk) ) 403 ztrpo4(ji,jj,jk) = tr b(ji,jj,jk,jppo4) / ( 1E-6 + trb(ji,jj,jk,jppo4) )404 ztrdop(ji,jj,jk) = tr b(ji,jj,jk,jpdop) / ( 1E-6 + trb(ji,jj,jk,jpdop) ) * (1. - ztrpo4(ji,jj,jk))404 ztrpo4(ji,jj,jk) = tr(ji,jj,jk,jppo4,Kbb) / ( 1E-6 + tr(ji,jj,jk,jppo4,Kbb) ) 405 ztrdop(ji,jj,jk) = tr(ji,jj,jk,jpdop,Kbb) / ( 1E-6 + tr(ji,jj,jk,jpdop,Kbb) ) * (1. - ztrpo4(ji,jj,jk)) 405 406 ztrdp = ztrpo4(ji,jj,jk) + ztrdop(ji,jj,jk) 406 407 nitrpot(ji,jj,jk) = zmudia * r1_rday * zfact * MIN( ztrfer, ztrdp ) * zlight(ji,jj,jk) … … 417 418 DO ji = 1, jpi 418 419 zfact = nitrpot(ji,jj,jk) * nitrfix 419 tr a(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + zfact / 3.0420 tr a(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) + rno3 * zfact / 3.0421 tr a(ji,jj,jk,jppo4) = tra(ji,jj,jk,jppo4) - zfact * 2.0 / 3.0422 tr a(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) + zfact * 1.0 / 3.0423 tr a(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zfact * 1.0 / 3.0 * 2.0 / 3.0424 tr a(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zfact * 1.0 / 3.0 * 1.0 / 3.0425 tr a(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) + ( o2ut + o2nit ) * zfact * 2.0 / 3.0 + o2nit * zfact / 3.0426 tr a(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - 30E-6 * zfact * 1.0 / 3.0427 tr a(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + 30E-6 * zfact * 1.0 / 3.0 * 2.0 / 3.0428 tr a(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + 30E-6 * zfact * 1.0 / 3.0 * 1.0 / 3.0429 tr a(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) + 0.002 * 4E-10 * zsoufer(ji,jj,jk) * rfact2 / rday430 tr a(ji,jj,jk,jppo4) = tra(ji,jj,jk,jppo4) + concdnh4 / ( concdnh4 + trb(ji,jj,jk,jppo4) ) &431 & * 0.001 * tr b(ji,jj,jk,jpdoc) * xstep420 tr(ji,jj,jk,jpnh4,Krhs) = tr(ji,jj,jk,jpnh4,Krhs) + zfact / 3.0 421 tr(ji,jj,jk,jptal,Krhs) = tr(ji,jj,jk,jptal,Krhs) + rno3 * zfact / 3.0 422 tr(ji,jj,jk,jppo4,Krhs) = tr(ji,jj,jk,jppo4,Krhs) - zfact * 2.0 / 3.0 423 tr(ji,jj,jk,jpdoc,Krhs) = tr(ji,jj,jk,jpdoc,Krhs) + zfact * 1.0 / 3.0 424 tr(ji,jj,jk,jppoc,Krhs) = tr(ji,jj,jk,jppoc,Krhs) + zfact * 1.0 / 3.0 * 2.0 / 3.0 425 tr(ji,jj,jk,jpgoc,Krhs) = tr(ji,jj,jk,jpgoc,Krhs) + zfact * 1.0 / 3.0 * 1.0 / 3.0 426 tr(ji,jj,jk,jpoxy,Krhs) = tr(ji,jj,jk,jpoxy,Krhs) + ( o2ut + o2nit ) * zfact * 2.0 / 3.0 + o2nit * zfact / 3.0 427 tr(ji,jj,jk,jpfer,Krhs) = tr(ji,jj,jk,jpfer,Krhs) - 30E-6 * zfact * 1.0 / 3.0 428 tr(ji,jj,jk,jpsfe,Krhs) = tr(ji,jj,jk,jpsfe,Krhs) + 30E-6 * zfact * 1.0 / 3.0 * 2.0 / 3.0 429 tr(ji,jj,jk,jpbfe,Krhs) = tr(ji,jj,jk,jpbfe,Krhs) + 30E-6 * zfact * 1.0 / 3.0 * 1.0 / 3.0 430 tr(ji,jj,jk,jpfer,Krhs) = tr(ji,jj,jk,jpfer,Krhs) + 0.002 * 4E-10 * zsoufer(ji,jj,jk) * rfact2 / rday 431 tr(ji,jj,jk,jppo4,Krhs) = tr(ji,jj,jk,jppo4,Krhs) + concdnh4 / ( concdnh4 + tr(ji,jj,jk,jppo4,Kbb) ) & 432 & * 0.001 * tr(ji,jj,jk,jpdoc,Kbb) * xstep 432 433 END DO 433 434 END DO … … 438 439 DO ji = 1, jpi 439 440 zfact = nitrpot(ji,jj,jk) * nitrfix 440 tr a(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + zfact / 3.0441 tr a(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) + rno3 * zfact / 3.0442 tr a(ji,jj,jk,jppo4) = tra(ji,jj,jk,jppo4) - 16.0 / 46.0 * zfact * ( 1.0 - 1.0 / 3.0 ) &441 tr(ji,jj,jk,jpnh4,Krhs) = tr(ji,jj,jk,jpnh4,Krhs) + zfact / 3.0 442 tr(ji,jj,jk,jptal,Krhs) = tr(ji,jj,jk,jptal,Krhs) + rno3 * zfact / 3.0 443 tr(ji,jj,jk,jppo4,Krhs) = tr(ji,jj,jk,jppo4,Krhs) - 16.0 / 46.0 * zfact * ( 1.0 - 1.0 / 3.0 ) & 443 444 & * ztrpo4(ji,jj,jk) / (ztrpo4(ji,jj,jk) + ztrdop(ji,jj,jk) + rtrn) 444 tr a(ji,jj,jk,jpdon) = tra(ji,jj,jk,jpdon) + zfact * 1.0 / 3.0445 tr a(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) + zfact * 1.0 / 3.0446 tr a(ji,jj,jk,jpdop) = tra(ji,jj,jk,jpdop) + 16.0 / 46.0 * zfact / 3.0 &445 tr(ji,jj,jk,jpdon,Krhs) = tr(ji,jj,jk,jpdon,Krhs) + zfact * 1.0 / 3.0 446 tr(ji,jj,jk,jpdoc,Krhs) = tr(ji,jj,jk,jpdoc,Krhs) + zfact * 1.0 / 3.0 447 tr(ji,jj,jk,jpdop,Krhs) = tr(ji,jj,jk,jpdop,Krhs) + 16.0 / 46.0 * zfact / 3.0 & 447 448 & - 16.0 / 46.0 * zfact * ztrdop(ji,jj,jk) & 448 449 & / (ztrpo4(ji,jj,jk) + ztrdop(ji,jj,jk) + rtrn) 449 tr a(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zfact * 1.0 / 3.0 * 2.0 / 3.0450 tr a(ji,jj,jk,jppon) = tra(ji,jj,jk,jppon) + zfact * 1.0 / 3.0 * 2.0 /3.0451 tr a(ji,jj,jk,jppop) = tra(ji,jj,jk,jppop) + 16.0 / 46.0 * zfact * 1.0 / 3.0 * 2.0 /3.0452 tr a(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zfact * 1.0 / 3.0 * 1.0 / 3.0453 tr a(ji,jj,jk,jpgon) = tra(ji,jj,jk,jpgon) + zfact * 1.0 / 3.0 * 1.0 /3.0454 tr a(ji,jj,jk,jpgop) = tra(ji,jj,jk,jpgop) + 16.0 / 46.0 * zfact * 1.0 / 3.0 * 1.0 /3.0455 tr a(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) + ( o2ut + o2nit ) * zfact * 2.0 / 3.0 + o2nit * zfact / 3.0456 tr a(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - 30E-6 * zfact * 1.0 / 3.0457 tr a(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + 30E-6 * zfact * 1.0 / 3.0 * 2.0 / 3.0458 tr a(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + 30E-6 * zfact * 1.0 / 3.0 * 1.0 / 3.0459 tr a(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) + 0.002 * 4E-10 * zsoufer(ji,jj,jk) * rfact2 / rday450 tr(ji,jj,jk,jppoc,Krhs) = tr(ji,jj,jk,jppoc,Krhs) + zfact * 1.0 / 3.0 * 2.0 / 3.0 451 tr(ji,jj,jk,jppon,Krhs) = tr(ji,jj,jk,jppon,Krhs) + zfact * 1.0 / 3.0 * 2.0 /3.0 452 tr(ji,jj,jk,jppop,Krhs) = tr(ji,jj,jk,jppop,Krhs) + 16.0 / 46.0 * zfact * 1.0 / 3.0 * 2.0 /3.0 453 tr(ji,jj,jk,jpgoc,Krhs) = tr(ji,jj,jk,jpgoc,Krhs) + zfact * 1.0 / 3.0 * 1.0 / 3.0 454 tr(ji,jj,jk,jpgon,Krhs) = tr(ji,jj,jk,jpgon,Krhs) + zfact * 1.0 / 3.0 * 1.0 /3.0 455 tr(ji,jj,jk,jpgop,Krhs) = tr(ji,jj,jk,jpgop,Krhs) + 16.0 / 46.0 * zfact * 1.0 / 3.0 * 1.0 /3.0 456 tr(ji,jj,jk,jpoxy,Krhs) = tr(ji,jj,jk,jpoxy,Krhs) + ( o2ut + o2nit ) * zfact * 2.0 / 3.0 + o2nit * zfact / 3.0 457 tr(ji,jj,jk,jpfer,Krhs) = tr(ji,jj,jk,jpfer,Krhs) - 30E-6 * zfact * 1.0 / 3.0 458 tr(ji,jj,jk,jpsfe,Krhs) = tr(ji,jj,jk,jpsfe,Krhs) + 30E-6 * zfact * 1.0 / 3.0 * 2.0 / 3.0 459 tr(ji,jj,jk,jpbfe,Krhs) = tr(ji,jj,jk,jpbfe,Krhs) + 30E-6 * zfact * 1.0 / 3.0 * 1.0 / 3.0 460 tr(ji,jj,jk,jpfer,Krhs) = tr(ji,jj,jk,jpfer,Krhs) + 0.002 * 4E-10 * zsoufer(ji,jj,jk) * rfact2 / rday 460 461 END DO 461 462 END DO … … 471 472 zwork(:,:) = 0. 472 473 DO jk = 1, jpkm1 473 zwork(:,:) = zwork(:,:) + nitrpot(:,:,jk) * nitrfix * rno3 * zfact * e3t _n(:,:,jk) * tmask(:,:,jk)474 zwork(:,:) = zwork(:,:) + nitrpot(:,:,jk) * nitrfix * rno3 * zfact * e3t(:,:,jk,Kmm) * tmask(:,:,jk) 474 475 ENDDO 475 476 CALL iom_put( "INTNFIX" , zwork ) … … 485 486 WRITE(charout, fmt="('sed ')") 486 487 CALL prt_ctl_trc_info(charout) 487 CALL prt_ctl_trc(tab4d=tr a, mask=tmask, clinfo=ctrcnm)488 CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 488 489 ENDIF 489 490 !
Note: See TracChangeset
for help on using the changeset viewer.