Skip to content

Commit 61e1b34

Browse files
Merge remote-tracking branch 'origin/develop' into number-concentration
2 parents 3ac971f + bba5449 commit 61e1b34

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+4589
-2055
lines changed

CDEPS-interface/cdeps_files.cmake

+1
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ list(APPEND cdeps_datm_files
5656
list(APPEND cdeps_dice_files
5757
CDEPS/dice/dice_datamode_ssmi_mod.F90
5858
CDEPS/dice/dice_flux_atmice_mod.F90
59+
CDEPS/dice/dice_datamode_cplhist_mod.F90
5960
CDEPS/dice/ice_comp_nuopc.F90
6061
)
6162

CICE-interface/CMakeLists.txt

+7-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ list(APPEND lib_src_files
5151
${cice_shared_files_c}
5252
${icepack_files}
5353
${cice_mpi_comm_files}
54-
${cice_nuopc_cmeps_driver_files})
54+
${cice_nuopc_cmeps_driver_files}
55+
${cice_cdeps_inline_files})
5556

5657
list(APPEND _cice_defs FORTRANUNDERSCORE
5758
coupled)
@@ -84,6 +85,11 @@ if(OpenMP_Fortran_FOUND)
8485
target_link_libraries(cice PRIVATE OpenMP::OpenMP_Fortran)
8586
endif()
8687

88+
# ice prescribed
89+
add_dependencies(cice cdeps::cdeps)
90+
target_compile_definitions(cice PUBLIC "DISABLE_FoX")
91+
target_link_libraries(cice PUBLIC cdeps::cdeps)
92+
8793
###############################################################################
8894
### Install
8995
###############################################################################

CICE-interface/cice_files.cmake

+19
Original file line numberDiff line numberDiff line change
@@ -150,3 +150,22 @@ list(APPEND cice_nuopc_cmeps_driver_files
150150
CICE/cicecore/drivers/nuopc/cmeps/ice_shr_methods.F90
151151
CICE/cicecore/drivers/nuopc/cmeps/ice_mesh_mod.F90
152152
)
153+
154+
#-- Using ice prescribed ifndef cesmcoupled
155+
list(APPEND cice_cdeps_inline_files
156+
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_orb_mod.F90
157+
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_const_mod.F90
158+
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_abort_mod.F90
159+
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_strconvert_mod.F90
160+
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_log_mod.F90
161+
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_sys_mod.F90
162+
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_kind_mod.F90
163+
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_nl_mod.F90
164+
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_cal_mod.F90
165+
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_string_mod.F90
166+
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_timer_mod.F90
167+
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/streams/dshr_strdata_mod.F90
168+
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/streams/dshr_stream_mod.F90
169+
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/streams/dshr_methods_mod.F90
170+
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/dshr/dshr_mod.F90
171+
)

CMakeLists.txt

+3-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMakeModules/Modules)
1616
###############################################################################
1717

