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 6403 for trunk/NEMOGCM – NEMO

Changeset 6403 for trunk/NEMOGCM


Ignore:
Timestamp:
2016-03-25T17:24:35+01:00 (8 years ago)
Author:
cetlod
Message:

trunk:new developments already included in 3.6 stable, see points 1, 2 and 4 of ticket #1678

Location:
trunk/NEMOGCM
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/CONFIG/SHARED/namelist_ice_lim3_ref

    r5429 r6403  
    2121   cn_icerst_outdir = "."          !  directory in which to write output ice restarts 
    2222   ln_limdyn     = .true.          !  ice dynamics (T) or thermodynamics only (F) 
    23    rn_amax       = 0.999           !  maximum tolerated ice concentration  
     23   rn_amax_n     = 0.999           !  maximum tolerated ice concentration (NH) 
     24   rn_amax_s     = 0.999           !  maximum tolerated ice concentration (SH) 
    2425   ln_limdiahsb  = .false.         !  check the heat and salt budgets (T) or not (F) 
    2526   ln_limdiaout  = .true.          !  output the heat and salt budgets (T) or not (F) 
  • trunk/NEMOGCM/CONFIG/SHARED/namelist_top_ref

    r6140 r6403  
    6868   rn_ahtrc_0      = 2000.       !  lateral eddy diffusivity   (lap. operator) [m2/s] 
    6969   rn_bhtrc_0      = 1.e+12      !  lateral eddy diffusivity (bilap. operator) [m4/s] 
     70   ! 
     71   rn_fact_lap      =     1.     !     enhanced zonal eddy diffusivity 
    7072/ 
    7173!----------------------------------------------------------------------- 
  • trunk/NEMOGCM/CONFIG/cfg.txt

    r6140 r6403  
    66GYRE_BFM OPA_SRC TOP_SRC 
    77AMM12 OPA_SRC 
    8 ORCA2_LIM_PISCES OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC 
    98ORCA2_LIM3 OPA_SRC LIM_SRC_3 NST_SRC 
    109ORCA2_LIM OPA_SRC LIM_SRC_2 NST_SRC 
    1110ORCA2_OFF_PISCES OPA_SRC OFF_SRC TOP_SRC 
    1211GYRE OPA_SRC 
     12ORCA2_LIM_PISCES OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC 
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/ice.F90

    r5341 r6403  
    301301 
    302302   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   ftr_ice   !: transmitted solar radiation under ice 
     303   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   rn_amax_2d  !: maximum ice concentration 2d array 
    303304 
    304305   !!-------------------------------------------------------------------------- 
     
    378379   LOGICAL          , PUBLIC ::   ln_limdyn       !: flag for ice dynamics (T) or not (F) 
    379380   LOGICAL          , PUBLIC ::   ln_icectl       !: flag for sea-ice points output (T) or not (F) 
    380    REAL(wp)         , PUBLIC ::   rn_amax         !: maximum ice concentration 
     381   REAL(wp)         , PUBLIC ::   rn_amax_n       !: maximum ice concentration Northern hemisphere 
     382   REAL(wp)         , PUBLIC ::   rn_amax_s       !: maximum ice concentration Southern hemisphere 
    381383   INTEGER          , PUBLIC ::   iiceprt         !: debug i-point 
    382384   INTEGER          , PUBLIC ::   jiceprt         !: debug j-point 
     
    438440         &      afx_tot(jpi,jpj) , afx_thd(jpi,jpj),  afx_dyn(jpi,jpj) ,                        & 
    439441         &      fhtur  (jpi,jpj) , ftr_ice(jpi,jpj,jpl), qlead  (jpi,jpj) ,                     & 
     442         &      rn_amax_2d(jpi,jpj),                                                            & 
    440443         &      sfx_res(jpi,jpj) , sfx_bri(jpi,jpj) , sfx_dyn(jpi,jpj) ,                        & 
    441444         &      sfx_bog(jpi,jpj) , sfx_bom(jpi,jpj) , sfx_sum(jpi,jpj) , sfx_sni(jpi,jpj) , sfx_opw(jpi,jpj) ,    & 
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/limcons.F90

    r5836 r6403  
    256256            ENDIF 
    257257            IF (     zvmin   < -epsi10 ) WRITE(numout,*) 'violation v_i<0  [m]          (',cd_routine,') = ',zvmin 
    258             IF (     zamax   > rn_amax+epsi10 .AND. cd_routine /= 'limtrp' .AND. cd_routine /= 'limitd_me' ) THEN 
     258            IF (     zamax   > MAX( rn_amax_n, rn_amax_s ) + epsi10 .AND. & 
     259               &                         cd_routine /= 'limtrp' .AND. cd_routine /= 'limitd_me' ) THEN 
    259260                                         WRITE(numout,*) 'violation a_i>amax            (',cd_routine,') = ',zamax 
    260261            ENDIF 
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/limthd_lac.F90

    r5202 r6403  
    297297         END DO 
    298298 
    299          CALL tab_2d_1d( nbpac, qlead_1d  (1:nbpac)     , qlead  , jpi, jpj, npac(1:nbpac) ) 
    300          CALL tab_2d_1d( nbpac, t_bo_1d   (1:nbpac)     , t_bo   , jpi, jpj, npac(1:nbpac) ) 
    301          CALL tab_2d_1d( nbpac, sfx_opw_1d(1:nbpac)     , sfx_opw, jpi, jpj, npac(1:nbpac) ) 
    302          CALL tab_2d_1d( nbpac, wfx_opw_1d(1:nbpac)     , wfx_opw, jpi, jpj, npac(1:nbpac) ) 
    303          CALL tab_2d_1d( nbpac, hicol_1d  (1:nbpac)     , hicol  , jpi, jpj, npac(1:nbpac) ) 
    304          CALL tab_2d_1d( nbpac, zvrel_1d  (1:nbpac)     , zvrel  , jpi, jpj, npac(1:nbpac) ) 
    305  
    306          CALL tab_2d_1d( nbpac, hfx_thd_1d(1:nbpac)     , hfx_thd, jpi, jpj, npac(1:nbpac) ) 
    307          CALL tab_2d_1d( nbpac, hfx_opw_1d(1:nbpac)     , hfx_opw, jpi, jpj, npac(1:nbpac) ) 
     299         CALL tab_2d_1d( nbpac, qlead_1d  (1:nbpac)     , qlead     , jpi, jpj, npac(1:nbpac) ) 
     300         CALL tab_2d_1d( nbpac, t_bo_1d   (1:nbpac)     , t_bo      , jpi, jpj, npac(1:nbpac) ) 
     301         CALL tab_2d_1d( nbpac, sfx_opw_1d(1:nbpac)     , sfx_opw   , jpi, jpj, npac(1:nbpac) ) 
     302         CALL tab_2d_1d( nbpac, wfx_opw_1d(1:nbpac)     , wfx_opw   , jpi, jpj, npac(1:nbpac) ) 
     303         CALL tab_2d_1d( nbpac, hicol_1d  (1:nbpac)     , hicol     , jpi, jpj, npac(1:nbpac) ) 
     304         CALL tab_2d_1d( nbpac, zvrel_1d  (1:nbpac)     , zvrel     , jpi, jpj, npac(1:nbpac) ) 
     305 
     306         CALL tab_2d_1d( nbpac, hfx_thd_1d(1:nbpac)     , hfx_thd   , jpi, jpj, npac(1:nbpac) ) 
     307         CALL tab_2d_1d( nbpac, hfx_opw_1d(1:nbpac)     , hfx_opw   , jpi, jpj, npac(1:nbpac) ) 
     308         CALL tab_2d_1d( nbpac, rn_amax_1d(1:nbpac)     , rn_amax_2d, jpi, jpj, npac(1:nbpac) ) 
    308309 
    309310         !------------------------------------------------------------------------------! 
     
    409410         ! we keep the excessive volume in memory and attribute it later to bottom accretion 
    410411         DO ji = 1, nbpac 
    411             IF ( za_newice(ji) >  ( rn_amax - zat_i_1d(ji) ) ) THEN 
    412                zda_res(ji)   = za_newice(ji) - ( rn_amax - zat_i_1d(ji) ) 
     412            IF ( za_newice(ji) >  ( rn_amax_1d(ji) - zat_i_1d(ji) ) ) THEN 
     413               zda_res(ji)   = za_newice(ji) - ( rn_amax_1d(ji) - zat_i_1d(ji) ) 
    413414               zdv_res(ji)   = zda_res  (ji) * zh_newice(ji)  
    414415               za_newice(ji) = za_newice(ji) - zda_res  (ji) 
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/limtrp.F90

    r5836 r6403  
    422422            DO jj = 1, jpj 
    423423               DO ji = 1, jpi 
    424                   a_i(ji,jj,1)  = MIN( a_i(ji,jj,1), rn_amax ) 
     424                  a_i(ji,jj,1)  = MIN( a_i(ji,jj,1), rn_amax_2d(ji,jj) ) 
    425425               END DO 
    426426            END DO 
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/limupdate1.F90

    r5836 r6403  
    8080         DO jj = 1, jpj 
    8181            DO ji = 1, jpi 
    82                IF( at_i(ji,jj) > rn_amax .AND. a_i(ji,jj,jl) > 0._wp ) THEN 
    83                   a_i (ji,jj,jl) = a_i (ji,jj,jl) * ( 1._wp - ( 1._wp - rn_amax / at_i(ji,jj) ) ) 
    84                   oa_i(ji,jj,jl) = oa_i(ji,jj,jl) * ( 1._wp - ( 1._wp - rn_amax / at_i(ji,jj) ) ) 
     82               IF( at_i(ji,jj) > rn_amax_2d(ji,jj) .AND. a_i(ji,jj,jl) > 0._wp ) THEN 
     83                  a_i (ji,jj,jl) = a_i (ji,jj,jl) * ( 1._wp - ( 1._wp - rn_amax_2d(ji,jj) / at_i(ji,jj) ) ) 
     84                  oa_i(ji,jj,jl) = oa_i(ji,jj,jl) * ( 1._wp - ( 1._wp - rn_amax_2d(ji,jj) / at_i(ji,jj) ) ) 
    8585               ENDIF 
    8686            END DO 
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/limupdate2.F90

    r5836 r6403  
    9494         DO jj = 1, jpj 
    9595            DO ji = 1, jpi 
    96                IF( at_i(ji,jj) > rn_amax .AND. a_i(ji,jj,jl) > 0._wp ) THEN 
    97                   a_i (ji,jj,jl) = a_i (ji,jj,jl) * ( 1._wp - ( 1._wp - rn_amax / at_i(ji,jj) ) ) 
    98                   oa_i(ji,jj,jl) = oa_i(ji,jj,jl) * ( 1._wp - ( 1._wp - rn_amax / at_i(ji,jj) ) ) 
     96               IF( at_i(ji,jj) > rn_amax_2d(ji,jj) .AND. a_i(ji,jj,jl) > 0._wp ) THEN 
     97                  a_i (ji,jj,jl) = a_i (ji,jj,jl) * ( 1._wp - ( 1._wp - rn_amax_2d(ji,jj) / at_i(ji,jj) ) ) 
     98                  oa_i(ji,jj,jl) = oa_i(ji,jj,jl) * ( 1._wp - ( 1._wp - rn_amax_2d(ji,jj) / at_i(ji,jj) ) ) 
    9999               ENDIF 
    100100            END DO 
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/thd_ice.F90

    r5407 r6403  
    5151   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   hfx_dif_1d 
    5252   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   hfx_opw_1d 
     53   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   rn_amax_1d 
    5354   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   hfx_snw_1d 
    5455   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   hfx_err_1d 
     
    144145         &      hfx_sum_1d(jpij) , hfx_bom_1d(jpij) ,hfx_bog_1d(jpij) ,    &  
    145146         &      hfx_dif_1d(jpij) , hfx_opw_1d(jpij) ,                      & 
     147         &      rn_amax_1d(jpij) ,                                         & 
    146148         &      hfx_thd_1d(jpij) , hfx_spr_1d(jpij) ,                      & 
    147149         &      hfx_snw_1d(jpij) , hfx_sub_1d(jpij) , hfx_err_1d(jpij) ,   & 
  • trunk/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim.F90

    r6140 r6403  
    104104      INTEGER, INTENT(in) ::   kblk    ! type of bulk (=3 CLIO, =4 CORE, =5 COUPLED) 
    105105      !! 
    106       INTEGER  ::   jl                 ! dummy loop index 
     106      INTEGER  ::    jl                 ! dummy loop index 
    107107      REAL(wp), POINTER, DIMENSION(:,:,:)   ::   zalb_os, zalb_cs  ! ice albedo under overcast/clear sky 
    108108      REAL(wp), POINTER, DIMENSION(:,:,:)   ::   zalb_ice          ! mean ice albedo (for coupled) 
     
    260260      !! ** purpose :   Allocate all the dynamic arrays of the LIM-3 modules 
    261261      !!---------------------------------------------------------------------- 
    262       INTEGER :: ierr 
     262      INTEGER :: ji, jj, ierr 
    263263      !!---------------------------------------------------------------------- 
    264264      IF(lwp) WRITE(numout,*) 
     
    317317      tn_ice(:,:,:) = t_su(:,:,:)       ! initialisation of surface temp for coupled simu 
    318318      ! 
     319      DO jj = 1, jpj 
     320         DO ji = 1, jpi 
     321            IF( gphit(ji,jj) > 0._wp ) THEN  ;  rn_amax_2d(ji,jj) = rn_amax_n  ! NH 
     322            ELSE                             ;  rn_amax_2d(ji,jj) = rn_amax_s  ! SH 
     323            ENDIF 
     324        ENDDO 
     325      ENDDO  
     326      ! 
    319327      nstart = numit  + nn_fsbc       
    320328      nitrun = nitend - nit000 + 1  
     
    339347      INTEGER  ::   ios                 ! Local integer output status for namelist read 
    340348      NAMELIST/namicerun/ jpl, nlay_i, nlay_s, cn_icerst_in, cn_icerst_indir, cn_icerst_out, cn_icerst_outdir,  & 
    341          &                ln_limdyn, rn_amax, ln_limdiahsb, ln_limdiaout, ln_icectl, iiceprt, jiceprt   
     349         &                ln_limdyn, rn_amax_n, rn_amax_s, ln_limdiahsb, ln_limdiaout, ln_icectl, iiceprt, jiceprt   
    342350      !!------------------------------------------------------------------- 
    343351      !                     
     
    359367         WRITE(numout,*) '   number of snow layers                                   = ', nlay_s 
    360368         WRITE(numout,*) '   switch for ice dynamics (1) or not (0)      ln_limdyn   = ', ln_limdyn 
    361          WRITE(numout,*) '   maximum ice concentration                               = ', rn_amax  
     369         WRITE(numout,*) '   maximum ice concentration for NH                        = ', rn_amax_n  
     370         WRITE(numout,*) '   maximum ice concentration for SH                        = ', rn_amax_s 
    362371         WRITE(numout,*) '   Diagnose heat/salt budget or not          ln_limdiahsb  = ', ln_limdiahsb 
    363372         WRITE(numout,*) '   Output   heat/salt budget or not          ln_limdiaout  = ', ln_limdiaout 
  • trunk/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90

    r6140 r6403  
    1111   !!            3.2  !  2009-04  (G. Madec & NEMO team)  
    1212   !!            3.6  !  2012-05  (C. Rousset) store attenuation coef for use in ice model  
     13   !!            3.6  !  2015-12  (O. Aumont, J. Jouanno, C. Ethe) use vertical profile of chlorophyll 
    1314   !!            3.7  !  2015-11  (G. Madec, A. Coward)  remove optimisation for fix volume  
    1415   !!---------------------------------------------------------------------- 
     
    100101      !! Reference  : Jerlov, N. G., 1968 Optical Oceanography, Elsevier, 194pp. 
    101102      !!              Lengaigne et al. 2007, Clim. Dyn., V28, 5, 503-516. 
     103      !!              Morel, A. et Berthon, JF, 1989, Limnol Oceanogr 34(8), 1545-1562 
    102104      !!---------------------------------------------------------------------- 
    103105      INTEGER, INTENT(in) ::   kt     ! ocean time-step 
     
    109111      REAL(wp) ::   zzc0, zzc1, zzc2, zzc3   !    -         - 
    110112      REAL(wp) ::   zz0 , zz1                !    -         - 
     113      REAL(wp) ::   zCb, zCmax, zze, zpsi, zpsimax, zdelpsi, zCtot, zCze 
     114      REAL(wp) ::   zlogc, zlogc2, zlogc3  
    111115      REAL(wp), POINTER, DIMENSION(:,:)   :: zekb, zekg, zekr 
    112116      REAL(wp), POINTER, DIMENSION(:,:,:) :: ze0, ze1, ze2, ze3, zea, ztrdt 
    113       REAL(wp), POINTER, DIMENSION(:,:,:) :: zetot 
     117      REAL(wp), POINTER, DIMENSION(:,:,:) :: zetot, zchl3d 
    114118      !!---------------------------------------------------------------------- 
    115119      ! 
     
    158162         ! 
    159163         CALL wrk_alloc( jpi,jpj,       zekb, zekg, zekr        )  
    160          CALL wrk_alloc( jpi,jpj,jpk,   ze0, ze1, ze2, ze3, zea )  
     164         CALL wrk_alloc( jpi,jpj,jpk,   ze0, ze1, ze2, ze3, zea, zchl3d )  
    161165         ! 
    162166         IF( nqsr == np_RGBc ) THEN          !*  Variable Chlorophyll 
    163167            CALL fld_read( kt, 1, sf_chl )         ! Read Chl data and provides it at the current time step 
    164             DO jj = 2, jpjm1                       ! Separation in R-G-B depending of the surface Chl 
    165                DO ji = fs_2, fs_jpim1 
    166                   zchl = MIN( 10. , MAX( 0.03, sf_chl(1)%fnow(ji,jj,1) ) ) 
    167                   irgb = NINT( 41 + 20.*LOG10(zchl) + 1.e-15 ) 
    168                   zekb(ji,jj) = rkrgb(1,irgb) 
    169                   zekg(ji,jj) = rkrgb(2,irgb) 
    170                   zekr(ji,jj) = rkrgb(3,irgb) 
     168            DO jk = 1, nksr + 1 
     169               DO jj = 2, jpjm1                       ! Separation in R-G-B depending of the surface Chl 
     170                  DO ji = fs_2, fs_jpim1 
     171                     zchl    = sf_chl(1)%fnow(ji,jj,1) 
     172                     zCtot   = 40.6  * zchl**0.459 
     173                     zze     = 568.2 * zCtot**(-0.746) 
     174                     IF( zze > 102. ) zze = 200.0 * zCtot**(-0.293) 
     175                     zpsi    = gdepw_n(ji,jj,jk) / zze 
     176                     ! 
     177                     zlogc   = LOG( zchl ) 
     178                     zlogc2  = zlogc * zlogc 
     179                     zlogc3  = zlogc * zlogc * zlogc 
     180                     zCb     = 0.768 + 0.087 * zlogc - 0.179 * zlogc2 - 0.025 * zlogc3 
     181                     zCmax   = 0.299 - 0.289 * zlogc + 0.579 * zlogc2 
     182                     zpsimax = 0.6   - 0.640 * zlogc + 0.021 * zlogc2 + 0.115 * zlogc3 
     183                     zdelpsi = 0.710 + 0.159 * zlogc + 0.021 * zlogc2 
     184                     zCze    = 1.12  * (zchl)**0.803  
     185                     ! 
     186                     zchl3d(ji,jj,jk) = zCze * ( zCb + zCmax * EXP( -( (zpsi - zpsimax) / zdelpsi )**2 ) ) 
     187                  END DO 
     188                  ! 
    171189               END DO 
    172190            END DO 
    173191         ELSE                                !* constant chrlorophyll 
    174             zchl = 0.05                            ! constant chlorophyll 
    175             !                                      ! Separation in R-G-B depending of the chlorophyll 
    176             irgb = NINT( 41 + 20.*LOG10( zchl ) + 1.e-15 ) 
    177             DO jj = 2, jpjm1 
    178                DO ji = fs_2, fs_jpim1 
    179                   zekb(ji,jj) = rkrgb(1,irgb)                       
    180                   zekg(ji,jj) = rkrgb(2,irgb) 
    181                   zekr(ji,jj) = rkrgb(3,irgb) 
    182                END DO 
    183             END DO 
     192           DO jk = 1, nksr + 1 
     193              zchl3d(:,:,jk) = 0.05  
     194            ENDDO 
    184195         ENDIF 
    185196         ! 
     
    195206         END DO 
    196207         ! 
    197          DO jk = 2, nksr+1                   !* interior equi-partition in R-G-B 
     208         DO jk = 2, nksr+1                   !* interior equi-partition in R-G-B depending of vertical profile of Chl 
     209            DO jj = 2, jpjm1 
     210               DO ji = fs_2, fs_jpim1 
     211                  zchl = MIN( 10. , MAX( 0.03, zchl3d(ji,jj,jk) ) ) 
     212                  irgb = NINT( 41 + 20.*LOG10(zchl) + 1.e-15 ) 
     213                  zekb(ji,jj) = rkrgb(1,irgb) 
     214                  zekg(ji,jj) = rkrgb(2,irgb) 
     215                  zekr(ji,jj) = rkrgb(3,irgb) 
     216               END DO 
     217            END DO 
     218 
    198219            DO jj = 2, jpjm1 
    199220               DO ji = fs_2, fs_jpim1 
     
    220241         ! 
    221242         CALL wrk_dealloc( jpi,jpj,        zekb, zekg, zekr        )  
    222          CALL wrk_dealloc( jpi,jpj,jpk,   ze0, ze1, ze2, ze3, zea )  
     243         CALL wrk_dealloc( jpi,jpj,jpk,   ze0, ze1, ze2, ze3, zea, zchl3d )  
    223244         ! 
    224245      CASE( np_2BD  )            !==  2-bands fluxes  ==! 
  • trunk/NEMOGCM/NEMO/TOP_SRC/TRP/trcldf.F90

    r6140 r6403  
    4040   REAL(wp), PUBLIC ::   rn_ahtrc_0          !:   laplacian diffusivity coefficient for passive tracer [m2/s] 
    4141   REAL(wp), PUBLIC ::   rn_bhtrc_0          !: bilaplacian      -          --     -       -   [m4/s] 
     42   REAL(wp), PUBLIC ::   rn_fact_lap         !: Enhanced zonal diffusivity coefficent in the equatorial domain 
    4243   ! 
    4344   !                      !!: ** lateral mixing namelist (nam_trcldf) ** 
     
    6465      INTEGER, INTENT( in ) ::   kt   ! ocean time-step index 
    6566      ! 
    66       INTEGER            :: jn 
     67      INTEGER            :: ji, jj, jk, jn 
     68      REAL(wp)           :: zdep 
    6769      CHARACTER (len=22) :: charout 
    6870      REAL(wp), POINTER, DIMENSION(:,:,:)   ::   zahu, zahv 
     
    7678         ztrtrd(:,:,:,:)  = tra(:,:,:,:) 
    7779      ENDIF 
    78       ! 
    79       !                                        !* set the lateral diffusivity coef. for passive tracer       
     80      !                                  !* set the lateral diffusivity coef. for passive tracer       
    8081      CALL wrk_alloc( jpi,jpj,jpk,   zahu, zahv ) 
    81       zahu(:,:,:) = rldf * ahtu(:,:,:) 
     82      zahu(:,:,:) = rldf * ahtu(:,:,:)  
    8283      zahv(:,:,:) = rldf * ahtv(:,:,:) 
    83  
     84      !                                  !* Enhanced zonal diffusivity coefficent in the equatorial domain 
     85      DO jk= 1, jpk 
     86         DO jj = 1, jpj 
     87            DO ji = 1, jpi 
     88               IF( gdept_n(ji,jj,jk) > 200. .AND. gphit(ji,jj) < 5. .AND. gphit(ji,jj) > -5. ) THEN 
     89                  zdep = MAX( gdept_n(ji,jj,jk) - 1000., 0. ) / 1000. 
     90                  zahu(ji,jj,jk) = zahu(ji,jj,jk) * MAX( 1., rn_fact_lap * EXP( -zdep ) ) 
     91               ENDIF 
     92            END DO 
     93         END DO 
     94      END DO 
     95      ! 
    8496      SELECT CASE ( nldf )                     !* compute lateral mixing trend and add it to the general trend 
    8597      ! 
     
    136148      NAMELIST/namtrc_ldf/ ln_trcldf_lap, ln_trcldf_blp,                                  & 
    137149         &                 ln_trcldf_lev, ln_trcldf_hor, ln_trcldf_iso, ln_trcldf_triad,  & 
    138          &                 rn_ahtrc_0   , rn_bhtrc_0 
     150         &                 rn_ahtrc_0   , rn_bhtrc_0, rn_fact_lap   
    139151      !!---------------------------------------------------------------------- 
    140152      ! 
     
    164176         WRITE(numout,*) '           laplacian                 rn_ahtrc_0      = ', rn_ahtrc_0 
    165177         WRITE(numout,*) '         bilaplacian                 rn_bhtrc_0      = ', rn_bhtrc_0 
     178         WRITE(numout,*) '      enhanced zonal diffusivity     rn_fact_lap     = ', rn_fact_lap 
     179 
    166180      ENDIF 
    167181      !       
Note: See TracChangeset for help on using the changeset viewer.