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 13237 for NEMO/trunk/src/OCE/ZDF – NEMO

Ignore:
Timestamp:
2020-07-03T11:12:53+02:00 (4 years ago)
Author:
smasson
Message:

trunk: Mid-year merge, merge back KERNEL-06_techene_e3

Location:
NEMO/trunk/src/OCE/ZDF
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/ZDF/zdfddm.F90

    r13226 r13237  
    9696         DO_2D_11_11 
    9797            zrw =   ( gdepw(ji,jj,jk  ,Kmm) - gdept(ji,jj,jk,Kmm) )   & 
    98 !!gm please, use e3w(:,:,:,Kmm) below  
     98!!gm please, use e3w at Kmm below  
    9999               &  / ( gdept(ji,jj,jk-1,Kmm) - gdept(ji,jj,jk,Kmm) )  
    100100            ! 
  • NEMO/trunk/src/OCE/ZDF/zdfdrg.F90

    r12489 r13237  
    7474   !! * Substitutions 
    7575#  include "do_loop_substitute.h90" 
     76#  include "domzgr_substitute.h90" 
    7677   !!---------------------------------------------------------------------- 
    7778   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
  • NEMO/trunk/src/OCE/ZDF/zdfgls.F90

    r12489 r13237  
    105105   !! * Substitutions 
    106106#  include "do_loop_substitute.h90" 
     107#  include "domzgr_substitute.h90" 
    107108   !!---------------------------------------------------------------------- 
    108109   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    263264         zcof = rfact_tke * tmask(ji,jj,jk) 
    264265         !                                        ! lower diagonal, in fact not used for jk = 2 (see surface conditions) 
    265          zd_lw(ji,jj,jk) = zcof * ( p_avm(ji,jj,jk  ) + p_avm(ji,jj,jk-1) ) / ( e3t(ji,jj,jk-1,Kmm) * e3w(ji,jj,jk,Kmm) ) 
     266         zd_lw(ji,jj,jk) = zcof * ( p_avm(ji,jj,jk  ) + p_avm(ji,jj,jk-1) )   & 
     267            &                 / ( e3t(ji,jj,jk-1,Kmm) * e3w(ji,jj,jk,Kmm) ) 
    266268         !                                        ! upper diagonal, in fact not used for jk = ibotm1 (see bottom conditions) 
    267          zd_up(ji,jj,jk) = zcof * ( p_avm(ji,jj,jk+1) + p_avm(ji,jj,jk  ) ) / ( e3t(ji,jj,jk  ,Kmm) * e3w(ji,jj,jk,Kmm) ) 
     269         zd_up(ji,jj,jk) = zcof * ( p_avm(ji,jj,jk+1) + p_avm(ji,jj,jk  ) )   & 
     270            &                 / ( e3t(ji,jj,jk  ,Kmm) * e3w(ji,jj,jk,Kmm) ) 
    268271         !                                        ! diagonal 
    269272         zdiag(ji,jj,jk) = 1._wp - zd_lw(ji,jj,jk) - zd_up(ji,jj,jk)  + rn_Dt * zdiss * wmask(ji,jj,jk)  
     
    473476         zcof = rfact_psi * zwall_psi(ji,jj,jk) * tmask(ji,jj,jk) 
    474477         !                                               ! lower diagonal 
    475          zd_lw(ji,jj,jk) = zcof * ( p_avm(ji,jj,jk  ) + p_avm(ji,jj,jk-1) ) / ( e3t(ji,jj,jk-1,Kmm) * e3w(ji,jj,jk,Kmm) ) 
     478         zd_lw(ji,jj,jk) = zcof * ( p_avm(ji,jj,jk  ) + p_avm(ji,jj,jk-1) )   & 
     479            &            / ( e3t(ji,jj,jk-1,Kmm) * e3w(ji,jj,jk,Kmm) ) 
    476480         !                                               ! upper diagonal 
    477          zd_up(ji,jj,jk) = zcof * ( p_avm(ji,jj,jk+1) + p_avm(ji,jj,jk  ) ) / ( e3t(ji,jj,jk  ,Kmm) * e3w(ji,jj,jk,Kmm) ) 
     481         zd_up(ji,jj,jk) = zcof * ( p_avm(ji,jj,jk+1) + p_avm(ji,jj,jk  ) )   & 
     482            &            / ( e3t(ji,jj,jk  ,Kmm) * e3w(ji,jj,jk,Kmm) ) 
    478483         !                                               ! diagonal 
    479484         zdiag(ji,jj,jk) = 1._wp - zd_lw(ji,jj,jk) - zd_up(ji,jj,jk) + rn_Dt * zdiss * wmask(ji,jj,jk) 
     
    11001105   !!====================================================================== 
    11011106END MODULE zdfgls 
    1102  
  • NEMO/trunk/src/OCE/ZDF/zdfiwm.F90

    r12510 r13237  
    5151   !! * Substitutions 
    5252#  include "do_loop_substitute.h90" 
     53#  include "domzgr_substitute.h90" 
    5354   !!---------------------------------------------------------------------- 
    5455   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    9495      !!                 2. Pycnocline-intensified low-mode dissipation 
    9596      !!                     zemx_iwm(z) = ( epyc_iwm / rho0 ) * ( sqrt(rn2(z))^nn_zpyc ) 
    96       !!                                   / SUM( sqrt(rn2(z))^nn_zpyc * e3w(z) ) 
     97      !!                                   / SUM( sqrt(rn2(z))^nn_zpyc * e3w[z) ) 
    9798      !!              where epyc_iwm is a map of available power, and nn_zpyc 
    9899      !!              is the chosen stratification-dependence of the internal wave 
     
    100101      !!                 3. WKB-height dependent high mode dissipation 
    101102      !!                     zemx_iwm(z) = ( ebot_iwm / rho0 ) * rn2(z) * EXP(-z_wkb(z)/hbot_iwm) 
    102       !!                                   / SUM( rn2(z) * EXP(-z_wkb(z)/hbot_iwm) * e3w(z) ) 
     103      !!                                   / SUM( rn2(z) * EXP(-z_wkb(z)/hbot_iwm) * e3w[z) ) 
    103104      !!              where hbot_iwm is the characteristic length scale of the WKB bottom  
    104105      !!              intensification, ebot_iwm is a map of available power, and z_wkb is the 
    105106      !!              WKB-stretched height above bottom defined as 
    106       !!                    z_wkb(z) = H * SUM( sqrt(rn2(z'>=z)) * e3w(z'>=z) ) 
    107       !!                                 / SUM( sqrt(rn2(z'))    * e3w(z')    ) 
     107      !!                    z_wkb(z) = H * SUM( sqrt(rn2(z'>=z)) * e3w[z'>=z) ) 
     108      !!                                 / SUM( sqrt(rn2(z'))    * e3w[z')    ) 
    108109      !! 
    109110      !!              - update the model vertical eddy viscosity and diffusivity:  
     
    178179         zfact(:,:) = 0._wp 
    179180         DO jk = 2, jpkm1              ! part independent of the level 
    180             zfact(:,:) = zfact(:,:) + e3w(:,:,jk,Kmm) * SQRT(  MAX( 0._wp, rn2(:,:,jk) )  ) * wmask(:,:,jk) 
     181            zfact(:,:) =   & 
     182               &  zfact(:,:) +   & 
     183               &  e3w(:,:,jk,Kmm) * SQRT(  MAX( 0._wp, rn2(:,:,jk) )  ) * wmask(:,:,jk) 
    181184         END DO 
    182185         ! 
  • NEMO/trunk/src/OCE/ZDF/zdfmxl.F90

    r12489 r13237  
    3838   !! * Substitutions 
    3939#  include "do_loop_substitute.h90" 
     40#  include "domzgr_substitute.h90" 
    4041   !!---------------------------------------------------------------------- 
    4142   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    100101      DO_3D_11_11( nlb10, jpkm1 ) 
    101102         ikt = mbkt(ji,jj) 
    102          hmlp(ji,jj) = hmlp(ji,jj) + MAX( rn2b(ji,jj,jk) , 0._wp ) * e3w(ji,jj,jk,Kmm) 
     103         hmlp(ji,jj) =   & 
     104            & hmlp(ji,jj) + MAX( rn2b(ji,jj,jk) , 0._wp ) * e3w(ji,jj,jk,Kmm) 
    103105         IF( hmlp(ji,jj) < zN2_c )   nmln(ji,jj) = MIN( jk , ikt ) + 1   ! Mixed layer level 
    104106      END_3D 
  • NEMO/trunk/src/OCE/ZDF/zdfosm.F90

    r13226 r13237  
    103103   INTEGER :: idebug = 236 
    104104   INTEGER :: jdebug = 228 
     105    
    105106   !! * Substitutions 
    106107#  include "do_loop_substitute.h90" 
     108#  include "domzgr_substitute.h90" 
    107109   !!---------------------------------------------------------------------- 
    108110   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    503505                       & - zbeta * ( zs_bl(ji,jj) - ts(ji,jj,jm,jp_sal,Kmm) ) ), 0.0 ) + zvel_max 
    504506 
    505                   zhbl_s = zhbl_s + MIN( - zwb_ent(ji,jj) / zdb * rn_Dt / FLOAT(ibld(ji,jj)-imld(ji,jj) ), e3w(ji,jj,jk,Kmm) ) 
     507                  zhbl_s = zhbl_s + MIN( - zwb_ent(ji,jj) / zdb * rn_Dt / FLOAT(ibld(ji,jj)-imld(ji,jj) ),   & 
     508                     &                     e3w(ji,jj,jk,Kmm) ) 
    506509                  zhbl_s = MIN(zhbl_s, ht(ji,jj)) 
    507510 
     
    594597                     zwb_ent(ji,jj) = 0._wp 
    595598                  ENDIF 
    596                   inhml = MAX( INT( zari * zhbl(ji,jj) / e3t(ji,jj,ibld(ji,jj),Kmm) ) , 1 ) 
     599                  inhml = MAX( INT( zari * zhbl(ji,jj)   & 
     600                     &              / e3t(ji,jj,ibld(ji,jj),Kmm) ), 1 ) 
    597601                  imld(ji,jj) = MAX( ibld(ji,jj) - inhml, 1) 
    598602                  zhml(ji,jj) = gdepw(ji,jj,imld(ji,jj),Kmm) 
     
    610614                     zari = MIN( 4.5 * ( zvstr(ji,jj)**2 ) & 
    611615                       & / ( zdb_bl(ji,jj) * zhbl(ji,jj) ) + 0.01  , 0.2 ) 
    612                      inhml = MAX( INT( zari * zhbl(ji,jj) / e3t(ji,jj,ibld(ji,jj),Kmm) ) , 1 ) 
     616                     inhml = MAX( INT( zari * zhbl(ji,jj)   & 
     617                        &             / e3t(ji,jj,ibld(ji,jj),Kmm) ), 1 ) 
    613618                     imld(ji,jj) = MAX( ibld(ji,jj) - inhml, 1) 
    614619                     zhml(ji,jj) = gdepw(ji,jj,imld(ji,jj),Kmm) 
  • NEMO/trunk/src/OCE/ZDF/zdfsh2.F90

    r12377 r13237  
    2424   !! * Substitutions 
    2525#  include "do_loop_substitute.h90" 
     26#  include "domzgr_substitute.h90" 
    2627   !!---------------------------------------------------------------------- 
    2728   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    6263            zsh2u(ji,jj) = ( p_avm(ji+1,jj,jk) + p_avm(ji,jj,jk) ) & 
    6364               &         * (   uu(ji,jj,jk-1,Kmm) -   uu(ji,jj,jk,Kmm) ) & 
    64                &         * (   uu(ji,jj,jk-1,Kbb) -   uu(ji,jj,jk,Kbb) ) / ( e3uw(ji,jj,jk,Kmm) * e3uw(ji,jj,jk,Kbb) ) * wumask(ji,jj,jk) 
     65               &         * (   uu(ji,jj,jk-1,Kbb) -   uu(ji,jj,jk,Kbb) ) &  
     66               &         / ( e3uw(ji,jj,jk  ,Kmm) * e3uw(ji,jj,jk,Kbb) ) & 
     67               &         * wumask(ji,jj,jk) 
    6568            zsh2v(ji,jj) = ( p_avm(ji,jj+1,jk) + p_avm(ji,jj,jk) ) & 
    6669               &         * (   vv(ji,jj,jk-1,Kmm) -   vv(ji,jj,jk,Kmm) ) & 
    67                &         * (   vv(ji,jj,jk-1,Kbb) -   vv(ji,jj,jk,Kbb) ) / ( e3vw(ji,jj,jk,Kmm) * e3vw(ji,jj,jk,Kbb) ) * wvmask(ji,jj,jk) 
     70               &         * (   vv(ji,jj,jk-1,Kbb) -   vv(ji,jj,jk,Kbb) ) & 
     71               &         / ( e3vw(ji,jj,jk  ,Kmm) * e3vw(ji,jj,jk,Kbb) ) & 
     72               &         * wvmask(ji,jj,jk) 
    6873         END_2D 
    6974         DO_2D_00_00 
  • NEMO/trunk/src/OCE/ZDF/zdftke.F90

    r13226 r13237  
    9898   !! * Substitutions 
    9999#  include "do_loop_substitute.h90" 
     100#  include "domzgr_substitute.h90" 
    100101   !!---------------------------------------------------------------------- 
    101102   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    267268         zpelc(:,:,1) =  MAX( rn2b(:,:,1), 0._wp ) * gdepw(:,:,1,Kmm) * e3w(:,:,1,Kmm) 
    268269         DO jk = 2, jpk 
    269             zpelc(:,:,jk)  = zpelc(:,:,jk-1) + MAX( rn2b(:,:,jk), 0._wp ) * gdepw(:,:,jk,Kmm) * e3w(:,:,jk,Kmm) 
     270            zpelc(:,:,jk)  = zpelc(:,:,jk-1) +   & 
     271               &        MAX( rn2b(:,:,jk), 0._wp ) * gdepw(:,:,jk,Kmm) * e3w(:,:,jk,Kmm) 
    270272         END DO 
    271273         !                        !* finite Langmuir Circulation depth 
     
    325327         !                                   ! eddy coefficient (ensure numerical stability) 
    326328         zzd_up = zcof * MAX(  p_avm(ji,jj,jk+1) + p_avm(ji,jj,jk  ) , 2.e-5_wp  )   &  ! upper diagonal 
    327             &          /    (  e3t(ji,jj,jk  ,Kmm) * e3w(ji,jj,jk  ,Kmm)  ) 
     329            &          /    (  e3t(ji,jj,jk  ,Kmm)   & 
     330            &                * e3w(ji,jj,jk  ,Kmm)  ) 
    328331         zzd_lw = zcof * MAX(  p_avm(ji,jj,jk  ) + p_avm(ji,jj,jk-1) , 2.e-5_wp  )   &  ! lower diagonal 
    329             &          /    (  e3t(ji,jj,jk-1,Kmm) * e3w(ji,jj,jk  ,Kmm)  ) 
     332            &          /    (  e3t(ji,jj,jk-1,Kmm)   & 
     333            &                * e3w(ji,jj,jk  ,Kmm)  ) 
    330334         ! 
    331335         zd_up(ji,jj,jk) = zzd_up            ! Matrix (zdiag, zd_up, zd_lw) 
     
    515519            &            gdepw(ji,jj,mbkt(ji,jj)+1,Kmm) - gdepw(ji,jj,jk,Kmm) ) 
    516520            ! wmask prevent zmxlm = 0 if jk = mikt(ji,jj) 
    517             zmxlm(ji,jj,jk) = zemxl * wmask(ji,jj,jk) + MIN( zmxlm(ji,jj,jk) , e3w(ji,jj,jk,Kmm) ) * (1 - wmask(ji,jj,jk)) 
    518             zmxld(ji,jj,jk) = zemxl * wmask(ji,jj,jk) + MIN( zmxlm(ji,jj,jk) , e3w(ji,jj,jk,Kmm) ) * (1 - wmask(ji,jj,jk)) 
     521            zmxlm(ji,jj,jk) = zemxl * wmask(ji,jj,jk)   & 
     522               &            + MIN( zmxlm(ji,jj,jk) , e3w(ji,jj,jk,Kmm) ) * (1 - wmask(ji,jj,jk)) 
     523            zmxld(ji,jj,jk) = zemxl * wmask(ji,jj,jk)   & 
     524               &            + MIN( zmxlm(ji,jj,jk) , e3w(ji,jj,jk,Kmm) ) * (1 - wmask(ji,jj,jk)) 
    519525         END_3D 
    520526         ! 
     
    528534      CASE ( 2 )           ! |dk[xml]| bounded by e3t : 
    529535         DO_3D_00_00( 2, jpkm1 ) 
    530             zmxlm(ji,jj,jk) = MIN( zmxlm(ji,jj,jk-1) + e3t(ji,jj,jk-1,Kmm), zmxlm(ji,jj,jk) ) 
     536            zmxlm(ji,jj,jk) =   & 
     537               &    MIN( zmxlm(ji,jj,jk-1) + e3t(ji,jj,jk-1,Kmm), zmxlm(ji,jj,jk) ) 
    531538         END_3D 
    532539         DO_3DS_00_00( jpkm1, 2, -1 ) 
     
    538545      CASE ( 3 )           ! lup and ldown, |dk[xml]| bounded by e3t : 
    539546         DO_3D_00_00( 2, jpkm1 ) 
    540             zmxld(ji,jj,jk) = MIN( zmxld(ji,jj,jk-1) + e3t(ji,jj,jk-1,Kmm), zmxlm(ji,jj,jk) ) 
     547            zmxld(ji,jj,jk) =    & 
     548               &    MIN( zmxld(ji,jj,jk-1) + e3t(ji,jj,jk-1,Kmm), zmxlm(ji,jj,jk) ) 
    541549         END_3D 
    542550         DO_3DS_00_00( jpkm1, 2, -1 ) 
    543             zmxlm(ji,jj,jk) = MIN( zmxlm(ji,jj,jk+1) + e3t(ji,jj,jk+1,Kmm), zmxlm(ji,jj,jk) ) 
     551            zmxlm(ji,jj,jk) =   & 
     552               &    MIN( zmxlm(ji,jj,jk+1) + e3t(ji,jj,jk+1,Kmm), zmxlm(ji,jj,jk) ) 
    544553         END_3D 
    545554         DO_3D_00_00( 2, jpkm1 ) 
Note: See TracChangeset for help on using the changeset viewer.