diff --git a/.gitmodules b/.gitmodules index e13a7994603d5d0c65f85c6038647584129f1ec2..5abc7c480624b6b7a5a5f88b29be25d3713945a2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -3,6 +3,6 @@ url = ../../AirShowerPhysics/corsika-data.git shallow = true [submodule "modules/conex"] - path = modules/conex + path = modules/conex/cxroot url = ../../AirShowerPhysics/cxroot.git shallow = true diff --git a/modules/conex/CMakeLists.txt b/modules/conex/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..acb73a9e1d5bc381805f45ba3665aaade2dea3ed --- /dev/null +++ b/modules/conex/CMakeLists.txt @@ -0,0 +1,21 @@ +add_subdirectory(cxroot) + +add_library(conex_random STATIC conex_random.cpp) +target_link_libraries(conex_random PUBLIC modules_common) +target_link_libraries(CONEXsibyll conex_random) + +# +# add to combined CORSIKA8 target +# +add_dependencies (CORSIKA8 CONEXsibyll) +target_link_libraries (CORSIKA8 INTERFACE CONEXsibyll) + +# +# install and export +# +install ( + TARGETS CONEXsibyll conex_random + EXPORT CORSIKA8PublicTargets + ARCHIVE DESTINATION lib/corsika + PUBLIC_HEADER DESTINATION include/corsika_modules/conex + ) diff --git a/modules/conex/conex_random.cpp b/modules/conex/conex_random.cpp new file mode 100644 index 0000000000000000000000000000000000000000..5ab66f428be9873f1f8739461a415133a1307c1e --- /dev/null +++ b/modules/conex/conex_random.cpp @@ -0,0 +1,7 @@ +#include <rng_impl.hpp> + +IMPLEMENT_RNG(conex) + +extern "C" void rmmard_(double field[], int const* N, int*) { + for (int i = 0; i < *N; ++i) { field[i] = draw_std_rnd(); } +} diff --git a/modules/conex/conex_random.hpp b/modules/conex/conex_random.hpp new file mode 100644 index 0000000000000000000000000000000000000000..c38f54662b15bb720f9fa3c914f02172f0f3a798 --- /dev/null +++ b/modules/conex/conex_random.hpp @@ -0,0 +1,14 @@ +/* + * (c) Copyright 2023 CORSIKA Project, corsika-project@lists.kit.edu + * + * This software is distributed under the terms of the GNU General Public + * Licence version 3 (GPL Version 3). See file LICENSE for a full version of + * the license. + */ +#pragma once + +#include <rng_decl.hpp> + +DECLARE_RNG(conex) + +extern "C" void rmmard_(double[] field, int const* N, int*);