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

Updates for component NoahMP land model #2387

Draft
wants to merge 28 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
00b6264
point development forks for FV3 and NoahMP
uturuncoglu Aug 2, 2024
ceaafc4
add new RT for S2S with land component
uturuncoglu Aug 2, 2024
78948b1
simplify tests
uturuncoglu Sep 3, 2024
b8c5f1c
fix support for high resolution land
uturuncoglu Sep 4, 2024
b0cfec2
update nuopc specific run script
uturuncoglu Sep 4, 2024
c5fe856
remove land specific customization
uturuncoglu Sep 4, 2024
8ec1942
add missing test option
uturuncoglu Sep 4, 2024
72e6406
update new fully coupled test
uturuncoglu Sep 4, 2024
0071462
sync components
uturuncoglu Sep 4, 2024
9d6ee7e
sync model
uturuncoglu Sep 4, 2024
0db43c4
point CMEPS fork
uturuncoglu Nov 8, 2024
c09ac9d
update S2S RT with land component
uturuncoglu Nov 8, 2024
6e66818
add new S2S app with land component
uturuncoglu Nov 8, 2024
e9a21cb
sync noahmp component
uturuncoglu Nov 8, 2024
f239eb1
more work for s2s configuration
uturuncoglu Nov 8, 2024
5de4419
update land component
uturuncoglu Nov 8, 2024
0da66c5
update data atmosphere configurations
uturuncoglu Nov 11, 2024
5476d65
sync components
uturuncoglu Dec 6, 2024
9e407ce
update tests
uturuncoglu Dec 6, 2024
7ea87a0
sync model
uturuncoglu Dec 6, 2024
2d71152
sync components
uturuncoglu Dec 19, 2024
c8ace19
fix run sequence
uturuncoglu Dec 19, 2024
1341e58
update fv3
uturuncoglu Dec 19, 2024
049fc5e
update land RTs
uturuncoglu Dec 19, 2024
6a42c80
Merge remote-tracking branch 'upstream/develop' into feature/land_update
uturuncoglu Dec 19, 2024
0310094
add restart test for cpld_control_p8_lnd
uturuncoglu Dec 27, 2024
e7d0721
update noahmp
uturuncoglu Dec 27, 2024
d3e24db
update fv3
uturuncoglu Dec 27, 2024
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
10 changes: 5 additions & 5 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[submodule "FV3"]
path = FV3
url = https://github.com/NOAA-EMC/fv3atm
branch = develop
url = https://github.com/uturuncoglu/fv3atm
branch = feature/s2s_with_lnd
[submodule "WW3"]
path = WW3
url = https://github.com/NOAA-EMC/WW3
Expand All @@ -16,8 +16,8 @@
branch = develop
[submodule "CMEPS"]
path = CMEPS-interface/CMEPS
url = https://github.com/NOAA-EMC/CMEPS
branch = emc/develop
url = https://github.com/uturuncoglu/CMEPS
branch = feature/land
[submodule "HYCOM"]
path = HYCOM-interface/HYCOM
url = https://github.com/NOAA-EMC/HYCOM-src
Expand Down Expand Up @@ -45,7 +45,7 @@
[submodule "NOAHMP"]
path = NOAHMP-interface/noahmp
url = https://github.com/NOAA-EMC/noahmp
branch = develop
branch = feature/perf
[submodule "LM4-driver"]
path = LM4-driver
url = https://github.com/NOAA-GFDL/LM4-NUOPC-driver
Expand Down
2 changes: 1 addition & 1 deletion CMEPS-interface/CMEPS
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMakeModules/Modules)
###############################################################################

# Valid applications and choices
list(APPEND VALID_APPS ATM ATMAERO ATMAQ ATMW ATMWM ATML ATMF LND LND-LM4 S2S S2SA S2SW S2SWA S2SWAL ATM_DS2S ATM_DS2S-PCICE HAFS HAFSW HAFS-MOM6 HAFS-MOM6W HAFS-ALL NG-GODAS)
list(APPEND VALID_APPS ATM ATMAERO ATMAQ ATMW ATMWM ATML ATMF LND LND-LM4 S2S S2SL S2SA S2SW S2SWA S2SWL S2SWAL ATM_DS2S ATM_DS2S-PCICE HAFS HAFSW HAFS-MOM6 HAFS-MOM6W HAFS-ALL NG-GODAS)
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 @@ -156,7 +156,7 @@ if(FMS)
find_package(FMS 2022.04 REQUIRED COMPONENTS R4 R8)
if(APP MATCHES "^(HAFSW)$")
add_library(fms ALIAS FMS::fms_r4)
elseif (APP MATCHES "^(S2S|S2SA|S2SW|S2SWA|S2SWAL|ATM_DS2S|ATM_DS2S-PCICE|NG-GODAS|HAFS-MOM6|HAFS-MOM6W)$")
elseif (APP MATCHES "^(S2S|S2SA|S2SL|S2SW|S2SWL|S2SWA|S2SWAL|ATM_DS2S|ATM_DS2S-PCICE|NG-GODAS|HAFS-MOM6|HAFS-MOM6W)$")
add_library(fms ALIAS FMS::fms_r8)
endif()
if(APP MATCHES "^(ATM|ATMAERO|ATMAQ|ATMWM|ATMW|ATML|ATMF|ATML-LM4|LND-LM4|HAFS|HAFS-ALL)$")
Expand Down
6 changes: 3 additions & 3 deletions cmake/configure_apps.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ if(APP MATCHES "^(NG-GODAS)$")
message("Configuring UFS app in (CDEPS) Data Atmosphere mode")
endif()

if(APP MATCHES "^(S2S|S2SA|S2SW|S2SWA|S2SWAL)$")
if(APP MATCHES "^(S2S|S2SL|S2SA|S2SW|S2SWL|S2SWA|S2SWAL)$")
set(APP_MSG "Configuring UFS app in S2S")
set(CMEPS ON CACHE BOOL "Enable CMEPS" FORCE)
set(FMS ON CACHE BOOL "Enable FMS" FORCE)
Expand All @@ -61,15 +61,15 @@ if(APP MATCHES "^(S2S|S2SA|S2SW|S2SWA|S2SWAL)$")
set(CICE6 ON CACHE BOOL "Enable CICE6" FORCE)
set(CDEPS ON CACHE BOOL "Enable CDEPS" FORCE)
set(STOCH_PHYS ON CACHE BOOL "Enable Stochastic Physics" FORCE)
if(APP MATCHES "^(S2SW|S2SWA|S2SWAL)")
if(APP MATCHES "^(S2SW|S2SWL|S2SWA|S2SWAL)")
set(WW3 ON CACHE BOOL "Enable WAVEWATCH III" FORCE)
string(CONCAT APP_MSG ${APP_MSG} " with Waves")
endif()
if(APP MATCHES "^(S2SA|S2SWA|S2SWAL)")
set(UFS_GOCART ON CACHE BOOL "Enable GOCART" FORCE)
string(CONCAT APP_MSG ${APP_MSG} " with Aerosols")
endif()
if(APP MATCHES "^S2SWAL")
if(APP MATCHES "^(S2SL|S2SWL|S2SWAL)")
set(NOAHMP ON CACHE BOOL "Enable NOAHMP" FORCE)
endif()
message("${APP_MSG} mode")
Expand Down
6 changes: 1 addition & 5 deletions tests/fv3_conf/control_run.IN
Original file line number Diff line number Diff line change
Expand Up @@ -93,11 +93,7 @@ else
fi

