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/dommsk.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/dommsk.F90

    r12178 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) 
     
    103103      !!--------------------------------------------------------------------- 
    104104      ! 
    105       REWIND( numnam_ref )              ! Namelist namlbc in reference namelist : Lateral momentum boundary condition 
    106105      READ  ( numnam_ref, namlbc, IOSTAT = ios, ERR = 901 ) 
    107106901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namlbc in reference namelist' ) 
    108       REWIND( numnam_cfg )              ! Namelist namlbc in configuration namelist : Lateral momentum boundary condition 
    109107      READ  ( numnam_cfg, namlbc, IOSTAT = ios, ERR = 902 ) 
    110108902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namlbc in configuration namelist' ) 
     
    133131      ! 
    134132      tmask(:,:,:) = 0._wp 
    135       DO jj = 1, jpj 
    136          DO ji = 1, jpi 
    137             iktop = k_top(ji,jj) 
    138             ikbot = k_bot(ji,jj) 
    139             IF( iktop /= 0 ) THEN       ! water in the column 
    140                tmask(ji,jj,iktop:ikbot  ) = 1._wp 
    141             ENDIF 
    142          END DO   
    143       END DO 
     133      DO_2D_11_11 
     134         iktop = k_top(ji,jj) 
     135         ikbot = k_bot(ji,jj) 
     136         IF( iktop /= 0 ) THEN       ! water in the column 
     137            tmask(ji,jj,iktop:ikbot  ) = 1._wp 
     138         ENDIF 
     139      END_2D 
    144140      ! 
    145141      ! the following call is mandatory 
     
    148144 
    149145     ! Mask corrections for bdy (read in mppini2) 
    150       REWIND( numnam_ref )              ! Namelist nambdy in reference namelist :Unstructured open boundaries 
    151146      READ  ( numnam_ref, nambdy, IOSTAT = ios, ERR = 903) 
    152147903   IF( ios /= 0 )   CALL ctl_nam ( ios , 'nambdy in reference namelist' ) 
    153       REWIND( numnam_cfg )              ! Namelist nambdy in configuration namelist :Unstructured open boundaries 
    154148      READ  ( numnam_cfg, nambdy, IOSTAT = ios, ERR = 904 ) 
    155149904   IF( ios >  0 )   CALL ctl_nam ( ios , 'nambdy in configuration namelist' ) 
     
    159153         CALL iom_get ( inum, jpdom_data, 'bdy_msk', bdytmask(:,:) ) 
    160154         CALL iom_close( inum ) 
    161          DO jk = 1, jpkm1 
    162             DO jj = 1, jpj 
    163                DO ji = 1, jpi 
    164                   tmask(ji,jj,jk) = tmask(ji,jj,jk) * bdytmask(ji,jj) 
    165                END DO 
    166             END DO 
    167          END DO 
     155         DO_3D_11_11( 1, jpkm1 ) 
     156            tmask(ji,jj,jk) = tmask(ji,jj,jk) * bdytmask(ji,jj) 
     157         END_3D 
    168158      ENDIF 
    169159          
     
    173163      DO jk = 1, jpk 
    174164         DO jj = 1, jpjm1 
    175             DO ji = 1, fs_jpim1   ! vector loop 
     165            DO ji = 1, jpim1   ! vector loop 
    176166               umask(ji,jj,jk) = tmask(ji,jj  ,jk) * tmask(ji+1,jj  ,jk) 
    177167               vmask(ji,jj,jk) = tmask(ji,jj  ,jk) * tmask(ji  ,jj+1,jk) 
     
    247237         DO jk = 1, jpk 
    248238            zwf(:,:) = fmask(:,:,jk)          
    249             DO jj = 2, jpjm1 
    250                DO ji = fs_2, fs_jpim1   ! vector opt. 
    251                   IF( fmask(ji,jj,jk) == 0._wp ) THEN 
    252                      fmask(ji,jj,jk) = rn_shlat * MIN( 1._wp , MAX( zwf(ji+1,jj), zwf(ji,jj+1),   & 
    253                         &                                           zwf(ji-1,jj), zwf(ji,jj-1)  )  ) 
    254                   ENDIF 
    255                END DO 
    256             END DO 
     239            DO_2D_00_00 
     240               IF( fmask(ji,jj,jk) == 0._wp ) THEN 
     241                  fmask(ji,jj,jk) = rn_shlat * MIN( 1._wp , MAX( zwf(ji+1,jj), zwf(ji,jj+1),   & 
     242                     &                                           zwf(ji-1,jj), zwf(ji,jj-1)  )  ) 
     243               ENDIF 
     244            END_2D 
    257245            DO jj = 2, jpjm1 
    258246               IF( fmask(1,jj,jk) == 0._wp ) THEN 
Note: See TracChangeset for help on using the changeset viewer.