Changeset 10115 for NEMO/branches/2018/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90
- Timestamp:
- 2018-09-12T15:59:13+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90
r7398 r10115 67 67 ! 68 68 INTEGER :: ji, jj, jk 69 REAL(wp) :: zremip, zremik, zsiremin 69 REAL(wp) :: zremip, zremik, zsiremin, zammonic 70 70 REAL(wp) :: zsatur, zsatur2, znusil, znusil2, zdep, zdepmin, zfactdep 71 71 REAL(wp) :: zbactfer, zorem, zorem2, zofer, zolimit … … 78 78 REAL(wp), POINTER, DIMENSION(:,: ) :: ztempbac 79 79 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdepbac, zolimi, zdepprod, zw3d 80 REAL(wp), POINTER, DIMENSION(:,:,:) :: zoxyrem 80 81 !!--------------------------------------------------------------------- 81 82 ! … … 84 85 ! Allocate temporary workspace 85 86 CALL wrk_alloc( jpi, jpj, ztempbac ) 86 CALL wrk_alloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi )87 CALL wrk_alloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi, zoxyrem ) 87 88 88 89 ! Initialisation of temprary arrys … … 129 130 ! Ammonification in suboxic waters with denitrification 130 131 ! ------------------------------------------------------- 131 denitr(ji,jj,jk) = MIN( ( trb(ji,jj,jk,jpno3) - rtrn ) / rdenit, & 132 & zremik * nitrfac(ji,jj,jk) * trb(ji,jj,jk,jpdoc) ) 132 zammonic = zremik * nitrfac(ji,jj,jk) * trb(ji,jj,jk,jpdoc) 133 denitr(ji,jj,jk) = zammonic * ( 1. - nitrfac2(ji,jj,jk) ) 134 zoxyrem(ji,jj,jk) = zammonic * nitrfac2(ji,jj,jk) 133 135 ! 134 136 zolimi (ji,jj,jk) = MAX( 0.e0, zolimi (ji,jj,jk) ) 135 137 denitr (ji,jj,jk) = MAX( 0.e0, denitr (ji,jj,jk) ) 138 zoxyrem(ji,jj,jk) = MAX( 0.e0, zoxyrem(ji,jj,jk) ) 136 139 ! 137 140 END DO … … 157 160 tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) + zonitr - rdenita * denitnh4(ji,jj,jk) 158 161 tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) - o2nit * zonitr 159 tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) - 2 * rno3 * zonitr + rno3 * ( rdenita - 1. ) * denitnh4(ji,jj,jk) 162 tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) - 2 * rno3 * zonitr & 163 & + rno3 * ( rdenita - 1. ) * denitnh4(ji,jj,jk) 160 164 END DO 161 165 END DO … … 291 295 292 296 DO jk = 1, jpkm1 293 tra(:,:,jk,jppo4) = tra(:,:,jk,jppo4) + zolimi (:,:,jk) + denitr(:,:,jk) 294 tra(:,:,jk,jpnh4) = tra(:,:,jk,jpnh4) + zolimi (:,:,jk) + denitr(:,:,jk) 297 tra(:,:,jk,jppo4) = tra(:,:,jk,jppo4) + zolimi (:,:,jk) + denitr(:,:,jk) + zoxyrem(:,:,jk) 298 tra(:,:,jk,jpnh4) = tra(:,:,jk,jpnh4) + zolimi (:,:,jk) + denitr(:,:,jk) + zoxyrem(:,:,jk) 295 299 tra(:,:,jk,jpno3) = tra(:,:,jk,jpno3) - denitr (:,:,jk) * rdenit 296 tra(:,:,jk,jpdoc) = tra(:,:,jk,jpdoc) - zolimi (:,:,jk) - denitr(:,:,jk) 300 tra(:,:,jk,jpdoc) = tra(:,:,jk,jpdoc) - zolimi (:,:,jk) - denitr(:,:,jk) - zoxyrem(:,:,jk) 297 301 tra(:,:,jk,jpoxy) = tra(:,:,jk,jpoxy) - zolimi (:,:,jk) * o2ut 298 tra(:,:,jk,jpdic) = tra(:,:,jk,jpdic) + zolimi (:,:,jk) + denitr(:,:,jk) 299 tra(:,:,jk,jptal) = tra(:,:,jk,jptal) + rno3 * ( zolimi(:,:,jk) + ( rdenit + 1.) * denitr(:,:,jk) ) 302 tra(:,:,jk,jpdic) = tra(:,:,jk,jpdic) + zolimi (:,:,jk) + denitr(:,:,jk) + zoxyrem(:,:,jk) 303 tra(:,:,jk,jptal) = tra(:,:,jk,jptal) + rno3 * ( zolimi(:,:,jk) + zoxyrem(:,:,jk) & 304 & + ( rdenit + 1.) * denitr(:,:,jk) ) 300 305 END DO 301 306 … … 323 328 ! 324 329 CALL wrk_dealloc( jpi, jpj, ztempbac ) 325 CALL wrk_dealloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi )330 CALL wrk_dealloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi, zoxyrem ) 326 331 ! 327 332 IF( nn_timing == 1 ) CALL timing_stop('p4z_rem')
Note: See TracChangeset
for help on using the changeset viewer.