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 11319 for NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/src – NEMO

Ignore:
Timestamp:
2019-07-22T12:27:25+02:00 (5 years ago)
Author:
girrmann
Message:

dev_r10984_HPC-13 : bugfix for ENT scheme, see #2285

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/src/OCE/DYN/dynspg_ts.F90

    r11265 r11319  
    250250      zhV(:,:) = vn_b(:,:) * hv_n(:,:) * e1v(:,:)        ! NB: FULL domain : put a value in last row and column 
    251251      ! 
    252       CALL dyn_cor_2d( ht_n, hu_n, hv_n, un_b, vn_b, zhU, zhV,  &   ! <<== in 
    253          &                                     zu_trd, zv_trd   )   ! ==>> out 
     252      CALL dyn_cor_2d( hu_n, hv_n, un_b, vn_b, zhU, zhV,  &   ! <<== in 
     253         &                               zu_trd, zv_trd   )   ! ==>> out 
    254254      ! 
    255255      IF( .NOT.ln_linssh ) THEN                 !* surface pressure gradient   (variable volume only) 
     
    468468               END DO 
    469469            END DO 
    470             DO jj = 1, jpj        ! not jpj-row 
    471                DO ji = 1, jpim1 
     470            DO jj = 1, jpjm1        ! not jpj-row 
     471               DO ji = 1, jpi 
    472472                  zhvp2_e(ji,jj) = hv_0(ji,jj) + r1_2 * r1_e1e2v(ji,jj)                        & 
    473473                       &                              * (  e1e2t(ji,jj  ) * zsshp2_e(ji,jj  )  & 
     
    595595         ! at each time step. We however keep them constant here for optimization. 
    596596         ! Recall that zhU and zhV hold fluxes at jn+0.5 (extrapolated not backward interpolated) 
    597          CALL dyn_cor_2d( zhtp2_e, zhup2_e, zhvp2_e, ua_e, va_e, zhU, zhV,    zu_trd, zv_trd   ) 
     597         CALL dyn_cor_2d( zhup2_e, zhvp2_e, ua_e, va_e, zhU, zhV,    zu_trd, zv_trd   ) 
    598598         ! 
    599599         ! Add tidal astronomical forcing if defined 
     
    12371237 
    12381238 
    1239    SUBROUTINE dyn_cor_2d( ht_n, hu_n, hv_n, un_b, vn_b, zhU, zhV,    zu_trd, zv_trd   ) 
     1239   SUBROUTINE dyn_cor_2d( hu_n, hv_n, un_b, vn_b, zhU, zhV,    zu_trd, zv_trd   ) 
    12401240      !!--------------------------------------------------------------------- 
    12411241      !!                   ***  ROUTINE dyn_cor_2d  *** 
     
    12431243      !! ** Purpose : Compute u and v coriolis trends 
    12441244      !!---------------------------------------------------------------------- 
    1245       INTEGER  ::   ji ,jj               ! dummy loop indices 
    1246       REAL(wp) ::   zx1, zx2, zy1, zy2   !   -      - 
    1247       REAL(wp), DIMENSION(jpi,jpj), INTENT(in   ) :: ht_n, hu_n, hv_n, un_b, vn_b, zhU, zhV 
     1245      INTEGER  ::   ji ,jj                             ! dummy loop indices 
     1246      REAL(wp) ::   zx1, zx2, zy1, zy2, z1_hu, z1_hv   !   -      - 
     1247      REAL(wp), DIMENSION(jpi,jpj), INTENT(in   ) :: hu_n, hv_n, un_b, vn_b, zhU, zhV 
    12481248      REAL(wp), DIMENSION(jpi,jpj), INTENT(  out) :: zu_trd, zv_trd 
    12491249      !!---------------------------------------------------------------------- 
     
    12521252         DO jj = 2, jpjm1 
    12531253            DO ji = 2, jpim1 
    1254                zu_trd(ji,jj) = + r1_4 * r1_e1e2u(ji,jj) * r1_hu_n(ji,jj)                    & 
     1254               z1_hu = ssumask(ji,jj) / ( hu_n(ji,jj) + 1._wp - ssumask(ji,jj) ) 
     1255               z1_hv = ssvmask(ji,jj) / ( hv_n(ji,jj) + 1._wp - ssvmask(ji,jj) ) 
     1256               zu_trd(ji,jj) = + r1_4 * r1_e1e2u(ji,jj) * z1_hu                    & 
    12551257                  &               * (  e1e2t(ji+1,jj)*ht_n(ji+1,jj)*ff_t(ji+1,jj) * ( vn_b(ji+1,jj) + vn_b(ji+1,jj-1) )   & 
    12561258                  &                  + e1e2t(ji  ,jj)*ht_n(ji  ,jj)*ff_t(ji  ,jj) * ( vn_b(ji  ,jj) + vn_b(ji  ,jj-1) )   ) 
    12571259                  ! 
    1258                zv_trd(ji,jj) = - r1_4 * r1_e1e2v(ji,jj) * r1_hv_n(ji,jj)                    & 
     1260               zv_trd(ji,jj) = - r1_4 * r1_e1e2v(ji,jj) * z1_hv                    & 
    12591261                  &               * (  e1e2t(ji,jj+1)*ht_n(ji,jj+1)*ff_t(ji,jj+1) * ( un_b(ji,jj+1) + un_b(ji-1,jj+1) )   &  
    12601262                  &                  + e1e2t(ji,jj  )*ht_n(ji,jj  )*ff_t(ji,jj  ) * ( un_b(ji,jj  ) + un_b(ji-1,jj  ) )   )  
Note: See TracChangeset for help on using the changeset viewer.