diff --git a/.gitmodules b/.gitmodules index 3043e98..ecd28e5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ -[submodule "MOM6/MOM6"] - path = MOM6/MOM6 - url = https://github.com/NCAR/MOM6.git +[submodule "MOM6/MOM6"] + path = MOM6/MOM6 + url = https://github.com/NCAR/MOM6 [submodule "CICE6/CICE6"] path = CICE/CICE url = https://github.com/ESCOMP/CICE diff --git a/CDEPS/CDEPS b/CDEPS/CDEPS index f285d23..26ab1e0 160000 --- a/CDEPS/CDEPS +++ b/CDEPS/CDEPS @@ -1 +1 @@ -Subproject commit f285d236a0b08380923199eb3084d94a67f30696 +Subproject commit 26ab1e0acd5b8e0fd527a7e558da026a74f23241 diff --git a/CDEPS/CMakeLists.txt b/CDEPS/CMakeLists.txt index 3be30ea..bab4b42 100644 --- a/CDEPS/CMakeLists.txt +++ b/CDEPS/CMakeLists.txt @@ -30,8 +30,10 @@ list(APPEND cdeps_datm_src_files list(APPEND cdeps_docn_src_files CDEPS/docn/docn_datamode_aquaplanet_mod.F90 CDEPS/docn/docn_datamode_copyall_mod.F90 + CDEPS/docn/docn_datamode_cplhist_mod.F90 CDEPS/docn/docn_datamode_iaf_mod.F90 CDEPS/docn/docn_datamode_som_mod.F90 + CDEPS/docn/docn_import_data_mod.F90 CDEPS/docn/ocn_comp_nuopc.F90 ) diff --git a/CICE/CICE b/CICE/CICE index 2821022..8e2aab2 160000 --- a/CICE/CICE +++ b/CICE/CICE @@ -1 +1 @@ -Subproject commit 28210220e662108824f10b47873cebd994d2d7b7 +Subproject commit 8e2aab217ece5fae933a1f2ad6e0d6ab81ecad8a diff --git a/CICE/cice_files.cmake b/CICE/cice_files.cmake index 5e8860c..e631e30 100644 --- a/CICE/cice_files.cmake +++ b/CICE/cice_files.cmake @@ -46,6 +46,8 @@ list(APPEND cice_shared_files 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 @@ -86,8 +88,6 @@ list(APPEND icepack_files CICE/icepack/columnphysics/icepack_zbgc.F90 CICE/icepack/columnphysics/icepack_zbgc_shared.F90 CICE/icepack/columnphysics/icepack_zsalinity.F90 - CICE/icepack/columnphysics/icepack_therm_0layer.F90 - CICE/icepack/columnphysics/icepack_meltpond_cesm.F90 ) list(APPEND cice_shared_files_c diff --git a/CMEPS/CMEPS b/CMEPS/CMEPS index ff8726f..98dcf46 160000 --- a/CMEPS/CMEPS +++ b/CMEPS/CMEPS @@ -1 +1 @@ -Subproject commit ff8726f437994c444b364a27e024e70f67c29421 +Subproject commit 98dcf46c8886104b95cddfd5b02588b3dd9f6722 diff --git a/MOM6/CMakeLists.txt b/MOM6/CMakeLists.txt index 53bdd1b..abbc48e 100644 --- a/MOM6/CMakeLists.txt +++ b/MOM6/CMakeLists.txt @@ -20,6 +20,7 @@ target_include_directories(mom6 PUBLIC $) target_compile_options(mom6 PRIVATE "$<$:${fortran_compile_flags}>") target_link_libraries(mom6 PUBLIC share + cmeps FMS::fms_r8 esmf NetCDF::NetCDF_Fortran) diff --git a/MOM6/MOM6 b/MOM6/MOM6 index 9e27b52..2e77200 160000 --- a/MOM6/MOM6 +++ b/MOM6/MOM6 @@ -1 +1 @@ -Subproject commit 9e27b52b1dd36a69645b22661af7a4e4581e09bd +Subproject commit 2e77200bff72042bc05e5e5a957274df55493550 diff --git a/MOM6/mom6_files.cmake b/MOM6/mom6_files.cmake index e5b0957..7c4b380 100644 --- a/MOM6/mom6_files.cmake +++ b/MOM6/mom6_files.cmake @@ -162,11 +162,14 @@ list(APPEND mom6_src_files MOM6/src/parameterizations/CVmix/cvmix_utils.F90 MOM6/src/parameterizations/lateral/MOM_hor_visc.F90 + MOM6/src/parameterizations/lateral/MOM_interface_filter.F90 MOM6/src/parameterizations/lateral/MOM_internal_tides.F90 MOM6/src/parameterizations/lateral/MOM_lateral_mixing_coeffs.F90 + MOM6/src/parameterizations/lateral/MOM_load_love_numbers.F90 MOM6/src/parameterizations/lateral/MOM_MEKE.F90 MOM6/src/parameterizations/lateral/MOM_MEKE_types.F90 MOM6/src/parameterizations/lateral/MOM_mixed_layer_restrat.F90 + MOM6/src/parameterizations/lateral/MOM_spherical_harmonics.F90 MOM6/src/parameterizations/lateral/MOM_thickness_diffuse.F90 MOM6/src/parameterizations/lateral/MOM_tidal_forcing.F90 @@ -205,7 +208,7 @@ list(APPEND mom6_src_files MOM6/src/tracer/ISOMIP_tracer.F90 MOM6/src/tracer/MOM_CFC_cap.F90 MOM6/src/tracer/MOM_generic_tracer.F90 - MOM6/src/tracer/MOM_lateral_boundary_diffusion.F90 + MOM6/src/tracer/MOM_hor_bnd_diffusion.F90 MOM6/src/tracer/MOM_neutral_diffusion.F90 MOM6/src/tracer/MOM_OCMIP2_CFC.F90 MOM6/src/tracer/MOM_offline_aux.F90 @@ -259,6 +262,9 @@ list(APPEND mom6_src_files MOM6/src/user/user_initialization.F90 MOM6/src/user/user_revise_forcing.F90 + MOM6/config_src/external/database_comms/MOM_database_comms.F90 + MOM6/config_src/external/database_comms/database_client_interface.F90 + MOM6/config_src/external/drifters/MOM_particles.F90 MOM6/config_src/external/drifters/MOM_particles_types.F90 MOM6/config_src/external/GFDL_ocean_BGC/FMS_coupler_util.F90 diff --git a/WW3/CMakeLists.txt b/WW3/CMakeLists.txt index 57bd446..29c3a25 100644 --- a/WW3/CMakeLists.txt +++ b/WW3/CMakeLists.txt @@ -3,8 +3,6 @@ add_compile_definitions(W3_CESMCOUPLED) add_compile_definitions(W3_NCO) add_compile_definitions(W3_DIST) add_compile_definitions(W3_MPI) -add_compile_definitions(W3_OMPG) -add_compile_definitions(W3_OMPH) add_compile_definitions(W3_PR3) add_compile_definitions(W3_UQ) add_compile_definitions(W3_FLX0) @@ -33,9 +31,12 @@ add_compile_definitions(W3_O6) add_compile_definitions(W3_O7) add_compile_definitions(W3_O14) add_compile_definitions(W3_O15) -add_compile_definitions(W3_IC4) add_compile_definitions(W3_IS0) add_compile_definitions(W3_REF0) +add_compile_definitions(W3_NOGRB) +add_compile_definitions(W3_IC0) + +add_compile_definitions(ENDIANNESS="big_endian") set_property(SOURCE WW3/model/src/w3initmd.F90 APPEND diff --git a/WW3/WW3 b/WW3/WW3 index 20174e1..ff7f79c 160000 --- a/WW3/WW3 +++ b/WW3/WW3 @@ -1 +1 @@ -Subproject commit 20174e10acf83dd09c8c3339b8228e5dba682623 +Subproject commit ff7f79caccb47fca054b7c6e5bb8b940f354d169 diff --git a/WW3/ww3_files.cmake b/WW3/ww3_files.cmake index 3b8104f..ea75ceb 100644 --- a/WW3/ww3_files.cmake +++ b/WW3/ww3_files.cmake @@ -1,55 +1,77 @@ list(APPEND ww3_src_files + # Common sources WW3/model/src/constants.F90 WW3/model/src/w3adatmd.F90 WW3/model/src/w3arrymd.F90 + WW3/model/src/w3bullmd.F90 WW3/model/src/w3cspcmd.F90 WW3/model/src/w3dispmd.F90 - WW3/model/src/w3fld1md.F90 - WW3/model/src/w3fld2md.F90 WW3/model/src/w3fldsmd.F90 - WW3/model/src/w3flx1md.F90 WW3/model/src/w3gdatmd.F90 - WW3/model/src/w3gkemd.F90 + WW3/model/src/w3gridmd.F90 WW3/model/src/w3gsrumd.F90 WW3/model/src/w3idatmd.F90 WW3/model/src/w3initmd.F90 WW3/model/src/w3iobcmd.F90 WW3/model/src/w3iogomd.F90 - WW3/model/src/w3iogoncdmd.F90 WW3/model/src/w3iogrmd.F90 WW3/model/src/w3iopomd.F90 WW3/model/src/w3iorsmd.F90 WW3/model/src/w3iosfmd.F90 WW3/model/src/w3iotrmd.F90 - WW3/model/src/w3meminfo.F90 + WW3/model/src/w3macros.h + WW3/model/src/w3metamd.F90 + WW3/model/src/w3nmlbouncmd.F90 + WW3/model/src/w3nmlboundmd.F90 + WW3/model/src/w3nmlgridmd.F90 + WW3/model/src/w3nmlmultimd.F90 + WW3/model/src/w3nmlounfmd.F90 + WW3/model/src/w3nmlounpmd.F90 + WW3/model/src/w3nmlprncmd.F90 + WW3/model/src/w3nmlshelmd.F90 + WW3/model/src/w3nmltrncmd.F90 + WW3/model/src/w3nmluprstrmd.F90 WW3/model/src/w3odatmd.F90 WW3/model/src/w3parall.F90 WW3/model/src/w3partmd.F90 - WW3/model/src/w3pro3md.F90 - WW3/model/src/w3profsmd.F90 - WW3/model/src/w3sdb1md.F90 WW3/model/src/w3servmd.F90 - WW3/model/src/w3sic4md.F90 - WW3/model/src/w3snl1md.F90 - WW3/model/src/w3src0md.F90 - WW3/model/src/w3src4md.F90 WW3/model/src/w3srcemd.F90 - WW3/model/src/w3sbt1md.F90 - WW3/model/src/w3str1md.F90 WW3/model/src/w3strkmd.F90 - WW3/model/src/w3tidemd.F90 WW3/model/src/w3timemd.F90 WW3/model/src/w3triamd.F90 - WW3/model/src/w3uno2md.F90 WW3/model/src/w3updtmd.F90 - WW3/model/src/w3uqckmd.F90 WW3/model/src/w3wavemd.F90 WW3/model/src/w3wdasmd.F90 WW3/model/src/w3wdatmd.F90 - WW3/model/src/wav_comp_nuopc.F90 + WW3/model/src/wmfinlmd.F90 + WW3/model/src/wmgridmd.F90 + WW3/model/src/wminiomd.F90 + WW3/model/src/wminitmd.F90 + WW3/model/src/wmiopomd.F90 + WW3/model/src/wmmdatmd.F90 + WW3/model/src/wmunitmd.F90 + WW3/model/src/wmupdtmd.F90 + WW3/model/src/wmwavemd.F90 + WW3/model/src/w3tidemd.F90 WW3/model/src/wav_grdout.F90 - WW3/model/src/wav_import_export.F90 + WW3/model/src/w3iogoncdmd.F90 + WW3/model/src/wav_shr_flags.F90 + + # Sources needed for switches + WW3/model/src/w3profsmd.F90 + WW3/model/src/w3pro3md.F90 + WW3/model/src/w3uqckmd.F90 + WW3/model/src/w3fld1md.F90 + WW3/model/src/w3fld2md.F90 + WW3/model/src/w3src4md.F90 + WW3/model/src/w3snl1md.F90 + WW3/model/src/w3sbt1md.F90 + WW3/model/src/w3sdb1md.F90 + + # NUOPC cap sources WW3/model/src/wav_kind_mod.F90 - WW3/model/src/wav_shel_inp.F90 WW3/model/src/wav_shr_mod.F90 + WW3/model/src/wav_shel_inp.F90 + WW3/model/src/wav_comp_nuopc.F90 + WW3/model/src/wav_import_export.F90 ) diff --git a/build.sh b/build.sh index 0d80f3d..e5f1cf9 100755 --- a/build.sh +++ b/build.sh @@ -20,8 +20,8 @@ OPENMPI_VERSION=4.1.4 module purge module load cmake/3.24.2 -module use /g/data/ik11/spack/0.20.1/modules/access-om3/0.1.0/linux-rocky8-x86_64 # requires membership of "ik11" group -module load esmf/8.3.0b09 fms/git.2020.04.03=0.04.03 parallelio/2.5.9 +module use /g/data/ik11/spack/0.20.1/modules/access-om3/cesm-0.2.0/linux-rocky8-x86_64 # requires membership of "ik11" group +module load esmf/8.4.2 fms/git.2021.03.01=2021.03.01 parallelio/2.5.10 module load intel-compiler/${COMPILER_VERSION} openmpi/${OPENMPI_VERSION} cd ${SCRIPT_DIR} diff --git a/share/CESM_share b/share/CESM_share index 7c0c445..562025e 160000 --- a/share/CESM_share +++ b/share/CESM_share @@ -1 +1 @@ -Subproject commit 7c0c4456d181ab237309a6dc6cf128f6cb717c4f +Subproject commit 562025e73c588187c8b152190cb5612e54682a76 diff --git a/share/src/mct_mod.F90 b/share/src/mct_mod.F90 index bd6ec62..4591721 100644 --- a/share/src/mct_mod.F90 +++ b/share/src/mct_mod.F90 @@ -1,13 +1,13 @@ -module mct_mod +module m_MCTWorld implicit none contains - subroutine mct_world_init(ncomps, globalcomm, mycomms, myids) + subroutine init(ncomps, globalcomm, mycomms, myids) integer, intent(in) :: ncomps integer, intent(in) :: globalcomm integer, dimension(:), pointer :: mycomms integer, dimension(:), pointer :: myids - end subroutine mct_world_init + end subroutine init -end module mct_mod +end module m_MCTWorld