Update to CMIP7 diagnostics#35
Conversation
blimlim
left a comment
There was a problem hiding this comment.
It seems like there are a few places where there are issues with the units. The different weightings and units always confuse me when I try and dig through the cice code though, and so my questions might not be relevant.
Co-authored-by: Spencer Wong <88933912+blimlim@users.noreply.github.com>
…_ice_free_points, sndmassdyn, fixe some time weigthings
5cd5e53 to
e26beb9
Compare
Co-authored-by: Spencer Wong <88933912+blimlim@users.noreply.github.com>
Co-authored-by: Spencer Wong <88933912+blimlim@users.noreply.github.com>
|
Hi @anton-seaice _"So sisnmass, sisndmasssi, sisndmasssubl, sisndmasssnf, sisndmassmelt, sisndmassdyn All need an "extra" aice weighting ? (as they are intensive averages of grid cell quantities_?)_" We are going round in circles, glad we have @bimlim giving fresh eyes on this, and the interpretation of what Notz et al meant, and what the current SIMIP/CMIP7 descriptions are saying. I did see Chloe in the canteen last week she helped write the CMIP7 data request, (she led our CMIP6 data processing and built APP4) she did say though that she was full on the CMIP7 international side and was staying away from any of local CMIP7 diagnostics. I don't think this diagnostic code is going to lead to many extra change in Manodeep's optimization, same as the stash request that Martin mentioned this morning, its mostly one or two subroutines. |
There was a problem hiding this comment.
Thanks @anton-seaice for adding these latest changes and for bearing with my incessant questions and comments! I like the addition of the the _intensive variables, it's a good way to cover all bases until (if?) we can get more clarification about the data request.
I've added a few more comments and questions, mostly smaller clarifications for comments, error messages and typos.
I've put together a list of variables I still find confusing, and would be keen to investigate further probably in a separate/future issue. These are mainly the remaining intensive+grid box mean variables, but I don't think they need to be changed here, as it seems like the most accurate read of the data request.
- sistrxdtop
- sistrydtop
- sistrxubot
- sistryubot
- siforcetiltx
- siforcetilty
- siforcecoriolx
- siforcecorioly
- siforceintstrx
- siforceintstry
- sicompstren
- sidivvel
- siflfwdrain
- siflsaltbot
- siflfwbot
- sipr
- siflswutop (a bit confused about units)
- sisnthick
| if ( f_sifllwdtop /= 'x' ) call abort_ice("f_sifllwdtop not available, set to 'x'") | ||
| if ( f_sifllwutop /= 'x' ) call abort_ice("f_sifllwutop not available, set to 'x'") | ||
| if ( f_siflswdtop /= 'x' ) call abort_ice("f_siflswdtop not available, set to 'x'") | ||
| if ( f_siflswutop /= 'x' ) call abort_ice("f_siflswutop not available, set to 'x'") |
There was a problem hiding this comment.
f_flwup_ai, fsens_ai, f_flwdn, f_fswdn, and f_fswup all use (at least in part) the same data as the above variables. Should they be added to this list of unavailable diagnostics?
There was a problem hiding this comment.
This is a bit of scope creep, can we make an issue for this ?
|
There is a new set of example output in /g/data/tm70/as2285/experiments/esm1.6-cmip7_vars-2025.11.11 The sign of the mass flux terms seems better now e.g. ( monthly_ds.sidmassgrowthwat |
Co-authored-by: Spencer Wong <88933912+blimlim@users.noreply.github.com>
|
I will have a look at your latest outputs @anton-seaice, sorry for disappearing from yesterdays meeting, traced it to the broadband going down in our locality. Had a USB to get back on after my system restart took 10 minutes. I saw you were doubling up on snow stats yesterday, I will look at whats in this version of the output. |
blimlim
left a comment
There was a problem hiding this comment.
@anton-seaice, just adding a few small comments and bumping a couple of old ones. Otherwise I think everything is looking good
| if (aice(i,j,iblk) > 2e-4) & | ||
| snowfrac(i,j,iblk) = c1 - exp(-p2*rhos*(vsno(i,j,iblk) / aice(i,j,iblk))) | ||
| else | ||
| snowfrac(i,j,iblk) = snowfrac(i,j,iblk) & ! for history | ||
| + snowfracn(i,j,n,iblk)*aicen(i,j,n,iblk) | ||
| endif |
There was a problem hiding this comment.
@anton-seaice what are your thoughts on this one. In the ( .not. tr_pond .and. .not. calc_Tsfc ) case, I'm guessing snowfrac would be a fraction of the ice as the calculation is using the actual snow hight?
The diagnostics treat it as a grid cell fraction:
Lines 520 to 522 in 2e8071f
Lines 2202 to 2204 in 2e8071f
Though we might need to be careful with sisnthick
Lines 2206 to 2212 in 2e8071f
| 'put att cell methods time mean '//avail_hist_fields(n)%vname) | ||
| else | ||
| if (TRIM(avail_hist_fields(n)%vname(1:2))/='si') then !native diags | ||
| call check(nf90_put_att(ncid,varid,'cell_methods','time: mean'), & |
There was a problem hiding this comment.
@anton-seaice should I defer this to a separate issue?
| if (snowfrac(i,j,iblk) > puny) then | ||
| ! intensive + ice area mean -> calculate grid box mean | ||
| worka(i,j) = vsno(i,j,iblk) / snowfrac(i,j,iblk) | ||
| endif |
There was a problem hiding this comment.
Yeah, that sounds ok to me! I might add this one to the list of variables I still am a bit confused about
source/ice_history.F90
Outdated
| call define_hist_field(n_snow_ai,"sndmasssnf","kg m^-2 s^-1",tstr2D, tcstr, & | ||
| "Snow Mass Change Through Snowfall", & | ||
| "none", c1, c0, & | ||
| ns1, f_sndmasssnf, avg_ice_present=.true., mask_ice_free_points=.true.) | ||
| "per unit grid cell area", c1, c0, & | ||
| ns1, f_sndmasssnf) | ||
|
|
||
| call define_hist_field(n_sndmasssnf,"sisndmasssnf","kg m^-2 s^-1",tstr2D, tcstr, & | ||
| call define_hist_field(n_snow_ai,"sisndmasssnf","kg m^-2 s^-1",tstr2D, tcstr, & |
Co-authored-by: Spencer Wong <88933912+blimlim@users.noreply.github.com>
Co-authored-by: Spencer Wong <88933912+blimlim@users.noreply.github.com>
|
Hi @bimlim @anton-seaice on snow fraction issues. I hadnt realised you has picked up the UM/JULES snow frac formula but its as good as the ponds or CICE radiation ones and its consistent with the UM. you are correct about it being trick in the snow thickness calculation that was the first place I realised that we didnt have a snow frac flowing through to ice_history correctly in one of older set ups. Leaving both the intensive and the non weighted set up for the other snow variables for now is OK until their is a clarification, I note they have written a few extra words in their descriptions from their original wording on CMIP7 site so they may be continually be updating them after queries. I have rechecked most of the recent variables in your output and followed most of your discussion. |
anton-seaice
left a comment
There was a problem hiding this comment.
I cannot find where the comment about snowfrac is to respond
I disabled sisnconc and sisnthick within #ifdef ACCESS in the end because it doesn't representative anything prognostic in cice (e.g. the snow concentration is only used in the UM for flux calculations ?)
| 'put att cell methods time mean '//avail_hist_fields(n)%vname) | ||
| else | ||
| if (TRIM(avail_hist_fields(n)%vname(1:2))/='si') then !native diags | ||
| call check(nf90_put_att(ncid,varid,'cell_methods','time: mean'), & |
There was a problem hiding this comment.
'area: mean where sea time: mean' is ok for sice - so fine to ignore I think?
blimlim
left a comment
There was a problem hiding this comment.
Just two tiny things but otherwise I think it all looks good!
| ns1, f_sidmassmeltlat) | ||
|
|
||
| call define_hist_field(n_snow_ai,"sndmasssnf","kg m^-2 s^-1",tstr2D, tcstr, & | ||
| call define_hist_field(n_sndmasssnf,"sndmasssnf","kg m^-2 s^-1",tstr2D, tcstr, & |
There was a problem hiding this comment.
I think n_sndmasssnf now just needs to be added to the accum_hist_field call
There was a problem hiding this comment.
I am glad someone is paying attention !
| 'put att cell methods time mean '//avail_hist_fields(n)%vname) | ||
| else | ||
| if (TRIM(avail_hist_fields(n)%vname(1:2))/='si') then !native diags | ||
| call check(nf90_put_att(ncid,varid,'cell_methods','time: mean'), & |
There was a problem hiding this comment.
Yeah good to leave as is!
Co-authored-by: Spencer Wong <88933912+blimlim@users.noreply.github.com>
blimlim
left a comment
There was a problem hiding this comment.
Thanks @anton-seaice, the changes are looking good to me!
These are some fixes to CMIP diagnostics. They need reviewing in conjunction with output, however this is progress.
I will check this as part of #30