The UFS-Arctic project aims to set up a regional coupled atmosphere-ocean-sea-ice Arctic forecasting configuration in the UFS framework.
- Clone the workflow and then update submodules:
git submodule update --init --recursive - Open
build_run.shand adjust the test run start date, run length, account, system, compiler, and run directory as needed. - Run the workflow:
./build.shto automatically submit the job after setup../build.sh --norunto setup the run directoy without submitting the job.
Notes:
- There are currently a limited number of available dates:
- 2019/10/28
- 2020/02/27
- 2020/07/02
- 2020/07/09
- 2020/08/27
- The model can be run from 3 hrs to a maximum of 240 hrs.
This is for generating the meshes necessary to run with MOM6 in UFS based on existing MOM6 grid files. These have already been generated for the Arctic MOM6 mesh used in Accessing Existing Test Cases (Ursa).
- Find the required files in
workflow/mesh - Copy both files to the directory containing an ocean mask file.
- Note: This requires an
ocean_mask.ncfile containing longitude and latitude variablesx(ny,nx)andy(ny,nx), respectively. - If you have these variables but with different names, edit the
gen_scrip.nclfile lines 42 and 48 to the correct variable names. - If your mask file does not contain any center coordinates, you can add them from the
ocean_hgrid.ncfile by running the python scriptadd_center_coords.py.
- Edit
mesh_gen_job.shas needed, then run the code.sbatch mesh_gen_job.sh
This can be used if you do not have a MOM6 mesh or need to generate a new mesh with different parameters. A MOM6 mask file has already been generated for the Arctic MOM6 mesh used in Accessing Existing Test Cases (Ursa).
- Use FRE-NCtools command:
make_quick_mosaic --input_mosaic input_mosaic.nc [--mosaic_name mosaic_name] [--ocean_topog ocean_topog.nc] [--sea_level #] [--reproduce_siena] [--land_frac_file frac_file] [--land_frac_field frac_field] - Make note of the sea level chosen in this step! 0 is the default if it is not specified. You will need to make sure this value is consistent with
MASKING_DEPTHvariable inMOM_input
Currently, the CICE6 test configuration is still a work in progress. Some of the considerations made when setting up the working test case:
- To avoid using the aoflux coupling in runs, the atmosphere needs to fully cover the ocn/ice grid
- The atmosphere->ocn/ice mapping leads to failure unless mapping types in ufs coupling are switched to
mapbilnr_nstod. This fork of the UFS Weather Model has aufs.arcticcoupling mode which accomplishes this. - There seem to be momentarily large salinity values in MOM6 at the start of the run, which is why the SSS limit is adjusted upwards. The large values do not show up in the final output.
- Running CICE6 with
omp_num_threads=2lead to a floating point exception in theice_import_export.F90routine. It seems that threading is not fully supported in CICE6, so this must be set to 1 to work correctly. - Take care when generating ice initial conditions files, as if there is ice concentration over a masked land cell it will lead to a floating point exception in the CICE6 model.
See this UFS Github Discussion for more information on some of the errors encountered in setting up the configuration.
This may result in a file with all NaNs for the mask. If that happens, copy the mask from the ocean files into the ice files.
The following grid files are needed to run CICE6:
grid_cice_NEMS_mx{res}.nckmtu_cice_NEMS_mx{res}.nc
See generated files for the existing MOM6 Arctic test case on Ursa here: /scratch4/BMC/ufs-artic/Kristin.Barton/files/ufs_arctic_development/cice6_grid_gen/grid_files/
These must be generated based on the MOM6 mesh and can be done with the UFS_Utils cpld_gridgen utility.
This requires the following files:
grid.nmlnamelist file (see example on Here here:/scratch4/BMC/ufs-artic/Kristin.Barton/files/ufs_arctic_development /cice6_grid_gen/grid.nml)ocean_hgrid.ncMOM6 supergrid fileocean_topog.ncMOM6 bathymetry fileocean_mask.ncMOM6 landmask filetopo_edit.ncThe program may attempt to read in a topographic edit file even if it is not used (example of an empty topo edit file can be found here:/scratch4/BMC/ufs-artic/Kristin.Barton/files/mesh_files/ARC12/GRID/empty_topo_edit.nc)- FV3 input files (mesh, mosaic, etc)
Running cpld_gridgen will generate the first of the two grid files. The second can be generated from the first using the command ncks -O -v kmt grid_cice_NEMS_mx{res}.nc kmtu_cice_NEMS_mx{res}.nc (for whichever resolution, {res}, was specified in the namelist file.)