Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
abe96d5
enable CDEPS build
Jan 8, 2021
34e7097
disable PIO initialization in CMEPS level, NEMS will do it
Jan 8, 2021
23853d4
update compile script to enable data components
Jan 8, 2021
483f627
update CDEPS to enable data components under cmake
Jan 8, 2021
6c9bfcd
fix PIO issue
Jan 11, 2021
910544f
remove INTERNAL_PIO_INIT. initialization is moved to NEMS
Jan 11, 2021
01198e6
fix HYCOM cmake to be compatible with feature/NUOPC_merged branch
Jan 11, 2021
d71f0f2
more fix for PIO issue
Jan 11, 2021
108d6b8
fix run seq for datm+docn case to be compatible with updated CMEPS
Jan 11, 2021
996fb14
update the components
Jan 13, 2021
754cc11
update runseq for datm+hycom case
Jan 19, 2021
20de24d
rename RT configuration file
Jan 19, 2021
1b4c3bb
update CDEPS
Jan 20, 2021
4c4ed07
sync components with feature/hafs_couplehycom
Jan 22, 2021
caac8e7
sync model with feature/hafs_couplehycom
Jan 22, 2021
a9d52fa
remove unused RT configuration file
Jan 22, 2021
1d63b90
fix PIO initialization for S2S
Jan 27, 2021
1690f38
more PIO initialization related fix for S2S configurations
Jan 31, 2021
3960577
fix issue related to data model regression tests
Feb 3, 2021
deb246c
more fix for RT tests
Feb 3, 2021
dd2ff5c
set CDEPS data components as false for other tests
Feb 3, 2021
ef98508
update components that has PIO fix
Feb 4, 2021
f800fab
clean unused command
Feb 4, 2021
e6bcb48
update HAFS RT tests
Feb 5, 2021
3b73e72
update components
Feb 5, 2021
f6832e1
update NEMS to include PIO fix
Feb 10, 2021
2aaa309
sync with support/HAFS
Feb 11, 2021
d58071d
fix build for custom DATM configuration tha uses MOM6
Feb 11, 2021
8e463c8
fix for input.nml in DATM configurations
Feb 11, 2021
db3d4c8
increase wallclock time from 30 to 45 for coupled configurations
Feb 11, 2021
062d55e
update components
Feb 26, 2021
4dae435
update submodule file
Feb 26, 2021
795774c
fix minor typo
Feb 27, 2021
4eb55c1
add PNETCDF support for PIO
Feb 27, 2021
88c24ca
update CMakeModules
Feb 27, 2021
494930e
try to update CMakeModules again
Feb 27, 2021
f08feeb
go back to NOAA-EMC for CMakeModules
Feb 27, 2021
ee0f23f
update regression tests log
Feb 28, 2021
e599140
sync with support/HAFS
Mar 12, 2021
7aa9cd2
Update RegressionTests_orion.intel.log
uturuncoglu Mar 12, 2021
b1b64f6
initial attempt to bring HAFS related RTs
Mar 16, 2021
544f15c
add missing files
Mar 16, 2021
d2b9c43
delete remaining files
Mar 16, 2021
31dab3d
Merge branch 'feature/hafs_couplehycom_cdeps' of https://github.com/h…
Mar 16, 2021
1d673e1
minor fix for nemsio
Mar 16, 2021
0352aed
more work for HAFS RTs
Mar 18, 2021
040cb1d
more work to bring HAFS RTs
Mar 21, 2021
d17f5a8
add missing file
Mar 21, 2021
2846a22
remove all data component test
Mar 21, 2021
f38f619
update .gitmodules to point feature/pio_fix_comp branches
Mar 21, 2021
48b24db
increase wallclock time for DATM+HYCOM RT
Mar 22, 2021
9ff89f5
add environment variables for ESMF timing
Mar 23, 2021
5c70d5e
update git submodules
May 20, 2021
845c9ec
update components and sync with support/HAFS
Jun 10, 2021
41b5242
Merge remote-tracking branch 'origin/support/HAFS' into feature/hafs_…
Jun 10, 2021
94628f2
revert chnages in the CDEPS interface
Jun 10, 2021
4aa9759
revert chnages related with using full CDEPS library and add data oce…
Jun 10, 2021
4179b7d
update components, point HAFS fork for CDEPS and fix build issue in NEMS
Jun 15, 2021
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
Expand Up @@ -44,5 +44,5 @@
branch = develop
[submodule "CDEPS"]
path = CDEPS-interface/CDEPS
url = https://github.com/hafs-community/CDEPS
branch = emc/develop
url = https://github.com/hafs-community/CDEPS.git
branch = feature/hafs_couplehycom_cdeps
31 changes: 24 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,11 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMakeModules/Modules)
###############################################################################

# Valid applications and choices
list(APPEND VALID_APPS ATM ATMW S2S S2SW HAFS HAFSW DATM DATM_NEMS)
list(APPEND VALID_APPS
ATM ATMW
S2S S2SW
HAFS HAFSW HAFS_DATM HAFS_DOCN
DATM DATM_NEMS)
set(APP NONE CACHE BOOL "Application Name")
if(NOT (APP IN_LIST VALID_APPS))
message(FATAL_ERROR "${APP} is not a valid application.\nValid Applications are: ${VALID_APPS}")
Expand Down Expand Up @@ -134,7 +138,7 @@ if(INLINE_POST)
endif()

# See https://github.com/NOAA-EMC/NCEPLIBS-nemsio/pull/22
target_link_libraries(nemsio::nemsio INTERFACE w3emc::w3emc_d bacio::bacio_4)
target_link_libraries(nemsio::nemsio INTERFACE w3nco::w3nco_d w3emc::w3emc_d bacio::bacio_4)

# Configure Python
find_package(Python 3 REQUIRED COMPONENTS Interpreter)
Expand Down Expand Up @@ -311,11 +315,17 @@ if(CMEPS)
endif()

if(CDEPS)
add_dependencies(ufs cdeps::datm)
list(APPEND _ufs_defs_private CDEPS-interface/CDEPS
FRONT_CDEPS_DATM=atm_comp_nuopc)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/CDEPS-interface/CDEPS/datm)
target_link_libraries(ufs PUBLIC cdeps::datm)
add_dependencies(ufs cdeps::datm)
list(APPEND _ufs_defs_private CDEPS-interface/CDEPS
FRONT_CDEPS_DATM=cdeps_datm_comp)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/CDEPS-interface/CDEPS/datm)
target_link_libraries(ufs PUBLIC cdeps::datm)

add_dependencies(ufs cdeps::docn)
list(APPEND _ufs_defs_private CDEPS-interface/CDEPS
FRONT_CDEPS_DOCN=cdeps_docn_comp)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/CDEPS-interface/CDEPS/docn)
target_link_libraries(ufs PUBLIC cdeps::docn)
endif()

target_compile_definitions(ufs PRIVATE "${_ufs_defs_private}")
Expand Down Expand Up @@ -349,6 +359,13 @@ target_link_libraries(ufs_model PRIVATE ufs
esmf
NetCDF::NetCDF_Fortran)

if(S2S OR CMEPS OR CDEPS)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this only true for PNETCDF used with S2S, CMEPS, or CDEPS or do you mean for these links to be included if PNETCDF is true?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PNETCDF is only required when CMEPS and CDEPS is used. Plus, the io type need to be set to pnetcdf in the nems.configure. These changes will not be used in the near future since it requires new PIO installation with pnetcdf support and the FindPnetCDF.cmake to find the pnetcdf. This is currently in a branch of CMakeModules.

if(PNETCDF)
target_link_libraries (ufs_model PRIVATE ${PNETCDF_LIBRARY_DIRS})
target_include_directories(ufs_model PRIVATE ${PNETCDF_INCLUDE_DIRS})
endif()
endif()

###############################################################################
### Install
###############################################################################
Expand Down
2 changes: 1 addition & 1 deletion FV3
Submodule FV3 updated from 66e32d to 93b8f4
1 change: 0 additions & 1 deletion HYCOM-interface/hycom_files.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -66,4 +66,3 @@ list(APPEND _hycom_nuopc_src_files
list(APPEND _hycom_offline_src_files
HYCOM/hycom.F90
)

2 changes: 1 addition & 1 deletion NEMS
60 changes: 34 additions & 26 deletions cmake/configure_apps.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -14,56 +14,64 @@
### Configure Application Components
###############################################################################
if(APP MATCHES "^(ATM|ATMW)$")
set(FMS ON CACHE BOOL "Enable FMS" FORCE)
set(FV3 ON CACHE BOOL "Enable FV3" FORCE)
set(STOCH_PHYS ON CACHE BOOL "Enable Stochastic Physics" FORCE)
set(FMS ON CACHE BOOL "Enable FMS" FORCE)
set(FV3 ON CACHE BOOL "Enable FV3" FORCE)
set(STOCH_PHYS ON CACHE BOOL "Enable Stochastic Physics" FORCE)
if(APP MATCHES "ATMW")
set(WW3 ON CACHE BOOL "Enable WAVEWATCH III" FORCE)
set(WW3 ON CACHE BOOL "Enable WAVEWATCH III" FORCE)
message("Configuring UFS app in Atmosphere with Waves mode")
else()
message("Configuring UFS app in Atmosphere Only mode")
endif()
endif()

if(APP MATCHES "^(DATM|DATM_NEMS)$")
set(CMEPS ON CACHE BOOL "Enable CMEPS" FORCE)
set(FMS ON CACHE BOOL "Enable FMS" FORCE)
set(MOM6 ON CACHE BOOL "Enable MOM6" FORCE)
set(CICE6 ON CACHE BOOL "Enable CICE6" FORCE)
set(CMEPS ON CACHE BOOL "Enable CMEPS" FORCE)
set(FMS ON CACHE BOOL "Enable FMS" FORCE)
set(MOM6 ON CACHE BOOL "Enable MOM6" FORCE)
set(CICE6 ON CACHE BOOL "Enable CICE6" FORCE)
if(APP MATCHES "DATM_NEMS")
set(NEMSdatm ON CACHE BOOL "Enable NEMS DataAtm" FORCE)
set(NEMSdatm ON CACHE BOOL "Enable NEMS DataAtm" FORCE)
message("Configuring UFS app in (NEMS) Data Atmosphere mode")
elseif(APP MATCHES "DATM")
set(CDEPS ON CACHE BOOL "Enable CDEPS" FORCE)
set(CDEPS ON CACHE BOOL "Enable CDEPS" FORCE)
message("Configuring UFS app in (CDEPS) Data Atmosphere mode")
endif()
endif()

if(APP MATCHES "^(S2S|S2SW)$")
set(CMEPS ON CACHE BOOL "Enable CMEPS" FORCE)
set(FMS ON CACHE BOOL "Enable FMS" FORCE)
set(FV3 ON CACHE BOOL "Enable FV3" FORCE)
set(MOM6 ON CACHE BOOL "Enable MOM6" FORCE)
set(CICE6 ON CACHE BOOL "Enable CICE6" FORCE)
set(STOCH_PHYS ON CACHE BOOL "Enable Stochastic Physics" FORCE)
set(CMEPS ON CACHE BOOL "Enable CMEPS" FORCE)
set(FMS ON CACHE BOOL "Enable FMS" FORCE)
set(FV3 ON CACHE BOOL "Enable FV3" FORCE)
set(MOM6 ON CACHE BOOL "Enable MOM6" FORCE)
set(CICE6 ON CACHE BOOL "Enable CICE6" FORCE)
set(STOCH_PHYS ON CACHE BOOL "Enable Stochastic Physics" FORCE)
if(APP MATCHES "S2SW")
set(WW3 ON CACHE BOOL "Enable WAVEWATCH III" FORCE)
set(WW3 ON CACHE BOOL "Enable WAVEWATCH III" FORCE)
message("Configuring UFS app in S2S with Waves mode")
else()
message("Configuring UFS app in S2S mode")
endif()
endif()

if(APP MATCHES "^(HAFS|HAFSW)$")
set(CMEPS ON CACHE BOOL "Enable CMEPS" FORCE)
set(FMS ON CACHE BOOL "Enable FMS" FORCE)
set(FV3 ON CACHE BOOL "Enable FV3" FORCE)
set(HYCOM ON CACHE BOOL "Enable HYCOM" FORCE)
set(STOCH_PHYS ON CACHE BOOL "Enable Stochastic Physics" FORCE)
if(APP MATCHES "^(HAFS|HAFSW|HAFS_DATM|HAFS_DOCN)$")
set(CMEPS ON CACHE BOOL "Enable CMEPS" FORCE)
if(APP MATCHES "HAFS_DATM")
set(CDEPS ON CACHE BOOL "Enable CDEPS" FORCE)
message("Configuring UFS app in HAFS with Data Atmosphere mode")
else()
set(FMS ON CACHE BOOL "Enable FMS" FORCE)
set(FV3 ON CACHE BOOL "Enable FV3" FORCE)
set(STOCH_PHYS ON CACHE BOOL "Enable Stochastic Physics" FORCE)
endif()
if(APP MATCHES "HAFS_DOCN")
set(CDEPS ON CACHE BOOL "Enable CDEPS" FORCE)
message("Configuring UFS app in HAFS with Data Ocean mode")
else()
set(HYCOM ON CACHE BOOL "Enable HYCOM" FORCE)
endif()
if(APP MATCHES "HAFSW")
set(WW3 ON CACHE BOOL "Enable WAVEWATCH III" FORCE)
set(WW3 ON CACHE BOOL "Enable WAVEWATCH III" FORCE)
message("Configuring UFS app in HAFS with Waves mode")
else()
message("Configuring UFS app in HAFS mode")
endif()
endif()
10 changes: 0 additions & 10 deletions tests/cdeps_conf/datm_era5_run.IN

This file was deleted.

10 changes: 0 additions & 10 deletions tests/cdeps_conf/docn_oisst_run.IN

This file was deleted.

33 changes: 24 additions & 9 deletions tests/compile.sh
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,10 @@ if [[ "${MAKE_OPT}" == *"OPENMP=N"* ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DOPENMP=OFF"
fi

if [[ "${MAKE_OPT}" == *"PNETCDF=Y"* ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DPNETCDF=Y"
fi

if [[ "${MAKE_OPT}" == *"MULTI_GASES=Y"* ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DMULTI_GASES=ON"
else
Expand Down Expand Up @@ -124,7 +128,7 @@ else
fi
fi

# Check if suites argument is provided or not
# Check if suites argument is provided or not
set +ex
TEST=$( echo $MAKE_OPT | grep -e "SUITES=" )
if [[ $? -eq 0 ]]; then
Expand All @@ -134,36 +138,47 @@ fi
set -ex

# Valid applications
if [[ "${MAKE_OPT}" == *"APP=ATM"* ]]; then
APP_OPT=$( echo $MAKE_OPT | tr " " "\n" | sed -n '/APP/p;/APP/q' )
echo "APP_OPT = ${APP_OPT}"

if [[ "${APP_OPT}" == "APP=ATM" ]]; then
echo "MAKE_OPT = ${MAKE_OPT}"
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=ATM"
fi

if [[ "${MAKE_OPT}" == *"APP=ATMW"* ]]; then
if [[ "${APP_OPT}" == "APP=ATMW" ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=ATMW"
fi

if [[ "${MAKE_OPT}" == *"APP=S2S"* ]]; then
if [[ "${APP_OPT}" == "APP=S2S" ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=S2S -DMOM6SOLO=ON"
fi

if [[ "${MAKE_OPT}" == *"APP=S2SW"* ]]; then
if [[ "${APP_OPT}" == "APP=S2SW" ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=S2SW -DMOM6SOLO=ON"
fi

if [[ "${MAKE_OPT}" == *"APP=HAFS"* ]]; then
if [[ "${APP_OPT}" == "APP=HAFS" ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=HAFS"
fi

if [[ "${MAKE_OPT}" == *"APP=HAFSW"* ]]; then
if [[ "${APP_OPT}" == "APP=HAFSW" ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=HAFSW"
fi

if [[ "${MAKE_OPT}" == *"APP=DATM"* ]]; then
if [[ "${APP_OPT}" == "APP=HAFS_DATM" ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=HAFS_DATM"
fi

if [[ "${APP_OPT}" == "APP=HAFS_DOCN" ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=HAFS_DOCN"
fi

if [[ "${APP_OPT}" == "APP=DATM" ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=DATM"
fi

if [[ "${MAKE_OPT}" == *"APP=DATM_NEMS"* ]]; then
if [[ "${APP_OPT}" == "APP=DATM_NEMS" ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=DATM_NEMS"
fi

Expand Down
92 changes: 92 additions & 0 deletions tests/default_vars.sh
Original file line number Diff line number Diff line change
Expand Up @@ -401,6 +401,7 @@ export FV3=true
export S2S=false
export DATM_NEMS=false
export DATM_CDEPS=false
export DOCN_CDEPS=false
export THRD=1
export WLCLK=$WLCLK_dflt
export INPES=$INPES_dflt
Expand Down Expand Up @@ -734,6 +735,7 @@ export FV3=false
export S2S=false
export DATM_NEMS=true
export DATM_CDEPS=false
export DOCN_CDEPS=false
export CPLWAV=.F.
export DAYS=1
export FHMAX=24
Expand Down Expand Up @@ -945,3 +947,93 @@ export CICE_HIST_AVG='.true.'
export BL_SUFFIX=""
export RT_SUFFIX=""
}
export_cdeps_datm ()
{
export FV3=false
export CDEPS_DATM=true
export DATM=false
export THRD=1
export WLCLK=$WLCLK_dflt
export INPES=$INPES_dflt
export JNPES=$JNPES_dflt
export TASKS=$TASKS_dflt
export TPN=$TPN_dflt

export atm_model="datm"

export DATM_CONFIGURE_A="datm_in"
export DATM_CONFIGURE_B="datm.streams.xml.era5"
}
export_cdeps_docn ()
{
export CDEPS_DOCN=true
export THRD=1
export WLCLK=$WLCLK_dflt
export INPES=$INPES_dflt
export JNPES=$JNPES_dflt
export TASKS=$TASKS_dflt
export TPN=$TPN_dflt

export ocn_model="docn"
export ocn_datamode="sstdata"

export DOCN_CONFIGURE_A="docn_in"
export DOCN_CONFIGURE_B="docn.streams.xml.IN"
}
export_cpl_regional ()
{
export S2S=false
export CMEPS=true

# model_configure
export SYEAR='2019'
export SMONTH='08'
export SDAY='29'
export SHOUR='00'
export FHMAX=24
export ENS_NUM=1
export DT_ATMOS='900'
export CPL='.true.'
export RESTART_INTERVAL=0
export FHROT=0
export coupling_interval_fast_sec=0
export QUILTING=.true.
export WRITE_GROUP=1
export WRTTASK_PER_GROUP=6
export OUTPUT_HISTORY=.true.
export WRITE_DOPOST=.false.
export NUM_FILES=2
export FILENAME_BASE="'dyn' 'phy'"
export OUTPUT_GRID="'regional_latlon'"
export OUTPUT_FILE="'netcdf'"
export IDEFLATE=0
export NBITS=0
export WRITE_NEMSIOFLIP=.false.
export WRITE_FSYNCFLAG=.false.
export NFHOUT=3
export NFHMAX_HF=-1
export NFHOUT_HF=3
export CEN_LON=-62.0
export CEN_LAT=25.0
export LON1=-114.5
export LAT1=-5.0
export LON2=-9.5
export LAT2=55.0
export DLON=0.03
export DLAT=0.03

# input.nml
export MERGE_IMPORT=.true.

# nems.configure
export med_model="nems"
export CAP_DBUG_FLAG="0"
export RESTART_N=${FHMAX}
export CPLMODE="hafs"
export RUNTYPE="startup"
export USE_COLDSTART="false"

# timing
export ESMF_RUNTIME_PROFILE=ON
export ESMF_RUNTIME_PROFILE_OUTPUT=SUMMARY
}
5 changes: 5 additions & 0 deletions tests/fv3_conf/ccpp_regional_natl_run.IN
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@

rm -rf INPUT RESTART
mkdir INPUT RESTART

rsync -arv @[RTPWD]/FV3_regional_c192_natl_input_data/. .
10 changes: 10 additions & 0 deletions tests/fv3_conf/cpld_datm_cdeps_era5.IN
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
if [ -d "input" ]; then
echo "datm/ directory exists ..."
else
echo "datm/ directory not found. Creating ..."
mkdir -p datm
fi

cd datm
rsync -arv @[RTPWD]/DATM_ERA5_input_data/. .
cd -
Loading