Skip to content
Merged
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
5cc9418
something which builds
anton-seaice Nov 15, 2024
eb09d7a
some messing around with building libraries
anton-seaice Nov 18, 2024
0cfd3ca
mods to Access3 share to build executable files
anton-seaice Jan 13, 2025
5735271
minor tidy
anton-seaice Jan 13, 2025
835a8f5
tweaks
anton-seaice Jan 14, 2025
35195b6
Comments
anton-seaice Jan 14, 2025
5591c9c
No default configuration, set this in spack instead
anton-seaice Jan 14, 2025
c023c28
tweak Namespace and variable names
anton-seaice Jan 17, 2025
1302b54
missing files
anton-seaice Jan 19, 2025
d7c6fee
Simplify mutually exclusive options
anton-seaice Jan 20, 2025
21312b5
Remove unneeded _LIB_INSTALL variables
anton-seaice Jan 21, 2025
042f7c4
Update Access3BinInstall.cmake
anton-seaice Jan 21, 2025
56a6cb3
refinements to component names
anton-seaice Jan 23, 2025
0888052
fix IO_PIO dependency finding
anton-seaice Jan 23, 2025
96859ad
name tweaks
anton-seaice Jan 23, 2025
dd99e02
clean up presets set through spack
anton-seaice Feb 5, 2025
dce08d4
possible better deps handling
anton-seaice Feb 5, 2025
9297d8f
Make BuildConfigurations a command line option
anton-seaice Feb 5, 2025
ac938af
neaten up deps
anton-seaice Feb 27, 2025
4ccfacb
Merge branch 'main' into share_prototype
anton-seaice Feb 27, 2025
87ad9bc
build ci
anton-seaice Feb 27, 2025
1e07258
correction for lib install
anton-seaice Feb 28, 2025
76fbef7
fp-model precise and tidy up
anton-seaice Mar 13, 2025
65e006a
tidy
anton-seaice Mar 14, 2025
bab3b04
updated ESMF cmake file with license
anton-seaice Mar 17, 2025
32c325d
license
anton-seaice Mar 17, 2025
b7a718d
rm workflows
anton-seaice Mar 18, 2025
56bede8
permissions and tidy comments
anton-seaice Mar 19, 2025
db7726a
make more deps avaialble for linking later
anton-seaice Mar 20, 2025
70e5c76
code version note
anton-seaice Mar 27, 2025
ada3dc5
make sure C Netcdf C is required
anton-seaice Mar 27, 2025
e6277a1
This change is based on the https://github.com/cOSIMA/access-om3 buil…
anton-seaice Mar 27, 2025
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
41 changes: 0 additions & 41 deletions .github/ISSUE_TEMPLATE/parameter-testing.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/compilation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
env:
FC: mpifort
CC: mpicc
run: . /etc/profile && cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DCMAKE_VERBOSE_MAKEFILE=ON
run: . /etc/profile && cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DCMAKE_VERBOSE_MAKEFILE=ON -DACCESS3_LIB_INSTALL=TRUE

- name: Build
# Build your program with the given configuration
Expand Down
157 changes: 85 additions & 72 deletions CDEPS/CMakeLists.txt
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
### Targets

