Reduction types are now generated with acc instead of being explicitly declared in astaroth.h
This commit is contained in:
@@ -697,13 +697,11 @@ generate_headers(void)
|
|||||||
|
|
||||||
// Do Fortran-specific
|
// Do Fortran-specific
|
||||||
const char* fortran_structs = R"(
|
const char* fortran_structs = R"(
|
||||||
integer, parameter :: precision = c_float ! TODO WARNING
|
|
||||||
|
|
||||||
type, bind(C) :: AcMeshInfo
|
type, bind(C) :: AcMeshInfo
|
||||||
integer(c_int), dimension(AC_NUM_INT_PARAMS) :: int_params
|
integer(c_int), dimension(AC_NUM_INT_PARAMS) :: int_params
|
||||||
integer(c_int), dimension(AC_NUM_INT3_PARAMS, 3) :: int3_params
|
integer(c_int), dimension(AC_NUM_INT3_PARAMS, 3) :: int3_params
|
||||||
real(precision), dimension(AC_NUM_REAL_PARAMS) :: real_params
|
real, dimension(AC_NUM_REAL_PARAMS) :: real_params
|
||||||
real(precision), dimension(AC_NUM_REAL3_PARAMS, 3) :: real3_params
|
real, dimension(AC_NUM_REAL3_PARAMS, 3) :: real3_params
|
||||||
end type AcMeshInfo
|
end type AcMeshInfo
|
||||||
)";
|
)";
|
||||||
fprintf(FHEADER, "%s\n", fortran_structs);
|
fprintf(FHEADER, "%s\n", fortran_structs);
|
||||||
@@ -722,9 +720,9 @@ generate_headers(void)
|
|||||||
fprintf(FHEADER, "integer(c_int), parameter :: STREAM_ALL = NUM_STREAMS\n");
|
fprintf(FHEADER, "integer(c_int), parameter :: STREAM_ALL = NUM_STREAMS\n");
|
||||||
|
|
||||||
fprintf(DSLHEADER, "typedef int Stream;\n");
|
fprintf(DSLHEADER, "typedef int Stream;\n");
|
||||||
/*
|
|
||||||
// Reduction types
|
// Reduction types
|
||||||
const size_t counter = 0;
|
size_t counter = 0;
|
||||||
fprintf(DSLHEADER, "#define RTYPE_MAX (%lu)\n", counter);
|
fprintf(DSLHEADER, "#define RTYPE_MAX (%lu)\n", counter);
|
||||||
fprintf(FHEADER, "integer(c_int), parameter :: RTYPE_MAX = %lu\n", counter);
|
fprintf(FHEADER, "integer(c_int), parameter :: RTYPE_MAX = %lu\n", counter);
|
||||||
++counter;
|
++counter;
|
||||||
@@ -745,10 +743,9 @@ generate_headers(void)
|
|||||||
fprintf(FHEADER, "integer(c_int), parameter :: RTYPE_SUM = %lu\n", counter);
|
fprintf(FHEADER, "integer(c_int), parameter :: RTYPE_SUM = %lu\n", counter);
|
||||||
++counter;
|
++counter;
|
||||||
|
|
||||||
fprintf(DSLHEADER, "#define RTYPE_MAX (%lu)\n", counter);
|
fprintf(DSLHEADER, "typedef int ReductionType;\n");
|
||||||
fprintf(FHEADER, "integer(c_int), parameter :: RTYPE_MAX = %lu\n", counter);
|
fprintf(DSLHEADER, "#define NUM_REDUCTION_TYPES (%lu)\n", counter);
|
||||||
++counter;
|
fprintf(FHEADER, "integer(c_int), parameter :: NUM_REDUCTION_TYPES = %lu\n", counter);
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@@ -50,6 +50,8 @@ typedef struct {
|
|||||||
|
|
||||||
typedef enum { AC_SUCCESS = 0, AC_FAILURE = 1 } AcResult;
|
typedef enum { AC_SUCCESS = 0, AC_FAILURE = 1 } AcResult;
|
||||||
|
|
||||||
|
/*
|
||||||
|
// Deprecated, defined during code generation
|
||||||
typedef enum {
|
typedef enum {
|
||||||
RTYPE_MAX,
|
RTYPE_MAX,
|
||||||
RTYPE_MIN,
|
RTYPE_MIN,
|
||||||
@@ -58,6 +60,7 @@ typedef enum {
|
|||||||
RTYPE_SUM,
|
RTYPE_SUM,
|
||||||
NUM_REDUCTION_TYPES
|
NUM_REDUCTION_TYPES
|
||||||
} ReductionType;
|
} ReductionType;
|
||||||
|
*/
|
||||||
|
|
||||||
#define AC_GEN_ID(X) X,
|
#define AC_GEN_ID(X) X,
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
Reference in New Issue
Block a user