PSyclone 3.2.0__tar.gz → 3.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {psyclone-3.2.0/src/PSyclone.egg-info → psyclone-3.2.1}/PKG-INFO +1 -1
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/developer_guide/module_manager.rst +4 -3
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/developer_guide/psy_data.rst +4 -3
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/developer_guide/working_practises.rst +2 -2
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/user_guide/getting_going.rst +71 -64
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/user_guide/lfric.rst +77 -34
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/user_guide/psyclone_command.rst +88 -51
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/extract/Makefile +34 -21
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/scripts/compare_ouput.py +1 -1
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/scripts/everything_everywhere_all_at_once.py +1 -1
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/scripts/extract_script.py +8 -8
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/scripts/gpu_offloading.py +34 -30
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/scripts/redundant_dofs.py +1 -1
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/scripts/redundant_setval_c.py +2 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/scripts/tiledcolouring_and_omp.py +6 -6
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/scripts/omp_cpu_trans.py +22 -5
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/scripts/omp_gpu_trans.py +4 -5
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/scripts/passthrough.py +14 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/scripts/utils.py +0 -4
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/netcdf/lfric/Makefile +1 -1
- {psyclone-3.2.0 → psyclone-3.2.1/src/PSyclone.egg-info}/PKG-INFO +1 -1
- {psyclone-3.2.0 → psyclone-3.2.1}/src/PSyclone.egg-info/SOURCES.txt +3 -4
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/core/access_type.py +5 -4
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/core/symbolic_maths.py +13 -6
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/core/variables_access_map.py +1 -1
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/common/__init__.py +2 -4
- psyclone-3.2.1/src/psyclone/domain/common/driver_creator.py +729 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/common/transformations/alg_invoke_2_psy_call_trans.py +7 -2
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/common/transformations/alg_trans.py +10 -5
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/common/transformations/kernel_module_inline_trans.py +12 -3
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/common/transformations/raise_psyir_2_alg_trans.py +17 -13
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/gocean/__init__.py +4 -1
- psyclone-3.2.1/src/psyclone/domain/gocean/gocean_driver_creator.py +85 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/gocean/transformations/gocean_extract_trans.py +4 -4
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/__init__.py +3 -3
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/arg_ordering.py +1 -1
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_arg_descriptor.py +2 -3
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_builtins.py +26 -13
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_constants.py +23 -9
- psyclone-3.2.1/src/psyclone/domain/lfric/lfric_driver_creator.py +124 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_kern.py +31 -11
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_loop.py +7 -4
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/transformations/lfric_extract_trans.py +4 -4
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/generator.py +84 -18
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/parse/algorithm.py +5 -4
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/parse/file_info.py +62 -100
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/parse/lfric_builtins_mod.f90 +3 -1
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/parse/module_manager.py +170 -105
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/backend/fortran.py +19 -38
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/backend/sympy_writer.py +3 -1
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/frontend/sympy_reader.py +11 -4
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/__init__.py +2 -1
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/array_mixin.py +28 -21
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/call.py +116 -67
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/data_sharing_attribute_mixin.py +66 -32
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/extract_node.py +1 -1
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/intrinsic_call.py +10 -1
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/literal.py +15 -4
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/loop.py +11 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/node.py +13 -1
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/reference.py +18 -3
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/scoping_node.py +4 -2
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/structure_reference.py +32 -20
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/symbols/data_type_symbol.py +5 -10
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/symbols/datasymbol.py +7 -11
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/symbols/datatypes.py +38 -107
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/symbols/generic_interface_symbol.py +5 -13
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/symbols/interfaces.py +9 -2
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/symbols/symbol.py +3 -10
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/symbols/symbol_table.py +31 -47
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/symbols/typed_symbol.py +7 -17
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/tools/__init__.py +1 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/tools/definition_use_chains.py +0 -1
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/async_trans_mixin.py +2 -2
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/inline_trans.py +580 -246
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/intrinsics/abs2code_trans.py +15 -2
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/intrinsics/array_reduction_base_trans.py +19 -3
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/intrinsics/dotproduct2code_trans.py +11 -4
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/intrinsics/intrinsic2code_trans.py +25 -3
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/intrinsics/matmul2code_trans.py +16 -3
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/intrinsics/max2code_trans.py +18 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/intrinsics/maxval2loop_trans.py +19 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/intrinsics/min2code_trans.py +19 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/intrinsics/minormax2code_trans.py +16 -3
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/intrinsics/minval2loop_trans.py +19 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/intrinsics/product2loop_trans.py +19 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/intrinsics/sign2code_trans.py +19 -5
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/intrinsics/sum2loop_trans.py +19 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/omp_minimise_sync_trans.py +21 -1
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/omp_task_trans.py +3 -3
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/parallel_loop_trans.py +47 -11
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/transformations.py +32 -26
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/version.py +1 -1
- psyclone-3.2.0/examples/lfric/scripts/KGOs/psyclone.mk +0 -95
- psyclone-3.2.0/src/psyclone/domain/common/base_driver_creator.py +0 -339
- psyclone-3.2.0/src/psyclone/domain/common/extract_driver_creator.py +0 -258
- psyclone-3.2.0/src/psyclone/domain/lfric/lfric_extract_driver_creator.py +0 -524
- {psyclone-3.2.0 → psyclone-3.2.1}/CONTRIBUTING.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/LICENSE +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/MANIFEST.in +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/bin/psyad +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/bin/psyclone +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/bin/psyclone-kern +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/bin/psyclonefc +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/config/psyclone.cfg +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/_ext/apilinks.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/conf.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/developer_guide/APIs.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/developer_guide/code_snippets/newnode.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/developer_guide/coding-style.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/developer_guide/dependency.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/developer_guide/index.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/developer_guide/integration-test.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/developer_guide/interface_example.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/developer_guide/pip_requirements.txt +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/developer_guide/psyir.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/developer_guide/psyir_backends.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/developer_guide/psyir_symbols.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/developer_guide/psykal.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/developer_guide/sympy.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/developer_guide/system_specific_setup.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/developer_guide/transformations.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/index.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/reference_guide/index.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/tutorials_and_examples/examples_intro.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/tutorials_and_examples/gocean_examples.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/tutorials_and_examples/index.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/tutorials_and_examples/lfric_examples.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/tutorials_and_examples/nemo_examples.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/tutorials_and_examples/psyir_examples.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/tutorials_and_examples/tutorials.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/user_guide/configuration.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/user_guide/gocean1p0.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/user_guide/index.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/user_guide/introduction_to_psykal.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/user_guide/libraries.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/user_guide/profiling.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/user_guide/psy_data.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/user_guide/psyad.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/user_guide/psyclone_kern.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/user_guide/psyir.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/user_guide/psyke.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/user_guide/transformations.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/doc/user_guide/user_scripts.rst +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/common.mk +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg1/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg1/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg1/compute_cu_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg1/compute_cv_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg1/compute_h_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg1/compute_pnew_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg1/compute_unew_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg1/compute_vnew_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg1/compute_z_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg1/infrastructure_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg1/opencl_transformation.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg1/openmp_taskloop_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg1/runme.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg1/runme_dag.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg1/runme_loop_fuse.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg1/runme_openacc.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg1/runme_openmp.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg1/shallow_alg.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg1/time_smooth_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg2/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg2/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg2/acc_prof_transform.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg2/acc_transform.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg2/alg.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg2/inc_field_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg3/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg3/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg3/alg.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg3/compute_cu_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg3/compute_cv_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg3/compute_h_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg3/compute_z_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg3/ocl_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg4/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg4/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg4/acc_transform.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg4/alg_kern_call_kern.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg4/alg_kern_use_var.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg4/alg_nested_use.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg4/another_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg4/data_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg4/kern_call_kern_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg4/kern_nested_use_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg4/kern_use_var_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg4/ocl_transform.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/extract/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/extract/extract_transform.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/extract/init_field_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/extract/test.X90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/extract/update_field_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/profile/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/profile/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/profile/init_field_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/profile/test.x90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/profile/update_field_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/readonly/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/readonly/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/readonly/init_field_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/readonly/read_only_transform.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/readonly/test.x90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/readonly/update_field_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/value_range_check/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/value_range_check/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/value_range_check/init_field_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/value_range_check/test.x90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/value_range_check/update_field_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg5/value_range_check/value_range_check_transformation.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg6/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg6/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg6/alg.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg6/backends_transform.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg6/inc_field_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg7/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg7/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg7/alg.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg7/alg_transform.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/gocean/eg7/inc_field_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/code/dg_matrix_vector_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/code/gw_mixed_schur_preconditioner_alg_mod.x90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/code/matrix_vector_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/code/testkern_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/code/testkern_write_any_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg1/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg1/single_invoke.x90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg10/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg10/intergrid_3levels.x90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg10/prolong_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg10/restrict_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg11/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg11/async_script.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg11/driver.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg11/helmholtz_solver_alg_mod.x90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg11/scaled_matrix_vector_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg12/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg12/colouring_and_omp.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg12/extract_kernel_with_transformations.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg12/extract_nodes.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg12/find_kernel.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg13/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg13/kernel_constants.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg14/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg14/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg14/acc_parallel.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg14/main.x90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg14/other_alg_mod.x90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg14/testkern_w0_kernel_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg15/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg15/matvec_opt.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg16/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg16/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg16/create.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg17/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg17/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg17/full_example/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg17/full_example/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg17/full_example/main.x90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg17/full_example/testkern_w0_kernel_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg17/full_example_extract/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg17/full_example_extract/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg17/full_example_extract/dummy_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg17/full_example_extract/extract_transform.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg17/full_example_extract/main.X90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg17/full_example_extract/testkern_w0_kernel_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg17/full_example_netcdf/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg17/full_example_netcdf/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg17/full_example_netcdf/main.x90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg17/full_example_netcdf/testkern_w0_kernel_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg18/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg18/advection_alg_mod.x90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg18/impose_min_flux_kernel_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg19/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg19/algorithm.x90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg19/mixed_kernel_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg2/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg2/loop_fuse_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg2/module_inline_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg2/multi_invoke_mod.x90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg2/print_psyir_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg20/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg3/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg3/colouring_and_omp.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg3/matrix_vector_mm_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg3/solver_mod.x90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg3/w3_solver_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg4/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg4/backends_transform.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg4/enforce_bc_kernel_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg4/matrix_vector_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg4/mm_diagonal_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg4/solver_mod.x90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg5/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg5/alg.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg5/conservative_flux_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg5/subgrid_coeffs_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg6/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg6/alg.x90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg6/omp_reprod_script.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg6/omp_script.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg7/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg7/alg.x90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg7/columnwise_op_app_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg7/columnwise_op_asm_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg7/columnwise_op_mul_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg7/matrix_vector_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg8/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg8/apply_variable_hx_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg8/enforce_bc_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg8/helmholtz_solver_alg_mod.x90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg8/redundant_script.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg8/scaled_matrix_vector_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg9/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg9/advective_inc_alg_mod.x90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg9/colouring_and_omp.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg9/matrix_vector_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg9/rtheta_bd_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg9/rtheta_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg9/rtheta_wtheta_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/eg9/sample_poly_adv_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/lfric_common.mk +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/scripts/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/scripts/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/scripts/async_halo_exchanges.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/scripts/colouring_and_omp.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/scripts/does_nothing.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/scripts/inline_kernels_and_intrinsics.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/scripts/kernel_print.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/lfric/scripts/loop_fuse.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/code/tra_adv.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/code/traldf_iso.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg1/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg1/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg1/openmp_cpu_levels_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg1/openmp_gpu_levels_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg2/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg2/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg2/omp_levels_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg3/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg3/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg3/kernel_utils.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg3/kernels_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg4/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg4/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg4/copy_stencil.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg4/dawn_script.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg4/hori_diff.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg4/if_example.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg4/intrinsic_example.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg4/sir_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg4/sir_trans_all.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg4/sir_trans_loop.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg4/tra_adv_compute.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg4/tridiagonal_solve.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg5/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg5/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg5/extract_kernels.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg6/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg6/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg6/dummy.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg6/read_only_check.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg7/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg7/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg7/openmp_cpu_nowait_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/eg7/openmp_gpu_nowait_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/scripts/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/scripts/acc_kernels_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/scripts/acc_loops_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/nemo/scripts/compare_ouput.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/eg1/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/eg1/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/eg1/testkern_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/eg2/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/eg2/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/eg2/tl_hydrostatic_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/adj_calc_exner_pointwise_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/adj_convert_hdiv_field_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/adj_dg_inc_matrix_vector_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/adj_helmholtz_operator_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/adj_kinetic_energy_gradient_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/adj_matrix_vector_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/adj_moist_dyn_gas_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/adj_poly1d_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/adj_poly1d_vert_adv_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/adj_poly1d_vert_w3_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/adj_poly2d_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/adj_poly_advective_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/adj_pressure_gradient_bd_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/adj_project_eos_pressure_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/adj_rhs_project_eos_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/adj_rhs_sample_eos_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/adj_sample_eos_pressure_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/adj_strong_curl_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/adj_vorticity_advection_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/lbl_adj_poly1d_w3_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/lbl_adj_poly2d_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/lbl_adj_poly2d_w3_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint/lbl_adj_pressure_gradient_bd_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/adjoint_partial/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/apply_helmholtz_operator_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/combine_w2_field_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/convert_hdiv_field_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/dg_inc_matrix_vector_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/dg_matrix_vector_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/helmholtz_operator_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/matrix_vector_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/poly1d_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/poly1d_w3_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/poly2d_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/poly2d_w3_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/poly_adv_update_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/sample_flux_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/split_w2_field_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/strong_curl_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/tl_calc_exner_pointwise_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/tl_hydrostatic_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/tl_kinetic_energy_gradient_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/tl_moist_dyn_gas_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/tl_moist_dyn_mass_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/tl_poly1d_vert_adv_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/tl_poly1d_vert_w3_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/tl_poly_advective_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/tl_pressure_gradient_bd_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/tl_project_eos_pressure_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/tl_rhs_project_eos_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/tl_rhs_sample_eos_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/tl_sample_eos_pressure_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/tl_vorticity_advection_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/tracer_viscosity_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/transpose_matrix_vector_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/w2_to_w1_projection_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear/w3_advective_update_kernel_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear_tweaked/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear_tweaked/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear_tweaked/convert_hdiv_field_kernel_mod_tweaked.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear_tweaked/dg_inc_matrix_vector_kernel_mod_tweaked.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear_tweaked/matrix_vector_kernel_mod_tweaked.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear_tweaked/poly1d_reconstruction_kernel_mod_tweaked.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear_tweaked/poly1d_w3_reconstruction_kernel_mod_tweaked.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear_tweaked/poly2d_reconstruction_kernel_mod_tweaked.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear_tweaked/poly2d_w3_reconstruction_kernel_mod_tweaked.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear_tweaked/poly_adv_update_kernel_mod_tweaked.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear_tweaked/tl_calc_exner_pointwise_mod_tweaked.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear_tweaked/tl_kinetic_energy_gradient_kernel_mod_tweaked.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear_tweaked/tl_moist_dyn_gas_kernel_mod_tweaked.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear_tweaked/tl_poly1d_vert_adv_kernel_mod_tweaked.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear_tweaked/tl_poly1d_vert_w3_reconstruction_kernel_mod_tweaked.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear_tweaked/tl_pressure_gradient_bd_kernel_mod_tweaked.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear_tweaked/tl_project_eos_pressure_kernel_mod_tweaked.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear_tweaked/tl_rhs_project_eos_kernel_mod_tweaked.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear_tweaked/tl_sample_eos_pressure_kernel_mod_tweaked.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyad/lfric/tangent_linear_tweaked/tl_vorticity_advection_kernel_mod_tweaked.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyir/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyir/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyir/create.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyir/create_structure_types.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyir/matmul/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyir/matmul/matmul.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyir/matmul/omp-tile.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyir/matmul/omp.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyir/matmul/tile.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyir/modify.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyir/transpose/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyir/transpose/omp-tile.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyir/transpose/omp.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyir/transpose/tile.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/psyir/transpose/trans.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/stub_generation/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/stub_generation/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/stub_generation/testkern_stencil_multi_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/top_level.mk +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/xdsl/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/xdsl/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/xdsl/backend/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/xdsl/backend/xdsl.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/xdsl/pw_advection/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/xdsl/pw_advection/advection_mpi.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/xdsl/stencil_lower.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/examples/xdsl/xdsl_backends_transform.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/ascii/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/ascii/dl_esm_inf/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/ascii/dl_esm_inf/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/ascii/dl_esm_inf/kernel_data_ascii.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/ascii/extract_ascii_base.jinja +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/ascii/generic/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/ascii/generic/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/ascii/generic/kernel_data_ascii.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/ascii/lfric/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/ascii/lfric/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/ascii/lfric/kernel_data_ascii.jinja +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/ascii/read_kernel_data_mod.jinja +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/binary/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/binary/dl_esm_inf/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/binary/dl_esm_inf/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/binary/dl_esm_inf/kernel_data_binary.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/binary/extract_binary_base.jinja +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/binary/generic/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/binary/generic/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/binary/generic/kernel_data_binary.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/binary/lfric/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/binary/lfric/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/binary/lfric/compare_variables_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/binary/lfric/kernel_data_binary.jinja +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/binary/lfric/read_kernel_data_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/binary/read_kernel_data_mod.jinja +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/compare_variables_mod.jinja +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/netcdf/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/netcdf/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/netcdf/dl_esm_inf/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/netcdf/dl_esm_inf/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/netcdf/dl_esm_inf/kernel_data_netcdf.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/netcdf/extract_netcdf_base.jinja +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/netcdf/generic/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/netcdf/generic/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/netcdf/generic/kernel_data_netcdf.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/netcdf/lfric/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/netcdf/lfric/kernel_data_netcdf.jinja +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/netcdf/read_kernel_data_mod.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/netcdf/read_kernel_data_mod.jinja +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/extract/test_compare.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/get_python.sh +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/process.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/dl_timer/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/dl_timer/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/dl_timer/dl_timer.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/drhook/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/drhook/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/drhook/drhook_psy.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/lfric_timer/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/lfric_timer/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/lfric_timer/profile_psy_data_mod.F90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/nvidia/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/nvidia/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/nvidia/nvtx_prof.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/simple_timing/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/simple_timing/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/simple_timing/simple_timing.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/tau/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/tau/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/tau/tau_psy.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/template/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/template/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/template/dummy_lib.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/vernier/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/vernier/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/profiling/vernier/vernier_psy.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/psy_data_base.jinja +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/read_only/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/read_only/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/read_only/dl_esm_inf/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/read_only/dl_esm_inf/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/read_only/dl_esm_inf/read_only.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/read_only/generic/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/read_only/generic/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/read_only/generic/read_only.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/read_only/lfric/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/read_only/lfric/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/read_only/lfric/read_only.jinja +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/read_only/read_only_base.jinja +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/value_range_check/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/value_range_check/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/value_range_check/dl_esm_inf/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/value_range_check/dl_esm_inf/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/value_range_check/dl_esm_inf/value_range_check.f90 +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/value_range_check/lfric/Makefile +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/value_range_check/lfric/README.md +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/value_range_check/lfric/value_range_check.jinja +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/lib/value_range_check/value_range_check_base.jinja +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/setup.cfg +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/setup.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/PSyclone.egg-info/dependency_links.txt +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/PSyclone.egg-info/requires.txt +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/PSyclone.egg-info/top_level.txt +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/alg_gen.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/configuration.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/core/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/core/access_sequence.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/core/component_indices.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/core/signature.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/docstring_parser.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/common/algorithm/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/common/algorithm/psyir.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/common/psylayer/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/common/psylayer/psyloop.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/common/transformations/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/gocean/go_symbol_table.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/gocean/gocean_constants.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/gocean/kernel/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/gocean/kernel/psyir.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/gocean/transformations/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/gocean/transformations/gocean_alg_invoke_2_psy_call_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/gocean/transformations/gocean_const_loop_bounds_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/gocean/transformations/gocean_loop_fuse_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/gocean/transformations/gocean_move_iteration_boundaries_inside_kernel_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/gocean/transformations/gocean_opencl_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/gocean/transformations/raise_psyir_2_gocean_kern_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/algorithm/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/algorithm/lfric_alg.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/algorithm/psyir/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/algorithm/psyir/lfric_alg_invoke_call.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/algorithm/psyir/lfric_kernel_functor.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/arg_index_to_metadata_index.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/function_space.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kern_call_acc_arg_list.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kern_call_arg_list.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kern_call_invoke_arg_list.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kern_stub_arg_list.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/columnwise_operator_arg_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/common_arg_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/common_declaration_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/common_meta_arg_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/common_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/evaluator_targets_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/field_arg_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/field_vector_arg_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/inter_grid_arg_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/inter_grid_vector_arg_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/lfric_kernel_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/meta_args_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/meta_funcs_arg_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/meta_funcs_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/meta_mesh_arg_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/meta_mesh_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/meta_ref_element_arg_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/meta_ref_element_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/operates_on_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/operator_arg_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/psyir.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/scalar_arg_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/scalar_array_arg_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel/shapes_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/kernel_interface.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_cell_iterators.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_collection.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_dofmaps.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_fields.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_halo_depths.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_invoke.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_invoke_schedule.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_invokes.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_kern_call_factory.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_kern_metadata.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_loop_bounds.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_psy.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_run_time_checks.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_scalar_args.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_stencils.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_symbol_table.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/lfric_types.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/metadata_to_arguments_rules.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/transformations/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/transformations/lfric_alg_invoke_2_psy_call_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/transformations/lfric_alg_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/transformations/lfric_loop_fuse_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/transformations/raise_psyir_2_lfric_alg_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/transformations/raise_psyir_2_lfric_kern_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/domain/lfric/utils.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/doxy_main_page.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/errors.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/expression.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/gen_kernel_stub.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/gocean1p0.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/kernel_tools.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/lfric.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/line_length.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/parse/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/parse/kernel.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/parse/module_info.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/parse/utils.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/profiler.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyGen.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyad/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyad/adjoint_visitor.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyad/domain/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyad/domain/common/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyad/domain/common/adjoint_utils.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyad/domain/lfric/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyad/domain/lfric/lfric_adjoint.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyad/domain/lfric/lfric_adjoint_harness.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyad/main.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyad/tl2ad.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyad/transformations/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyad/transformations/adjoint_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyad/transformations/assignment_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyad/transformations/preprocess.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyad/transformations/tangent_linear_error.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyad/utils.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyclonefc_cli.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/backend/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/backend/c.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/backend/debug_writer.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/backend/language_writer.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/backend/opencl.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/backend/sir.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/backend/visitor.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/commentable_mixin.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/frontend/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/frontend/fortran.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/frontend/fparser2.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/acc_clauses.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/acc_directives.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/acc_mixins.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/array_member.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/array_of_structures_member.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/array_of_structures_mixin.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/array_of_structures_reference.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/array_reference.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/assignment.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/atomic_mixin.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/clause.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/codeblock.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/container.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/datanode.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/directive.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/dynamic_omp_task_directive.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/file_container.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/if_block.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/kernel_schedule.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/member.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/omp_clauses.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/omp_directives.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/omp_task_directive.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/operation.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/profile_node.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/psy_data_node.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/ranges.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/read_only_verify_node.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/return_stmt.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/routine.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/schedule.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/statement.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/structure_accessor_mixin.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/structure_member.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/value_range_check_node.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/nodes/while_loop.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/symbols/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/symbols/containersymbol.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/symbols/intrinsic_symbol.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/symbols/routinesymbol.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/tools/call_tree_utils.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/tools/dependency_tools.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/tools/read_write_info.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/tools/reduction_inference.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/acc_kernels_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/acc_update_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/allarrayaccess2loop_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/arrayaccess2loop_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/arrayassignment2loops_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/chunk_loop_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/debug_checksum_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/extract_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/fold_conditional_return_expressions_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/hoist_local_arrays_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/hoist_loop_bound_expr_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/hoist_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/increase_rank_loop_arrays_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/intrinsics/__init__.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/loop_fuse_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/loop_swap_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/loop_tiling_2d_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/loop_tiling_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/loop_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/mark_routine_for_gpu_mixin.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/omp_declare_target_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/omp_loop_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/omp_target_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/omp_taskloop_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/omp_taskwait_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/parallel_region_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/profile_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/psy_data_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/read_only_verify_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/reference2arrayrange_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/region_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/replace_induction_variables_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/replace_reference_by_literal_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/scalarisation_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/transformation_error.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/psyir/transformations/value_range_check_trans.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/src/psyclone/utils.py +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/tutorial/notebooks/fparser2/parsing_fortran.ipynb +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/tutorial/notebooks/introduction.ipynb +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/tutorial/notebooks/nemo/nemo_example1.ipynb +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/tutorial/notebooks/nemo/nemo_example2.ipynb +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/tutorial/notebooks/nemo/nemo_example3.ipynb +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/tutorial/notebooks/nemo/nemo_example4.ipynb +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/tutorial/notebooks/psyir/psyir_example1.ipynb +0 -0
- {psyclone-3.2.0 → psyclone-3.2.1}/tutorial/notebooks/psyir/psyir_example2.ipynb +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PSyclone
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.1
|
|
4
4
|
Summary: PSyclone - a source-to-source and DSL Fortran compiler for HPC applications
|
|
5
5
|
Home-page: https://github.com/stfc/psyclone
|
|
6
6
|
Author: Rupert Ford, Andrew Porter <andrew.porter@stfc.ac.uk>, Sergi Siso <sergi.siso@stfc.ac.uk>, Joerg Henrichs <joerg.henrichs@bom.gov.au>
|
|
@@ -172,7 +172,7 @@ of `ModuleManager`.
|
|
|
172
172
|
|
|
173
173
|
.. testcode ::
|
|
174
174
|
|
|
175
|
-
|
|
175
|
+
ModuleManager.get().cache_active = True
|
|
176
176
|
|
|
177
177
|
|
|
178
178
|
Most of the time in the PSyIR generation is currently spent in the
|
|
@@ -200,8 +200,9 @@ a path can be provided to the module manager.
|
|
|
200
200
|
|
|
201
201
|
.. testcode ::
|
|
202
202
|
|
|
203
|
-
mod_manager = ModuleManager.get(
|
|
204
|
-
|
|
203
|
+
mod_manager = ModuleManager.get()
|
|
204
|
+
mod_manager.cache_active = True
|
|
205
|
+
mod_manager.cache_path = "/tmp/my_cache_path"
|
|
205
206
|
|
|
206
207
|
A cache file name will then be created based on the hashsum of each
|
|
207
208
|
source code file. The combination of the provided `cache_path` and
|
|
@@ -1066,8 +1066,9 @@ the wrapper depends on (e.g. NetCDF).
|
|
|
1066
1066
|
and link time for now, since the kernel contains metadata. Issue
|
|
1067
1067
|
#2049 tracks a solution for this.
|
|
1068
1068
|
|
|
1069
|
-
The following changes are applied by the ``
|
|
1070
|
-
in order to generate stand-alone
|
|
1069
|
+
The following changes are applied by the ``GOceanDriverCreator`` and
|
|
1070
|
+
the base class ``DriverCreator`` in order to generate stand-alone
|
|
1071
|
+
code for GOcean:
|
|
1071
1072
|
|
|
1072
1073
|
1. The `dl_esm_inf` field type is replaced with 2d Fortran arrays.
|
|
1073
1074
|
The structure name used is 'flattened', i.e. each ``%`` is replaced
|
|
@@ -1175,7 +1176,7 @@ the wrapper depends on (e.g. NetCDF).
|
|
|
1175
1176
|
|
|
1176
1177
|
The driver creation process is explained in the Python sources:
|
|
1177
1178
|
|
|
1178
|
-
.. autoclass:: psyclone.domain.lfric.
|
|
1179
|
+
.. autoclass:: psyclone.domain.lfric.LFRicDriverCreator
|
|
1179
1180
|
:no-index:
|
|
1180
1181
|
:members:
|
|
1181
1182
|
|
|
@@ -493,13 +493,13 @@ computational cost (so that we 'fail fast'):
|
|
|
493
493
|
3. All links within the Sphinx documentation (rst files) are checked (see
|
|
494
494
|
note below);
|
|
495
495
|
|
|
496
|
-
4. All of the examples are tested (for Python versions 3.
|
|
496
|
+
4. All of the examples are tested (for Python versions 3.9 and 3.14)
|
|
497
497
|
using the ``Makefile`` in the ``examples`` directory. No compilation is
|
|
498
498
|
performed; only the ``transform`` (performs the PSyclone transformations)
|
|
499
499
|
and ``notebook`` (runs the various Jupyter notebooks) targets are used.
|
|
500
500
|
The ``transform`` target is run 2-way parallel (``-j 2``).
|
|
501
501
|
|
|
502
|
-
5. The full test suite is run for Python versions 3.
|
|
502
|
+
5. The full test suite is run for Python versions 3.9 and 3.14 but
|
|
503
503
|
without the compilation checks. ``pytest`` is passed the ``-n auto`` flag
|
|
504
504
|
so that it will run the tests in parallel on as many cores as are
|
|
505
505
|
available (currently 2 on GHA instances).
|
|
@@ -171,70 +171,77 @@ Running PSyclone
|
|
|
171
171
|
You are now ready to run PSyclone. One way of doing this is to use the ``psyclone``
|
|
172
172
|
command. To list the available options run: ``psyclone -h``, it should output::
|
|
173
173
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
174
|
+
usage: psyclone [-h] [-v] [-c CONFIG] [-s SCRIPT] [--enable-cache] [-l {off,all,output}]
|
|
175
|
+
[-p {invokes,routines,kernels}]
|
|
176
|
+
[--backend {disable-validation,disable-indentation}] [-o OUTPUT_FILE]
|
|
177
|
+
[-api DSL] [-oalg OUTPUT_ALGORITHM_FILE] [-opsy OUTPUT_PSY_FILE]
|
|
178
|
+
[-okern OUTPUT_KERNEL_PATH] [-dm] [-nodm]
|
|
179
|
+
[--kernel-renaming {multiple,single}]
|
|
180
|
+
[--log-level {OFF,DEBUG,INFO,WARNING,ERROR,CRITICAL}] [--log-file LOG_FILE]
|
|
181
|
+
[--keep-comments] [--keep-directives] [-I INCLUDE] [-d DIRECTORY]
|
|
182
|
+
[--modman-file-ignore IGNORE_PATTERN] [--free-form | --fixed-form]
|
|
183
|
+
filename
|
|
184
|
+
|
|
185
|
+
Transform a file using the PSyclone source-to-source Fortran compiler
|
|
186
|
+
|
|
187
|
+
positional arguments:
|
|
188
|
+
filename input source code
|
|
189
|
+
|
|
190
|
+
options:
|
|
191
|
+
-h, --help show this help message and exit
|
|
192
|
+
-v, --version display version information
|
|
193
|
+
-c CONFIG, --config CONFIG
|
|
194
|
+
config file with PSyclone specific options
|
|
195
|
+
-s SCRIPT, --script SCRIPT
|
|
196
|
+
filename of a PSyclone optimisation recipe
|
|
197
|
+
--enable-cache whether to enable caching of imported module dependencies (if
|
|
198
|
+
enabled, it will generate a .psycache file of each imported module in
|
|
199
|
+
the same location as the imported source file).
|
|
200
|
+
-l {off,all,output}, --limit {off,all,output}
|
|
201
|
+
limit the Fortran line length to 132 characters (default 'off'). Use
|
|
202
|
+
'all' to apply limit to both input and output Fortran. Use 'output'
|
|
203
|
+
to apply line-length limit to output Fortran only.
|
|
204
|
+
-p {invokes,routines,kernels}, --profile {invokes,routines,kernels}
|
|
205
|
+
add profiling hooks for 'kernels', 'invokes' or 'routines'
|
|
206
|
+
--backend {disable-validation,disable-indentation}
|
|
207
|
+
options to control the PSyIR backend used for code generation. Use
|
|
208
|
+
'disable-validation' to disable the validation checks that are
|
|
209
|
+
performed by default. Use 'disable-indentation' to turn off all
|
|
210
|
+
indentation in the generated code.
|
|
211
|
+
-o OUTPUT_FILE (code-transformation mode) output file
|
|
212
|
+
-api DSL, --psykal-dsl DSL
|
|
213
|
+
whether to use a PSyKAl DSL (one of ['lfric', 'gocean'])
|
|
214
|
+
-oalg OUTPUT_ALGORITHM_FILE
|
|
215
|
+
(psykal mode) filename of transformed algorithm code
|
|
216
|
+
-opsy OUTPUT_PSY_FILE
|
|
217
|
+
(psykal mode) filename of generated PSy-layer code
|
|
218
|
+
-okern OUTPUT_KERNEL_PATH
|
|
219
|
+
(psykal mode) directory in which to put transformed kernels, default
|
|
220
|
+
is the current working directory
|
|
221
|
+
-dm, --dist_mem (psykal mode) generate distributed memory code
|
|
222
|
+
-nodm, --no_dist_mem (psykal mode) do not generate distributed memory code
|
|
223
|
+
--kernel-renaming {multiple,single}
|
|
224
|
+
(psykal mode) naming scheme to use when re-naming transformed kernels
|
|
225
|
+
--log-level {OFF,DEBUG,INFO,WARNING,ERROR,CRITICAL}
|
|
226
|
+
sets the level of the logging (defaults to OFF).
|
|
227
|
+
--log-file LOG_FILE sets the output file to use for logging (defaults to stderr).
|
|
228
|
+
--keep-comments keeps comments from the original code (defaults to False). Directives
|
|
229
|
+
are not kept with this option (use --keep-directives).
|
|
230
|
+
--keep-directives keeps directives from the original code (defaults to False).
|
|
231
|
+
--free-form forces PSyclone to parse this file as free format (default is to look
|
|
232
|
+
at the input file extension).
|
|
233
|
+
--fixed-form forces PSyclone to parse this file as fixed format (default is to
|
|
234
|
+
look at the input file extension).
|
|
235
|
+
|
|
236
|
+
Directory management:
|
|
237
|
+
-I INCLUDE, --include INCLUDE
|
|
238
|
+
path to Fortran INCLUDE or module files
|
|
239
|
+
-d DIRECTORY, --directory DIRECTORY
|
|
240
|
+
(psykal mode) path to a root directory structure containing kernel
|
|
241
|
+
source code. Multiple roots can be specified by using multiple -d
|
|
242
|
+
arguments. These directories will be searchedrecursively.
|
|
243
|
+
--modman-file-ignore IGNORE_PATTERN
|
|
244
|
+
Ignore files that contain the specified pattern.
|
|
238
245
|
|
|
239
246
|
There is more detailed information about each flag in :ref:`psyclone_command` section,
|
|
240
247
|
but the main parameters are the input source file that we aim to transform, and a transformation
|
|
@@ -51,7 +51,7 @@ allow PSyclone to generate the PSy layer. These algorithm and kernel
|
|
|
51
51
|
APIs are discussed separately in the following sections.
|
|
52
52
|
|
|
53
53
|
The LFRic API supports the Met Office's finite element (hereafter FEM)
|
|
54
|
-
based GungHo dynamical core.
|
|
54
|
+
based 'GungHo' dynamical core.
|
|
55
55
|
This dynamical core with atmospheric physics parameterisation
|
|
56
56
|
schemes is a part of the Met Office LFRic modelling system :footcite:t:`lfric-2019`,
|
|
57
57
|
currently being developed in preparation for exascale computing in the 2020s.
|
|
@@ -64,6 +64,13 @@ requires login access to MOSRS. For more technical details on the
|
|
|
64
64
|
implementation of LFRic, please see the `LFRic documentation
|
|
65
65
|
<https://code.metoffice.gov.uk/trac/lfric/attachment/wiki/LFRicDocumentationPapers/lfric_documentation.pdf>`_.
|
|
66
66
|
|
|
67
|
+
.. note::
|
|
68
|
+
The following sections assume that the reader is familiar
|
|
69
|
+
with various concepts relating to the LFRic mesh and how it is decomposed
|
|
70
|
+
for distributed-memory parallel computing. For a detailed description of
|
|
71
|
+
these things, please see the :ref:`LFRic <lfric-developers>` section of the
|
|
72
|
+
Developer Guide.
|
|
73
|
+
|
|
67
74
|
.. _lfric-api-algorithm:
|
|
68
75
|
|
|
69
76
|
Algorithm
|
|
@@ -308,9 +315,9 @@ Halo Depth
|
|
|
308
315
|
++++++++++
|
|
309
316
|
|
|
310
317
|
If a Kernel is written such that it *must* iterate into the halo (has an
|
|
311
|
-
|
|
312
|
-
then the halo depth must be passed as a
|
|
313
|
-
Kernel.
|
|
318
|
+
:ref:`OPERATES_ON <lfric-operates-on>` of ``HALO_CELL_COLUMN`` or
|
|
319
|
+
``OWNED_AND_HALO_CELL_COLUMN``) then the halo depth must be passed as a
|
|
320
|
+
final, ``integer`` argument to the Kernel.
|
|
314
321
|
|
|
315
322
|
.. _lfric-alg-stencil:
|
|
316
323
|
|
|
@@ -879,9 +886,11 @@ types.
|
|
|
879
886
|
Rules specific to General-Purpose Kernels without CMA Operators
|
|
880
887
|
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
881
888
|
|
|
882
|
-
1) General-purpose kernels
|
|
883
|
-
|
|
884
|
-
|
|
889
|
+
1) General-purpose kernels that :ref:`operate on <lfric-operates-on>`
|
|
890
|
+
any kind of ``CELL_COLUMN``
|
|
891
|
+
accept arguments of any of the following types: field,
|
|
892
|
+
field vector, LMA operator, scalar (``real``, ``integer`` or
|
|
893
|
+
``logical``).
|
|
885
894
|
|
|
886
895
|
2) A Kernel is permitted to write to more than one
|
|
887
896
|
quantity (field or operator) and these quantities may be on the
|
|
@@ -1005,12 +1014,13 @@ on a ``CELL_COLUMN`` without CMA Operators. Specifically:
|
|
|
1005
1014
|
Rules for all User-Supplied Kernels that Operate on DoFs (DoF Kernels)
|
|
1006
1015
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
1007
1016
|
|
|
1008
|
-
Kernels that have
|
|
1009
|
-
:ref:`LFRic Built-ins<lfric-built-ins>` overlap
|
|
1010
|
-
scope, and the conventions that DoF Kernels
|
|
1011
|
-
by those for built-ins as a result. This
|
|
1012
|
-
<lfric-api-built-ins-metadata>` and
|
|
1013
|
-
|
|
1017
|
+
Kernels that have an :ref:`operates_on <lfric-operates-on>` of ``DOF``
|
|
1018
|
+
(or ``OWNED_DOF``) and :ref:`LFRic Built-ins<lfric-built-ins>` overlap
|
|
1019
|
+
significantly in their scope, and the conventions that DoF Kernels
|
|
1020
|
+
must follow are influenced by those for built-ins as a result. This
|
|
1021
|
+
includes :ref:`metadata arguments <lfric-api-built-ins-metadata>` and
|
|
1022
|
+
:ref:`valid data types and access
|
|
1023
|
+
modes<lfric-built-ins-dtype-access>`. Naming conventions for DoF
|
|
1014
1024
|
Kernels should follow those for General-Purpose Kernels.
|
|
1015
1025
|
|
|
1016
1026
|
The list of rules for DoF Kernels is as follows:
|
|
@@ -1336,9 +1346,8 @@ user-defined Kernels are summarised here. All argument types
|
|
|
1336
1346
|
``GH_COLUMNWISE_OPERATOR``) may be read within a Kernel and this
|
|
1337
1347
|
is specified in metadata using ``GH_READ``. At least one kernel
|
|
1338
1348
|
argument must be listed as being modified. When data is *modified*
|
|
1339
|
-
in a user-supplied Kernel
|
|
1340
|
-
|
|
1341
|
-
<lfric-operates-on>`) then the permitted access
|
|
1349
|
+
in a user-supplied Kernel that operates on cell columns (see
|
|
1350
|
+
:ref:`iteration space metadata <lfric-operates-on>`) then the permitted access
|
|
1342
1351
|
modes depend upon the argument type and the function space it is on:
|
|
1343
1352
|
|
|
1344
1353
|
.. tabularcolumns:: |l|l|l|
|
|
@@ -1365,9 +1374,9 @@ modes depend upon the argument type and the function space it is on:
|
|
|
1365
1374
|
|
|
1366
1375
|
Note that scalar arguments to user-defined Kernels must be read-only.
|
|
1367
1376
|
Only :ref:`Built-ins <lfric-built-ins>` are permitted to modify scalar
|
|
1368
|
-
arguments. In practice this means that the only allowed access for
|
|
1369
|
-
in user-defined Kernels is ``GH_READ`` (see the allowed accesses for
|
|
1370
|
-
in Built-ins in the :ref:`section below <lfric-built-ins-dtype-access>`).
|
|
1377
|
+
arguments. In practice this means that the only allowed access for scalar
|
|
1378
|
+
arguments in user-defined Kernels is ``GH_READ`` (see the allowed accesses for
|
|
1379
|
+
arguments in Built-ins in the :ref:`section below <lfric-built-ins-dtype-access>`).
|
|
1371
1380
|
|
|
1372
1381
|
Note also that a ``GH_FIELD`` argument that has ``GH_WRITE`` or
|
|
1373
1382
|
``GH_READWRITE`` as its access pattern must typically (see below) be
|
|
@@ -1955,21 +1964,49 @@ is supplied with the specified data for each field/operator argument.
|
|
|
1955
1964
|
The possible values for ``OPERATES_ON`` and their interpretation are
|
|
1956
1965
|
summarised in the following table:
|
|
1957
1966
|
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
``
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
1967
|
+
.. tabularcolumns:: |p{4.5cm}|p{3.0cm}|p{6.5cm}|
|
|
1968
|
+
|
|
1969
|
+
+--------------------------------+--------------------------------------+--------------------------------------------+
|
|
1970
|
+
| operates_on | Data passed for each field/operator | Iteration space |
|
|
1971
|
+
| | argument | |
|
|
1972
|
+
+================================+======================================+============================================+
|
|
1973
|
+
| ``cell_column`` | Single column of cells. | Conceptually, all columns in the global |
|
|
1974
|
+
| | | mesh. For each MPI |
|
|
1975
|
+
| | | process this will operate on all owned |
|
|
1976
|
+
| | | columns and may be extended into the halo |
|
|
1977
|
+
| | | to perform redundant computation. |
|
|
1978
|
+
+--------------------------------+--------------------------------------+--------------------------------------------+
|
|
1979
|
+
| ``owned_cell_column`` | Single column of cells. | Restricted to owned columns. Prevents |
|
|
1980
|
+
| | | extending into the halos to perform |
|
|
1981
|
+
| | | redundant computation. |
|
|
1982
|
+
+--------------------------------+--------------------------------------+--------------------------------------------+
|
|
1983
|
+
| ``halo_cell_column`` | Single column of cells. | Restricted to columns from the halo region |
|
|
1984
|
+
| | | (to a specified depth). |
|
|
1985
|
+
+--------------------------------+--------------------------------------+--------------------------------------------+
|
|
1986
|
+
| ``owned_and_halo_cell_column`` | Single column of cells. | Iteration space must include both owned |
|
|
1987
|
+
| | | and halo columns (to a specified depth). |
|
|
1988
|
+
+--------------------------------+--------------------------------------+--------------------------------------------+
|
|
1989
|
+
| ``dof`` | Single DoF. | Defaults to owned DoFs but may be extended |
|
|
1990
|
+
| | | to annexed and halo DoFs. |
|
|
1991
|
+
+--------------------------------+--------------------------------------+--------------------------------------------+
|
|
1992
|
+
| ``owned_dof`` | Single DoF. | Restricted to owned DoFs only. Prevents |
|
|
1993
|
+
| | | extending into the halos to perform |
|
|
1994
|
+
| | | redundant computation. |
|
|
1995
|
+
+--------------------------------+--------------------------------------+--------------------------------------------+
|
|
1996
|
+
| ``domain`` | All columns of cells in the (sub-) | None. |
|
|
1997
|
+
| | domain. | |
|
|
1998
|
+
+--------------------------------+--------------------------------------+--------------------------------------------+
|
|
1999
|
+
|
|
2000
|
+
(For a description of the concepts of 'owned' and 'halo' cells and 'annexed' DoFs
|
|
2001
|
+
please see the :ref:`LFRic section <lfric-developers>` of the Developer Guide.)
|
|
2002
|
+
|
|
2003
|
+
The ``owned_cell_column`` and ``owned_dof`` values of ``OPERATES_ON`` are intended for
|
|
2004
|
+
use only with special cases where the kernel concerned cannot be used to perform
|
|
2005
|
+
redundant computation (e.g. when filling a field with pseudo-random numbers without
|
|
2006
|
+
regard to cell location). Processing an application that makes use of such a kernel
|
|
2007
|
+
requires that the ``COMPUTE_ANNEXED_DOFS`` configuration option (see
|
|
2008
|
+
:ref:`lfric-annexed_dofs`) be set to ``False`` as PSyclone can no longer guarantee that
|
|
2009
|
+
annexed DoFs are always clean between different ``invoke`` calls.
|
|
1973
2010
|
|
|
1974
2011
|
procedure
|
|
1975
2012
|
#########
|
|
@@ -3242,6 +3279,12 @@ pseudo-random numbers in the interval ``0 <= x < 1``::
|
|
|
3242
3279
|
where ``RAND()`` is some function that returns a new pseudo-random number
|
|
3243
3280
|
each time it is called.
|
|
3244
3281
|
|
|
3282
|
+
Due to different parallel elements using independent random-number generator
|
|
3283
|
+
streams, this built-in has ``OPERATES_ON=owned_dof``. This will prevent
|
|
3284
|
+
optimisations such as redundant computation (including the global
|
|
3285
|
+
``COMPUTE_ANNEXED_DOFS`` option).
|
|
3286
|
+
|
|
3287
|
+
|
|
3245
3288
|
.. warning:: This Built-in is implemented using the Fortran ``random_number``
|
|
3246
3289
|
intrinsic. Therefore no guarantee is made as to the quality of
|
|
3247
3290
|
the sequence of pseudo-random numbers, especially when running
|
|
@@ -51,63 +51,77 @@ by the command:
|
|
|
51
51
|
.. parsed-literal::
|
|
52
52
|
|
|
53
53
|
> psyclone -h
|
|
54
|
-
usage: psyclone [-h] [-v] [-c CONFIG] [-s SCRIPT] [-
|
|
55
|
-
[
|
|
56
|
-
[
|
|
57
|
-
[
|
|
58
|
-
[
|
|
54
|
+
usage: psyclone [-h] [-v] [-c CONFIG] [-s SCRIPT] [--enable-cache] [-l {off,all,output}]
|
|
55
|
+
[-p {invokes,routines,kernels}]
|
|
56
|
+
[--backend {disable-validation,disable-indentation}] [-o OUTPUT_FILE]
|
|
57
|
+
[-api DSL] [-oalg OUTPUT_ALGORITHM_FILE] [-opsy OUTPUT_PSY_FILE]
|
|
58
|
+
[-okern OUTPUT_KERNEL_PATH] [-dm] [-nodm]
|
|
59
|
+
[--kernel-renaming {multiple,single}]
|
|
60
|
+
[--log-level {OFF,DEBUG,INFO,WARNING,ERROR,CRITICAL}] [--log-file LOG_FILE]
|
|
61
|
+
[--keep-comments] [--keep-directives] [-I INCLUDE] [-d DIRECTORY]
|
|
62
|
+
[--modman-file-ignore IGNORE_PATTERN] [--free-form | --fixed-form]
|
|
59
63
|
filename
|
|
60
64
|
|
|
61
65
|
Transform a file using the PSyclone source-to-source Fortran compiler
|
|
62
|
-
|
|
66
|
+
|
|
63
67
|
positional arguments:
|
|
64
68
|
filename input source code
|
|
65
|
-
|
|
69
|
+
|
|
66
70
|
options:
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
71
|
+
-h, --help show this help message and exit
|
|
72
|
+
-v, --version display version information
|
|
73
|
+
-c CONFIG, --config CONFIG
|
|
74
|
+
config file with PSyclone specific options
|
|
75
|
+
-s SCRIPT, --script SCRIPT
|
|
76
|
+
filename of a PSyclone optimisation recipe
|
|
77
|
+
--enable-cache whether to enable caching of imported module dependencies (if
|
|
78
|
+
enabled, it will generate a .psycache file of each imported module in
|
|
79
|
+
the same location as the imported source file).
|
|
80
|
+
-l {off,all,output}, --limit {off,all,output}
|
|
81
|
+
limit the Fortran line length to 132 characters (default 'off'). Use
|
|
82
|
+
'all' to apply limit to both input and output Fortran. Use 'output'
|
|
83
|
+
to apply line-length limit to output Fortran only.
|
|
84
|
+
-p {invokes,routines,kernels}, --profile {invokes,routines,kernels}
|
|
85
|
+
add profiling hooks for 'kernels', 'invokes' or 'routines'
|
|
86
|
+
--backend {disable-validation,disable-indentation}
|
|
87
|
+
options to control the PSyIR backend used for code generation. Use
|
|
88
|
+
'disable-validation' to disable the validation checks that are
|
|
89
|
+
performed by default. Use 'disable-indentation' to turn off all
|
|
90
|
+
indentation in the generated code.
|
|
91
|
+
-o OUTPUT_FILE (code-transformation mode) output file
|
|
92
|
+
-api DSL, --psykal-dsl DSL
|
|
93
|
+
whether to use a PSyKAl DSL (one of ['lfric', 'gocean'])
|
|
94
|
+
-oalg OUTPUT_ALGORITHM_FILE
|
|
95
|
+
(psykal mode) filename of transformed algorithm code
|
|
96
|
+
-opsy OUTPUT_PSY_FILE
|
|
97
|
+
(psykal mode) filename of generated PSy-layer code
|
|
98
|
+
-okern OUTPUT_KERNEL_PATH
|
|
99
|
+
(psykal mode) directory in which to put transformed kernels, default
|
|
100
|
+
is the current working directory
|
|
101
|
+
-dm, --dist_mem (psykal mode) generate distributed memory code
|
|
102
|
+
-nodm, --no_dist_mem (psykal mode) do not generate distributed memory code
|
|
103
|
+
--kernel-renaming {multiple,single}
|
|
104
|
+
(psykal mode) naming scheme to use when re-naming transformed kernels
|
|
105
|
+
--log-level {OFF,DEBUG,INFO,WARNING,ERROR,CRITICAL}
|
|
106
|
+
sets the level of the logging (defaults to OFF).
|
|
107
|
+
--log-file LOG_FILE sets the output file to use for logging (defaults to stderr).
|
|
108
|
+
--keep-comments keeps comments from the original code (defaults to False). Directives
|
|
109
|
+
are not kept with this option (use --keep-directives).
|
|
110
|
+
--keep-directives keeps directives from the original code (defaults to False).
|
|
111
|
+
--free-form forces PSyclone to parse this file as free format (default is to look
|
|
112
|
+
at the input file extension).
|
|
113
|
+
--fixed-form forces PSyclone to parse this file as fixed format (default is to
|
|
114
|
+
look at the input file extension).
|
|
115
|
+
|
|
116
|
+
Directory management:
|
|
117
|
+
-I INCLUDE, --include INCLUDE
|
|
118
|
+
path to Fortran INCLUDE or module files
|
|
119
|
+
-d DIRECTORY, --directory DIRECTORY
|
|
120
|
+
(psykal mode) path to a root directory structure containing kernel
|
|
121
|
+
source code. Multiple roots can be specified by using multiple -d
|
|
122
|
+
arguments. These directories will be searchedrecursively.
|
|
123
|
+
--modman-file-ignore IGNORE_PATTERN
|
|
124
|
+
Ignore files that contain the specified pattern.
|
|
111
125
|
|
|
112
126
|
Basic Use
|
|
113
127
|
---------
|
|
@@ -238,6 +252,29 @@ Finally, if all else fails, the code-generation part of PSyclone (the
|
|
|
238
252
|
"backend") can be instructed not to use any indentation at all. See the
|
|
239
253
|
:ref:`backend-options` section.
|
|
240
254
|
|
|
255
|
+
|
|
256
|
+
.. _fortran_source_format:
|
|
257
|
+
|
|
258
|
+
Fortran Format Option
|
|
259
|
+
---------------------
|
|
260
|
+
|
|
261
|
+
PSyclone supports both free and fixed format source input. By default,
|
|
262
|
+
PSyclone follows the gfortran specification for file extensions:
|
|
263
|
+
|
|
264
|
+
- Free format extensions: .f90, .f95, .f03, .f08, .F90, .F95, .F03, .F08
|
|
265
|
+
- Fixed format extensions: .f, .for, .fpp, .ftn, .F, .FOR, .FPP, .FTN
|
|
266
|
+
|
|
267
|
+
PSyclone also recognises the following extensions as free format to support
|
|
268
|
+
current uses cases: .x90, .xu90
|
|
269
|
+
|
|
270
|
+
PSyclone also provides the ``--free-form`` and ``-fixed-form`` to override the
|
|
271
|
+
default behaviour, and will use the specified option over the file extension.
|
|
272
|
+
|
|
273
|
+
If the file extension is not one of the ones listed above, and neither of the
|
|
274
|
+
``--free-form`` or ``--fixed-form`` flags is used then PSyclone defaults to
|
|
275
|
+
assuming the input source is free form Fortran.
|
|
276
|
+
|
|
277
|
+
|
|
241
278
|
.. _backend-options:
|
|
242
279
|
|
|
243
280
|
Backend Options
|