#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
169 169 ! set temperature content 170 170 ptsc(ji,jj,jp_tem) = zqh(ji,jj) * r1_rho0_rcp 171 171 END_2D 172 CALL lbc_lnk( 'isfmlt', pqfwf, 'T', 1.0_wp) 172 173 ! 173 174 ! output fluxes 174 175 CALL isf_diags_flx( Kmm, misfkt_cav, misfkb_cav, rhisf_tbl_cav, rfrac_tbl_cav, 'cav', pqfwf, zqoce, zqlat, zqhc)
Commit History (1)
Changeset | Author | Time | ChangeLog |
---|---|---|---|
15143 | acc | 2021-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
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.
In 15143: