From e67e84028d04edfe5906a0f14340342fd178cb78 Mon Sep 17 00:00:00 2001 From: Edward Hartnett Date: Fri, 26 Mar 2021 06:28:15 -0600 Subject: [PATCH 1/5] cleanup of user_guides --- sorc/chgres_cube.fd/docs/user_guide.md | 10 ++++---- sorc/emcsfc_ice_blend.fd/docs/user_guide.md | 15 +++++------ sorc/emcsfc_snow2mdl.fd/docs/user_guide.md | 15 ++++++----- sorc/emcsfc_snow2mdl.fd/driver.F90 | 28 ++++++++++----------- 4 files changed, 34 insertions(+), 34 deletions(-) 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 From fde200283d5c2dd92b6efddbf4575bac99494608 Mon Sep 17 00:00:00 2001 From: Edward Hartnett Date: Fri, 26 Mar 2021 06:50:24 -0600 Subject: [PATCH 2/5] landing page cleanup --- sorc/fvcom_tools.fd/docs/user_guide.md | 16 ++++---- sorc/global_cycle.fd/docs/user_guide.md | 19 ++++----- sorc/grid_tools.fd/docs/user_guide.md | 18 +++++---- sorc/orog_mask_tools.fd/docs/user_guide.md | 15 +++---- .../orog_mask_tools.fd/orog.fd/mtnlm7_oclsm.f | 40 +++++++++---------- sorc/sfc_climo_gen.fd/docs/user_guide.md | 13 +++--- sorc/vcoord_gen.fd/docs/user_guide.md | 17 ++++---- sorc/vcoord_gen.fd/driver.f90 | 6 ++- 8 files changed, 74 insertions(+), 70 deletions(-) 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/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..5281ce2b8 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 From eda8e0fbbe1de0bca7005b4aad697359868eeb75 Mon Sep 17 00:00:00 2001 From: Edward Hartnett Date: Fri, 26 Mar 2021 06:59:48 -0600 Subject: [PATCH 3/5] fixed some doxygen warnings --- sorc/grid_tools.fd/regional_esg_grid.fd/pmat2.f90 | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) 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] From d568276d61ba957fafd56cb650156390576d1c8f Mon Sep 17 00:00:00 2001 From: Edward Hartnett Date: Fri, 26 Mar 2021 07:09:28 -0600 Subject: [PATCH 4/5] added some code authors to the README --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 From adb58bca6c24941157872ff080b9012d8e669229 Mon Sep 17 00:00:00 2001 From: Edward Hartnett Date: Mon, 29 Mar 2021 13:43:00 -0600 Subject: [PATCH 5/5] fixed driver.f90 reference --- sorc/vcoord_gen.fd/docs/user_guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorc/vcoord_gen.fd/docs/user_guide.md b/sorc/vcoord_gen.fd/docs/user_guide.md index 5281ce2b8..cb689eb25 100644 --- a/sorc/vcoord_gen.fd/docs/user_guide.md +++ b/sorc/vcoord_gen.fd/docs/user_guide.md @@ -3,7 +3,7 @@ # Introduction -The vcoord_gen program driver.F90 generates hybrid coordinate +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.