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 15548 for NEMO/branches/2021/ticket2632_r14588_theta_sbcblk/src/OCE/DOM/dommsk.F90 – NEMO

Ignore:
Timestamp:
2021-11-28T18:59:49+01:00 (3 years ago)
Author:
gsamson
Message:

update branch to the head of the trunk (r15547); ticket #2632

Location:
NEMO/branches/2021/ticket2632_r14588_theta_sbcblk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2021/ticket2632_r14588_theta_sbcblk

    • Property svn:externals
      •  

        old new  
        99 
        1010# SETTE 
        11 ^/utils/CI/sette@14244        sette 
         11^/utils/CI/sette@HEAD        sette 
         12 
  • NEMO/branches/2021/ticket2632_r14588_theta_sbcblk/src/OCE/DOM/dommsk.F90

    r14433 r15548  
    7373      !!         2 < rn_shlat, strong slip        | in the lateral boundary layer 
    7474      !! 
    75       !!      tmask_i : interior ocean mask at t-point, i.e. excluding duplicated 
    76       !!                rows/lines due to cyclic or North Fold boundaries as well 
    77       !!                as MPP halos. 
    78       !!      tmask_h : halo mask at t-point, i.e. excluding duplicated rows/lines 
    79       !!                due to cyclic or North Fold boundaries as well as MPP halos. 
    80       !! 
    8175      !! ** Action :   tmask, umask, vmask, wmask, wumask, wvmask : land/ocean mask  
    8276      !!                         at t-, u-, v- w, wu-, and wv-points (=0. or 1.) 
    8377      !!               fmask   : land/ocean mask at f-point (=0., or =1., or  
    8478      !!                         =rn_shlat along lateral boundaries) 
    85       !!               tmask_i : interior ocean mask  
    86       !!               tmask_h : halo mask 
    87       !!               ssmask , ssumask, ssvmask, ssfmask : 2D ocean mask 
     79      !!               ssmask , ssumask, ssvmask, ssfmask : 2D ocean mask, i.e. at least 1 wet cell in the vertical 
     80      !!               tmask_h : halo mask at t-point, i.e. excluding all duplicated rows/lines 
     81      !!                         due to cyclic or North Fold boundaries as well as MPP halos. 
     82      !!               tmask_i : ssmask * tmask_h 
    8883      !!---------------------------------------------------------------------- 
    8984      INTEGER, DIMENSION(:,:), INTENT(in) ::   k_top, k_bot   ! first and last ocean level 
     
    182177      ssfmask(:,:) = MAXVAL( fmask(:,:,:), DIM=3 ) 
    183178      IF( lk_SWE ) THEN      ! Shallow Water Eq. case : redefine ssfmask 
    184          DO_2D( 0,0, 0,0 ) 
     179         DO_2D( 0, 0, 0, 0 ) 
    185180            ssfmask(ji,jj) = MAX(  ssmask(ji,jj+1), ssmask(ji+1,jj+1),  &  
    186181               &                   ssmask(ji,jj  ), ssmask(ji+1,jj  )   ) 
     
    202197      ! Lateral boundary conditions on velocity (modify fmask) 
    203198      ! ---------------------------------------   
    204       IF( rn_shlat /= 0 ) THEN      ! Not free-slip lateral boundary condition 
     199      IF( rn_shlat /= 0._wp ) THEN      ! Not free-slip lateral boundary condition 
    205200         ! 
    206          DO jk = 1, jpk 
    207             DO_2D( 0, 0, 0, 0 ) 
    208                IF( fmask(ji,jj,jk) == 0._wp ) THEN 
    209                   fmask(ji,jj,jk) = rn_shlat * MIN( 1._wp , MAX( umask(ji,jj,jk), umask(ji,jj+1,jk), & 
    210                      &                                           vmask(ji,jj,jk), vmask(ji+1,jj,jk) ) ) 
    211                ENDIF 
    212             END_2D 
    213             DO jj = 2, jpjm1 
    214                IF( fmask(1,jj,jk) == 0._wp ) THEN 
    215                   fmask(1  ,jj,jk) = rn_shlat * MIN( 1._wp , MAX( vmask(2,jj,jk), umask(1,jj+1,jk), umask(1,jj,jk) ) ) 
    216                ENDIF 
    217                IF( fmask(jpi,jj,jk) == 0._wp ) THEN 
    218                   fmask(jpi,jj,jk) = rn_shlat * MIN( 1._wp , MAX( umask(jpi,jj+1,jk), vmask(jpim1,jj,jk), umask(jpi,jj-1,jk) ) ) 
    219                ENDIF 
    220             END DO          
    221             DO ji = 2, jpim1 
    222                IF( fmask(ji,1,jk) == 0._wp ) THEN 
    223                   fmask(ji, 1 ,jk) = rn_shlat * MIN( 1._wp , MAX( vmask(ji+1,1,jk), umask(ji,2,jk), vmask(ji,1,jk) ) ) 
    224                ENDIF 
    225                IF( fmask(ji,jpj,jk) == 0._wp ) THEN 
    226                   fmask(ji,jpj,jk) = rn_shlat * MIN( 1._wp , MAX( vmask(ji+1,jpj,jk), vmask(ji-1,jpj,jk), umask(ji,jpjm1,jk) ) ) 
    227                ENDIF 
    228             END DO 
    229          END DO 
    230          ! 
     201         DO_3D( 0, 0, 0, 0, 1, jpk ) 
     202            IF( fmask(ji,jj,jk) == 0._wp ) THEN 
     203               fmask(ji,jj,jk) = rn_shlat * MIN( 1._wp , MAX( umask(ji,jj,jk), umask(ji,jj+1,jk), & 
     204                  &                                           vmask(ji,jj,jk), vmask(ji+1,jj,jk) ) ) 
     205            ENDIF 
     206         END_3D 
    231207         CALL lbc_lnk( 'dommsk', fmask, 'F', 1._wp )      ! Lateral boundary conditions on fmask 
    232208         ! 
Note: See TracChangeset for help on using the changeset viewer.