diff --git a/README.md b/README.md
index 3016c34f4..e8918c86e 100644
--- a/README.md
+++ b/README.md
@@ -17,12 +17,12 @@ Utility | Programmer(s)
chgres_cube | George Gayno, Jeff Beck, Larissa Reames
emcsfc_ice_blend | George Gayno
emcsfc_snow2mdl | George Gayno
-fvcom_tools | David Wright, University of Michigan
-global_cycle | George Gayno, Shrinivas Moorthi
-grid_tools | R. J. Purser (regional_esg_grid), Tom Black/Ben Blake (shave.fd), Gerard Ketefian (global_equiv_resol), GFDL programmer (topo filtering code).
+fvcom_tools | David Wright, University of Michigan, Ming Hu, GSD/AMB
+global_cycle | George Gayno, Shrinivas Moorthi, Mark Iredell, Xu Li, Hang Lei
+grid_tools | R. J. Purser (regional_esg_grid), Tom Black/Ben Blake (shave.fd), Gerard Ketefian (global_equiv_resol), Tsukasa Fujita, JMA (pmat2), GFDL programmer (topo filtering code).
orog_mask_tools | Ning Wang, Jordan Alpert, Shan Sun and Ning Wang
sfc_climo_gen | George Gayno
-vcoord_gen | Fanglin Yang
+vcoord_gen | Fanglin Yang, Mark Iredell
UFS_UTILS Code managers: George Gayno, Kyle Gerheiser
diff --git a/sorc/chgres_cube.fd/docs/user_guide.md b/sorc/chgres_cube.fd/docs/user_guide.md
index 323940bf8..39ce7e5e5 100644
--- a/sorc/chgres_cube.fd/docs/user_guide.md
+++ b/sorc/chgres_cube.fd/docs/user_guide.md
@@ -2,18 +2,18 @@
# Introduction
-The chgres_cube program creates initial condition files to “coldstart”
+The program chgres.F90 creates initial condition files to “coldstart”
the forecast model. The initial conditions are created from either
Global Forecast System (GFS) gridded binary version 2 (GRIB2), NOAA
Environmental Modeling System Input/Output (NEMSIO) data, or Network
Common Data Form (NetCDF) data.
-This is part of the [NCEPLIBS
-UFS_UTILS](https://github.com/NOAA-EMC/UFS_UTILS) project.
-
-This user guide is part of the UFS_UTILS
+This document is part of the UFS_UTILS
documentation.
+The chgres_cube program is part of the [NCEPLIBS
+UFS_UTILS](https://github.com/NOAA-EMC/UFS_UTILS) project.
+
## Where to find GFS GRIB2, NEMSIO and NetCDF data
### GRIB2
diff --git a/sorc/emcsfc_ice_blend.fd/docs/user_guide.md b/sorc/emcsfc_ice_blend.fd/docs/user_guide.md
index 0c4ef0e4d..b09aaa049 100644
--- a/sorc/emcsfc_ice_blend.fd/docs/user_guide.md
+++ b/sorc/emcsfc_ice_blend.fd/docs/user_guide.md
@@ -3,15 +3,16 @@
# Introduction
-Blends National Ice Center sea ice cover and EMC sea ice concentration
-data to create a global sea ice analysis used to update the GFS once
-per day.
+The emcsfc_ice_blend.f90 program blends National Ice Center sea ice
+cover and EMC sea ice concentration data to create a global sea ice
+analysis used to update the GFS once per day.
-This is part of the [NCEPLIBS
+This document is part of the UFS_UTILS
+documentation.
+
+The emcsfc_ice_blend program is part of the [NCEPLIBS
UFS_UTILS](https://github.com/NOAA-EMC/UFS_UTILS) project.
-This is part of the UFS_UTILS documentation.
-The emcsfc_ice_blend code can be found here:
-https://github.com/NOAA-EMC/UFS_UTILS/tree/develop/sorc/emcsfc_ice_blend.fd.
+
diff --git a/sorc/emcsfc_snow2mdl.fd/docs/user_guide.md b/sorc/emcsfc_snow2mdl.fd/docs/user_guide.md
index cf4b3bc59..a680c4004 100644
--- a/sorc/emcsfc_snow2mdl.fd/docs/user_guide.md
+++ b/sorc/emcsfc_snow2mdl.fd/docs/user_guide.md
@@ -3,15 +3,14 @@
# Introduction
-Blends National Ice Center snow cover and Air Force snow depth data to
-create a global depth analysis used to update the GFS snow field once
-per day.
+The emcsfc_snow2mdl program (driver.F90) blends National Ice Center
+snow cover and Air Force snow depth data to create a global depth
+analysis used to update the GFS snow field once per day.
-This is part of the [NCEPLIBS
-UFS_UTILS](https://github.com/NOAA-EMC/UFS_UTILS) project.
+This document is part of the UFS_UTILS
+documentation.
-This is part of the UFS_UTILS documentation.
+The emcsfc_snow2mdl program is part of the [NCEPLIBS
+UFS_UTILS](https://github.com/NOAA-EMC/UFS_UTILS) project.
-The emcsfc_snow2mdl code can be found here:
-https://github.com/NOAA-EMC/UFS_UTILS/tree/develop/sorc/emcsfc_snow2mdl.fd.
diff --git a/sorc/emcsfc_snow2mdl.fd/driver.F90 b/sorc/emcsfc_snow2mdl.fd/driver.F90
index 6d212a87a..177c2e4c1 100755
--- a/sorc/emcsfc_snow2mdl.fd/driver.F90
+++ b/sorc/emcsfc_snow2mdl.fd/driver.F90
@@ -6,20 +6,6 @@
!! or global gfs gaussian grid using nesdis/ims snow cover, autosnow snow
!! cover and/or afwa depth data.
!!
-!! Program History Log
-!! - 2005-dec-16 gayno initial version
-!! - 2007-nov-30 gayno added processing of nam b-grids.
-!! improved thinning for gfs grids.
-!! - 2008-feb-01 gayno added option to use autosnow data
-!! in southern hemisphere.
-!! - 2014-feb-14 gayno read grib 1 or grib2 version of nesdis/ims
-!! data
-!! - 2014-sep-30 gayno read grib 1 or grib2 version of model
-!! lat, lon and mask files. convert
-!! nh weekly snow climatology to grib 2.
-!! option to output model depth and cover
-!! analysis in grib2.
-!!
!! The ims snow cover product is now produced by the national
!! ice center, not nesdis. however, in this code, references
!! to ims still use the "nesdis" identifier.
@@ -139,6 +125,20 @@
!! defined threshold, the depth is set to 0,
!! regardless of the afwa depth value.
!!
+!! Program History Log
+!! - 2005-dec-16 gayno initial version
+!! - 2007-nov-30 gayno added processing of nam b-grids.
+!! improved thinning for gfs grids.
+!! - 2008-feb-01 gayno added option to use autosnow data
+!! in southern hemisphere.
+!! - 2014-feb-14 gayno read grib 1 or grib2 version of nesdis/ims
+!! data
+!! - 2014-sep-30 gayno read grib 1 or grib2 version of model
+!! lat, lon and mask files. convert
+!! nh weekly snow climatology to grib 2.
+!! option to output model depth and cover
+!! analysis in grib2.
+!!
!! @return 0 for success, error code otherwise.
!! @author gayno @date 2005-dec-16
program driver
diff --git a/sorc/fvcom_tools.fd/docs/user_guide.md b/sorc/fvcom_tools.fd/docs/user_guide.md
index 61fdf3d93..1525880fd 100644
--- a/sorc/fvcom_tools.fd/docs/user_guide.md
+++ b/sorc/fvcom_tools.fd/docs/user_guide.md
@@ -3,16 +3,16 @@
# Introduction
-Replaces lake surface and lake ice temperature along with aerial ice
-concentration generated from the Great Lakes Operational Forecast
-System (GLOFS) in an FV3 surface restart file. See [fvcom
-documentation](@ref fvcom_readme).
+The process_FVCOM.f90 program replaces lake surface and lake ice
+temperature along with aerial ice concentration generated from the
+Great Lakes Operational Forecast System (GLOFS) in an FV3 surface
+restart file. See [fvcom documentation](@ref fvcom_readme).
-This is part of the [NCEPLIBS
+This document is part of the UFS_UTILS
+documentation.
+
+The fvcom_tools program is part of the [NCEPLIBS
UFS_UTILS](https://github.com/NOAA-EMC/UFS_UTILS) project.
-This is part of the UFS_UTILS documentation.
-The fvcom_tools code can be found here:
-https://github.com/NOAA-EMC/UFS_UTILS/tree/develop/sorc/fvcom_tools.fd.
diff --git a/sorc/global_cycle.fd/docs/user_guide.md b/sorc/global_cycle.fd/docs/user_guide.md
index 03909444a..cfd05706b 100644
--- a/sorc/global_cycle.fd/docs/user_guide.md
+++ b/sorc/global_cycle.fd/docs/user_guide.md
@@ -3,16 +3,13 @@
# Introduction
-Updates the GFS surface conditions using external snow and sea ice
-analyses. Updates monthly climatological fields such as plant
-greenness fraction and albedo. Runs as part of the GFS and GDAS
-cycles.
+The program cycle.f90 updates the GFS surface conditions using
+external snow and sea ice analyses. It updates monthly climatological
+fields such as plant greenness fraction and albedo. It runs as part of
+the GFS and GDAS cycles.
-This is part of the [NCEPLIBS
-UFS_UTILS](https://github.com/NOAA-EMC/UFS_UTILS) project.
-
-This is part of the UFS_UTILS documentation.
-
-The global_cycle code can be found here:
-https://github.com/NOAA-EMC/UFS_UTILS/tree/develop/sorc/global_cycle.fd.
+This document is part of the UFS_UTILS
+documentation.
+The global_cycle program is part of the [NCEPLIBS
+UFS_UTILS](https://github.com/NOAA-EMC/UFS_UTILS) project.
diff --git a/sorc/grid_tools.fd/docs/user_guide.md b/sorc/grid_tools.fd/docs/user_guide.md
index 6d9f5dbeb..cef921ba5 100644
--- a/sorc/grid_tools.fd/docs/user_guide.md
+++ b/sorc/grid_tools.fd/docs/user_guide.md
@@ -3,15 +3,19 @@
# Introduction
-Utilities to filter topography, to create regional extended Schmidt
-gnomonic grids, and to compute the equivalent global resolution of a
-regional grid.
+The grid_tools include:
+* filter_topo.F90 - filter topography
+* global_equiv_resol.f90 - compute the equivalent global resolution of
+ a regional grid
+* regional_esg_grid.f90 - create regional extended Schmidt gnomonic
+ grids
+* shave_nc.F90 - shave down domains of FV3 files
-This is part of the [NCEPLIBS
+This document is part of the UFS_UTILS
+documentation.
+
+The grid_tools programs are part of the [NCEPLIBS
UFS_UTILS](https://github.com/NOAA-EMC/UFS_UTILS) project.
-This is part of the UFS_UTILS documentation.
-The grid_tools code can be found here:
-https://github.com/NOAA-EMC/UFS_UTILS/tree/develop/sorc/grid_tools.fd.
diff --git a/sorc/grid_tools.fd/regional_esg_grid.fd/pmat2.f90 b/sorc/grid_tools.fd/regional_esg_grid.fd/pmat2.f90
index da001b218..6bfebead6 100644
--- a/sorc/grid_tools.fd/regional_esg_grid.fd/pmat2.f90
+++ b/sorc/grid_tools.fd/regional_esg_grid.fd/pmat2.f90
@@ -640,7 +640,6 @@ end subroutine LDLTB
!! @param[in] mah1 semi-bandwidth of matrix A
!! @param[inout] a input lower (left) part of symmetric A; output its factors
!! encoded as [L-I]+[D**-1]
-!! @param[inout] a input lower (left) part of symmetric A; output its factors.
!! @author R. J. Purser, Tsukasa Fujita (JMA) @date 1999
subroutine DLDLTB(m,mah1,a) ! Real(dp) version of [LDLTB]
use pietc, only: u0,u1
@@ -720,17 +719,14 @@ end subroutine DUDLB
!! lower triangular elements of [A] by [D**-1]*[L]*[D], the upper by [U],
!! replace matrix [B] by [D**-1]*[B].
!!
-!! @param[inout] a input as band matrix, output as lower and upper triangulars with 1s
-!! implicitly assumed to lie on the main diagonal. The product of these
-!! triangular matrices is [D**-1]*[A], where [D] is a diagonal matrix.
-!! @param[inout] b in as band matrix, out as same but premultiplied by diagonal [D**-1]
!! @param[in] m Number of rows of A and B
!! @param[in] mah1 number of subdiagonals of A
!! @param[in] mah2 number of superdiagonals of A
!! @param[in] mbh1 number of subdiagonals of B
!! @param[in] mbh2 number of superdiagonals of B
-!! @param[inout] a Input single precision band matrix A; output factors encoded
-!! as [D**-1 * L * D]+[U-I]
+!! @param[inout] a input as band matrix, output as lower and upper triangulars with 1s
+!! implicitly assumed to lie on the main diagonal. The product of these
+!! triangular matrices is [D**-1]*[A], where [D] is a diagonal matrix.
!! @param[inout] b Input single precision band matrix B; output [D**-1 B]
!! @author R. J. Purser, Tsukasa Fujita (JMA) @date 1996
subroutine L1UBB(m,mah1,mah2,mbh1,mbh2,a,b)! [L1UBB]
diff --git a/sorc/orog_mask_tools.fd/docs/user_guide.md b/sorc/orog_mask_tools.fd/docs/user_guide.md
index 2d605dc97..285dde897 100644
--- a/sorc/orog_mask_tools.fd/docs/user_guide.md
+++ b/sorc/orog_mask_tools.fd/docs/user_guide.md
@@ -3,14 +3,15 @@
# Introduction
-Utilities to create land mask, terrain and gravity wave drag fields;
-set lake fraction and depth; creates an inland land mask.
+The orog_mask_tools include:
+* inland.F90 - create an inland land mask.
+* lakefrac.F90 - set lake fraction and depth.
+* mtnlm7_oclsm.f - terrain maker for global spectral model.
-This is part of the [NCEPLIBS
-UFS_UTILS](https://github.com/NOAA-EMC/UFS_UTILS) project.
+This document is part of the UFS_UTILS
+documentation.
-This is part of the UFS_UTILS documentation.
+The orog_mask_tools programs are part of the [NCEPLIBS
+UFS_UTILS](https://github.com/NOAA-EMC/UFS_UTILS) project.
-The orog_mask_tools code can be found here:
-https://github.com/NOAA-EMC/UFS_UTILS/tree/develop/sorc/orog_mask_tools.fd.
diff --git a/sorc/orog_mask_tools.fd/orog.fd/mtnlm7_oclsm.f b/sorc/orog_mask_tools.fd/orog.fd/mtnlm7_oclsm.f
index eb95aac84..7e6d76db7 100644
--- a/sorc/orog_mask_tools.fd/orog.fd/mtnlm7_oclsm.f
+++ b/sorc/orog_mask_tools.fd/orog.fd/mtnlm7_oclsm.f
@@ -1,23 +1,25 @@
C> @file
-C> TERRAIN MAKER FOR GLOBAL SPECTRAL MODEL
-C> @author IREDELL @date 92-04-16
+C> Terrain maker for global spectral model.
+C> @author Mark Iredell @date 92-04-16
-C> THIS PROGRAM CREATES 7 TERRAIN-RELATED FILES
-C> COMPUTED FROM THE NAVY 10-MINUTE TERRAIN DATASET.
-C> THE MODEL PHYSICS GRID PARAMETERS AND SPECTRAL TRUNCATION
-C> AND FILTER PARAMETERS ARE READ BY THIS PROGRAM AS INPUT.
-C> THE 7 FILES PRODUCED ARE RESPECTIVELY:
-C> 1) SEA-LAND MASK ON MODEL PHYSICS GRID
-C> 2) GRIDDED OROGRAPHY ON MODEL PHYSICS GRID
-C> 3) MOUNTAIN STD DEV ON MODEL PHYSICS GRID
-C> 4) SPECTRAL OROGRAPHY IN SPECTRAL DOMAIN
-C> 5) UNFILTERED GRIDDED OROGRAPHY ON MODEL PHYSICS GRID
-C> 6) GRIB SEA-LAND MASK ON MODEL PHYSICS GRID
-C> 7) GRIB GRIDDED OROGRAPHY ON MODEL PHYSICS GRID
-C> THE OROGRAPHY IS ONLY FILTERED FOR WAVENUMBERS GREATER THAN NF0.
-C> FOR WAVENUMBERS N BETWEEN NF0 AND NF1, THE OROGRAPHY IS FILTERED
-C> BY THE FACTOR 1-((N-NF0)/(NF1-NF0))**2. THE FILTERED OROGRAPHY
-C> WILL NOT HAVE INFORMATION BEYOND WAVENUMBER NF1.
+C> This program creates 7 terrain-related files computed from the navy
+C> 10-minute terrain dataset. The model physics grid parameters and
+C> spectral truncation and filter parameters are read by this program as
+C> input.
+C>
+C> The 7 files produced are:
+C> 1. sea-land mask on model physics grid
+C> 2. gridded orography on model physics grid
+C> 3. mountain std dev on model physics grid
+C> 4. spectral orography in spectral domain
+C> 5. unfiltered gridded orography on model physics grid
+C> 6. grib sea-land mask on model physics grid
+C> 7. grib gridded orography on model physics grid
+C>
+C> The orography is only filtered for wavenumbers greater than nf0. For
+C> wavenumbers n between nf0 and nf1, the orography is filtered by the
+C> factor 1-((n-nf0)/(nf1-nf0))**2. The filtered orography will not have
+C> information beyond wavenumber nf1.
C>
C> PROGRAM HISTORY LOG:
C> - 92-04-16 IREDELL
@@ -71,8 +73,6 @@
C> - SPTEZ - SPHERICAL TRANSFORM
C> - GBYTES - UNPACK BITS
C>
-C> REMARKS: FORTRAN 9X EXTENSIONS ARE USED.
-C>
C> @return 0 for success, error code otherwise.
include 'netcdf.inc'
logical fexist, opened
diff --git a/sorc/sfc_climo_gen.fd/docs/user_guide.md b/sorc/sfc_climo_gen.fd/docs/user_guide.md
index 28d8b6815..e7fae3a5c 100644
--- a/sorc/sfc_climo_gen.fd/docs/user_guide.md
+++ b/sorc/sfc_climo_gen.fd/docs/user_guide.md
@@ -3,14 +3,13 @@
# Introduction
-Creates surface climatological fields, such as vegetation type and
-albedo, for an FV3 grid.
+The sfc_climo_gen program driver.F90 creates surface climatological
+fields, such as vegetation type and albedo, for an FV3 grid.
-This is part of the [NCEPLIBS
-UFS_UTILS](https://github.com/NOAA-EMC/UFS_UTILS) project.
+This document is part of the UFS_UTILS
+documentation.
-This is part of the UFS_UTILS documentation.
+The orog_mask_tools programs are part of the [NCEPLIBS
+UFS_UTILS](https://github.com/NOAA-EMC/UFS_UTILS) project.
-The sfc_climo_gen code can be found here:
-https://github.com/NOAA-EMC/UFS_UTILS/tree/develop/sorc/sfc_climo_gen.fd.
diff --git a/sorc/vcoord_gen.fd/docs/user_guide.md b/sorc/vcoord_gen.fd/docs/user_guide.md
index 42916984c..cb689eb25 100644
--- a/sorc/vcoord_gen.fd/docs/user_guide.md
+++ b/sorc/vcoord_gen.fd/docs/user_guide.md
@@ -3,16 +3,15 @@
# Introduction
-Generates hybrid coordinate parameters from fields such as surface
-pressure, model top and the number of vertical levels. Outputs the
-'ak' and 'bk' parameters used by the forecast model to define the
-hybrid levels.
+The vcoord_gen program driver.f90 generates hybrid coordinate
+parameters from fields such as surface pressure, model top and the
+number of vertical levels. Outputs the 'ak' and 'bk' parameters used
+by the forecast model to define the hybrid levels.
-This is part of the [NCEPLIBS
-UFS_UTILS](https://github.com/NOAA-EMC/UFS_UTILS) project.
+This document is part of the UFS_UTILS
+documentation.
-This is part of the UFS_UTILS documentation.
+The vcoord_gen programs are part of the [NCEPLIBS
+UFS_UTILS](https://github.com/NOAA-EMC/UFS_UTILS) project.
-The vcoord_gen can be found here:
-https://github.com/NOAA-EMC/UFS_UTILS/tree/develop/sorc/vcoord_gen.fd.
diff --git a/sorc/vcoord_gen.fd/driver.f90 b/sorc/vcoord_gen.fd/driver.f90
index 0da96f113..58816ef37 100644
--- a/sorc/vcoord_gen.fd/driver.f90
+++ b/sorc/vcoord_gen.fd/driver.f90
@@ -2,7 +2,11 @@
!! @brief Driver for vcoord_gen.
!! @author Mark Iredell @date 2008-08-01
-!> Driver for vcoord_gen.
+!> This program generates hybrid coordinate
+!! parameters from fields such as surface pressure, model top and the
+!! number of vertical levels. Outputs the 'ak' and 'bk' parameters
+!! used by the forecast model to define the hybrid levels.
+!!
!! @return 0 for success, error code otherwise.
!! @author Mark Iredell @date 2008-08-01
program driver