1818
# Valid applications and choices
19-
list(APPEND VALID_APPS ATM ATMAERO ATMAQ ATMW ATMWM ATML LND S2S S2SA S2SW S2SWA S2SWAL HAFS HAFSW HAFS-MOM6 HAFS-MOM6W HAFS-ALL NG-GODAS)
19+
list(APPEND VALID_APPS ATM ATMAERO ATMAQ ATMW ATMWM ATML LND S2S S2SA S2SW S2SWA S2SWAL ATM_DS2S ATM_DS2S-PCICE HAFS HAFSW HAFS-MOM6 HAFS-MOM6W HAFS-ALL NG-GODAS)
2020
set(APP NONE CACHE BOOL "Application Name")
2121
if(NOT (APP IN_LIST VALID_APPS))
2222
message(FATAL_ERROR "${APP} is not a valid application.\nValid Applications are: ${VALID_APPS}")
@@ -152,7 +152,7 @@ if(FMS)
152152
find_package(FMS 2022.04 REQUIRED COMPONENTS R4 R8)
153153
if(APP MATCHES "^(HAFSW)$")
154154
add_library(fms ALIAS FMS::fms_r4)
155-
elseif (APP MATCHES "^(S2S|S2SA|S2SW|S2SWA|S2SWAL|NG-GODAS|HAFS-MOM6|HAFS-MOM6W)$")
155+
elseif (APP MATCHES "^(S2S|S2SA|S2SW|S2SWA|S2SWAL|ATM_DS2S|ATM_DS2S-PCICE|NG-GODAS|HAFS-MOM6|HAFS-MOM6W)$")
156156
add_library(fms ALIAS FMS::fms_r8)
157157
endif()
158158
if(APP MATCHES "^(ATM|ATMAERO|ATMAQ|ATMWM|ATMW|ATML|HAFS|HAFS-ALL)$")
@@ -329,6 +329,7 @@ if(CDEPS)
329329
add_dependencies(ufs cdeps::cdeps)
330330
list(APPEND _ufs_defs_private FRONT_CDEPS_DATM=cdeps_datm_comp)
331331
list(APPEND _ufs_defs_private FRONT_CDEPS_DOCN=cdeps_docn_comp)
332+
list(APPEND _ufs_defs_private FRONT_CDEPS_DICE=cdeps_dice_comp)
332333
target_link_libraries(ufs PUBLIC cdeps::cdeps)
333334
endif()
334335

cmake/configure_apps.cmake

+15
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ if(APP MATCHES "^(S2S|S2SA|S2SW|S2SWA|S2SWAL)$")
5353
set(FV3 ON CACHE BOOL "Enable FV3" FORCE)
5454
set(MOM6 ON CACHE BOOL "Enable MOM6" FORCE)
5555
set(CICE6 ON CACHE BOOL "Enable CICE6" FORCE)
56+
set(CDEPS ON CACHE BOOL "Enable CDEPS" FORCE)
5657
set(STOCH_PHYS ON CACHE BOOL "Enable Stochastic Physics" FORCE)
5758
if(APP MATCHES "^(S2SW|S2SWA|S2SWAL)")
5859
set(WW3 ON CACHE BOOL "Enable WAVEWATCH III" FORCE)
@@ -68,6 +69,20 @@ if(APP MATCHES "^(S2S|S2SA|S2SW|S2SWA|S2SWAL)$")
6869
message("${APP_MSG} mode")
6970
endif()
7071

72+
if(APP MATCHES "^(ATM_DS2S|ATM_DS2S-PCICE)$")
73+
set(APP_MSG "Configuring UFS app in ATM_DS2S with CDEPS data")
74+
set(CMEPS ON CACHE BOOL "Enable CMEPS" FORCE)
75+
set(FMS ON CACHE BOOL "Enable FMS" FORCE)
76+
set(FV3 ON CACHE BOOL "Enable FV3" FORCE)
77+
set(STOCH_PHYS ON CACHE BOOL "Enable Stochastic Physics" FORCE)
78+
set(CDEPS ON CACHE BOOL "Enable CDEPS" FORCE)
79+
if (APP MATCHES "^(ATM_DS2S-PCICE)$")
80+
set(CICE6 ON CACHE BOOL "Enable CICE6" FORCE)
81+
string(CONCAT APP_MSG ${APP_MSG} " with prescribed ice sea ice")
82+
endif()
83+
message("${APP_MSG} mode")
84+
endif()
85+
7186
if(APP MATCHES "^(HAFS|HAFSW|HAFS-MOM6|HAFS-MOM6W|HAFS-ALL)$")
7287
set(CMEPS ON CACHE BOOL "Enable CMEPS" FORCE)
7388
set(CDEPS ON CACHE BOOL "Enable CDEPS" FORCE)

doc/UsersGuide/source/CodeOverview.rst

