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 13899 for NEMO/branches/2020/tickets_icb_1900/src/OCE/DYN/sshwzv.F90 – NEMO

Ignore:
Timestamp:
2020-11-27T17:26:33+01:00 (4 years ago)
Author:
mathiot
Message:

ticket #1900: update branch to trunk and add ICB test case

Location:
NEMO/branches/2020/tickets_icb_1900
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/tickets_icb_1900

    • Property svn:externals
      •  

        old new  
        22^/utils/build/makenemo@HEAD   makenemo 
        33^/utils/build/mk@HEAD         mk 
        4 ^/utils/tools/@HEAD           tools 
         4^/utils/tools@HEAD            tools 
        55^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
         
        88 
        99# SETTE 
        10 ^/utils/CI/sette@12931        sette 
         10^/utils/CI/sette@13559        sette 
  • NEMO/branches/2020/tickets_icb_1900/src/OCE/DYN/sshwzv.F90

    r13237 r13899  
    2828   USE bdydyn2d       ! bdy_ssh routine 
    2929#if defined key_agrif 
     30   USE agrif_oce 
    3031   USE agrif_oce_interp 
    3132#endif 
     
    177178            ! horizontal divergence of thickness diffusion transport ( velocity multiplied by e3t) 
    178179            ! - ML - note: computation already done in dom_vvl_sf_nxt. Could be optimized (not critical and clearer this way) 
    179             DO_2D_00_00 
     180            DO_2D( 0, 0, 0, 0 ) 
    180181               zhdiv(ji,jj,jk) = r1_e1e2t(ji,jj) * ( un_td(ji,jj,jk) - un_td(ji-1,jj,jk) + vn_td(ji,jj,jk) - vn_td(ji,jj-1,jk) ) 
    181182            END_2D 
     
    202203      ELSE                                            !==  Quasi-Eulerian vertical coordinate  ==!   ('key_qco') 
    203204         !                                            !==========================================! 
    204          DO jk = jpkm1, 1, -1                       ! integrate from the bottom the hor. divergence 
     205         DO jk = jpkm1, 1, -1                               ! integrate from the bottom the hor. divergence 
    205206            pww(:,:,jk) = pww(:,:,jk+1) - (  e3t(:,:,jk,Kmm) * hdiv(:,:,jk)                 & 
    206207               &                            + r1_Dt * (  e3t(:,:,jk,Kaa)        & 
     
    215216      ENDIF 
    216217      ! 
    217 #if defined key_agrif  
    218       IF( .NOT. AGRIF_Root() ) THEN  
     218#if defined key_agrif 
     219      IF( .NOT. AGRIF_Root() ) THEN 
     220         ! 
    219221         ! Mask vertical velocity at first/last columns/row  
    220222         ! inside computational domain (cosmetic)  
    221          ! --- West --- !          
    222          IF( lk_west) THEN 
    223             DO ji = mi0(2), mi1(2) 
    224                DO jj = 1, jpj 
    225                   pww(ji,jj,:) = 0._wp  
    226                ENDDO 
    227             ENDDO 
    228          ENDIF 
    229          ! 
    230          ! --- East --- ! 
    231          IF( lk_east) THEN 
    232             DO ji = mi0(jpiglo-1), mi1(jpiglo-1) 
    233                DO jj = 1, jpj 
    234                   pww(ji,jj,:) = 0._wp 
    235                ENDDO 
    236             ENDDO 
    237          ENDIF 
    238          ! 
    239          ! --- South --- ! 
    240          IF( lk_south) THEN 
    241             DO jj = mj0(2), mj1(2) 
    242                DO ji = 1, jpi 
    243                   pww(ji,jj,:) = 0._wp 
    244                ENDDO 
    245             ENDDO 
    246          ENDIF 
    247          ! 
    248          ! --- North --- ! 
    249          IF( lk_north) THEN 
    250             DO jj = mj0(jpjglo-1), mj1(jpjglo-1) 
    251                DO ji = 1, jpi 
    252                   pww(ji,jj,:) = 0._wp 
    253                ENDDO 
    254             ENDDO 
    255          ENDIF 
     223         DO jk = 1, jpkm1 
     224            IF( lk_west ) THEN                             ! --- West --- ! 
     225               DO ji = mi0(2+nn_hls), mi1(2+nn_hls) 
     226                  DO jj = 1, jpj 
     227                     pww(ji,jj,jk) = 0._wp  
     228                  END DO 
     229               END DO 
     230            ENDIF 
     231            IF( lk_east ) THEN                             ! --- East --- ! 
     232               DO ji = mi0(jpiglo-1-nn_hls), mi1(jpiglo-1-nn_hls) 
     233                  DO jj = 1, jpj 
     234                     pww(ji,jj,jk) = 0._wp 
     235                  END DO 
     236               END DO 
     237            ENDIF 
     238            IF( lk_south ) THEN                            ! --- South --- ! 
     239               DO jj = mj0(2+nn_hls), mj1(2+nn_hls) 
     240                  DO ji = 1, jpi 
     241                     pww(ji,jj,jk) = 0._wp 
     242                  END DO 
     243               END DO 
     244            ENDIF 
     245            IF( lk_north ) THEN                            ! --- North --- ! 
     246               DO jj = mj0(jpjglo-1-nn_hls), mj1(jpjglo-1-nn_hls) 
     247                  DO ji = 1, jpi 
     248                     pww(ji,jj,jk) = 0._wp 
     249                  END DO 
     250               END DO 
     251            ENDIF 
     252            ! 
     253         END DO 
    256254         ! 
    257255      ENDIF  
    258 #endif  
     256#endif 
    259257      ! 
    260258      IF( ln_timing )   CALL timing_stop('wzv') 
     
    360358      zdt = 2._wp * rn_Dt                            ! 2*rn_Dt and not rDt (for restartability) 
    361359      IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN 
    362          DO_3D_00_00( 1, jpkm1 ) 
     360         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    363361            z1_e3t = 1._wp / e3t(ji,jj,jk,Kmm) 
    364362            Cu_adv(ji,jj,jk) =   zdt *                                                         & 
     
    377375         END_3D 
    378376      ELSE 
    379          DO_3D_00_00( 1, jpkm1 ) 
     377         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    380378            z1_e3t = 1._wp / e3t(ji,jj,jk,Kmm) 
    381379            Cu_adv(ji,jj,jk) =   zdt *                                                      & 
     
    395393      ! 
    396394      IF( MAXVAL( Cu_adv(:,:,:) ) > Cu_min ) THEN       ! Quick check if any breaches anywhere 
    397          DO_3DS_11_11( jpkm1, 2, -1 ) 
     395         DO_3DS( 1, 1, 1, 1, jpkm1, 2, -1 )             ! or scan Courant criterion and partition ! w where necessary 
    398396            ! 
    399397            zCu = MAX( Cu_adv(ji,jj,jk) , Cu_adv(ji,jj,jk-1) ) 
Note: See TracChangeset for help on using the changeset viewer.