ESMCI / ccs_config_cesm

CESM CIME Case Control System configuration files
3 stars 44 forks source link

Naming convention for grid aliases #70

Open ekluzek opened 1 year ago

ekluzek commented 1 year ago

We talked about this at the Nov/15/2022 CSEG meeting. We agreed on a few things to put into practice for a naming convention of grid aliases.

Examples:

Some of the the things we said in the 11/15 meeting were:

Grid for mizuRoute with lakes
Erik - I need to distinguish the grid for mizuRoute when lakes are active with not. So plan to have a grid alias like: f09_f09_mg17_rHDMA-lake.

Jim would prefer if this alias were shorter.

Mike suggests _rH and _rHl or something like that
Cheryl likes this, too; prefers not having a dash
Where should the mask go in the alias? Note this is currently inconsistent between runoff vs glacier aliases. Feeling is we should be consistent, and probably have the mask at the end. That would also be consistent with the ordering in long names.
ekluzek commented 1 year ago

In ccs_config_cesm0.0.38 we have 183 aliases. From above the following 61 grid aliases follow the convention for atm/lnd grids:

C192_C192_mg17 C24_C24_mg17 C384_C384_mg17 C48_C48_mg17 C96_C96_mg17 C96_C96_mt061 f02_f02_mg16 f02_f02_mg17 05_f05_mg17 f09_f09_mg16 f09_f09_mg17 f09_f09_mnull f10_f10_ais8gris4_mg37 f10_f10_ais8_mg37 f10_f10_mg37 f10_f10_musgs f19_f19_mg16 f19_f19_mg17 f19_f19_mnull f25_f25_mg16 f25_f25_mg17 f45_f45_mg37 hcru_hcru_mt13 mpasa3p75_mpasa3p75_mg17 mpasa7p5_mpasa7p5_mg17 ne0ARCTICGRISne30x8_ne0ARCTICGRISne30x8_mt12 ne0ARCTICne30x4_ne0ARCTICne30x4_mt12 ne0CONUSne30x8_ne0CONUSne30x8_mg17 ne0CONUSne30x8_ne0CONUSne30x8_mt12 ne0TESTONLYne5x4_ne0TESTONLYne5x4_mg37 ne120_ne120_mg16 ne120_ne120_mg17 ne120pg2_ne120pg2_mg17 ne120pg2_ne120pg2_mt12 ne120pg3_ne120pg3_mg17 ne120pg3_ne120pg3_mt13 ne120pg4_ne120pg4_mg17 ne16_ne16_mg17 ne16pg3_ne16pg3_mg17 ne30_ne30_mg16 ne30_ne30_mg17 ne30pg2_ne30pg2_mg17 ne30pg3_ne30pg3_mg17 ne30pg4_ne30pg4_mg17 ne5_ne5_mg37 ne5pg2_ne5pg2_mg37 ne5pg3_ne5pg3_mg37 ne5pg4_ne5pg4_mg37 ne60_ne60_mg16 ne60pg2_ne60pg2_mg17 ne60pg3_ne60pg3_mg17 ne60pg4_ne60pg4_mg17 nldas2_rnldas2_mnldas2 T42_T42_mg16 T42_T42_mg17 T5_T5_mg37 T85_T85_mg16 T85_T85_mg17

The following 3 atm/lnd grids have atmosphere running on the ocean grid:

1D_1D g16_g16 g17_g17

List of 11 CLM single point/regional grids that are probably OK:

1x1_brazil 1x1_camdenNJ 1x1_mexicocityMEX 1x1_numaIA 1x1_smallvilleIA 1x1_urbanc_alpha 1x1_vancouverCAN 5x5_amazon 5x5_amazon_r05 5x5_amazon_rHDMA CLM_USRDAT

The WAVE watch grid that's OK:

ww3a

The following 5 are for running with POP and good:

T62_g16 T62_g17 T62_g37 T62_t12 T62_t13

The following 2 are odd grids I'm not sure what to think about:

T62_s11 T62_oQU120 (not used)

Some grids for Paleo work that aren't being used anymore and maybe can be removed? (they should be removed or standardized)

T31_g37 (this is the only being used) T31_g37_gris4 T31_g37_gl4 T31_g37_gris20 T31_g37_gl20

A set of 24 MOM grids:

f09_t061 ne30pg3_t061 C96_t025 C384_t025 TL319_g17 TL319_g17 TL319_t061 TL319_t12 TL319_t13 TL319_t13 TL639_g17 TL639_t061 T62_t061 T62_t025 T62_n0253 TL319_g17_wg17 TL319_t061_wt061 T62_t061_wt061 T62_g17_wg17 f09_n0253 f02_n0253 T62_n13 f02_n13 f09_n13

