-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cice config #17
Cice config #17
Conversation
3d0971d
to
f915402
Compare
@aekiss Can you review? |
Great, thanks @anton-seaice I'll hopefully have a chance to look at this on Thursday. |
Here's a table comparing this PR to ACCESS-OM2 and the current MOM6-CICE6 settings. Differences are in bold. |
Thanks - at some point we might want to figure out how to add a notes column to the table? (And ideally the default values too!) |
@anton-seaice, how come there are there are lots of variables in your namelist that are different to both ACCESS-OM2 and the current MOM6-CICE6? |
Noting I deleted all the lines where we use the default value, other differences are:
Did you have specific examples? |
Possibly most of what I was looking at is due to default stuff being removed. But yes, the |
There are a few items defined in both ice_in and nuopc.runconfig which is confusing at best:
I will turn off the writing initial conditions again, and set I thought / assumed all the output fields were not saved by default. By there is a whole list here: https://github.com/CICE-Consortium/CICE/blob/4450a3e8c64bc07d1173eb3e341cd8dea91d5068/cicecore/cicedyn/analysis/ice_history_shared.F90#L202 which are saved monthly by default, which I will need to work through to set to match the OM2 config. |
I have gone through and fixed this to correct for the icefields which are on by default. Here are the CICE log extracts which list the output fields - based on the latest commit (76b2c60). om2_ryf_example.log The only substantive difference is |
@aekiss Have you been able to have a look? |
block_size_x = 20 | ||
block_size_y = 16 | ||
distribution_type = "sectrobin" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd prefer to keep these to make it explicit, as we'll be tuning them
distribution_type = "sectrobin"
distribution_wght = "blockall"
ns_boundary_type = "tripole" | ||
nx_global = 360 | ||
ny_global = 300 | ||
processor_shape = "square-ice" | ||
processor_shape = "slenderX2" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
processor_shape = "slenderX2" | |
processor_shape = "slenderX1" |
to match access-om2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With the block size and nx/ny settings here, we have 18 blocks in the x direction and 19 in the y direction.
With slenderX1, this gives 19 blocks per processor but only 18 processors would be used. With slenderX2 we get 9/10 blocks per processor and 36 processors used.
Now that I write this, maybe we should change the block_size_x to 16 and block_size_y to 15 with slenderX2 as this gives still 10 blocks per processor but they are slightly smaller and all 48 processors are actually used.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh. processor_shape
only matters if we set distribution_type="cartesian"
so I set
Distribution type = cartesian
Distribution weight = latitude
to match OM2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok it doesn't matter a lot at this stage as the core count will probably change
ice_in
Outdated
coriolis = "latitude" | ||
cstar = 20.0d0 | ||
e_plasticpot = 2.0 | ||
e_yieldcurve = 2.0 | ||
k1 = 8.0d0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
k1 = 8.0d0 |
suggest using default landfast parameterisation here until we have a reason to change
ice_in
Outdated
rotate_wind = .true. | ||
saltflux_option = "prognostic" | ||
tfrz_option = "mushy" | ||
tfrz_option = "linear_salt" | ||
update_ocn_f = .true. | ||
ustar_min = 0.005 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's use
ustar_min = 0.005 | |
ustar_min = 0.0005 |
for now to match access-om2. This is also used in https://github.com/CICE-Consortium/CICE/blob/b14cedfaed8b81500fc5422cfc44b6d80e5893ef/configuration/scripts/ice_in#L253. Also see https://bb.cgd.ucar.edu/cesm/threads/ustar_min-default-documentation.9059/
ice_in
Outdated
albsnowv = 0.98 | ||
dt_mlt = 1.50 | ||
dt_mlt = 1.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dt_mlt = 1.0 | |
dt_mlt = 1.0 | |
dalb_mlt = -0.02 |
to match access-om2 since this isn't the default
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If would be nice if we can figure out the history / justification for these. It looks like in earlier "AusCOM" definitions dt_mlt meant
change in temp to give dalb_mlt albedo change" (which is hardcoded to 1 now)
but now it means :
change in temp for non-melt to melt snow grain radius change (C)
And looks like its only used for shortwave=dedd (we use default shortwave=ccsm3)
I guess dalb_mlt could have been set to reflect Antarctic vs Arctic differences? (although possibly surprising to not also set dalb_mltv dalb_mlti)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks like dalb_mlt was added to the namelist for AusCOM and is not configurable by default. (https://github.com/COSIMA/cice5/blob/edcfa6f9c76ed05b63196ce4b5355fa5a8f4fe3a/source/ice_init.F90#L178)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks to me like AusCOM used dalb_mlt
, but subsequently the same name was used in an update to cice to mean something else
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok let's omit both dt_mlt
and dalb_mlt
ice_in
Outdated
sw_dtemp = 0.01d0 | ||
sw_frac = 1.0d0 | ||
sw_redist = .true. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
these three seem to be for a new feature in cice6 - so should we set
sw_redist = .false.
for now to match access-om2?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
actually, that's the default, so all 3 could be deleted, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah - I get this warning with it set to false:
(input_data) WARNING: ktherm = 1 and sw_redist = F
(input_data) WARNING: For consistency, set sw_redist = .true.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks like it used to be on by default for BL99, so sw_redist=.true.
would be correct to be consistent with OM2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok how about we set
sw_redist = .true.
and leave the others as default values
OK I've looked through everything, apart from diagnostics (which we'll adjust anyway) and BGC (which we can think about later, since CICE6 has significantly improved BGC capabilities). I've noted just a few things to change and then it will be ready to merge. |
I've also updated the comparison table |
Thanks @aekiss . I responded to all the comments I think |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks @anton-seaice, happy for you to merge
@aekiss - I don't have write access to this repo! |
Should be fixed now. |
* Copy OM2 CICE Config * updates for icefields which are on by default * address review comments * review comments * review comments
* Copy OM2 CICE Config * updates for icefields which are on by default * address review comments * review comments * review comments
Copy OM2 config across from https://github.com/COSIMA/1deg_jra55_ryf/blob/master/ice/cice_in.nml
Noting