## Common library
add_fortran_library(OM3_cdeps_common mod/common STATIC)
add_library(AccessOM3::cdeps_common ALIAS OM3_cdeps_common)
target_include_directories(OM3_cdeps_common PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/fox/include>)
target_link_libraries(OM3_cdeps_common
add_fortran_library(ACCESS3_cdeps_common mod/common STATIC)
add_library(Access3::cdeps_common ALIAS ACCESS3_cdeps_common)
target_include_directories(ACCESS3_cdeps_common PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/fox/include>)
target_link_libraries(ACCESS3_cdeps_common
PUBLIC esmf
PRIVATE AccessOM3::share AccessOM3::cmeps AccessOM3::nuopc_cap_share FoX::FoX PIO::PIO_Fortran
PRIVATE Access3::share Access3::cmeps Access3::nuopc_cap_share FoX::FoX PIO::PIO_Fortran
)
target_sources(OM3_cdeps_common PRIVATE
target_sources(ACCESS3_cdeps_common PRIVATE
CDEPS/streams/dshr_methods_mod.F90
CDEPS/streams/dshr_strdata_mod.F90
CDEPS/streams/dshr_stream_mod.F90
Expand All @@ -20,14 +20,14 @@ target_sources(OM3_cdeps_common PRIVATE
)

## DATM
add_fortran_library(OM3_cdeps_datm mod/datm STATIC)
add_library(AccessOM3::cdeps_datm ALIAS OM3_cdeps_datm)
target_include_directories(OM3_cdeps_datm PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/fox/include>)
target_link_libraries(OM3_cdeps_datm
add_fortran_library(ACCESS3_cdeps_datm mod/datm STATIC)
add_library(Access3::cdeps_datm ALIAS ACCESS3_cdeps_datm)
target_include_directories(ACCESS3_cdeps_datm PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/fox/include>)
target_link_libraries(ACCESS3_cdeps_datm
PUBLIC esmf
PRIVATE AccessOM3::cdeps_common AccessOM3::share
PRIVATE Access3::cdeps_common Access3::share
)
target_sources(OM3_cdeps_datm PRIVATE
target_sources(ACCESS3_cdeps_datm PRIVATE
CDEPS/datm/datm_datamode_cfsr_mod.F90
CDEPS/datm/datm_datamode_clmncep_mod.F90
CDEPS/datm/datm_datamode_core2_mod.F90
Expand All @@ -38,17 +38,17 @@ target_sources(OM3_cdeps_datm PRIVATE
CDEPS/datm/datm_datamode_simple_mod.F90
extra_sources/datm_datamode_jra55do_mod.F90
)
add_patched_source(OM3_cdeps_datm CDEPS/datm/atm_comp_nuopc.F90)
add_patched_source(ACCESS3_cdeps_datm CDEPS/datm/atm_comp_nuopc.F90)

## DOCN
add_fortran_library(OM3_cdeps_docn mod/docn STATIC)
add_library(AccessOM3::cdeps_docn ALIAS OM3_cdeps_docn)
target_include_directories(OM3_cdeps_docn PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/fox/include>)
target_link_libraries(OM3_cdeps_docn
add_fortran_library(ACCESS3_cdeps_docn mod/docn STATIC)
add_library(Access3::cdeps_docn ALIAS ACCESS3_cdeps_docn)
target_include_directories(ACCESS3_cdeps_docn PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/fox/include>)
target_link_libraries(ACCESS3_cdeps_docn
PUBLIC esmf
PRIVATE AccessOM3::cdeps_common AccessOM3::share
PRIVATE Access3::cdeps_common Access3::share
)
target_sources(OM3_cdeps_docn PRIVATE
target_sources(ACCESS3_cdeps_docn PRIVATE
CDEPS/docn/docn_datamode_aquaplanet_mod.F90
CDEPS/docn/docn_datamode_copyall_mod.F90
CDEPS/docn/docn_datamode_cplhist_mod.F90
Expand All @@ -59,80 +59,93 @@ target_sources(OM3_cdeps_docn PRIVATE
)

## DICE
add_fortran_library(OM3_cdeps_dice mod/dice STATIC)
add_library(AccessOM3::cdeps_dice ALIAS OM3_cdeps_dice)
target_include_directories(OM3_cdeps_dice PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/fox/include>)
target_link_libraries(OM3_cdeps_dice
add_fortran_library(ACCESS3_cdeps_dice mod/dice STATIC)
add_library(Access3::cdeps_dice ALIAS ACCESS3_cdeps_dice)
target_include_directories(ACCESS3_cdeps_dice PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/fox/include>)
target_link_libraries(ACCESS3_cdeps_dice
PUBLIC esmf
PRIVATE AccessOM3::cdeps_common AccessOM3::share
PRIVATE Access3::cdeps_common Access3::share
)
target_sources(OM3_cdeps_dice PRIVATE
target_sources(ACCESS3_cdeps_dice PRIVATE
CDEPS/dice/dice_datamode_ssmi_mod.F90
CDEPS/dice/dice_flux_atmice_mod.F90
CDEPS/dice/ice_comp_nuopc.F90
)

## DWAV
add_fortran_library(OM3_cdeps_dwav mod/dwav STATIC)
add_library(AccessOM3::cdeps_dwav ALIAS OM3_cdeps_dwav)
target_include_directories(OM3_cdeps_dwav PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/fox/include>)
target_link_libraries(OM3_cdeps_dwav
add_fortran_library(ACCESS3_cdeps_dwav mod/dwav STATIC)
add_library(Access3::cdeps_dwav ALIAS ACCESS3_cdeps_dwav)
target_include_directories(ACCESS3_cdeps_dwav PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/fox/include>)
target_link_libraries(ACCESS3_cdeps_dwav
PUBLIC esmf
PRIVATE AccessOM3::cdeps_common AccessOM3::share
PRIVATE Access3::cdeps_common Access3::share
)
target_sources(OM3_cdeps_dwav PRIVATE
target_sources(ACCESS3_cdeps_dwav PRIVATE
CDEPS/dwav/wav_comp_nuopc.F90
)

## DROF
add_fortran_library(OM3_cdeps_drof mod/drof STATIC)
add_library(AccessOM3::cdeps_drof ALIAS OM3_cdeps_drof)
target_include_directories(OM3_cdeps_drof PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/fox/include>)
target_link_libraries(OM3_cdeps_drof
add_fortran_library(ACCESS3_cdeps_drof mod/drof STATIC)
add_library(Access3::cdeps_drof ALIAS ACCESS3_cdeps_drof)
target_include_directories(ACCESS3_cdeps_drof PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/fox/include>)
target_link_libraries(ACCESS3_cdeps_drof
PUBLIC esmf
PRIVATE AccessOM3::cdeps_common AccessOM3::share
PRIVATE Access3::cdeps_common Access3::share
)
target_sources(OM3_cdeps_drof PRIVATE
target_sources(ACCESS3_cdeps_drof PRIVATE
CDEPS/drof/rof_comp_nuopc.F90
)

### Install and Export

## Library
if(OM3_LIB_INSTALL)
# cdeps_common
set_target_properties(OM3_cdeps_common PROPERTIES
OUTPUT_NAME access-cdeps-common
EXPORT_NAME cdeps-common
# cdeps_common
set_target_properties(ACCESS3_cdeps_common PROPERTIES
OUTPUT_NAME access-cdeps-common
EXPORT_NAME cdeps-common
)
install(TARGETS ACCESS3_cdeps_common
EXPORT Access3Sharecdeps_Targets
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Access3Share_RunTime NAMELINK_COMPONENT Access3Share_Development
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Access3Share_Development
)
# Fortran module files are a special case, as currently there is no standard
# way of handling them in CMake
target_include_directories(ACCESS3_cdeps_common PUBLIC "$<INSTALL_INTERFACE:${CMAKE_INSTALL_MODULEDIR}/access-cdeps-common>")
get_target_property(common_moddir ACCESS3_cdeps_common Fortran_MODULE_DIRECTORY)
install(FILES
${common_moddir}/dshr_methods_mod.mod
${common_moddir}/dshr_strdata_mod.mod
${common_moddir}/dshr_stream_mod.mod
${common_moddir}/dshr_tinterp_mod.mod

${common_moddir}/dshr_dfield_mod.mod
${common_moddir}/dshr_fldlist_mod.mod
${common_moddir}/dshr_mod.mod
DESTINATION ${CMAKE_INSTALL_MODULEDIR}/access-cdeps-common
COMPONENT Access3Share_Development
)
# components
foreach(LIB atm ocn ice wav rof)
set_target_properties(ACCESS3_cdeps_d${LIB} PROPERTIES
OUTPUT_NAME access-cdeps-d${LIB}
EXPORT_NAME cdeps-d${LIB}
)
install(TARGETS OM3_cdeps_common
EXPORT AccessOM3cdeps_Targets
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT AccessOM3_RunTime NAMELINK_COMPONENT AccessOM3_Development
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT AccessOM3_Development
install(TARGETS ACCESS3_cdeps_d${LIB}
EXPORT Access3Sharecdeps_Targets
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Access3Share_RunTime NAMELINK_COMPONENT Access3Share_Development
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Access3Share_Development
)
# components
foreach(LIB atm ocn ice wav rof)
set_target_properties(OM3_cdeps_d${LIB} PROPERTIES
OUTPUT_NAME access-cdeps-d${LIB}
EXPORT_NAME cdeps-d${LIB}
)
install(TARGETS OM3_cdeps_d${LIB}
EXPORT AccessOM3cdeps_Targets
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT AccessOM3_RunTime NAMELINK_COMPONENT AccessOM3_Development
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT AccessOM3_Development
)
# Fortran module files are a special case, as currently there is no standard
# way of handling them in CMake
target_include_directories(OM3_cdeps_d${LIB} PUBLIC "$<INSTALL_INTERFACE:${CMAKE_INSTALL_MODULEDIR}/access-cdeps-d${LIB}>")
get_target_property(d${LIB}_moddir OM3_cdeps_d${LIB} Fortran_MODULE_DIRECTORY)
install(FILES ${d${LIB}_moddir}/${LIB}_comp_nuopc.mod
DESTINATION ${CMAKE_INSTALL_MODULEDIR}/access-cdeps-d${LIB}
COMPONENT AccessOM3_Development
)
endforeach()
install(EXPORT AccessOM3cdeps_Targets
FILE AccessOM3cdepsTargets.cmake
NAMESPACE AccessOM3::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/AccessOM3
# Fortran module files are a special case, as currently there is no standard
# way of handling them in CMake
target_include_directories(ACCESS3_cdeps_d${LIB} PUBLIC "$<INSTALL_INTERFACE:${CMAKE_INSTALL_MODULEDIR}/access-cdeps-d${LIB}>")
get_target_property(d${LIB}_moddir ACCESS3_cdeps_d${LIB} Fortran_MODULE_DIRECTORY)
install(FILES ${d${LIB}_moddir}/${LIB}_comp_nuopc.mod
DESTINATION ${CMAKE_INSTALL_MODULEDIR}/access-cdeps-d${LIB}
COMPONENT Access3Share_Development
)
endif()
endforeach()
install(EXPORT Access3Sharecdeps_Targets
FILE Access3SharecdepsTargets.cmake
NAMESPACE Access3::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Access3Share
)
Loading