NOAA-EMC / gfs-utils

Utility programs for global-workflow
0 stars 15 forks source link

add fortran code for ice or ocn post #25

Closed DeniseWorthen closed 8 months ago

DeniseWorthen commented 8 months ago

This code is verified to reproduce the original NCL scripts w/in ~O10-8, with the exception of the ocean field speed which is now re-calculated from the remapped SSU and SSV fields.

The code will remap either ocean or ice model history files via a run-time flag do_ocnpost set according to the ftype value in the nml file. It is assumed that the model history file is present in the run directory with the name ftype.nc, ie either ocean.nc or ice.nc.

The model history file will be remapped to three rectilinear resolutions, 1/4 deg, 1/2 deg and 1/deg. The output files will be named, for example, ftype.0p25.nc for the 1/4 deg case.

A debug flag is available in the nml file. If set, information will be sent to ftype.post.log to assist debugging. Intermediate netCDF files will also be created during the remapping process.

The required ESMF weights are obtained from the location specified in wgtsdir. The same weights are used for either the ocean or ice case. The current weights in /scratch1/NCEPDEV/climate/climpara/S2S/FIX/fix_UFSp6/fix_reg2grb2/ need to be updated with the weights generated by the UFS_UTILS cpld_gridgen utility after the PR noted above.

Two run directories are available showing how the code works at /scratch2/NCEPDEV/stmp1/Denise.Worthen/ForRahul

DeniseWorthen commented 8 months ago

The code has been restructured. Per conversation with @aerorahul, looping over destination grids has been removed. Samples of the input nml and csv files are found in staged directories /scratch2/NCEPDEV/stmp1/Denise.Worthen/ForRahul.

The code does still hard-wire the name of the time and vertical axis in the source file. The implementation of netcdf-error checking and making the time axis and vertical grid names configurable are relatively minor changes and have not been implemented at this time.

Weights are not yet available for mapping the 5-deg tripole or for remapping to a 5-deg rectilinear but there should be no restriction on the code being able to do that once weights are available.