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

New branch for CM3 based on OM3 0.4.0 #290

Draft
wants to merge 9 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CICE/CICE
Submodule CICE updated 265 files
122 changes: 60 additions & 62 deletions CICE/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,45 +36,44 @@ target_sources(OM3_cice PRIVATE
CICE/cicecore/shared/ice_spacecurve.F90

# Analysis
CICE/cicecore/cicedyn/analysis/ice_diagnostics.F90
CICE/cicecore/cicedyn/analysis/ice_diagnostics_bgc.F90
CICE/cicecore/cicedyn/analysis/ice_history.F90
CICE/cicecore/cicedyn/analysis/ice_history_bgc.F90
CICE/cicecore/cicedyn/analysis/ice_history_drag.F90
CICE/cicecore/cicedyn/analysis/ice_history_fsd.F90
CICE/cicecore/cicedyn/analysis/ice_history_mechred.F90
CICE/cicecore/cicedyn/analysis/ice_history_pond.F90
CICE/cicecore/cicedyn/analysis/ice_history_shared.F90
CICE/cicecore/cicedyn/analysis/ice_history_snow.F90
CICE/cicecore/cicedynB/analysis/ice_diagnostics.F90
CICE/cicecore/cicedynB/analysis/ice_diagnostics_bgc.F90
CICE/cicecore/cicedynB/analysis/ice_history.F90
CICE/cicecore/cicedynB/analysis/ice_history_bgc.F90
CICE/cicecore/cicedynB/analysis/ice_history_drag.F90
CICE/cicecore/cicedynB/analysis/ice_history_fsd.F90
CICE/cicecore/cicedynB/analysis/ice_history_mechred.F90
CICE/cicecore/cicedynB/analysis/ice_history_pond.F90
CICE/cicecore/cicedynB/analysis/ice_history_shared.F90
CICE/cicecore/cicedynB/analysis/ice_history_snow.F90

# Dynamics
CICE/cicecore/cicedyn/dynamics/ice_dyn_core1d.F90
CICE/cicecore/cicedyn/dynamics/ice_dyn_eap.F90
CICE/cicecore/cicedyn/dynamics/ice_dyn_evp.F90
CICE/cicecore/cicedyn/dynamics/ice_dyn_evp1d.F90
CICE/cicecore/cicedyn/dynamics/ice_dyn_shared.F90
CICE/cicecore/cicedyn/dynamics/ice_dyn_vp.F90
CICE/cicecore/cicedyn/dynamics/ice_transport_driver.F90
CICE/cicecore/cicedyn/dynamics/ice_transport_remap.F90
CICE/cicecore/cicedynB/dynamics/ice_dyn_eap.F90
CICE/cicecore/cicedynB/dynamics/ice_dyn_evp.F90
CICE/cicecore/cicedynB/dynamics/ice_dyn_evp_1d.F90
CICE/cicecore/cicedynB/dynamics/ice_dyn_shared.F90
CICE/cicecore/cicedynB/dynamics/ice_dyn_vp.F90
CICE/cicecore/cicedynB/dynamics/ice_transport_driver.F90
CICE/cicecore/cicedynB/dynamics/ice_transport_remap.F90

# General
CICE/cicecore/cicedyn/general/ice_flux.F90
CICE/cicecore/cicedyn/general/ice_flux_bgc.F90
CICE/cicecore/cicedyn/general/ice_forcing.F90
CICE/cicecore/cicedyn/general/ice_forcing_bgc.F90
CICE/cicecore/cicedyn/general/ice_init.F90
CICE/cicecore/cicedyn/general/ice_state.F90
CICE/cicecore/cicedyn/general/ice_step_mod.F90
CICE/cicecore/cicedynB/general/ice_flux.F90
CICE/cicecore/cicedynB/general/ice_flux_bgc.F90
CICE/cicecore/cicedynB/general/ice_forcing.F90
CICE/cicecore/cicedynB/general/ice_forcing_bgc.F90
CICE/cicecore/cicedynB/general/ice_init.F90
CICE/cicecore/cicedynB/general/ice_state.F90
CICE/cicecore/cicedynB/general/ice_step_mod.F90

# Infrastructure
CICE/cicecore/cicedyn/infrastructure/ice_blocks.F90
CICE/cicecore/cicedyn/infrastructure/ice_domain.F90
CICE/cicecore/cicedyn/infrastructure/ice_grid.F90
CICE/cicecore/cicedyn/infrastructure/ice_memusage.F90
CICE/cicecore/cicedyn/infrastructure/ice_memusage_gptl.c
CICE/cicecore/cicedyn/infrastructure/ice_read_write.F90
CICE/cicecore/cicedyn/infrastructure/ice_restart_driver.F90
CICE/cicecore/cicedyn/infrastructure/ice_restoring.F90
CICE/cicecore/cicedynB/infrastructure/ice_blocks.F90
CICE/cicecore/cicedynB/infrastructure/ice_domain.F90
CICE/cicecore/cicedynB/infrastructure/ice_grid.F90
CICE/cicecore/cicedynB/infrastructure/ice_memusage.F90
CICE/cicecore/cicedynB/infrastructure/ice_memusage_gptl.c
CICE/cicecore/cicedynB/infrastructure/ice_read_write.F90
CICE/cicecore/cicedynB/infrastructure/ice_restart_driver.F90
CICE/cicecore/cicedynB/infrastructure/ice_restoring.F90

# Icepack
CICE/icepack/columnphysics/icepack_aerosol.F90
Expand All @@ -96,7 +95,6 @@ target_sources(OM3_cice PRIVATE
CICE/icepack/columnphysics/icepack_ocean.F90
CICE/icepack/columnphysics/icepack_orbital.F90
CICE/icepack/columnphysics/icepack_parameters.F90
CICE/icepack/columnphysics/icepack_shortwave_data.F90
CICE/icepack/columnphysics/icepack_shortwave.F90
CICE/icepack/columnphysics/icepack_snow.F90
CICE/icepack/columnphysics/icepack_therm_bl99.F90
Expand All @@ -109,49 +107,49 @@ target_sources(OM3_cice PRIVATE
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

# Shared C
CICE/cicecore/cicedyn/infrastructure/ice_shr_reprosum86.c
CICE/cicecore/cicedynB/infrastructure/ice_shr_reprosum86.c

# MPI
CICE/cicecore/cicedyn/infrastructure/comm/mpi/ice_boundary.F90
CICE/cicecore/cicedyn/infrastructure/comm/mpi/ice_broadcast.F90
CICE/cicecore/cicedyn/infrastructure/comm/mpi/ice_communicate.F90
CICE/cicecore/cicedyn/infrastructure/comm/mpi/ice_exit.F90
CICE/cicecore/cicedyn/infrastructure/comm/mpi/ice_gather_scatter.F90
CICE/cicecore/cicedyn/infrastructure/comm/mpi/ice_global_reductions.F90
CICE/cicecore/cicedyn/infrastructure/comm/mpi/ice_reprosum.F90
CICE/cicecore/cicedyn/infrastructure/comm/mpi/ice_timers.F90
CICE/cicecore/cicedynB/infrastructure/comm/mpi/ice_boundary.F90
CICE/cicecore/cicedynB/infrastructure/comm/mpi/ice_broadcast.F90
CICE/cicecore/cicedynB/infrastructure/comm/mpi/ice_communicate.F90
CICE/cicecore/cicedynB/infrastructure/comm/mpi/ice_exit.F90
CICE/cicecore/cicedynB/infrastructure/comm/mpi/ice_gather_scatter.F90
CICE/cicecore/cicedynB/infrastructure/comm/mpi/ice_global_reductions.F90
CICE/cicecore/cicedynB/infrastructure/comm/mpi/ice_reprosum.F90
CICE/cicecore/cicedynB/infrastructure/comm/mpi/ice_timers.F90

# NUOPC CMEPS driver
CICE/cicecore/drivers/nuopc/cmeps/CICE_FinalMod.F90
CICE/cicecore/drivers/nuopc/cmeps/CICE_InitMod.F90
CICE/cicecore/drivers/nuopc/cmeps/CICE_RunMod.F90
CICE/cicecore/drivers/nuopc/cmeps/cice_wrapper_mod.F90
CICE/cicecore/drivers/nuopc/cmeps/ice_comp_nuopc.F90
CICE/cicecore/drivers/nuopc/cmeps/ice_import_export.F90
CICE/cicecore/drivers/nuopc/cmeps/ice_mesh_mod.F90
CICE/cicecore/drivers/nuopc/cmeps/ice_prescribed_mod.F90
CICE/cicecore/drivers/nuopc/cmeps/ice_scam.F90
CICE/cicecore/drivers/nuopc/cmeps/ice_shr_methods.F90
CICE/cicecore/drivers/access/cmeps/CICE_FinalMod.F90
CICE/cicecore/drivers/access/cmeps/CICE_InitMod.F90
CICE/cicecore/drivers/access/cmeps/CICE_RunMod.F90
CICE/cicecore/drivers/access/cmeps/cice_wrapper_mod.F90
CICE/cicecore/drivers/access/cmeps/ice_comp_nuopc.F90
CICE/cicecore/drivers/access/cmeps/ice_import_export.F90
CICE/cicecore/drivers/access/cmeps/ice_prescribed_mod.F90
CICE/cicecore/drivers/access/cmeps/ice_scam.F90
CICE/cicecore/drivers/access/cmeps/ice_shr_methods.F90
)

add_patched_source(OM3_cice CICE/cicecore/drivers/nuopc/cmeps/ice_mesh_mod.F90)
# Select IO source files based on CICE_IO
if(OM3_CICE_IO MATCHES "NetCDF")
target_sources(OM3_cice PRIVATE
CICE/cicecore/cicedyn/infrastructure/io/io_netcdf/ice_history_write.F90
CICE/cicecore/cicedyn/infrastructure/io/io_netcdf/ice_restart.F90
CICE/cicecore/cicedynB/infrastructure/io/io_netcdf/ice_history_write.F90
CICE/cicecore/cicedynB/infrastructure/io/io_netcdf/ice_restart.F90
)
elseif(OM3_CICE_IO MATCHES "PIO")
target_sources(OM3_cice PRIVATE
CICE/cicecore/cicedyn/infrastructure/io/io_pio2/ice_history_write.F90
CICE/cicecore/cicedyn/infrastructure/io/io_pio2/ice_pio.F90
CICE/cicecore/cicedyn/infrastructure/io/io_pio2/ice_restart.F90
CICE/cicecore/cicedynB/infrastructure/io/io_pio2/ice_history_write.F90
CICE/cicecore/cicedynB/infrastructure/io/io_pio2/ice_pio.F90
CICE/cicecore/cicedynB/infrastructure/io/io_pio2/ice_restart.F90
)
elseif(OM3_CICE_IO MATCHES "Binary")
target_sources(OM3_cice PRIVATE
CICE/cicecore/cicedyn/infrastructure/io/io_binary/ice_history_write.F90
CICE/cicecore/cicedyn/infrastructure/io/io_binary/ice_restart.F90
CICE/cicecore/cicedynB/infrastructure/io/io_binary/ice_history_write.F90
CICE/cicecore/cicedynB/infrastructure/io/io_binary/ice_restart.F90
)
endif()

Expand Down Expand Up @@ -182,4 +180,4 @@ if(OM3_LIB_INSTALL)
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/AccessOM3
)

endif()
endif()
21 changes: 21 additions & 0 deletions CICE/patches/ice_mesh_mod.F90.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
--- ice_mesh_mod.F90.old 2023-08-28 08:55:07.881394000 +1000
+++ ice_mesh_mod.F90.new 2023-09-18 10:11:53.058232000 +1000
@@ -668,13 +668,13 @@
n=0
do iblk = 1, nblocks
this_block = get_block(blocks_ice(iblk),iblk)
+ ilo = this_block%ilo
+ ihi = this_block%ihi
+ jlo = this_block%jlo
+ jhi = this_block%jhi
do j = jlo, jhi
- jlo = this_block%jlo
- jhi = this_block%jhi
do i = ilo, ihi
- ilo = this_block%ilo
- ihi = this_block%ihi
- n = n+1
+ n = n + 1
mask_internal = nint(hm(i,j,iblk),kind=dbl_kind)
mask_file = model_mask(n)
if (mask_internal /= mask_file) then
3 changes: 2 additions & 1 deletion CMEPS/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ target_sources(OM3_cmeps PRIVATE
CMEPS/mediator/med_merge_mod.F90
CMEPS/mediator/med_constants_mod.F90
CMEPS/mediator/med_kind_mod.F90
CMEPS/mediator/esmFldsExchange_access_mod.F90
CMEPS/mediator/esmFldsExchange_ufs_mod.F90
CMEPS/mediator/med_phases_prep_lnd_mod.F90
CMEPS/mediator/med_phases_prep_atm_mod.F90
Expand Down Expand Up @@ -79,7 +80,7 @@ if(OM3_LIB_INSTALL)
# way of handling them in CMake
target_include_directories(OM3_cmeps PUBLIC "$<INSTALL_INTERFACE:${CMAKE_INSTALL_MODULEDIR}/access-cmeps>")
get_target_property(cmeps_moddir OM3_cmeps Fortran_MODULE_DIRECTORY)
install(FILES ${cmeps_moddir}/med.mod ${cmeps_moddir}/med_time_mod.mod ${cmeps_moddir}/med_internalstate_mod.mod
install(FILES ${cmeps_moddir}/med.mod ${cmeps_moddir}/med_internalstate_mod.mod
DESTINATION ${CMAKE_INSTALL_MODULEDIR}/access-cmeps
COMPONENT AccessOM3_Development
)
Expand Down
8 changes: 4 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ option(OM3_ENABLE_CICE6 "Build CICE6 configuration" OFF)
option(OM3_ENABLE_WW3 "Build WW3 configuration" OFF)
option(OM3_ENABLE_MOM6-WW3 "Build MOM6-WW3 configuration" OFF)
option(OM3_ENABLE_MOM6-CICE6 "Build MOM6-CICE6 configuration" ON)
option(OM3_ENABLE_CICE6-WW3 "Build CICE6-WW3 configuration" ON)
option(OM3_ENABLE_MOM6-CICE6-WW3 "Build MOM6-CICE6-WW3 configuration" ON)
option(OM3_ENABLE_CICE6-WW3 "Build CICE6-WW3 configuration" OFF)
option(OM3_ENABLE_MOM6-CICE6-WW3 "Build MOM6-CICE6-WW3 configuration" OFF)

message(STATUS "Configurations")
message(STATUS " - MOM6 ${OM3_ENABLE_MOM6}")
Expand All @@ -35,8 +35,8 @@ message(STATUS " - CICE6-WW3 ${OM3_ENABLE_CICE6-WW3}")
message(STATUS " - MOM6-CICE6-WW3 ${OM3_ENABLE_MOM6-CICE6-WW3}")

# Build options
option(OM3_BIN_INSTALL "Instal ACCESS-OM3 executables" ${PROJECT_IS_TOP_LEVEL})
option(OM3_LIB_INSTALL "Instal ACCESS-OM3 libraries" OFF)
option(OM3_BIN_INSTALL "Instal ACCESS-OM3 executables" OFF)
option(OM3_LIB_INSTALL "Instal ACCESS-OM3 libraries" ON)
option(OM3_OPENMP "Enable OpenMP threading" OFF)
option(OM3_MOM_SYMMETRIC "Use symmetric memory" OFF)
set(OM3_CICE_IO "PIO" CACHE STRING "CICE OPTIONS: Choose IO options.")
Expand Down
2 changes: 1 addition & 1 deletion build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ for BUILD_TYPE in "${BUILD_TYPES[@]}"; do
INSTALL_DIR=${SCRIPT_DIR}/${BUILD_TYPE}

cmake -S . -B build --preset=gadi -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_VERBOSE_MAKEFILE=ON
cmake --build build -j 4
cmake --build build -j 8
cmake --install build --prefix=${INSTALL_DIR}

echo "Successfully built ${INSTALL_DIR}"
Expand Down
Loading