if [ $TILEDFIX = .true. ]; then
if [ $CPLLND == .true. ]; then
cp @[INPUTDATA_ROOT]/FV3_fix_tiled/@[ATMRES]/@[ATMRES]*.nc INPUT/.
else
cp @[INPUTDATA_ROOT]/FV3_fix_tiled/@[ATMRES]/@[ATMRES]*.nc .
fi
cp @[INPUTDATA_ROOT]/FV3_fix_tiled/@[ATMRES]/@[ATMRES]*.nc .
cp @[INPUTDATA_ROOT]/FV3_fix/global_glacier.2x2.grb .
cp @[INPUTDATA_ROOT]/FV3_fix/global_maxice.2x2.grb .
cp @[INPUTDATA_ROOT]/FV3_fix/RTGSST.1982.2012.monthly.clim.grb .
Expand Down
76 changes: 62 additions & 14 deletions tests/fv3_conf/noahmp_run.IN
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,13 @@ mkdir -p INPUT RESTART

if [ "$LNDRES" = "C96" ]; then
inputdir=FV3_input_data
elif [ "$LNDRES" = "C48" ]; then
inputdir=FV3_input_data48
elif [ "$LNDRES" = "C192" ]; then
inputdir=FV3_input_data192
elif [ "$LNDRES" = "C384" ]; then
inputdir=FV3_input_data384
elif [ "$LNDRES" = "C768" ]; then
inputdir=FV3_input_data768
else
inputdir=FV3_input_data${LNDRES#C}
fi
echo "inputdir=$inputdir,LNDRES=$LNDRES"

V2_SFC_FILE=${V2_SFC_FILE:-false}

if [ $DATM_CDEPS == true ]; then
targetdir="./INPUT"
rsync -arv @[INPUTDATA_ROOT]/NOAHMP_IC/$atm_datamode/ufs-land_@[LNDRES]_init_fields.tile1.nc ./${targetdir}/@[LNDRES].initial.tile1.nc
Expand All @@ -32,6 +28,56 @@ else
targetdir="./INPUT/$LNDRES"
fi

# control_p8 with land component uses input from cpld
#if [ $S2S = false ]; then
# # Orography and grid
# cp @[INPUTDATA_ROOT]/FV3_fix_tiled/@[ATMRES]/oro_@[ATMRES].mx@[OCNRES].tile1.nc ${targetdir}/oro_data.tile1.nc
# cp @[INPUTDATA_ROOT]/FV3_fix_tiled/@[ATMRES]/oro_@[ATMRES].mx@[OCNRES].tile2.nc ${targetdir}/oro_data.tile2.nc
# cp @[INPUTDATA_ROOT]/FV3_fix_tiled/@[ATMRES]/oro_@[ATMRES].mx@[OCNRES].tile3.nc ${targetdir}/oro_data.tile3.nc
# cp @[INPUTDATA_ROOT]/FV3_fix_tiled/@[ATMRES]/oro_@[ATMRES].mx@[OCNRES].tile4.nc ${targetdir}/oro_data.tile4.nc
# cp @[INPUTDATA_ROOT]/FV3_fix_tiled/@[ATMRES]/oro_@[ATMRES].mx@[OCNRES].tile5.nc ${targetdir}/oro_data.tile5.nc
# cp @[INPUTDATA_ROOT]/FV3_fix_tiled/@[ATMRES]/oro_@[ATMRES].mx@[OCNRES].tile6.nc ${targetdir}/oro_data.tile6.nc
# cp @[INPUTDATA_ROOT]/${inputdir}/INPUT_L127_gfsv17/oro_data_ls* ${targetdir}/.
# cp @[INPUTDATA_ROOT]/${inputdir}/INPUT_L127_gfsv17/oro_data_ss* ${targetdir}/.

# cp @[INPUTDATA_ROOT]/FV3_fix_tiled/@[ATMRES]/@[ATMRES]*.nc ${targetdir}/.
#
# cp @[INPUTDATA_ROOT]/CPL_FIX/a@[ATMRES]o@[OCNRES]/grid_spec.nc ${targetdir}/.
# cp @[INPUTDATA_ROOT]/${inputdir}/INPUT/@[ATMRES]_grid*.nc ${targetdir}/.
# cp @[INPUTDATA_ROOT]/${inputdir}/INPUT/grid_spec.nc ${targetdir}/@[ATMRES]_mosaic.nc
#fi

#if [ $WARM_START = .false. ]; then
# # IC
# if [ "$V2_SFC_FILE" = "true" ]; then
# cp -r @[INPUTDATA_ROOT]/${inputdir}/INPUT_L127_mx${OCNRES}_v2_sfc/sfc_data*.nc ${targetdir}/.
# cp -r @[INPUTDATA_ROOT]/${inputdir}/INPUT_L127_mx${OCNRES}_v2_sfc/gfs_data*.nc ${targetdir}/.
# cp -r @[INPUTDATA_ROOT]/${inputdir}/INPUT_L127_mx${OCNRES}_v2_sfc/gfs_ctrl.nc ${targetdir}/.
# else
# cp -r @[INPUTDATA_ROOT]/${inputdir}/INPUT_L127_mx${OCNRES}/sfc_data*.nc ${targetdir}/.
# cp -r @[INPUTDATA_ROOT]/${inputdir}/INPUT_L127_mx${OCNRES}/gfs_data*.nc ${targetdir}/.
# cp -r @[INPUTDATA_ROOT]/${inputdir}/INPUT_L127_mx${OCNRES}/gfs_ctrl*.nc ${targetdir}/.
# fi
#else
# # FV3 related files
# cp -r ../${DEP_RUN}${SUFFIX}/${targetdir}/* ${targetdir}/.
# cp -r ../${DEP_RUN}${SUFFIX}/RESTART/${RESTART_FILE_PREFIX}.* ${targetdir}/.
# for RFILE in INPUT/${RESTART_FILE_PREFIX}.*; do
# [ -e $RFILE ] || exit 1
# RFILE_OLD=$(basename $RFILE)
# mv -f $RFILE ${targetdir}/"${RFILE_OLD//${RESTART_FILE_PREFIX}./}"
# done
# if [[ $IAU_OFFSET == 6 ]] && [[ $FHROT -le 6 ]]; then
# cp @[INPUTDATA_ROOT]/${inputdir}/INPUT_L127_mx${OCNRES}/fv_increment*.nc INPUT/.
# fi
# # copy land restart files
# cp ../${DEP_RUN}${SUFFIX}/ufs.cpld.lnd.out.${RESTART_FILE_SUFFIX_SECS}.tile*.nc RESTART/.
# # CMEPS restart and pointer files
# RFILE=ufs.cpld.cpl.r.${RESTART_FILE_SUFFIX_SECS}.nc
# cp ../${DEP_RUN}${SUFFIX}/RESTART/${RFILE} .
# ls -1 ${RFILE}>rpointer.cpl
#fi

if [ $WARM_START = .false. ]; then
cp -r @[INPUTDATA_ROOT]/${inputdir}/INPUT_L127/sfc_data.tile*.nc ${targetdir}/.
else
Expand All @@ -45,6 +91,8 @@ else
fi
fi

# running land in different resolution
# note that CMEPS mediator has some limitiations to run land in different resolution than atmosphere
if [ "$ATMRES" != "$LNDRES" ]; then
rsync -arv @[INPUTDATA_ROOT]/FV3_fix_tiled/@[LNDRES]/@[LNDRES].maximum_snow_albedo.tile*.nc ${targetdir}/.
rsync -arv @[INPUTDATA_ROOT]/FV3_fix_tiled/@[LNDRES]/@[LNDRES].slope_type.tile*.nc ${targetdir}/.
Expand All @@ -53,12 +101,12 @@ if [ "$ATMRES" != "$LNDRES" ]; then
rsync -arv @[INPUTDATA_ROOT]/FV3_fix_tiled/@[LNDRES]/@[LNDRES].substrate_temperature.tile*.nc ${targetdir}/.
rsync -arv @[INPUTDATA_ROOT]/FV3_fix_tiled/@[LNDRES]/@[LNDRES].vegetation_greenness.tile*.nc ${targetdir}/.
rsync -arv @[INPUTDATA_ROOT]/FV3_fix_tiled/@[LNDRES]/@[LNDRES].vegetation_type.tile*.nc ${targetdir}/.
rsync -arv @[INPUTDATA_ROOT]/FV3_fix_tiled/@[LNDRES]/oro_@[LNDRES].mx*.tile1.nc ${targetdir}/oro_data.tile1.nc
rsync -arv @[INPUTDATA_ROOT]/FV3_fix_tiled/@[LNDRES]/oro_@[LNDRES].mx*.tile2.nc ${targetdir}/oro_data.tile2.nc
rsync -arv @[INPUTDATA_ROOT]/FV3_fix_tiled/@[LNDRES]/oro_@[LNDRES].mx*.tile3.nc ${targetdir}/oro_data.tile3.nc
rsync -arv @[INPUTDATA_ROOT]/FV3_fix_tiled/@[LNDRES]/oro_@[LNDRES].mx*.tile4.nc ${targetdir}/oro_data.tile4.nc
rsync -arv @[INPUTDATA_ROOT]/FV3_fix_tiled/@[LNDRES]/oro_@[LNDRES].mx*.tile5.nc ${targetdir}/oro_data.tile5.nc
rsync -arv @[INPUTDATA_ROOT]/FV3_fix_tiled/@[LNDRES]/oro_@[LNDRES].mx*.tile6.nc ${targetdir}/oro_data.tile6.nc
rsync -arv @[INPUTDATA_ROOT]/FV3_fix_tiled/@[LNDRES]/oro_@[LNDRES].mx@[OCNRES].tile1.nc ${targetdir}/oro_data.tile1.nc
rsync -arv @[INPUTDATA_ROOT]/FV3_fix_tiled/@[LNDRES]/oro_@[LNDRES].mx@[OCNRES].tile2.nc ${targetdir}/oro_data.tile2.nc
rsync -arv @[INPUTDATA_ROOT]/FV3_fix_tiled/@[LNDRES]/oro_@[LNDRES].mx@[OCNRES].tile3.nc ${targetdir}/oro_data.tile3.nc
rsync -arv @[INPUTDATA_ROOT]/FV3_fix_tiled/@[LNDRES]/oro_@[LNDRES].mx@[OCNRES].tile4.nc ${targetdir}/oro_data.tile4.nc
rsync -arv @[INPUTDATA_ROOT]/FV3_fix_tiled/@[LNDRES]/oro_@[LNDRES].mx@[OCNRES].tile5.nc ${targetdir}/oro_data.tile5.nc
rsync -arv @[INPUTDATA_ROOT]/FV3_fix_tiled/@[LNDRES]/oro_@[LNDRES].mx@[OCNRES].tile6.nc ${targetdir}/oro_data.tile6.nc
rsync -arv @[INPUTDATA_ROOT]/${inputdir}/INPUT/@[LNDRES]_grid.tile*.nc ${targetdir}/.
rsync -arv @[INPUTDATA_ROOT]/${inputdir}/INPUT/grid_spec.nc ${targetdir}/@[LNDRES]_mosaic.nc
fi
2 changes: 2 additions & 0 deletions tests/parm/ufs.configure.atm_lnd.IN
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ MED_attributes::
history_option = nhours
history_ymd = -999
coupling_mode = @[CPLMODE]
samegrid_atmlnd = @[samegrid_atmlnd]
::

# ATM #
Expand All @@ -46,6 +47,7 @@ LND_attributes::
Diagnostic = 0
mosaic_file = @[mosaic_file]
input_dir = @[lnd_input_dir]
fixed_dir = @[lnd_fixed_dir]
ic_type = @[lnd_ic_type]
layout = @[layout_x]:@[layout_y] # need to be consistent with number of PEs
num_soil_levels = 4
Expand Down
Loading
Loading