ufs-community / UFS_UTILS

Utilities for the NCEP models.
Other
21 stars 104 forks source link

Reduce dependency of SPLIB from UFS_UTILS #886

Closed GeorgeGayno-NOAA closed 6 months ago

GeorgeGayno-NOAA commented 6 months ago

The library team has considered retiring SPLIB. Determine how UFS_UTILS uses SPLIB and reduce its dependency on this library.

The chgres_cube program uses the following SPLIB routines: sptez, sptezm, sptezmv and splat. The first three routines are used to process the old GFS "sigio" restart files (pre-v14 of the GFS). If this option is removed, users can not cold start the model with GFS restart data prior to July 20, 2017. Routine splat is used when processing any input data on a gaussian grid (to geo-reference the grid). Several input data are on a gaussian grid. Therefore, splat and its associated routines will need to be retained.

The emcsfc_snow2mdl program processes gaussian grid data using IPLIB. So, that function must be maintained in the combined IPLIB/SPLIB.

The orog program uses splat, spfft1, sptez. This program has a lot of old options that were used by the spectral GFS. If these old options are removed, I suspect that the dependency on SPLIB will go away.

The weight_gen program creates weights to transform gaussian grids. It calls SPLIB routine splat. This function will need to be retained somehow.

GeorgeGayno-NOAA commented 6 months ago

The weight_gen program uses SPLIB routine splat for geo-referencing gaussian grids. As I test, I added splat.F and lapack_gen.F as part of the program. Then, removed the dependency of SPLIB from the program build. It built fine and the consistency test passed.

GeorgeGayno-NOAA commented 6 months ago

There is no imminent deadline to remove SPLIB and I would like to retain the ability to use pre-v14 data in chgres for now. So, for this issue, I will just update the orog and weight_gen codes.