Opened 2 years ago
Last modified 21 months ago
#2737 assigned Defect
mass of the ice+ocean system depends on the init of ice
Reported by: | clem | Owned by: | systeam |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | SI3 | Version: | v4.0.* |
Severity: | minor | Keywords: | |
Cc: |
Description
Analysis
The mass of the "ocean + ice" system depends on the initialization of the ice cover. I think it should not. For instance, a simulation initialized with 1m of ice contains less mass than a simulation initialized with 2m of ice. This solely concerns levitating sea ice (the default). For embedded sea ice, ssh is depleted below the ice cover.
This dependency problem has already been raised in ticket #2487 but not yet adressed.
Recommendation
For embedded sea ice, the ssh is depleted below the ice cover so that the mass of the "ocean+ice" system does not depend on the ice initialization.
I propose to do similar thing for levitating sea ice, except that the depletion is spread over the whole basin (including ice shelves). Here is the new piece of code I adapted from Simon to be added in iceistate.F90 (note that a special treatment for agrif is necessary):
IF( ln_ice_embd ) THEN ! embedded sea-ice: deplete the initial ssh below sea-ice area ! ! ---------------- ssh(:,:,Kmm) = ssh(:,:,Kmm) - snwice_mass(:,:) * r1_rho0 ssh(:,:,Kbb) = ssh(:,:,Kbb) - snwice_mass(:,:) * r1_rho0 ! ELSE ! levitating sea-ice: deplete the initial ssh over the whole domain ! ! ------------------ area = glob_sum( 'iceistate', e1e2t(:,:) * ssmask(:,:) ) zsshadj = glob_sum( 'iceistate', snwice_mass(:,:) * r1_rho0 * e1e2t(:,:) ) / area #if defined key_agrif ! Override ssh adjustment in nested domains by the root-domain ssh adjustment; ! store the adjustment value in a global module variable to make it retrievable in nested domains IF( .NOT.Agrif_Root() ) THEN zsshadj = Agrif_Parent(rsshadj) ELSE rsshadj = zsshadj ENDIF #endif IF(lwp) WRITE(numout,'(A23,F10.6,A20)') ' sea level adjusted by ', -zsshadj, ' m to compensate for' IF(lwp) WRITE(numout,*) ' the initial snow+ice mass' ! WHERE( ssmask(:,:) == 1._wp ) ssh(:,:,Kmm) = ssh(:,:,Kmm) - zsshadj ssh(:,:,Kbb) = ssh(:,:,Kbb) - zsshadj ENDWHERE ! ENDIF
This change at the init makes the ssh to drop globally of about 10cm, but simulations with and without are very similar, though I do not have a simulation with open ice shelf cavities to test it. Of course, sette tests are fine.
I think it needs to be implemented in both 4.0-HEAD and the trunk but I need the agreement of the system team before moving forward
Commit History (3)
Changeset | Author | Time | ChangeLog |
---|---|---|---|
15503 | jchanut | 2021-11-15T10:15:37+01:00 | #2737, correct ssh adjustment induced by sea-ice in case of interpolation from parent (set it to 0) |
15496 | clem | 2021-11-11T13:02:37+01:00 | trunk: solve ticket #2737. The ssh is now adjusted to the init of sea ice, hence the total oce+ice mass remains unchanged across simulations. This applies to both levitating and embedded sea ice. Therefore, results from the configurations with sea ice are changed |
15495 | clem | 2021-11-10T17:18:22+01:00 | 4.0-HEAD: solve ticket #2737. The ssh is now adjusted to the init of sea ice, hence the total oce+ice mass remains unchanged across simulations. This applies to both levitating and embedded sea ice. Therefore, results from the configurations with sea ice are changed |
Change History (5)
comment:1 Changed 2 years ago by clem
comment:2 Changed 23 months ago by clem
In 15495:
comment:3 Changed 23 months ago by clem
In 15496:
comment:4 Changed 23 months ago by jchanut
In 15503:
comment:5 Changed 21 months ago by nemo
- Owner set to systeam
- Status changed from new to assigned
Also in the trunk, the vertical scale factors are not correctly adjusted when changing ssh in iceistate.
One should change that line:
by