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 8003 for branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90 – NEMO

Ignore:
Timestamp:
2017-05-09T12:14:45+02:00 (7 years ago)
Author:
aumont
Message:

modification in the code to remove unnecessary parts such as kriest and non iomput options

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90

    r7180 r8003  
    2121   USE iom             !  I/O manager 
    2222   USE lib_mpp 
     23   USE p4zsbc 
    2324 
    2425   IMPLICIT NONE 
     
    3738   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sinkcal, sinksil   !: CaCO3 and BSi sinking fluxes 
    3839   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sinkfer            !: Small BFe sinking fluxes 
    39 #if ! defined key_kriest 
    4040   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sinkfer2           !: Big iron sinking fluxes 
    41 #endif 
    4241#if defined key_ligand 
    4342   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sinkfep      !: Fep sinking fluxes 
     
    4645 
    4746   INTEGER  :: ik100 
    48  
    49 #if  defined key_kriest 
    50    REAL(wp) ::  xkr_sfact    !: Sinking factor 
    51    REAL(wp) ::  xkr_stick    !: Stickiness 
    52    REAL(wp) ::  xkr_nnano    !: Nbr of cell in nano size class 
    53    REAL(wp) ::  xkr_ndiat    !: Nbr of cell in diatoms size class 
    54    REAL(wp) ::  xkr_nmicro   !: Nbr of cell in microzoo size class 
    55    REAL(wp) ::  xkr_nmeso    !: Nbr of cell in mesozoo  size class 
    56    REAL(wp) ::  xkr_naggr    !: Nbr of cell in aggregates  size class 
    57  
    58    REAL(wp) ::  xkr_frac  
    59  
    60    REAL(wp), PUBLIC ::  xkr_dnano       !: Size of particles in nano pool 
    61    REAL(wp), PUBLIC ::  xkr_ddiat       !: Size of particles in diatoms pool 
    62    REAL(wp), PUBLIC ::  xkr_dmicro      !: Size of particles in microzoo pool 
    63    REAL(wp), PUBLIC ::  xkr_dmeso       !: Size of particles in mesozoo pool 
    64    REAL(wp), PUBLIC ::  xkr_daggr       !: Size of particles in aggregates pool 
    65    REAL(wp), PUBLIC ::  xkr_wsbio_min   !: min vertical particle speed 
    66    REAL(wp), PUBLIC ::  xkr_wsbio_max   !: max vertical particle speed 
    67  
    68    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   xnumm   !:  maximum number of particles in aggregates 
    69 #endif 
    7047 
    7148   !!* Substitution 
     
    7855CONTAINS 
    7956 
    80 #if ! defined key_kriest 
    8157   !!---------------------------------------------------------------------- 
    8258   !!   'standard sinking parameterisation'                  ??? 
     
    255231          CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
    256232        ENDIF 
    257       ELSE 
    258          IF( ln_diatrc ) THEN 
    259             zfact = 1.e3 * rfact2r 
    260             trc2d(:,:,jp_pcs0_2d + 4) = sinking (:,:,ik100) * zfact * tmask(:,:,1) 
    261             trc2d(:,:,jp_pcs0_2d + 5) = sinking2(:,:,ik100) * zfact * tmask(:,:,1) 
    262             trc2d(:,:,jp_pcs0_2d + 6) = sinkfer (:,:,ik100) * zfact * tmask(:,:,1) 
    263             trc2d(:,:,jp_pcs0_2d + 7) = sinkfer2(:,:,ik100) * zfact * tmask(:,:,1) 
    264             trc2d(:,:,jp_pcs0_2d + 8) = sinksil (:,:,ik100) * zfact * tmask(:,:,1) 
    265             trc2d(:,:,jp_pcs0_2d + 9) = sinkcal (:,:,ik100) * zfact * tmask(:,:,1) 
    266          ENDIF 
    267233      ENDIF 
    268234      ! 
     
    294260      ! 
    295261   END SUBROUTINE p4z_sink_init 
    296  
    297 #else 
    298    !!---------------------------------------------------------------------- 
    299    !!   'Kriest sinking parameterisation'        key_kriest          ??? 
    300    !!---------------------------------------------------------------------- 
    301  
    302    SUBROUTINE p4z_sink ( kt, knt ) 
    303       !!--------------------------------------------------------------------- 
    304       !!                ***  ROUTINE p4z_sink  *** 
    305       !! 
    306       !! ** Purpose :   Compute vertical flux of particulate matter due to 
    307       !!              gravitational sinking - Kriest parameterization 
    308       !! 
    309       !! ** Method  : - ??? 
    310       !!--------------------------------------------------------------------- 
    311       ! 
    312       INTEGER, INTENT(in) :: kt, knt 
    313       ! 
    314       INTEGER  :: ji, jj, jk, jit, niter1, niter2 
    315       REAL(wp) :: znum , zeps, zfm, zgm, zsm 
    316       REAL(wp) :: zdiv , zdiv1, zdiv2, zdiv3, zdiv4, zdiv5 
    317       REAL(wp) :: zval1, zval2, zval3 
    318       REAL(wp) :: zfact 
    319       INTEGER  :: ik1 
    320       CHARACTER (len=25) :: charout 
    321       REAL(wp), POINTER, DIMENSION(:,:,:) :: znum3d  
    322       REAL(wp), POINTER, DIMENSION(:,:,:) :: zw3d 
    323       REAL(wp), POINTER, DIMENSION(:,:  ) :: zw2d 
    324       !!--------------------------------------------------------------------- 
    325       ! 
    326       IF( nn_timing == 1 )  CALL timing_start('p4z_sink') 
    327       ! 
    328       CALL wrk_alloc( jpi, jpj, jpk, znum3d ) 
    329       ! 
    330       !     Initialisation of variables used to compute Sinking Speed 
    331       !     --------------------------------------------------------- 
    332  
    333       znum3d(:,:,:) = 0.e0 
    334       zval1 = 1. + xkr_zeta 
    335       zval2 = 1. + xkr_zeta + xkr_eta 
    336       zval3 = 1. + xkr_eta 
    337  
    338       !     Computation of the vertical sinking speed : Kriest et Evans, 2000 
    339       !     ----------------------------------------------------------------- 
    340  
    341       DO jk = 1, jpkm1 
    342          DO jj = 1, jpj 
    343             DO ji = 1, jpi 
    344                IF( tmask(ji,jj,jk) /= 0.e0 ) THEN 
    345                   znum = trb(ji,jj,jk,jppoc) / ( trb(ji,jj,jk,jpnum) + rtrn ) / xkr_massp 
    346                   ! -------------- To avoid sinking speed over 50 m/day ------- 
    347                   znum  = MIN( xnumm(jk), znum ) 
    348                   znum  = MAX( 1.1      , znum ) 
    349                   znum3d(ji,jj,jk) = znum 
    350                   !------------------------------------------------------------ 
    351                   zeps  = ( zval1 * znum - 1. )/ ( znum - 1. ) 
    352                   zfm   = xkr_frac**( 1. - zeps ) 
    353                   zgm   = xkr_frac**( zval1 - zeps ) 
    354                   zdiv  = MAX( 1.e-4, ABS( zeps - zval2 ) ) * SIGN( 1., ( zeps - zval2 ) ) 
    355                   zdiv1 = zeps - zval3 
    356                   wsbio3(ji,jj,jk) = xkr_wsbio_min * ( zeps - zval1 ) / zdiv    & 
    357                      &             - xkr_wsbio_max *   zgm * xkr_eta  / zdiv 
    358                   wsbio4(ji,jj,jk) = xkr_wsbio_min *   ( zeps-1. )    / zdiv1   & 
    359                      &             - xkr_wsbio_max *   zfm * xkr_eta  / zdiv1 
    360                   IF( znum == 1.1)   wsbio3(ji,jj,jk) = wsbio4(ji,jj,jk) 
    361                ENDIF 
    362             END DO 
    363          END DO 
    364       END DO 
    365  
    366       wscal(:,:,:) = MAX( wsbio3(:,:,:), 30._wp ) 
    367 #if defined key_ligand 
    368       wsfep (:,:,:) = wfep 
    369 #endif 
    370  
    371       !   INITIALIZE TO ZERO ALL THE SINKING ARRAYS 
    372       !   ----------------------------------------- 
    373  
    374       sinking (:,:,:) = 0.e0 
    375       sinking2(:,:,:) = 0.e0 
    376       sinkcal (:,:,:) = 0.e0 
    377       sinkfer (:,:,:) = 0.e0 
    378       sinksil (:,:,:) = 0.e0 
    379 #if defined key_ligand 
    380       sinkfep(:,:,:) = 0.e0 
    381 #endif 
    382  
    383      !   Compute the sedimentation term using p4zsink2 for all the sinking particles 
    384      !   ----------------------------------------------------- 
    385  
    386       niter1 = niter1max 
    387       niter2 = niter2max 
    388  
    389       DO jit = 1, niter1 
    390         CALL p4z_sink2( wsbio3, sinking , jppoc, niter1 ) 
    391         CALL p4z_sink2( wsbio3, sinkfer , jpsfe, niter1 ) 
    392         CALL p4z_sink2( wscal , sinksil , jpgsi, niter1 ) 
    393         CALL p4z_sink2( wscal , sinkcal , jpcal, niter1 ) 
    394 #if defined key_ligand 
    395         CALL p4z_sink2( wsfep,  sinkfep , jpfep, iiter1 ) 
    396 #endif 
    397       END DO 
    398  
    399       DO jit = 1, niter2 
    400         CALL p4z_sink2( wsbio4, sinking2, jpnum, niter2 ) 
    401       END DO 
    402  
    403      IF( iom_use( "tcexp" ) .OR. ( ln_check_mass .AND. kt == nitend .AND. knt == nrdttrc )  )  & 
    404         &   t_oce_co2_exp = glob_sum( sinking(:,:,ik100)  * e1e2t(:,:) * tmask(:,:,1) ) 
    405      ! 
    406      IF( lk_iomput ) THEN 
    407         IF( knt == nrdttrc ) THEN 
    408           CALL wrk_alloc( jpi, jpj,      zw2d ) 
    409           CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 
    410           zfact = 1.e+3 * rfact2r  !  conversion from mol/l/kt to  mol/m3/s 
    411           ! 
    412           IF( iom_use( "EPC100" ) )  THEN 
    413               zw2d(:,:) = sinking(:,:,ik100) * zfact * tmask(:,:,1) ! Export of carbon at 100m 
    414               CALL iom_put( "EPC100"  , zw2d ) 
    415           ENDIF 
    416           IF( iom_use( "EPN100" ) )  THEN 
    417               zw2d(:,:) = sinking2(:,:,ik100) * zfact * tmask(:,:,1) ! Export of number of aggregates ? 
    418               CALL iom_put( "EPN100"  , zw2d ) 
    419           ENDIF 
    420           IF( iom_use( "EPCAL100" ) )  THEN 
    421               zw2d(:,:) = sinkcal(:,:,ik100) * zfact * tmask(:,:,1) ! Export of calcite at 100m 
    422               CALL iom_put( "EPCAL100"  , zw2d ) 
    423           ENDIF 
    424           IF( iom_use( "EPSI100" ) )  THEN 
    425               zw2d(:,:) = sinksil(:,:,ik100) * zfact * tmask(:,:,1) ! Export of bigenic silica at 100m 
    426               CALL iom_put( "EPSI100"  , zw2d ) 
    427           ENDIF 
    428           IF( iom_use( "EXPC" ) )  THEN 
    429               zw3d(:,:,:) = sinking(:,:,:) * zfact * tmask(:,:,:) ! Export of carbon in the water column 
    430               CALL iom_put( "EXPC"  , zw3d ) 
    431           ENDIF 
    432           IF( iom_use( "EXPN" ) )  THEN 
    433               zw3d(:,:,:) = sinking(:,:,:) * zfact * tmask(:,:,:) ! Export of carbon in the water column 
    434               CALL iom_put( "EXPN"  , zw3d ) 
    435           ENDIF 
    436           IF( iom_use( "EXPCAL" ) )  THEN 
    437               zw3d(:,:,:) = sinkcal(:,:,:) * zfact * tmask(:,:,:) ! Export of calcite  
    438               CALL iom_put( "EXPCAL"  , zw3d ) 
    439           ENDIF 
    440           IF( iom_use( "EXPSI" ) )  THEN 
    441               zw3d(:,:,:) = sinksil(:,:,:) * zfact * tmask(:,:,:) ! Export of bigenic silica 
    442               CALL iom_put( "EXPSI"  , zw3d ) 
    443           ENDIF 
    444           IF( iom_use( "XNUM" ) )  THEN 
    445               zw3d(:,:,:) =  znum3d(:,:,:) * tmask(:,:,:) !  Number of particles on aggregats 
    446               CALL iom_put( "XNUM"  , zw3d ) 
    447           ENDIF 
    448           IF( iom_use( "WSC" ) )  THEN 
    449               zw3d(:,:,:) = wsbio3(:,:,:) * tmask(:,:,:) ! Sinking speed of carbon particles 
    450               CALL iom_put( "WSC"  , zw3d ) 
    451           ENDIF 
    452           IF( iom_use( "WSN" ) )  THEN 
    453               zw3d(:,:,:) = wsbio4(:,:,:) * tmask(:,:,:) ! Sinking speed of particles number 
    454               CALL iom_put( "WSN"  , zw3d ) 
    455           ENDIF 
    456           ! 
    457           CALL wrk_dealloc( jpi, jpj,      zw2d ) 
    458           CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
    459       ELSE 
    460          IF( ln_diatrc ) THEN 
    461             zfact = 1.e3 * rfact2r 
    462             trc2d(:,:  ,jp_pcs0_2d + 4)  = sinking (:,:,ik100)  * zfact * tmask(:,:,1) 
    463             trc2d(:,:  ,jp_pcs0_2d + 5)  = sinking2(:,:,ik100)  * zfact * tmask(:,:,1) 
    464             trc2d(:,:  ,jp_pcs0_2d + 6)  = sinkfer (:,:,ik100)  * zfact * tmask(:,:,1) 
    465             trc2d(:,:  ,jp_pcs0_2d + 7)  = sinksil (:,:,ik100)  * zfact * tmask(:,:,1) 
    466             trc2d(:,:  ,jp_pcs0_2d + 8)  = sinkcal (:,:,ik100)  * zfact * tmask(:,:,1) 
    467             trc3d(:,:,:,jp_pcs0_3d + 11) = sinking (:,:,:)      * zfact * tmask(:,:,:) 
    468             trc3d(:,:,:,jp_pcs0_3d + 12) = sinking2(:,:,:)      * zfact * tmask(:,:,:) 
    469             trc3d(:,:,:,jp_pcs0_3d + 13) = sinksil (:,:,:)      * zfact * tmask(:,:,:) 
    470             trc3d(:,:,:,jp_pcs0_3d + 14) = sinkcal (:,:,:)      * zfact * tmask(:,:,:) 
    471             trc3d(:,:,:,jp_pcs0_3d + 15) = znum3d  (:,:,:)              * tmask(:,:,:) 
    472             trc3d(:,:,:,jp_pcs0_3d + 16) = wsbio3  (:,:,:)              * tmask(:,:,:) 
    473             trc3d(:,:,:,jp_pcs0_3d + 17) = wsbio4  (:,:,:)              * tmask(:,:,:) 
    474          ENDIF 
    475       ENDIF 
    476  
    477       ! 
    478       IF(ln_ctl)   THEN  ! print mean trends (used for debugging) 
    479          WRITE(charout, FMT="('sink')") 
    480          CALL prt_ctl_trc_info(charout) 
    481          CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
    482       ENDIF 
    483       ! 
    484       CALL wrk_dealloc( jpi, jpj, jpk, znum3d ) 
    485       ! 
    486       IF( nn_timing == 1 )  CALL timing_stop('p4z_sink') 
    487       ! 
    488    END SUBROUTINE p4z_sink 
    489  
    490  
    491    SUBROUTINE p4z_sink_init 
    492       !!---------------------------------------------------------------------- 
    493       !!                  ***  ROUTINE p4z_sink_init  *** 
    494       !! 
    495       !! ** Purpose :   Initialization of sinking parameters 
    496       !!                Kriest parameterization only 
    497       !! 
    498       !! ** Method  :   Read the nampiskrs namelist and check the parameters 
    499       !!      called at the first timestep  
    500       !! 
    501       !! ** input   :   Namelist nampiskrs 
    502       !!---------------------------------------------------------------------- 
    503       INTEGER  ::   jk, jn, kiter 
    504       INTEGER  ::   ios                 ! Local integer output status for namelist read 
    505       REAL(wp) ::   znum, zdiv 
    506       REAL(wp) ::   zws, zwr, zwl,wmax, znummax 
    507       REAL(wp) ::   zmin, zmax, zl, zr, xacc 
    508       ! 
    509       NAMELIST/nampiskrs/ xkr_sfact, xkr_stick ,  & 
    510          &                xkr_nnano, xkr_ndiat, xkr_nmicro, xkr_nmeso, xkr_naggr 
    511       !!---------------------------------------------------------------------- 
    512       ! 
    513       IF( nn_timing == 1 )  CALL timing_start('p4z_sink_init') 
    514       ! 
    515  
    516       REWIND( numnatp_ref )              ! Namelist nampiskrs in reference namelist : Pisces sinking Kriest 
    517       READ  ( numnatp_ref, nampiskrs, IOSTAT = ios, ERR = 901) 
    518 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiskrs in reference namelist', lwp ) 
    519  
    520       REWIND( numnatp_cfg )              ! Namelist nampiskrs in configuration namelist : Pisces sinking Kriest 
    521       READ  ( numnatp_cfg, nampiskrs, IOSTAT = ios, ERR = 902 ) 
    522 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiskrs in configuration namelist', lwp ) 
    523       IF(lwm) WRITE ( numonp, nampiskrs ) 
    524  
    525       IF(lwp) THEN 
    526          WRITE(numout,*) 
    527          WRITE(numout,*) ' Namelist : nampiskrs' 
    528          WRITE(numout,*) '    Sinking factor                           xkr_sfact    = ', xkr_sfact 
    529          WRITE(numout,*) '    Stickiness                               xkr_stick    = ', xkr_stick 
    530          WRITE(numout,*) '    Nbr of cell in nano size class           xkr_nnano    = ', xkr_nnano 
    531          WRITE(numout,*) '    Nbr of cell in diatoms size class        xkr_ndiat    = ', xkr_ndiat 
    532          WRITE(numout,*) '    Nbr of cell in microzoo size class       xkr_nmicro   = ', xkr_nmicro 
    533          WRITE(numout,*) '    Nbr of cell in mesozoo size class        xkr_nmeso    = ', xkr_nmeso 
    534          WRITE(numout,*) '    Nbr of cell in aggregates size class     xkr_naggr    = ', xkr_naggr 
    535       ENDIF 
    536  
    537  
    538       ! max and min vertical particle speed 
    539       xkr_wsbio_min = xkr_sfact * xkr_mass_min**xkr_eta 
    540       xkr_wsbio_max = xkr_sfact * xkr_mass_max**xkr_eta 
    541       IF (lwp) WRITE(numout,*) ' max and min vertical particle speed ', xkr_wsbio_min, xkr_wsbio_max 
    542  
    543       ! 
    544       !    effect of the sizes of the different living pools on particle numbers 
    545       !    nano = 2um-20um -> mean size=6.32 um -> ws=2.596 -> xnum=xnnano=2.337 
    546       !    diat and microzoo = 10um-200um -> 44.7 -> 8.732 -> xnum=xndiat=3.718 
    547       !    mesozoo = 200um-2mm -> 632.45 -> 45.14 -> xnum=xnmeso=7.147 
    548       !    aggregates = 200um-10mm -> 1414 -> 74.34 -> xnum=xnaggr=9.877 
    549       !    doc aggregates = 1um 
    550       ! ---------------------------------------------------------- 
    551  
    552       xkr_dnano = 1. / ( xkr_massp * xkr_nnano ) 
    553       xkr_ddiat = 1. / ( xkr_massp * xkr_ndiat ) 
    554       xkr_dmicro = 1. / ( xkr_massp * xkr_nmicro ) 
    555       xkr_dmeso = 1. / ( xkr_massp * xkr_nmeso ) 
    556       xkr_daggr = 1. / ( xkr_massp * xkr_naggr ) 
    557  
    558       !!--------------------------------------------------------------------- 
    559       !!    'key_kriest'                                                  ??? 
    560       !!--------------------------------------------------------------------- 
    561       !  COMPUTATION OF THE VERTICAL PROFILE OF MAXIMUM SINKING SPEED 
    562       !  Search of the maximum number of particles in aggregates for each k-level. 
    563       !  Bissection Method 
    564       !-------------------------------------------------------------------- 
    565       IF (lwp) THEN 
    566         WRITE(numout,*) 
    567         WRITE(numout,*)'    kriest : Compute maximum number of particles in aggregates' 
    568       ENDIF 
    569  
    570       xacc     =  0.001_wp 
    571       kiter    = 50 
    572       zmin     =  1.10_wp 
    573       zmax     = xkr_mass_max / xkr_mass_min 
    574       xkr_frac = zmax 
    575  
    576       DO jk = 1,jpk 
    577          zl = zmin 
    578          zr = zmax 
    579          wmax = 0.5 * fse3t(1,1,jk) * rday * float(niter1max) / rfact2 
    580          zdiv = xkr_zeta + xkr_eta - xkr_eta * zl 
    581          znum = zl - 1. 
    582          zwl =  xkr_wsbio_min * xkr_zeta / zdiv & 
    583             & - ( xkr_wsbio_max * xkr_eta * znum * & 
    584             &     xkr_frac**( -xkr_zeta / znum ) / zdiv ) & 
    585             & - wmax 
    586  
    587          zdiv = xkr_zeta + xkr_eta - xkr_eta * zr 
    588          znum = zr - 1. 
    589          zwr =  xkr_wsbio_min * xkr_zeta / zdiv & 
    590             & - ( xkr_wsbio_max * xkr_eta * znum * & 
    591             &     xkr_frac**( -xkr_zeta / znum ) / zdiv ) & 
    592             & - wmax 
    593 iflag:   DO jn = 1, kiter 
    594             IF    ( zwl == 0._wp ) THEN   ;   znummax = zl 
    595             ELSEIF( zwr == 0._wp ) THEN   ;   znummax = zr 
    596             ELSE 
    597                znummax = ( zr + zl ) / 2. 
    598                zdiv = xkr_zeta + xkr_eta - xkr_eta * znummax 
    599                znum = znummax - 1. 
    600                zws =  xkr_wsbio_min * xkr_zeta / zdiv & 
    601                   & - ( xkr_wsbio_max * xkr_eta * znum * & 
    602                   &     xkr_frac**( -xkr_zeta / znum ) / zdiv ) & 
    603                   & - wmax 
    604                IF( zws * zwl < 0. ) THEN   ;   zr = znummax 
    605                ELSE                        ;   zl = znummax 
    606                ENDIF 
    607                zdiv = xkr_zeta + xkr_eta - xkr_eta * zl 
    608                znum = zl - 1. 
    609                zwl =  xkr_wsbio_min * xkr_zeta / zdiv & 
    610                   & - ( xkr_wsbio_max * xkr_eta * znum * & 
    611                   &     xkr_frac**( -xkr_zeta / znum ) / zdiv ) & 
    612                   & - wmax 
    613  
    614                zdiv = xkr_zeta + xkr_eta - xkr_eta * zr 
    615                znum = zr - 1. 
    616                zwr =  xkr_wsbio_min * xkr_zeta / zdiv & 
    617                   & - ( xkr_wsbio_max * xkr_eta * znum * & 
    618                   &     xkr_frac**( -xkr_zeta / znum ) / zdiv ) & 
    619                   & - wmax 
    620                ! 
    621                IF ( ABS ( zws )  <= xacc ) EXIT iflag 
    622                ! 
    623             ENDIF 
    624             ! 
    625          END DO iflag 
    626  
    627          xnumm(jk) = znummax 
    628          IF (lwp) WRITE(numout,*) '       jk = ', jk, ' wmax = ', wmax,' xnum max = ', xnumm(jk) 
    629          ! 
    630       END DO 
    631       ! 
    632       ik100 = 10        !  last level where depth less than 100 m 
    633       DO jk = jpkm1, 1, -1 
    634          IF( gdept_1d(jk) > 100. )  ik100 = jk - 1 
    635       END DO 
    636       IF (lwp) WRITE(numout,*) 
    637       IF (lwp) WRITE(numout,*) ' Level corresponding to 100m depth ',  ik100 + 1 
    638       IF (lwp) WRITE(numout,*) 
    639       ! 
    640       t_oce_co2_exp = 0._wp 
    641       ! 
    642       IF( nn_timing == 1 )  CALL timing_stop('p4z_sink_init') 
    643       ! 
    644   END SUBROUTINE p4z_sink_init 
    645  
    646 #endif 
    647262 
    648263   SUBROUTINE p4z_sink2( pwsink, psinkflx, jp_tra, kiter ) 
     
    769384         &      sinking(jpi,jpj,jpk) , sinking2(jpi,jpj,jpk)                      ,     &                 
    770385         &      sinkcal(jpi,jpj,jpk) , sinksil (jpi,jpj,jpk)                      ,     &                 
    771 #if defined key_kriest 
    772          &      xnumm(jpk)                                                        ,     &                 
    773 #else 
    774386         &      sinkfer2(jpi,jpj,jpk)                                             ,     &                 
    775 #endif 
    776387#if defined key_ligand 
    777388         &      wsfep(jpi,jpj,jpk)   , sinkfep(jpi,jpj,jpk)                         ,     & 
Note: See TracChangeset for help on using the changeset viewer.