Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/post refactor p2 #223

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# This is the CMake build file for EMC_post (also known as UPP).
#
cmake_minimum_required(VERSION 3.15)

file(STRINGS "VERSION" pVersion LIMIT_COUNT 1)
Expand All @@ -9,9 +11,11 @@ project(

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/Modules")

# Handle user options.
option(OPENMP "use OpenMP threading" OFF)
option(BUILD_POSTEXEC "Build NCEPpost executable" ON)
option(BUILD_WITH_WRFIO "Build NCEPpost with WRF-IO library" OFF)
option(ENABLE_DOCS "Enable generation of doxygen-based documentation." OFF)

if(NOT CMAKE_BUILD_TYPE MATCHES "^(Debug|Release|RelWithDebInfo|MinSizeRel)$")
message(STATUS "Setting build type to 'Release' as none was specified.")
Expand Down Expand Up @@ -55,3 +59,10 @@ endif()

add_subdirectory(sorc)
add_subdirectory(parm)

# If desired, build the doxygen docs.
if(ENABLE_DOCS)
find_package(Doxygen REQUIRED)
add_subdirectory(docs)
endif()

53 changes: 45 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,51 @@

# Unified Post-Processing (UPP)

The Unified Post Processing (UPP) package provides tools for post
processing for NCEP models. For historical reasons, the UPP repository
is called EMC_post.

This is part of the [NCEPLIBS](https://github.com/NOAA-EMC/NCEPLIBS)
project. It also serves as a standalone package that is distributed to
the community. It is built outside of nceplibs for some UFS
applications (e.g. SRW v1.0.0).
The Unified Post Processor (UPP) software package is a software
package designed to generate useful products from raw model
output.

The UPP is currently used in operations with the Global Forecast
System (GFS), GFS Ensemble Forecast System (GEFS), North American
Mesoscale (NAM), Rapid Refresh (RAP), High Resolution Rapid Refresh
(HRRR), Short Range Ensemble Forecast (SREF), Hurricane WRF (HWRF)
applications, and is also used in Unified Forecasting System (UFS)
applications.

The UPP provides the capability to compute a variety of diagnostic
fields and interpolate to pressure levels or other vertical
coordinates.

UPP also incorporates the Joint Center for Satellite Data Assimilation
(JCSDA) Community Radiative Transfer Model (CRTM) to compute model
derived brightness temperature (TB) for various instruments and
channels. This additional feature enables the generation of a number
of simulated satellite products including GOES products.

Output from the UPP is in National Weather Service (NWS) and World
Meteorological Organization (WMO) GRIB2 format and can be used
directly by visualization, plotting, or verification packages, or for
further downstream post-processing, e.g. statistical post-processing
techniques.

Examples of UPP products include:

- T, Z, humidity, wind, cloud water, cloud ice, rain, and snow on pressure levels
- SLP, shelter level T, humidity, and wind fields
- Precipitation-related fields
- PBL-related fields
- Severe weather products (e.g. CAPE, Vorticity, Wind shear)
- Radiative/Surface fluxes
- Cloud related fields
- Aviation products
- Radar reflectivity products
- Satellite look-alike products

Support for the UFS UPP is provided through the UFS Forum by the
Developmental Testbed Center (DTC) for FV3-based applications.

The UPP uses some of the [NCEPLIBS](https://github.com/NOAA-EMC/NCEPLIBS)
project.

## Authors

Expand Down
6 changes: 6 additions & 0 deletions sorc/ncep_post.fd/ALLOCATE_ALL.f
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ SUBROUTINE ALLOCATE_ALL()
! SU diagnostic fields
! 19-07-24 Li(Kate) Zhang - Merge and update NGAC UPP for FV3-Chem
! 19-11-23 Wen Meng - Add sea ice skin T
! 20-11-06 Jesse Meng - Add UPP_MATH module variables
!
! USAGE: CALL MPI_FIRST
! INPUT ARGUMENT LIST:
Expand All @@ -46,6 +47,7 @@ SUBROUTINE ALLOCATE_ALL()
use vrbls2d
use soil
use masks
use UPP_MATH
!
!use params_mod
use ctlblk_mod
Expand Down Expand Up @@ -549,5 +551,9 @@ SUBROUTINE ALLOCATE_ALL()
allocate(acswupt(im,jsta_2l:jend_2u))
allocate(swdnt(im,jsta_2l:jend_2u))
allocate(acswdnt(im,jsta_2l:jend_2u))
! UPP_MATH MODULE DIFFERENTIAL EQUATIONS
allocate(ddvdx(im,jsta_2l:jend_2u))
allocate(ddudy(im,jsta_2l:jend_2u))
allocate(uuavg(im,jsta_2l:jend_2u))
!
end
4 changes: 3 additions & 1 deletion sorc/ncep_post.fd/BNDLYR.f
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ SUBROUTINE BNDLYR(PBND,TBND,QBND,RHBND,UBND,VBND, &
! 98-12-22 MIKE BALDWIN - BACK OUT RH OVER ICE
! 00-01-04 JIM TUCCILLO - MPI VERSION
! 02-01-15 MIKE BALDWIN - WRF VERSION
! 20-11-10 JESSE MENG - USE UPP_PHYSICS MODULE
!
! USAGE: CALL BNDLYR(PBND,TBND,QBND,RHBND,UBND,VBND,
! WBND,OMGBND,PWTBND,QCNVBND)
Expand Down Expand Up @@ -72,12 +73,13 @@ SUBROUTINE BNDLYR(PBND,TBND,QBND,RHBND,UBND,VBND, &
jsta_m, jend_m, im, nbnd
use physcons_post, only: con_rd, con_rv, con_eps, con_epsm1
use gridspec_mod, only: gridtype
use UPP_PHYSICS
!
implicit none
!
! DECLARE VARIABLES.
!
real,external :: FPVSNEW
! real,external :: FPVSNEW
real,PARAMETER :: DPBND=30.E2
integer, dimension(IM,jsta:jend,NBND),intent(inout) :: LVLBND
real, dimension(IM,jsta:jend,NBND),intent(inout) :: PBND,TBND, &
Expand Down
Loading