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.
#2713 (Restoring restartability of WED025 and ISOMIP+ with the current trunk and nn_hls=1) – NEMO

Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#2713 closed Bug (fixed)

Restoring restartability of WED025 and ISOMIP+ with the current trunk and nn_hls=1

Reported by: acc Owned by: acc
Priority: low Milestone:
Component: MULTIPLE Version: trunk
Severity: minor Keywords: ISF,
Cc:

Description

Context

The restartability and reproducibility of 4.2_RC (current trunk) was broken by changes a r15084

Analysis

Adding an lbc_lnk on pqfwf in isfcav.F90 fixes the issue and can be justified thus:

pqfwf is set everywhere in a call to isfcav_mlt but the SETTE tests use:

        cn_gammablk = 'vel'     ! scheme to compute gammat/s (spe,ad15,hj99)

which employs a zustar value based on putbl, pvtbl ! velocity in the losch top boundary layer. These velocities are averaged onto T-points and are not set for i=1 and j=1. Comments in isftbl.F90 are aware of this:

         DO_2D( nn_hls-1, nn_hls, nn_hls, nn_hls )
            pvarout(ji,jj) = 0.5_wp * (zvarout(ji,jj) + zvarout(ji-1,jj))
         END_2D
         ! lbclnk not needed as a final communication is done after the computation of fwf
.
.
         DO_2D( nn_hls, nn_hls, nn_hls-1, nn_hls )
            pvarout(ji,jj) = 0.5_wp * (zvarout(ji,jj) + zvarout(ji,jj-1))
         END_2D
         ! lbclnk not needed as a final communication is done after the computation of fwf

But presumably the 'final communication' has subsequently been removed and needs to be reinstated. Running with:

      cn_gammablk = 'spe'

which uses a constant, specified exchange coefficient, is restartable and reproducible without the lbc_lnk thus proving that the gammats_vel is responsible. Exchanging pqfwf fixes the issue with one exchange but it may be more robust to exchange both zutbl and zvtbl at source in isftbl.F90. I will commit the former for now.

Recommendation

  • isfcav.F90

     
    169169         ! set temperature content 
    170170         ptsc(ji,jj,jp_tem) = zqh(ji,jj) * r1_rho0_rcp 
    171171      END_2D 
     172      CALL lbc_lnk( 'isfmlt', pqfwf, 'T', 1.0_wp) 
    172173      ! 
    173174      ! output fluxes 
    174175      CALL isf_diags_flx( Kmm, misfkt_cav, misfkb_cav, rhisf_tbl_cav, rfrac_tbl_cav, 'cav', pqfwf, zqoce, zqlat, zqhc) 

Commit History (1)

ChangesetAuthorTimeChangeLog
15143acc2021-07-26T16:17:37+02:00

#2713. Add lbc_lnk on pqfwf in isfcav.F90 to restore restartability and reproducibility for WED025 and ISOMIP+ (for nn_hls=1, at least). This fixes ticket #2713

Change History (3)

comment:1 Changed 3 years ago by acc

In 15143:

Error: Failed to load processor CommitTicketReference
No macro or processor named 'CommitTicketReference' found

comment:2 Changed 3 years ago by acc

  • Resolution set to fixed
  • Status changed from new to closed

Closed by changeset: 15143

comment:3 Changed 3 years ago by mathiot

Exchanging pqfwf fixes the issue with one exchange but it may be more robust to exchange both zutbl and zvtbl at source in isftbl.F90. I will commit the former for now.

By doing so, you have 2 com (one for utbl and one for vtbl) instead of 1, this was the main thinking when I move the lbclnk all at the end (isfcav). Maybe moving it on zustar will do the job and make it clearer why this call is needed.

It is possible (not tested) this call is not needed if nn_hls == 2.

Note: See TracTickets for help on using tickets.