Opened 3 years ago
Last modified 2 years ago
#2570 new Defect
compatibility between isf and tramle
Reported by: | mathiot | Owned by: | systeam |
---|---|---|---|
Priority: | low | Milestone: | |
Component: | TRA | Version: | v4.0.* |
Severity: | minor | Keywords: | ISF |
Cc: |
Description
Context
After testing eORCA1 with tramle activated and , I found it more instable. By looking at the code, I am not convinced at all, tramle.F90 is compatible with ice shelf cavities.
Analysis
- nlb10 is computed like this:
! ! deepest/shallowest W level Above/Below ~10m !!gm BUG in s-coordinate this does not work! zrefdep = 10._wp - 0.1_wp * MINVAL( e3w_1d ) ! ref. depth with tolerance (10% of minimum layer thickness) nlb10 = MINLOC( gdepw_1d, mask = gdepw_1d > zrefdep, dim = 1 ) ! shallowest W level Below ~10m nla10 = nlb10 - 1 ! deepest W level Above ~10m !!gm end bug
- With this definition of nla10, this definition of mld used for MLE under an ice shelf does not make sense to me (because rhop(ji,jj,nla10) is on land):
! !== MLD used for MLE ==! ! ! compute from the 10m density to deal with the diurnal cycle inml_mle(:,:) = mbkt(:,:) + 1 ! init. to number of ocean w-level (T-level + 1) IF ( nla10 > 0 ) THEN ! avoid case where first level is thicker than 10m DO jk = jpkm1, nlb10, -1 ! from the bottom to nlb10 (10m) DO jj = 1, jpj DO ji = 1, jpi ! index of the w-level at the ML based IF( rhop(ji,jj,jk) > rhop(ji,jj,nla10) + rn_rho_c_mle ) inml_mle(ji,jj) = jk ! Mixed layer END DO END DO END DO ENDIF ikmax = MIN( MAXVAL( inml_mle(:,:) ), jpkm1 ) ! max level of the computation
- Based on the name of the variables, I am not sure if the masking is right, should it be uwmask instead of umask ?
zpsi_uw(ji,jj,jk) = zpsim_u(ji,jj) * zmuw * umask(ji,jj,jk) zpsi_vw(ji,jj,jk) = zpsim_v(ji,jj) * zmvw * vmask(ji,jj,jk)
- There is also some gdepw here and there in tramle, are they adapted under an isf (with respect to the definition of the mld under an isf) ?.
- it affects NEMO4 and trunk
Recommendation
- advices are needed from someone who know this part of code.
- as a temporary fix before it is fixed, probably this should do the job: multiply zpsi_u/vw by u/vmask(:,:,1) should do the trick to set it to 0 inside a cavity.
Commit History (2)
Changeset | Author | Time | ChangeLog |
---|---|---|---|
14211 | mathiot | 2020-12-18T11:04:16+01:00 | ticket #2570: switch off tramle under isf until tramle is compatible with isf cavities (SETTE results unchanged) |
14210 | mathiot | 2020-12-18T11:03:04+01:00 | ticket #2570: switch off tramle under isf until tramle is compatible with isf cavities (SETTE results unchanged) |
Change History (3)
comment:1 Changed 2 years ago by nemo
- Version changed from v4.0 to v4.0.*
comment:2 Changed 2 years ago by mathiot
comment:3 Changed 2 years ago by mathiot
In 14211:
Note: See
TracTickets for help on using
tickets.
In 14210: