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 12928 for NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/OCE/DOM/domzgr.F90 – NEMO

Ignore:
Timestamp:
2020-05-14T21:46:00+02:00 (4 years ago)
Author:
smueller
Message:

Synchronizing with /NEMO/trunk@12925 (ticket #2170)

Location:
NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser

    • Property svn:externals
      •  

        old new  
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
         8 
         9# SETTE 
         10^/utils/CI/sette@HEAD         sette 
  • NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/OCE/DOM/domzgr.F90

    r10425 r12928  
    4444 
    4545  !! * Substitutions 
    46 #  include "vectopt_loop_substitute.h90" 
     46#  include "do_loop_substitute.h90" 
    4747   !!---------------------------------------------------------------------- 
    4848   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    7171      INTEGER, DIMENSION(:,:), INTENT(out) ::   k_top, k_bot   ! ocean first and last level indices 
    7272      ! 
    73       INTEGER  ::   jk                  ! dummy loop index 
     73      INTEGER  ::   ji,jj,jk            ! dummy loop index 
     74      INTEGER  ::   ikt, ikb            ! top/bot index 
    7475      INTEGER  ::   ioptio, ibat, ios   ! local integer 
    7576      REAL(wp) ::   zrefdep             ! depth of the reference level (~10m) 
     
    118119      ! Any closed seas (defined by closea_mask > 0 in domain_cfg file) to be filled  
    119120      ! in at runtime if ln_closea=.false. 
    120       IF( .NOT.ln_closea )   CALL clo_bat( k_top, k_bot ) 
     121      IF( ln_closea ) THEN 
     122         IF ( ln_maskcs ) THEN 
     123            ! mask all the closed sea 
     124            CALL clo_msk( k_top, k_bot, mask_opnsea, 'mask_opensea' ) 
     125         ELSE IF ( ln_mask_csundef ) THEN 
     126            ! defined closed sea are kept 
     127            ! mask all the undefined closed sea 
     128            CALL clo_msk( k_top, k_bot, mask_csundef, 'mask_csundef' ) 
     129         END IF 
     130      END IF 
    121131      ! 
    122132      IF(lwp) THEN                     ! Control print 
     
    138148      !                                ! top/bottom ocean level indices for t-, u- and v-points (f-point also for top) 
    139149      CALL zgr_top_bot( k_top, k_bot )      ! with a minimum value set to 1 
    140        
    141  
     150      ! 
     151      !                                ! ice shelf draft and bathymetry 
     152      DO_2D_11_11 
     153         ikt = mikt(ji,jj) 
     154         ikb = mbkt(ji,jj) 
     155         bathy  (ji,jj) = gdepw_0(ji,jj,ikb+1) 
     156         risfdep(ji,jj) = gdepw_0(ji,jj,ikt  ) 
     157      END_2D 
     158      ! 
    142159      !                                ! deepest/shallowest W level Above/Below ~10m 
    143160!!gm BUG in s-coordinate this does not work! 
     
    296313      !                                    ! N.B.  top     k-index of W-level = mikt 
    297314      !                                    !       bottom  k-index of W-level = mbkt+1 
    298       DO jj = 1, jpjm1 
    299          DO ji = 1, jpim1 
    300             miku(ji,jj) = MAX(  mikt(ji+1,jj  ) , mikt(ji,jj)  ) 
    301             mikv(ji,jj) = MAX(  mikt(ji  ,jj+1) , mikt(ji,jj)  ) 
    302             mikf(ji,jj) = MAX(  mikt(ji  ,jj+1) , mikt(ji,jj), mikt(ji+1,jj  ), mikt(ji+1,jj+1)  ) 
    303             ! 
    304             mbku(ji,jj) = MIN(  mbkt(ji+1,jj  ) , mbkt(ji,jj)  ) 
    305             mbkv(ji,jj) = MIN(  mbkt(ji  ,jj+1) , mbkt(ji,jj)  ) 
    306          END DO 
    307       END DO 
     315      DO_2D_10_10 
     316         miku(ji,jj) = MAX(  mikt(ji+1,jj  ) , mikt(ji,jj)  ) 
     317         mikv(ji,jj) = MAX(  mikt(ji  ,jj+1) , mikt(ji,jj)  ) 
     318         mikf(ji,jj) = MAX(  mikt(ji  ,jj+1) , mikt(ji,jj), mikt(ji+1,jj  ), mikt(ji+1,jj+1)  ) 
     319         ! 
     320         mbku(ji,jj) = MIN(  mbkt(ji+1,jj  ) , mbkt(ji,jj)  ) 
     321         mbkv(ji,jj) = MIN(  mbkt(ji  ,jj+1) , mbkt(ji,jj)  ) 
     322      END_2D 
    308323      ! converte into REAL to use lbc_lnk ; impose a min value of 1 as a zero can be set in lbclnk  
    309324      zk(:,:) = REAL( miku(:,:), wp )   ;   CALL lbc_lnk( 'domzgr', zk, 'U', 1. )   ;   miku(:,:) = MAX( NINT( zk(:,:) ), 1 ) 
Note: See TracChangeset for help on using the changeset viewer.