PSyclone 3.2.2__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.
Files changed (1552) hide show
  1. psyclone-3.3.0/LICENSE +29 -0
  2. psyclone-3.3.0/MANIFEST.in +37 -0
  3. psyclone-3.3.0/PKG-INFO +144 -0
  4. psyclone-3.3.0/README.md +94 -0
  5. psyclone-3.3.0/bin/psyad +46 -0
  6. psyclone-3.3.0/bin/psyclone +42 -0
  7. psyclone-3.3.0/bin/psyclone-kern +46 -0
  8. psyclone-3.3.0/bin/psyclonefc +45 -0
  9. psyclone-3.3.0/config/psyclone.cfg +155 -0
  10. psyclone-3.3.0/examples/Makefile +46 -0
  11. psyclone-3.3.0/examples/common.mk +103 -0
  12. psyclone-3.3.0/examples/gocean/Makefile +39 -0
  13. psyclone-3.3.0/examples/gocean/README.md +101 -0
  14. psyclone-3.3.0/examples/gocean/eg1/Makefile +113 -0
  15. psyclone-3.3.0/examples/gocean/eg1/README.md +74 -0
  16. psyclone-3.3.0/examples/gocean/eg1/fuse_and_insert_openacc.py +81 -0
  17. psyclone-3.3.0/examples/gocean/eg1/fuse_and_insert_openmp.py +72 -0
  18. psyclone-3.3.0/examples/gocean/eg1/fuse_loops.py +69 -0
  19. psyclone-3.3.0/examples/gocean/eg1/generate_dag.py +59 -0
  20. psyclone-3.3.0/examples/gocean/eg1/opencl_transformation.py +81 -0
  21. psyclone-3.3.0/examples/gocean/eg1/openmp_taskloop_trans.py +71 -0
  22. psyclone-3.3.0/examples/gocean/eg1/print_schedule.py +54 -0
  23. psyclone-3.3.0/examples/gocean/eg1/shallow_alg.f90 +251 -0
  24. psyclone-3.3.0/examples/gocean/eg2/Makefile +123 -0
  25. psyclone-3.3.0/examples/gocean/eg2/README.md +106 -0
  26. psyclone-3.3.0/examples/gocean/eg2/acc_prof_transform.py +63 -0
  27. psyclone-3.3.0/examples/gocean/eg2/acc_transform.py +85 -0
  28. psyclone-3.3.0/examples/gocean/eg2/alg.f90 +99 -0
  29. psyclone-3.3.0/examples/gocean/eg2/inc_field_mod.f90 +79 -0
  30. psyclone-3.3.0/examples/gocean/eg3/Makefile +113 -0
  31. psyclone-3.3.0/examples/gocean/eg3/README.md +133 -0
  32. psyclone-3.3.0/examples/gocean/eg3/alg.f90 +103 -0
  33. psyclone-3.3.0/examples/gocean/eg3/compute_cu_mod.f90 +89 -0
  34. psyclone-3.3.0/examples/gocean/eg3/compute_cv_mod.f90 +85 -0
  35. psyclone-3.3.0/examples/gocean/eg3/compute_h_mod.f90 +85 -0
  36. psyclone-3.3.0/examples/gocean/eg3/compute_z_mod.f90 +103 -0
  37. psyclone-3.3.0/examples/gocean/eg3/ocl_trans.py +81 -0
  38. psyclone-3.3.0/examples/gocean/eg4/Makefile +102 -0
  39. psyclone-3.3.0/examples/gocean/eg4/README.md +143 -0
  40. psyclone-3.3.0/examples/gocean/eg4/acc_transform.py +84 -0
  41. psyclone-3.3.0/examples/gocean/eg4/alg_kern_use_var.f90 +82 -0
  42. psyclone-3.3.0/examples/gocean/eg4/alg_nested_use.f90 +50 -0
  43. psyclone-3.3.0/examples/gocean/eg4/another_mod.f90 +47 -0
  44. psyclone-3.3.0/examples/gocean/eg4/data_mod.f90 +52 -0
  45. psyclone-3.3.0/examples/gocean/eg4/kern_call_kern_mod.f90 +62 -0
  46. psyclone-3.3.0/examples/gocean/eg4/kern_nested_use_mod.f90 +59 -0
  47. psyclone-3.3.0/examples/gocean/eg4/kern_use_var_mod.f90 +66 -0
  48. psyclone-3.3.0/examples/gocean/eg4/ocl_transform.py +74 -0
  49. psyclone-3.3.0/examples/gocean/eg5/Makefile +38 -0
  50. psyclone-3.3.0/examples/gocean/eg5/README.md +49 -0
  51. psyclone-3.3.0/examples/gocean/eg5/extract/Makefile +183 -0
  52. psyclone-3.3.0/examples/gocean/eg5/extract/README.md +141 -0
  53. psyclone-3.3.0/examples/gocean/eg5/extract/extract_transform.py +68 -0
  54. psyclone-3.3.0/examples/gocean/eg5/extract/init_field_mod.f90 +72 -0
  55. psyclone-3.3.0/examples/gocean/eg5/extract/update_field_mod.f90 +85 -0
  56. psyclone-3.3.0/examples/gocean/eg5/profile/Makefile +187 -0
  57. psyclone-3.3.0/examples/gocean/eg5/profile/README.md +148 -0
  58. psyclone-3.3.0/examples/gocean/eg5/profile/init_field_mod.f90 +72 -0
  59. psyclone-3.3.0/examples/gocean/eg5/profile/test.x90 +83 -0
  60. psyclone-3.3.0/examples/gocean/eg5/profile/update_field_mod.f90 +76 -0
  61. psyclone-3.3.0/examples/gocean/eg5/readonly/Makefile +113 -0
  62. psyclone-3.3.0/examples/gocean/eg5/readonly/README.md +93 -0
  63. psyclone-3.3.0/examples/gocean/eg5/readonly/init_field_mod.f90 +81 -0
  64. psyclone-3.3.0/examples/gocean/eg5/readonly/read_only_transform.py +68 -0
  65. psyclone-3.3.0/examples/gocean/eg5/readonly/test.x90 +90 -0
  66. psyclone-3.3.0/examples/gocean/eg5/readonly/update_field_mod.f90 +105 -0
  67. psyclone-3.3.0/examples/gocean/eg5/value_range_check/Makefile +120 -0
  68. psyclone-3.3.0/examples/gocean/eg5/value_range_check/README.md +97 -0
  69. psyclone-3.3.0/examples/gocean/eg5/value_range_check/init_field_mod.f90 +76 -0
  70. psyclone-3.3.0/examples/gocean/eg5/value_range_check/test.x90 +82 -0
  71. psyclone-3.3.0/examples/gocean/eg5/value_range_check/update_field_mod.f90 +81 -0
  72. psyclone-3.3.0/examples/gocean/eg5/value_range_check/value_range_check_transformation.py +68 -0
  73. psyclone-3.3.0/examples/gocean/eg6/Makefile +45 -0
  74. psyclone-3.3.0/examples/gocean/eg6/alg.f90 +96 -0
  75. psyclone-3.3.0/examples/gocean/eg6/backends_transform.py +75 -0
  76. psyclone-3.3.0/examples/gocean/eg6/inc_field_mod.f90 +84 -0
  77. psyclone-3.3.0/examples/gocean/eg7/Makefile +46 -0
  78. psyclone-3.3.0/examples/gocean/eg7/alg.f90 +96 -0
  79. psyclone-3.3.0/examples/gocean/eg7/alg_transform.py +52 -0
  80. psyclone-3.3.0/examples/gocean/eg7/inc_field_mod.f90 +84 -0
  81. psyclone-3.3.0/examples/lfric/Makefile +38 -0
  82. psyclone-3.3.0/examples/lfric/code/dg_matrix_vector_kernel_mod.F90 +136 -0
  83. psyclone-3.3.0/examples/lfric/code/gw_mixed_schur_preconditioner_alg_mod.x90 +247 -0
  84. psyclone-3.3.0/examples/lfric/code/matrix_vector_kernel_mod.F90 +130 -0
  85. psyclone-3.3.0/examples/lfric/code/testkern_mod.F90 +82 -0
  86. psyclone-3.3.0/examples/lfric/code/testkern_write_any_mod.f90 +82 -0
  87. psyclone-3.3.0/examples/lfric/eg1/Makefile +53 -0
  88. psyclone-3.3.0/examples/lfric/eg1/single_invoke.x90 +53 -0
  89. psyclone-3.3.0/examples/lfric/eg10/Makefile +68 -0
  90. psyclone-3.3.0/examples/lfric/eg10/intergrid_3levels.x90 +52 -0
  91. psyclone-3.3.0/examples/lfric/eg10/prolong_kernel_mod.F90 +141 -0
  92. psyclone-3.3.0/examples/lfric/eg10/restrict_kernel_mod.F90 +145 -0
  93. psyclone-3.3.0/examples/lfric/eg11/Makefile +83 -0
  94. psyclone-3.3.0/examples/lfric/eg11/async_script.py +84 -0
  95. psyclone-3.3.0/examples/lfric/eg11/driver.f90 +41 -0
  96. psyclone-3.3.0/examples/lfric/eg11/helmholtz_solver_alg_mod.x90 +67 -0
  97. psyclone-3.3.0/examples/lfric/eg11/scaled_matrix_vector_kernel_mod.F90 +213 -0
  98. psyclone-3.3.0/examples/lfric/eg12/Makefile +57 -0
  99. psyclone-3.3.0/examples/lfric/eg12/colouring_and_omp.py +78 -0
  100. psyclone-3.3.0/examples/lfric/eg12/extract_kernel_with_transformations.py +110 -0
  101. psyclone-3.3.0/examples/lfric/eg12/extract_nodes.py +91 -0
  102. psyclone-3.3.0/examples/lfric/eg12/find_kernel.py +137 -0
  103. psyclone-3.3.0/examples/lfric/eg13/Makefile +51 -0
  104. psyclone-3.3.0/examples/lfric/eg13/kernel_constants.py +95 -0
  105. psyclone-3.3.0/examples/lfric/eg14/Makefile +112 -0
  106. psyclone-3.3.0/examples/lfric/eg14/README.md +47 -0
  107. psyclone-3.3.0/examples/lfric/eg14/acc_parallel.py +93 -0
  108. psyclone-3.3.0/examples/lfric/eg14/main.x90 +150 -0
  109. psyclone-3.3.0/examples/lfric/eg14/other_alg_mod.x90 +53 -0
  110. psyclone-3.3.0/examples/lfric/eg14/testkern_w0_kernel_mod.f90 +82 -0
  111. psyclone-3.3.0/examples/lfric/eg15/Makefile +48 -0
  112. psyclone-3.3.0/examples/lfric/eg15/matvec_opt.py +113 -0
  113. psyclone-3.3.0/examples/lfric/eg16/Makefile +44 -0
  114. psyclone-3.3.0/examples/lfric/eg16/README.md +51 -0
  115. psyclone-3.3.0/examples/lfric/eg16/create.py +142 -0
  116. psyclone-3.3.0/examples/lfric/eg17/Makefile +41 -0
  117. psyclone-3.3.0/examples/lfric/eg17/README.md +59 -0
  118. psyclone-3.3.0/examples/lfric/eg17/full_example/Makefile +85 -0
  119. psyclone-3.3.0/examples/lfric/eg17/full_example/README.md +85 -0
  120. psyclone-3.3.0/examples/lfric/eg17/full_example/main.x90 +128 -0
  121. psyclone-3.3.0/examples/lfric/eg17/full_example/testkern_w0_kernel_mod.f90 +82 -0
  122. psyclone-3.3.0/examples/lfric/eg17/full_example_extract/Makefile +156 -0
  123. psyclone-3.3.0/examples/lfric/eg17/full_example_extract/README.md +108 -0
  124. psyclone-3.3.0/examples/lfric/eg17/full_example_extract/dummy_mod.f90 +67 -0
  125. psyclone-3.3.0/examples/lfric/eg17/full_example_extract/extract_transform.py +70 -0
  126. psyclone-3.3.0/examples/lfric/eg17/full_example_extract/main.X90 +172 -0
  127. psyclone-3.3.0/examples/lfric/eg17/full_example_extract/testkern_w0_kernel_mod.f90 +109 -0
  128. psyclone-3.3.0/examples/lfric/eg17/full_example_netcdf/Makefile +89 -0
  129. psyclone-3.3.0/examples/lfric/eg17/full_example_netcdf/README.md +88 -0
  130. psyclone-3.3.0/examples/lfric/eg17/full_example_netcdf/main.x90 +136 -0
  131. psyclone-3.3.0/examples/lfric/eg17/full_example_netcdf/testkern_w0_kernel_mod.f90 +82 -0
  132. psyclone-3.3.0/examples/lfric/eg17/value_range_check/Makefile +107 -0
  133. psyclone-3.3.0/examples/lfric/eg17/value_range_check/README.md +45 -0
  134. psyclone-3.3.0/examples/lfric/eg17/value_range_check/main.x90 +135 -0
  135. psyclone-3.3.0/examples/lfric/eg17/value_range_check/testkern_w0_kernel_mod.f90 +86 -0
  136. psyclone-3.3.0/examples/lfric/eg17/value_range_check/value_range_check_transformation.py +61 -0
  137. psyclone-3.3.0/examples/lfric/eg18/Makefile +49 -0
  138. psyclone-3.3.0/examples/lfric/eg18/advection_alg_mod.x90 +71 -0
  139. psyclone-3.3.0/examples/lfric/eg18/impose_min_flux_kernel_mod.f90 +181 -0
  140. psyclone-3.3.0/examples/lfric/eg19/Makefile +75 -0
  141. psyclone-3.3.0/examples/lfric/eg19/algorithm.x90 +70 -0
  142. psyclone-3.3.0/examples/lfric/eg19/mixed_kernel_mod.f90 +113 -0
  143. psyclone-3.3.0/examples/lfric/eg2/Makefile +65 -0
  144. psyclone-3.3.0/examples/lfric/eg2/loop_fuse_trans.py +66 -0
  145. psyclone-3.3.0/examples/lfric/eg2/module_inline_trans.py +58 -0
  146. psyclone-3.3.0/examples/lfric/eg2/multi_invoke_mod.x90 +60 -0
  147. psyclone-3.3.0/examples/lfric/eg2/print_psyir_trans.py +56 -0
  148. psyclone-3.3.0/examples/lfric/eg20/Makefile +68 -0
  149. psyclone-3.3.0/examples/lfric/eg3/Makefile +53 -0
  150. psyclone-3.3.0/examples/lfric/eg3/colouring_and_omp.py +79 -0
  151. psyclone-3.3.0/examples/lfric/eg3/matrix_vector_mm_kernel_mod.F90 +128 -0
  152. psyclone-3.3.0/examples/lfric/eg3/solver_mod.x90 +796 -0
  153. psyclone-3.3.0/examples/lfric/eg3/w3_solver_kernel_mod.F90 +206 -0
  154. psyclone-3.3.0/examples/lfric/eg4/Makefile +56 -0
  155. psyclone-3.3.0/examples/lfric/eg4/backends_transform.py +79 -0
  156. psyclone-3.3.0/examples/lfric/eg4/enforce_bc_kernel_mod.f90 +120 -0
  157. psyclone-3.3.0/examples/lfric/eg4/matrix_vector_kernel_mod.F90 +130 -0
  158. psyclone-3.3.0/examples/lfric/eg4/mm_diagonal_kernel_mod.F90 +120 -0
  159. psyclone-3.3.0/examples/lfric/eg4/solver_mod.x90 +154 -0
  160. psyclone-3.3.0/examples/lfric/eg5/Makefile +46 -0
  161. psyclone-3.3.0/examples/lfric/eg5/alg.f90 +107 -0
  162. psyclone-3.3.0/examples/lfric/eg5/conservative_flux_kernel_mod.F90 +264 -0
  163. psyclone-3.3.0/examples/lfric/eg5/subgrid_coeffs_kernel_mod.F90 +221 -0
  164. psyclone-3.3.0/examples/lfric/eg6/Makefile +64 -0
  165. psyclone-3.3.0/examples/lfric/eg6/alg.x90 +66 -0
  166. psyclone-3.3.0/examples/lfric/eg6/omp_reprod_script.py +85 -0
  167. psyclone-3.3.0/examples/lfric/eg6/omp_script.py +79 -0
  168. psyclone-3.3.0/examples/lfric/eg7/Makefile +46 -0
  169. psyclone-3.3.0/examples/lfric/eg7/alg.x90 +94 -0
  170. psyclone-3.3.0/examples/lfric/eg7/columnwise_op_app_kernel_mod.F90 +157 -0
  171. psyclone-3.3.0/examples/lfric/eg7/columnwise_op_asm_kernel_mod.F90 +161 -0
  172. psyclone-3.3.0/examples/lfric/eg7/columnwise_op_mul_kernel_mod.F90 +180 -0
  173. psyclone-3.3.0/examples/lfric/eg7/matrix_vector_kernel_mod.F90 +130 -0
  174. psyclone-3.3.0/examples/lfric/eg8/Makefile +53 -0
  175. psyclone-3.3.0/examples/lfric/eg8/apply_variable_hx_kernel_mod.F90 +364 -0
  176. psyclone-3.3.0/examples/lfric/eg8/enforce_bc_kernel_mod.F90 +120 -0
  177. psyclone-3.3.0/examples/lfric/eg8/helmholtz_solver_alg_mod.x90 +88 -0
  178. psyclone-3.3.0/examples/lfric/eg8/redundant_script.py +73 -0
  179. psyclone-3.3.0/examples/lfric/eg8/scaled_matrix_vector_kernel_mod.F90 +136 -0
  180. psyclone-3.3.0/examples/lfric/eg9/Makefile +53 -0
  181. psyclone-3.3.0/examples/lfric/eg9/advective_inc_alg_mod.x90 +138 -0
  182. psyclone-3.3.0/examples/lfric/eg9/colouring_and_omp.py +79 -0
  183. psyclone-3.3.0/examples/lfric/eg9/matrix_vector_kernel_mod.F90 +130 -0
  184. psyclone-3.3.0/examples/lfric/eg9/rtheta_bd_kernel_mod.F90 +297 -0
  185. psyclone-3.3.0/examples/lfric/eg9/rtheta_kernel_mod.F90 +179 -0
  186. psyclone-3.3.0/examples/lfric/eg9/rtheta_wtheta_kernel_mod.F90 +198 -0
  187. psyclone-3.3.0/examples/lfric/eg9/sample_poly_adv_kernel_mod.F90 +499 -0
  188. psyclone-3.3.0/examples/lfric/lfric_common.mk +59 -0
  189. psyclone-3.3.0/examples/lfric/scripts/Makefile +57 -0
  190. psyclone-3.3.0/examples/lfric/scripts/async_halo_exchanges.py +79 -0
  191. psyclone-3.3.0/examples/lfric/scripts/colouring_and_omp.py +78 -0
  192. psyclone-3.3.0/examples/lfric/scripts/compare_output.py +82 -0
  193. psyclone-3.3.0/examples/lfric/scripts/does_nothing.py +49 -0
  194. psyclone-3.3.0/examples/lfric/scripts/everything_everywhere_all_at_once.py +141 -0
  195. psyclone-3.3.0/examples/lfric/scripts/extract_script.py +57 -0
  196. psyclone-3.3.0/examples/lfric/scripts/gpu_offloading.py +250 -0
  197. psyclone-3.3.0/examples/lfric/scripts/inline_kernels_and_intrinsics.py +79 -0
  198. psyclone-3.3.0/examples/lfric/scripts/kernel_print.py +65 -0
  199. psyclone-3.3.0/examples/lfric/scripts/loop_fuse.py +74 -0
  200. psyclone-3.3.0/examples/lfric/scripts/redundant_dofs.py +74 -0
  201. psyclone-3.3.0/examples/lfric/scripts/redundant_setval_c.py +81 -0
  202. psyclone-3.3.0/examples/lfric/scripts/tiledcolouring_and_omp.py +75 -0
  203. psyclone-3.3.0/examples/nemo/Makefile +38 -0
  204. psyclone-3.3.0/examples/nemo/README.md +113 -0
  205. psyclone-3.3.0/examples/nemo/code/traldf_iso.F90 +385 -0
  206. psyclone-3.3.0/examples/nemo/eg1/Makefile +50 -0
  207. psyclone-3.3.0/examples/nemo/eg1/README.md +67 -0
  208. psyclone-3.3.0/examples/nemo/eg1/openmp_cpu_levels_trans.py +69 -0
  209. psyclone-3.3.0/examples/nemo/eg1/openmp_gpu_levels_trans.py +83 -0
  210. psyclone-3.3.0/examples/nemo/eg2/Makefile +54 -0
  211. psyclone-3.3.0/examples/nemo/eg2/README.md +63 -0
  212. psyclone-3.3.0/examples/nemo/eg2/omp_levels_trans.py +79 -0
  213. psyclone-3.3.0/examples/nemo/eg3/Makefile +84 -0
  214. psyclone-3.3.0/examples/nemo/eg3/README.md +106 -0
  215. psyclone-3.3.0/examples/nemo/eg3/kernel_utils.py +139 -0
  216. psyclone-3.3.0/examples/nemo/eg3/kernels_trans.py +98 -0
  217. psyclone-3.3.0/examples/nemo/eg4/Makefile +62 -0
  218. psyclone-3.3.0/examples/nemo/eg4/README.md +143 -0
  219. psyclone-3.3.0/examples/nemo/eg4/copy_stencil.f90 +49 -0
  220. psyclone-3.3.0/examples/nemo/eg4/dawn_script.py +91 -0
  221. psyclone-3.3.0/examples/nemo/eg4/hori_diff.f90 +50 -0
  222. psyclone-3.3.0/examples/nemo/eg4/if_example.f90 +63 -0
  223. psyclone-3.3.0/examples/nemo/eg4/intrinsic_example.f90 +63 -0
  224. psyclone-3.3.0/examples/nemo/eg4/sir_trans.py +59 -0
  225. psyclone-3.3.0/examples/nemo/eg4/sir_trans_all.py +121 -0
  226. psyclone-3.3.0/examples/nemo/eg4/sir_trans_loop.py +95 -0
  227. psyclone-3.3.0/examples/nemo/eg4/tridiagonal_solve.f90 +67 -0
  228. psyclone-3.3.0/examples/nemo/eg5/Makefile +116 -0
  229. psyclone-3.3.0/examples/nemo/eg5/README.md +94 -0
  230. psyclone-3.3.0/examples/nemo/eg5/extract_kernels.py +99 -0
  231. psyclone-3.3.0/examples/nemo/eg6/Makefile +86 -0
  232. psyclone-3.3.0/examples/nemo/eg6/README.md +100 -0
  233. psyclone-3.3.0/examples/nemo/eg6/dummy.f90 +74 -0
  234. psyclone-3.3.0/examples/nemo/eg6/read_only_check.py +62 -0
  235. psyclone-3.3.0/examples/nemo/eg7/Makefile +51 -0
  236. psyclone-3.3.0/examples/nemo/eg7/README.md +62 -0
  237. psyclone-3.3.0/examples/nemo/eg7/openmp_cpu_nowait_trans.py +88 -0
  238. psyclone-3.3.0/examples/nemo/eg7/openmp_gpu_nowait_trans.py +78 -0
  239. psyclone-3.3.0/examples/nemo/eg8/Makefile +77 -0
  240. psyclone-3.3.0/examples/nemo/eg8/README.md +91 -0
  241. psyclone-3.3.0/examples/nemo/eg8/omp_gpu_profile_trans.py +123 -0
  242. psyclone-3.3.0/examples/nemo/eg9/Makefile +93 -0
  243. psyclone-3.3.0/examples/nemo/eg9/README.md +81 -0
  244. psyclone-3.3.0/examples/nemo/eg9/value_range_check_transformation.py +67 -0
  245. psyclone-3.3.0/examples/nemo/scripts/Makefile +129 -0
  246. psyclone-3.3.0/examples/nemo/scripts/README.md +232 -0
  247. psyclone-3.3.0/examples/nemo/scripts/acc_kernels_trans.py +409 -0
  248. psyclone-3.3.0/examples/nemo/scripts/compare_output.py +99 -0
  249. psyclone-3.3.0/examples/nemo/scripts/insert_loop_parallelism.py +333 -0
  250. psyclone-3.3.0/examples/nemo/scripts/passthrough.py +61 -0
  251. psyclone-3.3.0/examples/nemo/scripts/utils.py +566 -0
  252. psyclone-3.3.0/examples/psyad/Makefile +39 -0
  253. psyclone-3.3.0/examples/psyad/README.md +66 -0
  254. psyclone-3.3.0/examples/psyad/eg1/Makefile +63 -0
  255. psyclone-3.3.0/examples/psyad/eg1/README.md +76 -0
  256. psyclone-3.3.0/examples/psyad/eg1/testkern_mod.f90 +75 -0
  257. psyclone-3.3.0/examples/psyad/eg2/Makefile +100 -0
  258. psyclone-3.3.0/examples/psyad/eg2/README.md +159 -0
  259. psyclone-3.3.0/examples/psyad/eg2/tl_hydrostatic_kernel_mod.F90 +270 -0
  260. psyclone-3.3.0/examples/psyad/lfric/Makefile +52 -0
  261. psyclone-3.3.0/examples/psyad/lfric/README.md +66 -0
  262. psyclone-3.3.0/examples/psyad/lfric/adjoint/README.md +61 -0
  263. psyclone-3.3.0/examples/psyad/lfric/adjoint_partial/README.md +46 -0
  264. psyclone-3.3.0/examples/psyad/lfric/tangent_linear/Makefile +102 -0
  265. psyclone-3.3.0/examples/psyad/lfric/tangent_linear/README.md +61 -0
  266. psyclone-3.3.0/examples/psyad/lfric/tangent_linear/combine_w2_field_kernel_mod.F90 +92 -0
  267. psyclone-3.3.0/examples/psyad/lfric/tangent_linear/convert_hdiv_field_kernel_mod.F90 +161 -0
  268. psyclone-3.3.0/examples/psyad/lfric/tangent_linear/dg_inc_matrix_vector_kernel_mod.F90 +140 -0
  269. psyclone-3.3.0/examples/psyad/lfric/tangent_linear/dg_matrix_vector_kernel_mod.F90 +98 -0
  270. psyclone-3.3.0/examples/psyad/lfric/tangent_linear/helmholtz_operator_kernel_mod.F90 +537 -0
  271. psyclone-3.3.0/examples/psyad/lfric/tangent_linear/matrix_vector_kernel_mod.F90 +139 -0
  272. psyclone-3.3.0/examples/psyad/lfric/tangent_linear/sample_flux_kernel_mod.F90 +111 -0
  273. psyclone-3.3.0/examples/psyad/lfric/tangent_linear/split_w2_field_kernel_mod.F90 +95 -0
  274. psyclone-3.3.0/examples/psyad/lfric/tangent_linear/tl_project_eos_pressure_kernel_mod.F90 +239 -0
  275. psyclone-3.3.0/examples/psyad/lfric/tangent_linear/tracer_viscosity_kernel_mod.F90 +143 -0
  276. psyclone-3.3.0/examples/psyad/lfric/tangent_linear/transpose_matrix_vector_kernel_mod.F90 +103 -0
  277. psyclone-3.3.0/examples/psyad/lfric/tangent_linear/w3_advective_update_kernel_mod.F90 +115 -0
  278. psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/Makefile +98 -0
  279. psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/README.md +56 -0
  280. psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/convert_hdiv_field_kernel_mod_tweaked.F90 +166 -0
  281. psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/dg_inc_matrix_vector_kernel_mod_tweaked.F90 +147 -0
  282. psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/matrix_vector_kernel_mod_tweaked.F90 +146 -0
  283. psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/poly1d_reconstruction_kernel_mod_tweaked.F90 +204 -0
  284. psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/poly1d_w3_reconstruction_kernel_mod_tweaked.F90 +204 -0
  285. psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/poly2d_reconstruction_kernel_mod_tweaked.F90 +180 -0
  286. psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/poly2d_w3_reconstruction_kernel_mod_tweaked.F90 +181 -0
  287. psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/poly_adv_update_kernel_mod_tweaked.F90 +217 -0
  288. psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/tl_calc_exner_pointwise_mod_tweaked.F90 +58 -0
  289. psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/tl_kinetic_energy_gradient_kernel_mod_tweaked.F90 +226 -0
  290. psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/tl_moist_dyn_gas_kernel_mod_tweaked.F90 +92 -0
  291. psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/tl_poly1d_vert_adv_kernel_mod_tweaked.F90 +228 -0
  292. psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/tl_poly1d_vert_w3_reconstruction_kernel_mod_tweaked.F90 +228 -0
  293. psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/tl_pressure_gradient_bd_kernel_mod_tweaked.F90 +347 -0
  294. psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/tl_project_eos_pressure_kernel_mod_tweaked.F90 +254 -0
  295. psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/tl_rhs_project_eos_kernel_mod_tweaked.F90 +273 -0
  296. psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/tl_sample_eos_pressure_kernel_mod_tweaked.F90 +182 -0
  297. psyclone-3.3.0/examples/psyad/lfric/tangent_linear_tweaked/tl_vorticity_advection_kernel_mod_tweaked.F90 +260 -0
  298. psyclone-3.3.0/examples/psyir/Makefile +38 -0
  299. psyclone-3.3.0/examples/psyir/create_and_modify_psyir/Makefile +50 -0
  300. psyclone-3.3.0/examples/psyir/create_and_modify_psyir/README.md +76 -0
  301. psyclone-3.3.0/examples/psyir/create_and_modify_psyir/create.py +216 -0
  302. psyclone-3.3.0/examples/psyir/create_and_modify_psyir/create_structure_types.py +170 -0
  303. psyclone-3.3.0/examples/psyir/create_and_modify_psyir/modify.py +111 -0
  304. psyclone-3.3.0/examples/psyir/custom_directives/Makefile +58 -0
  305. psyclone-3.3.0/examples/psyir/custom_directives/README.md +48 -0
  306. psyclone-3.3.0/examples/psyir/custom_directives/directive_filtering.F90 +58 -0
  307. psyclone-3.3.0/examples/psyir/custom_directives/identify_custom_directives.py +56 -0
  308. psyclone-3.3.0/examples/psyir/matmul/Makefile +72 -0
  309. psyclone-3.3.0/examples/psyir/matmul/README.md +55 -0
  310. psyclone-3.3.0/examples/psyir/matmul/matmul.F90 +127 -0
  311. psyclone-3.3.0/examples/psyir/matmul/omp-tile.py +49 -0
  312. psyclone-3.3.0/examples/psyir/matmul/omp.py +46 -0
  313. psyclone-3.3.0/examples/psyir/matmul/tile.py +46 -0
  314. psyclone-3.3.0/examples/psyir/parallelise_loops/Makefile +47 -0
  315. psyclone-3.3.0/examples/psyir/parallelise_loops/README.md +44 -0
  316. psyclone-3.3.0/examples/psyir/parallelise_loops/add_parallelism.py +92 -0
  317. psyclone-3.3.0/examples/psyir/parallelise_loops/example.f90 +41 -0
  318. psyclone-3.3.0/examples/psyir/transpose/Makefile +72 -0
  319. psyclone-3.3.0/examples/psyir/transpose/README.md +55 -0
  320. psyclone-3.3.0/examples/psyir/transpose/omp-tile.py +48 -0
  321. psyclone-3.3.0/examples/psyir/transpose/omp.py +46 -0
  322. psyclone-3.3.0/examples/psyir/transpose/tile.py +46 -0
  323. psyclone-3.3.0/examples/psyir/transpose/trans.F90 +110 -0
  324. psyclone-3.3.0/examples/stub_generation/Makefile +45 -0
  325. psyclone-3.3.0/examples/stub_generation/README.md +28 -0
  326. psyclone-3.3.0/examples/stub_generation/testkern_stencil_multi_mod.f90 +62 -0
  327. psyclone-3.3.0/examples/top_level.mk +75 -0
  328. psyclone-3.3.0/examples/xdsl/Makefile +48 -0
  329. psyclone-3.3.0/examples/xdsl/README.md +91 -0
  330. psyclone-3.3.0/examples/xdsl/backend/xdsl.py +915 -0
  331. psyclone-3.3.0/examples/xdsl/pw_advection/Makefile +48 -0
  332. psyclone-3.3.0/examples/xdsl/xdsl_backends_transform.py +67 -0
  333. psyclone-3.3.0/lib/Makefile +82 -0
  334. psyclone-3.3.0/lib/README.md +180 -0
  335. psyclone-3.3.0/lib/extract/Makefile +102 -0
  336. psyclone-3.3.0/lib/extract/README.md +54 -0
  337. psyclone-3.3.0/lib/extract/ascii/Makefile +105 -0
  338. psyclone-3.3.0/lib/extract/ascii/dl_esm_inf/Makefile +112 -0
  339. psyclone-3.3.0/lib/extract/ascii/dl_esm_inf/README.md +144 -0
  340. psyclone-3.3.0/lib/extract/ascii/dl_esm_inf/kernel_data_ascii.f90 +131 -0
  341. psyclone-3.3.0/lib/extract/ascii/extract_ascii_base.jinja +276 -0
  342. psyclone-3.3.0/lib/extract/ascii/generic/Makefile +95 -0
  343. psyclone-3.3.0/lib/extract/ascii/generic/README.md +103 -0
  344. psyclone-3.3.0/lib/extract/ascii/generic/kernel_data_ascii.f90 +59 -0
  345. psyclone-3.3.0/lib/extract/ascii/lfric/Makefile +123 -0
  346. psyclone-3.3.0/lib/extract/ascii/lfric/README.md +142 -0
  347. psyclone-3.3.0/lib/extract/ascii/lfric/kernel_data_ascii.jinja +347 -0
  348. psyclone-3.3.0/lib/extract/ascii/read_kernel_data_mod.jinja +325 -0
  349. psyclone-3.3.0/lib/extract/binary/Makefile +106 -0
  350. psyclone-3.3.0/lib/extract/binary/dl_esm_inf/Makefile +112 -0
  351. psyclone-3.3.0/lib/extract/binary/dl_esm_inf/README.md +139 -0
  352. psyclone-3.3.0/lib/extract/binary/dl_esm_inf/kernel_data_binary.f90 +131 -0
  353. psyclone-3.3.0/lib/extract/binary/extract_binary_base.jinja +276 -0
  354. psyclone-3.3.0/lib/extract/binary/generic/Makefile +95 -0
  355. psyclone-3.3.0/lib/extract/binary/generic/README.md +103 -0
  356. psyclone-3.3.0/lib/extract/binary/generic/kernel_data_binary.f90 +59 -0
  357. psyclone-3.3.0/lib/extract/binary/lfric/Makefile +127 -0
  358. psyclone-3.3.0/lib/extract/binary/lfric/README.md +145 -0
  359. psyclone-3.3.0/lib/extract/binary/lfric/compare_variables_mod.F90 +1758 -0
  360. psyclone-3.3.0/lib/extract/binary/lfric/kernel_data_binary.jinja +347 -0
  361. psyclone-3.3.0/lib/extract/binary/lfric/read_kernel_data_mod.f90 +2259 -0
  362. psyclone-3.3.0/lib/extract/binary/read_kernel_data_mod.jinja +325 -0
  363. psyclone-3.3.0/lib/extract/compare_variables_mod.jinja +321 -0
  364. psyclone-3.3.0/lib/extract/netcdf/Makefile +108 -0
  365. psyclone-3.3.0/lib/extract/netcdf/README.md +85 -0
  366. psyclone-3.3.0/lib/extract/netcdf/dl_esm_inf/Makefile +112 -0
  367. psyclone-3.3.0/lib/extract/netcdf/dl_esm_inf/README.md +154 -0
  368. psyclone-3.3.0/lib/extract/netcdf/dl_esm_inf/kernel_data_netcdf.f90 +134 -0
  369. psyclone-3.3.0/lib/extract/netcdf/extract_netcdf_base.jinja +508 -0
  370. psyclone-3.3.0/lib/extract/netcdf/generic/Makefile +96 -0
  371. psyclone-3.3.0/lib/extract/netcdf/generic/README.md +121 -0
  372. psyclone-3.3.0/lib/extract/netcdf/generic/kernel_data_netcdf.f90 +59 -0
  373. psyclone-3.3.0/lib/extract/netcdf/lfric/Makefile +128 -0
  374. psyclone-3.3.0/lib/extract/netcdf/lfric/README.md +158 -0
  375. psyclone-3.3.0/lib/extract/netcdf/lfric/kernel_data_netcdf.jinja +347 -0
  376. psyclone-3.3.0/lib/extract/netcdf/read_kernel_data_mod.f90 +3366 -0
  377. psyclone-3.3.0/lib/extract/netcdf/read_kernel_data_mod.jinja +403 -0
  378. psyclone-3.3.0/lib/get_python.sh +60 -0
  379. psyclone-3.3.0/lib/process.py +160 -0
  380. psyclone-3.3.0/lib/profiling/Makefile +71 -0
  381. psyclone-3.3.0/lib/profiling/README.md +296 -0
  382. psyclone-3.3.0/lib/profiling/amd/Makefile +58 -0
  383. psyclone-3.3.0/lib/profiling/amd/README.md +86 -0
  384. psyclone-3.3.0/lib/profiling/amd/roctx_prof.f90 +186 -0
  385. psyclone-3.3.0/lib/profiling/dl_timer/Makefile +80 -0
  386. psyclone-3.3.0/lib/profiling/dl_timer/README.md +144 -0
  387. psyclone-3.3.0/lib/profiling/dl_timer/dl_timer.f90 +137 -0
  388. psyclone-3.3.0/lib/profiling/drhook/Makefile +70 -0
  389. psyclone-3.3.0/lib/profiling/drhook/README.md +152 -0
  390. psyclone-3.3.0/lib/profiling/drhook/drhook_psy.f90 +155 -0
  391. psyclone-3.3.0/lib/profiling/lfric_timer/Makefile +97 -0
  392. psyclone-3.3.0/lib/profiling/lfric_timer/README.md +147 -0
  393. psyclone-3.3.0/lib/profiling/lfric_timer/profile_psy_data_mod.F90 +139 -0
  394. psyclone-3.3.0/lib/profiling/nvidia/Makefile +60 -0
  395. psyclone-3.3.0/lib/profiling/nvidia/README.md +111 -0
  396. psyclone-3.3.0/lib/profiling/nvidia/nvtx_prof.f90 +223 -0
  397. psyclone-3.3.0/lib/profiling/simple_timing/Makefile +72 -0
  398. psyclone-3.3.0/lib/profiling/simple_timing/README.md +119 -0
  399. psyclone-3.3.0/lib/profiling/simple_timing/simple_timing.f90 +240 -0
  400. psyclone-3.3.0/lib/profiling/tau/Makefile +60 -0
  401. psyclone-3.3.0/lib/profiling/tau/README.md +105 -0
  402. psyclone-3.3.0/lib/profiling/tau/tau_psy.f90 +139 -0
  403. psyclone-3.3.0/lib/profiling/template/Makefile +72 -0
  404. psyclone-3.3.0/lib/profiling/template/README.md +110 -0
  405. psyclone-3.3.0/lib/profiling/template/dummy_lib.f90 +142 -0
  406. psyclone-3.3.0/lib/profiling/vernier/Makefile +69 -0
  407. psyclone-3.3.0/lib/profiling/vernier/README.md +134 -0
  408. psyclone-3.3.0/lib/profiling/vernier/vernier_psy.f90 +145 -0
  409. psyclone-3.3.0/lib/psy_data_base.jinja +412 -0
  410. psyclone-3.3.0/lib/read_only/Makefile +88 -0
  411. psyclone-3.3.0/lib/read_only/README.md +85 -0
  412. psyclone-3.3.0/lib/read_only/dl_esm_inf/Makefile +116 -0
  413. psyclone-3.3.0/lib/read_only/dl_esm_inf/README.md +120 -0
  414. psyclone-3.3.0/lib/read_only/dl_esm_inf/read_only.f90 +161 -0
  415. psyclone-3.3.0/lib/read_only/generic/Makefile +103 -0
  416. psyclone-3.3.0/lib/read_only/generic/README.md +90 -0
  417. psyclone-3.3.0/lib/read_only/generic/read_only.f90 +63 -0
  418. psyclone-3.3.0/lib/read_only/lfric/Makefile +124 -0
  419. psyclone-3.3.0/lib/read_only/lfric/README.md +122 -0
  420. psyclone-3.3.0/lib/read_only/lfric/read_only.jinja +356 -0
  421. psyclone-3.3.0/lib/read_only/read_only_base.jinja +469 -0
  422. psyclone-3.3.0/lib/value_range_check/Makefile +89 -0
  423. psyclone-3.3.0/lib/value_range_check/README.md +90 -0
  424. psyclone-3.3.0/lib/value_range_check/dl_esm_inf/Makefile +114 -0
  425. psyclone-3.3.0/lib/value_range_check/dl_esm_inf/README.md +116 -0
  426. psyclone-3.3.0/lib/value_range_check/dl_esm_inf/value_range_check.f90 +121 -0
  427. psyclone-3.3.0/lib/value_range_check/generic/Makefile +100 -0
  428. psyclone-3.3.0/lib/value_range_check/generic/value_range_check.f90 +58 -0
  429. psyclone-3.3.0/lib/value_range_check/lfric/Makefile +120 -0
  430. psyclone-3.3.0/lib/value_range_check/lfric/README.md +123 -0
  431. psyclone-3.3.0/lib/value_range_check/lfric/value_range_check.jinja +330 -0
  432. psyclone-3.3.0/lib/value_range_check/value_range_check_base.jinja +637 -0
  433. psyclone-3.3.0/pyproject.toml +127 -0
  434. psyclone-3.3.0/setup.cfg +17 -0
  435. psyclone-3.3.0/setup.py +108 -0
  436. psyclone-3.3.0/src/PSyclone.egg-info/PKG-INFO +144 -0
  437. psyclone-3.3.0/src/PSyclone.egg-info/SOURCES.txt +812 -0
  438. psyclone-3.3.0/src/PSyclone.egg-info/requires.txt +27 -0
  439. psyclone-3.3.0/src/psyclone/__init__.py +33 -0
  440. psyclone-3.3.0/src/psyclone/alg_gen.py +319 -0
  441. psyclone-3.3.0/src/psyclone/configuration.py +1325 -0
  442. psyclone-3.3.0/src/psyclone/core/__init__.py +55 -0
  443. psyclone-3.3.0/src/psyclone/core/access_sequence.py +360 -0
  444. psyclone-3.3.0/src/psyclone/core/access_type.py +145 -0
  445. psyclone-3.3.0/src/psyclone/core/signature.py +181 -0
  446. psyclone-3.3.0/src/psyclone/core/symbolic_maths.py +433 -0
  447. psyclone-3.3.0/src/psyclone/core/variables_access_map.py +189 -0
  448. psyclone-3.3.0/src/psyclone/docstring_parser.py +603 -0
  449. psyclone-3.3.0/src/psyclone/domain/common/__init__.py +40 -0
  450. psyclone-3.3.0/src/psyclone/domain/common/algorithm/__init__.py +49 -0
  451. psyclone-3.3.0/src/psyclone/domain/common/algorithm/psyir.py +320 -0
  452. psyclone-3.3.0/src/psyclone/domain/common/driver_creator.py +763 -0
  453. psyclone-3.3.0/src/psyclone/domain/common/psylayer/__init__.py +40 -0
  454. psyclone-3.3.0/src/psyclone/domain/common/psylayer/global_reduction.py +116 -0
  455. psyclone-3.3.0/src/psyclone/domain/common/psylayer/psyloop.py +349 -0
  456. psyclone-3.3.0/src/psyclone/domain/common/transformations/__init__.py +47 -0
  457. psyclone-3.3.0/src/psyclone/domain/common/transformations/alg_invoke_2_psy_call_trans.py +255 -0
  458. psyclone-3.3.0/src/psyclone/domain/common/transformations/alg_trans.py +103 -0
  459. psyclone-3.3.0/src/psyclone/domain/common/transformations/kernel_module_inline_trans.py +645 -0
  460. psyclone-3.3.0/src/psyclone/domain/common/transformations/raise_psyir_2_alg_trans.py +199 -0
  461. psyclone-3.3.0/src/psyclone/domain/gocean/__init__.py +45 -0
  462. psyclone-3.3.0/src/psyclone/domain/gocean/go_symbol_table.py +137 -0
  463. psyclone-3.3.0/src/psyclone/domain/gocean/gocean_constants.py +121 -0
  464. psyclone-3.3.0/src/psyclone/domain/gocean/gocean_driver_creator.py +84 -0
  465. psyclone-3.3.0/src/psyclone/domain/gocean/kernel/__init__.py +45 -0
  466. psyclone-3.3.0/src/psyclone/domain/gocean/kernel/psyir.py +1058 -0
  467. psyclone-3.3.0/src/psyclone/domain/gocean/transformations/__init__.py +55 -0
  468. psyclone-3.3.0/src/psyclone/domain/gocean/transformations/gocean_alg_invoke_2_psy_call_trans.py +75 -0
  469. psyclone-3.3.0/src/psyclone/domain/gocean/transformations/gocean_const_loop_bounds_trans.py +265 -0
  470. psyclone-3.3.0/src/psyclone/domain/gocean/transformations/gocean_extract_trans.py +162 -0
  471. psyclone-3.3.0/src/psyclone/domain/gocean/transformations/gocean_loop_fuse_trans.py +111 -0
  472. psyclone-3.3.0/src/psyclone/domain/gocean/transformations/gocean_move_iteration_boundaries_inside_kernel_trans.py +280 -0
  473. psyclone-3.3.0/src/psyclone/domain/gocean/transformations/gocean_opencl_trans.py +1556 -0
  474. psyclone-3.3.0/src/psyclone/domain/gocean/transformations/raise_psyir_2_gocean_kern_trans.py +250 -0
  475. psyclone-3.3.0/src/psyclone/domain/lfric/__init__.py +81 -0
  476. psyclone-3.3.0/src/psyclone/domain/lfric/algorithm/__init__.py +54 -0
  477. psyclone-3.3.0/src/psyclone/domain/lfric/algorithm/lfric_alg.py +483 -0
  478. psyclone-3.3.0/src/psyclone/domain/lfric/algorithm/psyir/__init__.py +48 -0
  479. psyclone-3.3.0/src/psyclone/domain/lfric/algorithm/psyir/lfric_alg_invoke_call.py +90 -0
  480. psyclone-3.3.0/src/psyclone/domain/lfric/algorithm/psyir/lfric_kernel_functor.py +222 -0
  481. psyclone-3.3.0/src/psyclone/domain/lfric/arg_index_to_metadata_index.py +266 -0
  482. psyclone-3.3.0/src/psyclone/domain/lfric/arg_ordering.py +1000 -0
  483. psyclone-3.3.0/src/psyclone/domain/lfric/function_space.py +361 -0
  484. psyclone-3.3.0/src/psyclone/domain/lfric/kern_call_acc_arg_list.py +286 -0
  485. psyclone-3.3.0/src/psyclone/domain/lfric/kern_call_arg_list.py +1032 -0
  486. psyclone-3.3.0/src/psyclone/domain/lfric/kern_call_invoke_arg_list.py +378 -0
  487. psyclone-3.3.0/src/psyclone/domain/lfric/kern_stub_arg_list.py +538 -0
  488. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/__init__.py +78 -0
  489. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/columnwise_operator_arg_metadata.py +57 -0
  490. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/common_arg_metadata.py +154 -0
  491. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/common_declaration_metadata.py +516 -0
  492. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/common_meta_arg_metadata.py +249 -0
  493. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/common_metadata.py +162 -0
  494. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/evaluator_targets_metadata.py +124 -0
  495. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/field_arg_metadata.py +207 -0
  496. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/field_vector_arg_metadata.py +144 -0
  497. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/inter_grid_arg_metadata.py +186 -0
  498. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/inter_grid_vector_arg_metadata.py +155 -0
  499. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/lfric_kernel_metadata.py +1197 -0
  500. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/meta_args_metadata.py +170 -0
  501. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/meta_funcs_arg_metadata.py +215 -0
  502. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/meta_funcs_metadata.py +118 -0
  503. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/meta_mesh_arg_metadata.py +100 -0
  504. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/meta_mesh_metadata.py +125 -0
  505. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/meta_ref_element_arg_metadata.py +105 -0
  506. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/meta_ref_element_metadata.py +121 -0
  507. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/operates_on_metadata.py +114 -0
  508. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/operator_arg_metadata.py +175 -0
  509. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/psyir.py +117 -0
  510. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/scalar_arg_metadata.py +130 -0
  511. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/scalar_array_arg_metadata.py +165 -0
  512. psyclone-3.3.0/src/psyclone/domain/lfric/kernel/shapes_metadata.py +155 -0
  513. psyclone-3.3.0/src/psyclone/domain/lfric/kernel_interface.py +852 -0
  514. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_arg_descriptor.py +867 -0
  515. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_builtins.py +3509 -0
  516. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_cell_iterators.py +136 -0
  517. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_collection.py +158 -0
  518. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_constants.py +597 -0
  519. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_dofmaps.py +340 -0
  520. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_driver_creator.py +124 -0
  521. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_fields.py +188 -0
  522. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_global_reductions.py +163 -0
  523. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_halo_depths.py +113 -0
  524. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_invoke.py +361 -0
  525. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_invoke_schedule.py +96 -0
  526. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_invokes.py +66 -0
  527. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_kern.py +1132 -0
  528. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_kern_call_factory.py +96 -0
  529. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_kern_metadata.py +771 -0
  530. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_loop.py +1111 -0
  531. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_loop_bounds.py +113 -0
  532. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_psy.py +93 -0
  533. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_run_time_checks.py +304 -0
  534. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_scalar_args.py +238 -0
  535. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_scalar_array_args.py +244 -0
  536. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_stencils.py +671 -0
  537. psyclone-3.3.0/src/psyclone/domain/lfric/lfric_types.py +646 -0
  538. psyclone-3.3.0/src/psyclone/domain/lfric/metadata_to_arguments_rules.py +573 -0
  539. psyclone-3.3.0/src/psyclone/domain/lfric/transformations/__init__.py +47 -0
  540. psyclone-3.3.0/src/psyclone/domain/lfric/transformations/lfric_alg_invoke_2_psy_call_trans.py +338 -0
  541. psyclone-3.3.0/src/psyclone/domain/lfric/transformations/lfric_alg_trans.py +52 -0
  542. psyclone-3.3.0/src/psyclone/domain/lfric/transformations/lfric_extract_trans.py +148 -0
  543. psyclone-3.3.0/src/psyclone/domain/lfric/transformations/lfric_loop_fuse_trans.py +268 -0
  544. psyclone-3.3.0/src/psyclone/domain/lfric/transformations/lfric_redundant_computation_trans.py +306 -0
  545. psyclone-3.3.0/src/psyclone/domain/lfric/transformations/raise_psyir_2_lfric_alg_trans.py +96 -0
  546. psyclone-3.3.0/src/psyclone/domain/lfric/transformations/raise_psyir_2_lfric_kern_trans.py +238 -0
  547. psyclone-3.3.0/src/psyclone/domain/lfric/utils.py +102 -0
  548. psyclone-3.3.0/src/psyclone/errors.py +150 -0
  549. psyclone-3.3.0/src/psyclone/expression.py +340 -0
  550. psyclone-3.3.0/src/psyclone/gen_kernel_stub.py +101 -0
  551. psyclone-3.3.0/src/psyclone/generator.py +981 -0
  552. psyclone-3.3.0/src/psyclone/gocean1p0.py +2212 -0
  553. psyclone-3.3.0/src/psyclone/kernel_tools.py +201 -0
  554. psyclone-3.3.0/src/psyclone/lfric.py +6560 -0
  555. psyclone-3.3.0/src/psyclone/line_length.py +241 -0
  556. psyclone-3.3.0/src/psyclone/parse/__init__.py +52 -0
  557. psyclone-3.3.0/src/psyclone/parse/algorithm.py +1159 -0
  558. psyclone-3.3.0/src/psyclone/parse/file_info.py +518 -0
  559. psyclone-3.3.0/src/psyclone/parse/kernel.py +1022 -0
  560. psyclone-3.3.0/src/psyclone/parse/lfric_builtins_mod.f90 +1292 -0
  561. psyclone-3.3.0/src/psyclone/parse/module_info.py +338 -0
  562. psyclone-3.3.0/src/psyclone/parse/module_manager.py +727 -0
  563. psyclone-3.3.0/src/psyclone/parse/utils.py +137 -0
  564. psyclone-3.3.0/src/psyclone/profiler.py +196 -0
  565. psyclone-3.3.0/src/psyclone/psyGen.py +2580 -0
  566. psyclone-3.3.0/src/psyclone/psyad/__init__.py +41 -0
  567. psyclone-3.3.0/src/psyclone/psyad/adjoint_visitor.py +466 -0
  568. psyclone-3.3.0/src/psyclone/psyad/domain/common/__init__.py +42 -0
  569. psyclone-3.3.0/src/psyclone/psyad/domain/common/adjoint_utils.py +243 -0
  570. psyclone-3.3.0/src/psyclone/psyad/domain/lfric/__init__.py +42 -0
  571. psyclone-3.3.0/src/psyclone/psyad/domain/lfric/lfric_adjoint.py +294 -0
  572. psyclone-3.3.0/src/psyclone/psyad/domain/lfric/lfric_adjoint_harness.py +821 -0
  573. psyclone-3.3.0/src/psyclone/psyad/main.py +215 -0
  574. psyclone-3.3.0/src/psyclone/psyad/tl2ad.py +728 -0
  575. psyclone-3.3.0/src/psyclone/psyad/transformations/__init__.py +39 -0
  576. psyclone-3.3.0/src/psyclone/psyad/transformations/adjoint_trans.py +90 -0
  577. psyclone-3.3.0/src/psyclone/psyad/transformations/assignment_trans.py +411 -0
  578. psyclone-3.3.0/src/psyclone/psyad/transformations/preprocess.py +110 -0
  579. psyclone-3.3.0/src/psyclone/psyad/transformations/tangent_linear_error.py +60 -0
  580. psyclone-3.3.0/src/psyclone/psyad/utils.py +144 -0
  581. psyclone-3.3.0/src/psyclone/psyclonefc_cli.py +162 -0
  582. psyclone-3.3.0/src/psyclone/psyir/__init__.py +40 -0
  583. psyclone-3.3.0/src/psyclone/psyir/backend/__init__.py +33 -0
  584. psyclone-3.3.0/src/psyclone/psyir/backend/c.py +560 -0
  585. psyclone-3.3.0/src/psyclone/psyir/backend/debug_writer.py +80 -0
  586. psyclone-3.3.0/src/psyclone/psyir/backend/fortran.py +1922 -0
  587. psyclone-3.3.0/src/psyclone/psyir/backend/language_writer.py +266 -0
  588. psyclone-3.3.0/src/psyclone/psyir/backend/opencl.py +257 -0
  589. psyclone-3.3.0/src/psyclone/psyir/backend/sir.py +571 -0
  590. psyclone-3.3.0/src/psyclone/psyir/backend/sympy_writer.py +940 -0
  591. psyclone-3.3.0/src/psyclone/psyir/backend/visitor.py +348 -0
  592. psyclone-3.3.0/src/psyclone/psyir/commentable_mixin.py +115 -0
  593. psyclone-3.3.0/src/psyclone/psyir/frontend/__init__.py +33 -0
  594. psyclone-3.3.0/src/psyclone/psyir/frontend/fortran.py +232 -0
  595. psyclone-3.3.0/src/psyclone/psyir/frontend/fortran_treesitter_reader.py +283 -0
  596. psyclone-3.3.0/src/psyclone/psyir/frontend/fparser2.py +6250 -0
  597. psyclone-3.3.0/src/psyclone/psyir/frontend/sympy_reader.py +277 -0
  598. psyclone-3.3.0/src/psyclone/psyir/nodes/__init__.py +219 -0
  599. psyclone-3.3.0/src/psyclone/psyir/nodes/acc_clauses.py +161 -0
  600. psyclone-3.3.0/src/psyclone/psyir/nodes/acc_directives.py +1113 -0
  601. psyclone-3.3.0/src/psyclone/psyir/nodes/acc_mixins.py +191 -0
  602. psyclone-3.3.0/src/psyclone/psyir/nodes/array_constructor.py +128 -0
  603. psyclone-3.3.0/src/psyclone/psyir/nodes/array_member.py +94 -0
  604. psyclone-3.3.0/src/psyclone/psyir/nodes/array_mixin.py +885 -0
  605. psyclone-3.3.0/src/psyclone/psyir/nodes/array_of_structures_member.py +101 -0
  606. psyclone-3.3.0/src/psyclone/psyir/nodes/array_of_structures_mixin.py +153 -0
  607. psyclone-3.3.0/src/psyclone/psyir/nodes/array_of_structures_reference.py +140 -0
  608. psyclone-3.3.0/src/psyclone/psyir/nodes/array_reference.py +234 -0
  609. psyclone-3.3.0/src/psyclone/psyir/nodes/assignment.py +282 -0
  610. psyclone-3.3.0/src/psyclone/psyir/nodes/atomic_mixin.py +116 -0
  611. psyclone-3.3.0/src/psyclone/psyir/nodes/call.py +942 -0
  612. psyclone-3.3.0/src/psyclone/psyir/nodes/clause.py +75 -0
  613. psyclone-3.3.0/src/psyclone/psyir/nodes/codeblock.py +409 -0
  614. psyclone-3.3.0/src/psyclone/psyir/nodes/container.py +254 -0
  615. psyclone-3.3.0/src/psyclone/psyir/nodes/data_sharing_attribute_mixin.py +356 -0
  616. psyclone-3.3.0/src/psyclone/psyir/nodes/datanode.py +90 -0
  617. psyclone-3.3.0/src/psyclone/psyir/nodes/directive.py +283 -0
  618. psyclone-3.3.0/src/psyclone/psyir/nodes/dynamic_omp_task_directive.py +2163 -0
  619. psyclone-3.3.0/src/psyclone/psyir/nodes/extract_node.py +505 -0
  620. psyclone-3.3.0/src/psyclone/psyir/nodes/file_container.py +102 -0
  621. psyclone-3.3.0/src/psyclone/psyir/nodes/if_block.py +197 -0
  622. psyclone-3.3.0/src/psyclone/psyir/nodes/intrinsic_call.py +5342 -0
  623. psyclone-3.3.0/src/psyclone/psyir/nodes/kernel_schedule.py +53 -0
  624. psyclone-3.3.0/src/psyclone/psyir/nodes/literal.py +239 -0
  625. psyclone-3.3.0/src/psyclone/psyir/nodes/loop.py +556 -0
  626. psyclone-3.3.0/src/psyclone/psyir/nodes/member.py +157 -0
  627. psyclone-3.3.0/src/psyclone/psyir/nodes/node.py +1891 -0
  628. psyclone-3.3.0/src/psyclone/psyir/nodes/omp_clauses.py +579 -0
  629. psyclone-3.3.0/src/psyclone/psyir/nodes/omp_directives.py +2498 -0
  630. psyclone-3.3.0/src/psyclone/psyir/nodes/omp_task_directive.py +183 -0
  631. psyclone-3.3.0/src/psyclone/psyir/nodes/operation.py +471 -0
  632. psyclone-3.3.0/src/psyclone/psyir/nodes/profile_node.py +63 -0
  633. psyclone-3.3.0/src/psyclone/psyir/nodes/psy_data_node.py +737 -0
  634. psyclone-3.3.0/src/psyclone/psyir/nodes/ranges.py +265 -0
  635. psyclone-3.3.0/src/psyclone/psyir/nodes/read_only_verify_node.py +102 -0
  636. psyclone-3.3.0/src/psyclone/psyir/nodes/reference.py +436 -0
  637. psyclone-3.3.0/src/psyclone/psyir/nodes/return_stmt.py +53 -0
  638. psyclone-3.3.0/src/psyclone/psyir/nodes/routine.py +567 -0
  639. psyclone-3.3.0/src/psyclone/psyir/nodes/schedule.py +89 -0
  640. psyclone-3.3.0/src/psyclone/psyir/nodes/scoping_node.py +234 -0
  641. psyclone-3.3.0/src/psyclone/psyir/nodes/statement.py +50 -0
  642. psyclone-3.3.0/src/psyclone/psyir/nodes/structure_accessor_mixin.py +76 -0
  643. psyclone-3.3.0/src/psyclone/psyir/nodes/structure_member.py +119 -0
  644. psyclone-3.3.0/src/psyclone/psyir/nodes/structure_reference.py +384 -0
  645. psyclone-3.3.0/src/psyclone/psyir/nodes/unknown_directive.py +103 -0
  646. psyclone-3.3.0/src/psyclone/psyir/nodes/value_range_check_node.py +104 -0
  647. psyclone-3.3.0/src/psyclone/psyir/nodes/while_loop.py +156 -0
  648. psyclone-3.3.0/src/psyclone/psyir/symbols/__init__.py +86 -0
  649. psyclone-3.3.0/src/psyclone/psyir/symbols/containersymbol.py +267 -0
  650. psyclone-3.3.0/src/psyclone/psyir/symbols/data_type_symbol.py +161 -0
  651. psyclone-3.3.0/src/psyclone/psyir/symbols/datasymbol.py +445 -0
  652. psyclone-3.3.0/src/psyclone/psyir/symbols/datatypes.py +1501 -0
  653. psyclone-3.3.0/src/psyclone/psyir/symbols/generic_interface_symbol.py +342 -0
  654. psyclone-3.3.0/src/psyclone/psyir/symbols/interfaces.py +289 -0
  655. psyclone-3.3.0/src/psyclone/psyir/symbols/intrinsic_symbol.py +91 -0
  656. psyclone-3.3.0/src/psyclone/psyir/symbols/routinesymbol.py +199 -0
  657. psyclone-3.3.0/src/psyclone/psyir/symbols/symbol.py +578 -0
  658. psyclone-3.3.0/src/psyclone/psyir/symbols/symbol_table.py +2277 -0
  659. psyclone-3.3.0/src/psyclone/psyir/symbols/typed_symbol.py +281 -0
  660. psyclone-3.3.0/src/psyclone/psyir/tools/__init__.py +53 -0
  661. psyclone-3.3.0/src/psyclone/psyir/tools/call_tree_utils.py +551 -0
  662. psyclone-3.3.0/src/psyclone/psyir/tools/definition_use_chains.py +1269 -0
  663. psyclone-3.3.0/src/psyclone/psyir/tools/dependency_tools.py +1129 -0
  664. psyclone-3.3.0/src/psyclone/psyir/tools/read_write_info.py +209 -0
  665. psyclone-3.3.0/src/psyclone/psyir/tools/reduction_inference.py +240 -0
  666. psyclone-3.3.0/src/psyclone/psyir/tools/type_info_computation.py +164 -0
  667. psyclone-3.3.0/src/psyclone/psyir/transformations/__init__.py +203 -0
  668. psyclone-3.3.0/src/psyclone/psyir/transformations/acc_kernels_trans.py +329 -0
  669. psyclone-3.3.0/src/psyclone/psyir/transformations/acc_loop_trans.py +162 -0
  670. psyclone-3.3.0/src/psyclone/psyir/transformations/acc_update_trans.py +471 -0
  671. psyclone-3.3.0/src/psyclone/psyir/transformations/allarrayaccess2loop_trans.py +152 -0
  672. psyclone-3.3.0/src/psyclone/psyir/transformations/arrayaccess2loop_trans.py +234 -0
  673. psyclone-3.3.0/src/psyclone/psyir/transformations/arrayassignment2loops_trans.py +477 -0
  674. psyclone-3.3.0/src/psyclone/psyir/transformations/async_trans_mixin.py +282 -0
  675. psyclone-3.3.0/src/psyclone/psyir/transformations/callee_transformation_mixin.py +113 -0
  676. psyclone-3.3.0/src/psyclone/psyir/transformations/chunk_loop_trans.py +279 -0
  677. psyclone-3.3.0/src/psyclone/psyir/transformations/datanode_to_temp_trans.py +438 -0
  678. psyclone-3.3.0/src/psyclone/psyir/transformations/debug_checksum_trans.py +245 -0
  679. psyclone-3.3.0/src/psyclone/psyir/transformations/extract_trans.py +141 -0
  680. psyclone-3.3.0/src/psyclone/psyir/transformations/fold_conditional_return_expressions_trans.py +153 -0
  681. psyclone-3.3.0/src/psyclone/psyir/transformations/hoist_local_arrays_trans.py +527 -0
  682. psyclone-3.3.0/src/psyclone/psyir/transformations/hoist_loop_bound_expr_trans.py +174 -0
  683. psyclone-3.3.0/src/psyclone/psyir/transformations/hoist_trans.py +289 -0
  684. psyclone-3.3.0/src/psyclone/psyir/transformations/increase_rank_loop_arrays_trans.py +281 -0
  685. psyclone-3.3.0/src/psyclone/psyir/transformations/inline_trans.py +1274 -0
  686. psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/__init__.py +40 -0
  687. psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/abs2code_trans.py +178 -0
  688. psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/array_reduction_base_trans.py +379 -0
  689. psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/dotproduct2code_trans.py +291 -0
  690. psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/intrinsic2code_trans.py +148 -0
  691. psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/matmul2code_trans.py +523 -0
  692. psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/max2code_trans.py +92 -0
  693. psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/maxval2loop_trans.py +191 -0
  694. psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/min2code_trans.py +95 -0
  695. psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/minormax2code_trans.py +190 -0
  696. psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/minval2loop_trans.py +189 -0
  697. psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/product2loop_trans.py +198 -0
  698. psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/sign2code_trans.py +197 -0
  699. psyclone-3.3.0/src/psyclone/psyir/transformations/intrinsics/sum2loop_trans.py +202 -0
  700. psyclone-3.3.0/src/psyclone/psyir/transformations/loop_fuse_trans.py +231 -0
  701. psyclone-3.3.0/src/psyclone/psyir/transformations/loop_swap_trans.py +205 -0
  702. psyclone-3.3.0/src/psyclone/psyir/transformations/loop_tiling_2d_trans.py +162 -0
  703. psyclone-3.3.0/src/psyclone/psyir/transformations/loop_tiling_trans.py +198 -0
  704. psyclone-3.3.0/src/psyclone/psyir/transformations/loop_trans.py +187 -0
  705. psyclone-3.3.0/src/psyclone/psyir/transformations/mark_routine_for_gpu_mixin.py +180 -0
  706. psyclone-3.3.0/src/psyclone/psyir/transformations/maximal_omp_parallel_region_trans.py +94 -0
  707. psyclone-3.3.0/src/psyclone/psyir/transformations/maximal_region_trans.py +263 -0
  708. psyclone-3.3.0/src/psyclone/psyir/transformations/move_trans.py +154 -0
  709. psyclone-3.3.0/src/psyclone/psyir/transformations/omp_critical_trans.py +85 -0
  710. psyclone-3.3.0/src/psyclone/psyir/transformations/omp_declare_target_trans.py +147 -0
  711. psyclone-3.3.0/src/psyclone/psyir/transformations/omp_loop_trans.py +351 -0
  712. psyclone-3.3.0/src/psyclone/psyir/transformations/omp_minimise_sync_trans.py +562 -0
  713. psyclone-3.3.0/src/psyclone/psyir/transformations/omp_parallel_loop_trans.py +144 -0
  714. psyclone-3.3.0/src/psyclone/psyir/transformations/omp_parallel_trans.py +143 -0
  715. psyclone-3.3.0/src/psyclone/psyir/transformations/omp_target_trans.py +257 -0
  716. psyclone-3.3.0/src/psyclone/psyir/transformations/omp_task_trans.py +239 -0
  717. psyclone-3.3.0/src/psyclone/psyir/transformations/omp_taskloop_trans.py +284 -0
  718. psyclone-3.3.0/src/psyclone/psyir/transformations/omp_taskwait_trans.py +494 -0
  719. psyclone-3.3.0/src/psyclone/psyir/transformations/parallel_loop_trans.py +600 -0
  720. psyclone-3.3.0/src/psyclone/psyir/transformations/parallel_region_trans.py +141 -0
  721. psyclone-3.3.0/src/psyclone/psyir/transformations/profile_trans.py +126 -0
  722. psyclone-3.3.0/src/psyclone/psyir/transformations/psy_data_trans.py +338 -0
  723. psyclone-3.3.0/src/psyclone/psyir/transformations/read_only_verify_trans.py +126 -0
  724. psyclone-3.3.0/src/psyclone/psyir/transformations/reference2arrayrange_trans.py +312 -0
  725. psyclone-3.3.0/src/psyclone/psyir/transformations/region_trans.py +236 -0
  726. psyclone-3.3.0/src/psyclone/psyir/transformations/replace_induction_variables_trans.py +289 -0
  727. psyclone-3.3.0/src/psyclone/psyir/transformations/replace_reference_by_literal_trans.py +306 -0
  728. psyclone-3.3.0/src/psyclone/psyir/transformations/scalarisation_trans.py +458 -0
  729. psyclone-3.3.0/src/psyclone/psyir/transformations/transformation_error.py +49 -0
  730. psyclone-3.3.0/src/psyclone/psyir/transformations/value_range_check_trans.py +106 -0
  731. psyclone-3.3.0/src/psyclone/transformations.py +2094 -0
  732. psyclone-3.3.0/src/psyclone/utils.py +236 -0
  733. psyclone-3.3.0/src/psyclone/version.py +52 -0
  734. psyclone-3.3.0/tutorial/notebooks/introduction.ipynb +110 -0
  735. psyclone-3.3.0/tutorial/notebooks/nemo/nemo_example4.ipynb +166 -0
  736. psyclone-3.2.2/LICENSE +0 -29
  737. psyclone-3.2.2/MANIFEST.in +0 -45
  738. psyclone-3.2.2/PKG-INFO +0 -64
  739. psyclone-3.2.2/README.md +0 -94
  740. psyclone-3.2.2/bin/psyad +0 -46
  741. psyclone-3.2.2/bin/psyclone +0 -42
  742. psyclone-3.2.2/bin/psyclone-kern +0 -46
  743. psyclone-3.2.2/bin/psyclonefc +0 -45
  744. psyclone-3.2.2/config/psyclone.cfg +0 -156
  745. psyclone-3.2.2/doc/Makefile +0 -154
  746. psyclone-3.2.2/doc/_ext/apilinks.py +0 -84
  747. psyclone-3.2.2/doc/conf.py +0 -455
  748. psyclone-3.2.2/doc/developer_guide/APIs.rst +0 -1244
  749. psyclone-3.2.2/doc/developer_guide/code_snippets/newnode.py +0 -86
  750. psyclone-3.2.2/doc/developer_guide/coding-style.rst +0 -314
  751. psyclone-3.2.2/doc/developer_guide/dependency.rst +0 -672
  752. psyclone-3.2.2/doc/developer_guide/index.rst +0 -27
  753. psyclone-3.2.2/doc/developer_guide/integration-test.rst +0 -35
  754. psyclone-3.2.2/doc/developer_guide/interface_example.py +0 -45
  755. psyclone-3.2.2/doc/developer_guide/module_manager.rst +0 -235
  756. psyclone-3.2.2/doc/developer_guide/pip_requirements.txt +0 -43
  757. psyclone-3.2.2/doc/developer_guide/psy_data.rst +0 -1230
  758. psyclone-3.2.2/doc/developer_guide/psyir.rst +0 -1120
  759. psyclone-3.2.2/doc/developer_guide/psyir_backends.rst +0 -402
  760. psyclone-3.2.2/doc/developer_guide/psyir_symbols.rst +0 -383
  761. psyclone-3.2.2/doc/developer_guide/psykal.rst +0 -439
  762. psyclone-3.2.2/doc/developer_guide/sympy.rst +0 -245
  763. psyclone-3.2.2/doc/developer_guide/system_specific_setup.rst +0 -182
  764. psyclone-3.2.2/doc/developer_guide/transformations.rst +0 -589
  765. psyclone-3.2.2/doc/developer_guide/working_practises.rst +0 -722
  766. psyclone-3.2.2/doc/index.rst +0 -96
  767. psyclone-3.2.2/doc/reference_guide/index.rst +0 -12
  768. psyclone-3.2.2/doc/tutorials_and_examples/examples_intro.rst +0 -141
  769. psyclone-3.2.2/doc/tutorials_and_examples/gocean_examples.rst +0 -184
  770. psyclone-3.2.2/doc/tutorials_and_examples/index.rst +0 -52
  771. psyclone-3.2.2/doc/tutorials_and_examples/lfric_examples.rst +0 -316
  772. psyclone-3.2.2/doc/tutorials_and_examples/nemo_examples.rst +0 -70
  773. psyclone-3.2.2/doc/tutorials_and_examples/psyir_examples.rst +0 -17
  774. psyclone-3.2.2/doc/tutorials_and_examples/tutorials.rst +0 -27
  775. psyclone-3.2.2/doc/user_guide/configuration.rst +0 -270
  776. psyclone-3.2.2/doc/user_guide/getting_going.rst +0 -384
  777. psyclone-3.2.2/doc/user_guide/gocean1p0.rst +0 -910
  778. psyclone-3.2.2/doc/user_guide/index.rst +0 -45
  779. psyclone-3.2.2/doc/user_guide/introduction_to_psykal.rst +0 -411
  780. psyclone-3.2.2/doc/user_guide/lfric.rst +0 -4108
  781. psyclone-3.2.2/doc/user_guide/libraries.rst +0 -211
  782. psyclone-3.2.2/doc/user_guide/profiling.rst +0 -576
  783. psyclone-3.2.2/doc/user_guide/psy_data.rst +0 -373
  784. psyclone-3.2.2/doc/user_guide/psyad.rst +0 -826
  785. psyclone-3.2.2/doc/user_guide/psyclone_command.rst +0 -525
  786. psyclone-3.2.2/doc/user_guide/psyclone_kern.rst +0 -612
  787. psyclone-3.2.2/doc/user_guide/psyir.rst +0 -845
  788. psyclone-3.2.2/doc/user_guide/psyke.rst +0 -644
  789. psyclone-3.2.2/doc/user_guide/transformations.rst +0 -953
  790. psyclone-3.2.2/doc/user_guide/user_scripts.rst +0 -144
  791. psyclone-3.2.2/examples/Makefile +0 -46
  792. psyclone-3.2.2/examples/common.mk +0 -103
  793. psyclone-3.2.2/examples/gocean/Makefile +0 -39
  794. psyclone-3.2.2/examples/gocean/README.md +0 -101
  795. psyclone-3.2.2/examples/gocean/eg1/Makefile +0 -116
  796. psyclone-3.2.2/examples/gocean/eg1/README.md +0 -77
  797. psyclone-3.2.2/examples/gocean/eg1/opencl_transformation.py +0 -77
  798. psyclone-3.2.2/examples/gocean/eg1/openmp_taskloop_trans.py +0 -67
  799. psyclone-3.2.2/examples/gocean/eg1/runme.py +0 -84
  800. psyclone-3.2.2/examples/gocean/eg1/runme_dag.py +0 -90
  801. psyclone-3.2.2/examples/gocean/eg1/runme_loop_fuse.py +0 -103
  802. psyclone-3.2.2/examples/gocean/eg1/runme_openacc.py +0 -125
  803. psyclone-3.2.2/examples/gocean/eg1/runme_openmp.py +0 -108
  804. psyclone-3.2.2/examples/gocean/eg1/shallow_alg.f90 +0 -251
  805. psyclone-3.2.2/examples/gocean/eg2/Makefile +0 -123
  806. psyclone-3.2.2/examples/gocean/eg2/README.md +0 -106
  807. psyclone-3.2.2/examples/gocean/eg2/acc_prof_transform.py +0 -63
  808. psyclone-3.2.2/examples/gocean/eg2/acc_transform.py +0 -84
  809. psyclone-3.2.2/examples/gocean/eg2/alg.f90 +0 -99
  810. psyclone-3.2.2/examples/gocean/eg2/inc_field_mod.f90 +0 -79
  811. psyclone-3.2.2/examples/gocean/eg3/Makefile +0 -113
  812. psyclone-3.2.2/examples/gocean/eg3/README.md +0 -133
  813. psyclone-3.2.2/examples/gocean/eg3/alg.f90 +0 -103
  814. psyclone-3.2.2/examples/gocean/eg3/compute_cu_mod.f90 +0 -89
  815. psyclone-3.2.2/examples/gocean/eg3/compute_cv_mod.f90 +0 -85
  816. psyclone-3.2.2/examples/gocean/eg3/compute_h_mod.f90 +0 -85
  817. psyclone-3.2.2/examples/gocean/eg3/compute_z_mod.f90 +0 -103
  818. psyclone-3.2.2/examples/gocean/eg3/ocl_trans.py +0 -77
  819. psyclone-3.2.2/examples/gocean/eg4/Makefile +0 -102
  820. psyclone-3.2.2/examples/gocean/eg4/README.md +0 -143
  821. psyclone-3.2.2/examples/gocean/eg4/acc_transform.py +0 -83
  822. psyclone-3.2.2/examples/gocean/eg4/alg_kern_use_var.f90 +0 -82
  823. psyclone-3.2.2/examples/gocean/eg4/alg_nested_use.f90 +0 -50
  824. psyclone-3.2.2/examples/gocean/eg4/another_mod.f90 +0 -47
  825. psyclone-3.2.2/examples/gocean/eg4/data_mod.f90 +0 -52
  826. psyclone-3.2.2/examples/gocean/eg4/kern_call_kern_mod.f90 +0 -62
  827. psyclone-3.2.2/examples/gocean/eg4/kern_nested_use_mod.f90 +0 -59
  828. psyclone-3.2.2/examples/gocean/eg4/kern_use_var_mod.f90 +0 -66
  829. psyclone-3.2.2/examples/gocean/eg4/ocl_transform.py +0 -71
  830. psyclone-3.2.2/examples/gocean/eg5/Makefile +0 -38
  831. psyclone-3.2.2/examples/gocean/eg5/README.md +0 -49
  832. psyclone-3.2.2/examples/gocean/eg5/extract/Makefile +0 -183
  833. psyclone-3.2.2/examples/gocean/eg5/extract/README.md +0 -141
  834. psyclone-3.2.2/examples/gocean/eg5/extract/extract_transform.py +0 -68
  835. psyclone-3.2.2/examples/gocean/eg5/extract/init_field_mod.f90 +0 -72
  836. psyclone-3.2.2/examples/gocean/eg5/extract/update_field_mod.f90 +0 -85
  837. psyclone-3.2.2/examples/gocean/eg5/profile/Makefile +0 -187
  838. psyclone-3.2.2/examples/gocean/eg5/profile/README.md +0 -141
  839. psyclone-3.2.2/examples/gocean/eg5/profile/init_field_mod.f90 +0 -72
  840. psyclone-3.2.2/examples/gocean/eg5/profile/test.x90 +0 -83
  841. psyclone-3.2.2/examples/gocean/eg5/profile/update_field_mod.f90 +0 -76
  842. psyclone-3.2.2/examples/gocean/eg5/readonly/Makefile +0 -113
  843. psyclone-3.2.2/examples/gocean/eg5/readonly/README.md +0 -93
  844. psyclone-3.2.2/examples/gocean/eg5/readonly/init_field_mod.f90 +0 -81
  845. psyclone-3.2.2/examples/gocean/eg5/readonly/read_only_transform.py +0 -68
  846. psyclone-3.2.2/examples/gocean/eg5/readonly/test.x90 +0 -90
  847. psyclone-3.2.2/examples/gocean/eg5/readonly/update_field_mod.f90 +0 -105
  848. psyclone-3.2.2/examples/gocean/eg5/value_range_check/Makefile +0 -114
  849. psyclone-3.2.2/examples/gocean/eg5/value_range_check/README.md +0 -95
  850. psyclone-3.2.2/examples/gocean/eg5/value_range_check/init_field_mod.f90 +0 -76
  851. psyclone-3.2.2/examples/gocean/eg5/value_range_check/test.x90 +0 -82
  852. psyclone-3.2.2/examples/gocean/eg5/value_range_check/update_field_mod.f90 +0 -81
  853. psyclone-3.2.2/examples/gocean/eg5/value_range_check/value_range_check_transformation.py +0 -68
  854. psyclone-3.2.2/examples/gocean/eg6/Makefile +0 -45
  855. psyclone-3.2.2/examples/gocean/eg6/alg.f90 +0 -96
  856. psyclone-3.2.2/examples/gocean/eg6/backends_transform.py +0 -75
  857. psyclone-3.2.2/examples/gocean/eg6/inc_field_mod.f90 +0 -84
  858. psyclone-3.2.2/examples/gocean/eg7/Makefile +0 -46
  859. psyclone-3.2.2/examples/gocean/eg7/alg.f90 +0 -96
  860. psyclone-3.2.2/examples/gocean/eg7/alg_transform.py +0 -52
  861. psyclone-3.2.2/examples/gocean/eg7/inc_field_mod.f90 +0 -84
  862. psyclone-3.2.2/examples/lfric/Makefile +0 -38
  863. psyclone-3.2.2/examples/lfric/code/dg_matrix_vector_kernel_mod.F90 +0 -136
  864. psyclone-3.2.2/examples/lfric/code/gw_mixed_schur_preconditioner_alg_mod.x90 +0 -247
  865. psyclone-3.2.2/examples/lfric/code/matrix_vector_kernel_mod.F90 +0 -130
  866. psyclone-3.2.2/examples/lfric/code/testkern_mod.F90 +0 -82
  867. psyclone-3.2.2/examples/lfric/code/testkern_write_any_mod.f90 +0 -82
  868. psyclone-3.2.2/examples/lfric/eg1/Makefile +0 -53
  869. psyclone-3.2.2/examples/lfric/eg1/single_invoke.x90 +0 -53
  870. psyclone-3.2.2/examples/lfric/eg10/Makefile +0 -68
  871. psyclone-3.2.2/examples/lfric/eg10/intergrid_3levels.x90 +0 -52
  872. psyclone-3.2.2/examples/lfric/eg10/prolong_kernel_mod.F90 +0 -141
  873. psyclone-3.2.2/examples/lfric/eg10/restrict_kernel_mod.F90 +0 -145
  874. psyclone-3.2.2/examples/lfric/eg11/Makefile +0 -83
  875. psyclone-3.2.2/examples/lfric/eg11/async_script.py +0 -84
  876. psyclone-3.2.2/examples/lfric/eg11/driver.f90 +0 -41
  877. psyclone-3.2.2/examples/lfric/eg11/helmholtz_solver_alg_mod.x90 +0 -67
  878. psyclone-3.2.2/examples/lfric/eg11/scaled_matrix_vector_kernel_mod.F90 +0 -213
  879. psyclone-3.2.2/examples/lfric/eg12/Makefile +0 -57
  880. psyclone-3.2.2/examples/lfric/eg12/colouring_and_omp.py +0 -78
  881. psyclone-3.2.2/examples/lfric/eg12/extract_kernel_with_transformations.py +0 -110
  882. psyclone-3.2.2/examples/lfric/eg12/extract_nodes.py +0 -91
  883. psyclone-3.2.2/examples/lfric/eg12/find_kernel.py +0 -137
  884. psyclone-3.2.2/examples/lfric/eg13/Makefile +0 -51
  885. psyclone-3.2.2/examples/lfric/eg13/kernel_constants.py +0 -95
  886. psyclone-3.2.2/examples/lfric/eg14/Makefile +0 -121
  887. psyclone-3.2.2/examples/lfric/eg14/README.md +0 -47
  888. psyclone-3.2.2/examples/lfric/eg14/acc_parallel.py +0 -89
  889. psyclone-3.2.2/examples/lfric/eg14/main.x90 +0 -150
  890. psyclone-3.2.2/examples/lfric/eg14/other_alg_mod.x90 +0 -53
  891. psyclone-3.2.2/examples/lfric/eg14/testkern_w0_kernel_mod.f90 +0 -82
  892. psyclone-3.2.2/examples/lfric/eg15/Makefile +0 -48
  893. psyclone-3.2.2/examples/lfric/eg15/matvec_opt.py +0 -110
  894. psyclone-3.2.2/examples/lfric/eg16/Makefile +0 -44
  895. psyclone-3.2.2/examples/lfric/eg16/README.md +0 -51
  896. psyclone-3.2.2/examples/lfric/eg16/create.py +0 -141
  897. psyclone-3.2.2/examples/lfric/eg17/Makefile +0 -41
  898. psyclone-3.2.2/examples/lfric/eg17/README.md +0 -76
  899. psyclone-3.2.2/examples/lfric/eg17/full_example/Makefile +0 -85
  900. psyclone-3.2.2/examples/lfric/eg17/full_example/README.md +0 -85
  901. psyclone-3.2.2/examples/lfric/eg17/full_example/main.x90 +0 -135
  902. psyclone-3.2.2/examples/lfric/eg17/full_example/testkern_w0_kernel_mod.f90 +0 -82
  903. psyclone-3.2.2/examples/lfric/eg17/full_example_extract/Makefile +0 -158
  904. psyclone-3.2.2/examples/lfric/eg17/full_example_extract/README.md +0 -108
  905. psyclone-3.2.2/examples/lfric/eg17/full_example_extract/dummy_mod.f90 +0 -67
  906. psyclone-3.2.2/examples/lfric/eg17/full_example_extract/extract_transform.py +0 -70
  907. psyclone-3.2.2/examples/lfric/eg17/full_example_extract/main.X90 +0 -176
  908. psyclone-3.2.2/examples/lfric/eg17/full_example_extract/testkern_w0_kernel_mod.f90 +0 -109
  909. psyclone-3.2.2/examples/lfric/eg17/full_example_netcdf/Makefile +0 -89
  910. psyclone-3.2.2/examples/lfric/eg17/full_example_netcdf/README.md +0 -88
  911. psyclone-3.2.2/examples/lfric/eg17/full_example_netcdf/main.x90 +0 -136
  912. psyclone-3.2.2/examples/lfric/eg17/full_example_netcdf/testkern_w0_kernel_mod.f90 +0 -82
  913. psyclone-3.2.2/examples/lfric/eg18/Makefile +0 -49
  914. psyclone-3.2.2/examples/lfric/eg18/advection_alg_mod.x90 +0 -71
  915. psyclone-3.2.2/examples/lfric/eg18/impose_min_flux_kernel_mod.f90 +0 -181
  916. psyclone-3.2.2/examples/lfric/eg19/Makefile +0 -75
  917. psyclone-3.2.2/examples/lfric/eg19/algorithm.x90 +0 -70
  918. psyclone-3.2.2/examples/lfric/eg19/mixed_kernel_mod.f90 +0 -113
  919. psyclone-3.2.2/examples/lfric/eg2/Makefile +0 -65
  920. psyclone-3.2.2/examples/lfric/eg2/loop_fuse_trans.py +0 -66
  921. psyclone-3.2.2/examples/lfric/eg2/module_inline_trans.py +0 -58
  922. psyclone-3.2.2/examples/lfric/eg2/multi_invoke_mod.x90 +0 -60
  923. psyclone-3.2.2/examples/lfric/eg2/print_psyir_trans.py +0 -56
  924. psyclone-3.2.2/examples/lfric/eg20/Makefile +0 -68
  925. psyclone-3.2.2/examples/lfric/eg3/Makefile +0 -53
  926. psyclone-3.2.2/examples/lfric/eg3/colouring_and_omp.py +0 -79
  927. psyclone-3.2.2/examples/lfric/eg3/matrix_vector_mm_kernel_mod.F90 +0 -128
  928. psyclone-3.2.2/examples/lfric/eg3/solver_mod.x90 +0 -796
  929. psyclone-3.2.2/examples/lfric/eg3/w3_solver_kernel_mod.F90 +0 -206
  930. psyclone-3.2.2/examples/lfric/eg4/Makefile +0 -56
  931. psyclone-3.2.2/examples/lfric/eg4/backends_transform.py +0 -79
  932. psyclone-3.2.2/examples/lfric/eg4/enforce_bc_kernel_mod.f90 +0 -120
  933. psyclone-3.2.2/examples/lfric/eg4/matrix_vector_kernel_mod.F90 +0 -130
  934. psyclone-3.2.2/examples/lfric/eg4/mm_diagonal_kernel_mod.F90 +0 -120
  935. psyclone-3.2.2/examples/lfric/eg4/solver_mod.x90 +0 -154
  936. psyclone-3.2.2/examples/lfric/eg5/Makefile +0 -46
  937. psyclone-3.2.2/examples/lfric/eg5/alg.f90 +0 -107
  938. psyclone-3.2.2/examples/lfric/eg5/conservative_flux_kernel_mod.F90 +0 -264
  939. psyclone-3.2.2/examples/lfric/eg5/subgrid_coeffs_kernel_mod.F90 +0 -221
  940. psyclone-3.2.2/examples/lfric/eg6/Makefile +0 -64
  941. psyclone-3.2.2/examples/lfric/eg6/alg.x90 +0 -66
  942. psyclone-3.2.2/examples/lfric/eg6/omp_reprod_script.py +0 -84
  943. psyclone-3.2.2/examples/lfric/eg6/omp_script.py +0 -79
  944. psyclone-3.2.2/examples/lfric/eg7/Makefile +0 -46
  945. psyclone-3.2.2/examples/lfric/eg7/alg.x90 +0 -94
  946. psyclone-3.2.2/examples/lfric/eg7/columnwise_op_app_kernel_mod.F90 +0 -157
  947. psyclone-3.2.2/examples/lfric/eg7/columnwise_op_asm_kernel_mod.F90 +0 -161
  948. psyclone-3.2.2/examples/lfric/eg7/columnwise_op_mul_kernel_mod.F90 +0 -180
  949. psyclone-3.2.2/examples/lfric/eg7/matrix_vector_kernel_mod.F90 +0 -130
  950. psyclone-3.2.2/examples/lfric/eg8/Makefile +0 -53
  951. psyclone-3.2.2/examples/lfric/eg8/apply_variable_hx_kernel_mod.F90 +0 -364
  952. psyclone-3.2.2/examples/lfric/eg8/enforce_bc_kernel_mod.F90 +0 -120
  953. psyclone-3.2.2/examples/lfric/eg8/helmholtz_solver_alg_mod.x90 +0 -88
  954. psyclone-3.2.2/examples/lfric/eg8/redundant_script.py +0 -71
  955. psyclone-3.2.2/examples/lfric/eg8/scaled_matrix_vector_kernel_mod.F90 +0 -136
  956. psyclone-3.2.2/examples/lfric/eg9/Makefile +0 -53
  957. psyclone-3.2.2/examples/lfric/eg9/advective_inc_alg_mod.x90 +0 -138
  958. psyclone-3.2.2/examples/lfric/eg9/colouring_and_omp.py +0 -79
  959. psyclone-3.2.2/examples/lfric/eg9/matrix_vector_kernel_mod.F90 +0 -130
  960. psyclone-3.2.2/examples/lfric/eg9/rtheta_bd_kernel_mod.F90 +0 -297
  961. psyclone-3.2.2/examples/lfric/eg9/rtheta_kernel_mod.F90 +0 -179
  962. psyclone-3.2.2/examples/lfric/eg9/rtheta_wtheta_kernel_mod.F90 +0 -198
  963. psyclone-3.2.2/examples/lfric/eg9/sample_poly_adv_kernel_mod.F90 +0 -499
  964. psyclone-3.2.2/examples/lfric/lfric_common.mk +0 -59
  965. psyclone-3.2.2/examples/lfric/scripts/Makefile +0 -57
  966. psyclone-3.2.2/examples/lfric/scripts/async_halo_exchanges.py +0 -79
  967. psyclone-3.2.2/examples/lfric/scripts/colouring_and_omp.py +0 -78
  968. psyclone-3.2.2/examples/lfric/scripts/compare_ouput.py +0 -82
  969. psyclone-3.2.2/examples/lfric/scripts/does_nothing.py +0 -49
  970. psyclone-3.2.2/examples/lfric/scripts/everything_everywhere_all_at_once.py +0 -143
  971. psyclone-3.2.2/examples/lfric/scripts/extract_script.py +0 -58
  972. psyclone-3.2.2/examples/lfric/scripts/gpu_offloading.py +0 -249
  973. psyclone-3.2.2/examples/lfric/scripts/inline_kernels_and_intrinsics.py +0 -79
  974. psyclone-3.2.2/examples/lfric/scripts/kernel_print.py +0 -65
  975. psyclone-3.2.2/examples/lfric/scripts/loop_fuse.py +0 -74
  976. psyclone-3.2.2/examples/lfric/scripts/redundant_dofs.py +0 -73
  977. psyclone-3.2.2/examples/lfric/scripts/redundant_setval_c.py +0 -80
  978. psyclone-3.2.2/examples/lfric/scripts/tiledcolouring_and_omp.py +0 -75
  979. psyclone-3.2.2/examples/nemo/Makefile +0 -38
  980. psyclone-3.2.2/examples/nemo/README.md +0 -151
  981. psyclone-3.2.2/examples/nemo/code/traldf_iso.F90 +0 -385
  982. psyclone-3.2.2/examples/nemo/eg1/Makefile +0 -50
  983. psyclone-3.2.2/examples/nemo/eg1/README.md +0 -67
  984. psyclone-3.2.2/examples/nemo/eg1/openmp_cpu_levels_trans.py +0 -69
  985. psyclone-3.2.2/examples/nemo/eg1/openmp_gpu_levels_trans.py +0 -83
  986. psyclone-3.2.2/examples/nemo/eg2/Makefile +0 -54
  987. psyclone-3.2.2/examples/nemo/eg2/README.md +0 -63
  988. psyclone-3.2.2/examples/nemo/eg2/omp_levels_trans.py +0 -79
  989. psyclone-3.2.2/examples/nemo/eg3/Makefile +0 -84
  990. psyclone-3.2.2/examples/nemo/eg3/README.md +0 -106
  991. psyclone-3.2.2/examples/nemo/eg3/kernel_utils.py +0 -139
  992. psyclone-3.2.2/examples/nemo/eg3/kernels_trans.py +0 -98
  993. psyclone-3.2.2/examples/nemo/eg4/Makefile +0 -62
  994. psyclone-3.2.2/examples/nemo/eg4/README.md +0 -143
  995. psyclone-3.2.2/examples/nemo/eg4/copy_stencil.f90 +0 -49
  996. psyclone-3.2.2/examples/nemo/eg4/dawn_script.py +0 -91
  997. psyclone-3.2.2/examples/nemo/eg4/hori_diff.f90 +0 -50
  998. psyclone-3.2.2/examples/nemo/eg4/if_example.f90 +0 -63
  999. psyclone-3.2.2/examples/nemo/eg4/intrinsic_example.f90 +0 -63
  1000. psyclone-3.2.2/examples/nemo/eg4/sir_trans.py +0 -56
  1001. psyclone-3.2.2/examples/nemo/eg4/sir_trans_all.py +0 -118
  1002. psyclone-3.2.2/examples/nemo/eg4/sir_trans_loop.py +0 -92
  1003. psyclone-3.2.2/examples/nemo/eg4/tridiagonal_solve.f90 +0 -67
  1004. psyclone-3.2.2/examples/nemo/eg5/Makefile +0 -116
  1005. psyclone-3.2.2/examples/nemo/eg5/README.md +0 -94
  1006. psyclone-3.2.2/examples/nemo/eg5/extract_kernels.py +0 -99
  1007. psyclone-3.2.2/examples/nemo/eg6/Makefile +0 -86
  1008. psyclone-3.2.2/examples/nemo/eg6/README.md +0 -100
  1009. psyclone-3.2.2/examples/nemo/eg6/dummy.f90 +0 -74
  1010. psyclone-3.2.2/examples/nemo/eg6/read_only_check.py +0 -62
  1011. psyclone-3.2.2/examples/nemo/eg7/Makefile +0 -51
  1012. psyclone-3.2.2/examples/nemo/eg7/README.md +0 -62
  1013. psyclone-3.2.2/examples/nemo/eg7/openmp_cpu_nowait_trans.py +0 -134
  1014. psyclone-3.2.2/examples/nemo/eg7/openmp_gpu_nowait_trans.py +0 -78
  1015. psyclone-3.2.2/examples/nemo/scripts/Makefile +0 -129
  1016. psyclone-3.2.2/examples/nemo/scripts/acc_kernels_trans.py +0 -409
  1017. psyclone-3.2.2/examples/nemo/scripts/acc_loops_trans.py +0 -123
  1018. psyclone-3.2.2/examples/nemo/scripts/compare_ouput.py +0 -99
  1019. psyclone-3.2.2/examples/nemo/scripts/omp_cpu_trans.py +0 -135
  1020. psyclone-3.2.2/examples/nemo/scripts/omp_gpu_trans.py +0 -264
  1021. psyclone-3.2.2/examples/nemo/scripts/passthrough.py +0 -59
  1022. psyclone-3.2.2/examples/nemo/scripts/utils.py +0 -673
  1023. psyclone-3.2.2/examples/psyad/Makefile +0 -39
  1024. psyclone-3.2.2/examples/psyad/README.md +0 -66
  1025. psyclone-3.2.2/examples/psyad/eg1/Makefile +0 -63
  1026. psyclone-3.2.2/examples/psyad/eg1/README.md +0 -76
  1027. psyclone-3.2.2/examples/psyad/eg1/testkern_mod.f90 +0 -75
  1028. psyclone-3.2.2/examples/psyad/eg2/Makefile +0 -100
  1029. psyclone-3.2.2/examples/psyad/eg2/README.md +0 -159
  1030. psyclone-3.2.2/examples/psyad/eg2/tl_hydrostatic_kernel_mod.F90 +0 -270
  1031. psyclone-3.2.2/examples/psyad/lfric/Makefile +0 -52
  1032. psyclone-3.2.2/examples/psyad/lfric/README.md +0 -66
  1033. psyclone-3.2.2/examples/psyad/lfric/adjoint/README.md +0 -61
  1034. psyclone-3.2.2/examples/psyad/lfric/adjoint_partial/README.md +0 -46
  1035. psyclone-3.2.2/examples/psyad/lfric/tangent_linear/Makefile +0 -102
  1036. psyclone-3.2.2/examples/psyad/lfric/tangent_linear/README.md +0 -61
  1037. psyclone-3.2.2/examples/psyad/lfric/tangent_linear/combine_w2_field_kernel_mod.F90 +0 -92
  1038. psyclone-3.2.2/examples/psyad/lfric/tangent_linear/convert_hdiv_field_kernel_mod.F90 +0 -161
  1039. psyclone-3.2.2/examples/psyad/lfric/tangent_linear/dg_inc_matrix_vector_kernel_mod.F90 +0 -140
  1040. psyclone-3.2.2/examples/psyad/lfric/tangent_linear/dg_matrix_vector_kernel_mod.F90 +0 -98
  1041. psyclone-3.2.2/examples/psyad/lfric/tangent_linear/helmholtz_operator_kernel_mod.F90 +0 -537
  1042. psyclone-3.2.2/examples/psyad/lfric/tangent_linear/matrix_vector_kernel_mod.F90 +0 -139
  1043. psyclone-3.2.2/examples/psyad/lfric/tangent_linear/sample_flux_kernel_mod.F90 +0 -111
  1044. psyclone-3.2.2/examples/psyad/lfric/tangent_linear/split_w2_field_kernel_mod.F90 +0 -95
  1045. psyclone-3.2.2/examples/psyad/lfric/tangent_linear/tl_project_eos_pressure_kernel_mod.F90 +0 -239
  1046. psyclone-3.2.2/examples/psyad/lfric/tangent_linear/tracer_viscosity_kernel_mod.F90 +0 -143
  1047. psyclone-3.2.2/examples/psyad/lfric/tangent_linear/transpose_matrix_vector_kernel_mod.F90 +0 -103
  1048. psyclone-3.2.2/examples/psyad/lfric/tangent_linear/w3_advective_update_kernel_mod.F90 +0 -115
  1049. psyclone-3.2.2/examples/psyad/lfric/tangent_linear_tweaked/Makefile +0 -98
  1050. psyclone-3.2.2/examples/psyad/lfric/tangent_linear_tweaked/README.md +0 -56
  1051. psyclone-3.2.2/examples/psyad/lfric/tangent_linear_tweaked/convert_hdiv_field_kernel_mod_tweaked.F90 +0 -166
  1052. psyclone-3.2.2/examples/psyad/lfric/tangent_linear_tweaked/dg_inc_matrix_vector_kernel_mod_tweaked.F90 +0 -147
  1053. psyclone-3.2.2/examples/psyad/lfric/tangent_linear_tweaked/matrix_vector_kernel_mod_tweaked.F90 +0 -146
  1054. psyclone-3.2.2/examples/psyad/lfric/tangent_linear_tweaked/poly1d_reconstruction_kernel_mod_tweaked.F90 +0 -204
  1055. psyclone-3.2.2/examples/psyad/lfric/tangent_linear_tweaked/poly1d_w3_reconstruction_kernel_mod_tweaked.F90 +0 -204
  1056. psyclone-3.2.2/examples/psyad/lfric/tangent_linear_tweaked/poly2d_reconstruction_kernel_mod_tweaked.F90 +0 -180
  1057. psyclone-3.2.2/examples/psyad/lfric/tangent_linear_tweaked/poly2d_w3_reconstruction_kernel_mod_tweaked.F90 +0 -181
  1058. psyclone-3.2.2/examples/psyad/lfric/tangent_linear_tweaked/poly_adv_update_kernel_mod_tweaked.F90 +0 -217
  1059. psyclone-3.2.2/examples/psyad/lfric/tangent_linear_tweaked/tl_calc_exner_pointwise_mod_tweaked.F90 +0 -58
  1060. psyclone-3.2.2/examples/psyad/lfric/tangent_linear_tweaked/tl_kinetic_energy_gradient_kernel_mod_tweaked.F90 +0 -226
  1061. psyclone-3.2.2/examples/psyad/lfric/tangent_linear_tweaked/tl_moist_dyn_gas_kernel_mod_tweaked.F90 +0 -92
  1062. psyclone-3.2.2/examples/psyad/lfric/tangent_linear_tweaked/tl_poly1d_vert_adv_kernel_mod_tweaked.F90 +0 -228
  1063. psyclone-3.2.2/examples/psyad/lfric/tangent_linear_tweaked/tl_poly1d_vert_w3_reconstruction_kernel_mod_tweaked.F90 +0 -228
  1064. psyclone-3.2.2/examples/psyad/lfric/tangent_linear_tweaked/tl_pressure_gradient_bd_kernel_mod_tweaked.F90 +0 -347
  1065. psyclone-3.2.2/examples/psyad/lfric/tangent_linear_tweaked/tl_project_eos_pressure_kernel_mod_tweaked.F90 +0 -254
  1066. psyclone-3.2.2/examples/psyad/lfric/tangent_linear_tweaked/tl_rhs_project_eos_kernel_mod_tweaked.F90 +0 -273
  1067. psyclone-3.2.2/examples/psyad/lfric/tangent_linear_tweaked/tl_sample_eos_pressure_kernel_mod_tweaked.F90 +0 -182
  1068. psyclone-3.2.2/examples/psyad/lfric/tangent_linear_tweaked/tl_vorticity_advection_kernel_mod_tweaked.F90 +0 -260
  1069. psyclone-3.2.2/examples/psyir/Makefile +0 -50
  1070. psyclone-3.2.2/examples/psyir/README.md +0 -116
  1071. psyclone-3.2.2/examples/psyir/create.py +0 -215
  1072. psyclone-3.2.2/examples/psyir/create_structure_types.py +0 -170
  1073. psyclone-3.2.2/examples/psyir/matmul/Makefile +0 -61
  1074. psyclone-3.2.2/examples/psyir/matmul/matmul.F90 +0 -127
  1075. psyclone-3.2.2/examples/psyir/matmul/omp-tile.py +0 -49
  1076. psyclone-3.2.2/examples/psyir/matmul/omp.py +0 -46
  1077. psyclone-3.2.2/examples/psyir/matmul/tile.py +0 -46
  1078. psyclone-3.2.2/examples/psyir/modify.py +0 -111
  1079. psyclone-3.2.2/examples/psyir/transpose/Makefile +0 -61
  1080. psyclone-3.2.2/examples/psyir/transpose/omp-tile.py +0 -48
  1081. psyclone-3.2.2/examples/psyir/transpose/omp.py +0 -46
  1082. psyclone-3.2.2/examples/psyir/transpose/tile.py +0 -46
  1083. psyclone-3.2.2/examples/psyir/transpose/trans.F90 +0 -110
  1084. psyclone-3.2.2/examples/stub_generation/Makefile +0 -45
  1085. psyclone-3.2.2/examples/stub_generation/README.md +0 -28
  1086. psyclone-3.2.2/examples/stub_generation/testkern_stencil_multi_mod.f90 +0 -62
  1087. psyclone-3.2.2/examples/top_level.mk +0 -75
  1088. psyclone-3.2.2/examples/xdsl/Makefile +0 -48
  1089. psyclone-3.2.2/examples/xdsl/README.md +0 -91
  1090. psyclone-3.2.2/examples/xdsl/backend/xdsl.py +0 -915
  1091. psyclone-3.2.2/examples/xdsl/pw_advection/Makefile +0 -48
  1092. psyclone-3.2.2/examples/xdsl/xdsl_backends_transform.py +0 -67
  1093. psyclone-3.2.2/lib/Makefile +0 -78
  1094. psyclone-3.2.2/lib/README.md +0 -180
  1095. psyclone-3.2.2/lib/extract/Makefile +0 -94
  1096. psyclone-3.2.2/lib/extract/README.md +0 -54
  1097. psyclone-3.2.2/lib/extract/ascii/Makefile +0 -105
  1098. psyclone-3.2.2/lib/extract/ascii/dl_esm_inf/Makefile +0 -112
  1099. psyclone-3.2.2/lib/extract/ascii/dl_esm_inf/README.md +0 -144
  1100. psyclone-3.2.2/lib/extract/ascii/dl_esm_inf/kernel_data_ascii.f90 +0 -131
  1101. psyclone-3.2.2/lib/extract/ascii/extract_ascii_base.jinja +0 -276
  1102. psyclone-3.2.2/lib/extract/ascii/generic/Makefile +0 -95
  1103. psyclone-3.2.2/lib/extract/ascii/generic/README.md +0 -103
  1104. psyclone-3.2.2/lib/extract/ascii/generic/kernel_data_ascii.f90 +0 -59
  1105. psyclone-3.2.2/lib/extract/ascii/lfric/Makefile +0 -123
  1106. psyclone-3.2.2/lib/extract/ascii/lfric/README.md +0 -142
  1107. psyclone-3.2.2/lib/extract/ascii/lfric/kernel_data_ascii.jinja +0 -347
  1108. psyclone-3.2.2/lib/extract/ascii/read_kernel_data_mod.jinja +0 -325
  1109. psyclone-3.2.2/lib/extract/binary/Makefile +0 -106
  1110. psyclone-3.2.2/lib/extract/binary/dl_esm_inf/Makefile +0 -112
  1111. psyclone-3.2.2/lib/extract/binary/dl_esm_inf/README.md +0 -139
  1112. psyclone-3.2.2/lib/extract/binary/dl_esm_inf/kernel_data_binary.f90 +0 -131
  1113. psyclone-3.2.2/lib/extract/binary/extract_binary_base.jinja +0 -276
  1114. psyclone-3.2.2/lib/extract/binary/generic/Makefile +0 -95
  1115. psyclone-3.2.2/lib/extract/binary/generic/README.md +0 -103
  1116. psyclone-3.2.2/lib/extract/binary/generic/kernel_data_binary.f90 +0 -59
  1117. psyclone-3.2.2/lib/extract/binary/lfric/Makefile +0 -127
  1118. psyclone-3.2.2/lib/extract/binary/lfric/README.md +0 -145
  1119. psyclone-3.2.2/lib/extract/binary/lfric/compare_variables_mod.F90 +0 -1758
  1120. psyclone-3.2.2/lib/extract/binary/lfric/kernel_data_binary.jinja +0 -347
  1121. psyclone-3.2.2/lib/extract/binary/lfric/read_kernel_data_mod.f90 +0 -2259
  1122. psyclone-3.2.2/lib/extract/binary/read_kernel_data_mod.jinja +0 -325
  1123. psyclone-3.2.2/lib/extract/compare_variables_mod.jinja +0 -321
  1124. psyclone-3.2.2/lib/extract/netcdf/Makefile +0 -108
  1125. psyclone-3.2.2/lib/extract/netcdf/README.md +0 -85
  1126. psyclone-3.2.2/lib/extract/netcdf/dl_esm_inf/Makefile +0 -112
  1127. psyclone-3.2.2/lib/extract/netcdf/dl_esm_inf/README.md +0 -154
  1128. psyclone-3.2.2/lib/extract/netcdf/dl_esm_inf/kernel_data_netcdf.f90 +0 -134
  1129. psyclone-3.2.2/lib/extract/netcdf/extract_netcdf_base.jinja +0 -508
  1130. psyclone-3.2.2/lib/extract/netcdf/generic/Makefile +0 -96
  1131. psyclone-3.2.2/lib/extract/netcdf/generic/README.md +0 -121
  1132. psyclone-3.2.2/lib/extract/netcdf/generic/kernel_data_netcdf.f90 +0 -59
  1133. psyclone-3.2.2/lib/extract/netcdf/lfric/Makefile +0 -128
  1134. psyclone-3.2.2/lib/extract/netcdf/lfric/README.md +0 -159
  1135. psyclone-3.2.2/lib/extract/netcdf/lfric/kernel_data_netcdf.jinja +0 -347
  1136. psyclone-3.2.2/lib/extract/netcdf/read_kernel_data_mod.f90 +0 -3366
  1137. psyclone-3.2.2/lib/extract/netcdf/read_kernel_data_mod.jinja +0 -403
  1138. psyclone-3.2.2/lib/get_python.sh +0 -60
  1139. psyclone-3.2.2/lib/process.py +0 -160
  1140. psyclone-3.2.2/lib/profiling/Makefile +0 -70
  1141. psyclone-3.2.2/lib/profiling/README.md +0 -286
  1142. psyclone-3.2.2/lib/profiling/dl_timer/Makefile +0 -80
  1143. psyclone-3.2.2/lib/profiling/dl_timer/README.md +0 -144
  1144. psyclone-3.2.2/lib/profiling/dl_timer/dl_timer.f90 +0 -137
  1145. psyclone-3.2.2/lib/profiling/drhook/Makefile +0 -70
  1146. psyclone-3.2.2/lib/profiling/drhook/README.md +0 -152
  1147. psyclone-3.2.2/lib/profiling/drhook/drhook_psy.f90 +0 -155
  1148. psyclone-3.2.2/lib/profiling/lfric_timer/Makefile +0 -94
  1149. psyclone-3.2.2/lib/profiling/lfric_timer/README.md +0 -147
  1150. psyclone-3.2.2/lib/profiling/lfric_timer/profile_psy_data_mod.F90 +0 -139
  1151. psyclone-3.2.2/lib/profiling/nvidia/Makefile +0 -60
  1152. psyclone-3.2.2/lib/profiling/nvidia/README.md +0 -111
  1153. psyclone-3.2.2/lib/profiling/nvidia/nvtx_prof.f90 +0 -223
  1154. psyclone-3.2.2/lib/profiling/simple_timing/Makefile +0 -72
  1155. psyclone-3.2.2/lib/profiling/simple_timing/README.md +0 -119
  1156. psyclone-3.2.2/lib/profiling/simple_timing/simple_timing.f90 +0 -240
  1157. psyclone-3.2.2/lib/profiling/tau/Makefile +0 -60
  1158. psyclone-3.2.2/lib/profiling/tau/README.md +0 -105
  1159. psyclone-3.2.2/lib/profiling/tau/tau_psy.f90 +0 -139
  1160. psyclone-3.2.2/lib/profiling/template/Makefile +0 -72
  1161. psyclone-3.2.2/lib/profiling/template/README.md +0 -110
  1162. psyclone-3.2.2/lib/profiling/template/dummy_lib.f90 +0 -142
  1163. psyclone-3.2.2/lib/profiling/vernier/Makefile +0 -69
  1164. psyclone-3.2.2/lib/profiling/vernier/README.md +0 -134
  1165. psyclone-3.2.2/lib/profiling/vernier/vernier_psy.f90 +0 -145
  1166. psyclone-3.2.2/lib/psy_data_base.jinja +0 -412
  1167. psyclone-3.2.2/lib/read_only/Makefile +0 -85
  1168. psyclone-3.2.2/lib/read_only/README.md +0 -85
  1169. psyclone-3.2.2/lib/read_only/dl_esm_inf/Makefile +0 -116
  1170. psyclone-3.2.2/lib/read_only/dl_esm_inf/README.md +0 -120
  1171. psyclone-3.2.2/lib/read_only/dl_esm_inf/read_only.f90 +0 -161
  1172. psyclone-3.2.2/lib/read_only/generic/Makefile +0 -103
  1173. psyclone-3.2.2/lib/read_only/generic/README.md +0 -90
  1174. psyclone-3.2.2/lib/read_only/generic/read_only.f90 +0 -63
  1175. psyclone-3.2.2/lib/read_only/lfric/Makefile +0 -122
  1176. psyclone-3.2.2/lib/read_only/lfric/README.md +0 -123
  1177. psyclone-3.2.2/lib/read_only/lfric/read_only.jinja +0 -356
  1178. psyclone-3.2.2/lib/read_only/read_only_base.jinja +0 -469
  1179. psyclone-3.2.2/lib/value_range_check/Makefile +0 -80
  1180. psyclone-3.2.2/lib/value_range_check/README.md +0 -82
  1181. psyclone-3.2.2/lib/value_range_check/dl_esm_inf/Makefile +0 -114
  1182. psyclone-3.2.2/lib/value_range_check/dl_esm_inf/README.md +0 -116
  1183. psyclone-3.2.2/lib/value_range_check/dl_esm_inf/value_range_check.f90 +0 -121
  1184. psyclone-3.2.2/lib/value_range_check/lfric/Makefile +0 -119
  1185. psyclone-3.2.2/lib/value_range_check/lfric/README.md +0 -123
  1186. psyclone-3.2.2/lib/value_range_check/lfric/value_range_check.jinja +0 -330
  1187. psyclone-3.2.2/lib/value_range_check/value_range_check_base.jinja +0 -536
  1188. psyclone-3.2.2/setup.cfg +0 -21
  1189. psyclone-3.2.2/setup.py +0 -189
  1190. psyclone-3.2.2/src/PSyclone.egg-info/PKG-INFO +0 -64
  1191. psyclone-3.2.2/src/PSyclone.egg-info/SOURCES.txt +0 -816
  1192. psyclone-3.2.2/src/PSyclone.egg-info/requires.txt +0 -21
  1193. psyclone-3.2.2/src/psyclone/__init__.py +0 -33
  1194. psyclone-3.2.2/src/psyclone/alg_gen.py +0 -319
  1195. psyclone-3.2.2/src/psyclone/configuration.py +0 -1326
  1196. psyclone-3.2.2/src/psyclone/core/__init__.py +0 -57
  1197. psyclone-3.2.2/src/psyclone/core/access_sequence.py +0 -397
  1198. psyclone-3.2.2/src/psyclone/core/access_type.py +0 -164
  1199. psyclone-3.2.2/src/psyclone/core/component_indices.py +0 -186
  1200. psyclone-3.2.2/src/psyclone/core/signature.py +0 -265
  1201. psyclone-3.2.2/src/psyclone/core/symbolic_maths.py +0 -433
  1202. psyclone-3.2.2/src/psyclone/core/variables_access_map.py +0 -236
  1203. psyclone-3.2.2/src/psyclone/docstring_parser.py +0 -536
  1204. psyclone-3.2.2/src/psyclone/domain/common/__init__.py +0 -40
  1205. psyclone-3.2.2/src/psyclone/domain/common/algorithm/__init__.py +0 -49
  1206. psyclone-3.2.2/src/psyclone/domain/common/algorithm/psyir.py +0 -320
  1207. psyclone-3.2.2/src/psyclone/domain/common/driver_creator.py +0 -729
  1208. psyclone-3.2.2/src/psyclone/domain/common/psylayer/__init__.py +0 -40
  1209. psyclone-3.2.2/src/psyclone/domain/common/psylayer/psyloop.py +0 -349
  1210. psyclone-3.2.2/src/psyclone/domain/common/transformations/__init__.py +0 -47
  1211. psyclone-3.2.2/src/psyclone/domain/common/transformations/alg_invoke_2_psy_call_trans.py +0 -255
  1212. psyclone-3.2.2/src/psyclone/domain/common/transformations/alg_trans.py +0 -103
  1213. psyclone-3.2.2/src/psyclone/domain/common/transformations/kernel_module_inline_trans.py +0 -642
  1214. psyclone-3.2.2/src/psyclone/domain/common/transformations/raise_psyir_2_alg_trans.py +0 -282
  1215. psyclone-3.2.2/src/psyclone/domain/gocean/__init__.py +0 -45
  1216. psyclone-3.2.2/src/psyclone/domain/gocean/go_symbol_table.py +0 -137
  1217. psyclone-3.2.2/src/psyclone/domain/gocean/gocean_constants.py +0 -128
  1218. psyclone-3.2.2/src/psyclone/domain/gocean/gocean_driver_creator.py +0 -85
  1219. psyclone-3.2.2/src/psyclone/domain/gocean/kernel/__init__.py +0 -45
  1220. psyclone-3.2.2/src/psyclone/domain/gocean/kernel/psyir.py +0 -1058
  1221. psyclone-3.2.2/src/psyclone/domain/gocean/transformations/__init__.py +0 -55
  1222. psyclone-3.2.2/src/psyclone/domain/gocean/transformations/gocean_alg_invoke_2_psy_call_trans.py +0 -75
  1223. psyclone-3.2.2/src/psyclone/domain/gocean/transformations/gocean_const_loop_bounds_trans.py +0 -262
  1224. psyclone-3.2.2/src/psyclone/domain/gocean/transformations/gocean_extract_trans.py +0 -161
  1225. psyclone-3.2.2/src/psyclone/domain/gocean/transformations/gocean_loop_fuse_trans.py +0 -103
  1226. psyclone-3.2.2/src/psyclone/domain/gocean/transformations/gocean_move_iteration_boundaries_inside_kernel_trans.py +0 -243
  1227. psyclone-3.2.2/src/psyclone/domain/gocean/transformations/gocean_opencl_trans.py +0 -1559
  1228. psyclone-3.2.2/src/psyclone/domain/gocean/transformations/raise_psyir_2_gocean_kern_trans.py +0 -250
  1229. psyclone-3.2.2/src/psyclone/domain/lfric/__init__.py +0 -109
  1230. psyclone-3.2.2/src/psyclone/domain/lfric/algorithm/__init__.py +0 -54
  1231. psyclone-3.2.2/src/psyclone/domain/lfric/algorithm/lfric_alg.py +0 -491
  1232. psyclone-3.2.2/src/psyclone/domain/lfric/algorithm/psyir/__init__.py +0 -48
  1233. psyclone-3.2.2/src/psyclone/domain/lfric/algorithm/psyir/lfric_alg_invoke_call.py +0 -90
  1234. psyclone-3.2.2/src/psyclone/domain/lfric/algorithm/psyir/lfric_kernel_functor.py +0 -222
  1235. psyclone-3.2.2/src/psyclone/domain/lfric/arg_index_to_metadata_index.py +0 -266
  1236. psyclone-3.2.2/src/psyclone/domain/lfric/arg_ordering.py +0 -1000
  1237. psyclone-3.2.2/src/psyclone/domain/lfric/function_space.py +0 -393
  1238. psyclone-3.2.2/src/psyclone/domain/lfric/kern_call_acc_arg_list.py +0 -278
  1239. psyclone-3.2.2/src/psyclone/domain/lfric/kern_call_arg_list.py +0 -1013
  1240. psyclone-3.2.2/src/psyclone/domain/lfric/kern_call_invoke_arg_list.py +0 -375
  1241. psyclone-3.2.2/src/psyclone/domain/lfric/kern_stub_arg_list.py +0 -508
  1242. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/__init__.py +0 -78
  1243. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/columnwise_operator_arg_metadata.py +0 -57
  1244. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/common_arg_metadata.py +0 -154
  1245. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/common_declaration_metadata.py +0 -516
  1246. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/common_meta_arg_metadata.py +0 -249
  1247. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/common_metadata.py +0 -162
  1248. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/evaluator_targets_metadata.py +0 -124
  1249. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/field_arg_metadata.py +0 -207
  1250. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/field_vector_arg_metadata.py +0 -144
  1251. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/inter_grid_arg_metadata.py +0 -186
  1252. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/inter_grid_vector_arg_metadata.py +0 -155
  1253. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/lfric_kernel_metadata.py +0 -1197
  1254. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/meta_args_metadata.py +0 -170
  1255. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/meta_funcs_arg_metadata.py +0 -215
  1256. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/meta_funcs_metadata.py +0 -118
  1257. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/meta_mesh_arg_metadata.py +0 -100
  1258. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/meta_mesh_metadata.py +0 -125
  1259. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/meta_ref_element_arg_metadata.py +0 -105
  1260. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/meta_ref_element_metadata.py +0 -121
  1261. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/operates_on_metadata.py +0 -114
  1262. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/operator_arg_metadata.py +0 -175
  1263. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/psyir.py +0 -117
  1264. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/scalar_arg_metadata.py +0 -130
  1265. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/scalar_array_arg_metadata.py +0 -165
  1266. psyclone-3.2.2/src/psyclone/domain/lfric/kernel/shapes_metadata.py +0 -155
  1267. psyclone-3.2.2/src/psyclone/domain/lfric/kernel_interface.py +0 -851
  1268. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_arg_descriptor.py +0 -876
  1269. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_builtins.py +0 -3346
  1270. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_cell_iterators.py +0 -136
  1271. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_collection.py +0 -158
  1272. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_constants.py +0 -580
  1273. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_dofmaps.py +0 -340
  1274. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_driver_creator.py +0 -124
  1275. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_fields.py +0 -188
  1276. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_halo_depths.py +0 -113
  1277. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_invoke.py +0 -337
  1278. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_invoke_schedule.py +0 -97
  1279. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_invokes.py +0 -66
  1280. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_kern.py +0 -1117
  1281. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_kern_call_factory.py +0 -96
  1282. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_kern_metadata.py +0 -771
  1283. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_loop.py +0 -1110
  1284. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_loop_bounds.py +0 -113
  1285. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_psy.py +0 -106
  1286. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_run_time_checks.py +0 -285
  1287. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_scalar_args.py +0 -238
  1288. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_stencils.py +0 -671
  1289. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_symbol_table.py +0 -248
  1290. psyclone-3.2.2/src/psyclone/domain/lfric/lfric_types.py +0 -600
  1291. psyclone-3.2.2/src/psyclone/domain/lfric/metadata_to_arguments_rules.py +0 -573
  1292. psyclone-3.2.2/src/psyclone/domain/lfric/transformations/__init__.py +0 -52
  1293. psyclone-3.2.2/src/psyclone/domain/lfric/transformations/lfric_alg_invoke_2_psy_call_trans.py +0 -337
  1294. psyclone-3.2.2/src/psyclone/domain/lfric/transformations/lfric_alg_trans.py +0 -52
  1295. psyclone-3.2.2/src/psyclone/domain/lfric/transformations/lfric_extract_trans.py +0 -148
  1296. psyclone-3.2.2/src/psyclone/domain/lfric/transformations/lfric_loop_fuse_trans.py +0 -249
  1297. psyclone-3.2.2/src/psyclone/domain/lfric/transformations/raise_psyir_2_lfric_alg_trans.py +0 -115
  1298. psyclone-3.2.2/src/psyclone/domain/lfric/transformations/raise_psyir_2_lfric_kern_trans.py +0 -238
  1299. psyclone-3.2.2/src/psyclone/domain/lfric/utils.py +0 -102
  1300. psyclone-3.2.2/src/psyclone/errors.py +0 -150
  1301. psyclone-3.2.2/src/psyclone/expression.py +0 -340
  1302. psyclone-3.2.2/src/psyclone/gen_kernel_stub.py +0 -101
  1303. psyclone-3.2.2/src/psyclone/generator.py +0 -923
  1304. psyclone-3.2.2/src/psyclone/gocean1p0.py +0 -2155
  1305. psyclone-3.2.2/src/psyclone/kernel_tools.py +0 -201
  1306. psyclone-3.2.2/src/psyclone/lfric.py +0 -6613
  1307. psyclone-3.2.2/src/psyclone/line_length.py +0 -212
  1308. psyclone-3.2.2/src/psyclone/parse/__init__.py +0 -52
  1309. psyclone-3.2.2/src/psyclone/parse/algorithm.py +0 -1165
  1310. psyclone-3.2.2/src/psyclone/parse/file_info.py +0 -517
  1311. psyclone-3.2.2/src/psyclone/parse/kernel.py +0 -1022
  1312. psyclone-3.2.2/src/psyclone/parse/lfric_builtins_mod.f90 +0 -1258
  1313. psyclone-3.2.2/src/psyclone/parse/module_info.py +0 -338
  1314. psyclone-3.2.2/src/psyclone/parse/module_manager.py +0 -715
  1315. psyclone-3.2.2/src/psyclone/parse/utils.py +0 -137
  1316. psyclone-3.2.2/src/psyclone/profiler.py +0 -196
  1317. psyclone-3.2.2/src/psyclone/psyGen.py +0 -2941
  1318. psyclone-3.2.2/src/psyclone/psyad/__init__.py +0 -41
  1319. psyclone-3.2.2/src/psyclone/psyad/adjoint_visitor.py +0 -468
  1320. psyclone-3.2.2/src/psyclone/psyad/domain/common/__init__.py +0 -42
  1321. psyclone-3.2.2/src/psyclone/psyad/domain/common/adjoint_utils.py +0 -243
  1322. psyclone-3.2.2/src/psyclone/psyad/domain/lfric/__init__.py +0 -42
  1323. psyclone-3.2.2/src/psyclone/psyad/domain/lfric/lfric_adjoint.py +0 -294
  1324. psyclone-3.2.2/src/psyclone/psyad/domain/lfric/lfric_adjoint_harness.py +0 -821
  1325. psyclone-3.2.2/src/psyclone/psyad/main.py +0 -215
  1326. psyclone-3.2.2/src/psyclone/psyad/tl2ad.py +0 -728
  1327. psyclone-3.2.2/src/psyclone/psyad/transformations/__init__.py +0 -39
  1328. psyclone-3.2.2/src/psyclone/psyad/transformations/adjoint_trans.py +0 -90
  1329. psyclone-3.2.2/src/psyclone/psyad/transformations/assignment_trans.py +0 -411
  1330. psyclone-3.2.2/src/psyclone/psyad/transformations/preprocess.py +0 -105
  1331. psyclone-3.2.2/src/psyclone/psyad/transformations/tangent_linear_error.py +0 -60
  1332. psyclone-3.2.2/src/psyclone/psyad/utils.py +0 -142
  1333. psyclone-3.2.2/src/psyclone/psyclonefc_cli.py +0 -139
  1334. psyclone-3.2.2/src/psyclone/psyir/__init__.py +0 -40
  1335. psyclone-3.2.2/src/psyclone/psyir/backend/__init__.py +0 -33
  1336. psyclone-3.2.2/src/psyclone/psyir/backend/c.py +0 -560
  1337. psyclone-3.2.2/src/psyclone/psyir/backend/debug_writer.py +0 -80
  1338. psyclone-3.2.2/src/psyclone/psyir/backend/fortran.py +0 -1797
  1339. psyclone-3.2.2/src/psyclone/psyir/backend/language_writer.py +0 -266
  1340. psyclone-3.2.2/src/psyclone/psyir/backend/opencl.py +0 -257
  1341. psyclone-3.2.2/src/psyclone/psyir/backend/sir.py +0 -571
  1342. psyclone-3.2.2/src/psyclone/psyir/backend/sympy_writer.py +0 -919
  1343. psyclone-3.2.2/src/psyclone/psyir/backend/visitor.py +0 -348
  1344. psyclone-3.2.2/src/psyclone/psyir/commentable_mixin.py +0 -115
  1345. psyclone-3.2.2/src/psyclone/psyir/frontend/__init__.py +0 -33
  1346. psyclone-3.2.2/src/psyclone/psyir/frontend/fortran.py +0 -279
  1347. psyclone-3.2.2/src/psyclone/psyir/frontend/fparser2.py +0 -5856
  1348. psyclone-3.2.2/src/psyclone/psyir/frontend/sympy_reader.py +0 -273
  1349. psyclone-3.2.2/src/psyclone/psyir/nodes/__init__.py +0 -209
  1350. psyclone-3.2.2/src/psyclone/psyir/nodes/acc_clauses.py +0 -161
  1351. psyclone-3.2.2/src/psyclone/psyir/nodes/acc_directives.py +0 -1113
  1352. psyclone-3.2.2/src/psyclone/psyir/nodes/acc_mixins.py +0 -191
  1353. psyclone-3.2.2/src/psyclone/psyir/nodes/array_member.py +0 -91
  1354. psyclone-3.2.2/src/psyclone/psyir/nodes/array_mixin.py +0 -851
  1355. psyclone-3.2.2/src/psyclone/psyir/nodes/array_of_structures_member.py +0 -97
  1356. psyclone-3.2.2/src/psyclone/psyir/nodes/array_of_structures_mixin.py +0 -143
  1357. psyclone-3.2.2/src/psyclone/psyir/nodes/array_of_structures_reference.py +0 -139
  1358. psyclone-3.2.2/src/psyclone/psyir/nodes/array_reference.py +0 -211
  1359. psyclone-3.2.2/src/psyclone/psyir/nodes/assignment.py +0 -258
  1360. psyclone-3.2.2/src/psyclone/psyir/nodes/atomic_mixin.py +0 -116
  1361. psyclone-3.2.2/src/psyclone/psyir/nodes/call.py +0 -882
  1362. psyclone-3.2.2/src/psyclone/psyir/nodes/clause.py +0 -75
  1363. psyclone-3.2.2/src/psyclone/psyir/nodes/codeblock.py +0 -281
  1364. psyclone-3.2.2/src/psyclone/psyir/nodes/container.py +0 -254
  1365. psyclone-3.2.2/src/psyclone/psyir/nodes/data_sharing_attribute_mixin.py +0 -276
  1366. psyclone-3.2.2/src/psyclone/psyir/nodes/datanode.py +0 -85
  1367. psyclone-3.2.2/src/psyclone/psyir/nodes/directive.py +0 -283
  1368. psyclone-3.2.2/src/psyclone/psyir/nodes/dynamic_omp_task_directive.py +0 -2163
  1369. psyclone-3.2.2/src/psyclone/psyir/nodes/extract_node.py +0 -426
  1370. psyclone-3.2.2/src/psyclone/psyir/nodes/file_container.py +0 -102
  1371. psyclone-3.2.2/src/psyclone/psyir/nodes/if_block.py +0 -197
  1372. psyclone-3.2.2/src/psyclone/psyir/nodes/intrinsic_call.py +0 -2464
  1373. psyclone-3.2.2/src/psyclone/psyir/nodes/kernel_schedule.py +0 -53
  1374. psyclone-3.2.2/src/psyclone/psyir/nodes/literal.py +0 -217
  1375. psyclone-3.2.2/src/psyclone/psyir/nodes/loop.py +0 -583
  1376. psyclone-3.2.2/src/psyclone/psyir/nodes/member.py +0 -147
  1377. psyclone-3.2.2/src/psyclone/psyir/nodes/node.py +0 -1881
  1378. psyclone-3.2.2/src/psyclone/psyir/nodes/omp_clauses.py +0 -580
  1379. psyclone-3.2.2/src/psyclone/psyir/nodes/omp_directives.py +0 -2491
  1380. psyclone-3.2.2/src/psyclone/psyir/nodes/omp_task_directive.py +0 -183
  1381. psyclone-3.2.2/src/psyclone/psyir/nodes/operation.py +0 -515
  1382. psyclone-3.2.2/src/psyclone/psyir/nodes/profile_node.py +0 -63
  1383. psyclone-3.2.2/src/psyclone/psyir/nodes/psy_data_node.py +0 -745
  1384. psyclone-3.2.2/src/psyclone/psyir/nodes/ranges.py +0 -262
  1385. psyclone-3.2.2/src/psyclone/psyir/nodes/read_only_verify_node.py +0 -102
  1386. psyclone-3.2.2/src/psyclone/psyir/nodes/reference.py +0 -411
  1387. psyclone-3.2.2/src/psyclone/psyir/nodes/return_stmt.py +0 -53
  1388. psyclone-3.2.2/src/psyclone/psyir/nodes/routine.py +0 -558
  1389. psyclone-3.2.2/src/psyclone/psyir/nodes/schedule.py +0 -89
  1390. psyclone-3.2.2/src/psyclone/psyir/nodes/scoping_node.py +0 -232
  1391. psyclone-3.2.2/src/psyclone/psyir/nodes/statement.py +0 -50
  1392. psyclone-3.2.2/src/psyclone/psyir/nodes/structure_accessor_mixin.py +0 -65
  1393. psyclone-3.2.2/src/psyclone/psyir/nodes/structure_member.py +0 -119
  1394. psyclone-3.2.2/src/psyclone/psyir/nodes/structure_reference.py +0 -382
  1395. psyclone-3.2.2/src/psyclone/psyir/nodes/value_range_check_node.py +0 -104
  1396. psyclone-3.2.2/src/psyclone/psyir/nodes/while_loop.py +0 -156
  1397. psyclone-3.2.2/src/psyclone/psyir/symbols/__init__.py +0 -101
  1398. psyclone-3.2.2/src/psyclone/psyir/symbols/containersymbol.py +0 -267
  1399. psyclone-3.2.2/src/psyclone/psyir/symbols/data_type_symbol.py +0 -161
  1400. psyclone-3.2.2/src/psyclone/psyir/symbols/datasymbol.py +0 -441
  1401. psyclone-3.2.2/src/psyclone/psyir/symbols/datatypes.py +0 -1351
  1402. psyclone-3.2.2/src/psyclone/psyir/symbols/generic_interface_symbol.py +0 -342
  1403. psyclone-3.2.2/src/psyclone/psyir/symbols/interfaces.py +0 -289
  1404. psyclone-3.2.2/src/psyclone/psyir/symbols/intrinsic_symbol.py +0 -71
  1405. psyclone-3.2.2/src/psyclone/psyir/symbols/routinesymbol.py +0 -200
  1406. psyclone-3.2.2/src/psyclone/psyir/symbols/symbol.py +0 -576
  1407. psyclone-3.2.2/src/psyclone/psyir/symbols/symbol_table.py +0 -2166
  1408. psyclone-3.2.2/src/psyclone/psyir/symbols/typed_symbol.py +0 -281
  1409. psyclone-3.2.2/src/psyclone/psyir/tools/__init__.py +0 -53
  1410. psyclone-3.2.2/src/psyclone/psyir/tools/call_tree_utils.py +0 -551
  1411. psyclone-3.2.2/src/psyclone/psyir/tools/definition_use_chains.py +0 -1096
  1412. psyclone-3.2.2/src/psyclone/psyir/tools/dependency_tools.py +0 -1105
  1413. psyclone-3.2.2/src/psyclone/psyir/tools/read_write_info.py +0 -167
  1414. psyclone-3.2.2/src/psyclone/psyir/tools/reduction_inference.py +0 -227
  1415. psyclone-3.2.2/src/psyclone/psyir/transformations/__init__.py +0 -177
  1416. psyclone-3.2.2/src/psyclone/psyir/transformations/acc_kernels_trans.py +0 -320
  1417. psyclone-3.2.2/src/psyclone/psyir/transformations/acc_update_trans.py +0 -467
  1418. psyclone-3.2.2/src/psyclone/psyir/transformations/allarrayaccess2loop_trans.py +0 -149
  1419. psyclone-3.2.2/src/psyclone/psyir/transformations/arrayaccess2loop_trans.py +0 -231
  1420. psyclone-3.2.2/src/psyclone/psyir/transformations/arrayassignment2loops_trans.py +0 -399
  1421. psyclone-3.2.2/src/psyclone/psyir/transformations/async_trans_mixin.py +0 -282
  1422. psyclone-3.2.2/src/psyclone/psyir/transformations/chunk_loop_trans.py +0 -287
  1423. psyclone-3.2.2/src/psyclone/psyir/transformations/debug_checksum_trans.py +0 -228
  1424. psyclone-3.2.2/src/psyclone/psyir/transformations/extract_trans.py +0 -140
  1425. psyclone-3.2.2/src/psyclone/psyir/transformations/fold_conditional_return_expressions_trans.py +0 -149
  1426. psyclone-3.2.2/src/psyclone/psyir/transformations/hoist_local_arrays_trans.py +0 -513
  1427. psyclone-3.2.2/src/psyclone/psyir/transformations/hoist_loop_bound_expr_trans.py +0 -163
  1428. psyclone-3.2.2/src/psyclone/psyir/transformations/hoist_trans.py +0 -286
  1429. psyclone-3.2.2/src/psyclone/psyir/transformations/increase_rank_loop_arrays_trans.py +0 -273
  1430. psyclone-3.2.2/src/psyclone/psyir/transformations/inline_trans.py +0 -1274
  1431. psyclone-3.2.2/src/psyclone/psyir/transformations/intrinsics/__init__.py +0 -40
  1432. psyclone-3.2.2/src/psyclone/psyir/transformations/intrinsics/abs2code_trans.py +0 -178
  1433. psyclone-3.2.2/src/psyclone/psyir/transformations/intrinsics/array_reduction_base_trans.py +0 -415
  1434. psyclone-3.2.2/src/psyclone/psyir/transformations/intrinsics/dotproduct2code_trans.py +0 -290
  1435. psyclone-3.2.2/src/psyclone/psyir/transformations/intrinsics/intrinsic2code_trans.py +0 -148
  1436. psyclone-3.2.2/src/psyclone/psyir/transformations/intrinsics/matmul2code_trans.py +0 -520
  1437. psyclone-3.2.2/src/psyclone/psyir/transformations/intrinsics/max2code_trans.py +0 -92
  1438. psyclone-3.2.2/src/psyclone/psyir/transformations/intrinsics/maxval2loop_trans.py +0 -191
  1439. psyclone-3.2.2/src/psyclone/psyir/transformations/intrinsics/min2code_trans.py +0 -95
  1440. psyclone-3.2.2/src/psyclone/psyir/transformations/intrinsics/minormax2code_trans.py +0 -185
  1441. psyclone-3.2.2/src/psyclone/psyir/transformations/intrinsics/minval2loop_trans.py +0 -189
  1442. psyclone-3.2.2/src/psyclone/psyir/transformations/intrinsics/product2loop_trans.py +0 -198
  1443. psyclone-3.2.2/src/psyclone/psyir/transformations/intrinsics/sign2code_trans.py +0 -197
  1444. psyclone-3.2.2/src/psyclone/psyir/transformations/intrinsics/sum2loop_trans.py +0 -202
  1445. psyclone-3.2.2/src/psyclone/psyir/transformations/loop_fuse_trans.py +0 -227
  1446. psyclone-3.2.2/src/psyclone/psyir/transformations/loop_swap_trans.py +0 -204
  1447. psyclone-3.2.2/src/psyclone/psyir/transformations/loop_tiling_2d_trans.py +0 -162
  1448. psyclone-3.2.2/src/psyclone/psyir/transformations/loop_tiling_trans.py +0 -196
  1449. psyclone-3.2.2/src/psyclone/psyir/transformations/loop_trans.py +0 -185
  1450. psyclone-3.2.2/src/psyclone/psyir/transformations/mark_routine_for_gpu_mixin.py +0 -175
  1451. psyclone-3.2.2/src/psyclone/psyir/transformations/omp_declare_target_trans.py +0 -148
  1452. psyclone-3.2.2/src/psyclone/psyir/transformations/omp_loop_trans.py +0 -380
  1453. psyclone-3.2.2/src/psyclone/psyir/transformations/omp_minimise_sync_trans.py +0 -544
  1454. psyclone-3.2.2/src/psyclone/psyir/transformations/omp_target_trans.py +0 -242
  1455. psyclone-3.2.2/src/psyclone/psyir/transformations/omp_task_trans.py +0 -234
  1456. psyclone-3.2.2/src/psyclone/psyir/transformations/omp_taskloop_trans.py +0 -276
  1457. psyclone-3.2.2/src/psyclone/psyir/transformations/omp_taskwait_trans.py +0 -486
  1458. psyclone-3.2.2/src/psyclone/psyir/transformations/parallel_loop_trans.py +0 -546
  1459. psyclone-3.2.2/src/psyclone/psyir/transformations/parallel_region_trans.py +0 -145
  1460. psyclone-3.2.2/src/psyclone/psyir/transformations/profile_trans.py +0 -126
  1461. psyclone-3.2.2/src/psyclone/psyir/transformations/psy_data_trans.py +0 -338
  1462. psyclone-3.2.2/src/psyclone/psyir/transformations/read_only_verify_trans.py +0 -126
  1463. psyclone-3.2.2/src/psyclone/psyir/transformations/reference2arrayrange_trans.py +0 -208
  1464. psyclone-3.2.2/src/psyclone/psyir/transformations/region_trans.py +0 -236
  1465. psyclone-3.2.2/src/psyclone/psyir/transformations/replace_induction_variables_trans.py +0 -286
  1466. psyclone-3.2.2/src/psyclone/psyir/transformations/replace_reference_by_literal_trans.py +0 -300
  1467. psyclone-3.2.2/src/psyclone/psyir/transformations/scalarisation_trans.py +0 -454
  1468. psyclone-3.2.2/src/psyclone/psyir/transformations/transformation_error.py +0 -49
  1469. psyclone-3.2.2/src/psyclone/psyir/transformations/value_range_check_trans.py +0 -106
  1470. psyclone-3.2.2/src/psyclone/transformations.py +0 -2638
  1471. psyclone-3.2.2/src/psyclone/utils.py +0 -168
  1472. psyclone-3.2.2/src/psyclone/version.py +0 -50
  1473. psyclone-3.2.2/tutorial/notebooks/introduction.ipynb +0 -110
  1474. psyclone-3.2.2/tutorial/notebooks/nemo/nemo_example4.ipynb +0 -166
  1475. {psyclone-3.2.2 → psyclone-3.3.0}/CONTRIBUTING.md +0 -0
  1476. {psyclone-3.2.2 → psyclone-3.3.0}/examples/README.md +0 -0
  1477. {psyclone-3.2.2 → psyclone-3.3.0}/examples/gocean/eg1/compute_cu_mod.f90 +0 -0
  1478. {psyclone-3.2.2 → psyclone-3.3.0}/examples/gocean/eg1/compute_cv_mod.f90 +0 -0
  1479. {psyclone-3.2.2 → psyclone-3.3.0}/examples/gocean/eg1/compute_h_mod.f90 +0 -0
  1480. {psyclone-3.2.2 → psyclone-3.3.0}/examples/gocean/eg1/compute_pnew_mod.f90 +0 -0
  1481. {psyclone-3.2.2 → psyclone-3.3.0}/examples/gocean/eg1/compute_unew_mod.f90 +0 -0
  1482. {psyclone-3.2.2 → psyclone-3.3.0}/examples/gocean/eg1/compute_vnew_mod.f90 +0 -0
  1483. {psyclone-3.2.2 → psyclone-3.3.0}/examples/gocean/eg1/compute_z_mod.f90 +0 -0
  1484. {psyclone-3.2.2 → psyclone-3.3.0}/examples/gocean/eg1/infrastructure_mod.f90 +0 -0
  1485. {psyclone-3.2.2 → psyclone-3.3.0}/examples/gocean/eg1/time_smooth_mod.f90 +0 -0
  1486. {psyclone-3.2.2 → psyclone-3.3.0}/examples/gocean/eg4/alg_kern_call_kern.f90 +0 -0
  1487. {psyclone-3.2.2 → psyclone-3.3.0}/examples/gocean/eg5/extract/test.X90 +0 -0
  1488. {psyclone-3.2.2 → psyclone-3.3.0}/examples/gocean/eg6/README.md +0 -0
  1489. {psyclone-3.2.2 → psyclone-3.3.0}/examples/gocean/eg7/README.md +0 -0
  1490. {psyclone-3.2.2 → psyclone-3.3.0}/examples/lfric/README.md +0 -0
  1491. {psyclone-3.2.2 → psyclone-3.3.0}/examples/lfric/scripts/README.md +0 -0
  1492. {psyclone-3.2.2 → psyclone-3.3.0}/examples/nemo/code/tra_adv.F90 +0 -0
  1493. {psyclone-3.2.2 → psyclone-3.3.0}/examples/nemo/eg4/tra_adv_compute.F90 +0 -0
  1494. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_calc_exner_pointwise_mod.F90 +0 -0
  1495. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_convert_hdiv_field_kernel_mod.F90 +0 -0
  1496. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_dg_inc_matrix_vector_kernel_mod.F90 +0 -0
  1497. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_helmholtz_operator_kernel_mod.F90 +0 -0
  1498. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_kinetic_energy_gradient_kernel_mod.F90 +0 -0
  1499. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_matrix_vector_kernel_mod.F90 +0 -0
  1500. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_moist_dyn_gas_kernel_mod.F90 +0 -0
  1501. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_poly1d_reconstruction_kernel_mod.F90 +0 -0
  1502. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_poly1d_vert_adv_kernel_mod.F90 +0 -0
  1503. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_poly1d_vert_w3_reconstruction_kernel_mod.F90 +0 -0
  1504. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_poly2d_reconstruction_kernel_mod.F90 +0 -0
  1505. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_poly_advective_kernel_mod.F90 +0 -0
  1506. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_pressure_gradient_bd_kernel_mod.F90 +0 -0
  1507. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_project_eos_pressure_kernel_mod.F90 +0 -0
  1508. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_rhs_project_eos_kernel_mod.F90 +0 -0
  1509. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_rhs_sample_eos_kernel_mod.F90 +0 -0
  1510. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_sample_eos_pressure_kernel_mod.F90 +0 -0
  1511. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_strong_curl_kernel_mod.F90 +0 -0
  1512. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/adj_vorticity_advection_kernel_mod.F90 +0 -0
  1513. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/lbl_adj_poly1d_w3_reconstruction_kernel_mod.F90 +0 -0
  1514. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/lbl_adj_poly2d_reconstruction_kernel_mod.F90 +0 -0
  1515. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/lbl_adj_poly2d_w3_reconstruction_kernel_mod.F90 +0 -0
  1516. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/adjoint/lbl_adj_pressure_gradient_bd_kernel_mod.F90 +0 -0
  1517. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/apply_helmholtz_operator_kernel_mod.F90 +0 -0
  1518. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/poly1d_reconstruction_kernel_mod.F90 +0 -0
  1519. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/poly1d_w3_reconstruction_kernel_mod.F90 +0 -0
  1520. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/poly2d_reconstruction_kernel_mod.F90 +0 -0
  1521. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/poly2d_w3_reconstruction_kernel_mod.F90 +0 -0
  1522. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/poly_adv_update_kernel_mod.F90 +0 -0
  1523. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/strong_curl_kernel_mod.F90 +0 -0
  1524. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_calc_exner_pointwise_mod.F90 +0 -0
  1525. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_hydrostatic_kernel_mod.F90 +0 -0
  1526. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_kinetic_energy_gradient_kernel_mod.F90 +0 -0
  1527. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_moist_dyn_gas_kernel_mod.F90 +0 -0
  1528. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_moist_dyn_mass_kernel_mod.F90 +0 -0
  1529. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_poly1d_vert_adv_kernel_mod.F90 +0 -0
  1530. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_poly1d_vert_w3_reconstruction_kernel_mod.F90 +0 -0
  1531. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_poly_advective_kernel_mod.F90 +0 -0
  1532. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_pressure_gradient_bd_kernel_mod.F90 +0 -0
  1533. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_rhs_project_eos_kernel_mod.F90 +0 -0
  1534. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_rhs_sample_eos_kernel_mod.F90 +0 -0
  1535. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_sample_eos_pressure_kernel_mod.F90 +0 -0
  1536. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/tl_vorticity_advection_kernel_mod.F90 +0 -0
  1537. {psyclone-3.2.2 → psyclone-3.3.0}/examples/psyad/lfric/tangent_linear/w2_to_w1_projection_kernel_mod.F90 +0 -0
  1538. {psyclone-3.2.2 → psyclone-3.3.0}/examples/xdsl/backend/__init__.py +0 -0
  1539. {psyclone-3.2.2 → psyclone-3.3.0}/examples/xdsl/pw_advection/advection_mpi.F90 +0 -0
  1540. {psyclone-3.2.2 → psyclone-3.3.0}/examples/xdsl/stencil_lower.py +0 -0
  1541. {psyclone-3.2.2 → psyclone-3.3.0}/lib/extract/test_compare.f90 +0 -0
  1542. {psyclone-3.2.2 → psyclone-3.3.0}/src/PSyclone.egg-info/dependency_links.txt +0 -0
  1543. {psyclone-3.2.2 → psyclone-3.3.0}/src/PSyclone.egg-info/top_level.txt +0 -0
  1544. {psyclone-3.2.2 → psyclone-3.3.0}/src/psyclone/domain/__init__.py +0 -0
  1545. {psyclone-3.2.2 → psyclone-3.3.0}/src/psyclone/doxy_main_page.py +0 -0
  1546. {psyclone-3.2.2 → psyclone-3.3.0}/src/psyclone/psyad/domain/__init__.py +0 -0
  1547. {psyclone-3.2.2 → psyclone-3.3.0}/tutorial/notebooks/fparser2/parsing_fortran.ipynb +0 -0
  1548. {psyclone-3.2.2 → psyclone-3.3.0}/tutorial/notebooks/nemo/nemo_example1.ipynb +0 -0
  1549. {psyclone-3.2.2 → psyclone-3.3.0}/tutorial/notebooks/nemo/nemo_example2.ipynb +0 -0
  1550. {psyclone-3.2.2 → psyclone-3.3.0}/tutorial/notebooks/nemo/nemo_example3.ipynb +0 -0
  1551. {psyclone-3.2.2 → psyclone-3.3.0}/tutorial/notebooks/psyir/psyir_example1.ipynb +0 -0
  1552. {psyclone-3.2.2 → 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
@@ -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
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.11190457.svg)](https://doi.org/10.5281/zenodo.11190457)
58
+ ![Build Status](https://github.com/stfc/PSyclone/workflows/PSyclone%20tests%20and%20examples/badge.svg)
59
+ [![codecov](https://codecov.io/gh/stfc/PSyclone/branch/master/graph/badge.svg)](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
+ * [![Binder](https://mybinder.org/badge_logo.svg)](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
+ * [![Binder](https://mybinder.org/badge_logo.svg)](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
+ * [![Binder](https://mybinder.org/badge_logo.svg)](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
@@ -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
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.11190457.svg)](https://doi.org/10.5281/zenodo.11190457)
8
+ ![Build Status](https://github.com/stfc/PSyclone/workflows/PSyclone%20tests%20and%20examples/badge.svg)
9
+ [![codecov](https://codecov.io/gh/stfc/PSyclone/branch/master/graph/badge.svg)](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
+ * [![Binder](https://mybinder.org/badge_logo.svg)](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
+ * [![Binder](https://mybinder.org/badge_logo.svg)](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
+ * [![Binder](https://mybinder.org/badge_logo.svg)](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
@@ -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