diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index 90f7f90d70..47821bc23e 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -1,20 +1,32 @@
+
+## PR Author Checklist:
+
+- [ ] I have linked PR's from all sub-components involved in section below.
+- [ ] I am confirming reviews are completed in ALL sub-component PR's.
+- [ ] I have run the full RT suite on either Hera/Cheyenne AND have attached the log to this PR below this line:
+ - LOG:
+- [ ] I have added the list of all failed regression tests to "Anticipated changes" section.
+- [ ] I have filled out all sections of the template.
+
## Description
-
+
-### Input data additions/changes
-- [ ] No changes are expected to input data.
-- [ ] Changes are expected to input data:
- - [ ] New input data.
- - [ ] Updated input data.
-### Anticipated changes to regression tests:
-- [ ] No changes are expected to any regression test.
-- [ ] Changes are expected to the following tests:
-
+## Linked Issues and Pull Requests
+### Associated UFSWM Issue to close
+
-## Subcomponents involved:
+
+### Subcomponent Pull Requests
+
+
+
+### Blocking Dependencies
+
+
+
+### Subcomponents involved:
- [ ] AQM
- [ ] CDEPS
- [ ] CICE
@@ -29,47 +41,42 @@ Provide a detailed description of what this PR does. What bug does it fix, or wh
- [ ] stochastic_physics
- [ ] none
-### Library Updates/Changes
+## Anticipated Changes
+### Input data
+- [ ] No changes are expected to input data.
+- [ ] Changes are expected to input data:
+ - [ ] New input data.
+ - [ ] Updated input data.
+
+### Regression Tests:
+- [ ] No changes are expected to any regression test.
+- [ ] Changes are expected to the following tests:
+
+Tests effected by changes in this PR:
+
+
+
+
+### Libraries
- [ ] Not Needed
-- [ ] Create separate issue in [JCSDA/spack-stack](https://github.com/JCSDA/spack-stack) asking for update to library. Include library name, library version.
-- [ ] Add issue link from JCSDA/spack-stack following this item
-
-
-### Combined with PR's (If Applicable):
-
-## Commit Queue Checklist:
-
-- [ ] Link PR's from all sub-components involved in section below
-- [ ] Confirm reviews completed in ALL sub-component PR's
-- [ ] Add all appropriate labels to this PR.
-- [ ] Run full RT suite on either Hera/Cheyenne AND attach log to a PR comment.
-- [ ] Add list of any failed regression tests to "Anticipated changes to regression tests" section.
-
-## Linked PR's and Issues:
-
-
-## Testing Day Checklist:
-
+- [ ] Needed
+ - [ ] Create separate issue in [JCSDA/spack-stack](https://github.com/JCSDA/spack-stack) asking for update to library. Include library name, library version.
+ - [ ] Add issue link from JCSDA/spack-stack following this item
+
+
+
+Code Managers Log
+
- [ ] This PR is up-to-date with the top of all sub-component repositories except for those sub-components which are the subject of this PR.
- [ ] Move new/updated input data on RDHPCS Hera and propagate input data changes to all supported systems.
+ - [ ] N/A
-### Testing Log (for CM's):
+### Testing Log:
- RDHPCS
- [ ] Hera
- [ ] Orion
+ - [ ] Hercules
- [ ] Jet
- [ ] Gaea
- [ ] Cheyenne
@@ -81,3 +88,4 @@ Please consult the ufs-weather-model [wiki](https://github.com/ufs-community/ufs
- opnReqTest
- [ ] N/A
- [ ] Log attached to comment
+
diff --git a/.gitmodules b/.gitmodules
index 51484d02ca..93401d0fce 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,7 +1,9 @@
[submodule "FV3"]
path = FV3
- url = https://github.com/NCAR/fv3atm
- branch = main
+ #url = https://github.com/NCAR/fv3atm
+ #branch = main
+ url = https://github.com/grantfirl/fv3atm
+ branch = ufs-dev-PR111
[submodule "WW3"]
path = WW3
url = https://github.com/NOAA-EMC/WW3
diff --git a/.readthedocs.yaml b/.readthedocs.yaml
index 09ebb7306d..37ba7c6ff0 100644
--- a/.readthedocs.yaml
+++ b/.readthedocs.yaml
@@ -4,6 +4,10 @@
# Required
version: 2
+build:
+ os: ubuntu-20.04
+ tools:
+ python: "3.9"
# Build documentation in the docs/ directory with Sphinx
sphinx:
@@ -18,6 +22,5 @@ formats: all
# Optionally set the version of Python and requirements required to build your docs
python:
- version: 3.7
install:
- requirements: doc/UsersGuide/requirements.txt
diff --git a/CDEPS-interface/CMakeLists.txt b/CDEPS-interface/CMakeLists.txt
index be502ec8d6..2b41ea473d 100644
--- a/CDEPS-interface/CMakeLists.txt
+++ b/CDEPS-interface/CMakeLists.txt
@@ -1,6 +1,8 @@
# CDEPS compiler flags
if(CMAKE_Fortran_COMPILER_ID MATCHES "GNU")
set(CMAKE_Fortran_FLAGS "-g -fbacktrace -ffree-line-length-none")
+ #Set CPP defintions for the ufs/cdeps_share target library
+ list(APPEND CDEPS_SHARE_DEFS "CPRGNU")
if(${CMAKE_Fortran_COMPILER_VERSION} VERSION_GREATER_EQUAL 10)
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-argument-mismatch -fallow-invalid-boz")
endif()
@@ -11,6 +13,8 @@ elseif(CMAKE_Fortran_COMPILER_ID MATCHES "Intel")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -O -assume realloc_lhs")
set(CMAKE_Fortran_FLAGS_RELEASE "-O2 -fp-model precise")
set(CMAKE_Fortran_FLAGS_DEBUG "-O0 -check -check noarg_temp_created -check nopointer -fpe0 -ftrapuv -init=snan,arrays")
+ #Set CPP defintions for the ufs/cdeps_share target library
+ list(APPEND CDEPS_SHARE_DEFS "CPRINTEL")
else()
message(WARNING "Fortran compiler with ID ${CMAKE_Fortran_COMPILER_ID} will be used with CMake default options")
endif()
@@ -23,6 +27,7 @@ add_library(share OBJECT ${cdeps_share_files} ${ufs_cdeps_share_files})
set_target_properties(share PROPERTIES Fortran_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod)
target_include_directories(share PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/ufs/cdeps_share)
target_include_directories(share PRIVATE $)
+target_compile_definitions(share PRIVATE ${CDEPS_SHARE_DEFS})
target_link_libraries(share PRIVATE esmf)
# CDEPS/streams
diff --git a/CDEPS-interface/ufs/cdeps_share/shr_assert_mod.F90 b/CDEPS-interface/ufs/cdeps_share/shr_assert_mod.F90
index 487ea6470f..3accfb1c1e 100644
--- a/CDEPS-interface/ufs/cdeps_share/shr_assert_mod.F90
+++ b/CDEPS-interface/ufs/cdeps_share/shr_assert_mod.F90
@@ -11,7 +11,8 @@ module shr_assert_mod
r4 => shr_kind_r4, &
r8 => shr_kind_r8, &
i4 => shr_kind_i4, &
- i8 => shr_kind_i8
+ i8 => shr_kind_i8, &
+ CL => shr_kind_CL
use shr_sys_mod, only: &
shr_sys_abort
@@ -35,7 +36,6 @@ module shr_assert_mod
! Assert that a numerical value satisfies certain constraints.
public :: shr_assert_in_domain
-# 33 "shr_assert_mod.F90.in"
interface shr_assert_all
module procedure shr_assert
! DIMS 1,2,3,4,5,6,7
@@ -54,7 +54,6 @@ module shr_assert_mod
module procedure shr_assert_all_7d
end interface
-# 39 "shr_assert_mod.F90.in"
interface shr_assert_any
module procedure shr_assert
! DIMS 1,2,3,4,5,6,7
@@ -73,7 +72,6 @@ module shr_assert_mod
module procedure shr_assert_any_7d
end interface
-# 45 "shr_assert_mod.F90.in"
interface shr_assert_in_domain
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
@@ -175,7 +173,6 @@ module shr_assert_mod
! Private utilities.
-# 53 "shr_assert_mod.F90.in"
interface print_bad_loc
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
@@ -275,7 +272,6 @@ module shr_assert_mod
module procedure print_bad_loc_7d_long
end interface
-# 59 "shr_assert_mod.F90.in"
interface find_first_loc
! DIMS 0,1,2,3,4,5,6,7
module procedure find_first_loc_0d
@@ -295,7 +291,6 @@ module shr_assert_mod
module procedure find_first_loc_7d
end interface
-# 64 "shr_assert_mod.F90.in"
interface within_tolerance
! TYPE double,real,int,long
module procedure within_tolerance_double
@@ -307,10 +302,8 @@ module shr_assert_mod
module procedure within_tolerance_long
end interface
-# 69 "shr_assert_mod.F90.in"
contains
-# 71 "shr_assert_mod.F90.in"
subroutine shr_assert(var, msg, file, line)
! Logical being asserted
@@ -322,8 +315,8 @@ subroutine shr_assert(var, msg, file, line)
character(len=*), intent(in), optional :: file
integer , intent(in), optional :: line
- character(len=:), allocatable :: full_msg
-
+ character(len=CL) :: full_msg
+
full_msg = ''
if (.not. var) then
full_msg = 'ERROR'
@@ -339,11 +332,9 @@ subroutine shr_assert(var, msg, file, line)
call shr_sys_abort(full_msg)
end if
-# 99 "shr_assert_mod.F90.in"
end subroutine shr_assert
! DIMS 1,2,3,4,5,6,7
-# 102 "shr_assert_mod.F90.in"
subroutine shr_assert_all_1d(var, msg, file, line)
! Logical being asserted
@@ -357,10 +348,8 @@ subroutine shr_assert_all_1d(var, msg, file, line)
call shr_assert(all(var), msg=msg, file=file, line=line)
-# 115 "shr_assert_mod.F90.in"
end subroutine shr_assert_all_1d
! DIMS 1,2,3,4,5,6,7
-# 102 "shr_assert_mod.F90.in"
subroutine shr_assert_all_2d(var, msg, file, line)
! Logical being asserted
@@ -374,10 +363,8 @@ subroutine shr_assert_all_2d(var, msg, file, line)
call shr_assert(all(var), msg=msg, file=file, line=line)
-# 115 "shr_assert_mod.F90.in"
end subroutine shr_assert_all_2d
! DIMS 1,2,3,4,5,6,7
-# 102 "shr_assert_mod.F90.in"
subroutine shr_assert_all_3d(var, msg, file, line)
! Logical being asserted
@@ -391,10 +378,8 @@ subroutine shr_assert_all_3d(var, msg, file, line)
call shr_assert(all(var), msg=msg, file=file, line=line)
-# 115 "shr_assert_mod.F90.in"
end subroutine shr_assert_all_3d
! DIMS 1,2,3,4,5,6,7
-# 102 "shr_assert_mod.F90.in"
subroutine shr_assert_all_4d(var, msg, file, line)
! Logical being asserted
@@ -408,10 +393,8 @@ subroutine shr_assert_all_4d(var, msg, file, line)
call shr_assert(all(var), msg=msg, file=file, line=line)
-# 115 "shr_assert_mod.F90.in"
end subroutine shr_assert_all_4d
! DIMS 1,2,3,4,5,6,7
-# 102 "shr_assert_mod.F90.in"
subroutine shr_assert_all_5d(var, msg, file, line)
! Logical being asserted
@@ -425,10 +408,8 @@ subroutine shr_assert_all_5d(var, msg, file, line)
call shr_assert(all(var), msg=msg, file=file, line=line)
-# 115 "shr_assert_mod.F90.in"
end subroutine shr_assert_all_5d
! DIMS 1,2,3,4,5,6,7
-# 102 "shr_assert_mod.F90.in"
subroutine shr_assert_all_6d(var, msg, file, line)
! Logical being asserted
@@ -442,10 +423,8 @@ subroutine shr_assert_all_6d(var, msg, file, line)
call shr_assert(all(var), msg=msg, file=file, line=line)
-# 115 "shr_assert_mod.F90.in"
end subroutine shr_assert_all_6d
! DIMS 1,2,3,4,5,6,7
-# 102 "shr_assert_mod.F90.in"
subroutine shr_assert_all_7d(var, msg, file, line)
! Logical being asserted
@@ -459,11 +438,9 @@ subroutine shr_assert_all_7d(var, msg, file, line)
call shr_assert(all(var), msg=msg, file=file, line=line)
-# 115 "shr_assert_mod.F90.in"
end subroutine shr_assert_all_7d
! DIMS 1,2,3,4,5,6,7
-# 118 "shr_assert_mod.F90.in"
subroutine shr_assert_any_1d(var, msg, file, line)
! Logical being asserted
@@ -477,10 +454,8 @@ subroutine shr_assert_any_1d(var, msg, file, line)
call shr_assert(any(var), msg=msg, file=file, line=line)
-# 131 "shr_assert_mod.F90.in"
end subroutine shr_assert_any_1d
! DIMS 1,2,3,4,5,6,7
-# 118 "shr_assert_mod.F90.in"
subroutine shr_assert_any_2d(var, msg, file, line)
! Logical being asserted
@@ -494,10 +469,8 @@ subroutine shr_assert_any_2d(var, msg, file, line)
call shr_assert(any(var), msg=msg, file=file, line=line)
-# 131 "shr_assert_mod.F90.in"
end subroutine shr_assert_any_2d
! DIMS 1,2,3,4,5,6,7
-# 118 "shr_assert_mod.F90.in"
subroutine shr_assert_any_3d(var, msg, file, line)
! Logical being asserted
@@ -511,10 +484,8 @@ subroutine shr_assert_any_3d(var, msg, file, line)
call shr_assert(any(var), msg=msg, file=file, line=line)
-# 131 "shr_assert_mod.F90.in"
end subroutine shr_assert_any_3d
! DIMS 1,2,3,4,5,6,7
-# 118 "shr_assert_mod.F90.in"
subroutine shr_assert_any_4d(var, msg, file, line)
! Logical being asserted
@@ -528,10 +499,8 @@ subroutine shr_assert_any_4d(var, msg, file, line)
call shr_assert(any(var), msg=msg, file=file, line=line)
-# 131 "shr_assert_mod.F90.in"
end subroutine shr_assert_any_4d
! DIMS 1,2,3,4,5,6,7
-# 118 "shr_assert_mod.F90.in"
subroutine shr_assert_any_5d(var, msg, file, line)
! Logical being asserted
@@ -545,10 +514,8 @@ subroutine shr_assert_any_5d(var, msg, file, line)
call shr_assert(any(var), msg=msg, file=file, line=line)
-# 131 "shr_assert_mod.F90.in"
end subroutine shr_assert_any_5d
! DIMS 1,2,3,4,5,6,7
-# 118 "shr_assert_mod.F90.in"
subroutine shr_assert_any_6d(var, msg, file, line)
! Logical being asserted
@@ -562,10 +529,8 @@ subroutine shr_assert_any_6d(var, msg, file, line)
call shr_assert(any(var), msg=msg, file=file, line=line)
-# 131 "shr_assert_mod.F90.in"
end subroutine shr_assert_any_6d
! DIMS 1,2,3,4,5,6,7
-# 118 "shr_assert_mod.F90.in"
subroutine shr_assert_any_7d(var, msg, file, line)
! Logical being asserted
@@ -579,7 +544,6 @@ subroutine shr_assert_any_7d(var, msg, file, line)
call shr_assert(any(var), msg=msg, file=file, line=line)
-# 131 "shr_assert_mod.F90.in"
end subroutine shr_assert_any_7d
!--------------------------------------------------------------------------
@@ -587,7 +551,6 @@ end subroutine shr_assert_any_7d
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_0d_double(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -783,11 +746,9 @@ subroutine shr_assert_in_domain_0d_double(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_0d_double
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_1d_double(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -983,11 +944,9 @@ subroutine shr_assert_in_domain_1d_double(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_1d_double
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_2d_double(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -1183,11 +1142,9 @@ subroutine shr_assert_in_domain_2d_double(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_2d_double
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_3d_double(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -1383,11 +1340,9 @@ subroutine shr_assert_in_domain_3d_double(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_3d_double
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_4d_double(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -1583,11 +1538,9 @@ subroutine shr_assert_in_domain_4d_double(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_4d_double
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_5d_double(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -1783,11 +1736,9 @@ subroutine shr_assert_in_domain_5d_double(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_5d_double
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_6d_double(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -1983,11 +1934,9 @@ subroutine shr_assert_in_domain_6d_double(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_6d_double
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_7d_double(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -2183,11 +2132,9 @@ subroutine shr_assert_in_domain_7d_double(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_7d_double
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_0d_real(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -2383,11 +2330,9 @@ subroutine shr_assert_in_domain_0d_real(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_0d_real
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_1d_real(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -2583,11 +2528,9 @@ subroutine shr_assert_in_domain_1d_real(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_1d_real
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_2d_real(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -2783,11 +2726,9 @@ subroutine shr_assert_in_domain_2d_real(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_2d_real
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_3d_real(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -2983,11 +2924,9 @@ subroutine shr_assert_in_domain_3d_real(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_3d_real
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_4d_real(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -3183,11 +3122,9 @@ subroutine shr_assert_in_domain_4d_real(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_4d_real
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_5d_real(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -3383,11 +3320,9 @@ subroutine shr_assert_in_domain_5d_real(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_5d_real
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_6d_real(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -3583,11 +3518,9 @@ subroutine shr_assert_in_domain_6d_real(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_6d_real
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_7d_real(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -3783,11 +3716,9 @@ subroutine shr_assert_in_domain_7d_real(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_7d_real
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_0d_int(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -3983,11 +3914,9 @@ subroutine shr_assert_in_domain_0d_int(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_0d_int
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_1d_int(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -4183,11 +4112,9 @@ subroutine shr_assert_in_domain_1d_int(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_1d_int
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_2d_int(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -4383,11 +4310,9 @@ subroutine shr_assert_in_domain_2d_int(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_2d_int
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_3d_int(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -4583,11 +4508,9 @@ subroutine shr_assert_in_domain_3d_int(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_3d_int
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_4d_int(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -4783,11 +4706,9 @@ subroutine shr_assert_in_domain_4d_int(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_4d_int
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_5d_int(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -4983,11 +4904,9 @@ subroutine shr_assert_in_domain_5d_int(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_5d_int
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_6d_int(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -5183,11 +5102,9 @@ subroutine shr_assert_in_domain_6d_int(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_6d_int
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_7d_int(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -5383,11 +5300,9 @@ subroutine shr_assert_in_domain_7d_int(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_7d_int
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_0d_long(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -5583,11 +5498,9 @@ subroutine shr_assert_in_domain_0d_long(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_0d_long
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_1d_long(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -5783,11 +5696,9 @@ subroutine shr_assert_in_domain_1d_long(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_1d_long
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_2d_long(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -5983,11 +5894,9 @@ subroutine shr_assert_in_domain_2d_long(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_2d_long
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_3d_long(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -6183,11 +6092,9 @@ subroutine shr_assert_in_domain_3d_long(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_3d_long
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_4d_long(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -6383,11 +6290,9 @@ subroutine shr_assert_in_domain_4d_long(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_4d_long
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_5d_long(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -6583,11 +6488,9 @@ subroutine shr_assert_in_domain_5d_long(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_5d_long
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_6d_long(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -6783,11 +6686,9 @@ subroutine shr_assert_in_domain_6d_long(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_6d_long
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 138 "shr_assert_mod.F90.in"
subroutine shr_assert_in_domain_7d_long(var, varname, msg, &
is_nan, lt, gt, le, ge, eq, ne, abs_tol)
@@ -6983,7 +6884,6 @@ subroutine shr_assert_in_domain_7d_long(var, varname, msg, &
#undef GEN_SIZE
#undef GEN_ALL
-# 333 "shr_assert_mod.F90.in"
end subroutine shr_assert_in_domain_7d_long
!--------------------------------------------------------------------------
@@ -6991,7 +6891,6 @@ end subroutine shr_assert_in_domain_7d_long
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_0d_double(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7022,11 +6921,9 @@ subroutine print_bad_loc_0d_double(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_0d_double
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_1d_double(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7057,11 +6954,9 @@ subroutine print_bad_loc_1d_double(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_1d_double
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_2d_double(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7093,11 +6988,9 @@ subroutine print_bad_loc_2d_double(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_2d_double
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_3d_double(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7130,11 +7023,9 @@ subroutine print_bad_loc_3d_double(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_3d_double
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_4d_double(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7168,11 +7059,9 @@ subroutine print_bad_loc_4d_double(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_4d_double
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_5d_double(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7207,11 +7096,9 @@ subroutine print_bad_loc_5d_double(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_5d_double
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_6d_double(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7247,11 +7134,9 @@ subroutine print_bad_loc_6d_double(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_6d_double
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_7d_double(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7288,11 +7173,9 @@ subroutine print_bad_loc_7d_double(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_7d_double
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_0d_real(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7323,11 +7206,9 @@ subroutine print_bad_loc_0d_real(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_0d_real
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_1d_real(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7358,11 +7239,9 @@ subroutine print_bad_loc_1d_real(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_1d_real
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_2d_real(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7394,11 +7273,9 @@ subroutine print_bad_loc_2d_real(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_2d_real
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_3d_real(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7431,11 +7308,9 @@ subroutine print_bad_loc_3d_real(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_3d_real
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_4d_real(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7469,11 +7344,9 @@ subroutine print_bad_loc_4d_real(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_4d_real
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_5d_real(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7508,11 +7381,9 @@ subroutine print_bad_loc_5d_real(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_5d_real
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_6d_real(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7548,11 +7419,9 @@ subroutine print_bad_loc_6d_real(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_6d_real
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_7d_real(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7589,11 +7458,9 @@ subroutine print_bad_loc_7d_real(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_7d_real
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_0d_int(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7624,11 +7491,9 @@ subroutine print_bad_loc_0d_int(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_0d_int
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_1d_int(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7659,11 +7524,9 @@ subroutine print_bad_loc_1d_int(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_1d_int
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_2d_int(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7695,11 +7558,9 @@ subroutine print_bad_loc_2d_int(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_2d_int
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_3d_int(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7732,11 +7593,9 @@ subroutine print_bad_loc_3d_int(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_3d_int
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_4d_int(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7770,11 +7629,9 @@ subroutine print_bad_loc_4d_int(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_4d_int
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_5d_int(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7809,11 +7666,9 @@ subroutine print_bad_loc_5d_int(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_5d_int
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_6d_int(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7849,11 +7704,9 @@ subroutine print_bad_loc_6d_int(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_6d_int
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_7d_int(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7890,11 +7743,9 @@ subroutine print_bad_loc_7d_int(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_7d_int
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_0d_long(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7925,11 +7776,9 @@ subroutine print_bad_loc_0d_long(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_0d_long
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_1d_long(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7960,11 +7809,9 @@ subroutine print_bad_loc_1d_long(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_1d_long
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_2d_long(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -7996,11 +7843,9 @@ subroutine print_bad_loc_2d_long(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_2d_long
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_3d_long(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -8033,11 +7878,9 @@ subroutine print_bad_loc_3d_long(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_3d_long
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_4d_long(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -8071,11 +7914,9 @@ subroutine print_bad_loc_4d_long(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_4d_long
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_5d_long(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -8110,11 +7951,9 @@ subroutine print_bad_loc_5d_long(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_5d_long
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_6d_long(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -8150,11 +7989,9 @@ subroutine print_bad_loc_6d_long(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_6d_long
! TYPE double,real,int,long
! DIMS 0,1,2,3,4,5,6,7
-# 340 "shr_assert_mod.F90.in"
subroutine print_bad_loc_7d_long(var, loc_vec, varname)
! Print information about a bad location in an variable.
! For scalars, just print value.
@@ -8191,14 +8028,12 @@ subroutine print_bad_loc_7d_long(var, loc_vec, varname)
if (.false.) write(*,*) loc_vec
#endif
-# 370 "shr_assert_mod.F90.in"
end subroutine print_bad_loc_7d_long
!--------------------------------------------------------------------------
!--------------------------------------------------------------------------
! DIMS 0,1,2,3,4,5,6,7
-# 376 "shr_assert_mod.F90.in"
pure function find_first_loc_0d(mask) result (loc_vec)
! Inefficient but simple subroutine for finding the location of
! the first .true. value in an array.
@@ -8227,10 +8062,8 @@ pure function find_first_loc_0d(mask) result (loc_vec)
#endif
-# 404 "shr_assert_mod.F90.in"
end function find_first_loc_0d
! DIMS 0,1,2,3,4,5,6,7
-# 376 "shr_assert_mod.F90.in"
pure function find_first_loc_1d(mask) result (loc_vec)
! Inefficient but simple subroutine for finding the location of
! the first .true. value in an array.
@@ -8259,10 +8092,8 @@ pure function find_first_loc_1d(mask) result (loc_vec)
#endif
-# 404 "shr_assert_mod.F90.in"
end function find_first_loc_1d
! DIMS 0,1,2,3,4,5,6,7
-# 376 "shr_assert_mod.F90.in"
pure function find_first_loc_2d(mask) result (loc_vec)
! Inefficient but simple subroutine for finding the location of
! the first .true. value in an array.
@@ -8292,10 +8123,8 @@ pure function find_first_loc_2d(mask) result (loc_vec)
#endif
-# 404 "shr_assert_mod.F90.in"
end function find_first_loc_2d
! DIMS 0,1,2,3,4,5,6,7
-# 376 "shr_assert_mod.F90.in"
pure function find_first_loc_3d(mask) result (loc_vec)
! Inefficient but simple subroutine for finding the location of
! the first .true. value in an array.
@@ -8326,10 +8155,8 @@ pure function find_first_loc_3d(mask) result (loc_vec)
#endif
-# 404 "shr_assert_mod.F90.in"
end function find_first_loc_3d
! DIMS 0,1,2,3,4,5,6,7
-# 376 "shr_assert_mod.F90.in"
pure function find_first_loc_4d(mask) result (loc_vec)
! Inefficient but simple subroutine for finding the location of
! the first .true. value in an array.
@@ -8361,10 +8188,8 @@ pure function find_first_loc_4d(mask) result (loc_vec)
#endif
-# 404 "shr_assert_mod.F90.in"
end function find_first_loc_4d
! DIMS 0,1,2,3,4,5,6,7
-# 376 "shr_assert_mod.F90.in"
pure function find_first_loc_5d(mask) result (loc_vec)
! Inefficient but simple subroutine for finding the location of
! the first .true. value in an array.
@@ -8397,10 +8222,8 @@ pure function find_first_loc_5d(mask) result (loc_vec)
#endif
-# 404 "shr_assert_mod.F90.in"
end function find_first_loc_5d
! DIMS 0,1,2,3,4,5,6,7
-# 376 "shr_assert_mod.F90.in"
pure function find_first_loc_6d(mask) result (loc_vec)
! Inefficient but simple subroutine for finding the location of
! the first .true. value in an array.
@@ -8434,10 +8257,8 @@ pure function find_first_loc_6d(mask) result (loc_vec)
#endif
-# 404 "shr_assert_mod.F90.in"
end function find_first_loc_6d
! DIMS 0,1,2,3,4,5,6,7
-# 376 "shr_assert_mod.F90.in"
pure function find_first_loc_7d(mask) result (loc_vec)
! Inefficient but simple subroutine for finding the location of
! the first .true. value in an array.
@@ -8472,11 +8293,9 @@ pure function find_first_loc_7d(mask) result (loc_vec)
#endif
-# 404 "shr_assert_mod.F90.in"
end function find_first_loc_7d
! TYPE double,real,int,long
-# 407 "shr_assert_mod.F90.in"
elemental function within_tolerance_double(expected, actual, tolerance) &
result(is_in_tol)
! Precondition: tolerance must be >= 0.
@@ -8504,10 +8323,8 @@ elemental function within_tolerance_double(expected, actual, tolerance) &
end if
end if
-# 434 "shr_assert_mod.F90.in"
end function within_tolerance_double
! TYPE double,real,int,long
-# 407 "shr_assert_mod.F90.in"
elemental function within_tolerance_real(expected, actual, tolerance) &
result(is_in_tol)
! Precondition: tolerance must be >= 0.
@@ -8535,10 +8352,8 @@ elemental function within_tolerance_real(expected, actual, tolerance) &
end if
end if
-# 434 "shr_assert_mod.F90.in"
end function within_tolerance_real
! TYPE double,real,int,long
-# 407 "shr_assert_mod.F90.in"
elemental function within_tolerance_int(expected, actual, tolerance) &
result(is_in_tol)
! Precondition: tolerance must be >= 0.
@@ -8566,10 +8381,8 @@ elemental function within_tolerance_int(expected, actual, tolerance) &
end if
end if
-# 434 "shr_assert_mod.F90.in"
end function within_tolerance_int
! TYPE double,real,int,long
-# 407 "shr_assert_mod.F90.in"
elemental function within_tolerance_long(expected, actual, tolerance) &
result(is_in_tol)
! Precondition: tolerance must be >= 0.
@@ -8597,7 +8410,6 @@ elemental function within_tolerance_long(expected, actual, tolerance) &
end if
end if
-# 434 "shr_assert_mod.F90.in"
end function within_tolerance_long
end module shr_assert_mod
diff --git a/CDEPS-interface/ufs/cdeps_share/shr_frz_mod.F90 b/CDEPS-interface/ufs/cdeps_share/shr_frz_mod.F90
index d925c9301b..dd043839e0 100644
--- a/CDEPS-interface/ufs/cdeps_share/shr_frz_mod.F90
+++ b/CDEPS-interface/ufs/cdeps_share/shr_frz_mod.F90
@@ -19,7 +19,6 @@ module shr_frz_mod
!----------------------------------------------------------------------------
public :: shr_frz_freezetemp, shr_frz_freezetemp_init
-# 18 "shr_frz_mod.F90.in"
interface shr_frz_freezetemp
module procedure shr_frz_freezetemp_0d
module procedure shr_frz_freezetemp_1d
@@ -36,18 +35,16 @@ module shr_frz_mod
integer :: tfrz_option = TFREEZE_OPTION_UNINITIALIZED
!===============================================================================
-# 34 "shr_frz_mod.F90.in"
contains
!===============================================================================
-# 37 "shr_frz_mod.F90.in"
- subroutine shr_frz_freezetemp_init(tfreeze_option, mastertask)
+ subroutine shr_frz_freezetemp_init(tfreeze_option, maintask)
implicit none
character(len=*),parameter :: subname = "(shr_frz_freezetemp_init) "
character(CS),intent(in) :: tfreeze_option ! option for computing freezing point
- logical, intent(in) :: mastertask ! for io
+ logical, intent(in) :: maintask ! for io
! minus1p8 is constant -1.8C
! linear_salt is linear equation
! mushy for CICE mushy-layer nonlinear equation
@@ -56,23 +53,21 @@ subroutine shr_frz_freezetemp_init(tfreeze_option, mastertask)
! Check tfreeze_option
!---------------------------------------------------------------
if (trim(tfreeze_option) == 'minus1p8') then
- if (mastertask .and. shr_log_level>0) write(s_logunit,*) ' tfreeze_option is minus1p8'
+ if (maintask .and. shr_log_level>0) write(s_logunit,*) ' tfreeze_option is minus1p8'
tfrz_option = TFREEZE_OPTION_MINUS1P8
elseif (trim(tfreeze_option) == 'linear_salt') then
- if (mastertask .and. shr_log_level>0) write(s_logunit,*) ' tfreeze_option is linear_salt'
+ if (maintask .and. shr_log_level>0) write(s_logunit,*) ' tfreeze_option is linear_salt'
tfrz_option = TFREEZE_OPTION_LINEAR_SALT
elseif (trim(tfreeze_option) == 'mushy') then
- if (mastertask .and. shr_log_level>0) write(s_logunit,*) ' tfreeze_option is mushy'
+ if (maintask .and. shr_log_level>0) write(s_logunit,*) ' tfreeze_option is mushy'
tfrz_option = TFREEZE_OPTION_MUSHY
else
call shr_sys_abort(subname//' ERROR: not a valid tfreeze_option '//trim(tfreeze_option))
endif
-# 64 "shr_frz_mod.F90.in"
end subroutine shr_frz_freezetemp_init
! DIMS 0,1,2
-# 67 "shr_frz_mod.F90.in"
function shr_frz_freezetemp_0d(s) result(shr_frz_freezetemp)
!----------------------------------------------------------------------------
@@ -115,10 +110,8 @@ function shr_frz_freezetemp_0d(s) result(shr_frz_freezetemp)
shr_frz_freezetemp = max(shr_frz_freezetemp,-2.0_R8)
-# 109 "shr_frz_mod.F90.in"
end function shr_frz_freezetemp_0d
! DIMS 0,1,2
-# 67 "shr_frz_mod.F90.in"
function shr_frz_freezetemp_1d(s) result(shr_frz_freezetemp)
!----------------------------------------------------------------------------
@@ -161,10 +154,8 @@ function shr_frz_freezetemp_1d(s) result(shr_frz_freezetemp)
shr_frz_freezetemp = max(shr_frz_freezetemp,-2.0_R8)
-# 109 "shr_frz_mod.F90.in"
end function shr_frz_freezetemp_1d
! DIMS 0,1,2
-# 67 "shr_frz_mod.F90.in"
function shr_frz_freezetemp_2d(s) result(shr_frz_freezetemp)
!----------------------------------------------------------------------------
@@ -207,7 +198,6 @@ function shr_frz_freezetemp_2d(s) result(shr_frz_freezetemp)
shr_frz_freezetemp = max(shr_frz_freezetemp,-2.0_R8)
-# 109 "shr_frz_mod.F90.in"
end function shr_frz_freezetemp_2d
!===============================================================================
diff --git a/CDEPS-interface/ufs/cdeps_share/shr_infnan_mod.F90 b/CDEPS-interface/ufs/cdeps_share/shr_infnan_mod.F90
index 19f1ac824d..7a818485c7 100644
--- a/CDEPS-interface/ufs/cdeps_share/shr_infnan_mod.F90
+++ b/CDEPS-interface/ufs/cdeps_share/shr_infnan_mod.F90
@@ -3,7 +3,6 @@
! DO NOT EDIT THIS FILE, it was generated using genf90.pl
! Any changes you make to this file may be lost
!===================================================
-#define CPRINTEL 1
! Flag representing compiler support of Fortran 2003's
! ieee_arithmetic intrinsic module.
#if defined CPRIBM || defined CPRPGI || defined CPRINTEL || defined CPRCRAY || defined CPRNAG
@@ -72,7 +71,6 @@ module shr_infnan_mod
! Locally defined isnan.
#ifndef HAVE_IEEE_ARITHMETIC
-# 70 "shr_infnan_mod.F90.in"
interface shr_infnan_isnan
! TYPE double,real
module procedure shr_infnan_isnan_double
@@ -81,7 +79,6 @@ module shr_infnan_mod
end interface
#endif
-# 76 "shr_infnan_mod.F90.in"
interface shr_infnan_isinf
! TYPE double,real
module procedure shr_infnan_isinf_double
@@ -89,7 +86,6 @@ module shr_infnan_mod
module procedure shr_infnan_isinf_real
end interface
-# 81 "shr_infnan_mod.F90.in"
interface shr_infnan_isposinf
! TYPE double,real
module procedure shr_infnan_isposinf_double
@@ -97,7 +93,6 @@ module shr_infnan_mod
module procedure shr_infnan_isposinf_real
end interface
-# 86 "shr_infnan_mod.F90.in"
interface shr_infnan_isneginf
! TYPE double,real
module procedure shr_infnan_isneginf_double
@@ -125,7 +120,6 @@ module shr_infnan_mod
end type shr_infnan_inf_type
! Allow assigning reals to NaN or Inf.
-# 111 "shr_infnan_mod.F90.in"
interface assignment(=)
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
@@ -226,13 +220,11 @@ module shr_infnan_mod
end interface
! Conversion functions.
-# 121 "shr_infnan_mod.F90.in"
interface shr_infnan_to_r8
module procedure nan_r8
module procedure inf_r8
end interface
-# 126 "shr_infnan_mod.F90.in"
interface shr_infnan_to_r4
module procedure nan_r4
module procedure inf_r4
@@ -273,7 +265,6 @@ module shr_infnan_mod
integer(i8), parameter :: dneginf_pat = ibset(dposinf_pat,bit_size(1_i8)-1)
#endif
-# 166 "shr_infnan_mod.F90.in"
contains
!---------------------------------------------------------------------
@@ -283,24 +274,20 @@ module shr_infnan_mod
!---------------------------------------------------------------------
! TYPE double,real
-# 175 "shr_infnan_mod.F90.in"
elemental function shr_infnan_isinf_double(x) result(isinf)
real(r8), intent(in) :: x
logical :: isinf
isinf = shr_infnan_isposinf(x) .or. shr_infnan_isneginf(x)
-# 181 "shr_infnan_mod.F90.in"
end function shr_infnan_isinf_double
! TYPE double,real
-# 175 "shr_infnan_mod.F90.in"
elemental function shr_infnan_isinf_real(x) result(isinf)
real(r4), intent(in) :: x
logical :: isinf
isinf = shr_infnan_isposinf(x) .or. shr_infnan_isneginf(x)
-# 181 "shr_infnan_mod.F90.in"
end function shr_infnan_isinf_real
#ifdef HAVE_IEEE_ARITHMETIC
@@ -312,7 +299,6 @@ end function shr_infnan_isinf_real
!---------------------------------------------------------------------
! TYPE double,real
-# 192 "shr_infnan_mod.F90.in"
elemental function shr_infnan_isposinf_double(x) result(isposinf)
use, intrinsic :: ieee_arithmetic, only: &
ieee_class, &
@@ -323,10 +309,8 @@ elemental function shr_infnan_isposinf_double(x) result(isposinf)
isposinf = (ieee_positive_inf == ieee_class(x))
-# 202 "shr_infnan_mod.F90.in"
end function shr_infnan_isposinf_double
! TYPE double,real
-# 192 "shr_infnan_mod.F90.in"
elemental function shr_infnan_isposinf_real(x) result(isposinf)
use, intrinsic :: ieee_arithmetic, only: &
ieee_class, &
@@ -337,11 +321,9 @@ elemental function shr_infnan_isposinf_real(x) result(isposinf)
isposinf = (ieee_positive_inf == ieee_class(x))
-# 202 "shr_infnan_mod.F90.in"
end function shr_infnan_isposinf_real
! TYPE double,real
-# 205 "shr_infnan_mod.F90.in"
elemental function shr_infnan_isneginf_double(x) result(isneginf)
use, intrinsic :: ieee_arithmetic, only: &
ieee_class, &
@@ -352,10 +334,8 @@ elemental function shr_infnan_isneginf_double(x) result(isneginf)
isneginf = (ieee_negative_inf == ieee_class(x))
-# 215 "shr_infnan_mod.F90.in"
end function shr_infnan_isneginf_double
! TYPE double,real
-# 205 "shr_infnan_mod.F90.in"
elemental function shr_infnan_isneginf_real(x) result(isneginf)
use, intrinsic :: ieee_arithmetic, only: &
ieee_class, &
@@ -366,7 +346,6 @@ elemental function shr_infnan_isneginf_real(x) result(isneginf)
isneginf = (ieee_negative_inf == ieee_class(x))
-# 215 "shr_infnan_mod.F90.in"
end function shr_infnan_isneginf_real
#else
@@ -375,24 +354,20 @@ end function shr_infnan_isneginf_real
#ifdef CPRGNU
! NaN testing on gfortran.
! TYPE double,real
-# 223 "shr_infnan_mod.F90.in"
elemental function shr_infnan_isnan_double(x) result(is_nan)
real(r8), intent(in) :: x
logical :: is_nan
is_nan = isnan(x)
-# 229 "shr_infnan_mod.F90.in"
end function shr_infnan_isnan_double
! TYPE double,real
-# 223 "shr_infnan_mod.F90.in"
elemental function shr_infnan_isnan_real(x) result(is_nan)
real(r4), intent(in) :: x
logical :: is_nan
is_nan = isnan(x)
-# 229 "shr_infnan_mod.F90.in"
end function shr_infnan_isnan_real
! End GNU section.
#endif
@@ -403,7 +378,6 @@ end function shr_infnan_isnan_real
!---------------------------------------------------------------------
! TYPE double,real
-# 239 "shr_infnan_mod.F90.in"
elemental function shr_infnan_isposinf_double(x) result(isposinf)
real(r8), intent(in) :: x
logical :: isposinf
@@ -415,10 +389,8 @@ elemental function shr_infnan_isposinf_double(x) result(isposinf)
isposinf = (x == transfer(posinf_pat,x))
-# 250 "shr_infnan_mod.F90.in"
end function shr_infnan_isposinf_double
! TYPE double,real
-# 239 "shr_infnan_mod.F90.in"
elemental function shr_infnan_isposinf_real(x) result(isposinf)
real(r4), intent(in) :: x
logical :: isposinf
@@ -430,11 +402,9 @@ elemental function shr_infnan_isposinf_real(x) result(isposinf)
isposinf = (x == transfer(posinf_pat,x))
-# 250 "shr_infnan_mod.F90.in"
end function shr_infnan_isposinf_real
! TYPE double,real
-# 253 "shr_infnan_mod.F90.in"
elemental function shr_infnan_isneginf_double(x) result(isneginf)
real(r8), intent(in) :: x
logical :: isneginf
@@ -446,10 +416,8 @@ elemental function shr_infnan_isneginf_double(x) result(isneginf)
isneginf = (x == transfer(neginf_pat,x))
-# 264 "shr_infnan_mod.F90.in"
end function shr_infnan_isneginf_double
! TYPE double,real
-# 253 "shr_infnan_mod.F90.in"
elemental function shr_infnan_isneginf_real(x) result(isneginf)
real(r4), intent(in) :: x
logical :: isneginf
@@ -461,7 +429,6 @@ elemental function shr_infnan_isneginf_real(x) result(isneginf)
isneginf = (x == transfer(neginf_pat,x))
-# 264 "shr_infnan_mod.F90.in"
end function shr_infnan_isneginf_real
! End ieee_arithmetic conditional.
@@ -485,7 +452,6 @@ end function shr_infnan_isneginf_real
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 287 "shr_infnan_mod.F90.in"
pure subroutine set_nan_0d_double(output, nan)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -524,11 +490,9 @@ pure subroutine set_nan_0d_double(output, nan)
output = tmp
-# 325 "shr_infnan_mod.F90.in"
end subroutine set_nan_0d_double
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 287 "shr_infnan_mod.F90.in"
pure subroutine set_nan_1d_double(output, nan)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -567,11 +531,9 @@ pure subroutine set_nan_1d_double(output, nan)
output = tmp
-# 325 "shr_infnan_mod.F90.in"
end subroutine set_nan_1d_double
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 287 "shr_infnan_mod.F90.in"
pure subroutine set_nan_2d_double(output, nan)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -610,11 +572,9 @@ pure subroutine set_nan_2d_double(output, nan)
output = tmp
-# 325 "shr_infnan_mod.F90.in"
end subroutine set_nan_2d_double
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 287 "shr_infnan_mod.F90.in"
pure subroutine set_nan_3d_double(output, nan)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -653,11 +613,9 @@ pure subroutine set_nan_3d_double(output, nan)
output = tmp
-# 325 "shr_infnan_mod.F90.in"
end subroutine set_nan_3d_double
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 287 "shr_infnan_mod.F90.in"
pure subroutine set_nan_4d_double(output, nan)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -696,11 +654,9 @@ pure subroutine set_nan_4d_double(output, nan)
output = tmp
-# 325 "shr_infnan_mod.F90.in"
end subroutine set_nan_4d_double
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 287 "shr_infnan_mod.F90.in"
pure subroutine set_nan_5d_double(output, nan)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -739,11 +695,9 @@ pure subroutine set_nan_5d_double(output, nan)
output = tmp
-# 325 "shr_infnan_mod.F90.in"
end subroutine set_nan_5d_double
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 287 "shr_infnan_mod.F90.in"
pure subroutine set_nan_6d_double(output, nan)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -782,11 +736,9 @@ pure subroutine set_nan_6d_double(output, nan)
output = tmp
-# 325 "shr_infnan_mod.F90.in"
end subroutine set_nan_6d_double
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 287 "shr_infnan_mod.F90.in"
pure subroutine set_nan_7d_double(output, nan)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -825,11 +777,9 @@ pure subroutine set_nan_7d_double(output, nan)
output = tmp
-# 325 "shr_infnan_mod.F90.in"
end subroutine set_nan_7d_double
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 287 "shr_infnan_mod.F90.in"
pure subroutine set_nan_0d_real(output, nan)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -868,11 +818,9 @@ pure subroutine set_nan_0d_real(output, nan)
output = tmp
-# 325 "shr_infnan_mod.F90.in"
end subroutine set_nan_0d_real
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 287 "shr_infnan_mod.F90.in"
pure subroutine set_nan_1d_real(output, nan)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -911,11 +859,9 @@ pure subroutine set_nan_1d_real(output, nan)
output = tmp
-# 325 "shr_infnan_mod.F90.in"
end subroutine set_nan_1d_real
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 287 "shr_infnan_mod.F90.in"
pure subroutine set_nan_2d_real(output, nan)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -954,11 +900,9 @@ pure subroutine set_nan_2d_real(output, nan)
output = tmp
-# 325 "shr_infnan_mod.F90.in"
end subroutine set_nan_2d_real
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 287 "shr_infnan_mod.F90.in"
pure subroutine set_nan_3d_real(output, nan)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -997,11 +941,9 @@ pure subroutine set_nan_3d_real(output, nan)
output = tmp
-# 325 "shr_infnan_mod.F90.in"
end subroutine set_nan_3d_real
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 287 "shr_infnan_mod.F90.in"
pure subroutine set_nan_4d_real(output, nan)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -1040,11 +982,9 @@ pure subroutine set_nan_4d_real(output, nan)
output = tmp
-# 325 "shr_infnan_mod.F90.in"
end subroutine set_nan_4d_real
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 287 "shr_infnan_mod.F90.in"
pure subroutine set_nan_5d_real(output, nan)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -1083,11 +1023,9 @@ pure subroutine set_nan_5d_real(output, nan)
output = tmp
-# 325 "shr_infnan_mod.F90.in"
end subroutine set_nan_5d_real
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 287 "shr_infnan_mod.F90.in"
pure subroutine set_nan_6d_real(output, nan)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -1126,11 +1064,9 @@ pure subroutine set_nan_6d_real(output, nan)
output = tmp
-# 325 "shr_infnan_mod.F90.in"
end subroutine set_nan_6d_real
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 287 "shr_infnan_mod.F90.in"
pure subroutine set_nan_7d_real(output, nan)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -1169,12 +1105,10 @@ pure subroutine set_nan_7d_real(output, nan)
output = tmp
-# 325 "shr_infnan_mod.F90.in"
end subroutine set_nan_7d_real
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 329 "shr_infnan_mod.F90.in"
pure subroutine set_inf_0d_double(output, inf)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -1213,11 +1147,9 @@ pure subroutine set_inf_0d_double(output, inf)
output = tmp
-# 367 "shr_infnan_mod.F90.in"
end subroutine set_inf_0d_double
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 329 "shr_infnan_mod.F90.in"
pure subroutine set_inf_1d_double(output, inf)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -1256,11 +1188,9 @@ pure subroutine set_inf_1d_double(output, inf)
output = tmp
-# 367 "shr_infnan_mod.F90.in"
end subroutine set_inf_1d_double
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 329 "shr_infnan_mod.F90.in"
pure subroutine set_inf_2d_double(output, inf)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -1299,11 +1229,9 @@ pure subroutine set_inf_2d_double(output, inf)
output = tmp
-# 367 "shr_infnan_mod.F90.in"
end subroutine set_inf_2d_double
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 329 "shr_infnan_mod.F90.in"
pure subroutine set_inf_3d_double(output, inf)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -1342,11 +1270,9 @@ pure subroutine set_inf_3d_double(output, inf)
output = tmp
-# 367 "shr_infnan_mod.F90.in"
end subroutine set_inf_3d_double
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 329 "shr_infnan_mod.F90.in"
pure subroutine set_inf_4d_double(output, inf)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -1385,11 +1311,9 @@ pure subroutine set_inf_4d_double(output, inf)
output = tmp
-# 367 "shr_infnan_mod.F90.in"
end subroutine set_inf_4d_double
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 329 "shr_infnan_mod.F90.in"
pure subroutine set_inf_5d_double(output, inf)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -1428,11 +1352,9 @@ pure subroutine set_inf_5d_double(output, inf)
output = tmp
-# 367 "shr_infnan_mod.F90.in"
end subroutine set_inf_5d_double
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 329 "shr_infnan_mod.F90.in"
pure subroutine set_inf_6d_double(output, inf)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -1471,11 +1393,9 @@ pure subroutine set_inf_6d_double(output, inf)
output = tmp
-# 367 "shr_infnan_mod.F90.in"
end subroutine set_inf_6d_double
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 329 "shr_infnan_mod.F90.in"
pure subroutine set_inf_7d_double(output, inf)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -1514,11 +1434,9 @@ pure subroutine set_inf_7d_double(output, inf)
output = tmp
-# 367 "shr_infnan_mod.F90.in"
end subroutine set_inf_7d_double
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 329 "shr_infnan_mod.F90.in"
pure subroutine set_inf_0d_real(output, inf)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -1557,11 +1475,9 @@ pure subroutine set_inf_0d_real(output, inf)
output = tmp
-# 367 "shr_infnan_mod.F90.in"
end subroutine set_inf_0d_real
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 329 "shr_infnan_mod.F90.in"
pure subroutine set_inf_1d_real(output, inf)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -1600,11 +1516,9 @@ pure subroutine set_inf_1d_real(output, inf)
output = tmp
-# 367 "shr_infnan_mod.F90.in"
end subroutine set_inf_1d_real
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 329 "shr_infnan_mod.F90.in"
pure subroutine set_inf_2d_real(output, inf)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -1643,11 +1557,9 @@ pure subroutine set_inf_2d_real(output, inf)
output = tmp
-# 367 "shr_infnan_mod.F90.in"
end subroutine set_inf_2d_real
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 329 "shr_infnan_mod.F90.in"
pure subroutine set_inf_3d_real(output, inf)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -1686,11 +1598,9 @@ pure subroutine set_inf_3d_real(output, inf)
output = tmp
-# 367 "shr_infnan_mod.F90.in"
end subroutine set_inf_3d_real
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 329 "shr_infnan_mod.F90.in"
pure subroutine set_inf_4d_real(output, inf)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -1729,11 +1639,9 @@ pure subroutine set_inf_4d_real(output, inf)
output = tmp
-# 367 "shr_infnan_mod.F90.in"
end subroutine set_inf_4d_real
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 329 "shr_infnan_mod.F90.in"
pure subroutine set_inf_5d_real(output, inf)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -1772,11 +1680,9 @@ pure subroutine set_inf_5d_real(output, inf)
output = tmp
-# 367 "shr_infnan_mod.F90.in"
end subroutine set_inf_5d_real
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 329 "shr_infnan_mod.F90.in"
pure subroutine set_inf_6d_real(output, inf)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -1815,11 +1721,9 @@ pure subroutine set_inf_6d_real(output, inf)
output = tmp
-# 367 "shr_infnan_mod.F90.in"
end subroutine set_inf_6d_real
! TYPE double,real
! DIMS 0,1,2,3,4,5,6,7
-# 329 "shr_infnan_mod.F90.in"
pure subroutine set_inf_7d_real(output, inf)
#ifdef HAVE_IEEE_ARITHMETIC
use, intrinsic :: ieee_arithmetic, only: &
@@ -1858,7 +1762,6 @@ pure subroutine set_inf_7d_real(output, inf)
output = tmp
-# 367 "shr_infnan_mod.F90.in"
end subroutine set_inf_7d_real
!---------------------------------------------------------------------
@@ -1867,44 +1770,36 @@ end subroutine set_inf_7d_real
! Function methods to get reals from nan/inf types.
!---------------------------------------------------------------------
-# 375 "shr_infnan_mod.F90.in"
pure function nan_r8(nan) result(output)
class(shr_infnan_nan_type), intent(in) :: nan
real(r8) :: output
output = nan
-# 381 "shr_infnan_mod.F90.in"
end function nan_r8
-# 383 "shr_infnan_mod.F90.in"
pure function nan_r4(nan) result(output)
class(shr_infnan_nan_type), intent(in) :: nan
real(r4) :: output
output = nan
-# 389 "shr_infnan_mod.F90.in"
end function nan_r4
-# 391 "shr_infnan_mod.F90.in"
pure function inf_r8(inf) result(output)
class(shr_infnan_inf_type), intent(in) :: inf
real(r8) :: output
output = inf
-# 397 "shr_infnan_mod.F90.in"
end function inf_r8
-# 399 "shr_infnan_mod.F90.in"
pure function inf_r4(inf) result(output)
class(shr_infnan_inf_type), intent(in) :: inf
real(r4) :: output
output = inf
-# 405 "shr_infnan_mod.F90.in"
end function inf_r4
end module shr_infnan_mod
diff --git a/CICE-interface/CICE b/CICE-interface/CICE
index 5840cd1931..50aa2c9788 160000
--- a/CICE-interface/CICE
+++ b/CICE-interface/CICE
@@ -1 +1 @@
-Subproject commit 5840cd1931e2e32b9dfded0c19049d0f1ec3d04c
+Subproject commit 50aa2c97882fbc9d4918813a22169fe97b424564
diff --git a/CICE-interface/cice_files.cmake b/CICE-interface/cice_files.cmake
index 4b0b2f7421..e8114bfd4e 100644
--- a/CICE-interface/cice_files.cmake
+++ b/CICE-interface/cice_files.cmake
@@ -86,7 +86,6 @@ list(APPEND icepack_files
CICE/icepack/columnphysics/icepack_wavefracspec.F90
CICE/icepack/columnphysics/icepack_zbgc.F90
CICE/icepack/columnphysics/icepack_zbgc_shared.F90
- CICE/icepack/columnphysics/icepack_zsalinity.F90
)
list(APPEND cice_shared_files_c
diff --git a/CMEPS-interface/CMEPS b/CMEPS-interface/CMEPS
index 9923d6d177..a5dea5f178 160000
--- a/CMEPS-interface/CMEPS
+++ b/CMEPS-interface/CMEPS
@@ -1 +1 @@
-Subproject commit 9923d6d17700daf502d9a016138bf8eb8aad7f09
+Subproject commit a5dea5f178fc98a4ab39c58aa43c37da6ad25d08
diff --git a/CMEPS-interface/CMakeLists.txt b/CMEPS-interface/CMakeLists.txt
index f53d327bed..a5e63de262 100644
--- a/CMEPS-interface/CMakeLists.txt
+++ b/CMEPS-interface/CMakeLists.txt
@@ -4,6 +4,8 @@
if(CMAKE_Fortran_COMPILER_ID MATCHES "GNU")
set(CMAKE_Fortran_FLAGS "-g -fbacktrace -ffree-line-length-none")
+ #Set CPP defintions for the ufs/cdeps_share source component of the cmeps target library
+ list(APPEND CDEPS_SHARE_DEFS "CPRGNU")
if(${CMAKE_Fortran_COMPILER_VERSION} VERSION_GREATER_EQUAL 10)
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-argument-mismatch -fallow-invalid-boz")
endif()
@@ -17,6 +19,8 @@ elseif(CMAKE_Fortran_COMPILER_ID MATCHES "Intel")
set(CMAKE_Fortran_FLAGS_RELEASE "-O2 -fp-model precise")
set(CMAKE_Fortran_FLAGS_DEBUG "-O0 -check -check noarg_temp_created -check nopointer -fpe0 -ftrapuv -init=snan,arrays")
set(CMAKE_Fortran_LINK_FLAGS "")
+ #Set CPP defintions for the ufs/cdeps_share source component of the cmeps target library
+ list(APPEND CDEPS_SHARE_DEFS "CPRINTEL")
else()
message(WARNING "Fortran compiler with ID ${CMAKE_Fortran_COMPILER_ID} will be used with CMake default options")
endif()
@@ -31,6 +35,8 @@ list(APPEND _nems_util_files
CMEPS/ufs/ufs_kind_mod.F90
CMEPS/ufs/perf_mod.F90
CMEPS/ufs/ufs_const_mod.F90
+ ${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_orb_mod.F90
+ ${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_const_mod.F90
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_abort_mod.F90
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_strconvert_mod.F90
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_log_mod.F90
@@ -172,6 +178,7 @@ add_library(cmeps STATIC ${_nems_util_files} ${_mediator_files} ${SCHEMES} ${CAP
set_target_properties(cmeps PROPERTIES Fortran_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod)
target_include_directories(cmeps PUBLIC $
$)
+target_compile_definitions(cmeps PRIVATE ${CDEPS_SHARE_DEFS})
target_link_libraries(cmeps PUBLIC fms
esmf
PIO::PIO_Fortran)
diff --git a/FV3 b/FV3
index 170e6966bb..71b5604827 160000
--- a/FV3
+++ b/FV3
@@ -1 +1 @@
-Subproject commit 170e6966bb1910580115355f461858499e64367e
+Subproject commit 71b560482718ee4d376df6e914071377d294f8d6
diff --git a/GOCART b/GOCART
index b94145fca4..6ea78fd790 160000
--- a/GOCART
+++ b/GOCART
@@ -1 +1 @@
-Subproject commit b94145fca46169bbc53ec6b8d4ed849715dc5130
+Subproject commit 6ea78fd79037b31a1dcdd30d8a315f6558d963e4
diff --git a/HYCOM-interface/HYCOM b/HYCOM-interface/HYCOM
index 24437531dc..35789c7577 160000
--- a/HYCOM-interface/HYCOM
+++ b/HYCOM-interface/HYCOM
@@ -1 +1 @@
-Subproject commit 24437531dcf8580aadaf6ebeb9de544ccfc674f9
+Subproject commit 35789c757766e07f688b4c0c7c5229816f224b09
diff --git a/MOM6-interface/MOM6 b/MOM6-interface/MOM6
index fdbfa25236..02d4dc455b 160000
--- a/MOM6-interface/MOM6
+++ b/MOM6-interface/MOM6
@@ -1 +1 @@
-Subproject commit fdbfa2523650b81a0771f3fb1791ea3e3dce66db
+Subproject commit 02d4dc455bb517b4c641c919dc6b9dc829e1e0d4
diff --git a/MOM6-interface/mom6_files.cmake b/MOM6-interface/mom6_files.cmake
index 04adba4c30..d07ea23ad9 100644
--- a/MOM6-interface/mom6_files.cmake
+++ b/MOM6-interface/mom6_files.cmake
@@ -58,15 +58,19 @@ list(APPEND mom6_src_files
MOM6/src/diagnostics/MOM_obsolete_params.F90
MOM6/src/diagnostics/MOM_sum_output.F90
MOM6/src/diagnostics/MOM_wave_speed.F90
- MOM6/src/diagnostics/MOM_wave_structure.F90
MOM6/src/equation_of_state/MOM_EOS.F90
- MOM6/src/equation_of_state/MOM_EOS_NEMO.F90
+ MOM6/src/equation_of_state/MOM_EOS_Jackett06.F90
+ MOM6/src/equation_of_state/MOM_EOS_Roquet_SpV.F90
+ MOM6/src/equation_of_state/MOM_EOS_Roquet_rho.F90
MOM6/src/equation_of_state/MOM_EOS_TEOS10.F90
MOM6/src/equation_of_state/MOM_EOS_UNESCO.F90
MOM6/src/equation_of_state/MOM_EOS_Wright.F90
+ MOM6/src/equation_of_state/MOM_EOS_Wright_full.F90
+ MOM6/src/equation_of_state/MOM_EOS_Wright_red.F90
MOM6/src/equation_of_state/MOM_EOS_linear.F90
MOM6/src/equation_of_state/MOM_TFreeze.F90
+ MOM6/src/equation_of_state/MOM_temperature_convert.F90
MOM6/src/equation_of_state/TEOS10/gsw_chem_potential_water_t_exact.f90
MOM6/src/equation_of_state/TEOS10/gsw_ct_freezing_exact.f90
@@ -160,6 +164,7 @@ list(APPEND mom6_src_files
MOM6/src/parameterizations/lateral/MOM_spherical_harmonics.F90
MOM6/src/parameterizations/lateral/MOM_thickness_diffuse.F90
MOM6/src/parameterizations/lateral/MOM_tidal_forcing.F90
+ MOM6/src/parameterizations/lateral/MOM_Zanna_Bolton.F90
MOM6/src/parameterizations/vertical/MOM_ALE_sponge.F90
MOM6/src/parameterizations/vertical/MOM_CVMix_KPP.F90
diff --git a/WW3 b/WW3
index c4b116886b..97e6a63ebf 160000
--- a/WW3
+++ b/WW3
@@ -1 +1 @@
-Subproject commit c4b116886b5ef9af5fb4942d7161074df3402732
+Subproject commit 97e6a63ebf9a9030fcdae6ad5cf85a0bc91fa37f
diff --git a/cmake/configure_hercules.gnu.cmake b/cmake/configure_hercules.gnu.cmake
new file mode 100644
index 0000000000..8f1ffe0d01
--- /dev/null
+++ b/cmake/configure_hercules.gnu.cmake
@@ -0,0 +1 @@
+set(PARALLEL_NETCDF ON CACHE BOOL "Enable parallel NetCDF" FORCE)
diff --git a/cmake/configure_hercules.intel.cmake b/cmake/configure_hercules.intel.cmake
new file mode 100644
index 0000000000..8f1ffe0d01
--- /dev/null
+++ b/cmake/configure_hercules.intel.cmake
@@ -0,0 +1 @@
+set(PARALLEL_NETCDF ON CACHE BOOL "Enable parallel NetCDF" FORCE)
diff --git a/doc/UsersGuide/build/.gitignore b/doc/UsersGuide/build/.gitignore
deleted file mode 100644
index 0addfc818b..0000000000
--- a/doc/UsersGuide/build/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-# Ignore everything in this directory
-*
-# Except this file
-!.gitignore
diff --git a/doc/UsersGuide/source/AutomatedTesting.rst b/doc/UsersGuide/source/AutomatedTesting.rst
index 06369c670e..fecb0f644a 100644
--- a/doc/UsersGuide/source/AutomatedTesting.rst
+++ b/doc/UsersGuide/source/AutomatedTesting.rst
@@ -31,14 +31,14 @@ The CI/CD workflow then executes the following steps:
subcomponents are up to date with the top of the ``develop`` branch.
#. If the check is successful, build jobs are started on GHA-provided virtual machines
- by downloading the hpc-stack Docker container stored in Docker Hub.
+ by downloading the HPC-Stack Docker container stored in Docker Hub.
#. Once all build jobs are successful, the created executable files are stored as
artifacts in GHA.
#. A number of AWS EC2 instances are started.
- #. Test jobs are started on AWS after downloading the hpc-stack Docker container,
+ #. Test jobs are started on AWS after downloading the HPC-Stack Docker container,
the executable file from the build job, and the input-data Docker container.
#. When all tests are complete, EC2 instances are stopped. Test results are reported
diff --git a/doc/UsersGuide/source/BuildingAndRunning.rst b/doc/UsersGuide/source/BuildingAndRunning.rst
index fd3502f9a0..dc564c98de 100644
--- a/doc/UsersGuide/source/BuildingAndRunning.rst
+++ b/doc/UsersGuide/source/BuildingAndRunning.rst
@@ -14,7 +14,7 @@ through NOAA and its affiliates. These systems are named (e.g., Hera, Orion, Che
Level 3 & 4 systems include certain personal computers or non-NOAA-affiliated HPC systems.
The prerequisite software libraries for building the WM already exist in a centralized location on Level 1/preconfigured
systems, so users may skip directly to :ref:`getting the data ` and downloading the code.
-On other systems, users will need to build the prerequisite libraries using :term:`HPC-Stack` or :term:`spack-stack`.
+On other systems, users will need to build the prerequisite libraries using :term:`spack-stack` or :term:`HPC-Stack`.
=======================
Prerequisite Libraries
@@ -22,7 +22,7 @@ Prerequisite Libraries
The UFS WM requires a number of libraries.
The WM uses two categories of libraries, which are available as a bundle via
-:term:`HPC-Stack` or :term:`spack-stack`:
+:term:`spack-stack` or :term:`HPC-Stack`:
#. :term:`NCEP` libraries (:term:`NCEPLIBS`): These are libraries developed for use with NOAA weather models.
Most have an NCEPLIBS prefix in the repository (e.g., NCEPLIBS-bacio). Select tools from the UFS
@@ -34,11 +34,12 @@ The WM uses two categories of libraries, which are available as a bundle via
instead.
.. note::
- Currently, HPC-Stack is the software stack validated by the UFS WM for running :term:`regression tests