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 13286 for NEMO/trunk/src/OCE/DYN – NEMO

Ignore:
Timestamp:
2020-07-09T17:48:29+02:00 (4 years ago)
Author:
smasson
Message:

trunk: merge extra halos branch in trunk, see #2366

Location:
NEMO/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk

    • 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/r12931_sette_ticket2366@HEAD  sette 
  • NEMO/trunk/src/OCE/DYN/dynspg_ts.F90

    r13237 r13286  
    901901         !                                   ! --------------- 
    902902         IF( ln_rstart .AND. ln_bt_fw .AND. (.NOT.l_1st_euler) ) THEN    !* Read the restart file 
    903             CALL iom_get( numror, jpdom_autoglo, 'ub2_b'  , ub2_b  (:,:), ldxios = lrxios )    
    904             CALL iom_get( numror, jpdom_autoglo, 'vb2_b'  , vb2_b  (:,:), ldxios = lrxios )  
    905             CALL iom_get( numror, jpdom_autoglo, 'un_bf'  , un_bf  (:,:), ldxios = lrxios )    
    906             CALL iom_get( numror, jpdom_autoglo, 'vn_bf'  , vn_bf  (:,:), ldxios = lrxios )  
     903            CALL iom_get( numror, jpdom_auto, 'ub2_b'  , ub2_b  (:,:), cd_type = 'U', psgn = -1._wp, ldxios = lrxios )    
     904            CALL iom_get( numror, jpdom_auto, 'vb2_b'  , vb2_b  (:,:), cd_type = 'V', psgn = -1._wp, ldxios = lrxios )  
     905            CALL iom_get( numror, jpdom_auto, 'un_bf'  , un_bf  (:,:), cd_type = 'U', psgn = -1._wp, ldxios = lrxios )    
     906            CALL iom_get( numror, jpdom_auto, 'vn_bf'  , vn_bf  (:,:), cd_type = 'V', psgn = -1._wp, ldxios = lrxios )  
    907907            IF( .NOT.ln_bt_av ) THEN 
    908                CALL iom_get( numror, jpdom_autoglo, 'sshbb_e'  , sshbb_e(:,:), ldxios = lrxios )    
    909                CALL iom_get( numror, jpdom_autoglo, 'ubb_e'    ,   ubb_e(:,:), ldxios = lrxios )    
    910                CALL iom_get( numror, jpdom_autoglo, 'vbb_e'    ,   vbb_e(:,:), ldxios = lrxios ) 
    911                CALL iom_get( numror, jpdom_autoglo, 'sshb_e'   ,  sshb_e(:,:), ldxios = lrxios )  
    912                CALL iom_get( numror, jpdom_autoglo, 'ub_e'     ,    ub_e(:,:), ldxios = lrxios )    
    913                CALL iom_get( numror, jpdom_autoglo, 'vb_e'     ,    vb_e(:,:), ldxios = lrxios ) 
     908               CALL iom_get( numror, jpdom_auto, 'sshbb_e'  , sshbb_e(:,:), cd_type = 'T', psgn =  1._wp, ldxios = lrxios )    
     909               CALL iom_get( numror, jpdom_auto, 'ubb_e'    ,   ubb_e(:,:), cd_type = 'U', psgn = -1._wp, ldxios = lrxios )    
     910               CALL iom_get( numror, jpdom_auto, 'vbb_e'    ,   vbb_e(:,:), cd_type = 'V', psgn = -1._wp, ldxios = lrxios ) 
     911               CALL iom_get( numror, jpdom_auto, 'sshb_e'   ,  sshb_e(:,:), cd_type = 'T', psgn =  1._wp, ldxios = lrxios )  
     912               CALL iom_get( numror, jpdom_auto, 'ub_e'     ,    ub_e(:,:), cd_type = 'U', psgn = -1._wp, ldxios = lrxios )    
     913               CALL iom_get( numror, jpdom_auto, 'vb_e'     ,    vb_e(:,:), cd_type = 'V', psgn = -1._wp, ldxios = lrxios ) 
    914914            ENDIF 
    915915#if defined key_agrif 
    916916            ! Read time integrated fluxes 
    917917            IF ( .NOT.Agrif_Root() ) THEN 
    918                CALL iom_get( numror, jpdom_autoglo, 'ub2_i_b'  , ub2_i_b(:,:), ldxios = lrxios )    
    919                CALL iom_get( numror, jpdom_autoglo, 'vb2_i_b'  , vb2_i_b(:,:), ldxios = lrxios ) 
     918               CALL iom_get( numror, jpdom_auto, 'ub2_i_b'  , ub2_i_b(:,:), cd_type = 'U', psgn = -1._wp, ldxios = lrxios )    
     919               CALL iom_get( numror, jpdom_auto, 'vb2_i_b'  , vb2_i_b(:,:), cd_type = 'V', psgn = -1._wp, ldxios = lrxios ) 
    920920            ENDIF 
    921921#endif 
     
    976976      ! Max courant number for ext. grav. waves 
    977977      ! 
    978       DO_2D_11_11 
     978      DO_2D_00_00 
    979979         zxr2 = r1_e1t(ji,jj) * r1_e1t(ji,jj) 
    980980         zyr2 = r1_e2t(ji,jj) * r1_e2t(ji,jj) 
     
    982982      END_2D 
    983983      ! 
    984       zcmax = MAXVAL( zcu(:,:) ) 
     984      zcmax = MAXVAL( zcu(Nis0:Nie0,Njs0:Nje0) ) 
    985985      CALL mpp_max( 'dynspg_ts', zcmax ) 
    986986 
  • NEMO/trunk/src/OCE/DYN/dynvor.F90

    r13237 r13286  
    8080   REAL(wp), ALLOCATABLE, DIMENSION(:,:) ::   di_e2u_2        ! = di(e2u)/2          used in T-point metric term calculation 
    8181   REAL(wp), ALLOCATABLE, DIMENSION(:,:) ::   dj_e1v_2        ! = dj(e1v)/2           -        -      -       -  
    82    REAL(wp), ALLOCATABLE, DIMENSION(:,:) ::   di_e2v_2e1e2f   ! = di(e2u)/(2*e1e2f)  used in F-point metric term calculation 
    83    REAL(wp), ALLOCATABLE, DIMENSION(:,:) ::   dj_e1u_2e1e2f   ! = dj(e1v)/(2*e1e2f)   -        -      -       -  
     82   REAL(wp), ALLOCATABLE, DIMENSION(:,:) ::   di_e2v_2e1e2f   ! = di(e2v)/(2*e1e2f)  used in F-point metric term calculation 
     83   REAL(wp), ALLOCATABLE, DIMENSION(:,:) ::   dj_e1u_2e1e2f   ! = dj(e1u)/(2*e1e2f)   -        -      -       -  
    8484    
    8585   REAL(wp) ::   r1_4  = 0.250_wp         ! =1/4 
  • NEMO/trunk/src/OCE/DYN/dynzdf.F90

    r13237 r13286  
    107107      !                    ! time stepping except vertical diffusion 
    108108      IF( ln_dynadv_vec .OR. ln_linssh ) THEN   ! applied on velocity 
    109          DO jk = 1, jpkm1 
    110             puu(:,:,jk,Kaa) = ( puu(:,:,jk,Kbb) + rDt * puu(:,:,jk,Krhs) ) * umask(:,:,jk) 
    111             pvv(:,:,jk,Kaa) = ( pvv(:,:,jk,Kbb) + rDt * pvv(:,:,jk,Krhs) ) * vmask(:,:,jk) 
    112          END DO 
     109         DO_3D_00_00( 1, jpkm1 ) 
     110            puu(ji,jj,jk,Kaa) = ( puu(ji,jj,jk,Kbb) + rDt * puu(ji,jj,jk,Krhs) ) * umask(ji,jj,jk) 
     111            pvv(ji,jj,jk,Kaa) = ( pvv(ji,jj,jk,Kbb) + rDt * pvv(ji,jj,jk,Krhs) ) * vmask(ji,jj,jk) 
     112         END_3D 
    113113      ELSE                                      ! applied on thickness weighted velocity 
    114          DO jk = 1, jpkm1 
    115             puu(:,:,jk,Kaa) = (         e3u(:,:,jk,Kbb) * puu(:,:,jk,Kbb)  & 
    116                &            + rDt * e3u(:,:,jk,Kmm) * puu(:,:,jk,Krhs)  )  & 
    117                &                  / e3u(:,:,jk,Kaa) * umask(:,:,jk) 
    118             pvv(:,:,jk,Kaa) = (         e3v(:,:,jk,Kbb) * pvv(:,:,jk,Kbb)  & 
    119                &            + rDt * e3v(:,:,jk,Kmm) * pvv(:,:,jk,Krhs)  )  & 
    120                &                  / e3v(:,:,jk,Kaa) * vmask(:,:,jk) 
    121          END DO 
     114         DO_3D_00_00( 1, jpkm1 ) 
     115            puu(ji,jj,jk,Kaa) = (         e3u(ji,jj,jk,Kbb) * puu(ji,jj,jk,Kbb )  & 
     116               &                  + rDt * e3u(ji,jj,jk,Kmm) * puu(ji,jj,jk,Krhs)  ) & 
     117               &                        / e3u(ji,jj,jk,Kaa) * umask(ji,jj,jk) 
     118            pvv(ji,jj,jk,Kaa) = (         e3v(ji,jj,jk,Kbb) * pvv(ji,jj,jk,Kbb )  & 
     119               &                  + rDt * e3v(ji,jj,jk,Kmm) * pvv(ji,jj,jk,Krhs)  ) & 
     120               &                        / e3v(ji,jj,jk,Kaa) * vmask(ji,jj,jk) 
     121         END_3D 
    122122      ENDIF 
    123123      !                    ! add top/bottom friction  
     
    127127      !     G. Madec : in linear free surface, e3u(:,:,:,Kaa) = e3u(:,:,:,Kmm) = e3u_0, so systematic use of e3u(:,:,:,Kaa) 
    128128      IF( ln_drgimp .AND. ln_dynspg_ts ) THEN 
    129          DO jk = 1, jpkm1        ! remove barotropic velocities 
    130             puu(:,:,jk,Kaa) = ( puu(:,:,jk,Kaa) - uu_b(:,:,Kaa) ) * umask(:,:,jk) 
    131             pvv(:,:,jk,Kaa) = ( pvv(:,:,jk,Kaa) - vv_b(:,:,Kaa) ) * vmask(:,:,jk) 
    132          END DO 
     129         DO_3D_00_00( 1, jpkm1 )      ! remove barotropic velocities 
     130            puu(ji,jj,jk,Kaa) = ( puu(ji,jj,jk,Kaa) - uu_b(ji,jj,Kaa) ) * umask(ji,jj,jk) 
     131            pvv(ji,jj,jk,Kaa) = ( pvv(ji,jj,jk,Kaa) - vv_b(ji,jj,Kaa) ) * vmask(ji,jj,jk) 
     132         END_3D 
    133133         DO_2D_00_00 
    134134            iku = mbku(ji,jj)         ! ocean bottom level at u- and v-points  
  • NEMO/trunk/src/OCE/DYN/sshwzv.F90

    r13237 r13286  
    2828   USE bdydyn2d       ! bdy_ssh routine 
    2929#if defined key_agrif 
     30   USE agrif_oce 
    3031   USE agrif_oce_interp 
    3132#endif 
     
    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') 
Note: See TracChangeset for help on using the changeset viewer.