From eac63f284f2046df5a77ca451e7c912f20aac28d Mon Sep 17 00:00:00 2001 From: zmoon Date: Mon, 27 Jan 2025 16:25:43 -0600 Subject: [PATCH] Test getting MICM version and start chem process tree --- CMakeLists.txt | 2 +- src/api/CMakeLists.txt | 1 + src/api/catchem.F90 | 2 ++ src/process/CMakeLists.txt | 1 + tests/CMakeLists.txt | 10 ++++++++++ tests/test_chem.f90 | 14 ++++++++++++++ 6 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 tests/test_chem.f90 diff --git a/CMakeLists.txt b/CMakeLists.txt index 9bdf6c4e..ad0d1bc0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.5) -project(CATChem VERSION 0.1.0 LANGUAGES Fortran) +project(CATChem VERSION 0.1.0 LANGUAGES Fortran C CXX) include(CMakePrintHelpers) diff --git a/src/api/CMakeLists.txt b/src/api/CMakeLists.txt index 5f42f33c..2a338f40 100644 --- a/src/api/CMakeLists.txt +++ b/src/api/CMakeLists.txt @@ -8,6 +8,7 @@ target_link_libraries(${_lib} PUBLIC CATChem_process_dust) target_link_libraries(${_lib} PUBLIC CATChem_process_seasalt) target_link_libraries(${_lib} PUBLIC CATChem_process_plumerise) target_link_libraries(${_lib} PUBLIC CATChem_process_drydep) +target_link_libraries(${_lib} PUBLIC CATChem_process_chem) set_target_properties( ${_lib} PROPERTIES Fortran_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/include diff --git a/src/api/catchem.F90 b/src/api/catchem.F90 index db953d4c..47324865 100644 --- a/src/api/catchem.F90 +++ b/src/api/catchem.F90 @@ -82,6 +82,8 @@ module CATChem use CCPr_DryDep_mod, only: cc_drydep_init => CCPr_DryDep_Init !< DryDep Process Initialization Routine use CCPr_DryDep_mod, only: cc_drydep_run => CCPr_DryDep_Run !< DryDep Process Run Routine use CCPr_DryDep_mod, only: cc_drydep_finalize => CCPr_DryDep_Finalize !< DryDep Process Finalization Routine + ! Chemical mechanism solver + use CCPr_Chem_mod, only: cc_get_micm_version => get_micm_version implicit none diff --git a/src/process/CMakeLists.txt b/src/process/CMakeLists.txt index d149b457..a563f0b7 100644 --- a/src/process/CMakeLists.txt +++ b/src/process/CMakeLists.txt @@ -4,3 +4,4 @@ add_subdirectory(dust) add_subdirectory(seasalt) add_subdirectory(plumerise) add_subdirectory(drydep) +add_subdirectory(chem) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 1dcb34a1..9b8d6d0a 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -92,3 +92,13 @@ add_test( COMMAND test_drydep WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) + +add_executable(test_chem test_chem.f90) +target_link_libraries(test_chem PRIVATE CATChem) +target_link_libraries(test_chem PRIVATE testing) +set_target_properties( + test_chem + PROPERTIES Fortran_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/include +) + +add_test(NAME test_chem COMMAND test_chem) diff --git a/tests/test_chem.f90 b/tests/test_chem.f90 new file mode 100644 index 00000000..7bec89be --- /dev/null +++ b/tests/test_chem.f90 @@ -0,0 +1,14 @@ +program test_micm + use CATChem, only: cc_get_micm_version + use testing_mod, only: assert + implicit none + + character(len=:), allocatable :: micm_version + character(len=*), parameter :: expected_micm_version = "3.7.0" + + micm_version = adjustl(trim(cc_get_micm_version())) + print "('MICM version:', 1x, '''', a, '''')", micm_version + call assert(micm_version == expected_micm_version, & + "MICM version should be "//expected_micm_version) + +end program test_micm