+3-2
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,8 @@ The umbrella repository for the UFS WM is named ``ufs-weather-model``. Under thi
108108
├── CDEPS-interface
109109
│ └── CDEPS
110110
│ ├── (datm) -------- CDEPS DATM
111-
│ └── (docn) -------- CDEPS DOCN
111+
│ ├── (docn) -------- CDEPS DOCN
112+
│ └── (dice) -------- CDEPS DICE
112113
├── CICE-interface
113114
│ └── CICE -------- CICE6 sea ice model
114115
│ ├── (icepack) -------- Sea ice column physics
@@ -161,4 +162,4 @@ The umbrella repository for the UFS WM is named ``ufs-weather-model``. Under thi
161162
│ └── fv3_conf
162163
└── WW3
163164
└── (model) -------- WW3 model
164-
└── (src) -------- NUOPC WW3 caps
165+
└── (src) -------- NUOPC WW3 caps

driver/UFSDriver.F90

+20
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ MODULE UFSDriver
6161
#endif
6262
#ifdef FRONT_CDEPS_DOCN
6363
use FRONT_CDEPS_DOCN, only: DOCN_SS => SetServices
64+
#endif
65+
#ifdef FRONT_CDEPS_DICE
66+
use FRONT_CDEPS_DICE, only: DICE_SS => SetServices
6467
#endif
6568
! - Handle build time ICE options:
6669
#ifdef FRONT_CICE6
@@ -410,6 +413,23 @@ subroutine SetModelServices(driver, rc)
410413
found_comp = .true.
411414
end if
412415
#endif
416+
#ifdef FRONT_CDEPS_DICE
417+
if (trim(model) == "dice") then
418+
!TODO: Remove bail code and pass info and SetVM to DriverAddComp
419+
!TODO: once component supports threading.
420+
if (ompNumThreads > 1) then
421+
write (msg, *) "ESMF-aware threading NOT implemented for model: "//&
422+
trim(model)
423+
call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg,line=__LINE__, &
424+
file=__FILE__, rcToReturn=rc)
425+
return ! bail out
426+
endif
427+
call NUOPC_DriverAddComp(driver, trim(prefix), DICE_SS, &
428+
petList=petList, comp=comp, rc=rc)
429+
if (ChkErr(rc,__LINE__,u_FILE_u)) return
430+
found_comp = .true.
431+
end if
432+
#endif
413433
#ifdef FRONT_CICE6
414434
if (trim(model) == "cice6") then
415435
call NUOPC_DriverAddComp(driver, trim(prefix), CICE6_SS, &

tests/bl_date.conf

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export BL_DATE=20240603
1+
export BL_DATE=20240607

tests/default_vars.sh

+17
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,7 @@ export CMP_DATAONLY=false
419419
# Defaults for ufs.configure
420420
export esmf_logkind="ESMF_LOGKIND_MULTI"
421421
export DumpFields="false"
422+
export MED_history_n=1000000
422423

423424
export_fv3_v16 ()
424425
{
@@ -498,9 +499,12 @@ export HAFS=false
498499
export AQM=false
499500
export DATM_CDEPS=false
500501
export DOCN_CDEPS=false
502+
export DICE_CDEPS=false
503+
export CICE_PRESCRIBED=false
501504
export CDEPS_INLINE=false
502505
export POSTAPP='global'
503506
export USE_MERRA2=.true.
507+
export NESTED=.false.
504508

505509
export NTILES=6
506510
export INPES=${INPES_dflt}
@@ -904,6 +908,7 @@ export_cice6() {
904908
export DT_CICE=${DT_ATMOS}
905909
export CICE_NPT=999
906910
export CICE_RUNTYPE=initial
911+
export CICE_ICE_IC='cice_model.res.nc'
907912
export CICE_RUNID=unknown
908913
export CICE_USE_RESTART_TIME=.false.
909914
export CICE_RESTART_DIR=./RESTART/
@@ -954,6 +959,12 @@ export_cice6() {
954959
export CICE_BLCKX
955960
export CICE_BLCKY
956961
export CICE_DECOMP=slenderX2
962+
963+
#ds2s
964+
export MESH_DICE=none
965+
export stream_files_dice=none
966+
export CICE_PRESCRIBED=false
967+
export DICE_CDEPS=false
957968
}
958969

959970
# Defaults for the MOM6 model namelist, mx100
@@ -1056,6 +1067,8 @@ export HAFS=false
10561067
export AQM=false
10571068
export DATM_CDEPS=false
10581069
export DOCN_CDEPS=false
1070+
export DICE_CDEPS=false
1071+
export CICE_PRESCRIBED=false
10591072
export CDEPS_INLINE=false
10601073
export FV3BMIC='p8c'
10611074
export BMIC=.false.
@@ -1222,6 +1235,10 @@ export AOD_FRQ=060000
12221235
export RESTART_FILE_PREFIX=''
12231236
export RESTART_FILE_SUFFIX_SECS=''
12241237
export RT35D=''
1238+
1239+
#CDEPS ds2s
1240+
export MESH_DICE=none
1241+
export stream_files_dice=none
12251242
}
12261243
export_35d_run ()
12271244
{

tests/fv3_conf/control_run.IN

+5-2
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,17 @@ elif [ $NPX = 385 ]; then
1010
elif [ $NPX = 769 ]; then
1111
inputdir=FV3_input_data768
1212
fi
13-
echo "inputdir=$inputdir,NPX=$NPX"
13+
14+
echo "inputdir=$inputdir,NPX=$NPX,NESTED=$NESTED"
1415

1516
OPNREQ_TEST=${OPNREQ_TEST:-false}
1617
V2_SFC_FILE=${V2_SFC_FILE:-false}
1718
SUFFIX=${RT_SUFFIX}
1819
if [ $WARM_START = .false. ]; then
1920
mkdir INPUT RESTART
20-
if [ "$V2_SFC_FILE" = "true" ]; then
21+
if [ "$NESTED" = .true. ]; then
22+
cp -r @[INPUTDATA_ROOT]/${inputdir}/INPUT_L127_nested/* ./INPUT/.
23+
elif [ "$V2_SFC_FILE" = "true" ]; then
2124
cp -r @[INPUTDATA_ROOT]/${inputdir}/INPUT_L127_v2_sfc/* ./INPUT/.
2225
else
2326
cp -r @[INPUTDATA_ROOT]/${inputdir}/INPUT_L127/* ./INPUT/.

tests/fv3_conf/cpld_docn_dice.IN

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
mkdir -p INPUT
2+
3+
SUFFIX=${RT_SUFFIX}
4+
if [[ ${OPNREQ_TEST} == true ]]; then
5+
SUFFIX=${BL_SUFFIX}
6+
fi
7+
8+
#CDEPS data files
9+
#cp @[INPUTDATA_ROOT]/DOCN_DICE_cplhist/ufs.cpld.cpl*.nc INPUT
10+
module load nco
11+
ncrcat ../${DEP_RUN}${SUFFIX}/ufs.cpld.cpl.hi.ice*nc ./INPUT/ufs.cpld.cpl.hi.ice.nc
12+
ncrcat ../${DEP_RUN}${SUFFIX}/ufs.cpld.cpl.hi.ocn*nc ./INPUT/ufs.cpld.cpl.hi.ocn.nc
13+
14+
#CDEPS fix files - same for ocn/ice
15+
cp @[INPUTDATA_ROOT]/CICE_FIX/@[OCNRES]/mesh.mx@[OCNRES].nc INPUT

tests/fv3_conf/cpld_docn_pcice.IN

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
mkdir -p INPUT
2+
3+
#For consistency, same CDEPS docn and CICE ice prescribed input files (data and ESMF_mesh)
4+
cp @[INPUTDATA_ROOT]/DOCN_DICE_ERA5/* INPUT

0 commit comments

Comments
 (0)