Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
fdf79db
Squashed commit of the following:
climbfuji Mar 17, 2020
580c258
Bugfixes and cmake build system updates required for RRTMGP
climbfuji Mar 19, 2020
b61a00d
Merge branch 'master' of https://github.com/NCAR/ccpp-physics into ad…
climbfuji Mar 19, 2020
d72b212
physics/rrtmgp_lw_gas_optics.F90: manual merge of code in @dustinswal…
climbfuji Mar 19, 2020
fe43bca
Bugfix in physics/rrtmgp_lw_cloud_optics.F90, add 'implicit none' to …
climbfuji Mar 19, 2020
24ce08d
Remove debug print statements
climbfuji Mar 20, 2020
a0bb378
physics/rrtmgp_sw_rte.F90: bugfix from @dustinswales
climbfuji Mar 20, 2020
e8bca85
Cleanup RRTMGP optional argument logic.
dustinswales Mar 23, 2020
1e43ed6
physics/GFS_rrtmgp_sw_post.F90: bugfix, reset heating rate arrays
climbfuji Mar 25, 2020
ba61503
Bugfixes and updates based on code review
climbfuji Mar 26, 2020
c075ee6
Merge pull request #411 from climbfuji/add_rrtmgp_dom
climbfuji Mar 26, 2020
5a1160b
Update README file
ligiabernardet Mar 31, 2020
b95bcb3
Update README file again
ligiabernardet Mar 31, 2020
16357f8
Merge pull request #421 from ligiabernardet/doc_updates
climbfuji Mar 31, 2020
7fef26f
Clean up of radiation tendencies standard names as described in issue…
climbfuji Apr 1, 2020
7a4016b
Merge branch 'dtc/develop' of https://github.com/NCAR/ccpp-physics in…
climbfuji Apr 1, 2020
dc8a5cc
Bugfix in physics/mp_thompson.F90: aerosol arrays may not be allocate…
climbfuji Apr 1, 2020
f288626
Merge pull request #422 from climbfuji/cleanup_radiation_tendencies
climbfuji Apr 2, 2020
4680d9d
CMakeLists.txt: remove unnecessary include directories that are not r…
climbfuji Apr 2, 2020
f8f59aa
Merge pull request #425 from climbfuji/avoid_recompile_without_change
climbfuji Apr 3, 2020
4dc748c
Remove unneeded code for SCM, including an unintentionally left FATAL…
climbfuji Apr 3, 2020
6306d8f
Merge pull request #426 from climbfuji/cleanup_scm_build
climbfuji Apr 3, 2020
7d98913
Merge branch 'bugfix_thompson_noaero_20200401' of https://github.com/…
climbfuji Apr 9, 2020
d9fae0e
Update CMakeLists.txt: require cmake 3.0, remove legacy syntax for po…
climbfuji Apr 10, 2020
80c6fdb
physics/ugwp_driver_v0.F: comment out unnecessary prints to stdout th…
climbfuji Apr 10, 2020
c9059a8
Merge pull request #432 from climbfuji/update_dtc_develop_from_master…
climbfuji Apr 10, 2020
51b8f76
Merge branch 'master' of https://github.com/NCAR/ccpp-physics into HEAD
climbfuji Apr 10, 2020
7726128
Apply missing updates for MG-IN-CCN changes
climbfuji Apr 10, 2020
6dcbd09
Bugfix in physics/GFS_surface_composites.F90 when fractional landmask…
climbfuji Apr 11, 2020
86cdd35
physics/GFS_phys_time_vary.scm.F90: bugfix for OpenMP regions; physic…
climbfuji Apr 13, 2020
316f464
physics/GFS_phys_time_vary.fv3.F90, physics/aerinterp.F90: bugfix for…
climbfuji Apr 13, 2020
0aa8984
Merge pull request #434 from climbfuji/update_dtc_develop_from_master…
climbfuji Apr 14, 2020
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
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[submodule "physics/rte-rrtmgp"]
path = physics/rte-rrtmgp
url = https://github.com/RobertPincus/rte-rrtmgp
branch = dtc/ccpp
73 changes: 26 additions & 47 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,14 @@ if(NOT PROJECT)
endif (NOT PROJECT)

#------------------------------------------------------------------------------
cmake_minimum_required(VERSION 2.8.11)
cmake_minimum_required(VERSION 3.0)

project(ccppphys
VERSION 3.0.0
LANGUAGES C CXX Fortran)

# Use rpaths on MacOSX
set(CMAKE_MACOSX_RPATH 1)

if(POLICY CMP0048)
cmake_policy(SET CMP0048 NEW)
project(ccppphys VERSION 3.0.0)
else(POLICY CMP0048)
project(ccppphys)
set(PROJECT_VERSION 3.0.0)
set(PROJECT_VERSION_MAJOR 3)
set(PROJECT_VERSION_MINOR 0)
set(PROJECT_VERSION_PATCH 0)
endif(POLICY CMP0048)

if(POLICY CMP0042)
cmake_policy(SET CMP0042 NEW)
endif(POLICY CMP0042)
Expand All @@ -29,17 +21,6 @@ endif(POLICY CMP0042)
set(PACKAGE "ccpp-physics")
set(AUTHORS "Grant J. Firl" "Dom Heinzeller")

#------------------------------------------------------------------------------
# Enable Fortran
enable_language(Fortran)

if (PROJECT STREQUAL "CCPP-SCM")
#------------------------------------------------------------------------------
# CMake Modules
# Set the CMake module path
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../framework/cmake")
endif (PROJECT STREQUAL "CCPP-SCM")

#------------------------------------------------------------------------------
# Set OpenMP flags for C/C++/Fortran
if (OPENMP)
Expand Down Expand Up @@ -85,33 +66,38 @@ else(STATIC)
endif(STATIC)

#------------------------------------------------------------------------------
# Add the CCPP include/module directory
set(CCPP_INCLUDE_DIRS "" CACHE FILEPATH "Path to ccpp includes")
set_property(DIRECTORY PROPERTY INCLUDE_DIRECTORIES ${CCPP_INCLUDE_DIRS})

#------------------------------------------------------------------------------
# Add the CCPP library
set(CCPP_LIB_DIRS "" CACHE FILEPATH "Path to ccpp library")
link_directories(${CCPP_LIB_DIRS})
list(APPEND LIBS "ccpp")
# Set the sources: physics type definitions
set(TYPEDEFS $ENV{CCPP_TYPEDEFS})
if(TYPEDEFS)
message(STATUS "Got CCPP TYPEDEFS from environment variable: ${TYPEDEFS}")
else(TYPEDEFS)
include(./CCPP_TYPEDEFS.cmake)
message(STATUS "Got CCPP TYPEDEFS from cmakefile include file: ${TYPEDEFS}")
endif(TYPEDEFS)

# Generate list of Fortran modules from the CCPP type
# definitions that need need to be installed
foreach(typedef_module ${TYPEDEFS})
list(APPEND MODULES_F90 ${CMAKE_CURRENT_BINARY_DIR}/${typedef_module})
endforeach()

#------------------------------------------------------------------------------
# Set the sources: physics schemes
set(SCHEMES $ENV{CCPP_SCHEMES})
if(SCHEMES)
message(INFO "Got CCPP_SCHEMES from environment variable: ${SCHEMES}")
message(STATUS "Got CCPP SCHEMES from environment variable: ${SCHEMES}")
else(SCHEMES)
include(./CCPP_SCHEMES.cmake)
message(INFO "Got SCHEMES from cmakefile include file: ${SCHEMES}")
message(STATUS "Got CCPP SCHEMES from cmakefile include file: ${SCHEMES}")
endif(SCHEMES)

# Set the sources: physics scheme caps
set(CAPS $ENV{CCPP_CAPS})
if(CAPS)
message(INFO "Got CAPS from environment variable: ${CAPS}")
message(STATUS "Got CCPP CAPS from environment variable: ${CAPS}")
else(CAPS)
include(./CCPP_CAPS.cmake)
message(INFO "Got CAPS from cmakefile include file: ${CAPS}")
message(STATUS "Got CCPP CAPS from cmakefile include file: ${CAPS}")
endif(CAPS)

# Create empty lists for schemes with special compiler optimization flags
Expand Down Expand Up @@ -340,12 +326,7 @@ elseif (${CMAKE_Fortran_COMPILER_ID} STREQUAL "PGI")
set_property(SOURCE ${CAPS} APPEND_STRING PROPERTY COMPILE_FLAGS " -Mnobounds ")
endif (${CMAKE_Fortran_COMPILER_ID} STREQUAL "GNU")

if (PROJECT STREQUAL "CCPP-SCM")
INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/ccpp/framework/src)
endif (PROJECT STREQUAL "CCPP-SCM")

#------------------------------------------------------------------------------

if(STATIC)
add_library(ccppphys STATIC ${SCHEMES} ${SCHEMES_SFX_OPT} ${CAPS})
# Generate list of Fortran modules from defined sources
Expand Down Expand Up @@ -398,9 +379,7 @@ if (PROJECT STREQUAL "CCPP-FV3")
FILE ccppphys-config.cmake
DESTINATION lib/cmake
)
if(STATIC)
# Define where to install the C headers and Fortran modules
#install(FILES ${HEADERS_C} DESTINATION include)
install(FILES ${MODULES_F90} DESTINATION include)
endif(STATIC)
# Define where to install the C headers and Fortran modules
#install(FILES ${HEADERS_C} DESTINATION include)
install(FILES ${MODULES_F90} DESTINATION include)
endif (PROJECT STREQUAL "CCPP-FV3")
17 changes: 15 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# GMTB GFS Physics
# CCPP Physics

This repository contains the GFS Physics scheme.
The Common Community Physics Package (CCPP) is designed to facilitate the implementation of physics innovations in state-of-the-art atmospheric models, the use of various models to develop physics, and the acceleration of transition of physics innovations to operational NOAA models.

Please see more information about the CCPP at the locations below.

- [CCPP website hosted by the Developmental Testbed Center (DTC)](https://dtcenter.org/ccpp)
- [CCPP public release information](https://dtcenter.org/community-code/common-community-physics-package-ccpp/ccpp-scm-version-4-0)
- [CCPP Technical Documentation](https://ccpp-techdoc.readthedocs.io/en/latest/)
- [CCPP Scientific Documentation](https://dtcenter.org/GMTB/v4.0/sci_doc/)
- [CCPP Physics GutHub wiki](https://github.com/NCAR/ccpp-physics/wiki)
- [CCPP Framework GitHub wiki](https://github.com/NCAR/ccpp-framework/wiki)

For the use of CCPP with its Single Column Model, see the [Single Column Model User's Guide](https://dtcenter.org/GMTB/v4.0/scm-ccpp-guide-v4.0.pdf).

For the use of CCPP with NOAA's Unified Forecast System (UFS), see the [UFS Medium-Range Application User's Guide](https://ufs-mrweather-app.readthedocs.io/en/latest/) and the [UFS Weather Model User's Guide](https://ufs-weather-model.readthedocs.io/en/latest/).

Questions can be directed to the [CCPP Help Desk](mailto:gmtb-help@ucar.edu). When using the CCPP with NOAA's UFS, questions can be posted in the [UFS Weather Model](https://forums.ufscommunity.org/forum/ufs-weather-model) section of the [UFS Forum](https://forums.ufscommunity.org/)
4 changes: 2 additions & 2 deletions physics/GFS_PBL_generic.meta
Original file line number Diff line number Diff line change
Expand Up @@ -747,7 +747,7 @@
intent = in
optional = F
[htrsw]
standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_timestep
standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_time_step
long_name = total sky sw heating rate
units = K s-1
dimensions = (horizontal_dimension,vertical_dimension)
Expand All @@ -756,7 +756,7 @@
intent = in
optional = F
[htrlw]
standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_timestep
standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_time_step
long_name = total sky lw heating rate
units = K s-1
dimensions = (horizontal_dimension,vertical_dimension)
Expand Down
3 changes: 1 addition & 2 deletions physics/GFS_phys_time_vary.fv3.F90
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ subroutine GFS_phys_time_vary_init (Data, Model, Interstitial, nthrds, errmsg, e
integer :: nb, nblks, nt
integer :: i, j, ix
logical :: non_uniform_blocks

! Initialize CCPP error handling variables
errmsg = ''
errflg = 0
Expand Down Expand Up @@ -167,7 +166,7 @@ subroutine GFS_phys_time_vary_init (Data, Model, Interstitial, nthrds, errmsg, e
! If Model%iaerclm is .true., then ntrcaer == ntrcaerm
ntrcaer = size(Data(1)%Tbd%aer_nm, dim=3)
! Read aerosol climatology
call read_aerdata (Model%me,Model%master,Model%iflip,Model%idate)
call read_aerdata (Model%me,Model%master,Model%iflip,Model%idate,errmsg,errflg)
endif
else
! Update the value of ntrcaer in aerclm_def with the value defined
Expand Down
3 changes: 2 additions & 1 deletion physics/GFS_phys_time_vary.scm.F90
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,8 @@ subroutine GFS_phys_time_vary_init (Grid, Model, Interstitial, Tbd, errmsg, errf
! If Model%iaerclm is .true., then ntrcaer == ntrcaerm
ntrcaer = size(Tbd%aer_nm, dim=3)
! Read aerosol climatology
call read_aerdata (Model%me,Model%master,Model%iflip,Model%idate)
call read_aerdata (Model%me,Model%master,Model%iflip,Model%idate,errmsg,errflg)
if (errflg/=0) return
endif
else
! Update the value of ntrcaer in aerclm_def with the value defined
Expand Down
18 changes: 12 additions & 6 deletions physics/GFS_rrtmg_post.F90
Original file line number Diff line number Diff line change
Expand Up @@ -75,12 +75,18 @@ subroutine GFS_rrtmg_post_run (Model, Grid, Diag, Radtend, Statein, &
if (Model%lssav) then
if (Model%lsswr) then
do i=1,im
Diag%fluxr(i,34) = Diag%fluxr(i,34) + Model%fhswr*aerodp(i,1) ! total aod at 550nm
Diag%fluxr(i,35) = Diag%fluxr(i,35) + Model%fhswr*aerodp(i,2) ! DU aod at 550nm
Diag%fluxr(i,36) = Diag%fluxr(i,36) + Model%fhswr*aerodp(i,3) ! BC aod at 550nm
Diag%fluxr(i,37) = Diag%fluxr(i,37) + Model%fhswr*aerodp(i,4) ! OC aod at 550nm
Diag%fluxr(i,38) = Diag%fluxr(i,38) + Model%fhswr*aerodp(i,5) ! SU aod at 550nm
Diag%fluxr(i,39) = Diag%fluxr(i,39) + Model%fhswr*aerodp(i,6) ! SS aod at 550nm
! Diag%fluxr(i,34) = Diag%fluxr(i,34) + Model%fhswr*aerodp(i,1) ! total aod at 550nm
! Diag%fluxr(i,35) = Diag%fluxr(i,35) + Model%fhswr*aerodp(i,2) ! DU aod at 550nm
! Diag%fluxr(i,36) = Diag%fluxr(i,36) + Model%fhswr*aerodp(i,3) ! BC aod at 550nm
! Diag%fluxr(i,37) = Diag%fluxr(i,37) + Model%fhswr*aerodp(i,4) ! OC aod at 550nm
! Diag%fluxr(i,38) = Diag%fluxr(i,38) + Model%fhswr*aerodp(i,5) ! SU aod at 550nm
! Diag%fluxr(i,39) = Diag%fluxr(i,39) + Model%fhswr*aerodp(i,6) ! SS aod at 550nm
Diag%fluxr(i,34) = aerodp(i,1) ! total aod at 550nm
Diag%fluxr(i,35) = aerodp(i,2) ! DU aod at 550nm
Diag%fluxr(i,36) = aerodp(i,3) ! BC aod at 550nm
Diag%fluxr(i,37) = aerodp(i,4) ! OC aod at 550nm
Diag%fluxr(i,38) = aerodp(i,5) ! SU aod at 550nm
Diag%fluxr(i,39) = aerodp(i,6) ! SS aod at 550nm
enddo
endif

Expand Down
Loading