Changeset 10127 for NEMO/trunk/src/TOP/PISCES/P4Z/p4zsed.F90
- Timestamp:
- 2018-09-13T17:27:54+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/TOP/PISCES/P4Z/p4zsed.F90
r10068 r10127 49 49 ! 50 50 INTEGER, INTENT(in) :: kt, knt ! ocean time step 51 INTEGER :: ji, jj, jk, ikt 52 REAL(wp) :: zsumsedsi, zsumsedpo4, zsumsedcal 53 REAL(wp) :: zrivalk, zrivsil, zrivno3 51 INTEGER :: ji, jj, jk, ikt 52 REAL(wp) :: zrivalk, zrivsil, zrivno3 54 53 REAL(wp) :: zwflux, zfminus, zfplus 55 54 REAL(wp) :: zlim, zfact, zfactcal … … 62 61 ! 63 62 CHARACTER (len=25) :: charout 64 REAL(wp), DIMENSION(jpi,jpj ) :: zwork1, zwork2, zwork3 65 REAL(wp), DIMENSION(jpi,jpj ) :: zdenit2d, zbureff 63 REAL(wp), DIMENSION(jpi,jpj ) :: zdenit2d, zbureff, zwork 66 64 REAL(wp), DIMENSION(jpi,jpj ) :: zwsbio3, zwsbio4, zwscal 67 65 REAL(wp), DIMENSION(jpi,jpj ) :: zsedcal, zsedsi, zsedc … … 82 80 zdenit2d(:,:) = 0.e0 83 81 zbureff (:,:) = 0.e0 84 zwork1 (:,:) = 0.e0 85 zwork2 (:,:) = 0.e0 86 zwork3 (:,:) = 0.e0 82 zwork (:,:) = 0.e0 87 83 zsedsi (:,:) = 0.e0 88 84 zsedcal (:,:) = 0.e0 … … 255 251 & + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) ) * 1E6 256 252 zbureff(ji,jj) = 0.013 + 0.53 * zflx**2 / ( 7.0 + zflx )**2 257 ENDIF 258 END DO 259 END DO 260 261 ! Loss of biogenic silicon, Caco3 organic carbon in the sediments. 262 ! First, the total loss is computed. 263 ! The factor for calcite comes from the alkalinity effect 264 ! ------------------------------------------------------------- 265 DO jj = 1, jpj 266 DO ji = 1, jpi 267 IF( tmask(ji,jj,1) == 1 ) THEN 268 ikt = mbkt(ji,jj) 269 zwork1(ji,jj) = trb(ji,jj,ikt,jpgsi) * zwsbio4(ji,jj) 270 zwork2(ji,jj) = trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj) + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) 271 ! For calcite, burial efficiency is made a function of saturation 272 zfactcal = MIN( excess(ji,jj,ikt), 0.2 ) 273 zfactcal = MIN( 1., 1.3 * ( 0.2 - zfactcal ) / ( 0.4 - zfactcal ) ) 274 zwork3(ji,jj) = trb(ji,jj,ikt,jpcal) * zwscal(ji,jj) * 2.e0 * zfactcal 275 ENDIF 276 END DO 277 END DO 278 zsumsedsi = glob_sum( zwork1(:,:) * e1e2t(:,:) ) * r1_rday 279 zsumsedpo4 = glob_sum( zwork2(:,:) * e1e2t(:,:) ) * r1_rday 280 zsumsedcal = glob_sum( zwork3(:,:) * e1e2t(:,:) ) * r1_rday 253 ENDIF 254 END DO 255 END DO 281 256 ! 282 257 ENDIF … … 285 260 ! Thus, the amount of silica lost in the sediments equal the supply at the surface (dust+rivers) 286 261 ! ------------------------------------------------------ 287 IF( .NOT.lk_sed ) zrivsil = 1._wp - ( sumdepsi + rivdsiinput * r1_ryyss ) / ( zsumsedsi + rtrn )262 IF( .NOT.lk_sed ) zrivsil = 1._wp - sedsilfrac 288 263 289 264 DO jj = 1, jpj … … 312 287 zfactcal = MIN( excess(ji,jj,ikt), 0.2 ) 313 288 zfactcal = MIN( 1., 1.3 * ( 0.2 - zfactcal ) / ( 0.4 - zfactcal ) ) 314 zrivalk = 1._wp - ( rivalkinput * r1_ryyss ) * zfactcal / ( zsumsedcal + rtrn )289 zrivalk = sedcalfrac * zfactcal 315 290 tra(ji,jj,ikt,jptal) = tra(ji,jj,ikt,jptal) + zcaloss * zrivalk * 2.0 316 291 tra(ji,jj,ikt,jpdic) = tra(ji,jj,ikt,jpdic) + zcaloss * zrivalk … … 492 467 IF( iom_use("Nfix" ) ) CALL iom_put( "Nfix", nitrpot(:,:,:) * nitrfix * rno3 * zfact * tmask(:,:,:) ) ! nitrogen fixation 493 468 IF( iom_use("INTNFIX") ) THEN ! nitrogen fixation rate in ocean ( vertically integrated ) 494 zwork 1(:,:) = 0.469 zwork(:,:) = 0. 495 470 DO jk = 1, jpkm1 496 zwork 1(:,:) = zwork1(:,:) + nitrpot(:,:,jk) * nitrfix * rno3 * zfact * e3t_n(:,:,jk) * tmask(:,:,jk)471 zwork(:,:) = zwork(:,:) + nitrpot(:,:,jk) * nitrfix * rno3 * zfact * e3t_n(:,:,jk) * tmask(:,:,jk) 497 472 ENDDO 498 CALL iom_put( "INTNFIX" , zwork 1)473 CALL iom_put( "INTNFIX" , zwork ) 499 474 ENDIF 500 475 IF( iom_use("SedCal" ) ) CALL iom_put( "SedCal", zsedcal(:,:) * zfact )
Note: See TracChangeset
for help on using the changeset viewer.