PSyclone 3.2.2rc2__tar.gz → 3.3.0__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.3.0/LICENSE +29 -0
- psyclone-3.3.0/MANIFEST.in +37 -0
- psyclone-3.3.0/PKG-INFO +144 -0
- psyclone-3.3.0/README.md +94 -0
- psyclone-3.3.0/bin/psyad +46 -0
- psyclone-3.3.0/bin/psyclone +42 -0
- psyclone-3.3.0/bin/psyclone-kern +46 -0
- psyclone-3.3.0/bin/psyclonefc +45 -0
- psyclone-3.3.0/config/psyclone.cfg +155 -0
- psyclone-3.3.0/examples/Makefile +46 -0
- psyclone-3.3.0/examples/common.mk +103 -0
- psyclone-3.3.0/examples/gocean/Makefile +39 -0
- psyclone-3.3.0/examples/gocean/README.md +101 -0
- psyclone-3.3.0/examples/gocean/eg1/Makefile +113 -0
- psyclone-3.3.0/examples/gocean/eg1/README.md +74 -0
- psyclone-3.3.0/examples/gocean/eg1/fuse_and_insert_openacc.py +81 -0
- psyclone-3.3.0/examples/gocean/eg1/fuse_and_insert_openmp.py +72 -0
- psyclone-3.3.0/examples/gocean/eg1/fuse_loops.py +69 -0
- psyclone-3.3.0/examples/gocean/eg1/generate_dag.py +59 -0
- psyclone-3.3.0/examples/gocean/eg1/opencl_transformation.py +81 -0
- psyclone-3.3.0/examples/gocean/eg1/openmp_taskloop_trans.py +71 -0
- psyclone-3.3.0/examples/gocean/eg1/print_schedule.py +54 -0
- psyclone-3.3.0/examples/gocean/eg1/shallow_alg.f90 +251 -0
- psyclone-3.3.0/examples/gocean/eg2/Makefile +123 -0
- psyclone-3.3.0/examples/gocean/eg2/README.md +106 -0
- psyclone-3.3.0/examples/gocean/eg2/acc_prof_transform.py +63 -0
- psyclone-3.3.0/examples/gocean/eg2/acc_transform.py +85 -0
- psyclone-3.3.0/examples/gocean/eg2/alg.f90 +99 -0
- psyclone-3.3.0/examples/gocean/eg2/inc_field_mod.f90 +79 -0
- psyclone-3.3.0/examples/gocean/eg3/Makefile +113 -0
- psyclone-3.3.0/examples/gocean/eg3/README.md +133 -0
- psyclone-3.3.0/examples/gocean/eg3/alg.f90 +103 -0
- psyclone-3.3.0/examples/gocean/eg3/compute_cu_mod.f90 +89 -0
- psyclone-3.3.0/examples/gocean/eg3/compute_cv_mod.f90 +85 -0
- psyclone-3.3.0/examples/gocean/eg3/compute_h_mod.f90 +85 -0
- psyclone-3.3.0/examples/gocean/eg3/compute_z_mod.f90 +103 -0
- psyclone-3.3.0/examples/gocean/eg3/ocl_trans.py +81 -0
- psyclone-3.3.0/examples/gocean/eg4/Makefile +102 -0
- psyclone-3.3.0/examples/gocean/eg4/README.md +143 -0
- psyclone-3.3.0/examples/gocean/eg4/acc_transform.py +84 -0
- psyclone-3.3.0/examples/gocean/eg4/alg_kern_use_var.f90 +82 -0
- psyclone-3.3.0/examples/gocean/eg4/alg_nested_use.f90 +50 -0
- psyclone-3.3.0/examples/gocean/eg4/another_mod.f90 +47 -0
- psyclone-3.3.0/examples/gocean/eg4/data_mod.f90 +52 -0
- psyclone-3.3.0/examples/gocean/eg4/kern_call_kern_mod.f90 +62 -0
- psyclone-3.3.0/examples/gocean/eg4/kern_nested_use_mod.f90 +59 -0
- psyclone-3.3.0/examples/gocean/eg4/kern_use_var_mod.f90 +66 -0
- psyclone-3.3.0/examples/gocean/eg4/ocl_transform.py +74 -0
- psyclone-3.3.0/examples/gocean/eg5/Makefile +38 -0
- psyclone-3.3.0/examples/gocean/eg5/README.md +49 -0
- psyclone-3.3.0/examples/gocean/eg5/extract/Makefile +183 -0
- psyclone-3.3.0/examples/gocean/eg5/extract/README.md +141 -0
- psyclone-3.3.0/examples/gocean/eg5/extract/extract_transform.py +68 -0
- psyclone-3.3.0/examples/gocean/eg5/extract/init_field_mod.f90 +72 -0
- psyclone-3.3.0/examples/gocean/eg5/extract/update_field_mod.f90 +85 -0
- psyclone-3.3.0/examples/gocean/eg5/profile/Makefile +187 -0
- psyclone-3.3.0/examples/gocean/eg5/profile/README.md +148 -0
- psyclone-3.3.0/examples/gocean/eg5/profile/init_field_mod.f90 +72 -0
- psyclone-3.3.0/examples/gocean/eg5/profile/test.x90 +83 -0
- psyclone-3.3.0/examples/gocean/eg5/profile/update_field_mod.f90 +76 -0
- psyclone-3.3.0/examples/gocean/eg5/readonly/Makefile +113 -0
- psyclone-3.3.0/examples/gocean/eg5/readonly/README.md +93 -0
- psyclone-3.3.0/examples/gocean/eg5/readonly/init_field_mod.f90 +81 -0
- psyclone-3.3.0/examples/gocean/eg5/readonly/read_only_transform.py +68 -0
- psyclone-3.3.0/examples/gocean/eg5/readonly/test.x90 +90 -0
- psyclone-3.3.0/examples/gocean/eg5/readonly/update_field_mod.f90 +105 -0
- psyclone-3.3.0/examples/gocean/eg5/value_range_check/Makefile +120 -0
- psyclone-3.3.0/examples/gocean/eg5/value_range_check/README.md +97 -0
- psyclone-3.3.0/examples/gocean/eg5/value_range_check/init_field_mod.f90 +76 -0
- psyclone-3.3.0/examples/gocean/eg5/value_range_check/test.x90 +82 -0
- psyclone-3.3.0/examples/gocean/eg5/value_range_check/update_field_mod.f90 +81 -0
- psyclone-3.3.0/examples/gocean/eg5/value_range_check/value_range_check_transformation.py +68 -0
- psyclone-3.3.0/examples/gocean/eg6/Makefile +45 -0
- psyclone-3.3.0/examples/gocean/eg6/alg.f90 +96 -0
- psyclone-3.3.0/examples/gocean/eg6/backends_transform.py +75 -0
- psyclone-3.3.0/examples/gocean/eg6/inc_field_mod.f90 +84 -0
- psyclone-3.3.0/examples/gocean/eg7/Makefile +46 -0
- psyclone-3.3.0/examples/gocean/eg7/alg.f90 +96 -0
- psyclone-3.3.0/examples/gocean/eg7/alg_transform.py +52 -0
- psyclone-3.3.0/examples/gocean/eg7/inc_field_mod.f90 +84 -0
- psyclone-3.3.0/examples/lfric/Makefile +38 -0
- psyclone-3.3.0/examples/lfric/code/dg_matrix_vector_kernel_mod.F90 +136 -0
- psyclone-3.3.0/examples/lfric/code/gw_mixed_schur_preconditioner_alg_mod.x90 +247 -0
- psyclone-3.3.0/examples/lfric/code/matrix_vector_kernel_mod.F90 +130 -0
- psyclone-3.3.0/examples/lfric/code/testkern_mod.F90 +82 -0
- psyclone-3.3.0/examples/lfric/code/testkern_write_any_mod.f90 +82 -0
- psyclone-3.3.0/examples/lfric/eg1/Makefile +53 -0
- psyclone-3.3.0/examples/lfric/eg1/single_invoke.x90 +53 -0
- psyclone-3.3.0/examples/lfric/eg10/Makefile +68 -0
- psyclone-3.3.0/examples/lfric/eg10/intergrid_3levels.x90 +52 -0
- psyclone-3.3.0/examples/lfric/eg10/prolong_kernel_mod.F90 +141 -0
- psyclone-3.3.0/examples/lfric/eg10/restrict_kernel_mod.F90 +145 -0
- psyclone-3.3.0/examples/lfric/eg11/Makefile +83 -0
- psyclone-3.3.0/examples/lfric/eg11/async_script.py +84 -0
- psyclone-3.3.0/examples/lfric/eg11/driver.f90 +41 -0
- psyclone-3.3.0/examples/lfric/eg11/helmholtz_solver_alg_mod.x90 +67 -0
- psyclone-3.3.0/examples/lfric/eg11/scaled_matrix_vector_kernel_mod.F90 +213 -0
- psyclone-3.3.0/examples/lfric/eg12/Makefile +57 -0
- psyclone-3.3.0/examples/lfric/eg12/colouring_and_omp.py +78 -0
- psyclone-3.3.0/examples/lfric/eg12/extract_kernel_with_transformations.py +110 -0
- psyclone-3.3.0/examples/lfric/eg12/extract_nodes.py +91 -0
- psyclone-3.3.0/examples/lfric/eg12/find_kernel.py +137 -0
- psyclone-3.3.0/examples/lfric/eg13/Makefile +51 -0
- psyclone-3.3.0/examples/lfric/eg13/kernel_constants.py +95 -0
- psyclone-3.3.0/examples/lfric/eg14/Makefile +112 -0
- psyclone-3.3.0/examples/lfric/eg14/README.md +47 -0
- psyclone-3.3.0/examples/lfric/eg14/acc_parallel.py +93 -0
- psyclone-3.3.0/examples/lfric/eg14/main.x90 +150 -0
- psyclone-3.3.0/examples/lfric/eg14/other_alg_mod.x90 +53 -0
- psyclone-3.3.0/examples/lfric/eg14/testkern_w0_kernel_mod.f90 +82 -0
- psyclone-3.3.0/examples/lfric/eg15/Makefile +48 -0
- psyclone-3.3.0/examples/lfric/eg15/matvec_opt.py +113 -0
- psyclone-3.3.0/examples/lfric/eg16/Makefile +44 -0
- psyclone-3.3.0/examples/lfric/eg16/README.md +51 -0
- psyclone-3.3.0/examples/lfric/eg16/create.py +142 -0
- psyclone-3.3.0/examples/lfric/eg17/Makefile +41 -0
- psyclone-3.3.0/examples/lfric/eg17/README.md +59 -0
- psyclone-3.3.0/examples/lfric/eg17/full_example/Makefile +85 -0
- psyclone-3.3.0/examples/lfric/eg17/full_example/README.md +85 -0
- psyclone-3.3.0/examples/lfric/eg17/full_example/main.x90 +128 -0
- psyclone-3.3.0/examples/lfric/eg17/full_example/testkern_w0_kernel_mod.f90 +82 -0
- psyclone-3.3.0/examples/lfric/eg17/full_example_extract/Makefile +156 -0
- psyclone-3.3.0/examples/lfric/eg17/full_example_extract/README.md +108 -0
- psyclone-3.3.0/examples/lfric/eg17/full_example_extract/dummy_mod.f90 +67 -0
- psyclone-3.3.0/examples/lfric/eg17/full_example_extract/extract_transform.py +70 -0
- psyclone-3.3.0/examples/lfric/eg17/full_example_extract/main.X90 +172 -0
- psyclone-3.3.0/examples/lfric/eg17/full_example_extract/testkern_w0_kernel_mod.f90 +109 -0
- psyclone-3.3.0/examples/lfric/eg17/full_example_netcdf/Makefile +89 -0
- psyclone-3.3.0/examples/lfric/eg17/full_example_netcdf/README.md +88 -0
- psyclone-3.3.0/examples/lfric/eg17/full_example_netcdf/main.x90 +136 -0
- psyclone-3.3.0/examples/lfric/eg17/full_example_netcdf/testkern_w0_kernel_mod.f90 +82 -0
- psyclone-3.3.0/examples/lfric/eg17/value_range_check/Makefile +107 -0
- psyclone-3.3.0/examples/lfric/eg17/value_range_check/README.md +45 -0
- psyclone-3.3.0/examples/lfric/eg17/value_range_check/main.x90 +135 -0
- psyclone-3.3.0/examples/lfric/eg17/value_range_check/testkern_w0_kernel_mod.f90 +86 -0
- psyclone-3.3.0/examples/lfric/eg17/value_range_check/value_range_check_transformation.py +61 -0
- psyclone-3.3.0/examples/lfric/eg18/Makefile +49 -0
- psyclone-3.3.0/examples/lfric/eg18/advection_alg_mod.x90 +71 -0
- psyclone-3.3.0/examples/lfric/eg18/impose_min_flux_kernel_mod.f90 +181 -0
- psyclone-3.3.0/examples/lfric/eg19/Makefile +75 -0
- psyclone-3.3.0/examples/lfric/eg19/algorithm.x90 +70 -0
- psyclone-3.3.0/examples/lfric/eg19/mixed_kernel_mod.f90 +113 -0
- psyclone-3.3.0/examples/lfric/eg2/Makefile +65 -0
- psyclone-3.3.0/examples/lfric/eg2/loop_fuse_trans.py +66 -0
- psyclone-3.3.0/examples/lfric/eg2/module_inline_trans.py +58 -0
- psyclone-3.3.0/examples/lfric/eg2/multi_invoke_mod.x90 +60 -0
- psyclone-3.3.0/examples/lfric/eg2/print_psyir_trans.py +56 -0
- psyclone-3.3.0/examples/lfric/eg20/Makefile +68 -0
- psyclone-3.3.0/examples/lfric/eg3/Makefile +53 -0
- psyclone-3.3.0/examples/lfric/eg3/colouring_and_omp.py +79 -0
- psyclone-3.3.0/examples/lfric/eg3/matrix_vector_mm_kernel_mod.F90 +128 -0
- psyclone-3.3.0/examples/lfric/eg3/solver_mod.x90 +796 -0
- psyclone-3.3.0/examples/lfric/eg3/w3_solver_kernel_mod.F90 +206 -0
- psyclone-3.3.0/examples/lfric/eg4/Makefile +56 -0
- psyclone-3.3.0/examples/lfric/eg4/backends_transform.py +79 -0
- psyclone-3.3.0/examples/lfric/eg4/enforce_bc_kernel_mod.f90 +120 -0
- psyclone-3.3.0/examples/lfric/eg4/matrix_vector_kernel_mod.F90 +130 -0
- psyclone-3.3.0/examples/lfric/eg4/mm_diagonal_kernel_mod.F90 +120 -0
- psyclone-3.3.0/examples/lfric/eg4/solver_mod.x90 +154 -0
- psyclone-3.3.0/examples/lfric/eg5/Makefile +46 -0
- psyclone-3.3.0/examples/lfric/eg5/alg.f90 +107 -0
- psyclone-3.3.0/examples/lfric/eg5/conservative_flux_kernel_mod.F90 +264 -0
- psyclone-3.3.0/examples/lfric/eg5/subgrid_coeffs_kernel_mod.F90 +221 -0
- psyclone-3.3.0/examples/lfric/eg6/Makefile +64 -0
- psyclone-3.3.0/examples/lfric/eg6/alg.x90 +66 -0
- psyclone-3.3.0/examples/lfric/eg6/omp_reprod_script.py +85 -0
- psyclone-3.3.0/examples/lfric/eg6/omp_script.py +79 -0
- psyclone-3.3.0/examples/lfric/eg7/Makefile +46 -0
- psyclone-3.3.0/examples/lfric/eg7/alg.x90 +94 -0
- psyclone-3.3.0/examples/lfric/eg7/columnwise_op_app_kernel_mod.F90 +157 -0
- psyclone-3.3.0/examples/lfric/eg7/columnwise_op_asm_kernel_mod.F90 +161 -0
- psyclone-3.3.0/examples/lfric/eg7/columnwise_op_mul_kernel_mod.F90 +180 -0
- psyclone-3.3.0/examples/lfric/eg7/matrix_vector_kernel_mod.F90 +130 -0
- psyclone-3.3.0/examples/lfric/eg8/Makefile +53 -0
- psyclone-3.3.0/examples/lfric/eg8/apply_variable_hx_kernel_mod.F90 +364 -0
- psyclone-3.3.0/examples/lfric/eg8/enforce_bc_kernel_mod.F90 +120 -0
- psyclone-3.3.0/examples/lfric/eg8/helmholtz_solver_alg_mod.x90 +88 -0
- psyclone-3.3.0/examples/lfric/eg8/redundant_script.py +73 -0
- psyclone-3.3.0/examples/lfric/eg8/scaled_matrix_vector_kernel_mod.F90 +136 -0
- psyclone-3.3.0/examples/lfric/eg9/Makefile +53 -0
- psyclone-3.3.0/examples/lfric/eg9/advective_inc_alg_mod.x90 +138 -0
- psyclone-3.3.0/examples/lfric/eg9/colouring_and_omp.py +79 -0
- psyclone-3.3.0/examples/lfric/eg9/matrix_vector_kernel_mod.F90 +130 -0
- psyclone-3.3.0/examples/lfric/eg9/rtheta_bd_kernel_mod.F90 +297 -0
- psyclone-3.3.0/examples/lfric/eg9/rtheta_kernel_mod.F90 +179 -0
- psyclone-3.3.0/examples/lfric/eg9/rtheta_wtheta_kernel_mod.F90 +198 -0
- psyclone-3.3.0/examples/lfric/eg9/sample_poly_adv_kernel_mod.F90 +499 -0
- psyclone-3.3.0/examples/lfric/lfric_common.mk +59 -0
- psyclone-3.3.0/examples/lfric/scripts/Makefile +57 -0
- psyclone-3.3.0/examples/lfric/scripts/async_halo_exchanges.py +79 -0
- psyclone-3.3.0/examples/lfric/scripts/colouring_and_omp.py +78 -0
- psyclone-3.3.0/examples/lfric/scripts/compare_output.py +82 -0
- psyclone-3.3.0/examples/lfric/scripts/does_nothing.py +49 -0
- psyclone-3.3.0/examples/lfric/scripts/everything_everywhere_all_at_once.py +141 -0
- psyclone-3.3.0/examples/lfric/scripts/extract_script.py +57 -0
- psyclone-3.3.0/examples/lfric/scripts/gpu_offloading.py +250 -0
- psyclone-3.3.0/examples/lfric/scripts/inline_kernels_and_intrinsics.py +79 -0
- psyclone-3.3.0/examples/lfric/scripts/kernel_print.py +65 -0
- psyclone-3.3.0/examples/lfric/scripts/loop_fuse.py +74 -0
- psyclone-3.3.0/examples/lfric/scripts/redundant_dofs.py +74 -0
- psyclone-3.3.0/examples/lfric/scripts/redundant_setval_c.py +81 -0
- psyclone-3.3.0/examples/lfric/scripts/tiledcolouring_and_omp.py +75 -0
- psyclone-3.3.0/examples/nemo/Makefile +38 -0
- psyclone-3.3.0/examples/nemo/README.md +113 -0
- psyclone-3.3.0/examples/nemo/code/traldf_iso.F90 +385 -0
- psyclone-3.3.0/examples/nemo/eg1/Makefile +50 -0
- psyclone-3.3.0/examples/nemo/eg1/README.md +67 -0
- psyclone-3.3.0/examples/nemo/eg1/openmp_cpu_levels_trans.py +69 -0
- psyclone-3.3.0/examples/nemo/eg1/openmp_gpu_levels_trans.py +83 -0
- psyclone-3.3.0/examples/nemo/eg2/Makefile +54 -0
- psyclone-3.3.0/examples/nemo/eg2/README.md +63 -0
- psyclone-3.3.0/examples/nemo/eg2/omp_levels_trans.py +79 -0
- psyclone-3.3.0/examples/nemo/eg3/Makefile +84 -0
- psyclone-3.3.0/examples/nemo/eg3/README.md +106 -0
- psyclone-3.3.0/examples/nemo/eg3/kernel_utils.py +139 -0
- psyclone-3.3.0/examples/nemo/eg3/kernels_trans.py +98 -0
- psyclone-3.3.0/examples/nemo/eg4/Makefile +62 -0
- psyclone-3.3.0/examples/nemo/eg4/README.md +143 -0
- psyclone-3.3.0/examples/nemo/eg4/copy_stencil.f90 +49 -0
- psyclone-3.3.0/examples/nemo/eg4/dawn_script.py +91 -0
- psyclone-3.3.0/examples/nemo/eg4/hori_diff.f90 +50 -0
- psyclone-3.3.0/examples/nemo/eg4/if_example.f90 +63 -0
- psyclone-3.3.0/examples/nemo/eg4/intrinsic_example.f90 +63 -0
- psyclone-3.3.0/examples/nemo/eg4/sir_trans.py +59 -0
- psyclone-3.3.0/examples/nemo/eg4/sir_trans_all.py +121 -0
- psyclone-3.3.0/examples/nemo/eg4/sir_trans_loop.py +95 -0
- psyclone-3.3.0/examples/nemo/eg4/tridiagonal_solve.f90 +67 -0
- psyclone-3.3.0/examples/nemo/eg5/Makefile +116 -0
- psyclone-3.3.0/examples/nemo/eg5/README.md +94 -0
- psyclone-3.3.0/examples/nemo/eg5/extract_kernels.py +99 -0
- psyclone-3.3.0/examples/nemo/eg6/Makefile +86 -0
- psyclone-3.3.0/examples/nemo/eg6/README.md +100 -0
- psyclone-3.3.0/examples/nemo/eg6/dummy.f90 +74 -0
- psyclone-3.3.0/examples/nemo/eg6/read_only_check.py +62 -0
- psyclone-3.3.0/examples/nemo/eg7/Makefile +51 -0
- psyclone-3.3.0/examples/nemo/eg7/README.md +62 -0
- psyclone-3.3.0/examples/nemo/eg7/openmp_cpu_nowait_trans.py +88 -0
- psyclone-3.3.0/examples/nemo/eg7/openmp_gpu_nowait_trans.py +78 -0
- psyclone-3.3.0/examples/nemo/eg8/Makefile +77 -0
- psyclone-3.3.0/examples/nemo/eg8/README.md +91 -0
- psyclone-3.3.0/examples/nemo/eg8/omp_gpu_profile_trans.py +123 -0
- psyclone-3.3.0/examples/nemo/eg9/Makefile +93 -0
- psyclone-3.3.0/examples/nemo/eg9/README.md +81 -0
- psyclone-3.3.0/examples/nemo/eg9/value_range_check_transformation.py +67 -0
- psyclone-3.3.0/examples/nemo/scripts/Makefile +129 -0
- psyclone-3.3.0/examples/nemo/scripts/README.md +232 -0
- psyclone-3.3.0/examples/nemo/scripts/acc_kernels_trans.py +409 -0
- psyclone-3.3.0/examples/nemo/scripts/compare_output.py +99 -0
- psyclone-3.3.0/examples/nemo/scripts/insert_loop_parallelism.py +333 -0
- psyclone-3.3.0/examples/nemo/scripts/passthrough.py +61 -0
- psyclone-3.3.0/examples/nemo/scripts/utils.py +566 -0
- psyclone-3.3.0/examples/psyad/Makefile +39 -0
- psyclone-3.3.0/examples/psyad/README.md +66 -0
- psyclone-3.3.0/examples/psyad/eg1/Makefile +63 -0
- psyclone-3.3.0/examples/psyad/eg1/README.md +76 -0
- psyclone-3.3.0/examples/psyad/eg1/testkern_mod.f90 +75 -0
- psyclone-3.3.0/examples/psyad/eg2/Makefile +100 -0
- psyclone-3.3.0/examples/psyad/eg2/README.md +159 -0
- psyclone-3.3.0/examples/psyad/eg2/tl_hydrostatic_kernel_mod.F90 +270 -0
- psyclone-3.3.0/examples/psyad/lfric/Makefile +52 -0
- psyclone-3.3.0/examples/psyad/lfric/README.md +66 -0
- psyclone-3.3.0/examples/psyad/lfric/adjoint/README.md +61 -0
- psyclone-3.3.0/examples/psyad/lfric/adjoint_partial/README.md +46 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear/Makefile +102 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear/README.md +61 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear/combine_w2_field_kernel_mod.F90 +92 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear/convert_hdiv_field_kernel_mod.F90 +161 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear/dg_inc_matrix_vector_kernel_mod.F90 +140 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear/dg_matrix_vector_kernel_mod.F90 +98 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear/helmholtz_operator_kernel_mod.F90 +537 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear/matrix_vector_kernel_mod.F90 +139 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear/sample_flux_kernel_mod.F90 +111 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear/split_w2_field_kernel_mod.F90 +95 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear/tl_project_eos_pressure_kernel_mod.F90 +239 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear/tracer_viscosity_kernel_mod.F90 +143 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear/transpose_matrix_vector_kernel_mod.F90 +103 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear/w3_advective_update_kernel_mod.F90 +115 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/Makefile +98 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/README.md +56 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/convert_hdiv_field_kernel_mod_tweaked.F90 +166 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/dg_inc_matrix_vector_kernel_mod_tweaked.F90 +147 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/matrix_vector_kernel_mod_tweaked.F90 +146 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/poly1d_reconstruction_kernel_mod_tweaked.F90 +204 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/poly1d_w3_reconstruction_kernel_mod_tweaked.F90 +204 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/poly2d_reconstruction_kernel_mod_tweaked.F90 +180 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/poly2d_w3_reconstruction_kernel_mod_tweaked.F90 +181 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/poly_adv_update_kernel_mod_tweaked.F90 +217 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/tl_calc_exner_pointwise_mod_tweaked.F90 +58 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/tl_kinetic_energy_gradient_kernel_mod_tweaked.F90 +226 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/tl_moist_dyn_gas_kernel_mod_tweaked.F90 +92 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/tl_poly1d_vert_adv_kernel_mod_tweaked.F90 +228 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/tl_poly1d_vert_w3_reconstruction_kernel_mod_tweaked.F90 +228 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/tl_pressure_gradient_bd_kernel_mod_tweaked.F90 +347 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/tl_project_eos_pressure_kernel_mod_tweaked.F90 +254 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/tl_rhs_project_eos_kernel_mod_tweaked.F90 +273 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/tl_sample_eos_pressure_kernel_mod_tweaked.F90 +182 -0
- psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/tl_vorticity_advection_kernel_mod_tweaked.F90 +260 -0
- psyclone-3.3.0/examples/psyir/Makefile +38 -0
- psyclone-3.3.0/examples/psyir/create_and_modify_psyir/Makefile +50 -0
- psyclone-3.3.0/examples/psyir/create_and_modify_psyir/README.md +76 -0
- psyclone-3.3.0/examples/psyir/create_and_modify_psyir/create.py +216 -0
- psyclone-3.3.0/examples/psyir/create_and_modify_psyir/create_structure_types.py +170 -0
- psyclone-3.3.0/examples/psyir/create_and_modify_psyir/modify.py +111 -0
- psyclone-3.3.0/examples/psyir/custom_directives/Makefile +58 -0
- psyclone-3.3.0/examples/psyir/custom_directives/README.md +48 -0
- psyclone-3.3.0/examples/psyir/custom_directives/directive_filtering.F90 +58 -0
- psyclone-3.3.0/examples/psyir/custom_directives/identify_custom_directives.py +56 -0
- psyclone-3.3.0/examples/psyir/matmul/Makefile +72 -0
- psyclone-3.3.0/examples/psyir/matmul/README.md +55 -0
- psyclone-3.3.0/examples/psyir/matmul/matmul.F90 +127 -0
- psyclone-3.3.0/examples/psyir/matmul/omp-tile.py +49 -0
- psyclone-3.3.0/examples/psyir/matmul/omp.py +46 -0
- psyclone-3.3.0/examples/psyir/matmul/tile.py +46 -0
- psyclone-3.3.0/examples/psyir/parallelise_loops/Makefile +47 -0
- psyclone-3.3.0/examples/psyir/parallelise_loops/README.md +44 -0
- psyclone-3.3.0/examples/psyir/parallelise_loops/add_parallelism.py +92 -0
- psyclone-3.3.0/examples/psyir/parallelise_loops/example.f90 +41 -0
- psyclone-3.3.0/examples/psyir/transpose/Makefile +72 -0
- psyclone-3.3.0/examples/psyir/transpose/README.md +55 -0
- psyclone-3.3.0/examples/psyir/transpose/omp-tile.py +48 -0
- psyclone-3.3.0/examples/psyir/transpose/omp.py +46 -0
- psyclone-3.3.0/examples/psyir/transpose/tile.py +46 -0
- psyclone-3.3.0/examples/psyir/transpose/trans.F90 +110 -0
- psyclone-3.3.0/examples/stub_generation/Makefile +45 -0
- psyclone-3.3.0/examples/stub_generation/README.md +28 -0
- psyclone-3.3.0/examples/stub_generation/testkern_stencil_multi_mod.f90 +62 -0
- psyclone-3.3.0/examples/top_level.mk +75 -0
- psyclone-3.3.0/examples/xdsl/Makefile +48 -0
- psyclone-3.3.0/examples/xdsl/README.md +91 -0
- psyclone-3.3.0/examples/xdsl/backend/xdsl.py +915 -0
- psyclone-3.3.0/examples/xdsl/pw_advection/Makefile +48 -0
- psyclone-3.3.0/examples/xdsl/xdsl_backends_transform.py +67 -0
- psyclone-3.3.0/lib/Makefile +82 -0
- psyclone-3.3.0/lib/README.md +180 -0
- psyclone-3.3.0/lib/extract/Makefile +102 -0
- psyclone-3.3.0/lib/extract/README.md +54 -0
- psyclone-3.3.0/lib/extract/ascii/Makefile +105 -0
- psyclone-3.3.0/lib/extract/ascii/dl_esm_inf/Makefile +112 -0
- psyclone-3.3.0/lib/extract/ascii/dl_esm_inf/README.md +144 -0
- psyclone-3.3.0/lib/extract/ascii/dl_esm_inf/kernel_data_ascii.f90 +131 -0
- psyclone-3.3.0/lib/extract/ascii/extract_ascii_base.jinja +276 -0
- psyclone-3.3.0/lib/extract/ascii/generic/Makefile +95 -0
- psyclone-3.3.0/lib/extract/ascii/generic/README.md +103 -0
- psyclone-3.3.0/lib/extract/ascii/generic/kernel_data_ascii.f90 +59 -0
- psyclone-3.3.0/lib/extract/ascii/lfric/Makefile +123 -0
- psyclone-3.3.0/lib/extract/ascii/lfric/README.md +142 -0
- psyclone-3.3.0/lib/extract/ascii/lfric/kernel_data_ascii.jinja +347 -0
- psyclone-3.3.0/lib/extract/ascii/read_kernel_data_mod.jinja +325 -0
- psyclone-3.3.0/lib/extract/binary/Makefile +106 -0
- psyclone-3.3.0/lib/extract/binary/dl_esm_inf/Makefile +112 -0
- psyclone-3.3.0/lib/extract/binary/dl_esm_inf/README.md +139 -0
- psyclone-3.3.0/lib/extract/binary/dl_esm_inf/kernel_data_binary.f90 +131 -0
- psyclone-3.3.0/lib/extract/binary/extract_binary_base.jinja +276 -0
- psyclone-3.3.0/lib/extract/binary/generic/Makefile +95 -0
- psyclone-3.3.0/lib/extract/binary/generic/README.md +103 -0
- psyclone-3.3.0/lib/extract/binary/generic/kernel_data_binary.f90 +59 -0
- psyclone-3.3.0/lib/extract/binary/lfric/Makefile +127 -0
- psyclone-3.3.0/lib/extract/binary/lfric/README.md +145 -0
- psyclone-3.3.0/lib/extract/binary/lfric/compare_variables_mod.F90 +1758 -0
- psyclone-3.3.0/lib/extract/binary/lfric/kernel_data_binary.jinja +347 -0
- psyclone-3.3.0/lib/extract/binary/lfric/read_kernel_data_mod.f90 +2259 -0
- psyclone-3.3.0/lib/extract/binary/read_kernel_data_mod.jinja +325 -0
- psyclone-3.3.0/lib/extract/compare_variables_mod.jinja +321 -0
- psyclone-3.3.0/lib/extract/netcdf/Makefile +108 -0
- psyclone-3.3.0/lib/extract/netcdf/README.md +85 -0
- psyclone-3.3.0/lib/extract/netcdf/dl_esm_inf/Makefile +112 -0
- psyclone-3.3.0/lib/extract/netcdf/dl_esm_inf/README.md +154 -0
- psyclone-3.3.0/lib/extract/netcdf/dl_esm_inf/kernel_data_netcdf.f90 +134 -0
- psyclone-3.3.0/lib/extract/netcdf/extract_netcdf_base.jinja +508 -0
- psyclone-3.3.0/lib/extract/netcdf/generic/Makefile +96 -0
- psyclone-3.3.0/lib/extract/netcdf/generic/README.md +121 -0
- psyclone-3.3.0/lib/extract/netcdf/generic/kernel_data_netcdf.f90 +59 -0
- psyclone-3.3.0/lib/extract/netcdf/lfric/Makefile +128 -0
- psyclone-3.3.0/lib/extract/netcdf/lfric/README.md +158 -0
- psyclone-3.3.0/lib/extract/netcdf/lfric/kernel_data_netcdf.jinja +347 -0
- psyclone-3.3.0/lib/extract/netcdf/read_kernel_data_mod.f90 +3366 -0
- psyclone-3.3.0/lib/extract/netcdf/read_kernel_data_mod.jinja +403 -0
- psyclone-3.3.0/lib/get_python.sh +60 -0
- psyclone-3.3.0/lib/process.py +160 -0
- psyclone-3.3.0/lib/profiling/Makefile +71 -0
- psyclone-3.3.0/lib/profiling/README.md +296 -0
- psyclone-3.3.0/lib/profiling/amd/Makefile +58 -0
- psyclone-3.3.0/lib/profiling/amd/README.md +86 -0
- psyclone-3.3.0/lib/profiling/amd/roctx_prof.f90 +186 -0
- psyclone-3.3.0/lib/profiling/dl_timer/Makefile +80 -0
- psyclone-3.3.0/lib/profiling/dl_timer/README.md +144 -0
- psyclone-3.3.0/lib/profiling/dl_timer/dl_timer.f90 +137 -0
- psyclone-3.3.0/lib/profiling/drhook/Makefile +70 -0
- psyclone-3.3.0/lib/profiling/drhook/README.md +152 -0
- psyclone-3.3.0/lib/profiling/drhook/drhook_psy.f90 +155 -0
- psyclone-3.3.0/lib/profiling/lfric_timer/Makefile +97 -0
- psyclone-3.3.0/lib/profiling/lfric_timer/README.md +147 -0
- psyclone-3.3.0/lib/profiling/lfric_timer/profile_psy_data_mod.F90 +139 -0
- psyclone-3.3.0/lib/profiling/nvidia/Makefile +60 -0
- psyclone-3.3.0/lib/profiling/nvidia/README.md +111 -0
- psyclone-3.3.0/lib/profiling/nvidia/nvtx_prof.f90 +223 -0
- psyclone-3.3.0/lib/profiling/simple_timing/Makefile +72 -0
- psyclone-3.3.0/lib/profiling/simple_timing/README.md +119 -0
- psyclone-3.3.0/lib/profiling/simple_timing/simple_timing.f90 +240 -0
- psyclone-3.3.0/lib/profiling/tau/Makefile +60 -0
- psyclone-3.3.0/lib/profiling/tau/README.md +105 -0
- psyclone-3.3.0/lib/profiling/tau/tau_psy.f90 +139 -0
- psyclone-3.3.0/lib/profiling/template/Makefile +72 -0
- psyclone-3.3.0/lib/profiling/template/README.md +110 -0
- psyclone-3.3.0/lib/profiling/template/dummy_lib.f90 +142 -0
- psyclone-3.3.0/lib/profiling/vernier/Makefile +69 -0
- psyclone-3.3.0/lib/profiling/vernier/README.md +134 -0
- psyclone-3.3.0/lib/profiling/vernier/vernier_psy.f90 +145 -0
- psyclone-3.3.0/lib/psy_data_base.jinja +412 -0
- psyclone-3.3.0/lib/read_only/Makefile +88 -0
- psyclone-3.3.0/lib/read_only/README.md +85 -0
- psyclone-3.3.0/lib/read_only/dl_esm_inf/Makefile +116 -0
- psyclone-3.3.0/lib/read_only/dl_esm_inf/README.md +120 -0
- psyclone-3.3.0/lib/read_only/dl_esm_inf/read_only.f90 +161 -0
- psyclone-3.3.0/lib/read_only/generic/Makefile +103 -0
- psyclone-3.3.0/lib/read_only/generic/README.md +90 -0
- psyclone-3.3.0/lib/read_only/generic/read_only.f90 +63 -0
- psyclone-3.3.0/lib/read_only/lfric/Makefile +124 -0
- psyclone-3.3.0/lib/read_only/lfric/README.md +122 -0
- psyclone-3.3.0/lib/read_only/lfric/read_only.jinja +356 -0
- psyclone-3.3.0/lib/read_only/read_only_base.jinja +469 -0
- psyclone-3.3.0/lib/value_range_check/Makefile +89 -0
- psyclone-3.3.0/lib/value_range_check/README.md +90 -0
- psyclone-3.3.0/lib/value_range_check/dl_esm_inf/Makefile +114 -0
- psyclone-3.3.0/lib/value_range_check/dl_esm_inf/README.md +116 -0
- psyclone-3.3.0/lib/value_range_check/dl_esm_inf/value_range_check.f90 +121 -0
- psyclone-3.3.0/lib/value_range_check/generic/Makefile +100 -0
- psyclone-3.3.0/lib/value_range_check/generic/value_range_check.f90 +58 -0
- psyclone-3.3.0/lib/value_range_check/lfric/Makefile +120 -0
- psyclone-3.3.0/lib/value_range_check/lfric/README.md +123 -0
- psyclone-3.3.0/lib/value_range_check/lfric/value_range_check.jinja +330 -0
- psyclone-3.3.0/lib/value_range_check/value_range_check_base.jinja +637 -0
- psyclone-3.3.0/pyproject.toml +127 -0
- psyclone-3.3.0/setup.cfg +17 -0
- psyclone-3.3.0/setup.py +108 -0
- psyclone-3.3.0/src/PSyclone.egg-info/PKG-INFO +144 -0
- psyclone-3.3.0/src/PSyclone.egg-info/SOURCES.txt +812 -0
- psyclone-3.3.0/src/PSyclone.egg-info/requires.txt +27 -0
- psyclone-3.3.0/src/psyclone/__init__.py +33 -0
- psyclone-3.3.0/src/psyclone/alg_gen.py +319 -0
- psyclone-3.3.0/src/psyclone/configuration.py +1325 -0
- psyclone-3.3.0/src/psyclone/core/__init__.py +55 -0
- psyclone-3.3.0/src/psyclone/core/access_sequence.py +360 -0
- psyclone-3.3.0/src/psyclone/core/access_type.py +145 -0
- psyclone-3.3.0/src/psyclone/core/signature.py +181 -0
- psyclone-3.3.0/src/psyclone/core/symbolic_maths.py +433 -0
- psyclone-3.3.0/src/psyclone/core/variables_access_map.py +189 -0
- psyclone-3.3.0/src/psyclone/docstring_parser.py +603 -0
- psyclone-3.3.0/src/psyclone/domain/common/__init__.py +40 -0
- psyclone-3.3.0/src/psyclone/domain/common/algorithm/__init__.py +49 -0
- psyclone-3.3.0/src/psyclone/domain/common/algorithm/psyir.py +320 -0
- psyclone-3.3.0/src/psyclone/domain/common/driver_creator.py +763 -0
- psyclone-3.3.0/src/psyclone/domain/common/psylayer/__init__.py +40 -0
- psyclone-3.3.0/src/psyclone/domain/common/psylayer/global_reduction.py +116 -0
- psyclone-3.3.0/src/psyclone/domain/common/psylayer/psyloop.py +349 -0
- psyclone-3.3.0/src/psyclone/domain/common/transformations/__init__.py +47 -0
- psyclone-3.3.0/src/psyclone/domain/common/transformations/alg_invoke_2_psy_call_trans.py +255 -0
- psyclone-3.3.0/src/psyclone/domain/common/transformations/alg_trans.py +103 -0
- psyclone-3.3.0/src/psyclone/domain/common/transformations/kernel_module_inline_trans.py +645 -0
- psyclone-3.3.0/src/psyclone/domain/common/transformations/raise_psyir_2_alg_trans.py +199 -0
- psyclone-3.3.0/src/psyclone/domain/gocean/__init__.py +45 -0
- psyclone-3.3.0/src/psyclone/domain/gocean/go_symbol_table.py +137 -0
- psyclone-3.3.0/src/psyclone/domain/gocean/gocean_constants.py +121 -0
- psyclone-3.3.0/src/psyclone/domain/gocean/gocean_driver_creator.py +84 -0
- psyclone-3.3.0/src/psyclone/domain/gocean/kernel/__init__.py +45 -0
- psyclone-3.3.0/src/psyclone/domain/gocean/kernel/psyir.py +1058 -0
- psyclone-3.3.0/src/psyclone/domain/gocean/transformations/__init__.py +55 -0
- psyclone-3.3.0/src/psyclone/domain/gocean/transformations/gocean_alg_invoke_2_psy_call_trans.py +75 -0
- psyclone-3.3.0/src/psyclone/domain/gocean/transformations/gocean_const_loop_bounds_trans.py +265 -0
- psyclone-3.3.0/src/psyclone/domain/gocean/transformations/gocean_extract_trans.py +162 -0
- psyclone-3.3.0/src/psyclone/domain/gocean/transformations/gocean_loop_fuse_trans.py +111 -0
- psyclone-3.3.0/src/psyclone/domain/gocean/transformations/gocean_move_iteration_boundaries_inside_kernel_trans.py +280 -0
- psyclone-3.3.0/src/psyclone/domain/gocean/transformations/gocean_opencl_trans.py +1556 -0
- psyclone-3.3.0/src/psyclone/domain/gocean/transformations/raise_psyir_2_gocean_kern_trans.py +250 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/__init__.py +81 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/algorithm/__init__.py +54 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/algorithm/lfric_alg.py +483 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/algorithm/psyir/__init__.py +48 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/algorithm/psyir/lfric_alg_invoke_call.py +90 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/algorithm/psyir/lfric_kernel_functor.py +222 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/arg_index_to_metadata_index.py +266 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/arg_ordering.py +1000 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/function_space.py +361 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kern_call_acc_arg_list.py +286 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kern_call_arg_list.py +1032 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kern_call_invoke_arg_list.py +378 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kern_stub_arg_list.py +538 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/__init__.py +78 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/columnwise_operator_arg_metadata.py +57 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/common_arg_metadata.py +154 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/common_declaration_metadata.py +516 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/common_meta_arg_metadata.py +249 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/common_metadata.py +162 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/evaluator_targets_metadata.py +124 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/field_arg_metadata.py +207 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/field_vector_arg_metadata.py +144 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/inter_grid_arg_metadata.py +186 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/inter_grid_vector_arg_metadata.py +155 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/lfric_kernel_metadata.py +1197 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/meta_args_metadata.py +170 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/meta_funcs_arg_metadata.py +215 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/meta_funcs_metadata.py +118 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/meta_mesh_arg_metadata.py +100 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/meta_mesh_metadata.py +125 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/meta_ref_element_arg_metadata.py +105 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/meta_ref_element_metadata.py +121 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/operates_on_metadata.py +114 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/operator_arg_metadata.py +175 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/psyir.py +117 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/scalar_arg_metadata.py +130 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/scalar_array_arg_metadata.py +165 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel/shapes_metadata.py +155 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/kernel_interface.py +852 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_arg_descriptor.py +867 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_builtins.py +3509 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_cell_iterators.py +136 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_collection.py +158 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_constants.py +597 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_dofmaps.py +340 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_driver_creator.py +124 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_fields.py +188 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_global_reductions.py +163 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_halo_depths.py +113 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_invoke.py +361 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_invoke_schedule.py +96 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_invokes.py +66 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_kern.py +1132 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_kern_call_factory.py +96 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_kern_metadata.py +771 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_loop.py +1111 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_loop_bounds.py +113 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_psy.py +93 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_run_time_checks.py +304 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_scalar_args.py +238 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_scalar_array_args.py +244 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_stencils.py +671 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/lfric_types.py +646 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/metadata_to_arguments_rules.py +573 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/transformations/__init__.py +47 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/transformations/lfric_alg_invoke_2_psy_call_trans.py +338 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/transformations/lfric_alg_trans.py +52 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/transformations/lfric_extract_trans.py +148 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/transformations/lfric_loop_fuse_trans.py +268 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/transformations/lfric_redundant_computation_trans.py +306 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/transformations/raise_psyir_2_lfric_alg_trans.py +96 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/transformations/raise_psyir_2_lfric_kern_trans.py +238 -0
- psyclone-3.3.0/src/psyclone/domain/lfric/utils.py +102 -0
- psyclone-3.3.0/src/psyclone/errors.py +150 -0
- psyclone-3.3.0/src/psyclone/expression.py +340 -0
- psyclone-3.3.0/src/psyclone/gen_kernel_stub.py +101 -0
- psyclone-3.3.0/src/psyclone/generator.py +981 -0
- psyclone-3.3.0/src/psyclone/gocean1p0.py +2212 -0
- psyclone-3.3.0/src/psyclone/kernel_tools.py +201 -0
- psyclone-3.3.0/src/psyclone/lfric.py +6560 -0
- psyclone-3.3.0/src/psyclone/line_length.py +241 -0
- psyclone-3.3.0/src/psyclone/parse/__init__.py +52 -0
- psyclone-3.3.0/src/psyclone/parse/algorithm.py +1159 -0
- psyclone-3.3.0/src/psyclone/parse/file_info.py +518 -0
- psyclone-3.3.0/src/psyclone/parse/kernel.py +1022 -0
- psyclone-3.3.0/src/psyclone/parse/lfric_builtins_mod.f90 +1292 -0
- psyclone-3.3.0/src/psyclone/parse/module_info.py +338 -0
- psyclone-3.3.0/src/psyclone/parse/module_manager.py +727 -0
- psyclone-3.3.0/src/psyclone/parse/utils.py +137 -0
- psyclone-3.3.0/src/psyclone/profiler.py +196 -0
- psyclone-3.3.0/src/psyclone/psyGen.py +2580 -0
- psyclone-3.3.0/src/psyclone/psyad/__init__.py +41 -0
- psyclone-3.3.0/src/psyclone/psyad/adjoint_visitor.py +466 -0
- psyclone-3.3.0/src/psyclone/psyad/domain/common/__init__.py +42 -0
- psyclone-3.3.0/src/psyclone/psyad/domain/common/adjoint_utils.py +243 -0
- psyclone-3.3.0/src/psyclone/psyad/domain/lfric/__init__.py +42 -0
- psyclone-3.3.0/src/psyclone/psyad/domain/lfric/lfric_adjoint.py +294 -0
- psyclone-3.3.0/src/psyclone/psyad/domain/lfric/lfric_adjoint_harness.py +821 -0
- psyclone-3.3.0/src/psyclone/psyad/main.py +215 -0
- psyclone-3.3.0/src/psyclone/psyad/tl2ad.py +728 -0
- psyclone-3.3.0/src/psyclone/psyad/transformations/__init__.py +39 -0
- psyclone-3.3.0/src/psyclone/psyad/transformations/adjoint_trans.py +90 -0
- psyclone-3.3.0/src/psyclone/psyad/transformations/assignment_trans.py +411 -0
- psyclone-3.3.0/src/psyclone/psyad/transformations/preprocess.py +110 -0
- psyclone-3.3.0/src/psyclone/psyad/transformations/tangent_linear_error.py +60 -0
- psyclone-3.3.0/src/psyclone/psyad/utils.py +144 -0
- psyclone-3.3.0/src/psyclone/psyclonefc_cli.py +162 -0
- psyclone-3.3.0/src/psyclone/psyir/__init__.py +40 -0
- psyclone-3.3.0/src/psyclone/psyir/backend/__init__.py +33 -0
- psyclone-3.3.0/src/psyclone/psyir/backend/c.py +560 -0
- psyclone-3.3.0/src/psyclone/psyir/backend/debug_writer.py +80 -0
- psyclone-3.3.0/src/psyclone/psyir/backend/fortran.py +1922 -0
- psyclone-3.3.0/src/psyclone/psyir/backend/language_writer.py +266 -0
- psyclone-3.3.0/src/psyclone/psyir/backend/opencl.py +257 -0
- psyclone-3.3.0/src/psyclone/psyir/backend/sir.py +571 -0
- psyclone-3.3.0/src/psyclone/psyir/backend/sympy_writer.py +940 -0
- psyclone-3.3.0/src/psyclone/psyir/backend/visitor.py +348 -0
- psyclone-3.3.0/src/psyclone/psyir/commentable_mixin.py +115 -0
- psyclone-3.3.0/src/psyclone/psyir/frontend/__init__.py +33 -0
- psyclone-3.3.0/src/psyclone/psyir/frontend/fortran.py +232 -0
- psyclone-3.3.0/src/psyclone/psyir/frontend/fortran_treesitter_reader.py +283 -0
- psyclone-3.3.0/src/psyclone/psyir/frontend/fparser2.py +6250 -0
- psyclone-3.3.0/src/psyclone/psyir/frontend/sympy_reader.py +277 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/__init__.py +219 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/acc_clauses.py +161 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/acc_directives.py +1113 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/acc_mixins.py +191 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/array_constructor.py +128 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/array_member.py +94 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/array_mixin.py +885 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/array_of_structures_member.py +101 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/array_of_structures_mixin.py +153 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/array_of_structures_reference.py +140 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/array_reference.py +234 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/assignment.py +282 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/atomic_mixin.py +116 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/call.py +942 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/clause.py +75 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/codeblock.py +409 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/container.py +254 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/data_sharing_attribute_mixin.py +356 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/datanode.py +90 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/directive.py +283 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/dynamic_omp_task_directive.py +2163 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/extract_node.py +505 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/file_container.py +102 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/if_block.py +197 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/intrinsic_call.py +5342 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/kernel_schedule.py +53 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/literal.py +239 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/loop.py +556 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/member.py +157 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/node.py +1891 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/omp_clauses.py +579 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/omp_directives.py +2498 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/omp_task_directive.py +183 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/operation.py +471 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/profile_node.py +63 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/psy_data_node.py +737 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/ranges.py +265 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/read_only_verify_node.py +102 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/reference.py +436 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/return_stmt.py +53 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/routine.py +567 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/schedule.py +89 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/scoping_node.py +234 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/statement.py +50 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/structure_accessor_mixin.py +76 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/structure_member.py +119 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/structure_reference.py +384 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/unknown_directive.py +103 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/value_range_check_node.py +104 -0
- psyclone-3.3.0/src/psyclone/psyir/nodes/while_loop.py +156 -0
- psyclone-3.3.0/src/psyclone/psyir/symbols/__init__.py +86 -0
- psyclone-3.3.0/src/psyclone/psyir/symbols/containersymbol.py +267 -0
- psyclone-3.3.0/src/psyclone/psyir/symbols/data_type_symbol.py +161 -0
- psyclone-3.3.0/src/psyclone/psyir/symbols/datasymbol.py +445 -0
- psyclone-3.3.0/src/psyclone/psyir/symbols/datatypes.py +1501 -0
- psyclone-3.3.0/src/psyclone/psyir/symbols/generic_interface_symbol.py +342 -0
- psyclone-3.3.0/src/psyclone/psyir/symbols/interfaces.py +289 -0
- psyclone-3.3.0/src/psyclone/psyir/symbols/intrinsic_symbol.py +91 -0
- psyclone-3.3.0/src/psyclone/psyir/symbols/routinesymbol.py +199 -0
- psyclone-3.3.0/src/psyclone/psyir/symbols/symbol.py +578 -0
- psyclone-3.3.0/src/psyclone/psyir/symbols/symbol_table.py +2277 -0
- psyclone-3.3.0/src/psyclone/psyir/symbols/typed_symbol.py +281 -0
- psyclone-3.3.0/src/psyclone/psyir/tools/__init__.py +53 -0
- psyclone-3.3.0/src/psyclone/psyir/tools/call_tree_utils.py +551 -0
- psyclone-3.3.0/src/psyclone/psyir/tools/definition_use_chains.py +1269 -0
- psyclone-3.3.0/src/psyclone/psyir/tools/dependency_tools.py +1129 -0
- psyclone-3.3.0/src/psyclone/psyir/tools/read_write_info.py +209 -0
- psyclone-3.3.0/src/psyclone/psyir/tools/reduction_inference.py +240 -0
- psyclone-3.3.0/src/psyclone/psyir/tools/type_info_computation.py +164 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/__init__.py +203 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/acc_kernels_trans.py +329 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/acc_loop_trans.py +162 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/acc_update_trans.py +471 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/allarrayaccess2loop_trans.py +152 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/arrayaccess2loop_trans.py +234 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/arrayassignment2loops_trans.py +477 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/async_trans_mixin.py +282 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/callee_transformation_mixin.py +113 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/chunk_loop_trans.py +279 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/datanode_to_temp_trans.py +438 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/debug_checksum_trans.py +245 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/extract_trans.py +141 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/fold_conditional_return_expressions_trans.py +153 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/hoist_local_arrays_trans.py +527 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/hoist_loop_bound_expr_trans.py +174 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/hoist_trans.py +289 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/increase_rank_loop_arrays_trans.py +281 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/inline_trans.py +1274 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/__init__.py +40 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/abs2code_trans.py +178 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/array_reduction_base_trans.py +379 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/dotproduct2code_trans.py +291 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/intrinsic2code_trans.py +148 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/matmul2code_trans.py +523 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/max2code_trans.py +92 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/maxval2loop_trans.py +191 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/min2code_trans.py +95 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/minormax2code_trans.py +190 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/minval2loop_trans.py +189 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/product2loop_trans.py +198 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/sign2code_trans.py +197 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/sum2loop_trans.py +202 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/loop_fuse_trans.py +231 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/loop_swap_trans.py +205 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/loop_tiling_2d_trans.py +162 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/loop_tiling_trans.py +198 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/loop_trans.py +187 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/mark_routine_for_gpu_mixin.py +180 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/maximal_omp_parallel_region_trans.py +94 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/maximal_region_trans.py +263 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/move_trans.py +154 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/omp_critical_trans.py +85 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/omp_declare_target_trans.py +147 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/omp_loop_trans.py +351 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/omp_minimise_sync_trans.py +562 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/omp_parallel_loop_trans.py +144 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/omp_parallel_trans.py +143 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/omp_target_trans.py +257 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/omp_task_trans.py +239 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/omp_taskloop_trans.py +284 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/omp_taskwait_trans.py +494 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/parallel_loop_trans.py +600 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/parallel_region_trans.py +141 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/profile_trans.py +126 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/psy_data_trans.py +338 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/read_only_verify_trans.py +126 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/reference2arrayrange_trans.py +312 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/region_trans.py +236 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/replace_induction_variables_trans.py +289 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/replace_reference_by_literal_trans.py +306 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/scalarisation_trans.py +458 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/transformation_error.py +49 -0
- psyclone-3.3.0/src/psyclone/psyir/transformations/value_range_check_trans.py +106 -0
- psyclone-3.3.0/src/psyclone/transformations.py +2094 -0
- psyclone-3.3.0/src/psyclone/utils.py +236 -0
- psyclone-3.3.0/src/psyclone/version.py +52 -0
- psyclone-3.3.0/tutorial/notebooks/introduction.ipynb +110 -0
- psyclone-3.3.0/tutorial/notebooks/nemo/nemo_example4.ipynb +166 -0
- psyclone-3.2.2rc2/LICENSE +0 -29
- psyclone-3.2.2rc2/MANIFEST.in +0 -45
- psyclone-3.2.2rc2/PKG-INFO +0 -64
- psyclone-3.2.2rc2/README.md +0 -94
- psyclone-3.2.2rc2/bin/psyad +0 -46
- psyclone-3.2.2rc2/bin/psyclone +0 -42
- psyclone-3.2.2rc2/bin/psyclone-kern +0 -46
- psyclone-3.2.2rc2/bin/psyclonefc +0 -45
- psyclone-3.2.2rc2/config/psyclone.cfg +0 -156
- psyclone-3.2.2rc2/doc/Makefile +0 -154
- psyclone-3.2.2rc2/doc/_ext/apilinks.py +0 -84
- psyclone-3.2.2rc2/doc/conf.py +0 -455
- psyclone-3.2.2rc2/doc/developer_guide/APIs.rst +0 -1244
- psyclone-3.2.2rc2/doc/developer_guide/code_snippets/newnode.py +0 -86
- psyclone-3.2.2rc2/doc/developer_guide/coding-style.rst +0 -314
- psyclone-3.2.2rc2/doc/developer_guide/dependency.rst +0 -672
- psyclone-3.2.2rc2/doc/developer_guide/index.rst +0 -27
- psyclone-3.2.2rc2/doc/developer_guide/integration-test.rst +0 -35
- psyclone-3.2.2rc2/doc/developer_guide/interface_example.py +0 -45
- psyclone-3.2.2rc2/doc/developer_guide/module_manager.rst +0 -235
- psyclone-3.2.2rc2/doc/developer_guide/pip_requirements.txt +0 -43
- psyclone-3.2.2rc2/doc/developer_guide/psy_data.rst +0 -1230
- psyclone-3.2.2rc2/doc/developer_guide/psyir.rst +0 -1120
- psyclone-3.2.2rc2/doc/developer_guide/psyir_backends.rst +0 -402
- psyclone-3.2.2rc2/doc/developer_guide/psyir_symbols.rst +0 -383
- psyclone-3.2.2rc2/doc/developer_guide/psykal.rst +0 -439
- psyclone-3.2.2rc2/doc/developer_guide/sympy.rst +0 -245
- psyclone-3.2.2rc2/doc/developer_guide/system_specific_setup.rst +0 -182
- psyclone-3.2.2rc2/doc/developer_guide/transformations.rst +0 -589
- psyclone-3.2.2rc2/doc/developer_guide/working_practises.rst +0 -722
- psyclone-3.2.2rc2/doc/index.rst +0 -96
- psyclone-3.2.2rc2/doc/reference_guide/index.rst +0 -12
- psyclone-3.2.2rc2/doc/tutorials_and_examples/examples_intro.rst +0 -141
- psyclone-3.2.2rc2/doc/tutorials_and_examples/gocean_examples.rst +0 -184
- psyclone-3.2.2rc2/doc/tutorials_and_examples/index.rst +0 -52
- psyclone-3.2.2rc2/doc/tutorials_and_examples/lfric_examples.rst +0 -316
- psyclone-3.2.2rc2/doc/tutorials_and_examples/nemo_examples.rst +0 -70
- psyclone-3.2.2rc2/doc/tutorials_and_examples/psyir_examples.rst +0 -17
- psyclone-3.2.2rc2/doc/tutorials_and_examples/tutorials.rst +0 -27
- psyclone-3.2.2rc2/doc/user_guide/configuration.rst +0 -270
- psyclone-3.2.2rc2/doc/user_guide/getting_going.rst +0 -384
- psyclone-3.2.2rc2/doc/user_guide/gocean1p0.rst +0 -910
- psyclone-3.2.2rc2/doc/user_guide/index.rst +0 -45
- psyclone-3.2.2rc2/doc/user_guide/introduction_to_psykal.rst +0 -411
- psyclone-3.2.2rc2/doc/user_guide/lfric.rst +0 -4108
- psyclone-3.2.2rc2/doc/user_guide/libraries.rst +0 -211
- psyclone-3.2.2rc2/doc/user_guide/profiling.rst +0 -576
- psyclone-3.2.2rc2/doc/user_guide/psy_data.rst +0 -373
- psyclone-3.2.2rc2/doc/user_guide/psyad.rst +0 -826
- psyclone-3.2.2rc2/doc/user_guide/psyclone_command.rst +0 -525
- psyclone-3.2.2rc2/doc/user_guide/psyclone_kern.rst +0 -612
- psyclone-3.2.2rc2/doc/user_guide/psyir.rst +0 -845
- psyclone-3.2.2rc2/doc/user_guide/psyke.rst +0 -644
- psyclone-3.2.2rc2/doc/user_guide/transformations.rst +0 -953
- psyclone-3.2.2rc2/doc/user_guide/user_scripts.rst +0 -144
- psyclone-3.2.2rc2/examples/Makefile +0 -46
- psyclone-3.2.2rc2/examples/common.mk +0 -103
- psyclone-3.2.2rc2/examples/gocean/Makefile +0 -39
- psyclone-3.2.2rc2/examples/gocean/README.md +0 -101
- psyclone-3.2.2rc2/examples/gocean/eg1/Makefile +0 -116
- psyclone-3.2.2rc2/examples/gocean/eg1/README.md +0 -77
- psyclone-3.2.2rc2/examples/gocean/eg1/opencl_transformation.py +0 -77
- psyclone-3.2.2rc2/examples/gocean/eg1/openmp_taskloop_trans.py +0 -67
- psyclone-3.2.2rc2/examples/gocean/eg1/runme.py +0 -84
- psyclone-3.2.2rc2/examples/gocean/eg1/runme_dag.py +0 -90
- psyclone-3.2.2rc2/examples/gocean/eg1/runme_loop_fuse.py +0 -103
- psyclone-3.2.2rc2/examples/gocean/eg1/runme_openacc.py +0 -125
- psyclone-3.2.2rc2/examples/gocean/eg1/runme_openmp.py +0 -108
- psyclone-3.2.2rc2/examples/gocean/eg1/shallow_alg.f90 +0 -251
- psyclone-3.2.2rc2/examples/gocean/eg2/Makefile +0 -123
- psyclone-3.2.2rc2/examples/gocean/eg2/README.md +0 -106
- psyclone-3.2.2rc2/examples/gocean/eg2/acc_prof_transform.py +0 -63
- psyclone-3.2.2rc2/examples/gocean/eg2/acc_transform.py +0 -84
- psyclone-3.2.2rc2/examples/gocean/eg2/alg.f90 +0 -99
- psyclone-3.2.2rc2/examples/gocean/eg2/inc_field_mod.f90 +0 -79
- psyclone-3.2.2rc2/examples/gocean/eg3/Makefile +0 -113
- psyclone-3.2.2rc2/examples/gocean/eg3/README.md +0 -133
- psyclone-3.2.2rc2/examples/gocean/eg3/alg.f90 +0 -103
- psyclone-3.2.2rc2/examples/gocean/eg3/compute_cu_mod.f90 +0 -89
- psyclone-3.2.2rc2/examples/gocean/eg3/compute_cv_mod.f90 +0 -85
- psyclone-3.2.2rc2/examples/gocean/eg3/compute_h_mod.f90 +0 -85
- psyclone-3.2.2rc2/examples/gocean/eg3/compute_z_mod.f90 +0 -103
- psyclone-3.2.2rc2/examples/gocean/eg3/ocl_trans.py +0 -77
- psyclone-3.2.2rc2/examples/gocean/eg4/Makefile +0 -102
- psyclone-3.2.2rc2/examples/gocean/eg4/README.md +0 -143
- psyclone-3.2.2rc2/examples/gocean/eg4/acc_transform.py +0 -83
- psyclone-3.2.2rc2/examples/gocean/eg4/alg_kern_use_var.f90 +0 -82
- psyclone-3.2.2rc2/examples/gocean/eg4/alg_nested_use.f90 +0 -50
- psyclone-3.2.2rc2/examples/gocean/eg4/another_mod.f90 +0 -47
- psyclone-3.2.2rc2/examples/gocean/eg4/data_mod.f90 +0 -52
- psyclone-3.2.2rc2/examples/gocean/eg4/kern_call_kern_mod.f90 +0 -62
- psyclone-3.2.2rc2/examples/gocean/eg4/kern_nested_use_mod.f90 +0 -59
- psyclone-3.2.2rc2/examples/gocean/eg4/kern_use_var_mod.f90 +0 -66
- psyclone-3.2.2rc2/examples/gocean/eg4/ocl_transform.py +0 -71
- psyclone-3.2.2rc2/examples/gocean/eg5/Makefile +0 -38
- psyclone-3.2.2rc2/examples/gocean/eg5/README.md +0 -49
- psyclone-3.2.2rc2/examples/gocean/eg5/extract/Makefile +0 -183
- psyclone-3.2.2rc2/examples/gocean/eg5/extract/README.md +0 -141
- psyclone-3.2.2rc2/examples/gocean/eg5/extract/extract_transform.py +0 -68
- psyclone-3.2.2rc2/examples/gocean/eg5/extract/init_field_mod.f90 +0 -72
- psyclone-3.2.2rc2/examples/gocean/eg5/extract/update_field_mod.f90 +0 -85
- psyclone-3.2.2rc2/examples/gocean/eg5/profile/Makefile +0 -187
- psyclone-3.2.2rc2/examples/gocean/eg5/profile/README.md +0 -141
- psyclone-3.2.2rc2/examples/gocean/eg5/profile/init_field_mod.f90 +0 -72
- psyclone-3.2.2rc2/examples/gocean/eg5/profile/test.x90 +0 -83
- psyclone-3.2.2rc2/examples/gocean/eg5/profile/update_field_mod.f90 +0 -76
- psyclone-3.2.2rc2/examples/gocean/eg5/readonly/Makefile +0 -113
- psyclone-3.2.2rc2/examples/gocean/eg5/readonly/README.md +0 -93
- psyclone-3.2.2rc2/examples/gocean/eg5/readonly/init_field_mod.f90 +0 -81
- psyclone-3.2.2rc2/examples/gocean/eg5/readonly/read_only_transform.py +0 -68
- psyclone-3.2.2rc2/examples/gocean/eg5/readonly/test.x90 +0 -90
- psyclone-3.2.2rc2/examples/gocean/eg5/readonly/update_field_mod.f90 +0 -105
- psyclone-3.2.2rc2/examples/gocean/eg5/value_range_check/Makefile +0 -114
- psyclone-3.2.2rc2/examples/gocean/eg5/value_range_check/README.md +0 -95
- psyclone-3.2.2rc2/examples/gocean/eg5/value_range_check/init_field_mod.f90 +0 -76
- psyclone-3.2.2rc2/examples/gocean/eg5/value_range_check/test.x90 +0 -82
- psyclone-3.2.2rc2/examples/gocean/eg5/value_range_check/update_field_mod.f90 +0 -81
- psyclone-3.2.2rc2/examples/gocean/eg5/value_range_check/value_range_check_transformation.py +0 -68
- psyclone-3.2.2rc2/examples/gocean/eg6/Makefile +0 -45
- psyclone-3.2.2rc2/examples/gocean/eg6/alg.f90 +0 -96
- psyclone-3.2.2rc2/examples/gocean/eg6/backends_transform.py +0 -75
- psyclone-3.2.2rc2/examples/gocean/eg6/inc_field_mod.f90 +0 -84
- psyclone-3.2.2rc2/examples/gocean/eg7/Makefile +0 -46
- psyclone-3.2.2rc2/examples/gocean/eg7/alg.f90 +0 -96
- psyclone-3.2.2rc2/examples/gocean/eg7/alg_transform.py +0 -52
- psyclone-3.2.2rc2/examples/gocean/eg7/inc_field_mod.f90 +0 -84
- psyclone-3.2.2rc2/examples/lfric/Makefile +0 -38
- psyclone-3.2.2rc2/examples/lfric/code/dg_matrix_vector_kernel_mod.F90 +0 -136
- psyclone-3.2.2rc2/examples/lfric/code/gw_mixed_schur_preconditioner_alg_mod.x90 +0 -247
- psyclone-3.2.2rc2/examples/lfric/code/matrix_vector_kernel_mod.F90 +0 -130
- psyclone-3.2.2rc2/examples/lfric/code/testkern_mod.F90 +0 -82
- psyclone-3.2.2rc2/examples/lfric/code/testkern_write_any_mod.f90 +0 -82
- psyclone-3.2.2rc2/examples/lfric/eg1/Makefile +0 -53
- psyclone-3.2.2rc2/examples/lfric/eg1/single_invoke.x90 +0 -53
- psyclone-3.2.2rc2/examples/lfric/eg10/Makefile +0 -68
- psyclone-3.2.2rc2/examples/lfric/eg10/intergrid_3levels.x90 +0 -52
- psyclone-3.2.2rc2/examples/lfric/eg10/prolong_kernel_mod.F90 +0 -141
- psyclone-3.2.2rc2/examples/lfric/eg10/restrict_kernel_mod.F90 +0 -145
- psyclone-3.2.2rc2/examples/lfric/eg11/Makefile +0 -83
- psyclone-3.2.2rc2/examples/lfric/eg11/async_script.py +0 -84
- psyclone-3.2.2rc2/examples/lfric/eg11/driver.f90 +0 -41
- psyclone-3.2.2rc2/examples/lfric/eg11/helmholtz_solver_alg_mod.x90 +0 -67
- psyclone-3.2.2rc2/examples/lfric/eg11/scaled_matrix_vector_kernel_mod.F90 +0 -213
- psyclone-3.2.2rc2/examples/lfric/eg12/Makefile +0 -57
- psyclone-3.2.2rc2/examples/lfric/eg12/colouring_and_omp.py +0 -78
- psyclone-3.2.2rc2/examples/lfric/eg12/extract_kernel_with_transformations.py +0 -110
- psyclone-3.2.2rc2/examples/lfric/eg12/extract_nodes.py +0 -91
- psyclone-3.2.2rc2/examples/lfric/eg12/find_kernel.py +0 -137
- psyclone-3.2.2rc2/examples/lfric/eg13/Makefile +0 -51
- psyclone-3.2.2rc2/examples/lfric/eg13/kernel_constants.py +0 -95
- psyclone-3.2.2rc2/examples/lfric/eg14/Makefile +0 -121
- psyclone-3.2.2rc2/examples/lfric/eg14/README.md +0 -47
- psyclone-3.2.2rc2/examples/lfric/eg14/acc_parallel.py +0 -89
- psyclone-3.2.2rc2/examples/lfric/eg14/main.x90 +0 -150
- psyclone-3.2.2rc2/examples/lfric/eg14/other_alg_mod.x90 +0 -53
- psyclone-3.2.2rc2/examples/lfric/eg14/testkern_w0_kernel_mod.f90 +0 -82
- psyclone-3.2.2rc2/examples/lfric/eg15/Makefile +0 -48
- psyclone-3.2.2rc2/examples/lfric/eg15/matvec_opt.py +0 -110
- psyclone-3.2.2rc2/examples/lfric/eg16/Makefile +0 -44
- psyclone-3.2.2rc2/examples/lfric/eg16/README.md +0 -51
- psyclone-3.2.2rc2/examples/lfric/eg16/create.py +0 -141
- psyclone-3.2.2rc2/examples/lfric/eg17/Makefile +0 -41
- psyclone-3.2.2rc2/examples/lfric/eg17/README.md +0 -76
- psyclone-3.2.2rc2/examples/lfric/eg17/full_example/Makefile +0 -85
- psyclone-3.2.2rc2/examples/lfric/eg17/full_example/README.md +0 -85
- psyclone-3.2.2rc2/examples/lfric/eg17/full_example/main.x90 +0 -135
- psyclone-3.2.2rc2/examples/lfric/eg17/full_example/testkern_w0_kernel_mod.f90 +0 -82
- psyclone-3.2.2rc2/examples/lfric/eg17/full_example_extract/Makefile +0 -158
- psyclone-3.2.2rc2/examples/lfric/eg17/full_example_extract/README.md +0 -108
- psyclone-3.2.2rc2/examples/lfric/eg17/full_example_extract/dummy_mod.f90 +0 -67
- psyclone-3.2.2rc2/examples/lfric/eg17/full_example_extract/extract_transform.py +0 -70
- psyclone-3.2.2rc2/examples/lfric/eg17/full_example_extract/main.X90 +0 -176
- psyclone-3.2.2rc2/examples/lfric/eg17/full_example_extract/testkern_w0_kernel_mod.f90 +0 -109
- psyclone-3.2.2rc2/examples/lfric/eg17/full_example_netcdf/Makefile +0 -89
- psyclone-3.2.2rc2/examples/lfric/eg17/full_example_netcdf/README.md +0 -88
- psyclone-3.2.2rc2/examples/lfric/eg17/full_example_netcdf/main.x90 +0 -136
- psyclone-3.2.2rc2/examples/lfric/eg17/full_example_netcdf/testkern_w0_kernel_mod.f90 +0 -82
- psyclone-3.2.2rc2/examples/lfric/eg18/Makefile +0 -49
- psyclone-3.2.2rc2/examples/lfric/eg18/advection_alg_mod.x90 +0 -71
- psyclone-3.2.2rc2/examples/lfric/eg18/impose_min_flux_kernel_mod.f90 +0 -181
- psyclone-3.2.2rc2/examples/lfric/eg19/Makefile +0 -75
- psyclone-3.2.2rc2/examples/lfric/eg19/algorithm.x90 +0 -70
- psyclone-3.2.2rc2/examples/lfric/eg19/mixed_kernel_mod.f90 +0 -113
- psyclone-3.2.2rc2/examples/lfric/eg2/Makefile +0 -65
- psyclone-3.2.2rc2/examples/lfric/eg2/loop_fuse_trans.py +0 -66
- psyclone-3.2.2rc2/examples/lfric/eg2/module_inline_trans.py +0 -58
- psyclone-3.2.2rc2/examples/lfric/eg2/multi_invoke_mod.x90 +0 -60
- psyclone-3.2.2rc2/examples/lfric/eg2/print_psyir_trans.py +0 -56
- psyclone-3.2.2rc2/examples/lfric/eg20/Makefile +0 -68
- psyclone-3.2.2rc2/examples/lfric/eg3/Makefile +0 -53
- psyclone-3.2.2rc2/examples/lfric/eg3/colouring_and_omp.py +0 -79
- psyclone-3.2.2rc2/examples/lfric/eg3/matrix_vector_mm_kernel_mod.F90 +0 -128
- psyclone-3.2.2rc2/examples/lfric/eg3/solver_mod.x90 +0 -796
- psyclone-3.2.2rc2/examples/lfric/eg3/w3_solver_kernel_mod.F90 +0 -206
- psyclone-3.2.2rc2/examples/lfric/eg4/Makefile +0 -56
- psyclone-3.2.2rc2/examples/lfric/eg4/backends_transform.py +0 -79
- psyclone-3.2.2rc2/examples/lfric/eg4/enforce_bc_kernel_mod.f90 +0 -120
- psyclone-3.2.2rc2/examples/lfric/eg4/matrix_vector_kernel_mod.F90 +0 -130
- psyclone-3.2.2rc2/examples/lfric/eg4/mm_diagonal_kernel_mod.F90 +0 -120
- psyclone-3.2.2rc2/examples/lfric/eg4/solver_mod.x90 +0 -154
- psyclone-3.2.2rc2/examples/lfric/eg5/Makefile +0 -46
- psyclone-3.2.2rc2/examples/lfric/eg5/alg.f90 +0 -107
- psyclone-3.2.2rc2/examples/lfric/eg5/conservative_flux_kernel_mod.F90 +0 -264
- psyclone-3.2.2rc2/examples/lfric/eg5/subgrid_coeffs_kernel_mod.F90 +0 -221
- psyclone-3.2.2rc2/examples/lfric/eg6/Makefile +0 -64
- psyclone-3.2.2rc2/examples/lfric/eg6/alg.x90 +0 -66
- psyclone-3.2.2rc2/examples/lfric/eg6/omp_reprod_script.py +0 -84
- psyclone-3.2.2rc2/examples/lfric/eg6/omp_script.py +0 -79
- psyclone-3.2.2rc2/examples/lfric/eg7/Makefile +0 -46
- psyclone-3.2.2rc2/examples/lfric/eg7/alg.x90 +0 -94
- psyclone-3.2.2rc2/examples/lfric/eg7/columnwise_op_app_kernel_mod.F90 +0 -157
- psyclone-3.2.2rc2/examples/lfric/eg7/columnwise_op_asm_kernel_mod.F90 +0 -161
- psyclone-3.2.2rc2/examples/lfric/eg7/columnwise_op_mul_kernel_mod.F90 +0 -180
- psyclone-3.2.2rc2/examples/lfric/eg7/matrix_vector_kernel_mod.F90 +0 -130
- psyclone-3.2.2rc2/examples/lfric/eg8/Makefile +0 -53
- psyclone-3.2.2rc2/examples/lfric/eg8/apply_variable_hx_kernel_mod.F90 +0 -364
- psyclone-3.2.2rc2/examples/lfric/eg8/enforce_bc_kernel_mod.F90 +0 -120
- psyclone-3.2.2rc2/examples/lfric/eg8/helmholtz_solver_alg_mod.x90 +0 -88
- psyclone-3.2.2rc2/examples/lfric/eg8/redundant_script.py +0 -71
- psyclone-3.2.2rc2/examples/lfric/eg8/scaled_matrix_vector_kernel_mod.F90 +0 -136
- psyclone-3.2.2rc2/examples/lfric/eg9/Makefile +0 -53
- psyclone-3.2.2rc2/examples/lfric/eg9/advective_inc_alg_mod.x90 +0 -138
- psyclone-3.2.2rc2/examples/lfric/eg9/colouring_and_omp.py +0 -79
- psyclone-3.2.2rc2/examples/lfric/eg9/matrix_vector_kernel_mod.F90 +0 -130
- psyclone-3.2.2rc2/examples/lfric/eg9/rtheta_bd_kernel_mod.F90 +0 -297
- psyclone-3.2.2rc2/examples/lfric/eg9/rtheta_kernel_mod.F90 +0 -179
- psyclone-3.2.2rc2/examples/lfric/eg9/rtheta_wtheta_kernel_mod.F90 +0 -198
- psyclone-3.2.2rc2/examples/lfric/eg9/sample_poly_adv_kernel_mod.F90 +0 -499
- psyclone-3.2.2rc2/examples/lfric/lfric_common.mk +0 -59
- psyclone-3.2.2rc2/examples/lfric/scripts/Makefile +0 -57
- psyclone-3.2.2rc2/examples/lfric/scripts/async_halo_exchanges.py +0 -79
- psyclone-3.2.2rc2/examples/lfric/scripts/colouring_and_omp.py +0 -78
- psyclone-3.2.2rc2/examples/lfric/scripts/compare_ouput.py +0 -82
- psyclone-3.2.2rc2/examples/lfric/scripts/does_nothing.py +0 -49
- psyclone-3.2.2rc2/examples/lfric/scripts/everything_everywhere_all_at_once.py +0 -143
- psyclone-3.2.2rc2/examples/lfric/scripts/extract_script.py +0 -58
- psyclone-3.2.2rc2/examples/lfric/scripts/gpu_offloading.py +0 -249
- psyclone-3.2.2rc2/examples/lfric/scripts/inline_kernels_and_intrinsics.py +0 -79
- psyclone-3.2.2rc2/examples/lfric/scripts/kernel_print.py +0 -65
- psyclone-3.2.2rc2/examples/lfric/scripts/loop_fuse.py +0 -74
- psyclone-3.2.2rc2/examples/lfric/scripts/redundant_dofs.py +0 -73
- psyclone-3.2.2rc2/examples/lfric/scripts/redundant_setval_c.py +0 -80
- psyclone-3.2.2rc2/examples/lfric/scripts/tiledcolouring_and_omp.py +0 -75
- psyclone-3.2.2rc2/examples/nemo/Makefile +0 -38
- psyclone-3.2.2rc2/examples/nemo/README.md +0 -151
- psyclone-3.2.2rc2/examples/nemo/code/traldf_iso.F90 +0 -385
- psyclone-3.2.2rc2/examples/nemo/eg1/Makefile +0 -50
- psyclone-3.2.2rc2/examples/nemo/eg1/README.md +0 -67
- psyclone-3.2.2rc2/examples/nemo/eg1/openmp_cpu_levels_trans.py +0 -69
- psyclone-3.2.2rc2/examples/nemo/eg1/openmp_gpu_levels_trans.py +0 -83
- psyclone-3.2.2rc2/examples/nemo/eg2/Makefile +0 -54
- psyclone-3.2.2rc2/examples/nemo/eg2/README.md +0 -63
- psyclone-3.2.2rc2/examples/nemo/eg2/omp_levels_trans.py +0 -79
- psyclone-3.2.2rc2/examples/nemo/eg3/Makefile +0 -84
- psyclone-3.2.2rc2/examples/nemo/eg3/README.md +0 -106
- psyclone-3.2.2rc2/examples/nemo/eg3/kernel_utils.py +0 -139
- psyclone-3.2.2rc2/examples/nemo/eg3/kernels_trans.py +0 -98
- psyclone-3.2.2rc2/examples/nemo/eg4/Makefile +0 -62
- psyclone-3.2.2rc2/examples/nemo/eg4/README.md +0 -143
- psyclone-3.2.2rc2/examples/nemo/eg4/copy_stencil.f90 +0 -49
- psyclone-3.2.2rc2/examples/nemo/eg4/dawn_script.py +0 -91
- psyclone-3.2.2rc2/examples/nemo/eg4/hori_diff.f90 +0 -50
- psyclone-3.2.2rc2/examples/nemo/eg4/if_example.f90 +0 -63
- psyclone-3.2.2rc2/examples/nemo/eg4/intrinsic_example.f90 +0 -63
- psyclone-3.2.2rc2/examples/nemo/eg4/sir_trans.py +0 -56
- psyclone-3.2.2rc2/examples/nemo/eg4/sir_trans_all.py +0 -118
- psyclone-3.2.2rc2/examples/nemo/eg4/sir_trans_loop.py +0 -92
- psyclone-3.2.2rc2/examples/nemo/eg4/tridiagonal_solve.f90 +0 -67
- psyclone-3.2.2rc2/examples/nemo/eg5/Makefile +0 -116
- psyclone-3.2.2rc2/examples/nemo/eg5/README.md +0 -94
- psyclone-3.2.2rc2/examples/nemo/eg5/extract_kernels.py +0 -99
- psyclone-3.2.2rc2/examples/nemo/eg6/Makefile +0 -86
- psyclone-3.2.2rc2/examples/nemo/eg6/README.md +0 -100
- psyclone-3.2.2rc2/examples/nemo/eg6/dummy.f90 +0 -74
- psyclone-3.2.2rc2/examples/nemo/eg6/read_only_check.py +0 -62
- psyclone-3.2.2rc2/examples/nemo/eg7/Makefile +0 -51
- psyclone-3.2.2rc2/examples/nemo/eg7/README.md +0 -62
- psyclone-3.2.2rc2/examples/nemo/eg7/openmp_cpu_nowait_trans.py +0 -134
- psyclone-3.2.2rc2/examples/nemo/eg7/openmp_gpu_nowait_trans.py +0 -78
- psyclone-3.2.2rc2/examples/nemo/scripts/Makefile +0 -129
- psyclone-3.2.2rc2/examples/nemo/scripts/acc_kernels_trans.py +0 -409
- psyclone-3.2.2rc2/examples/nemo/scripts/acc_loops_trans.py +0 -123
- psyclone-3.2.2rc2/examples/nemo/scripts/compare_ouput.py +0 -99
- psyclone-3.2.2rc2/examples/nemo/scripts/omp_cpu_trans.py +0 -135
- psyclone-3.2.2rc2/examples/nemo/scripts/omp_gpu_trans.py +0 -264
- psyclone-3.2.2rc2/examples/nemo/scripts/passthrough.py +0 -59
- psyclone-3.2.2rc2/examples/nemo/scripts/utils.py +0 -673
- psyclone-3.2.2rc2/examples/psyad/Makefile +0 -39
- psyclone-3.2.2rc2/examples/psyad/README.md +0 -66
- psyclone-3.2.2rc2/examples/psyad/eg1/Makefile +0 -63
- psyclone-3.2.2rc2/examples/psyad/eg1/README.md +0 -76
- psyclone-3.2.2rc2/examples/psyad/eg1/testkern_mod.f90 +0 -75
- psyclone-3.2.2rc2/examples/psyad/eg2/Makefile +0 -100
- psyclone-3.2.2rc2/examples/psyad/eg2/README.md +0 -159
- psyclone-3.2.2rc2/examples/psyad/eg2/tl_hydrostatic_kernel_mod.F90 +0 -270
- psyclone-3.2.2rc2/examples/psyad/lfric/Makefile +0 -52
- psyclone-3.2.2rc2/examples/psyad/lfric/README.md +0 -66
- psyclone-3.2.2rc2/examples/psyad/lfric/adjoint/README.md +0 -61
- psyclone-3.2.2rc2/examples/psyad/lfric/adjoint_partial/README.md +0 -46
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear/Makefile +0 -102
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear/README.md +0 -61
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear/combine_w2_field_kernel_mod.F90 +0 -92
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear/convert_hdiv_field_kernel_mod.F90 +0 -161
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear/dg_inc_matrix_vector_kernel_mod.F90 +0 -140
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear/dg_matrix_vector_kernel_mod.F90 +0 -98
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear/helmholtz_operator_kernel_mod.F90 +0 -537
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear/matrix_vector_kernel_mod.F90 +0 -139
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear/sample_flux_kernel_mod.F90 +0 -111
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear/split_w2_field_kernel_mod.F90 +0 -95
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear/tl_project_eos_pressure_kernel_mod.F90 +0 -239
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear/tracer_viscosity_kernel_mod.F90 +0 -143
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear/transpose_matrix_vector_kernel_mod.F90 +0 -103
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear/w3_advective_update_kernel_mod.F90 +0 -115
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear_tweaked/Makefile +0 -98
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear_tweaked/README.md +0 -56
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear_tweaked/convert_hdiv_field_kernel_mod_tweaked.F90 +0 -166
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear_tweaked/dg_inc_matrix_vector_kernel_mod_tweaked.F90 +0 -147
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear_tweaked/matrix_vector_kernel_mod_tweaked.F90 +0 -146
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear_tweaked/poly1d_reconstruction_kernel_mod_tweaked.F90 +0 -204
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear_tweaked/poly1d_w3_reconstruction_kernel_mod_tweaked.F90 +0 -204
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear_tweaked/poly2d_reconstruction_kernel_mod_tweaked.F90 +0 -180
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear_tweaked/poly2d_w3_reconstruction_kernel_mod_tweaked.F90 +0 -181
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear_tweaked/poly_adv_update_kernel_mod_tweaked.F90 +0 -217
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear_tweaked/tl_calc_exner_pointwise_mod_tweaked.F90 +0 -58
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear_tweaked/tl_kinetic_energy_gradient_kernel_mod_tweaked.F90 +0 -226
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear_tweaked/tl_moist_dyn_gas_kernel_mod_tweaked.F90 +0 -92
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear_tweaked/tl_poly1d_vert_adv_kernel_mod_tweaked.F90 +0 -228
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear_tweaked/tl_poly1d_vert_w3_reconstruction_kernel_mod_tweaked.F90 +0 -228
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear_tweaked/tl_pressure_gradient_bd_kernel_mod_tweaked.F90 +0 -347
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear_tweaked/tl_project_eos_pressure_kernel_mod_tweaked.F90 +0 -254
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear_tweaked/tl_rhs_project_eos_kernel_mod_tweaked.F90 +0 -273
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear_tweaked/tl_sample_eos_pressure_kernel_mod_tweaked.F90 +0 -182
- psyclone-3.2.2rc2/examples/psyad/lfric/tangent_linear_tweaked/tl_vorticity_advection_kernel_mod_tweaked.F90 +0 -260
- psyclone-3.2.2rc2/examples/psyir/Makefile +0 -50
- psyclone-3.2.2rc2/examples/psyir/README.md +0 -116
- psyclone-3.2.2rc2/examples/psyir/create.py +0 -215
- psyclone-3.2.2rc2/examples/psyir/create_structure_types.py +0 -170
- psyclone-3.2.2rc2/examples/psyir/matmul/Makefile +0 -61
- psyclone-3.2.2rc2/examples/psyir/matmul/matmul.F90 +0 -127
- psyclone-3.2.2rc2/examples/psyir/matmul/omp-tile.py +0 -49
- psyclone-3.2.2rc2/examples/psyir/matmul/omp.py +0 -46
- psyclone-3.2.2rc2/examples/psyir/matmul/tile.py +0 -46
- psyclone-3.2.2rc2/examples/psyir/modify.py +0 -111
- psyclone-3.2.2rc2/examples/psyir/transpose/Makefile +0 -61
- psyclone-3.2.2rc2/examples/psyir/transpose/omp-tile.py +0 -48
- psyclone-3.2.2rc2/examples/psyir/transpose/omp.py +0 -46
- psyclone-3.2.2rc2/examples/psyir/transpose/tile.py +0 -46
- psyclone-3.2.2rc2/examples/psyir/transpose/trans.F90 +0 -110
- psyclone-3.2.2rc2/examples/stub_generation/Makefile +0 -45
- psyclone-3.2.2rc2/examples/stub_generation/README.md +0 -28
- psyclone-3.2.2rc2/examples/stub_generation/testkern_stencil_multi_mod.f90 +0 -62
- psyclone-3.2.2rc2/examples/top_level.mk +0 -75
- psyclone-3.2.2rc2/examples/xdsl/Makefile +0 -48
- psyclone-3.2.2rc2/examples/xdsl/README.md +0 -91
- psyclone-3.2.2rc2/examples/xdsl/backend/xdsl.py +0 -915
- psyclone-3.2.2rc2/examples/xdsl/pw_advection/Makefile +0 -48
- psyclone-3.2.2rc2/examples/xdsl/xdsl_backends_transform.py +0 -67
- psyclone-3.2.2rc2/lib/Makefile +0 -78
- psyclone-3.2.2rc2/lib/README.md +0 -180
- psyclone-3.2.2rc2/lib/extract/Makefile +0 -94
- psyclone-3.2.2rc2/lib/extract/README.md +0 -54
- psyclone-3.2.2rc2/lib/extract/ascii/Makefile +0 -105
- psyclone-3.2.2rc2/lib/extract/ascii/dl_esm_inf/Makefile +0 -112
- psyclone-3.2.2rc2/lib/extract/ascii/dl_esm_inf/README.md +0 -144
- psyclone-3.2.2rc2/lib/extract/ascii/dl_esm_inf/kernel_data_ascii.f90 +0 -131
- psyclone-3.2.2rc2/lib/extract/ascii/extract_ascii_base.jinja +0 -276
- psyclone-3.2.2rc2/lib/extract/ascii/generic/Makefile +0 -95
- psyclone-3.2.2rc2/lib/extract/ascii/generic/README.md +0 -103
- psyclone-3.2.2rc2/lib/extract/ascii/generic/kernel_data_ascii.f90 +0 -59
- psyclone-3.2.2rc2/lib/extract/ascii/lfric/Makefile +0 -123
- psyclone-3.2.2rc2/lib/extract/ascii/lfric/README.md +0 -142
- psyclone-3.2.2rc2/lib/extract/ascii/lfric/kernel_data_ascii.jinja +0 -347
- psyclone-3.2.2rc2/lib/extract/ascii/read_kernel_data_mod.jinja +0 -325
- psyclone-3.2.2rc2/lib/extract/binary/Makefile +0 -106
- psyclone-3.2.2rc2/lib/extract/binary/dl_esm_inf/Makefile +0 -112
- psyclone-3.2.2rc2/lib/extract/binary/dl_esm_inf/README.md +0 -139
- psyclone-3.2.2rc2/lib/extract/binary/dl_esm_inf/kernel_data_binary.f90 +0 -131
- psyclone-3.2.2rc2/lib/extract/binary/extract_binary_base.jinja +0 -276
- psyclone-3.2.2rc2/lib/extract/binary/generic/Makefile +0 -95
- psyclone-3.2.2rc2/lib/extract/binary/generic/README.md +0 -103
- psyclone-3.2.2rc2/lib/extract/binary/generic/kernel_data_binary.f90 +0 -59
- psyclone-3.2.2rc2/lib/extract/binary/lfric/Makefile +0 -127
- psyclone-3.2.2rc2/lib/extract/binary/lfric/README.md +0 -145
- psyclone-3.2.2rc2/lib/extract/binary/lfric/compare_variables_mod.F90 +0 -1758
- psyclone-3.2.2rc2/lib/extract/binary/lfric/kernel_data_binary.jinja +0 -347
- psyclone-3.2.2rc2/lib/extract/binary/lfric/read_kernel_data_mod.f90 +0 -2259
- psyclone-3.2.2rc2/lib/extract/binary/read_kernel_data_mod.jinja +0 -325
- psyclone-3.2.2rc2/lib/extract/compare_variables_mod.jinja +0 -321
- psyclone-3.2.2rc2/lib/extract/netcdf/Makefile +0 -108
- psyclone-3.2.2rc2/lib/extract/netcdf/README.md +0 -85
- psyclone-3.2.2rc2/lib/extract/netcdf/dl_esm_inf/Makefile +0 -112
- psyclone-3.2.2rc2/lib/extract/netcdf/dl_esm_inf/README.md +0 -154
- psyclone-3.2.2rc2/lib/extract/netcdf/dl_esm_inf/kernel_data_netcdf.f90 +0 -134
- psyclone-3.2.2rc2/lib/extract/netcdf/extract_netcdf_base.jinja +0 -508
- psyclone-3.2.2rc2/lib/extract/netcdf/generic/Makefile +0 -96
- psyclone-3.2.2rc2/lib/extract/netcdf/generic/README.md +0 -121
- psyclone-3.2.2rc2/lib/extract/netcdf/generic/kernel_data_netcdf.f90 +0 -59
- psyclone-3.2.2rc2/lib/extract/netcdf/lfric/Makefile +0 -128
- psyclone-3.2.2rc2/lib/extract/netcdf/lfric/README.md +0 -159
- psyclone-3.2.2rc2/lib/extract/netcdf/lfric/kernel_data_netcdf.jinja +0 -347
- psyclone-3.2.2rc2/lib/extract/netcdf/read_kernel_data_mod.f90 +0 -3366
- psyclone-3.2.2rc2/lib/extract/netcdf/read_kernel_data_mod.jinja +0 -403
- psyclone-3.2.2rc2/lib/get_python.sh +0 -60
- psyclone-3.2.2rc2/lib/process.py +0 -160
- psyclone-3.2.2rc2/lib/profiling/Makefile +0 -70
- psyclone-3.2.2rc2/lib/profiling/README.md +0 -286
- psyclone-3.2.2rc2/lib/profiling/dl_timer/Makefile +0 -80
- psyclone-3.2.2rc2/lib/profiling/dl_timer/README.md +0 -144
- psyclone-3.2.2rc2/lib/profiling/dl_timer/dl_timer.f90 +0 -137
- psyclone-3.2.2rc2/lib/profiling/drhook/Makefile +0 -70
- psyclone-3.2.2rc2/lib/profiling/drhook/README.md +0 -152
- psyclone-3.2.2rc2/lib/profiling/drhook/drhook_psy.f90 +0 -155
- psyclone-3.2.2rc2/lib/profiling/lfric_timer/Makefile +0 -94
- psyclone-3.2.2rc2/lib/profiling/lfric_timer/README.md +0 -147
- psyclone-3.2.2rc2/lib/profiling/lfric_timer/profile_psy_data_mod.F90 +0 -139
- psyclone-3.2.2rc2/lib/profiling/nvidia/Makefile +0 -60
- psyclone-3.2.2rc2/lib/profiling/nvidia/README.md +0 -111
- psyclone-3.2.2rc2/lib/profiling/nvidia/nvtx_prof.f90 +0 -223
- psyclone-3.2.2rc2/lib/profiling/simple_timing/Makefile +0 -72
- psyclone-3.2.2rc2/lib/profiling/simple_timing/README.md +0 -119
- psyclone-3.2.2rc2/lib/profiling/simple_timing/simple_timing.f90 +0 -240
- psyclone-3.2.2rc2/lib/profiling/tau/Makefile +0 -60
- psyclone-3.2.2rc2/lib/profiling/tau/README.md +0 -105
- psyclone-3.2.2rc2/lib/profiling/tau/tau_psy.f90 +0 -139
- psyclone-3.2.2rc2/lib/profiling/template/Makefile +0 -72
- psyclone-3.2.2rc2/lib/profiling/template/README.md +0 -110
- psyclone-3.2.2rc2/lib/profiling/template/dummy_lib.f90 +0 -142
- psyclone-3.2.2rc2/lib/profiling/vernier/Makefile +0 -69
- psyclone-3.2.2rc2/lib/profiling/vernier/README.md +0 -134
- psyclone-3.2.2rc2/lib/profiling/vernier/vernier_psy.f90 +0 -145
- psyclone-3.2.2rc2/lib/psy_data_base.jinja +0 -412
- psyclone-3.2.2rc2/lib/read_only/Makefile +0 -85
- psyclone-3.2.2rc2/lib/read_only/README.md +0 -85
- psyclone-3.2.2rc2/lib/read_only/dl_esm_inf/Makefile +0 -116
- psyclone-3.2.2rc2/lib/read_only/dl_esm_inf/README.md +0 -120
- psyclone-3.2.2rc2/lib/read_only/dl_esm_inf/read_only.f90 +0 -161
- psyclone-3.2.2rc2/lib/read_only/generic/Makefile +0 -103
- psyclone-3.2.2rc2/lib/read_only/generic/README.md +0 -90
- psyclone-3.2.2rc2/lib/read_only/generic/read_only.f90 +0 -63
- psyclone-3.2.2rc2/lib/read_only/lfric/Makefile +0 -122
- psyclone-3.2.2rc2/lib/read_only/lfric/README.md +0 -123
- psyclone-3.2.2rc2/lib/read_only/lfric/read_only.jinja +0 -356
- psyclone-3.2.2rc2/lib/read_only/read_only_base.jinja +0 -469
- psyclone-3.2.2rc2/lib/value_range_check/Makefile +0 -80
- psyclone-3.2.2rc2/lib/value_range_check/README.md +0 -82
- psyclone-3.2.2rc2/lib/value_range_check/dl_esm_inf/Makefile +0 -114
- psyclone-3.2.2rc2/lib/value_range_check/dl_esm_inf/README.md +0 -116
- psyclone-3.2.2rc2/lib/value_range_check/dl_esm_inf/value_range_check.f90 +0 -121
- psyclone-3.2.2rc2/lib/value_range_check/lfric/Makefile +0 -119
- psyclone-3.2.2rc2/lib/value_range_check/lfric/README.md +0 -123
- psyclone-3.2.2rc2/lib/value_range_check/lfric/value_range_check.jinja +0 -330
- psyclone-3.2.2rc2/lib/value_range_check/value_range_check_base.jinja +0 -536
- psyclone-3.2.2rc2/setup.cfg +0 -21
- psyclone-3.2.2rc2/setup.py +0 -189
- psyclone-3.2.2rc2/src/PSyclone.egg-info/PKG-INFO +0 -64
- psyclone-3.2.2rc2/src/PSyclone.egg-info/SOURCES.txt +0 -816
- psyclone-3.2.2rc2/src/PSyclone.egg-info/requires.txt +0 -21
- psyclone-3.2.2rc2/src/psyclone/__init__.py +0 -33
- psyclone-3.2.2rc2/src/psyclone/alg_gen.py +0 -319
- psyclone-3.2.2rc2/src/psyclone/configuration.py +0 -1326
- psyclone-3.2.2rc2/src/psyclone/core/__init__.py +0 -57
- psyclone-3.2.2rc2/src/psyclone/core/access_sequence.py +0 -397
- psyclone-3.2.2rc2/src/psyclone/core/access_type.py +0 -164
- psyclone-3.2.2rc2/src/psyclone/core/component_indices.py +0 -186
- psyclone-3.2.2rc2/src/psyclone/core/signature.py +0 -265
- psyclone-3.2.2rc2/src/psyclone/core/symbolic_maths.py +0 -433
- psyclone-3.2.2rc2/src/psyclone/core/variables_access_map.py +0 -236
- psyclone-3.2.2rc2/src/psyclone/docstring_parser.py +0 -536
- psyclone-3.2.2rc2/src/psyclone/domain/common/__init__.py +0 -40
- psyclone-3.2.2rc2/src/psyclone/domain/common/algorithm/__init__.py +0 -49
- psyclone-3.2.2rc2/src/psyclone/domain/common/algorithm/psyir.py +0 -320
- psyclone-3.2.2rc2/src/psyclone/domain/common/driver_creator.py +0 -729
- psyclone-3.2.2rc2/src/psyclone/domain/common/psylayer/__init__.py +0 -40
- psyclone-3.2.2rc2/src/psyclone/domain/common/psylayer/psyloop.py +0 -349
- psyclone-3.2.2rc2/src/psyclone/domain/common/transformations/__init__.py +0 -47
- psyclone-3.2.2rc2/src/psyclone/domain/common/transformations/alg_invoke_2_psy_call_trans.py +0 -255
- psyclone-3.2.2rc2/src/psyclone/domain/common/transformations/alg_trans.py +0 -103
- psyclone-3.2.2rc2/src/psyclone/domain/common/transformations/kernel_module_inline_trans.py +0 -642
- psyclone-3.2.2rc2/src/psyclone/domain/common/transformations/raise_psyir_2_alg_trans.py +0 -282
- psyclone-3.2.2rc2/src/psyclone/domain/gocean/__init__.py +0 -45
- psyclone-3.2.2rc2/src/psyclone/domain/gocean/go_symbol_table.py +0 -137
- psyclone-3.2.2rc2/src/psyclone/domain/gocean/gocean_constants.py +0 -128
- psyclone-3.2.2rc2/src/psyclone/domain/gocean/gocean_driver_creator.py +0 -85
- psyclone-3.2.2rc2/src/psyclone/domain/gocean/kernel/__init__.py +0 -45
- psyclone-3.2.2rc2/src/psyclone/domain/gocean/kernel/psyir.py +0 -1058
- psyclone-3.2.2rc2/src/psyclone/domain/gocean/transformations/__init__.py +0 -55
- psyclone-3.2.2rc2/src/psyclone/domain/gocean/transformations/gocean_alg_invoke_2_psy_call_trans.py +0 -75
- psyclone-3.2.2rc2/src/psyclone/domain/gocean/transformations/gocean_const_loop_bounds_trans.py +0 -262
- psyclone-3.2.2rc2/src/psyclone/domain/gocean/transformations/gocean_extract_trans.py +0 -161
- psyclone-3.2.2rc2/src/psyclone/domain/gocean/transformations/gocean_loop_fuse_trans.py +0 -103
- psyclone-3.2.2rc2/src/psyclone/domain/gocean/transformations/gocean_move_iteration_boundaries_inside_kernel_trans.py +0 -243
- psyclone-3.2.2rc2/src/psyclone/domain/gocean/transformations/gocean_opencl_trans.py +0 -1559
- psyclone-3.2.2rc2/src/psyclone/domain/gocean/transformations/raise_psyir_2_gocean_kern_trans.py +0 -250
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/__init__.py +0 -109
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/algorithm/__init__.py +0 -54
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/algorithm/lfric_alg.py +0 -491
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/algorithm/psyir/__init__.py +0 -48
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/algorithm/psyir/lfric_alg_invoke_call.py +0 -90
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/algorithm/psyir/lfric_kernel_functor.py +0 -222
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/arg_index_to_metadata_index.py +0 -266
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/arg_ordering.py +0 -1000
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/function_space.py +0 -393
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kern_call_acc_arg_list.py +0 -278
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kern_call_arg_list.py +0 -1013
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kern_call_invoke_arg_list.py +0 -375
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kern_stub_arg_list.py +0 -508
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/__init__.py +0 -78
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/columnwise_operator_arg_metadata.py +0 -57
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/common_arg_metadata.py +0 -154
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/common_declaration_metadata.py +0 -516
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/common_meta_arg_metadata.py +0 -249
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/common_metadata.py +0 -162
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/evaluator_targets_metadata.py +0 -124
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/field_arg_metadata.py +0 -207
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/field_vector_arg_metadata.py +0 -144
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/inter_grid_arg_metadata.py +0 -186
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/inter_grid_vector_arg_metadata.py +0 -155
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/lfric_kernel_metadata.py +0 -1197
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/meta_args_metadata.py +0 -170
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/meta_funcs_arg_metadata.py +0 -215
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/meta_funcs_metadata.py +0 -118
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/meta_mesh_arg_metadata.py +0 -100
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/meta_mesh_metadata.py +0 -125
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/meta_ref_element_arg_metadata.py +0 -105
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/meta_ref_element_metadata.py +0 -121
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/operates_on_metadata.py +0 -114
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/operator_arg_metadata.py +0 -175
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/psyir.py +0 -117
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/scalar_arg_metadata.py +0 -130
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/scalar_array_arg_metadata.py +0 -165
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel/shapes_metadata.py +0 -155
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/kernel_interface.py +0 -851
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_arg_descriptor.py +0 -876
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_builtins.py +0 -3346
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_cell_iterators.py +0 -136
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_collection.py +0 -158
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_constants.py +0 -580
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_dofmaps.py +0 -340
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_driver_creator.py +0 -124
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_fields.py +0 -188
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_halo_depths.py +0 -113
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_invoke.py +0 -337
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_invoke_schedule.py +0 -97
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_invokes.py +0 -66
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_kern.py +0 -1117
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_kern_call_factory.py +0 -96
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_kern_metadata.py +0 -771
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_loop.py +0 -1110
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_loop_bounds.py +0 -113
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_psy.py +0 -106
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_run_time_checks.py +0 -285
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_scalar_args.py +0 -238
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_stencils.py +0 -671
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_symbol_table.py +0 -248
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/lfric_types.py +0 -600
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/metadata_to_arguments_rules.py +0 -573
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/transformations/__init__.py +0 -52
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/transformations/lfric_alg_invoke_2_psy_call_trans.py +0 -337
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/transformations/lfric_alg_trans.py +0 -52
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/transformations/lfric_extract_trans.py +0 -148
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/transformations/lfric_loop_fuse_trans.py +0 -249
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/transformations/raise_psyir_2_lfric_alg_trans.py +0 -115
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/transformations/raise_psyir_2_lfric_kern_trans.py +0 -238
- psyclone-3.2.2rc2/src/psyclone/domain/lfric/utils.py +0 -102
- psyclone-3.2.2rc2/src/psyclone/errors.py +0 -150
- psyclone-3.2.2rc2/src/psyclone/expression.py +0 -340
- psyclone-3.2.2rc2/src/psyclone/gen_kernel_stub.py +0 -101
- psyclone-3.2.2rc2/src/psyclone/generator.py +0 -923
- psyclone-3.2.2rc2/src/psyclone/gocean1p0.py +0 -2155
- psyclone-3.2.2rc2/src/psyclone/kernel_tools.py +0 -201
- psyclone-3.2.2rc2/src/psyclone/lfric.py +0 -6613
- psyclone-3.2.2rc2/src/psyclone/line_length.py +0 -212
- psyclone-3.2.2rc2/src/psyclone/parse/__init__.py +0 -52
- psyclone-3.2.2rc2/src/psyclone/parse/algorithm.py +0 -1165
- psyclone-3.2.2rc2/src/psyclone/parse/file_info.py +0 -517
- psyclone-3.2.2rc2/src/psyclone/parse/kernel.py +0 -1022
- psyclone-3.2.2rc2/src/psyclone/parse/lfric_builtins_mod.f90 +0 -1258
- psyclone-3.2.2rc2/src/psyclone/parse/module_info.py +0 -338
- psyclone-3.2.2rc2/src/psyclone/parse/module_manager.py +0 -715
- psyclone-3.2.2rc2/src/psyclone/parse/utils.py +0 -137
- psyclone-3.2.2rc2/src/psyclone/profiler.py +0 -196
- psyclone-3.2.2rc2/src/psyclone/psyGen.py +0 -2941
- psyclone-3.2.2rc2/src/psyclone/psyad/__init__.py +0 -41
- psyclone-3.2.2rc2/src/psyclone/psyad/adjoint_visitor.py +0 -468
- psyclone-3.2.2rc2/src/psyclone/psyad/domain/common/__init__.py +0 -42
- psyclone-3.2.2rc2/src/psyclone/psyad/domain/common/adjoint_utils.py +0 -243
- psyclone-3.2.2rc2/src/psyclone/psyad/domain/lfric/__init__.py +0 -42
- psyclone-3.2.2rc2/src/psyclone/psyad/domain/lfric/lfric_adjoint.py +0 -294
- psyclone-3.2.2rc2/src/psyclone/psyad/domain/lfric/lfric_adjoint_harness.py +0 -821
- psyclone-3.2.2rc2/src/psyclone/psyad/main.py +0 -215
- psyclone-3.2.2rc2/src/psyclone/psyad/tl2ad.py +0 -728
- psyclone-3.2.2rc2/src/psyclone/psyad/transformations/__init__.py +0 -39
- psyclone-3.2.2rc2/src/psyclone/psyad/transformations/adjoint_trans.py +0 -90
- psyclone-3.2.2rc2/src/psyclone/psyad/transformations/assignment_trans.py +0 -411
- psyclone-3.2.2rc2/src/psyclone/psyad/transformations/preprocess.py +0 -105
- psyclone-3.2.2rc2/src/psyclone/psyad/transformations/tangent_linear_error.py +0 -60
- psyclone-3.2.2rc2/src/psyclone/psyad/utils.py +0 -142
- psyclone-3.2.2rc2/src/psyclone/psyclonefc_cli.py +0 -139
- psyclone-3.2.2rc2/src/psyclone/psyir/__init__.py +0 -40
- psyclone-3.2.2rc2/src/psyclone/psyir/backend/__init__.py +0 -33
- psyclone-3.2.2rc2/src/psyclone/psyir/backend/c.py +0 -560
- psyclone-3.2.2rc2/src/psyclone/psyir/backend/debug_writer.py +0 -80
- psyclone-3.2.2rc2/src/psyclone/psyir/backend/fortran.py +0 -1797
- psyclone-3.2.2rc2/src/psyclone/psyir/backend/language_writer.py +0 -266
- psyclone-3.2.2rc2/src/psyclone/psyir/backend/opencl.py +0 -257
- psyclone-3.2.2rc2/src/psyclone/psyir/backend/sir.py +0 -571
- psyclone-3.2.2rc2/src/psyclone/psyir/backend/sympy_writer.py +0 -919
- psyclone-3.2.2rc2/src/psyclone/psyir/backend/visitor.py +0 -348
- psyclone-3.2.2rc2/src/psyclone/psyir/commentable_mixin.py +0 -115
- psyclone-3.2.2rc2/src/psyclone/psyir/frontend/__init__.py +0 -33
- psyclone-3.2.2rc2/src/psyclone/psyir/frontend/fortran.py +0 -279
- psyclone-3.2.2rc2/src/psyclone/psyir/frontend/fparser2.py +0 -5856
- psyclone-3.2.2rc2/src/psyclone/psyir/frontend/sympy_reader.py +0 -273
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/__init__.py +0 -209
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/acc_clauses.py +0 -161
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/acc_directives.py +0 -1113
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/acc_mixins.py +0 -191
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/array_member.py +0 -91
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/array_mixin.py +0 -851
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/array_of_structures_member.py +0 -97
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/array_of_structures_mixin.py +0 -143
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/array_of_structures_reference.py +0 -139
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/array_reference.py +0 -211
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/assignment.py +0 -258
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/atomic_mixin.py +0 -116
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/call.py +0 -882
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/clause.py +0 -75
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/codeblock.py +0 -281
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/container.py +0 -254
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/data_sharing_attribute_mixin.py +0 -276
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/datanode.py +0 -85
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/directive.py +0 -283
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/dynamic_omp_task_directive.py +0 -2163
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/extract_node.py +0 -426
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/file_container.py +0 -102
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/if_block.py +0 -197
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/intrinsic_call.py +0 -2464
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/kernel_schedule.py +0 -53
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/literal.py +0 -217
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/loop.py +0 -583
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/member.py +0 -147
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/node.py +0 -1881
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/omp_clauses.py +0 -580
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/omp_directives.py +0 -2491
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/omp_task_directive.py +0 -183
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/operation.py +0 -515
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/profile_node.py +0 -63
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/psy_data_node.py +0 -745
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/ranges.py +0 -262
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/read_only_verify_node.py +0 -102
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/reference.py +0 -411
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/return_stmt.py +0 -53
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/routine.py +0 -558
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/schedule.py +0 -89
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/scoping_node.py +0 -232
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/statement.py +0 -50
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/structure_accessor_mixin.py +0 -65
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/structure_member.py +0 -119
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/structure_reference.py +0 -382
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/value_range_check_node.py +0 -104
- psyclone-3.2.2rc2/src/psyclone/psyir/nodes/while_loop.py +0 -156
- psyclone-3.2.2rc2/src/psyclone/psyir/symbols/__init__.py +0 -101
- psyclone-3.2.2rc2/src/psyclone/psyir/symbols/containersymbol.py +0 -267
- psyclone-3.2.2rc2/src/psyclone/psyir/symbols/data_type_symbol.py +0 -161
- psyclone-3.2.2rc2/src/psyclone/psyir/symbols/datasymbol.py +0 -441
- psyclone-3.2.2rc2/src/psyclone/psyir/symbols/datatypes.py +0 -1351
- psyclone-3.2.2rc2/src/psyclone/psyir/symbols/generic_interface_symbol.py +0 -342
- psyclone-3.2.2rc2/src/psyclone/psyir/symbols/interfaces.py +0 -289
- psyclone-3.2.2rc2/src/psyclone/psyir/symbols/intrinsic_symbol.py +0 -71
- psyclone-3.2.2rc2/src/psyclone/psyir/symbols/routinesymbol.py +0 -200
- psyclone-3.2.2rc2/src/psyclone/psyir/symbols/symbol.py +0 -576
- psyclone-3.2.2rc2/src/psyclone/psyir/symbols/symbol_table.py +0 -2166
- psyclone-3.2.2rc2/src/psyclone/psyir/symbols/typed_symbol.py +0 -281
- psyclone-3.2.2rc2/src/psyclone/psyir/tools/__init__.py +0 -53
- psyclone-3.2.2rc2/src/psyclone/psyir/tools/call_tree_utils.py +0 -551
- psyclone-3.2.2rc2/src/psyclone/psyir/tools/definition_use_chains.py +0 -1096
- psyclone-3.2.2rc2/src/psyclone/psyir/tools/dependency_tools.py +0 -1105
- psyclone-3.2.2rc2/src/psyclone/psyir/tools/read_write_info.py +0 -167
- psyclone-3.2.2rc2/src/psyclone/psyir/tools/reduction_inference.py +0 -227
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/__init__.py +0 -177
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/acc_kernels_trans.py +0 -320
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/acc_update_trans.py +0 -467
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/allarrayaccess2loop_trans.py +0 -149
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/arrayaccess2loop_trans.py +0 -231
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/arrayassignment2loops_trans.py +0 -399
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/async_trans_mixin.py +0 -282
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/chunk_loop_trans.py +0 -287
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/debug_checksum_trans.py +0 -228
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/extract_trans.py +0 -140
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/fold_conditional_return_expressions_trans.py +0 -149
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/hoist_local_arrays_trans.py +0 -513
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/hoist_loop_bound_expr_trans.py +0 -163
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/hoist_trans.py +0 -286
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/increase_rank_loop_arrays_trans.py +0 -273
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/inline_trans.py +0 -1274
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/intrinsics/__init__.py +0 -40
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/intrinsics/abs2code_trans.py +0 -178
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/intrinsics/array_reduction_base_trans.py +0 -415
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/intrinsics/dotproduct2code_trans.py +0 -290
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/intrinsics/intrinsic2code_trans.py +0 -148
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/intrinsics/matmul2code_trans.py +0 -520
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/intrinsics/max2code_trans.py +0 -92
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/intrinsics/maxval2loop_trans.py +0 -191
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/intrinsics/min2code_trans.py +0 -95
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/intrinsics/minormax2code_trans.py +0 -185
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/intrinsics/minval2loop_trans.py +0 -189
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/intrinsics/product2loop_trans.py +0 -198
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/intrinsics/sign2code_trans.py +0 -197
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/intrinsics/sum2loop_trans.py +0 -202
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/loop_fuse_trans.py +0 -227
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/loop_swap_trans.py +0 -204
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/loop_tiling_2d_trans.py +0 -162
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/loop_tiling_trans.py +0 -196
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/loop_trans.py +0 -185
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/mark_routine_for_gpu_mixin.py +0 -175
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/omp_declare_target_trans.py +0 -148
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/omp_loop_trans.py +0 -380
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/omp_minimise_sync_trans.py +0 -544
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/omp_target_trans.py +0 -242
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/omp_task_trans.py +0 -234
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/omp_taskloop_trans.py +0 -276
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/omp_taskwait_trans.py +0 -486
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/parallel_loop_trans.py +0 -546
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/parallel_region_trans.py +0 -145
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/profile_trans.py +0 -126
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/psy_data_trans.py +0 -338
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/read_only_verify_trans.py +0 -126
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/reference2arrayrange_trans.py +0 -208
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/region_trans.py +0 -236
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/replace_induction_variables_trans.py +0 -286
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/replace_reference_by_literal_trans.py +0 -300
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/scalarisation_trans.py +0 -454
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/transformation_error.py +0 -49
- psyclone-3.2.2rc2/src/psyclone/psyir/transformations/value_range_check_trans.py +0 -106
- psyclone-3.2.2rc2/src/psyclone/transformations.py +0 -2638
- psyclone-3.2.2rc2/src/psyclone/utils.py +0 -168
- psyclone-3.2.2rc2/src/psyclone/version.py +0 -47
- psyclone-3.2.2rc2/tutorial/notebooks/introduction.ipynb +0 -110
- psyclone-3.2.2rc2/tutorial/notebooks/nemo/nemo_example4.ipynb +0 -166
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/CONTRIBUTING.md +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/README.md +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/gocean/eg1/compute_cu_mod.f90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/gocean/eg1/compute_cv_mod.f90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/gocean/eg1/compute_h_mod.f90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/gocean/eg1/compute_pnew_mod.f90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/gocean/eg1/compute_unew_mod.f90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/gocean/eg1/compute_vnew_mod.f90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/gocean/eg1/compute_z_mod.f90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/gocean/eg1/infrastructure_mod.f90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/gocean/eg1/time_smooth_mod.f90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/gocean/eg4/alg_kern_call_kern.f90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/gocean/eg5/extract/test.X90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/gocean/eg6/README.md +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/gocean/eg7/README.md +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/lfric/README.md +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/lfric/scripts/README.md +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/nemo/code/tra_adv.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/nemo/eg4/tra_adv_compute.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_calc_exner_pointwise_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_convert_hdiv_field_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_dg_inc_matrix_vector_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_helmholtz_operator_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_kinetic_energy_gradient_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_matrix_vector_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_moist_dyn_gas_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_poly1d_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_poly1d_vert_adv_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_poly1d_vert_w3_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_poly2d_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_poly_advective_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_pressure_gradient_bd_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_project_eos_pressure_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_rhs_project_eos_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_rhs_sample_eos_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_sample_eos_pressure_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_strong_curl_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_vorticity_advection_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/lbl_adj_poly1d_w3_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/lbl_adj_poly2d_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/lbl_adj_poly2d_w3_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/lbl_adj_pressure_gradient_bd_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/apply_helmholtz_operator_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/poly1d_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/poly1d_w3_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/poly2d_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/poly2d_w3_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/poly_adv_update_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/strong_curl_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_calc_exner_pointwise_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_hydrostatic_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_kinetic_energy_gradient_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_moist_dyn_gas_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_moist_dyn_mass_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_poly1d_vert_adv_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_poly1d_vert_w3_reconstruction_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_poly_advective_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_pressure_gradient_bd_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_rhs_project_eos_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_rhs_sample_eos_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_sample_eos_pressure_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_vorticity_advection_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/w2_to_w1_projection_kernel_mod.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/xdsl/backend/__init__.py +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/xdsl/pw_advection/advection_mpi.F90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/examples/xdsl/stencil_lower.py +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/lib/extract/test_compare.f90 +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/src/PSyclone.egg-info/dependency_links.txt +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/src/PSyclone.egg-info/top_level.txt +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/src/psyclone/domain/__init__.py +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/src/psyclone/doxy_main_page.py +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/src/psyclone/psyad/domain/__init__.py +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/tutorial/notebooks/fparser2/parsing_fortran.ipynb +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/tutorial/notebooks/nemo/nemo_example1.ipynb +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/tutorial/notebooks/nemo/nemo_example2.ipynb +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/tutorial/notebooks/nemo/nemo_example3.ipynb +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/tutorial/notebooks/psyir/psyir_example1.ipynb +0 -0
- {psyclone-3.2.2rc2 → psyclone-3.3.0}/tutorial/notebooks/psyir/psyir_example2.ipynb +0 -0
psyclone-3.3.0/LICENSE
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
BSD 3-Clause License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2017-2026, Science and Technology Facilities Council.
|
|
4
|
+
All rights reserved.
|
|
5
|
+
|
|
6
|
+
Redistribution and use in source and binary forms, with or without
|
|
7
|
+
modification, are permitted provided that the following conditions are met:
|
|
8
|
+
|
|
9
|
+
* Redistributions of source code must retain the above copyright notice, this
|
|
10
|
+
list of conditions and the following disclaimer.
|
|
11
|
+
|
|
12
|
+
* Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
+
this list of conditions and the following disclaimer in the documentation
|
|
14
|
+
and/or other materials provided with the distribution.
|
|
15
|
+
|
|
16
|
+
* Neither the name of the copyright holder nor the names of its
|
|
17
|
+
contributors may be used to endorse or promote products derived from
|
|
18
|
+
this software without specific prior written permission.
|
|
19
|
+
|
|
20
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
21
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
22
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
23
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
24
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
25
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
26
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
27
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
28
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
29
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# -----------------------------------------------------------------------------
|
|
2
|
+
# BSD 3-Clause License
|
|
3
|
+
#
|
|
4
|
+
# Copyright (c) 2017-2026, Science and Technology Facilities Council.
|
|
5
|
+
# All rights reserved.
|
|
6
|
+
#
|
|
7
|
+
# Redistribution and use in source and binary forms, with or without
|
|
8
|
+
# modification, are permitted provided that the following conditions are met:
|
|
9
|
+
#
|
|
10
|
+
# * Redistributions of source code must retain the above copyright notice, this
|
|
11
|
+
# list of conditions and the following disclaimer.
|
|
12
|
+
#
|
|
13
|
+
# * Redistributions in binary form must reproduce the above copyright notice,
|
|
14
|
+
# this list of conditions and the following disclaimer in the documentation
|
|
15
|
+
# and/or other materials provided with the distribution.
|
|
16
|
+
#
|
|
17
|
+
# * Neither the name of the copyright holder nor the names of its
|
|
18
|
+
# contributors may be used to endorse or promote products derived from
|
|
19
|
+
# this software without specific prior written permission.
|
|
20
|
+
#
|
|
21
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
22
|
+
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
23
|
+
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
24
|
+
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
25
|
+
# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
26
|
+
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
27
|
+
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
28
|
+
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
29
|
+
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
30
|
+
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
31
|
+
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
32
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
|
33
|
+
# -----------------------------------------------------------------------------
|
|
34
|
+
include LICENSE
|
|
35
|
+
include README*
|
|
36
|
+
include CONTRIBUTING.md
|
|
37
|
+
include src/psyclone/parse/lfric_builtins_mod.f90
|
psyclone-3.3.0/PKG-INFO
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: PSyclone
|
|
3
|
+
Version: 3.3.0
|
|
4
|
+
Summary: PSyclone - a source-to-source and DSL Fortran compiler for HPC applications
|
|
5
|
+
Author: Rupert Ford
|
|
6
|
+
Author-email: Andrew Porter <andrew.porter@stfc.ac.uk>, Sergi Siso <sergi.siso@stfc.ac.uk>, Aidan Chalk <aidan.chalk@stfc.ac.uk>, Joerg Henrichs <joerg.henrichs@bom.gov.au>
|
|
7
|
+
License-Expression: BSD-3-Clause
|
|
8
|
+
Project-URL: Homepage, https://github.com/stfc/psyclone
|
|
9
|
+
Project-URL: Download, https://github.com/stfc/psyclone
|
|
10
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Intended Audience :: Science/Research
|
|
14
|
+
Classifier: Natural Language :: English
|
|
15
|
+
Classifier: Programming Language :: Fortran
|
|
16
|
+
Classifier: Programming Language :: Python
|
|
17
|
+
Classifier: Topic :: Scientific/Engineering
|
|
18
|
+
Classifier: Topic :: Software Development
|
|
19
|
+
Classifier: Topic :: Utilities
|
|
20
|
+
Classifier: Operating System :: POSIX
|
|
21
|
+
Classifier: Operating System :: Unix
|
|
22
|
+
Classifier: Operating System :: MacOS
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
License-File: LICENSE
|
|
25
|
+
Requires-Dist: pyparsing
|
|
26
|
+
Requires-Dist: fparser==0.2.4
|
|
27
|
+
Requires-Dist: configparser
|
|
28
|
+
Requires-Dist: sympy<=1.13.3
|
|
29
|
+
Requires-Dist: Jinja2
|
|
30
|
+
Requires-Dist: termcolor
|
|
31
|
+
Requires-Dist: graphviz
|
|
32
|
+
Provides-Extra: doc
|
|
33
|
+
Requires-Dist: sphinx<=8.3; extra == "doc"
|
|
34
|
+
Requires-Dist: sphinxcontrib.bibtex; extra == "doc"
|
|
35
|
+
Requires-Dist: sphinx_design; extra == "doc"
|
|
36
|
+
Requires-Dist: pydata-sphinx-theme; extra == "doc"
|
|
37
|
+
Requires-Dist: sphinx-autodoc-typehints; extra == "doc"
|
|
38
|
+
Requires-Dist: autoapi; extra == "doc"
|
|
39
|
+
Provides-Extra: test
|
|
40
|
+
Requires-Dist: flake8; extra == "test"
|
|
41
|
+
Requires-Dist: pylint; extra == "test"
|
|
42
|
+
Requires-Dist: pytest-cov; extra == "test"
|
|
43
|
+
Requires-Dist: pytest-xdist; extra == "test"
|
|
44
|
+
Requires-Dist: tree-sitter; extra == "test"
|
|
45
|
+
Requires-Dist: tree-sitter-fortran; extra == "test"
|
|
46
|
+
Provides-Extra: treesitter
|
|
47
|
+
Requires-Dist: tree-sitter; extra == "treesitter"
|
|
48
|
+
Requires-Dist: tree-sitter-fortran; extra == "treesitter"
|
|
49
|
+
Dynamic: license-file
|
|
50
|
+
|
|
51
|
+
<picture>
|
|
52
|
+
<source media="(prefers-color-scheme: dark)" srcset="doc/logo/psyclone_logo_dark_theme.png">
|
|
53
|
+
<source media="(prefers-color-scheme: light)" srcset="doc/logo/psyclone_logo_light_theme.png">
|
|
54
|
+
<img alt="PSyclone logo" width="460" src="doc/logo/psyclone_logo_light_theme.png">
|
|
55
|
+
</picture>
|
|
56
|
+
|
|
57
|
+
[](https://doi.org/10.5281/zenodo.11190457)
|
|
58
|
+

|
|
59
|
+
[](https://codecov.io/gh/stfc/PSyclone)
|
|
60
|
+
|
|
61
|
+
PSyclone is a source-to-source Fortran compiler designed to programmatically
|
|
62
|
+
optimise, parallelise and instrument HPC applications via user-provided
|
|
63
|
+
transformation scripts. By encapsulating the performance-portability aspects
|
|
64
|
+
(e.g. whether to parallelise with OpenMP or OpenACC), these scripts enable
|
|
65
|
+
a separation of concerns between the scientific implementation and the
|
|
66
|
+
optimisation choices. This allows each aspect to be explored and developed
|
|
67
|
+
largely independently.
|
|
68
|
+
Additionally, PSyclone supports the development of kernel-based Fortran-embedded
|
|
69
|
+
DSLs following the PSyKAl model developed in the
|
|
70
|
+
[GungHo project](https://www.metoffice.gov.uk/research/foundation/dynamics/next-generation).
|
|
71
|
+
|
|
72
|
+
PSyclone is currently used to support the [LFRic mixed finite-element PSyKAl
|
|
73
|
+
DSL](https://psyclone.readthedocs.io/en/latest/user_guide/lfric.html)
|
|
74
|
+
for the [UK MetOffice's next generation modelling
|
|
75
|
+
system](https://www.metoffice.gov.uk/research/approach/modelling-systems/lfric) and
|
|
76
|
+
the [GOcean finite-difference PSyKAl
|
|
77
|
+
DSL](https://psyclone.readthedocs.io/en/latest/user_guide/gocean1p0.html) for a [prototype
|
|
78
|
+
2D ocean modelling system](https://gtr.ukri.org/projects?ref=NE%2FL01209X%2F1).
|
|
79
|
+
It is also used to [insert GPU offloading
|
|
80
|
+
directives](https://psyclone.readthedocs.io/en/latest/tutorials_and_examples/nemo_examples.html) into existing
|
|
81
|
+
directly-addressed MPI applications such as the
|
|
82
|
+
[NEMO ocean model](https://www.nemo-ocean.eu/).
|
|
83
|
+
|
|
84
|
+
For more detailed information see the [PSyclone Documentation](http://psyclone.readthedocs.io/en/latest).
|
|
85
|
+
|
|
86
|
+
# Installation #
|
|
87
|
+
|
|
88
|
+
You can install the latest release of psyclone from PyPI by using:
|
|
89
|
+
|
|
90
|
+
$ pip install psyclone
|
|
91
|
+
|
|
92
|
+
or, if you want an isolated installation in a [python virtual
|
|
93
|
+
environment](https://docs.python.org/3/library/venv.html):
|
|
94
|
+
|
|
95
|
+
$ python -m venv <virtual_env_name>
|
|
96
|
+
$ source <virtual_env_name>/bin/activate
|
|
97
|
+
$ pip install psyclone
|
|
98
|
+
|
|
99
|
+
Alternatively, you can install the latest upstream version of psyclone by
|
|
100
|
+
cloning this repository and using:
|
|
101
|
+
|
|
102
|
+
$ pip install .
|
|
103
|
+
|
|
104
|
+
or in developer (editable) mode using
|
|
105
|
+
|
|
106
|
+
$ pip install -e .
|
|
107
|
+
|
|
108
|
+
PSyclone is also available in the
|
|
109
|
+
[Conda](https://anaconda.org/conda-forge/psyclone) and
|
|
110
|
+
[Spack](https://packages.spack.io/package.html?name=py-psyclone) package
|
|
111
|
+
managers.
|
|
112
|
+
|
|
113
|
+
For more information about the installation process see the
|
|
114
|
+
[Getting Going](https://psyclone.readthedocs.io/en/latest/user_guide/getting_going.html).
|
|
115
|
+
section of the User Guide.
|
|
116
|
+
|
|
117
|
+
<!--- TODO #2627
|
|
118
|
+
# Try it on Binder #
|
|
119
|
+
|
|
120
|
+
Some of the examples are available as Jupyter notebooks. These may
|
|
121
|
+
be launched using Binder from the links below. (Note that the first time
|
|
122
|
+
this is done, Binder has to construct a Container and install the necessary
|
|
123
|
+
software. This can take several minutes. You can track its progress
|
|
124
|
+
by clicking the 'show' link next to the 'Build logs' heading.)
|
|
125
|
+
|
|
126
|
+
* [](https://mybinder.org/v2/gh/stfc/psyclone/master?filepath=tutorial%2Fnotebooks%2Fintroduction.ipynb) The **PSyclone Tutorial**. Note that we currently recommend following the more up-to-date README files under the `tutorials/practicals` directory.
|
|
127
|
+
|
|
128
|
+
* [](https://mybinder.org/v2/gh/stfc/psyclone/master?filepath=examples%2Fgocean%2Feg1%2Fopenmp.ipynb) Uses PSyclone's GOcean API to process example code that conforms to the PSyKAl separation of concerns. Transformations are applied in order to fuse various loops before parallelising the result with OpenMP.
|
|
129
|
+
|
|
130
|
+
* [](https://mybinder.org/v2/gh/stfc/psyclone/master?filepath=examples%2Fgocean%2Feg1%2Fdag.ipynb) demonstrates the generation of a DAG for the PSy layer of the previous example.
|
|
131
|
+
--->
|
|
132
|
+
|
|
133
|
+
# Structure #
|
|
134
|
+
|
|
135
|
+
Path | Description
|
|
136
|
+
------------------- | -----------
|
|
137
|
+
bin/ | Top-level driver scripts for PSyclone and the PSyclone kernel tool
|
|
138
|
+
changelog | Information on changes between releases
|
|
139
|
+
doc/ | Documentation source using Sphinx
|
|
140
|
+
examples/ | Simple examples
|
|
141
|
+
README.md | This file
|
|
142
|
+
src/psyclone | The Python source code
|
|
143
|
+
src/psyclone/tests/ | Unit and functional tests using pytest
|
|
144
|
+
tutorial/practicals | Hands-on exercises using a local installation of PSyclone
|
psyclone-3.3.0/README.md
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
<picture>
|
|
2
|
+
<source media="(prefers-color-scheme: dark)" srcset="doc/logo/psyclone_logo_dark_theme.png">
|
|
3
|
+
<source media="(prefers-color-scheme: light)" srcset="doc/logo/psyclone_logo_light_theme.png">
|
|
4
|
+
<img alt="PSyclone logo" width="460" src="doc/logo/psyclone_logo_light_theme.png">
|
|
5
|
+
</picture>
|
|
6
|
+
|
|
7
|
+
[](https://doi.org/10.5281/zenodo.11190457)
|
|
8
|
+

|
|
9
|
+
[](https://codecov.io/gh/stfc/PSyclone)
|
|
10
|
+
|
|
11
|
+
PSyclone is a source-to-source Fortran compiler designed to programmatically
|
|
12
|
+
optimise, parallelise and instrument HPC applications via user-provided
|
|
13
|
+
transformation scripts. By encapsulating the performance-portability aspects
|
|
14
|
+
(e.g. whether to parallelise with OpenMP or OpenACC), these scripts enable
|
|
15
|
+
a separation of concerns between the scientific implementation and the
|
|
16
|
+
optimisation choices. This allows each aspect to be explored and developed
|
|
17
|
+
largely independently.
|
|
18
|
+
Additionally, PSyclone supports the development of kernel-based Fortran-embedded
|
|
19
|
+
DSLs following the PSyKAl model developed in the
|
|
20
|
+
[GungHo project](https://www.metoffice.gov.uk/research/foundation/dynamics/next-generation).
|
|
21
|
+
|
|
22
|
+
PSyclone is currently used to support the [LFRic mixed finite-element PSyKAl
|
|
23
|
+
DSL](https://psyclone.readthedocs.io/en/latest/user_guide/lfric.html)
|
|
24
|
+
for the [UK MetOffice's next generation modelling
|
|
25
|
+
system](https://www.metoffice.gov.uk/research/approach/modelling-systems/lfric) and
|
|
26
|
+
the [GOcean finite-difference PSyKAl
|
|
27
|
+
DSL](https://psyclone.readthedocs.io/en/latest/user_guide/gocean1p0.html) for a [prototype
|
|
28
|
+
2D ocean modelling system](https://gtr.ukri.org/projects?ref=NE%2FL01209X%2F1).
|
|
29
|
+
It is also used to [insert GPU offloading
|
|
30
|
+
directives](https://psyclone.readthedocs.io/en/latest/tutorials_and_examples/nemo_examples.html) into existing
|
|
31
|
+
directly-addressed MPI applications such as the
|
|
32
|
+
[NEMO ocean model](https://www.nemo-ocean.eu/).
|
|
33
|
+
|
|
34
|
+
For more detailed information see the [PSyclone Documentation](http://psyclone.readthedocs.io/en/latest).
|
|
35
|
+
|
|
36
|
+
# Installation #
|
|
37
|
+
|
|
38
|
+
You can install the latest release of psyclone from PyPI by using:
|
|
39
|
+
|
|
40
|
+
$ pip install psyclone
|
|
41
|
+
|
|
42
|
+
or, if you want an isolated installation in a [python virtual
|
|
43
|
+
environment](https://docs.python.org/3/library/venv.html):
|
|
44
|
+
|
|
45
|
+
$ python -m venv <virtual_env_name>
|
|
46
|
+
$ source <virtual_env_name>/bin/activate
|
|
47
|
+
$ pip install psyclone
|
|
48
|
+
|
|
49
|
+
Alternatively, you can install the latest upstream version of psyclone by
|
|
50
|
+
cloning this repository and using:
|
|
51
|
+
|
|
52
|
+
$ pip install .
|
|
53
|
+
|
|
54
|
+
or in developer (editable) mode using
|
|
55
|
+
|
|
56
|
+
$ pip install -e .
|
|
57
|
+
|
|
58
|
+
PSyclone is also available in the
|
|
59
|
+
[Conda](https://anaconda.org/conda-forge/psyclone) and
|
|
60
|
+
[Spack](https://packages.spack.io/package.html?name=py-psyclone) package
|
|
61
|
+
managers.
|
|
62
|
+
|
|
63
|
+
For more information about the installation process see the
|
|
64
|
+
[Getting Going](https://psyclone.readthedocs.io/en/latest/user_guide/getting_going.html).
|
|
65
|
+
section of the User Guide.
|
|
66
|
+
|
|
67
|
+
<!--- TODO #2627
|
|
68
|
+
# Try it on Binder #
|
|
69
|
+
|
|
70
|
+
Some of the examples are available as Jupyter notebooks. These may
|
|
71
|
+
be launched using Binder from the links below. (Note that the first time
|
|
72
|
+
this is done, Binder has to construct a Container and install the necessary
|
|
73
|
+
software. This can take several minutes. You can track its progress
|
|
74
|
+
by clicking the 'show' link next to the 'Build logs' heading.)
|
|
75
|
+
|
|
76
|
+
* [](https://mybinder.org/v2/gh/stfc/psyclone/master?filepath=tutorial%2Fnotebooks%2Fintroduction.ipynb) The **PSyclone Tutorial**. Note that we currently recommend following the more up-to-date README files under the `tutorials/practicals` directory.
|
|
77
|
+
|
|
78
|
+
* [](https://mybinder.org/v2/gh/stfc/psyclone/master?filepath=examples%2Fgocean%2Feg1%2Fopenmp.ipynb) Uses PSyclone's GOcean API to process example code that conforms to the PSyKAl separation of concerns. Transformations are applied in order to fuse various loops before parallelising the result with OpenMP.
|
|
79
|
+
|
|
80
|
+
* [](https://mybinder.org/v2/gh/stfc/psyclone/master?filepath=examples%2Fgocean%2Feg1%2Fdag.ipynb) demonstrates the generation of a DAG for the PSy layer of the previous example.
|
|
81
|
+
--->
|
|
82
|
+
|
|
83
|
+
# Structure #
|
|
84
|
+
|
|
85
|
+
Path | Description
|
|
86
|
+
------------------- | -----------
|
|
87
|
+
bin/ | Top-level driver scripts for PSyclone and the PSyclone kernel tool
|
|
88
|
+
changelog | Information on changes between releases
|
|
89
|
+
doc/ | Documentation source using Sphinx
|
|
90
|
+
examples/ | Simple examples
|
|
91
|
+
README.md | This file
|
|
92
|
+
src/psyclone | The Python source code
|
|
93
|
+
src/psyclone/tests/ | Unit and functional tests using pytest
|
|
94
|
+
tutorial/practicals | Hands-on exercises using a local installation of PSyclone
|
psyclone-3.3.0/bin/psyad
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# -----------------------------------------------------------------------------
|
|
3
|
+
# BSD 3-Clause License
|
|
4
|
+
#
|
|
5
|
+
# Copyright (c) 2021-2026, Science and Technology Facilities Council
|
|
6
|
+
# All rights reserved.
|
|
7
|
+
#
|
|
8
|
+
# Redistribution and use in source and binary forms, with or without
|
|
9
|
+
# modification, are permitted provided that the following conditions are met:
|
|
10
|
+
#
|
|
11
|
+
# * Redistributions of source code must retain the above copyright notice, this
|
|
12
|
+
# list of conditions and the following disclaimer.
|
|
13
|
+
#
|
|
14
|
+
# * Redistributions in binary form must reproduce the above copyright notice,
|
|
15
|
+
# this list of conditions and the following disclaimer in the documentation
|
|
16
|
+
# and/or other materials provided with the distribution.
|
|
17
|
+
#
|
|
18
|
+
# * Neither the name of the copyright holder nor the names of its
|
|
19
|
+
# contributors may be used to endorse or promote products derived from
|
|
20
|
+
# this software without specific prior written permission.
|
|
21
|
+
#
|
|
22
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
23
|
+
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
24
|
+
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
25
|
+
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
26
|
+
# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
27
|
+
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
28
|
+
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
29
|
+
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
30
|
+
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
31
|
+
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
32
|
+
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
33
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
|
34
|
+
# -----------------------------------------------------------------------------
|
|
35
|
+
# Authors R. W. Ford and A. R. Porter, STFC Daresbury Lab
|
|
36
|
+
|
|
37
|
+
'''Top-level executable driver script wrapper for PSyAD : the PSyclone
|
|
38
|
+
Adjoint support. Transforms an LFRic tangent linear kernel to its
|
|
39
|
+
adjoint.
|
|
40
|
+
|
|
41
|
+
'''
|
|
42
|
+
import sys
|
|
43
|
+
from psyclone.psyad import main
|
|
44
|
+
|
|
45
|
+
if __name__ == "__main__":
|
|
46
|
+
main(sys.argv[1:])
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# -----------------------------------------------------------------------------
|
|
3
|
+
# BSD 3-Clause License
|
|
4
|
+
#
|
|
5
|
+
# Copyright (c) 2017-2026, Science and Technology Facilities Council
|
|
6
|
+
# All rights reserved.
|
|
7
|
+
#
|
|
8
|
+
# Redistribution and use in source and binary forms, with or without
|
|
9
|
+
# modification, are permitted provided that the following conditions are met:
|
|
10
|
+
#
|
|
11
|
+
# * Redistributions of source code must retain the above copyright notice, this
|
|
12
|
+
# list of conditions and the following disclaimer.
|
|
13
|
+
#
|
|
14
|
+
# * Redistributions in binary form must reproduce the above copyright notice,
|
|
15
|
+
# this list of conditions and the following disclaimer in the documentation
|
|
16
|
+
# and/or other materials provided with the distribution.
|
|
17
|
+
#
|
|
18
|
+
# * Neither the name of the copyright holder nor the names of its
|
|
19
|
+
# contributors may be used to endorse or promote products derived from
|
|
20
|
+
# this software without specific prior written permission.
|
|
21
|
+
#
|
|
22
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
23
|
+
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
24
|
+
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
25
|
+
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
26
|
+
# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
27
|
+
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
28
|
+
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
29
|
+
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
30
|
+
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
31
|
+
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
32
|
+
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
33
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
|
34
|
+
# -----------------------------------------------------------------------------
|
|
35
|
+
|
|
36
|
+
''' Top-level driver script for PSyclone. '''
|
|
37
|
+
|
|
38
|
+
import sys
|
|
39
|
+
from psyclone.generator import main
|
|
40
|
+
|
|
41
|
+
if __name__ == "__main__":
|
|
42
|
+
main(sys.argv[1:])
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# -----------------------------------------------------------------------------
|
|
3
|
+
# BSD 3-Clause License
|
|
4
|
+
#
|
|
5
|
+
# Copyright (c) 2017-2026, Science and Technology Facilities Council
|
|
6
|
+
# All rights reserved.
|
|
7
|
+
#
|
|
8
|
+
# Redistribution and use in source and binary forms, with or without
|
|
9
|
+
# modification, are permitted provided that the following conditions are met:
|
|
10
|
+
#
|
|
11
|
+
# * Redistributions of source code must retain the above copyright notice, this
|
|
12
|
+
# list of conditions and the following disclaimer.
|
|
13
|
+
#
|
|
14
|
+
# * Redistributions in binary form must reproduce the above copyright notice,
|
|
15
|
+
# this list of conditions and the following disclaimer in the documentation
|
|
16
|
+
# and/or other materials provided with the distribution.
|
|
17
|
+
#
|
|
18
|
+
# * Neither the name of the copyright holder nor the names of its
|
|
19
|
+
# contributors may be used to endorse or promote products derived from
|
|
20
|
+
# this software without specific prior written permission.
|
|
21
|
+
#
|
|
22
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
23
|
+
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
24
|
+
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
25
|
+
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
26
|
+
# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
27
|
+
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
28
|
+
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
29
|
+
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
30
|
+
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
31
|
+
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
32
|
+
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
33
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
|
34
|
+
# -----------------------------------------------------------------------------
|
|
35
|
+
# Authors: R. W. Ford and A. R. Porter, STFC Daresbury Lab
|
|
36
|
+
|
|
37
|
+
'''A Python driver script for the PSyclone kernel utilities tool.
|
|
38
|
+
'''
|
|
39
|
+
|
|
40
|
+
import sys
|
|
41
|
+
from psyclone.kernel_tools import run
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
if __name__ == "__main__":
|
|
45
|
+
|
|
46
|
+
run(sys.argv[1:])
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# -----------------------------------------------------------------------------
|
|
3
|
+
# BSD 3-Clause License
|
|
4
|
+
#
|
|
5
|
+
# Copyright (c) 2025-2026, Science and Technology Facilities Council
|
|
6
|
+
# All rights reserved.
|
|
7
|
+
#
|
|
8
|
+
# Redistribution and use in source and binary forms, with or without
|
|
9
|
+
# modification, are permitted provided that the following conditions are met:
|
|
10
|
+
#
|
|
11
|
+
# * Redistributions of source code must retain the above copyright notice, this
|
|
12
|
+
# list of conditions and the following disclaimer.
|
|
13
|
+
#
|
|
14
|
+
# * Redistributions in binary form must reproduce the above copyright notice,
|
|
15
|
+
# this list of conditions and the following disclaimer in the documentation
|
|
16
|
+
# and/or other materials provided with the distribution.
|
|
17
|
+
#
|
|
18
|
+
# * Neither the name of the copyright holder nor the names of its
|
|
19
|
+
# contributors may be used to endorse or promote products derived from
|
|
20
|
+
# this software without specific prior written permission.
|
|
21
|
+
#
|
|
22
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
23
|
+
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
24
|
+
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
25
|
+
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
26
|
+
# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
27
|
+
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
28
|
+
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
29
|
+
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
30
|
+
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
31
|
+
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
32
|
+
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
33
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
|
34
|
+
# -----------------------------------------------------------------------------
|
|
35
|
+
|
|
36
|
+
'''
|
|
37
|
+
Entry point for the psyclonefc command (PSyclone's compiler wrapper script).
|
|
38
|
+
'''
|
|
39
|
+
|
|
40
|
+
import sys
|
|
41
|
+
from psyclone.psyclonefc_cli import compiler_wrapper
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
if __name__ == "__main__":
|
|
45
|
+
compiler_wrapper(sys.argv[1:])
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# -----------------------------------------------------------------------------
|
|
2
|
+
# BSD 3-Clause License
|
|
3
|
+
#
|
|
4
|
+
# Copyright (c) 2017-2026, Science and Technology Facilities Council
|
|
5
|
+
# All rights reserved.
|
|
6
|
+
#
|
|
7
|
+
# Redistribution and use in source and binary forms, with or without
|
|
8
|
+
# modification, are permitted provided that the following conditions are met:
|
|
9
|
+
#
|
|
10
|
+
# * Redistributions of source code must retain the above copyright notice, this
|
|
11
|
+
# list of conditions and the following disclaimer.
|
|
12
|
+
#
|
|
13
|
+
# * Redistributions in binary form must reproduce the above copyright notice,
|
|
14
|
+
# this list of conditions and the following disclaimer in the documentation
|
|
15
|
+
# and/or other materials provided with the distribution.
|
|
16
|
+
#
|
|
17
|
+
# * Neither the name of the copyright holder nor the names of its
|
|
18
|
+
# contributors may be used to endorse or promote products derived from
|
|
19
|
+
# this software without specific prior written permission.
|
|
20
|
+
#
|
|
21
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
22
|
+
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
23
|
+
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
24
|
+
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
25
|
+
# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
26
|
+
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
27
|
+
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
28
|
+
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
29
|
+
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
30
|
+
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
31
|
+
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
32
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
|
33
|
+
# -----------------------------------------------------------------------------
|
|
34
|
+
# Author: A. R. Porter, STFC Daresbury Laboratory
|
|
35
|
+
# Modified by: R. W. Ford, STFC Daresbury Laboratory
|
|
36
|
+
# S. Siso, STFC Daresbury Laboratory
|
|
37
|
+
# J. Henrichs, Bureau of Meteorology,
|
|
38
|
+
# I. Kavcic and O. Brunt, Met Office
|
|
39
|
+
|
|
40
|
+
# This is the PSyclone configuration file.
|
|
41
|
+
|
|
42
|
+
# Settings common to all APIs
|
|
43
|
+
[DEFAULT]
|
|
44
|
+
DISTRIBUTED_MEMORY = true
|
|
45
|
+
REPRODUCIBLE_REDUCTIONS = false
|
|
46
|
+
# Amount to pad the local summation array when REPRODUCIBLE_REDUCTIONS is true
|
|
47
|
+
REPROD_PAD_SIZE = 8
|
|
48
|
+
PSYIR_ROOT_NAME = psyir_tmp
|
|
49
|
+
VALID_PSY_DATA_PREFIXES = profile, extract, read_only_verify, value_range_check
|
|
50
|
+
|
|
51
|
+
# Specify number of OpenCL devices per node. When combining OpenCL with MPI,
|
|
52
|
+
# the mpirun/mpiexec ranks_per_node parameter must match this number.
|
|
53
|
+
OCL_DEVICES_PER_NODE = 1
|
|
54
|
+
|
|
55
|
+
# Symbols imported from the following modules will be ignored when parsing
|
|
56
|
+
# and will not produce a warning message if they cannot be found.
|
|
57
|
+
IGNORE_MODULES = netcdf, mpi
|
|
58
|
+
|
|
59
|
+
# The Fortran standard to use when parsing files. This value is passed
|
|
60
|
+
# to fparser. Valid values are f2003 and f2008
|
|
61
|
+
FORTRAN_STANDARD = f2008
|
|
62
|
+
|
|
63
|
+
# Settings specific to the LFRic API
|
|
64
|
+
# ==================================
|
|
65
|
+
[lfric]
|
|
66
|
+
# Specify whether we compute annexed dofs when a kernel is written so
|
|
67
|
+
# that it iterates over dofs. This is currently only the case for
|
|
68
|
+
# builtins. If annexed dofs are computed then in certain cases we
|
|
69
|
+
# remove the need for a halo exchange call.
|
|
70
|
+
COMPUTE_ANNEXED_DOFS = false
|
|
71
|
+
|
|
72
|
+
# Specify supported Fortran datatypes
|
|
73
|
+
supported_fortran_datatypes = real, integer, logical
|
|
74
|
+
|
|
75
|
+
# Specify default kind (precision) for the supported LFRic data types
|
|
76
|
+
default_kind = real: r_def, integer: i_def, logical: l_def
|
|
77
|
+
|
|
78
|
+
# Specify number of bytes for the supported LFRic data types.
|
|
79
|
+
# The values for 'r_tran', 'r_solver', 'r_def', 'r_bl' and 'r_phys' are
|
|
80
|
+
# set according to CPP ifdefs. The values given below are the defaults.
|
|
81
|
+
# 'l_def' is included in this dict so that it contains a complete
|
|
82
|
+
# record of the various precision symbols used in LFRic.
|
|
83
|
+
precision_map = i_def: 4,
|
|
84
|
+
l_def: 1,
|
|
85
|
+
r_def: 8,
|
|
86
|
+
r_double: 8,
|
|
87
|
+
r_ncdf: 8,
|
|
88
|
+
r_quad: 16,
|
|
89
|
+
r_second: 8,
|
|
90
|
+
r_single: 4,
|
|
91
|
+
r_solver: 4,
|
|
92
|
+
r_tran: 8,
|
|
93
|
+
r_bl: 8,
|
|
94
|
+
r_um: 8
|
|
95
|
+
|
|
96
|
+
# Specify whether we generate code to perform runtime correctness checks.
|
|
97
|
+
# Allowed values:
|
|
98
|
+
# none: no run time checks are added
|
|
99
|
+
# warn: run time checks are added, violations will create a warning
|
|
100
|
+
# error: run time checks are added, violations will create an error and abort
|
|
101
|
+
RUN_TIME_CHECKS = none
|
|
102
|
+
|
|
103
|
+
# Number of ANY_SPACE and ANY_DISCONTINUOUS_SPACE function spaces
|
|
104
|
+
NUM_ANY_SPACE = 10
|
|
105
|
+
NUM_ANY_DISCONTINUOUS_SPACE = 10
|
|
106
|
+
|
|
107
|
+
# Settings specific to the Gocean API
|
|
108
|
+
# ===================================
|
|
109
|
+
[gocean]
|
|
110
|
+
# The detail for grid properties. There are four entries:
|
|
111
|
+
# 1) The name used in a kernel declaration.
|
|
112
|
+
# 2) The string required to dereference the property from the field.
|
|
113
|
+
# A {0} is replaced with the name of the field variable
|
|
114
|
+
# 3) The type of the property: must be 'scalar' or 'array'.
|
|
115
|
+
# 4) The intrinsic type of the property: must be 'integer' or 'real'.
|
|
116
|
+
# The following values are used by PSyclone, and are therefore required:
|
|
117
|
+
# go_grid_xstop, go_grid_ystop,
|
|
118
|
+
# go_grid_{internal,whole}_{inner,outer}_{start,stop}
|
|
119
|
+
# Details about the grid properties and their usage can be found in the
|
|
120
|
+
# PSyclone documentation at:
|
|
121
|
+
# https://psyclone.readthedocs.io/en/stable/gocean1p0.html#argument-metadata-meta-args
|
|
122
|
+
grid-properties = go_grid_xstop: {0}%%grid%%subdomain%%internal%%xstop: scalar: integer,
|
|
123
|
+
go_grid_ystop: {0}%%grid%%subdomain%%internal%%ystop: scalar: integer,
|
|
124
|
+
go_grid_data: {0}%%data: array: real,
|
|
125
|
+
go_grid_internal_inner_stop: {0}%%internal%%xstop: scalar: integer,
|
|
126
|
+
go_grid_internal_outer_stop: {0}%%internal%%ystop: scalar: integer,
|
|
127
|
+
go_grid_whole_inner_stop: {0}%%whole%%xstop: scalar: integer,
|
|
128
|
+
go_grid_whole_outer_stop: {0}%%whole%%ystop: scalar: integer,
|
|
129
|
+
go_grid_internal_inner_start: {0}%%internal%%xstart: scalar: integer,
|
|
130
|
+
go_grid_internal_outer_start: {0}%%internal%%ystart: scalar: integer,
|
|
131
|
+
go_grid_whole_inner_start: {0}%%whole%%xstart: scalar: integer,
|
|
132
|
+
go_grid_whole_outer_start: {0}%%whole%%ystart: scalar: integer,
|
|
133
|
+
go_grid_area_t: {0}%%grid%%area_t: array: real,
|
|
134
|
+
go_grid_area_u: {0}%%grid%%area_u: array: real,
|
|
135
|
+
go_grid_area_v: {0}%%grid%%area_v: array: real,
|
|
136
|
+
go_grid_mask_t: {0}%%grid%%tmask: array: integer,
|
|
137
|
+
go_grid_dx_t: {0}%%grid%%dx_t: array: real,
|
|
138
|
+
go_grid_dx_u: {0}%%grid%%dx_u: array: real,
|
|
139
|
+
go_grid_dx_v: {0}%%grid%%dx_v: array: real,
|
|
140
|
+
go_grid_dy_t: {0}%%grid%%dy_t: array: real,
|
|
141
|
+
go_grid_dy_u: {0}%%grid%%dy_u: array: real,
|
|
142
|
+
go_grid_dy_v: {0}%%grid%%dy_v: array: real,
|
|
143
|
+
go_grid_lat_u: {0}%%grid%%gphiu: array: real,
|
|
144
|
+
go_grid_lat_v: {0}%%grid%%gphiv: array: real,
|
|
145
|
+
go_grid_dx_const: {0}%%grid%%dx: scalar: real,
|
|
146
|
+
go_grid_dy_const: {0}%%grid%%dy: scalar: real,
|
|
147
|
+
go_grid_nx: {0}%%grid%%nx: scalar: integer,
|
|
148
|
+
go_grid_ny: {0}%%grid%%ny: scalar: integer,
|
|
149
|
+
go_grid_x_min_index: {0}%%grid%%subdomain%%internal%%xstart: scalar: integer,
|
|
150
|
+
go_grid_x_max_index: {0}%%grid%%subdomain%%internal%%xstop: scalar: integer,
|
|
151
|
+
go_grid_y_min_index: {0}%%grid%%subdomain%%internal%%ystart: scalar: integer,
|
|
152
|
+
go_grid_y_max_index: {0}%%grid%%subdomain%%internal%%ystop: scalar: integer
|
|
153
|
+
|
|
154
|
+
# Specify whether we generate additional debug code
|
|
155
|
+
DEBUG_MODE = false
|