Skip to content

Clarifications on additional diagnostics #73

@blimlim

Description

@blimlim

In addition to the snow variables discussed in #70, there are a few other variables where the data request or calculation are still a bit unclear to me. I'd be keen to look further into some of these if there is time.

We're saving most of the listed variables as grid box means, which are then weighted by the ice fractions when taking the time mean. This seems like the most accurate read of the current data request, which specifies "... divided by grid-cell area." in the description and area: time: mean where sea_ice (mask=siconc) for the cell methods. However this combination has turned out to be a problem in the data request for some other variables: CMIP-Data-Request/Harmonised-Public-Consultation#81 (comment)

sistrxdtop and sistrydtop

Data request description: X(Y)-component of the atmospheric stress on the surface of sea ice divided by grid-cell area.
Cell methods: area: time: mean where sea_ice (mask=siconc)

Notz 2016 lists these as intensive, and doesn't have the "divided by grid-cell area" comment. Possibly these are meant to be per ice-area?

The comment also seems inconsistent with the units specified in the data request (N/m2). I think stress divided by area would instead be N/m4.

sistrxubot and sistryubot

Description: X(Y)-component of the ocean stress on the sea ice bottom divided by grid-cell area.
Cell methods: area: time: mean where sea_ice (mask=siconc)

Notz 2016 lists these as intensive and doesn't have the "divided by grid cell area" comment

siforcetiltx and siforcetilty

Description: X(Y)-component of the force on sea ice caused by sea-surface tilt divided by grid-cell area.
Cell methods: area: time: mean where sea_ice over all_area_types

The data request seems to suggest that this should be extensive and possibly calculated with a plain average. Notz 2016 doesn't have the "divided by grid-cell area" comment and lists it as intensive. The CMIP6 data request instead had area: time: mean where sea_ice (comment: mask=siconc).

For us, we're currently computing a grid cell average, and then weighting it by aice for the time average:

cice5/source/ice_history.F90

Lines 2389 to 2399 in 681a2c6

if (f_siforcetiltx(1:1) /= 'x') then
worka(:,:) = c0
do j = jlo, jhi
do i = ilo, ihi
if (aice(i,j,iblk) > puny) &
! intensive + grid box mean -> weight by aice again
worka(i,j) = aice(i,j,iblk)*strtltx(i,j,iblk)
enddo
enddo
call accum_hist_field(n_siforcetiltx, iblk, worka(:,:), a2D)
endif

It would be good to clarify what is correct for this one.

siforcecoriolx and siforcecorioly

Description: X(Y)-component of the force on sea ice caused by the Coriolis force divided by grid-cell area.
Cell methods: area: time: mean where sea_ice over all_area_types

This seems to suggest it should be extensive. Notz 2016 lists it as intensive.

We are currently treating this as intensive, however may also have a double division by the grid cell area (fm may already be divided by grid cell area):

cice5/source/ice_history.F90

Lines 2413 to 2421 in 681a2c6

if (f_siforcecoriolx(1:1) /= 'x') then
worka(:,:) = c0
do j = jlo, jhi
do i = ilo, ihi
if (aice(i,j,iblk) > puny) &
worka(i,j) = aice(i,j,iblk)*fm(i,j,iblk)*vvel(i,j,iblk)
enddo
enddo
call accum_hist_field(n_siforcecoriolx, iblk, worka(:,:), a2D)

siforceintstrx and siforceintstry

Description: X(Y)-component of the force on sea ice caused by internal stress (divergence of sigma) divided by grid-cell area.
Cell methods: area: time: mean where sea_ice over all_area_types

This seems to suggest it's extensive. Notz 2016 lists it as intensive.

We might be currently calculating the aice weighted time mean of the grid cell average:

cice5/source/ice_history.F90

Lines 2436 to 2446 in 681a2c6

if (f_siforceintstrx(1:1) /= 'x') then
worka(:,:) = c0
do j = jlo, jhi
do i = ilo, ihi
if (aice(i,j,iblk) > puny) &
! intensive + grid box mean -> weight by aice again
worka(i,j) = aice(i,j,iblk)*strintx(i,j,iblk)
enddo
enddo
call accum_hist_field(n_siforceintstrx, iblk, worka(:,:), a2D)
endif

sicompstren

Description: Computed strength of the ice pack, defined as the energy (J m-2) dissipated per unit area removed from the ice pack under compression, and assumed proportional to the change in potential energy caused by ridging. For Hibler-type models, this is P = P* h exp(-C(1-A)) where P* is compressive strength, h is ice thickness, A is compactness and C is strength reduction constant.

Cell methods: area: time: mean where sea_ice (mask=siconc)

Notz 2016 also lists this as intensive.

We might be doing an extra aice weighting, though need to understand the calculation of strength(i,j,iblk) to be sure:

cice5/source/ice_history.F90

Lines 2460 to 2470 in 681a2c6

if (f_sicompstren(1:1) /= 'x') then
worka(:,:) = c0
do j = jlo, jhi
do i = ilo, ihi
if (aice(i,j,iblk) > puny) &
! intensive + grid box mean -> weight by aice again
worka(i,j) = aice(i,j,iblk)*strength(i,j,iblk)
enddo
enddo
call accum_hist_field(n_sicompstren, iblk, worka(:,:), a2D)
endif

sidivvel

Description: Divergence of sea-ice velocity field (first shear strain invariant). Requested as instantaneous value at the center of the month (i.e., first timestep of the 15th day of the month).

Cell methods: area: mean where sea_ice (mask=siconc) time: point

I don't think we have and implementation for saving mid-month snapshots

sipr

Not too crucial for us as we don't save it for ESM1.6
Description: Mass of liquid precipitation falling onto sea ice divided by grid-cell area. If the rain is directly put into the ocean, it should not be counted towards sipr. Always positive or zero.

Cell methods: area: time: mean where sea_ice (mask=siconc)

siflswutop

Just want to double check some of the units in the calculation, but pretty low priority as we can't save it anyway

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions