diff --git a/src/cloudsc_loki/cloudsc_loki.config b/src/cloudsc_loki/cloudsc_loki.config index 3a4b7c32..a016da37 100644 --- a/src/cloudsc_loki/cloudsc_loki.config +++ b/src/cloudsc_loki/cloudsc_loki.config @@ -23,10 +23,6 @@ enable_imports = true # Chase dependencies incurred via imports # do not attempt to look up the source files for these. disable = ['timer_mod', 'abort', 'file_io_mod', 'foe*', 'fokoop'] -# Prune these moduels from the treeto ensure they are not processed by -# transformations -ignore = ['parkind1', 'yomphyder', 'yoecldp', 'fc*_mod'] - # Call tree entry points ("driver" subroutines) # ------------------------------------------------------------------- @@ -41,6 +37,28 @@ ignore = ['parkind1', 'yomphyder', 'yoecldp', 'fc*_mod'] role = 'driver' expand = true +# Explicitly marked "header" modules needed by the C transpilation +# ------------------------------------------------------------------- +[routines.yoethf] + role = 'header' + expand = false + +[routines.yomcst] + role = 'header' + expand = false + +[routines.yoecldp] + role = 'header' + expand = false + +[routines.yomphyder] + role = 'header' + expand = false + +[routines.parkind1] + role = 'header' + expand = false + # Configuration of "Dimension" variables # ------------------------------------------------------------------- @@ -125,10 +143,10 @@ preprocess = true check_bounds = true -[transformations.InlineTransformation] +[transformations.Inline] classname = 'InlineTransformation' module = 'loki.transformations' -[transformations.InlineTransformation.options] +[transformations.Inline.options] inline_internals = false inline_marked = true inline_stmt_funcs = true @@ -137,6 +155,15 @@ preprocess = true resolve_sequence_association = false +[transformations.FortranToC] + classname = 'FortranCTransformation' + module = 'loki.transformations.transpile' + +[transformations.FortranISOCWrapper] + classname = 'FortranISOCWrapperTransformation' + module = 'loki.transformations.transpile' + + # Loki-SCC family of transformations # ------------------------------------------------------------------- # A set of transformation passes that transforms SIMD vectorisation @@ -195,6 +222,11 @@ preprocess = true module = 'loki.transformations.build_system' options = { suffix = '_LOKI', module_suffix = '_MOD' } +[transformations.Dependency_CToF] + classname = 'DependencyTransformation' + module = 'loki.transformations.build_system' + options = { suffix = '_FC', module_suffix = '_MOD' } + # Full transformation pipelines # ------------------------------------------------------------------- @@ -226,3 +258,6 @@ preprocess = true [pipelines.scc-stack] transformations = ['DataOffload', 'Sanitise', 'SCCStack', 'ModuleWrap', 'Dependency'] + +[pipelines.c] + transformations = ['Sanitise', 'Inline', 'FortranToC', 'FortranISOCWrapper', 'ModuleWrap', 'Dependency_CToF']