Repository navigation
Set up model run on WCOSS #90
Description
Goal:
Set up the model run for RTOFS v2.3 parallel testing on the WCOSS platform.
Tasks:
- Prepare necessary input datasets and initial conditions.
- Validate runtime and diagnose timing performance from:
- Entire model.
- And its parts, namely: DATM, MOM6 and CICE6.
- Keep track of IO.
Related parent issue: Set up a twin like RTOFS v2.5
Starting point:
- Work directory:
/lfs/h2/emc/ptmp/dan.iredell/rb.v3.0/NC-v2.5.2/20250503/rtofs_mom.1499882 - Out and err
/lfs/h2/emc/couple/noscrub/dan.iredell/COMDIR/logs/20250503/rtofs_mom.o225806654 - Job card
/lfs/h2/emc/ptmp/dan.iredell/rb.v3.0/batchscripts/rtofs.mom.1499882 - Notes:
ranks 0-79 are for cmeps and datm. rank 80-1319 for ocn (mom6). Rank 80 is where it crashed in esmf (I assume ocn-init)
The ⬆️ originate from: /scratch3/NCEPDEV/marine/Zulema.Garraffo/FV3_RT/expt_14.4_hera/rtofs.20250503 on Hera/Ursa; out and err are in that directory.
Next steps:
- Notes:
So it's failing at the line in the mom_cap where it reads in the mesh; but the same mesh is used for cice, and I can see that it successfully reads that in. So it doesn't seem like it would be a problem w/ the mesh file.
We have new meshes for the DATM configuration which no longer contain land.
You need to change datm_in:
model_maskfile = "INPUT/[gfs_mesh.nc](http://gfs_mesh.nc/)"
model_meshfile = "INPUT/[gfs_mesh.nc](http://gfs_mesh.nc/)"
ufs.configure
mesh_atm = INPUT/[gfs_mesh.nc](http://gfs_mesh.nc/)
instead of [gfs_mesh.nc](http://gfs_mesh.nc/), you'll need the file name [mesh.datm.3072x1536.nc](http://mesh.datm.3072x1536.nc/)
You can copy it from:
/scratch3/NAGAPE/epic/role.epic/UFS-WM_RT/NEMSfv3gfs/input-data-20250507/DATM_CDEPS/[mesh.datm.3072x1536.nc](http://mesh.datm.3072x1536.nc/)
@DanIredell-NOAA changed "mesh file"
- workdir:
/lfs/h2/emc/ptmp/dan.iredell/rb.v3.0/NC-v2.5.2/20250503/rtofs_mom.967099/ - out and err:
/lfs/h2/emc/couple/noscrub/dan.iredell/COMDIR/logs/20250503/rtofs_mom.o225898219
@DeniseWorthen:
I have something that ran for 6 hours: /lfs/h2/emc/nems/noscrub/denise.worthen/FV3_RT/rt_4045468/datm.mx008.rundir
I had to really up the resources though and right now cice history is turned off. One thing is that there are
(zap_snow_temperature)zap_snow_temperature: temperature out of bounds!
messages in the stdout.
Suggested fix to eliminate: you have both sea ice on land, and a bunch of corrupted sea ice values:
The other thing to check for is whether there is snow or ice on land in the restart file
if (sum(aicen) > 0 .and. kmt == 0) then sea ice exists on land; same for vicen and vsnon
Necessary check(s):
There are a bunch of 9.969E+36 aicen values on land along the left hand-size of the domain i<500 and a bunch of sea ice on land in the Barents Sea
Which has been made from: this is from the [iced.2025-05-01-64800.nc](http://iced.2025-05-01-64800.nc/) which is being used as the IC file for CICE, as far as I can tell from how the it was set up in Dan's run directory.
To do:
- In MOM_input, the big thing I had to change was the stagger. The stagger values (from coupler) need to be on A grid, not C. There are two of these; can't remember their names in MOM_input right now.
- Route handle for run off:
Another thing you may want to track as an issue---creating the routehandles takes a LONG time. There are two ways to solve this. If you know your tasking (ie, PE counts) are fixed, then you can generate them the first time and then re-use them. But that only works when you're not changing your task counts.
A second way is use mapfiles in CMEPS; we don't currently have that capability, but I was going to add it for GFSv17 but ran into a snag (details are unimportant here). The advantage of mapfiles is that you can re-use them even if you task counts change. I can pick that work up and get it working for the mx008 case when using a DATM.
Will wait for option 2 because @DeniseWorthen has most of the work done or almost there ..
Activity
DeniseWorthen commentedon Nov 21, 2025
I've looked at the
grid_cice_NEMS_mx008.ncfile sourced from "somewhere". The angle fields are wrong--they suffer from a long-standing bug which was fixed in ufs-community/UFS_UTILS#921.I will be updating UFS-UTILS to create the correct (current) mesh files and grid files for CICE at 1/12 deg (ufs-community/UFS_UTILS#1046).
sanAkel commentedon Nov 21, 2025
Thank you @DeniseWorthen
You have everything needed to generate it?
DeniseWorthen commentedon Nov 21, 2025
I believe so. I only need the supergrid, the mask and the depths. The files I have are identical to what was in Dan's run directory.
sanAkel commentedon Nov 21, 2025
Perfect!
sanAkel commentedon Nov 23, 2025
@DeniseWorthen
2 things came to my mind while raking 🍃 !
(Not sure if they impact anything you planning on doing.)
That's exactly what you have:
👍
Question: You pointed me to this option/script for mesh file generation
Will the script or anything change?
2.a Is there a distinction between GFS and GEFS in the
datm? Specifically in the following settings ofdatamodeandcase_name:In other words, should
datamodebe set to "GFS"? Checked if that's an option, founddatm/datm_datamode_gefs_mod.F90but none for gfs:datm/datm_datamode_gfs_mod.F90!2.b Are we treat
gefsandgfsas interchangeable key words in certain context(s) like the ⬆️?DeniseWorthen commentedon Nov 23, 2025
@sanAkel The "datamode" needs to be GEFS for any of our DATM configs (previously there had been multiple modes, but this was all consolidated a while ago). This is the CDEPS setting which toggles between possible data atmosphere sources:
The
case_namein ufs.configure just sets the file prefix for the restart (or mediator history) files, egDATM_GEFS_NEW.datm.r.2011-10-02-00000.nc. I don't like the current defaults (all caps) so out of habit I change to to lower case.DeniseWorthen commentedon Nov 24, 2025
Please see this directory for updated grid files:
/scratch4/NCEPDEV/stmp/Denise.Worthen/CPLD_GRIDGEN/rt_1057019/008The grid_cice file contains the angle fix; the others should be updated for consistency.
sanAkel commentedon Nov 24, 2025
Thanks @DeniseWorthen
/scratch4/NCEPDEV/marine/Santha.Akella/to_test.DeniseWorthen commentedon Dec 10, 2025
From the CICE documentation:
The grid is constructed by “folding” the top row, so that the left-hand half and the right-hand half of it coincide. Two choices for constructing the tripole grid are available. The one first introduced to CICE is called “U-fold”, which means that the poles and the grid cells between them are U cells on the grid. Alternatively the poles and the cells between them can be grid T cells, making a “T-fold.”
The files created by the UFS-UTILS cpld_gridgen utility, which reads the MOM6 ocean_hgrid.nc and writes out the CICE grid files and the mesh file show max nodecoord of +90.
The ocean domain that is created at runtime (looking at one of the ocean history files) shows a max geolat_c (corner) of +90.
Everything is consistent with the ice_in namelist setting
tripole. The domain is folded along the U-row (CICE) or in MOM6 terms, the "Bu" points. The actual pole lies at a corner grid point.If the pole was located on T-cells, you'd have a T-fold and the namelist setting would need to be tripoleT.
sanAkel commentedon Dec 10, 2025
@DeniseWorthen
Thanks so much for this detail and checking it all! Glad that all is done "right"! 🙂
DeniseWorthen commentedon Dec 12, 2025
This figure is sum(aicen) for kmt==0 (land) from the CICE restart in the wcoss2 run directory I initially got from Dan (iced.2025-05-01-64800.nc).
One problem area is in the far upper right corner where aice 0-1 exists on land.
Second issue are the vertical stripes on the left hand side (
4.985E+37 = 5*9.969E+36). I think an there is an out-of-bounds array issue somewhere in the code which creates the restart. Has anyone tried running that code in debug?sanAkel commentedon Dec 13, 2025
Thanks @DeniseWorthen
Please note this @DanIredell-NOAA issue. Will have to be addressed .. sometime .. When we can get to it ..