A set of 4 tri-grid grids to standardize: (these are no longer being used)

ne30_f19_g16 ne30_f19_g17 ne30_f09_g16 ne30_f09_g17

By above convention they should be:

ne30_ne30_lf19_mg16 ne30_ne30_lf19_mg17 ne30_ne30_lf09_mg16 ne30_ne30_lf09_mg17

A set of 10 atm-lnd cases that should be standardized or removed: (they are not used)

ne15_g17 ne60_g17 f05_g16 f02_t12 ne120_t12 ne240_f02_g16 ne240_f02_g17 f05_t12 ne120_t12 T341_f02_t12

A set of 9 mpas grids that should be standardized:

mpasa480_mpasa480 mpasa240_mpasa240 mpasa120_mpasa120 mpasa60_mpasa60 mpasa30_mpasa30 mpasa15_mpasa15 mpasa12_mpasa12 mpasa15-3_mpasa15-3 mpasa15-3-conus_mpasa15-3-conus

A set of 9 glacier grids to remove or standardize:

f19_g17_gl4 (this one is not used) f09_g17_gris4 f09_g17_gl4 f09_g17_ais8 f09_g17_ais8gris4 f09_g17_gris20 f09_g17_gl20 (this one is not used) f19_g17_gris4 f19_g17_gl4 (this one is not used)

The following 19 have a standardized alias and should be deprecated and removed from usage in components:

T42_T42 --> T42_T42_mg17 T85_f09_e12 --> T85_T85_mg17 (not used) f02_g16 --> f02_f02_mg16 (not used) f02_g17 --> f02_f02_mg17 (not used) f05_g17 --> 05_f05_mg17 (not used) f09_g16 --> f09_f09_mg16 (not used) f09_g17 --> f09_f09_mg17 f19_g16 --> f19_f19_mg16 (not used) f19_g17 --> f19_f19_mg17 f19_f19 --> f19_f19_mg17 f45_g37 --> f45_f45_mg37 f10_g37 --> f10_f10_mg37 ne30_g16 --> ne30_ne30_mg16 (not used) ne30_g17 --> ne30_ne30_mg17 ne30pg3_g17 --> ne30pg3_ne30pg3_mg17 (not used) ne60_g16 --> ne60_ne60_mg16 (not used) ne120_g16 --> ne120_ne120_mg16 (not used) ne120_g17 --> ne120_ne120_mg17 (not used) ne120pg3_g17 --> ne120pg2_ne120pg2_mg17 (not used) ne120pg3_t13 --> ne120pg3_ne120pg3_mt13 (not used) ne0CONUSne30x8_g17 --> ne0CONUSne30x8_ne0CONUSne30x8_mg17 (not used) C96_t061 --> C96_C96_mt061

the following 9 ROF grids should be standardized:

f19_g16_r01 (not used) f19_g17_r01 (not used) f19_g17_r05 (not used) T31_g37_rx1 f45_g37_rx1 f19_g16_rx1 f19_g17_rx1 ne30_g16_rx1 (not used) ne30_g17_rx1

The following 9 mizuRoute grids should be standardized:

nldas2_rUSGS_mnldas2 nldas2_rHDMA_mnldas2 nldas2_rMERIT_mnldas2 hcru_hcru_mt13_rMERIT hcru_hcru_mt13_rHDMA f09_f09_mg17_rHDMA f09_f09_mg17_rMERIT f19_f19_mg17_rHDMA f19_f19_mg17_rMERIT

rljacob commented 1 year ago

Following. E3SM would like to follow a common convention.

rljacob commented 1 year ago

"Standard form for ocn is {ocn-grid}_{ice-grid}" Do you have cases where the sea ice and ocn grids are different?

ekluzek commented 1 year ago

@rljacob no we don't have ocean and ice on a different grid, and actually the long form format doesn't allow ocn and ice to be different. But, we do have these grids that reflect that convention:

1D_1D g16_g16 g17_g17

I actually think we should probably think about changing that convention because of the exact thing you point out. So perhaps the above examples could be removed?

mvertens commented 1 year ago

My understanding is that g16_g16 and g17_g17 and 1d_1d refer to having the atm and ocn on the same grid (g16, g17 and 1d) - not the ocn and ice on different grids. The ocean and ice cannot be allowed to be on different grids. That is a fundamental assumption for CESM and I believe E3SM as well.

ekluzek commented 1 year ago

Thanks for pointing that out @mvertens I've updated the top two to reflect that now.

rljacob commented 1 year ago

Dont' forget about tri-grid cases. Those are usually {atm-grid}_{lnd/rof-grid}_{ocn/ice grid}

