Changeset 10368 for NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/TOP/PISCES/P4Z/p4zsed.F90
- Timestamp:
- 2018-12-03T12:45:01+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/TOP/PISCES/P4Z/p4zsed.F90
r10345 r10368 64 64 CHARACTER (len=25) :: charout 65 65 REAL(wp), DIMENSION(jpi,jpj ) :: zdenit2d, zbureff, zwork 66 REAL(wp), DIMENSION(jpi,jpj ) :: zwsbio3, zwsbio4 , zwscal66 REAL(wp), DIMENSION(jpi,jpj ) :: zwsbio3, zwsbio4 67 67 REAL(wp), DIMENSION(jpi,jpj ) :: zsedcal, zsedsi, zsedc 68 68 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zsoufer, zlight … … 85 85 ! 86 86 ! Allocate temporary workspace 87 IF( ln_p5z ) ALLOCATE( ztrpo4(jpi,jpj,jpk), ztrdop(jpi,jpj,jpk) ) 87 ALLOCATE( ztrpo4(jpi,jpj,jpk) ) 88 IF( ln_p5z ) ALLOCATE( ztrdop(jpi,jpj,jpk) ) 88 89 IF( ln_ligand ) ALLOCATE( zwsfep(jpi,jpj) ) 89 90 90 91 91 zdenit2d(:,:) = 0.e0 … … 95 95 zsedcal (:,:) = 0.e0 96 96 zsedc (:,:) = 0.e0 97 98 97 99 98 ! Iron input/uptake due to sea ice : Crude parameterization based on Lancelot et al. … … 132 131 ELSE 133 132 zirondep(:,:,1) = dustsolub * dust(:,:) * mfrac * rfact2 / e3t_n(:,:,1) / 55.85 + 3.e-10 * r1_ryyss 133 ENDIF 134 IF ( ln_ligand ) THEN 135 IF( ln_solub ) THEN 136 tra(:,:,1,jpfep) = tra(:,:,1,jpfep) + rdustfep * (1.0 - solub(:,:)) * dust(:,:) * mfrac * rfact2 / e3t_n(:,:,1) / 55.85 137 ELSE 138 tra(:,:,1,jpfep) = tra(:,:,1,jpfep) + rdustfep * (1.0 - dustsolub) * dust(:,:) * mfrac * rfact2 / e3t_n(:,:,1) / 55.85 139 ENDIF 134 140 ENDIF 135 141 zsidep(:,:) = 8.8 * 0.075 * dust(:,:) * mfrac * rfact2 / e3t_n(:,:,1) / 28.1 … … 173 179 tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) + rivdic(ji,jj) * rfact2 174 180 tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) + ( rivalk(ji,jj) - rno3 * rivdin(ji,jj) ) * rfact2 181 tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) + rivdoc(ji,jj) * rfact2 175 182 ENDDO 176 183 ENDDO 177 184 ENDDO 185 IF (ln_ligand) THEN 186 DO jj = 1, jpj 187 DO ji = 1, jpi 188 DO jk = 1, nk_rnf(ji,jj) 189 tra(ji,jj,jk,jplgw) = tra(ji,jj,jk,jplgw) + rivdic(ji,jj) * 5.e-5 * rfact2 190 ENDDO 191 ENDDO 192 ENDDO 193 ENDIF 178 194 IF( ln_p5z ) THEN 179 195 DO jj = 1, jpj … … 182 198 tra(ji,jj,jk,jpdop) = tra(ji,jj,jk,jpdop) + rivdop(ji,jj) * rfact2 183 199 tra(ji,jj,jk,jpdon) = tra(ji,jj,jk,jpdon) + rivdon(ji,jj) * rfact2 184 tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) + rivdoc(ji,jj) * rfact2185 200 ENDDO 186 201 ENDDO … … 216 231 zdep = e3t_n(ji,jj,ikt) / xstep 217 232 zwsbio4(ji,jj) = MIN( 0.99 * zdep, wsbio4(ji,jj,ikt) ) 218 zwscal (ji,jj) = MIN( 0.99 * zdep, wscal (ji,jj,ikt) )219 233 zwsbio3(ji,jj) = MIN( 0.99 * zdep, wsbio3(ji,jj,ikt) ) 220 234 END DO … … 278 292 ikt = mbkt(ji,jj) 279 293 zdep = xstep / e3t_n(ji,jj,ikt) 280 zwsc = zws cal(ji,jj) * zdep294 zwsc = zwsbio4(ji,jj) * zdep 281 295 zsiloss = trb(ji,jj,ikt,jpgsi) * zwsc 282 296 zcaloss = trb(ji,jj,ikt,jpcal) * zwsc … … 292 306 ikt = mbkt(ji,jj) 293 307 zdep = xstep / e3t_n(ji,jj,ikt) 294 zwsc = zws cal(ji,jj) * zdep308 zwsc = zwsbio4(ji,jj) * zdep 295 309 zsiloss = trb(ji,jj,ikt,jpgsi) * zwsc 296 310 zcaloss = trb(ji,jj,ikt,jpcal) * zwsc … … 393 407 DO ji = 1, jpi 394 408 ! ! Potential nitrogen fixation dependant on temperature and iron 395 zlim = ( 1.- xnanono3(ji,jj,jk) - xnanonh4(ji,jj,jk) ) 396 IF( zlim <= 0.2 ) zlim = 0.01 409 ztemp = tsn(ji,jj,jk,jp_tem) 410 zmudia = MAX( 0.,-0.001096*ztemp**2 + 0.057*ztemp -0.637 ) * 7.625 411 ! Potential nitrogen fixation dependant on temperature and iron 412 xdianh4 = trb(ji,jj,jk,jpnh4) / ( concnnh4 + trb(ji,jj,jk,jpnh4) ) 413 xdiano3 = trb(ji,jj,jk,jpno3) / ( concnno3 + trb(ji,jj,jk,jpno3) ) * (1. - xdianh4) 414 zlim = ( 1.- xdiano3 - xdianh4 ) 415 IF( zlim <= 0.1 ) zlim = 0.01 397 416 zfact = zlim * rfact2 398 399 ztrfer = biron(ji,jj,jk) / ( concfediaz + biron(ji,jj,jk) ) 400 ztrpo4s = trb (ji,jj,jk,jppo4) / ( concnnh4 + trb (ji,jj,jk,jppo4) ) 401 nitrpot(ji,jj,jk) = MAX( 0.e0, ( 0.6 * tgfunc(ji,jj,jk) - 2.15 ) * r1_rday ) & 402 & * zfact * MIN( ztrfer, ztrpo4s ) * zlight(ji,jj,jk) 417 ztrfer = biron(ji,jj,jk) / ( concfediaz + biron(ji,jj,jk) ) 418 ztrpo4(ji,jj,jk) = trb(ji,jj,jk,jppo4) / ( 1E-6 + trb(ji,jj,jk,jppo4) ) 419 ztrdp = ztrpo4(ji,jj,jk) 420 nitrpot(ji,jj,jk) = zmudia * r1_rday * zfact * MIN( ztrfer, ztrdp ) * zlight(ji,jj,jk) 403 421 END DO 404 422 END DO … … 434 452 DO ji = 1, jpi 435 453 zfact = nitrpot(ji,jj,jk) * nitrfix 436 tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + zfact 437 tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) + rno3 * zfact 438 tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) + o2nit * zfact 454 tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + zfact / 3.0 455 tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) + rno3 * zfact / 3.0 456 tra(ji,jj,jk,jppo4) = tra(ji,jj,jk,jppo4) - zfact * 2.0 / 3.0 457 tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) + zfact * 1.0 / 3.0 458 tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zfact * 1.0 / 3.0 * 2.0 / 3.0 459 tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zfact * 1.0 / 3.0 * 1.0 / 3.0 460 tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) + ( o2ut + o2nit ) * zfact * 2.0 / 3.0 + o2nit * zfact / 3.0 461 tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - 30E-6 * zfact * 1.0 / 3.0 462 tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + 30E-6 * zfact * 1.0 / 3.0 * 2.0 / 3.0 463 tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + 30E-6 * zfact * 1.0 / 3.0 * 1.0 / 3.0 464 tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) + 0.002 * 4E-10 * zsoufer(ji,jj,jk) * rfact2 / rday 439 465 tra(ji,jj,jk,jppo4) = tra(ji,jj,jk,jppo4) + concdnh4 / ( concdnh4 + trb(ji,jj,jk,jppo4) ) & 440 & * 0.002 * trb(ji,jj,jk,jpdoc) * xstep 441 tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) + 0.002 * 4E-10 * zsoufer(ji,jj,jk) * xstep 466 & * 0.001 * trb(ji,jj,jk,jpdoc) * xstep 442 467 END DO 443 468 END DO
Note: See TracChangeset
for help on using the changeset viewer.