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 12377 for NEMO/trunk/src/OCE/ZDF/zdfmxl.F90 – NEMO

Ignore:
Timestamp:
2020-02-12T15:39:06+01:00 (4 years ago)
Author:
acc
Message:

The big one. Merging all 2019 developments from the option 1 branch back onto the trunk.

This changeset reproduces 2019/dev_r11943_MERGE_2019 on the trunk using a 2-URL merge
onto a working copy of the trunk. I.e.:

svn merge --ignore-ancestry \

svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/trunk \
svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/branches/2019/dev_r11943_MERGE_2019 ./

The --ignore-ancestry flag avoids problems that may otherwise arise from the fact that
the merge history been trunk and branch may have been applied in a different order but
care has been taken before this step to ensure that all applicable fixes and updates
are present in the merge branch.

The trunk state just before this step has been branched to releases/release-4.0-HEAD
and that branch has been immediately tagged as releases/release-4.0.2. Any fixes
or additions in response to tickets on 4.0, 4.0.1 or 4.0.2 should be done on
releases/release-4.0-HEAD. From now on future 'point' releases (e.g. 4.0.2) will
remain unchanged with periodic releases as needs demand. Note release-4.0-HEAD is a
transitional naming convention. Future full releases, say 4.2, will have a release-4.2
branch which fulfills this role and the first point release (e.g. 4.2.0) will be made
immediately following the release branch creation.

2020 developments can be started from any trunk revision later than this one.

Location:
NEMO/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk

    • Property svn:externals
      •  

        old new  
        33^/utils/build/mk@HEAD         mk 
        44^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
         5^/vendors/AGRIF/dev_r11615_ENHANCE-04_namelists_as_internalfiles_agrif@HEAD      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
  • NEMO/trunk/src/OCE/ZDF/zdfmxl.F90

    r10425 r12377  
    1212   !!---------------------------------------------------------------------- 
    1313   USE oce            ! ocean dynamics and tracers variables 
     14   USE isf_oce        ! ice shelf 
    1415   USE dom_oce        ! ocean space and time domain variables 
    1516   USE trc_oce  , ONLY: l_offline         ! ocean space and time domain variables 
     
    3536   REAL(wp), PUBLIC ::   avt_c = 5.e-4_wp   ! Kz criterion for the turbocline depth 
    3637 
     38   !! * Substitutions 
     39#  include "do_loop_substitute.h90" 
    3740   !!---------------------------------------------------------------------- 
    3841   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    5760 
    5861 
    59    SUBROUTINE zdf_mxl( kt ) 
     62   SUBROUTINE zdf_mxl( kt, Kmm ) 
    6063      !!---------------------------------------------------------------------- 
    6164      !!                  ***  ROUTINE zdfmxl  *** 
     
    7578      !!---------------------------------------------------------------------- 
    7679      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
     80      INTEGER, INTENT(in) ::   Kmm  ! ocean time level index 
    7781      ! 
    7882      INTEGER  ::   ji, jj, jk      ! dummy loop indices 
     
    9498      hmlp(:,:)  = 0._wp               ! here hmlp used as a dummy variable, integrating vertically N^2 
    9599      zN2_c = grav * rho_c * r1_rau0   ! convert density criteria into N^2 criteria 
    96       DO jk = nlb10, jpkm1 
    97          DO jj = 1, jpj                ! Mixed layer level: w-level  
    98             DO ji = 1, jpi 
    99                ikt = mbkt(ji,jj) 
    100                hmlp(ji,jj) = hmlp(ji,jj) + MAX( rn2b(ji,jj,jk) , 0._wp ) * e3w_n(ji,jj,jk) 
    101                IF( hmlp(ji,jj) < zN2_c )   nmln(ji,jj) = MIN( jk , ikt ) + 1   ! Mixed layer level 
    102             END DO 
    103          END DO 
    104       END DO 
     100      DO_3D_11_11( nlb10, jpkm1 ) 
     101         ikt = mbkt(ji,jj) 
     102         hmlp(ji,jj) = hmlp(ji,jj) + MAX( rn2b(ji,jj,jk) , 0._wp ) * e3w(ji,jj,jk,Kmm) 
     103         IF( hmlp(ji,jj) < zN2_c )   nmln(ji,jj) = MIN( jk , ikt ) + 1   ! Mixed layer level 
     104      END_3D 
    105105      ! 
    106106      ! w-level of the turbocline and mixing layer (iom_use) 
    107107      imld(:,:) = mbkt(:,:) + 1        ! Initialization to the number of w ocean point 
    108       DO jk = jpkm1, nlb10, -1         ! from the bottom to nlb10  
    109          DO jj = 1, jpj 
    110             DO ji = 1, jpi 
    111                IF( avt (ji,jj,jk) < avt_c * wmask(ji,jj,jk) )   imld(ji,jj) = jk      ! Turbocline  
    112             END DO 
    113          END DO 
    114       END DO 
     108      DO_3DS_11_11( jpkm1, nlb10, -1 ) 
     109         IF( avt (ji,jj,jk) < avt_c * wmask(ji,jj,jk) )   imld(ji,jj) = jk      ! Turbocline  
     110      END_3D 
    115111      ! depth of the mixing and mixed layers 
    116       DO jj = 1, jpj 
    117          DO ji = 1, jpi 
    118             iiki = imld(ji,jj) 
    119             iikn = nmln(ji,jj) 
    120             hmld (ji,jj) = gdepw_n(ji,jj,iiki  ) * ssmask(ji,jj)    ! Turbocline depth  
    121             hmlp (ji,jj) = gdepw_n(ji,jj,iikn  ) * ssmask(ji,jj)    ! Mixed layer depth 
    122             hmlpt(ji,jj) = gdept_n(ji,jj,iikn-1) * ssmask(ji,jj)    ! depth of the last T-point inside the mixed layer 
    123          END DO 
    124       END DO 
     112      DO_2D_11_11 
     113         iiki = imld(ji,jj) 
     114         iikn = nmln(ji,jj) 
     115         hmld (ji,jj) = gdepw(ji,jj,iiki  ,Kmm) * ssmask(ji,jj)    ! Turbocline depth  
     116         hmlp (ji,jj) = gdepw(ji,jj,iikn  ,Kmm) * ssmask(ji,jj)    ! Mixed layer depth 
     117         hmlpt(ji,jj) = gdept(ji,jj,iikn-1,Kmm) * ssmask(ji,jj)    ! depth of the last T-point inside the mixed layer 
     118      END_2D 
    125119      ! 
    126120      IF( .NOT.l_offline ) THEN 
     
    137131      ENDIF 
    138132      ! 
    139       IF(ln_ctl)   CALL prt_ctl( tab2d_1=REAL(nmln,wp), clinfo1=' nmln : ', tab2d_2=hmlp, clinfo2=' hmlp : ' ) 
     133      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab2d_1=REAL(nmln,wp), clinfo1=' nmln : ', tab2d_2=hmlp, clinfo2=' hmlp : ' ) 
    140134      ! 
    141135   END SUBROUTINE zdf_mxl 
Note: See TracChangeset for help on using the changeset viewer.