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 15564 for NEMO/releases – NEMO

Changeset 15564 for NEMO/releases


Ignore:
Timestamp:
2021-12-01T17:35:59+01:00 (3 years ago)
Author:
jchanut
Message:

#2751, fixes small constancy preservation issue with AGRIF

Location:
NEMO/releases/r4.0/r4.0-HEAD/src/NST
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/releases/r4.0/r4.0-HEAD/src/NST/agrif_oce_update.F90

    r10068 r15564  
    404404      !! 
    405405      INTEGER :: ji,jj,jk,jn 
    406       REAL(wp) :: ztb, ztnu, ztno 
     406      REAL(wp) :: ze3b, ztb, ztnu, ztno 
    407407      !!--------------------------------------------- 
    408408      ! 
     
    434434                     DO ji = i1, i2 
    435435                        IF( tabres(ji,jj,jk,jn) /= 0._wp ) THEN 
    436                            ztb  = tsb(ji,jj,jk,jn) * e3t_b(ji,jj,jk) ! fse3t_b prior update should be used 
     436                           ze3b = e3t_b(ji,jj,jk) & ! Recover e3t_b before update 
     437                                & - rn_atfp * ( e3t_n(ji,jj,jk) - e3t_a(ji,jj,jk) ) 
     438                           ztb  = tsb(ji,jj,jk,jn) * ze3b  
    437439                           ztnu = tabres(ji,jj,jk,jn) 
    438440                           ztno = tsn(ji,jj,jk,jn) * e3t_a(ji,jj,jk) 
     
    573575      ! 
    574576      INTEGER  :: ji, jj, jk 
    575       REAL(wp) :: zrhoy, zub, zunu, zuno 
     577      REAL(wp) :: zrhoy, ze3b, zub, zunu, zuno 
    576578      !!--------------------------------------------- 
    577579      !  
     
    588590                  ! 
    589591                  IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN ! Add asselin part 
    590                      zub  = ub(ji,jj,jk) * e3u_b(ji,jj,jk)  ! fse3t_b prior update should be used 
     592                     ze3b = e3u_b(ji,jj,jk) & ! Recover e3u_b before update 
     593                          & - rn_atfp * ( e3u_n(ji,jj,jk) - e3u_a(ji,jj,jk) ) 
     594                     zub  = ub(ji,jj,jk) * ze3b  
    591595                     zuno = un(ji,jj,jk) * e3u_a(ji,jj,jk) 
    592596                     zunu = tabres(ji,jj,jk,1) 
     
    759763      ! 
    760764      INTEGER  :: ji, jj, jk 
    761       REAL(wp) :: zrhox, zvb, zvnu, zvno 
     765      REAL(wp) :: zrhox, ze3b, zvb, zvnu, zvno 
    762766      !!---------------------------------------------       
    763767      ! 
     
    778782                  ! 
    779783                  IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN ! Add asselin part 
    780                      zvb  = vb(ji,jj,jk) * e3v_b(ji,jj,jk) ! fse3t_b prior update should be used 
     784                     ze3b = e3v_b(ji,jj,jk) & ! Recover e3v_b before update 
     785                          & - rn_atfp * ( e3v_n(ji,jj,jk) - e3v_a(ji,jj,jk) ) 
     786                     zvb  = vb(ji,jj,jk) * ze3b  
    781787                     zvno = vn(ji,jj,jk) * e3v_a(ji,jj,jk) 
    782788                     zvnu = tabres(ji,jj,jk,1) 
  • NEMO/releases/r4.0/r4.0-HEAD/src/NST/agrif_top_update.F90

    r11078 r15564  
    173173      !! 
    174174      INTEGER :: ji,jj,jk,jn 
    175       REAL(wp) :: ztb, ztnu, ztno 
     175      REAL(wp) :: ztb, ze3b, ztnu, ztno 
    176176      !!---------------------------------------------------------------------- 
    177177      ! 
     
    204204                     DO ji=i1,i2 
    205205                        IF( tabres(ji,jj,jk,jn) .NE. 0. ) THEN 
    206                            ztb  = trb(ji,jj,jk,jn) * e3t_b(ji,jj,jk) ! fse3t_b prior update should be used 
     206 
     207                           ze3b = e3t_b(ji,jj,jk) & ! Recover e3t_b before update 
     208                                & - rn_atfp * ( e3t_n(ji,jj,jk) - e3t_a(ji,jj,jk) ) 
     209                           ztb  = trb(ji,jj,jk,jn) * ze3b  
    207210                           ztnu = tabres(ji,jj,jk,jn) 
    208211                           ztno = trn(ji,jj,jk,jn) * e3t_a(ji,jj,jk) 
Note: See TracChangeset for help on using the changeset viewer.