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 14786 for NEMO/branches/2021/dev_r14383_PISCES_NEWDEV_PISCO/src/TOP/PISCES/P4Z/p4zsed.F90 – NEMO

Ignore:
Timestamp:
2021-05-05T09:09:10+02:00 (3 years ago)
Author:
aumont
Message:

Various bug fixes in PISCES

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2021/dev_r14383_PISCES_NEWDEV_PISCO/src/TOP/PISCES/P4Z/p4zsed.F90

    r14385 r14786  
    119119              zflx = (  tr(ji,jj,ikt,jpgoc,Kbb) * zwsbio4(ji,jj)   & 
    120120                &     + tr(ji,jj,ikt,jppoc,Kbb) * zwsbio3(ji,jj) ) * 1E6 
    121               zbureff(ji,jj) = 0.013 + 0.53 * zflx**2 / ( 7.0 + zflx )**2 
     121              zbureff(ji,jj) = 0.013 + 0.13 * zflx**2 / ( 7.0 + zflx )**2 
    122122           ENDIF 
    123123         END_2D 
     
    157157            tr(ji,jj,ikt,jpsil,Krhs) = tr(ji,jj,ikt,jpsil,Krhs) + zsiloss * zrivsil  
    158158            ! 
    159             zfactcal = MIN( excess(ji,jj,ikt), 0.2 ) 
    160             zfactcal = MIN( 1., 1.3 * ( 0.2 - zfactcal ) / ( 0.4 - zfactcal ) ) 
     159            zfactcal = MAX(-0.1, MIN( excess(ji,jj,ikt), 0.2 ) ) 
     160            zfactcal = 0.3 + 0.7 * MIN( 1., (0.1 + zfactcal) / ( 0.5 - zfactcal ) ) 
    161161            zrivalk  = sedcalfrac * zfactcal 
    162162            tr(ji,jj,ikt,jptal,Krhs) =  tr(ji,jj,ikt,jptal,Krhs) + zcaloss * zrivalk * 2.0 
     
    257257            ! Nitrogen fixation limitation by PO4 and Fe             
    258258            ztrfer = biron(ji,jj,jk) / ( concfediaz + biron(ji,jj,jk) ) 
    259             ztrpo4 = tr(ji,jj,jk,jppo4,Kbb) / ( 1E-6 + tr(ji,jj,jk,jppo4,Kbb) ) 
     259            ztrpo4 = tr(ji,jj,jk,jppo4,Kbb) / ( 1.E-6 + tr(ji,jj,jk,jppo4,Kbb) ) 
    260260            zlight =  ( 1.- EXP( -etot_ndcy(ji,jj,jk) / diazolight ) ) * ( 1. - fr_i(ji,jj) )  
    261261            nitrpot(ji,jj,jk) =  zmudia * r1_rday * zfact * MIN( ztrfer, ztrpo4 ) * zlight 
     
    271271            xdiano3 = tr(ji,jj,jk,jpno3,Kbb) / ( concnno3 + tr(ji,jj,jk,jpno3,Kbb) ) * (1. - xdianh4) 
    272272            zlim = ( 1.- xdiano3 - xdianh4 ) 
    273             IF( zlim <= 0.1 )   zlim = 0.01 
    274273            zfact = zlim * rfact2 
    275274            ! Nitrogen fixation limitation by PO4/DOP and Fe             
     
    300299            ! Fe/c of diazotrophs is assumed to be 30umol Fe/mol C at max             
    301300            zlight  =  ( 1.- EXP( -etot_ndcy(ji,jj,jk) / diazolight ) ) * ( 1. - fr_i(ji,jj) )  
    302             zsoufer = zlight * 2E-11 / ( 2E-11 + biron(ji,jj,jk) ) 
    303             tr(ji,jj,jk,jpfer,Krhs) = tr(ji,jj,jk,jpfer,Krhs) - 30E-6 * zfact * 1.0 / 3.0 
    304             tr(ji,jj,jk,jpsfe,Krhs) = tr(ji,jj,jk,jpsfe,Krhs) + 30E-6 * zfact * 1.0 / 3.0 * 2.0 / 3.0 
    305             tr(ji,jj,jk,jpbfe,Krhs) = tr(ji,jj,jk,jpbfe,Krhs) + 30E-6 * zfact * 1.0 / 3.0 * 1.0 / 3.0 
    306             tr(ji,jj,jk,jpfer,Krhs) = tr(ji,jj,jk,jpfer,Krhs) + 0.002 * 4E-10 * zsoufer * rfact2 / rday 
     301            zsoufer = zlight * 1E-10 / ( 1E-10 + biron(ji,jj,jk) ) 
     302            ztrfer = biron(ji,jj,jk) / ( concfediaz + biron(ji,jj,jk) ) 
     303            tr(ji,jj,jk,jpfer,Krhs) = tr(ji,jj,jk,jpfer,Krhs) - 30E-6 * ztrfer * zfact * 1.0 / 3.0 
     304            tr(ji,jj,jk,jpsfe,Krhs) = tr(ji,jj,jk,jpsfe,Krhs) + 30E-6 * ztrfer * zfact * 1.0 / 3.0 * 2.0 / 3.0 
     305            tr(ji,jj,jk,jpbfe,Krhs) = tr(ji,jj,jk,jpbfe,Krhs) + 30E-6 * ztrfer * zfact * 1.0 / 3.0 * 1.0 / 3.0 
     306            tr(ji,jj,jk,jpfer,Krhs) = tr(ji,jj,jk,jpfer,Krhs) + 0.005 * 4E-10 * zsoufer * rfact2 / rday 
    307307            tr(ji,jj,jk,jppo4,Krhs) = tr(ji,jj,jk,jppo4,Krhs) + concdnh4 / ( concdnh4 + tr(ji,jj,jk,jppo4,Kbb) ) & 
    308308            &                     * 0.001 * tr(ji,jj,jk,jpdoc,Kbb) * xstep 
     
    320320            ztrpo4 = tr(ji,jj,jk,jppo4,Kbb) / ( 1E-6 + tr(ji,jj,jk,jppo4,Kbb) ) 
    321321            ztrdop = tr(ji,jj,jk,jpdop,Kbb) / ( 1E-6 + tr(ji,jj,jk,jpdop,Kbb) ) * (1. - ztrpo4) 
     322            ztrfer = biron(ji,jj,jk) / ( concfediaz + biron(ji,jj,jk) ) 
    322323         
    323324            tr(ji,jj,jk,jppo4,Krhs) = tr(ji,jj,jk,jppo4,Krhs) - 16.0 / 46.0 * zfact * ( 1.0 - 1.0 / 3.0 ) & 
     
    336337            ! Fe/c of diazotrophs is assumed to be 30umol Fe/mol C at max            
    337338            zlight  =  ( 1.- EXP( -etot_ndcy(ji,jj,jk) / diazolight ) ) * ( 1. - fr_i(ji,jj) )  
    338             zsoufer = zlight * 2E-11 / ( 2E-11 + biron(ji,jj,jk) ) 
    339             tr(ji,jj,jk,jpfer,Krhs) = tr(ji,jj,jk,jpfer,Krhs) - 30E-6 * zfact * 1.0 / 3.0  
    340             tr(ji,jj,jk,jpsfe,Krhs) = tr(ji,jj,jk,jpsfe,Krhs) + 30E-6 * zfact * 1.0 / 3.0 * 2.0 / 3.0 
    341             tr(ji,jj,jk,jpbfe,Krhs) = tr(ji,jj,jk,jpbfe,Krhs) + 30E-6 * zfact * 1.0 / 3.0 * 1.0 / 3.0 
     339            zsoufer = zlight * 1E-10 / ( 1E-10 + biron(ji,jj,jk) ) 
     340            tr(ji,jj,jk,jpfer,Krhs) = tr(ji,jj,jk,jpfer,Krhs) - 30E-6 * ztrfer * zfact * 1.0 / 3.0  
     341            tr(ji,jj,jk,jpsfe,Krhs) = tr(ji,jj,jk,jpsfe,Krhs) + 30E-6 * ztrfer * zfact * 1.0 / 3.0 * 2.0 / 3.0 
     342            tr(ji,jj,jk,jpbfe,Krhs) = tr(ji,jj,jk,jpbfe,Krhs) + 30E-6 * ztrfer * zfact * 1.0 / 3.0 * 1.0 / 3.0 
    342343            tr(ji,jj,jk,jpfer,Krhs) = tr(ji,jj,jk,jpfer,Krhs) + 0.002 * 4E-10 * zsoufer * rfact2 / rday 
    343344         END_3D 
     
    401402      ! 
    402403      sedsilfrac = 0.03     ! percentage of silica loss in the sediments 
    403       sedcalfrac = 0.6      ! percentage of calcite loss in the sediments 
     404      sedcalfrac = 0.99      ! percentage of calcite loss in the sediments 
    404405      ! 
    405406      lk_sed = ln_sediment .AND. ln_sed_2way  
Note: See TracChangeset for help on using the changeset viewer.