billsacks commented 1 year ago
  • Standard form for atm is {atm-grid}_{lnd-grid}_m{mask}

My understanding (maybe wrong) is that the standard form for atm (i.e., F compsets) is still {atm-grid}_{ocn/ice-grid}_m{mask} – it's just that atm & ocn are on the same grid for F compsets. Others please correct me if I'm wrong here.

billsacks commented 1 year ago

Thanks @ekluzek for laying this out, and especially for your careful analysis of the existing grids. Your idea of moving to more standardization in grid aliases seems good.

ekluzek commented 1 year ago

Using the following command I checked what grids are actually being tested in cesm2_3_alpha10c

find . -name 'testlist*.xml' -print -exec grep 'grid=' {} \; | awk -F\" '{print $4}' | sort -u

1x1_brazil 1x1_mexicocityMEX 1x1_numaIA 1x1_smallvilleIA 1x1_vancouverCAN 5x5_amazon C48_C48_mg17 C96_C96_mg17 C96_t061 CLM_USRDAT f05_f05_mg17 f09_f09 f09_f09_mg17 f09_g17 f09_g17_ais8 f09_g17_ais8gris4 f09_g17_gl4 f09_g17_gris20 f09_g17_gris4 f09_t061 f10_f10_ais8gris4_mg37 f10_f10_ais8_mg37 f10_f10_mg37 f19_f19 f19_f19_mg17 f19_g16_rx1 f19_g17 f19_g17_gris4 f19_g17_rx1 f45_f45_mg37 f45_g37 f45_g37_rx1 mpasa120_mpasa120 mpasa480_mpasa480 mpasa480z32_mpasa480 ne0ARCTICGRISne30x8_ne0ARCTICGRISne30x8_mt12 ne0ARCTICne30x4_ne0ARCTICne30x4_mt12 ne0CONUSne30x8_ne0CONUSne30x8_mt12 ne0TESTONLYne5x4_ne0TESTONLYne5x4_mg37 ne16_ne16_mg17 ne16pg3_ne16pg3_mg17 ne30_g17 ne30_g17_rx1 ne30_ne30_mg17 ne30pg2_ne30pg2_mg17 ne30pg3_ne30pg3_mg17 ne30pg3_t061 ne5_ne5_mg37 ne5pg2_ne5pg2_mg37 ne5pg3_ne5pg3_mg37 ne5pg4_ne5pg4_mg37 nldas2_rnldas2_mnldas2 T31_g37 T31_g37_rx1 T42_T42 T42_T42_mg17 T42z30_T42_mg17 T5_T5_mg37 T62_g16 T62_g17 T62_g37 T62_s11 T62_t061 T62_t12 T62_t13 T85z30_T85_mg17 T85z60_T85_mg17 TL319_g17 TL319_t061 TL319_t13 ww3a

ekluzek commented 1 year ago

In order to get these new standards in place, I think the steps are:

ekluzek commented 1 year ago

I met with Will and @briandobbins regarding this issue. I will do some background efforts on this again starting in January. The first two steps above are things that could be done, remove grids that aren't tested, add new aliases for grids that should be removed.

@briandobbins would like to work on this in order to make it easier for users, and having 183 grid aliases in the list is daunting for a new user! He suggests we could have a few simpler aliases for novice users that would do the most standard type of things 1-Degree for example. Doing that might need to have some control logic between the grid and the compset though.

One concern with this is that we need to know what SIMA plans on doing with grids. So we want to wait on this a bit for a final accepted grid alias naming convention.

We also pointed out that tri-grids are NOT being tested right now, but there is important functionality for them, so we should add back testing for them.

We'd also like to add some metadata so we can mark grids in various ways, like being deprecated. Maybe we could mark a few as the most standard ones. We mark what compset/grid combinations are considered "scientifically supported", and you have to run with --run-unsupported to run others, maybe we need something like that for grids?

gold2718 commented 1 year ago

We also pointed out that tri-grids are NOT being tested right now, but there is important functionality for them, so we should add back testing for them.

Is there any use of tri-grids in CESM? While the naming convention has to include tri-grids, I don't see any reason CESM folks need to spend time testing and/or supporting them.

gold2718 commented 1 year ago

He suggests we could have a few simpler aliases for novice users that would do the most standard type of things 1-Degree for example. Doing that might need to have some control logic between the grid and the compset though.

One concern with this is that we need to know what SIMA plans on doing with grids. So we want to wait on this a bit for a final accepted grid alias naming convention.

Given that CAM supports 5 dycores (and I have not seen any plans to remove any), trying to introduce a simple description, such as 1-Degree, would introduce a new problem of creating a new way to specify the dycore in the create_nenwcase call. This is not super difficult but first be sure that the cure is not worse than the disease.