New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 3446 for branches/2012/dev_r3438_LOCEAN15_PISLOB/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90 – NEMO

Ignore:
Timestamp:
2012-08-10T13:13:55+02:00 (12 years ago)
Author:
cetlod
Message:

branch:2012/dev_r3438_LOCEAN15_PISLOB : 2nd step new PISCES updates from Olivier, see ticket #972

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2012/dev_r3438_LOCEAN15_PISLOB/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90

    r3443 r3446  
    7272      INTEGER  ::   ji, jj, jk 
    7373      REAL(wp) ::   zremip, zremik, zsiremin  
    74       REAL(wp) ::   zsatur, zsatur2, znusil, zdep, zfactdep 
     74      REAL(wp) ::   zsatur, zsatur2, znusil, znusil2, zdep, zdepmin, zfactdep 
    7575      REAL(wp) ::   zbactfer, zorem, zorem2, zofer, zolimit 
    76       REAL(wp) ::   zosil 
     76      REAL(wp) ::   zosil, ztem 
    7777#if ! defined key_kriest 
    7878      REAL(wp) ::   zofer2 
    7979#endif 
    80       REAL(wp) ::   zonitr, zstep 
     80      REAL(wp) ::   zonitr, zstep, zrfact2 
    8181      CHARACTER (len=25) :: charout 
    8282      REAL(wp), POINTER, DIMENSION(:,:  ) :: ztempbac  
    83       REAL(wp), POINTER, DIMENSION(:,:,:) :: zdepbac, zolimi 
     83      REAL(wp), POINTER, DIMENSION(:,:,:) :: zdepbac, zolimi, zdepprod 
    8484      !!--------------------------------------------------------------------- 
    8585      ! 
     
    8787      ! 
    8888      ! Allocate temporary workspace 
    89       CALL wrk_alloc( jpi, jpj,      ztempbac                 ) 
    90       CALL wrk_alloc( jpi, jpj, jpk, zdepbac, zolimi ) 
     89      CALL wrk_alloc( jpi, jpj,      ztempbac                  ) 
     90      CALL wrk_alloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi ) 
    9191 
    9292      ! Initialisation of temprary arrys 
    93       zdepbac (:,:,:) = 0._wp 
    94       zolimi  (:,:,:) = 0._wp 
     93      zdepprod(:,:,:) = 1._wp 
    9594      ztempbac(:,:)   = 0._wp 
    9695 
     
    108107                  ztempbac(ji,jj)   = zdepbac(ji,jj,jk) 
    109108               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 
    111112               ENDIF 
    112113            END DO 
     
    190191               ! studies (especially at Papa) have shown this uptake to be significant 
    191192               ! ---------------------------------------------------------- 
    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) 
    198196#if defined key_kriest 
    199197               tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - zbactfer*0.05 
     
    276274               zsatur   = ( sio3eq(ji,jj,jk) - trn(ji,jj,jk,jpsil) ) / ( sio3eq(ji,jj,jk) + rtrn ) 
    277275               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 
    280280               ! Two classes of BSi are considered : a labile fraction and  
    281281               ! a more refractory one. The ratio between both fractions is 
     
    284284               zdep     = MAX( hmld(ji,jj), heup(ji,jj) )  
    285285               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. ) 
    287288               zsiremin = ( xsiremlab * zfactdep + xsirem * ( 1. - zfactdep ) ) * zstep * znusil 
    288289               zosil    = zsiremin * trn(ji,jj,jk,jpgsi) 
     
    314315      END DO 
    315316 
     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 
    316322 
    317323      IF(ln_ctl)   THEN  ! print mean trends (used for debugging) 
     
    321327      ENDIF 
    322328      ! 
    323       CALL wrk_dealloc( jpi, jpj,      ztempbac        ) 
    324       CALL wrk_dealloc( jpi, jpj, jpk, zdepbac, zolimi ) 
     329      CALL wrk_dealloc( jpi, jpj,      ztempbac                  ) 
     330      CALL wrk_dealloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi ) 
    325331      ! 
    326332      IF( nn_timing == 1 )  CALL timing_stop('p4z_rem') 
Note: See TracChangeset for help on using the changeset viewer.