Changeset 3446 for branches/2012/dev_r3438_LOCEAN15_PISLOB/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90
- Timestamp:
- 2012-08-10T13:13:55+02:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_r3438_LOCEAN15_PISLOB/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90
r3443 r3446 72 72 INTEGER :: ji, jj, jk 73 73 REAL(wp) :: zremip, zremik, zsiremin 74 REAL(wp) :: zsatur, zsatur2, znusil, z dep, zfactdep74 REAL(wp) :: zsatur, zsatur2, znusil, znusil2, zdep, zdepmin, zfactdep 75 75 REAL(wp) :: zbactfer, zorem, zorem2, zofer, zolimit 76 REAL(wp) :: zosil 76 REAL(wp) :: zosil, ztem 77 77 #if ! defined key_kriest 78 78 REAL(wp) :: zofer2 79 79 #endif 80 REAL(wp) :: zonitr, zstep 80 REAL(wp) :: zonitr, zstep, zrfact2 81 81 CHARACTER (len=25) :: charout 82 82 REAL(wp), POINTER, DIMENSION(:,: ) :: ztempbac 83 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdepbac, zolimi 83 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdepbac, zolimi, zdepprod 84 84 !!--------------------------------------------------------------------- 85 85 ! … … 87 87 ! 88 88 ! Allocate temporary workspace 89 CALL wrk_alloc( jpi, jpj, ztempbac )90 CALL wrk_alloc( jpi, jpj, jpk, zdepbac, z olimi )89 CALL wrk_alloc( jpi, jpj, ztempbac ) 90 CALL wrk_alloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi ) 91 91 92 92 ! Initialisation of temprary arrys 93 zdepbac (:,:,:) = 0._wp 94 zolimi (:,:,:) = 0._wp 93 zdepprod(:,:,:) = 1._wp 95 94 ztempbac(:,:) = 0._wp 96 95 … … 108 107 ztempbac(ji,jj) = zdepbac(ji,jj,jk) 109 108 ELSE 110 zdepbac(ji,jj,jk) = MIN( 1., zdep / fsdept(ji,jj,jk) ) * ztempbac(ji,jj) 109 zdepmin = MIN( 1., zdep / fsdept(ji,jj,jk) ) 110 zdepbac (ji,jj,jk) = zdepmin**0.683 * ztempbac(ji,jj) 111 zdepprod(ji,jj,jk) = zdepmin**0.273 111 112 ENDIF 112 113 END DO … … 190 191 ! studies (especially at Papa) have shown this uptake to be significant 191 192 ! ---------------------------------------------------------- 192 zbactfer = 20.e-6 * rfact2 * prmax(ji,jj,jk) & 193 & * trn(ji,jj,jk,jpfer) / ( concbfe + trn(ji,jj,jk,jpfer) ) & 194 & * trn(ji,jj,jk,jpfer) / ( 5E-10 + trn(ji,jj,jk,jpfer) ) & 195 & * zdepbac(ji,jj,jk) & 196 & * ( 0.5 + SIGN( 0.5, trn(ji,jj,jk,jpfer) -2.e-11 ) ) 197 193 zbactfer = 10.e-6 * rfact2 * prmax(ji,jj,jk) * xlimbacl(ji,jj,jk) & 194 & * trn(ji,jj,jk,jpfer) / ( 2.5E-10 + trn(ji,jj,jk,jpfer) ) & 195 & * zdepprod(ji,jj,jk) * zdepbac(ji,jj,jk) 198 196 #if defined key_kriest 199 197 tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - zbactfer*0.05 … … 276 274 zsatur = ( sio3eq(ji,jj,jk) - trn(ji,jj,jk,jpsil) ) / ( sio3eq(ji,jj,jk) + rtrn ) 277 275 zsatur = MAX( rtrn, zsatur ) 278 zsatur2 = zsatur * ( 1. + tsn(ji,jj,jk,jp_tem) / 400.)**4 279 znusil = 0.225 * ( 1. + tsn(ji,jj,jk,jp_tem) / 15.) * zsatur + 0.775 * zsatur2**9.25 276 zsatur2 = ( 1. + tsn(ji,jj,jk,jp_tem) / 400.)**37 277 znusil = 0.225 * ( 1. + tsn(ji,jj,jk,jp_tem) / 15.) * zsatur + 0.775 * zsatur2 * zsatur**9.25 278 znusil2 = 0.225 * ( 1. + tsn(ji,jj,1,jp_tem) / 15.) + 0.775 * zsatur2 279 280 280 ! Two classes of BSi are considered : a labile fraction and 281 281 ! a more refractory one. The ratio between both fractions is … … 284 284 zdep = MAX( hmld(ji,jj), heup(ji,jj) ) 285 285 zdep = MAX( 0., fsdept(ji,jj,jk) - zdep ) 286 zfactdep = xsilab * EXP(-( xsiremlab - xsirem ) * zdep / wsbio2 ) 286 ztem = MAX( tsn(ji,jj,1,jp_tem), 0. ) 287 zfactdep = xsilab * EXP(-( xsiremlab - xsirem ) * znusil2 * zdep / wsbio2 ) * ztem / ( ztem + 10. ) 287 288 zsiremin = ( xsiremlab * zfactdep + xsirem * ( 1. - zfactdep ) ) * zstep * znusil 288 289 zosil = zsiremin * trn(ji,jj,jk,jpgsi) … … 314 315 END DO 315 316 317 IF( ln_diatrc .AND. lk_iomput .AND. jnt == nrdttrc ) THEN 318 zrfact2 = 1.e3 * rfact2r 319 CALL iom_put( "REMIN" , zolimi(:,:,:) * tmask(:,:,:) * zrfact2 ) ! Remineralisation rate 320 CALL iom_put( "DENIT" , denitr(:,:,:) * tmask(:,:,:) * zrfact2 ) ! Denitrification 321 ENDIF 316 322 317 323 IF(ln_ctl) THEN ! print mean trends (used for debugging) … … 321 327 ENDIF 322 328 ! 323 CALL wrk_dealloc( jpi, jpj, ztempbac )324 CALL wrk_dealloc( jpi, jpj, jpk, zdepbac, z olimi )329 CALL wrk_dealloc( jpi, jpj, ztempbac ) 330 CALL wrk_dealloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi ) 325 331 ! 326 332 IF( nn_timing == 1 ) CALL timing_stop('p4z_rem')
Note: See TracChangeset
for help on using the changeset viewer.