You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since MOM6 creates the model grid at runtime (including adjusting the land mask, if required), files required or used for the global applications for CICE and ATM must be created in a pre-processing step using only the MOM6 supergrid, topography and land mask files as input. This allows the mapped ocean mask (used for creating of the ATM ICs) and the CICE6 grid and mask files to be consistent with the run-time configuration of MOM6. A version of the cpld_gridgen utility has used to generate the required files even prior to being incorporated into ufs_utils, dating back at least 4 years when the authoritative repo was ufs-s2s.
For CICE, one of the required fields is the rotation angle for vector fields oriented I-J to be mapped to E-W and back. For CICE, this rotation angle is defined on the corner grid points, referred to as the Bu grid by MOM6. MOM6 itself calculates the rotation angle only on the center (Ct) grid points. In cpld_gridgen, in order to calculate the Bu angle, the Ct angle procedure from MOM6 was modified. This modification has been used since the earliest versions of cpld_gridgen.
This does not produce the correct rotation angles for CICE. This figure shows the Ct and (-1)*Bu angle in the current code
A slice through the middle of the Arctic shows the issue:
The Bu angle (black) and Ct angles should be of the same magnitude, since they are simply at slightly different geographic locations. But Bu is too small away from the tripole seam. For the 1/4deg tripole, the maximum angular error is ~20deg.
The fix is to calculate the Bu angle using an analogous procedure to that used internally by CICE to go from the Bu to the Ct angles. This procedure is shown as
This same procedure can be used to go from Ct to Bu with care for the indexing change and with knowing the Ct angle on the other side of the seam. Implementing this to calculate the Bu angles from the known MOM6 Ct angles produces the following
In addition, once the Bu angles are known, the Ct angle that will be calculated by CICE (at run time) can again be calculated and that angle compared with the Ct angles produced by MOM6. This angchk has been implemented in a feature branch. The feature branch has been tested and shows that
the Ct angle produced by cpld_gridgen are O~10-6 or less different than the actual angle values produced by MOM6 at run time and written to the ocean history file. This has always been the case for the cpld_gridgen utility.
the Ct angle calculated using the Bu angles in cpld_gridgen (the angchk array) are O~10-8 different than the actual anglet values produced by CICE at runtime and written to the ice history file. This shows that the Bu angles calculated by cpld_gridgen are now consistent with the Ct angles from MOM6.
The text was updated successfully, but these errors were encountered:
Remove find_anq routine and instead calculate Bu angles using
the Ct angle on the opposite side of the seam. Add angchk to
verify CICE internally calculated Ct angle against both MOM6 and
CICE model output. Remove resetting of longitudes to 0:360. Add
tripole:tripole bilinear mapping for creation of CICE IC downscaling
and add required Bu<->Ct mapping on tripole grid. Clean up log
messages, remove duplicate weight file and update documentation.
Fixes#921.
Since MOM6 creates the model grid at runtime (including adjusting the land mask, if required), files required or used for the global applications for CICE and ATM must be created in a pre-processing step using only the MOM6 supergrid, topography and land mask files as input. This allows the mapped ocean mask (used for creating of the ATM ICs) and the CICE6 grid and mask files to be consistent with the run-time configuration of MOM6. A version of the cpld_gridgen utility has used to generate the required files even prior to being incorporated into ufs_utils, dating back at least 4 years when the authoritative repo was ufs-s2s.
For CICE, one of the required fields is the rotation angle for vector fields oriented I-J to be mapped to E-W and back. For CICE, this rotation angle is defined on the corner grid points, referred to as the
Bu
grid by MOM6. MOM6 itself calculates the rotation angle only on the center (Ct
) grid points. In cpld_gridgen, in order to calculate theBu
angle, theCt
angle procedure from MOM6 was modified. This modification has been used since the earliest versions of cpld_gridgen.This does not produce the correct rotation angles for CICE. This figure shows the Ct and (-1)*Bu angle in the current code
A slice through the middle of the Arctic shows the issue:

The
Bu
angle (black) andCt
angles should be of the same magnitude, since they are simply at slightly different geographic locations. ButBu
is too small away from the tripole seam. For the 1/4deg tripole, the maximum angular error is ~20deg.The fix is to calculate the
Bu
angle using an analogous procedure to that used internally by CICE to go from theBu
to theCt
angles. This procedure is shown asThis same procedure can be used to go from
Ct
toBu
with care for the indexing change and with knowing theCt
angle on the other side of the seam. Implementing this to calculate theBu
angles from the known MOM6Ct
angles produces the followingIn addition, once the
Bu
angles are known, theCt
angle that will be calculated by CICE (at run time) can again be calculated and that angle compared with theCt
angles produced by MOM6. Thisangchk
has been implemented in a feature branch. The feature branch has been tested and shows thatCt
angle produced by cpld_gridgen are O~10-6 or less different than the actual angle values produced by MOM6 at run time and written to the ocean history file. This has always been the case for thecpld_gridgen
utility.Ct
angle calculated using theBu
angles incpld_gridgen
(theangchk
array) are O~10-8 different than the actualanglet
values produced by CICE at runtime and written to the ice history file. This shows that theBu
angles calculated bycpld_gridgen
are now consistent with theCt
angles from MOM6.The text was updated successfully, but these errors were encountered: