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

latest version of fv_regional_bc.F90 bug fix #158

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
4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[submodule "atmos_cubed_sphere"]
path = atmos_cubed_sphere
url = https://github.com/NOAA-GFDL/GFDL_atmos_cubed_sphere
branch = dev/emc
url = https://github.com/SamuelTrahanNOAA/GFDL_atmos_cubed_sphere
branch = bugfix/rrfs-debug-mode
[submodule "ccpp/framework"]
path = ccpp/framework
url = https://github.com/NCAR/ccpp-framework
Expand Down
10 changes: 8 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ set(use_WRTCOMP ON)
set(GFS_PHYS ON)
set(GFS_TYPES ON)
set(USE_GFSL63 ON)
if(MOVING_NEST)
set(MOVING_NEST ON)
endif()
add_subdirectory(atmos_cubed_sphere)

###############################################################################
Expand All @@ -22,7 +25,7 @@ add_subdirectory(atmos_cubed_sphere)
if(INLINE_POST)
set(BUILD_POSTEXEC OFF)
add_subdirectory(upp)
set(POST_SRC io/inline_post.F90 io/post_nems_routines.F90 io/post_gfs.F90 io/post_regional.F90)
set(POST_SRC io/inline_post.F90 io/post_nems_routines.F90 io/post_fv3.F90)
else()
set(POST_SRC io/inline_post_stub.F90)
list(APPEND _fv3atm_defs_private NO_INLINE_POST)
Expand All @@ -32,6 +35,10 @@ if(NOT PARALLEL_NETCDF)
list(APPEND _fv3atm_defs_private NO_PARALLEL_NETCDF)
endif()

if(MOVING_NEST)
list(APPEND _fv3atm_defs_private MOVING_NEST)
endif()

add_library(fv3atm
atmos_model.F90
fv3_cap.F90
Expand All @@ -43,7 +50,6 @@ add_library(fv3atm
cpl/module_cap_cpl.F90
io/FV3GFS_io.F90
io/module_write_netcdf.F90
io/module_write_netcdf_parallel.F90
io/module_fv3_io_def.F90
io/module_write_internal_state.F90
io/module_wrt_grid_comp.F90
Expand Down
500 changes: 323 additions & 177 deletions atmos_model.F90

Large diffs are not rendered by default.

17 changes: 2 additions & 15 deletions ccpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,9 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
message(STATUS "Setting build type to 'Release' as none was specified.")
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE)
# Set the possible values of build type for cmake-gui
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "Coverage")
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release")
endif()

#------------------------------------------------------------------------------
# CMake Modules
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/framework/cmake")

#------------------------------------------------------------------------------
# Call to CCPP code generator
if(DEBUG)
Expand Down Expand Up @@ -54,21 +50,13 @@ if(MPI)
add_definitions(-DMPI)
endif()

#------------------------------------------------------------------------------
# Set additional flags for debug build
if(DEBUG)
if(CMAKE_Fortran_COMPILER_ID MATCHES "Intel")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -init=snan,arrays")
endif()
endif()

#------------------------------------------------------------------------------
# Set flag for 32bit dynamics build
if(32BIT)
message(STATUS "Compile CCPP slow physics with 64-bit precision, fast physics with 32-bit precision")
add_definitions(-DOVERLOAD_R4)
if(CMAKE_Fortran_COMPILER_ID MATCHES "Intel")
set(CMAKE_Fortran_FLAGS_PHYSICS "-real-size 64 -no-prec-div -no-prec-sqrt")
set(CMAKE_Fortran_FLAGS_PHYSICS "-real-size 64")
elseif(CMAKE_Fortran_COMPILER_ID MATCHES "GNU")
set(CMAKE_Fortran_FLAGS_PHYSICS "-fdefault-real-8 -fdefault-double-8")
endif()
Expand Down Expand Up @@ -117,7 +105,6 @@ add_library(
# Compile GFS_diagnostics.F90 without optimization, this leads to out of memory errors on wcoss_dell_p3
set_property(SOURCE driver/GFS_diagnostics.F90 APPEND_STRING PROPERTY COMPILE_FLAGS "-O0")


target_link_libraries(fv3ccpp PUBLIC ccpp_framework)
target_link_libraries(fv3ccpp PUBLIC ccpp_physics)

Expand Down
99 changes: 63 additions & 36 deletions ccpp/config/ccpp_prebuild_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,15 +47,15 @@
'module_radlw_parameters' : '',
},
'CCPP_typedefs' : {
'CCPP_interstitial_type' : 'CCPP_interstitial',
'GFS_interstitial_type' : 'GFS_Interstitial(cdata%thrd_no)',
'GFDL_interstitial_type' : 'GFDL_interstitial',
'CCPP_typedefs' : '',
},
'CCPP_data' : {
'CCPP_data' : '',
},
'GFS_typedefs' : {
'GFS_control_type' : 'GFS_Control',
'GFS_interstitial_type' : 'GFS_Interstitial(cdata%thrd_no)',
'GFS_data_type' : 'GFS_Data(cdata%blk_no)',
'GFS_diag_type' : 'GFS_Data(cdata%blk_no)%Intdiag',
'GFS_tbd_type' : 'GFS_Data(cdata%blk_no)%Tbd',
Expand Down Expand Up @@ -96,11 +96,16 @@
# Relative path to source (from where ccpp_prebuild.py is called) : [ list of physics sets in which scheme may be called ];
# current restrictions are that each scheme can only belong to one physics set, and all schemes within one group in the
# suite definition file have to belong to the same physics set
'physics/physics/GFS_DCNV_generic.F90',
'physics/physics/GFS_GWD_generic.F90',
'physics/physics/GFS_MP_generic.F90',
'physics/physics/GFS_PBL_generic.F90',
'physics/physics/GFS_SCNV_generic.F90',
'physics/physics/GFS_DCNV_generic_pre.F90',
'physics/physics/GFS_DCNV_generic_post.F90',
'physics/physics/GFS_GWD_generic_pre.F90',
'physics/physics/GFS_GWD_generic_post.F90',
'physics/physics/GFS_MP_generic_pre.F90',
'physics/physics/GFS_MP_generic_post.F90',
'physics/physics/GFS_PBL_generic_pre.F90',
'physics/physics/GFS_PBL_generic_post.F90',
'physics/physics/GFS_SCNV_generic_pre.F90',
'physics/physics/GFS_SCNV_generic_post.F90',
'physics/physics/GFS_debug.F90',
'physics/physics/GFS_phys_time_vary.fv3.F90',
'physics/physics/GFS_rad_time_vary.fv3.F90',
Expand All @@ -109,10 +114,22 @@
'physics/physics/GFS_rrtmg_pre.F90',
'physics/physics/GFS_rrtmg_setup.F90',
'physics/physics/GFS_stochastics.F90',
'physics/physics/GFS_suite_interstitial.F90',
'physics/physics/GFS_surface_generic.F90',
'physics/physics/GFS_surface_composites.F90',
'physics/physics/GFS_surface_loop_control.F90',
'physics/physics/GFS_suite_interstitial_rad_reset.F90',
'physics/physics/GFS_suite_interstitial_phys_reset.F90',
'physics/physics/GFS_suite_interstitial_1.F90',
'physics/physics/GFS_suite_interstitial_2.F90',
'physics/physics/GFS_suite_stateout_reset.F90',
'physics/physics/GFS_suite_stateout_update.F90',
'physics/physics/GFS_suite_interstitial_3.F90',
'physics/physics/GFS_suite_interstitial_4.F90',
'physics/physics/GFS_suite_interstitial_5.F90',
'physics/physics/GFS_surface_generic_pre.F90',
'physics/physics/GFS_surface_generic_post.F90',
'physics/physics/GFS_surface_composites_pre.F90',
'physics/physics/GFS_surface_composites_inter.F90',
'physics/physics/GFS_surface_composites_post.F90',
'physics/physics/GFS_surface_loop_control_part1.F90',
'physics/physics/GFS_surface_loop_control_part2.F90',
'physics/physics/GFS_time_vary_pre.fv3.F90',
'physics/physics/cires_ugwp.F90',
'physics/physics/cires_ugwp_post.F90',
Expand All @@ -121,20 +138,25 @@
'physics/physics/ugwpv1_gsldrag.F90',
'physics/physics/ugwpv1_gsldrag_post.F90',
'physics/physics/cnvc90.f',
'physics/physics/cs_conv_pre.F90',
'physics/physics/cs_conv.F90',
'physics/physics/cs_conv_post.F90',
'physics/physics/cs_conv_aw_adj.F90',
'physics/physics/cu_ntiedtke_pre.F90',
'physics/physics/cu_ntiedtke.F90',
'physics/physics/cu_ntiedtke_post.F90',
'physics/physics/dcyc2.f',
'physics/physics/dcyc2t3.f',
'physics/physics/drag_suite.F90',
'physics/physics/gcm_shoc.F90',
'physics/physics/shoc.F90',
'physics/physics/get_prs_fv3.F90',
'physics/physics/get_phi_fv3.F90',
'physics/physics/gfdl_cloud_microphys.F90',
'physics/physics/gfdl_fv_sat_adj.F90',
'physics/physics/fv_sat_adj.F90',
'physics/physics/gfdl_sfc_layer.F90',
'physics/physics/gscond.f',
'physics/physics/zhaocarr_gscond.f',
'physics/physics/gwdc_pre.f',
'physics/physics/gwdc.f',
'physics/physics/gwdc_post.f',
'physics/physics/gwdps.f',
'physics/physics/h2ophys.f',
'physics/physics/samfdeepcnv.f',
Expand All @@ -143,28 +165,30 @@
'physics/physics/shalcnv.F',
'physics/physics/maximum_hourly_diagnostics.F90',
'physics/physics/m_micro.F90',
'physics/physics/m_micro_interstitial.F90',
'physics/physics/m_micro_pre.F90',
'physics/physics/m_micro_post.F90',
'physics/physics/cu_gf_driver_pre.F90',
'physics/physics/cu_gf_driver.F90',
'physics/physics/cu_gf_driver_post.F90',
'physics/physics/moninedmf.f',
'physics/physics/hedmf.f',
'physics/physics/moninshoc.f',
'physics/physics/satmedmfvdif.F',
'physics/physics/satmedmfvdifq.F',
'physics/physics/shinhongvdif.F90',
'physics/physics/ysuvdif.F90',
'physics/physics/module_MYNNPBL_wrapper.F90',
'physics/physics/module_MYNNSFC_wrapper.F90',
'physics/physics/module_SGSCloud_RadPre.F90',
'physics/physics/module_SGSCloud_RadPost.F90',
'physics/physics/module_MYJSFC_wrapper.F90',
'physics/physics/module_MYJPBL_wrapper.F90',
'physics/physics/mynnedmf_wrapper.F90',
'physics/physics/mynnsfc_wrapper.F90',
'physics/physics/sgscloud_radpre.F90',
'physics/physics/sgscloud_radpost.F90',
'physics/physics/myjsfc_wrapper.F90',
'physics/physics/myjpbl_wrapper.F90',
'physics/physics/mp_thompson_pre.F90',
'physics/physics/mp_thompson.F90',
'physics/physics/mp_thompson_post.F90',
'physics/physics/mp_nssl.F90' ,
'physics/physics/ozphys.f',
'physics/physics/ozphys_2015.f',
'physics/physics/precpd.f',
'physics/physics/zhaocarr_precpd.f',
'physics/physics/phys_tend.F90',
'physics/physics/radlw_main.F90',
'physics/physics/radsw_main.F90',
Expand All @@ -173,47 +197,49 @@
'physics/physics/rrtmg_lw_post.F90',
'physics/physics/rrtmg_lw_pre.F90',
'physics/physics/rrtmg_sw_post.F90',
'physics/physics/rrtmg_sw_pre.F90',
'physics/physics/rad_sw_pre.F90',
'physics/physics/sfc_diag.f',
'physics/physics/sfc_diag_post.F90',
'physics/physics/sfc_drv_ruc.F90',
'physics/physics/lsm_ruc.F90',
'physics/physics/sfc_cice.f',
'physics/physics/sfc_diff.f',
'physics/physics/sfc_drv.f',
'physics/physics/sfc_noahmp_drv.F90',
'physics/physics/lsm_noah.f',
'physics/physics/noahmpdrv.F90',
'physics/physics/flake_driver.F90',
'physics/physics/sfc_nst_pre.f',
'physics/physics/sfc_nst.f',
'physics/physics/sfc_nst_post.f',
'physics/physics/sfc_ocean.F',
'physics/physics/sfc_sice.f',
# HAFS FER_HIRES
'physics/physics/mp_fer_hires.F90',
# SMOKE
'physics/physics/smoke/rrfs_smoke_wrapper.F90',
'physics/physics/smoke/rrfs_smoke_postpbl.F90',
'physics/physics/smoke/rrfs_smoke_lsdep_wrapper.F90',
# RRTMGP
'physics/physics/rrtmgp_lw_gas_optics.F90',
'physics/physics/rrtmgp_lw_cloud_optics.F90',
'physics/physics/rrtmgp_sw_gas_optics.F90',
'physics/physics/rrtmgp_sw_cloud_optics.F90',
'physics/physics/rrtmgp_sw_aerosol_optics.F90',
'physics/physics/rrtmgp_aerosol_optics.F90',
'physics/physics/rrtmgp_lw_rte.F90',
'physics/physics/rrtmgp_sw_rte.F90',
'physics/physics/rrtmgp_lw_aerosol_optics.F90',
'physics/physics/GFS_rrtmgp_setup.F90',
'physics/physics/GFS_rrtmgp_pre.F90',
'physics/physics/rrtmgp_lw_pre.F90',
'physics/physics/GFS_rrtmgp_sw_pre.F90',
'physics/physics/GFS_rrtmgp_lw_post.F90',
'physics/physics/rrtmgp_lw_cloud_sampling.F90',
'physics/physics/rrtmgp_sw_cloud_sampling.F90',
'physics/physics/GFS_cloud_diagnostics.F90',
'physics/physics/GFS_rrtmgp_thompsonmp_pre.F90',
'physics/physics/GFS_rrtmgp_gfdlmp_pre.F90',
'physics/physics/GFS_rrtmgp_zhaocarr_pre.F90',
'physics/physics/GFS_rrtmgp_cloud_overlap_pre.F90',
'physics/physics/GFS_rrtmgp_cloud_mp.F90',
'physics/physics/GFS_rrtmgp_cloud_overlap.F90',
'physics/physics/GFS_rrtmgp_sw_post.F90'
]

# Default build dir, relative to current working directory,
# if not specified as command-line argument
DEFAULT_BUILD_DIR = 'FV3'
DEFAULT_BUILD_DIR = 'build'

# Auto-generated makefile/cmakefile snippets that contain all type definitions
TYPEDEFS_MAKEFILE = '{build_dir}/physics/CCPP_TYPEDEFS.mk'
Expand Down Expand Up @@ -241,6 +267,7 @@
STATIC_API_SRCFILE = '{build_dir}/physics/CCPP_STATIC_API.sh'

# Directory for writing HTML pages generated from metadata files
# used by metadata2html.py for generating scientific documentation
METADATA_HTML_OUTPUT_DIR = '{build_dir}/physics/physics/docs'

# HTML document containing the model-defined CCPP variables
Expand Down
10 changes: 5 additions & 5 deletions ccpp/data/CCPP_data.F90
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ module CCPP_data
!!

use ccpp_types, only: ccpp_t
use CCPP_typedefs, only: CCPP_interstitial_type
use CCPP_typedefs, only: GFS_interstitial_type, &
GFDL_interstitial_type
use GFS_typedefs, only: GFS_control_type, &
GFS_data_type, &
GFS_interstitial_type
GFS_data_type

implicit none

Expand All @@ -18,7 +18,7 @@ module CCPP_data
cdata_domain, &
cdata_block, &
ccpp_suite, &
CCPP_interstitial, &
GFDL_interstitial, &
GFS_control, &
GFS_data, &
GFS_interstitial
Expand All @@ -34,7 +34,7 @@ module CCPP_data
!------------------------------------------------------!
! CCPP data containers for dynamics (fast physics) !
!------------------------------------------------------!
type(CCPP_interstitial_type), save, target :: CCPP_interstitial
type(GFDL_interstitial_type), save, target :: GFDL_interstitial

!------------------------------------------------------!
! CCPP containers for the six tiles used in dynamics, !
Expand Down
8 changes: 4 additions & 4 deletions ccpp/data/CCPP_data.meta
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@
units = DDT
dimensions = ()
type = ccpp_t
[CCPP_interstitial]
standard_name = CCPP_interstitial_type_instance
long_name = instance of derived type CCPP_interstitial_type
[GFDL_interstitial]
standard_name = GFDL_interstitial_type_instance
long_name = instance of derived type GFDL_interstitial_type
units = DDT
dimensions = ()
type = CCPP_interstitial_type
type = GFDL_interstitial_type
[GFS_Control]
standard_name = GFS_control_type_instance
long_name = instance of derived type GFS_control_type
Expand Down
Loading