[Python-modules-commits] [psyclone] 01/07: initial pull from GitHub, 2017-06-13
Alastair McKinstry
mckinstry at moszumanska.debian.org
Tue Jul 25 15:27:35 UTC 2017
This is an automated email from the git hooks/post-receive script.
mckinstry pushed a commit to branch debian/master
in repository psyclone.
commit 1e2a11545216c6c41fbe8fe3e800c80e9805a48f
Author: Alastair McKinstry <mckinstry at debian.org>
Date: Tue Jun 13 14:53:48 2017 +0100
initial pull from GitHub, 2017-06-13
---
LICENSE | 33 +
README | 30 +
README.gource | 26 +
README.uml | 24 +
changelog | 324 +
contributions/install | 76 +
doc/Makefile | 153 +
doc/README | 30 +
doc/algorithm_layer.rst | 142 +
doc/api.rst | 79 +
doc/built_ins.rst | 247 +
doc/conf.py | 289 +
doc/developers.rst | 192 +
doc/distributed_memory.rst | 94 +
doc/dynamo0p1.rst | 336 +
doc/dynamo0p3.rst | 1463 +++++
doc/dynamo0p3_topclasses.png | Bin 0 -> 46309 bytes
doc/dynamo0p3_topclasses.svg | 784 +++
doc/generator_script.rst | 235 +
doc/getting_going.rst | 337 +
doc/gocean1p0.rst | 681 ++
doc/grid_offset_choices.png | Bin 0 -> 22060 bytes
doc/grids_SW_stagger.png | Bin 0 -> 119001 bytes
doc/index.rst | 34 +
doc/introduction.rst | 50 +
doc/kernel_layer.rst | 98 +
doc/line_length.rst | 86 +
doc/make.bat | 190 +
doc/psy_layer.rst | 199 +
doc/stub_gen.rst | 331 +
doc/system_specific_setup.rst | 218 +
doc/transformations.rst | 287 +
examples/check_examples | 70 +
examples/dynamo/README | 105 +
examples/dynamo/eg1/dynamo.F90 | 93 +
examples/dynamo/eg1/psykal_lite.F90 | 64 +
examples/dynamo/eg1/runme.py | 34 +
examples/dynamo/eg1/runme_openmp.py | 55 +
examples/dynamo/eg1/v3_kernel_mod.F90 | 99 +
examples/dynamo/eg1/v3_solver_kernel_mod.F90 | 107 +
examples/dynamo/eg2/dynamo.F90 | 89 +
examples/dynamo/eg2/dynamo_algorithm_mod.F90 | 71 +
examples/dynamo/eg2/matrix_invert_mod.F90 | 98 +
examples/dynamo/eg2/matrix_vector_kernel_mod.F90 | 111 +
examples/dynamo/eg2/psykal_lite.F90 | 253 +
examples/dynamo/eg2/runme.py | 25 +
examples/dynamo/eg2/runme_loop_fuse.py | 32 +
examples/dynamo/eg2/runme_openmp.py | 54 +
examples/dynamo/eg2/solver_mod.F90 | 147 +
examples/dynamo/eg2/v1_kernel_mod.F90 | 108 +
examples/dynamo/eg2/v2_kernel_mod.F90 | 110 +
examples/dynamo/eg2/v3_rhs_kernel_mod.F90 | 97 +
examples/dynamo/eg2/v3_solver_kernel_mod.F90 | 108 +
examples/dynamo/eg3/colouring_and_omp.py | 39 +
examples/dynamo/eg3/matrix_vector_mm_mod.F90 | 101 +
examples/dynamo/eg3/solver_mod.x90 | 751 +++
examples/dynamo/eg3/w3_solver_kernel_mod.F90 | 149 +
examples/dynamo/eg4/enforce_bc_kernel_mod.f90 | 128 +
examples/dynamo/eg4/matrix_vector_kernel_mod.F90 | 104 +
examples/dynamo/eg4/mm_diagonal_kernel_mod.F90 | 96 +
examples/dynamo/eg4/solver_mod.x90 | 161 +
examples/dynamo/eg5/alg.f90 | 60 +
.../dynamo/eg5/conservative_flux_kernel_mod.F90 | 227 +
examples/dynamo/eg5/subgrid_coeffs_kernel_mod.F90 | 190 +
examples/dynamo/eg6/alg.x90 | 20 +
examples/dynamo/eg6/omp_reprod_script.py | 34 +
examples/dynamo/eg6/omp_script.py | 28 +
examples/dynamo/eg7/alg.x90 | 46 +
.../dynamo/eg7/columnwise_op_app_kernel_mod.F90 | 136 +
.../dynamo/eg7/columnwise_op_asm_kernel_mod.F90 | 142 +
.../dynamo/eg7/columnwise_op_mul_kernel_mod.F90 | 160 +
examples/dynamo/eg7/matrix_vector_kernel_mod.F90 | 104 +
examples/gocean/README | 23 +
examples/gocean/compute_cu_mod.f90 | 120 +
examples/gocean/compute_cv_mod.f90 | 116 +
examples/gocean/compute_h_mod.f90 | 117 +
examples/gocean/compute_pnew_mod.f90 | 136 +
examples/gocean/compute_unew_mod.f90 | 129 +
examples/gocean/compute_vnew_mod.f90 | 141 +
examples/gocean/compute_z_mod.f90 | 101 +
examples/gocean/infrastructure_mod.f90 | 44 +
examples/gocean/runme.py | 56 +
examples/gocean/runme_loop_fuse.py | 75 +
examples/gocean/runme_openmp.py | 83 +
examples/gocean/shallow_alg.f90 | 250 +
examples/gocean/time_smooth_mod.f90 | 102 +
examples/gunghoproto/README | 13 +
examples/gunghoproto/data/unitsquare.1.ele | 4 +
examples/gunghoproto/data/unitsquare.1.node | 6 +
examples/gunghoproto/data/unitsquare.1.poly | 8 +
examples/gunghoproto/data/unitsquare.poly | 11 +
examples/gunghoproto/galerkin/Makefile | 99 +
examples/gunghoproto/galerkin/galerkin.F90 | 95 +
examples/gunghoproto/galerkin/galerkin_module.F90 | 245 +
examples/gunghoproto/galerkin_rhs/Makefile | 105 +
examples/gunghoproto/galerkin_rhs/galerkin.F90 | 45 +
.../gunghoproto/galerkin_rhs/galerkin_module.f90 | 91 +
.../gunghoproto/galerkin_rhs/manual_galerkin.F90 | 43 +
.../manual_invoke_galerkin_rhs_kernel.F90 | 78 +
.../galerkin_rhs/manual_invoke_populate_rhs.F90 | 66 +
examples/gunghoproto/integrate_one/Makefile | 97 +
.../gunghoproto/integrate_one/integrate_one.F90 | 36 +
.../integrate_one/integrate_one_module.F90 | 52 +
examples/gunghoproto/tridiag_solve/Makefile | 112 +
.../manual_invoke_tridiag_solve_kernel.F90 | 101 +
.../manual_invoke_tridiag_testdata_kernel.F90 | 133 +
.../manual_invoke_tridiag_verify_kernel.F90 | 94 +
.../tridiag_solve/manual_tridiag_solve.F90 | 74 +
.../gunghoproto/tridiag_solve/tridiag_solve.F90 | 65 +
.../tridiag_solve/tridiag_solve_module.F90 | 185 +
examples/line_length/README | 27 +
examples/line_length/longlines.f90 | 6 +
examples/line_length/runme.py | 13 +
examples/stub_generation/README | 21 +
.../stub_generation/testkern_stencil_multi_mod.f90 | 26 +
.../inline/module_inline_example.py | 36 +
logo/psyclone_v1.0.png | Bin 0 -> 18832 bytes
logo/psyclone_v1.0.xcf | Bin 0 -> 54386 bytes
psyclone.pdf | Bin 0 -> 616398 bytes
src/algGen.py | 87 +
src/config.py | 20 +
src/dynamo0p1.py | 318 +
src/dynamo0p3.py | 4415 +++++++++++++
src/dynamo0p3_builtins.py | 560 ++
src/dynamo0p3_builtins_mod.f90 | 353 +
src/expression.py | 346 +
src/f2pygen.py | 920 +++
src/generator.py | 250 +
src/genkernelstub.py | 99 +
src/ghproto.py | 127 +
src/gocean0p1.py | 301 +
src/gocean1p0.py | 1009 +++
src/gui.py | 214 +
src/line_length.py | 118 +
src/parse.py | 1047 +++
src/psyGen.py | 2463 +++++++
src/tests/alggen_test.py | 385 ++
src/tests/dynamo0p1_transformations_test.py | 55 +
src/tests/dynamo0p3_builtins_test.py | 2395 +++++++
src/tests/dynamo0p3_cma_test.py | 1409 ++++
src/tests/dynamo0p3_test.py | 6765 ++++++++++++++++++++
src/tests/dynamo0p3_transformations_test.py | 3641 +++++++++++
src/tests/expression_test.py | 237 +
src/tests/f2pygen_test.py | 1155 ++++
src/tests/generator_test.py | 539 ++
src/tests/ghproto_test.py | 23 +
src/tests/ghproto_transformations_test.py | 46 +
src/tests/gocean0p1_test.py | 51 +
src/tests/gocean0p1_transformations_test.py | 223 +
src/tests/gocean1p0_test.py | 1146 ++++
src/tests/gocean1p0_transformations_test.py | 1185 ++++
src/tests/line_length_test.py | 379 ++
src/tests/parse_test.py | 181 +
src/tests/psyGen_test.py | 1675 +++++
src/tests/test_files/__init__.py | 0
src/tests/test_files/dummy_transformations.py | 25 +
src/tests/test_files/dynamo0p1/1_kg_inline.f90 | 19 +
src/tests/test_files/dynamo0p1/1_kg_orig.f90 | 18 +
.../dynamo0p1/2_two_kernel_single_invoke.f90 | 15 +
.../dynamo0p1/3_two_single-kernel_invokes.f90 | 18 +
.../dynamo0p1/4_multi-kernel_multi-invoke.f90 | 21 +
.../test_files/dynamo0p1/5_repeated_kernel.f90 | 25 +
.../dynamo0p1/algorithm/1_single_function.f90 | 21 +
.../test_files/dynamo0p1/algorithm/testkern.F90 | 24 +
.../test_files/dynamo0p1/kernels/testkern.F90 | 24 +
.../test_files/dynamo0p1/kernels2/testkern.F90 | 24 +
.../test_files/dynamo0p1/kernels2/testkern_qr.F90 | 24 +
.../kernels3/dead_end/no_really/testkern_qr.F90 | 24 +
.../kernels3/in_here/this_way/testkern.F90 | 24 +
src/tests/test_files/dynamo0p1/missing_invokes.f90 | 18 +
.../dynamo0p3/1.0.1_single_named_invoke.f90 | 22 +
.../dynamo0p3/1.0.2_many_named_invoke.f90 | 23 +
.../dynamo0p3/1.0.3_wrong_named_arg_invoke.f90 | 23 +
.../1.0.4_wrong_type_named_arg_invoke.f90 | 23 +
.../dynamo0p3/1.0.5_invoke_named_invoke.f90 | 23 +
.../dynamo0p3/1.1.1_single_invoke_qr_deref.f90 | 23 +
.../dynamo0p3/1.10_single_invoke_same_name.f90 | 18 +
.../1.11_single_invoke_same_name_array.f90 | 18 +
.../1.12_single_invoke_deref_name_clash.f90 | 18 +
.../dynamo0p3/1.13_single_invoke_field_deref.f90 | 21 +
.../test_files/dynamo0p3/1.1_single_invoke_qr.f90 | 24 +
.../test_files/dynamo0p3/1.2_multi_invoke.f90 | 22 +
.../test_files/dynamo0p3/1.3_multi_invoke_qr.f90 | 27 +
.../1.5.1_single_invoke_write_multi_fs.f90 | 22 +
.../dynamo0p3/1.5.2_single_invoke_write_fld_op.f90 | 22 +
.../1.5.3_single_invoke_write_anyspace_w3.f90 | 20 +
.../1.5.4_single_invoke_write_anyspace_w1.f90 | 20 +
.../test_files/dynamo0p3/1.5_single_invoke_fs.f90 | 22 +
.../dynamo0p3/1.6.1_single_invoke_1_int_scalar.f90 | 22 +
...1.6.2_single_invoke_1_int_from_derived_type.f90 | 32 +
.../1.6.3_single_invoke_multiple_derived_types.f90 | 27 +
.../dynamo0p3/1.6_single_invoke_2_int_scalars.f90 | 25 +
.../dynamo0p3/1.7_single_invoke_2scalar.f90 | 23 +
.../dynamo0p3/1.9_single_invoke_2_real_scalars.f90 | 22 +
.../test_files/dynamo0p3/10.1_operator_nofield.f90 | 21 +
.../test_files/dynamo0p3/10.2_operator_orient.f90 | 19 +
.../dynamo0p3/10.3_operator_different_spaces.f90 | 19 +
.../10.4_operator_orient_different_space.f90 | 19 +
.../10.5_operator_no_field_different_space.f90 | 19 +
.../10.6.1_operator_no_field_scalar_deref.f90 | 21 +
.../dynamo0p3/10.6_operator_no_field_scalar.f90 | 19 +
.../test_files/dynamo0p3/10.7_operator_read.f90 | 21 +
.../test_files/dynamo0p3/10.8_operator_deref.f90 | 21 +
.../test_files/dynamo0p3/10.9_operator_first.f90 | 242 +
src/tests/test_files/dynamo0p3/10_operator.f90 | 21 +
src/tests/test_files/dynamo0p3/11.1_any_space.f90 | 8 +
src/tests/test_files/dynamo0p3/11.2_any_space.f90 | 7 +
src/tests/test_files/dynamo0p3/11.3_any_space.f90 | 7 +
src/tests/test_files/dynamo0p3/11_any_space.f90 | 8 +
.../dynamo0p3/12.2_enforce_bc_kernel.f90 | 12 +
.../dynamo0p3/12.3_multi_kernel_specific.f90 | 13 +
.../dynamo0p3/12.4_enforce_op_bc_kernel.f90 | 44 +
.../test_files/dynamo0p3/12_kernel_specific.f90 | 12 +
.../test_files/dynamo0p3/13.1_kern_long_line.f90 | 21 +
.../dynamo0p3/13.2_alg_long_line_continuator.f90 | 26 +
.../test_files/dynamo0p3/13_alg_long_line.f90 | 23 +
.../test_files/dynamo0p3/14.1_halo_writers.f90 | 21 +
.../test_files/dynamo0p3/14.2_halo_readers.f90 | 24 +
.../dynamo0p3/14.3_halo_readers_all_fs.f90 | 26 +
.../test_files/dynamo0p3/14.4.1_halo_vector.f90 | 17 +
.../test_files/dynamo0p3/14.4_halo_vector.f90 | 22 +
src/tests/test_files/dynamo0p3/14.5_halo_depth.f90 | 22 +
.../test_files/dynamo0p3/14.6_halo_depth_2.f90 | 22 +
.../dynamo0p3/15.0.0_invalid_builtin_kernel.f90 | 23 +
.../dynamo0p3/15.0.1_single_builtin_set_by_ref.f90 | 31 +
.../dynamo0p3/15.0.2_multiple_set_kernels.f90 | 28 +
.../dynamo0p3/15.0.3_builtin_with_use.f90 | 27 +
.../dynamo0p3/15.10.0_sum_field_builtin.f90 | 20 +
.../dynamo0p3/15.10.1_sum_field_builtin.f90 | 21 +
.../15.11.0_two_same_builtin_reductions.f90 | 21 +
.../15.12.0_two_different_builtin_reductions.f90 | 20 +
...5.13.0_two_builtins_reduction_then_standard.f90 | 20 +
...5.14.0_two_builtins_standard_then_reduction.f90 | 20 +
.../15.15.0_builtins_reduction_fuse_error.f90 | 21 +
.../15.16.0_three_builtins_two_reductions.f90 | 21 +
.../15.1_builtin_and_normal_kernel_invoke.f90 | 23 +
.../dynamo0p3/15.2.0_copy_field_builtin.f90 | 21 +
.../dynamo0p3/15.2.1_copy_scaled_field_builtin.f90 | 22 +
.../dynamo0p3/15.2.2_scale_field_builtin.f90 | 20 +
.../dynamo0p3/15.2.3_raise_field_builtin.f90 | 20 +
.../dynamo0p3/15.3.0_multiply_fields.f90 | 20 +
.../15.3.1_multiply_fields_deduce_space.f90 | 26 +
.../dynamo0p3/15.3.2_axpy_invoke_by_value.f90 | 23 +
.../15.3.3_multiply_fields_different_spaces.f90 | 26 +
.../dynamo0p3/15.3.4_inc_multiply_field_invoke.f90 | 20 +
.../dynamo0p3/15.3.4_multi_axpy_invoke.f90 | 29 +
.../test_files/dynamo0p3/15.3.5_axmy_invoke.f90 | 22 +
.../test_files/dynamo0p3/15.3_axpy_invoke.f90 | 24 +
.../dynamo0p3/15.4.0_subtract_invoke.f90 | 22 +
.../dynamo0p3/15.4.1_inc_xpby_invoke.f90 | 22 +
.../test_files/dynamo0p3/15.4_inc_axpy_invoke.f90 | 24 +
.../test_files/dynamo0p3/15.5.0_add_invoke.f90 | 22 +
.../dynamo0p3/15.6.0_divide_fields_invoke.f90 | 16 +
.../dynamo0p3/15.6.1_inc_divide_field_invoke.f90 | 15 +
.../dynamo0p3/15.7.0_inc_field_invoke.f90 | 13 +
.../test_files/dynamo0p3/15.8.0_axpby_invoke.f90 | 25 +
.../dynamo0p3/15.8.1_axpby_invoke_by_value.f90 | 21 +
.../dynamo0p3/15.8.2_inc_axpby_invoke.f90 | 23 +
.../dynamo0p3/15.9.0_inner_prod_builtin.f90 | 20 +
.../dynamo0p3/15.9.1_inner_self_prod_builtin.f90 | 20 +
.../dynamo0p3/15_single_pointwise_invoke.f90 | 28 +
.../dynamo0p3/16.2_integer_scalar_sum.f90 | 16 +
.../dynamo0p3/16.4.1_multiple_scalar_sums2.f90 | 16 +
.../dynamo0p3/19.10_multiple_kernels_stencils.f90 | 23 +
.../19.11_multiple_stencils_mixed_case.f90 | 18 +
.../dynamo0p3/19.12_single_stencil_region.f90 | 14 +
.../test_files/dynamo0p3/19.13_single_stencil.f90 | 18 +
.../dynamo0p3/19.14_two_stencils_same_field.f90 | 17 +
.../19.15_stencils_same_field_literal_extent.f90 | 17 +
...19.16_stencils_same_field_literal_direction.f90 | 17 +
...9.17_single_kernel_multi_field_same_stencil.f90 | 22 +
.../dynamo0p3/19.18_anyspace_stencil_1.f90 | 32 +
.../dynamo0p3/19.19_anyspace_stencil_2.f90 | 25 +
.../test_files/dynamo0p3/19.1_single_stencil.f90 | 14 +
.../dynamo0p3/19.20_multiple_kernels_stencils.f90 | 19 +
.../dynamo0p3/19.21_stencil_names_clash.f90 | 22 +
.../dynamo0p3/19.22_stencil_names_indexed.f90 | 23 +
.../dynamo0p3/19.23_stencil_names_deref.f90 | 23 +
.../dynamo0p3/19.2_single_stencil_broken.f90 | 14 +
.../dynamo0p3/19.3_single_stencil_xory1d.f90 | 17 +
.../dynamo0p3/19.4_single_stencil_literal.f90 | 14 +
.../19.5.1_single_stencil_xory1d_literal.f90 | 15 +
.../19.5_single_stencil_xory1d_literal.f90 | 15 +
.../dynamo0p3/19.6_single_stencil_xory1d_value.f90 | 16 +
.../dynamo0p3/19.7_multiple_stencils.f90 | 18 +
.../dynamo0p3/19.8_multiple_stencils_same_name.f90 | 18 +
.../dynamo0p3/19.9_multiple_stencils_same_name.f90 | 18 +
src/tests/test_files/dynamo0p3/1_single_invoke.f90 | 22 +
.../dynamo0p3/20.0.1_cma_assembly_scalar.f90 | 58 +
.../test_files/dynamo0p3/20.0_cma_assembly.f90 | 51 +
.../dynamo0p3/20.1.1_cma_apply_same_spaces.f90 | 53 +
.../test_files/dynamo0p3/20.1.2_cma_apply_w3.f90 | 54 +
src/tests/test_files/dynamo0p3/20.1_cma_apply.f90 | 49 +
.../dynamo0p3/20.2.1_cma_matrix_matrix.f90 | 54 +
.../dynamo0p3/20.2_cma_matrix_matrix.f90 | 53 +
.../dynamo0p3/20.3_cma_assembly_field.f90 | 51 +
.../dynamo0p3/20.4_cma_assembly_field_same_fs.f90 | 52 +
.../test_files/dynamo0p3/20.5_multi_cma_invoke.f90 | 56 +
.../dynamo0p3/20.6_multi_invoke_with_cma.f90 | 55 +
.../dynamo0p3/21.1_single_invoke_multi_anyw2.f90 | 43 +
.../21.2_single_invoke_multi_anyw2_basis.f90 | 45 +
.../dynamo0p3/21.3_single_invoke_anyw2_vector.f90 | 44 +
.../21.4_single_invoke_anyw2_operator.f90 | 45 +
.../dynamo0p3/21.5_single_invoke_anyw2_stencil.f90 | 44 +
.../dynamo0p3/2_incorrect_number_of_args.f90 | 22 +
.../3.1_multi_functions_multi_invokes.f90 | 33 +
.../3.2_multi_functions_multi_named_invokes.f90 | 35 +
....3_multi_functions_multi_invokes_name_clash.f90 | 36 +
src/tests/test_files/dynamo0p3/3_multi_invokes.f90 | 33 +
.../4.10_multi_position_named_invokes.f90 | 34 +
.../dynamo0p3/4.11_named_invoke_name_clash.f90 | 26 +
.../dynamo0p3/4.1_multikernel_invokes.f90 | 27 +
.../dynamo0p3/4.2_multikernel_invokes.f90 | 24 +
.../dynamo0p3/4.3_multikernel_invokes.f90 | 25 +
.../dynamo0p3/4.4_multikernel_invokes.f90 | 28 +
.../dynamo0p3/4.5.1_multikernel_invokes.f90 | 27 +
.../dynamo0p3/4.5.2_multikernel_invokes.f90 | 39 +
.../dynamo0p3/4.5_multikernel_invokes.f90 | 30 +
.../dynamo0p3/4.6.2_multikernel_invokes.f90 | 24 +
.../dynamo0p3/4.6_multikernel_invokes.f90 | 25 +
.../dynamo0p3/4.7_multikernel_invokes.f90 | 26 +
.../dynamo0p3/4.8_multikernel_invokes.f90 | 38 +
.../dynamo0p3/4.9_named_multikernel_invokes.f90 | 26 +
.../test_files/dynamo0p3/4_multikernel_invokes.f90 | 24 +
.../test_files/dynamo0p3/5_alg_field_array.f90 | 28 +
.../dynamo0p3/6_multiple_QR_per_invoke.f90 | 15 +
.../test_files/dynamo0p3/7_QR_field_array.f90 | 17 +
.../dynamo0p3/8.1_vector_field_deref.f90 | 21 +
src/tests/test_files/dynamo0p3/8_vector_field.f90 | 21 +
.../test_files/dynamo0p3/8_vector_field_2.f90 | 21 +
src/tests/test_files/dynamo0p3/9_orientation.f90 | 22 +
.../assemble_weak_derivative_w3_w2_kernel_mod.f90 | 28 +
.../test_files/dynamo0p3/broken_builtins_mod.f90 | 47 +
.../dynamo0p3/columnwise_op_app_kernel_mod.F90 | 117 +
.../columnwise_op_app_same_fs_kernel_mod.F90 | 96 +
.../dynamo0p3/columnwise_op_app_w3_kernel_mod.F90 | 103 +
.../columnwise_op_asm_field_kernel_mod.F90 | 124 +
.../dynamo0p3/columnwise_op_asm_kernel_mod.F90 | 117 +
.../columnwise_op_asm_kernel_scalar_mod.F90 | 121 +
.../columnwise_op_asm_same_fs_kernel_mod.F90 | 117 +
.../columnwise_op_mul_2scalars_kernel.F90 | 139 +
.../dynamo0p3/columnwise_op_mul_kernel.F90 | 131 +
.../test_files/dynamo0p3/dummy_orientation_mod.f90 | 31 +
.../test_files/dynamo0p3/enforce_bc_kernel_mod.f90 | 94 +
.../dynamo0p3/enforce_operator_bc_kernel_mod.F90 | 126 +
src/tests/test_files/dynamo0p3/error.py | 2 +
src/tests/test_files/dynamo0p3/error_trans.py | 18 +
.../dynamo0p3/int_reduction_builtins_mod.f90 | 27 +
.../test_files/dynamo0p3/invalid_builtins_mod.f90 | 133 +
src/tests/test_files/dynamo0p3/invalid_script_name | 0
src/tests/test_files/dynamo0p3/longkern.f90 | 25 +
src/tests/test_files/dynamo0p3/loop_fuse_trans.py | 21 +
.../test_files/dynamo0p3/matrix_vector_mod.F90 | 20 +
.../dynamo0p3/multi_reduction_builtins_mod.f90 | 29 +
src/tests/test_files/dynamo0p3/no_trans.py | 16 +
.../test_files/dynamo0p3/not_dofs_builtins_mod.f90 | 31 +
src/tests/test_files/dynamo0p3/null_trans.py | 4 +
src/tests/test_files/dynamo0p3/ru_kernel_mod.f90 | 29 +
src/tests/test_files/dynamo0p3/runtime_error.py | 6 +
src/tests/test_files/dynamo0p3/simple.f90 | 20 +
.../test_files/dynamo0p3/simple_with_reduction.f90 | 25 +
.../test_files/dynamo0p3/simple_with_scalars.f90 | 25 +
src/tests/test_files/dynamo0p3/testkern.F90 | 26 +
.../dynamo0p3/testkern_any_space_1_mod.f90 | 29 +
.../dynamo0p3/testkern_any_space_2_mod.f90 | 22 +
.../dynamo0p3/testkern_any_space_3_mod.f90 | 17 +
.../dynamo0p3/testkern_any_space_4_mod.f90 | 29 +
.../dynamo0p3/testkern_anyw2_operator_mod.f90 | 51 +
.../dynamo0p3/testkern_anyw2_stencil_mod.f90 | 44 +
.../test_files/dynamo0p3/testkern_anyw2_vector.f90 | 51 +
src/tests/test_files/dynamo0p3/testkern_chi.F90 | 23 +
src/tests/test_files/dynamo0p3/testkern_chi_2.F90 | 23 +
.../testkern_different_anyspace_stencil_mod.f90 | 19 +
src/tests/test_files/dynamo0p3/testkern_fs.f90 | 29 +
.../dynamo0p3/testkern_invalid_fortran.F90 | 25 +
.../test_files/dynamo0p3/testkern_multi_anyw2.f90 | 48 +
.../dynamo0p3/testkern_multi_anyw2_basis.f90 | 51 +
.../testkern_multi_field_same_stencil_mod.f90 | 21 +
.../test_files/dynamo0p3/testkern_no_datatype.F90 | 25 +
.../test_files/dynamo0p3/testkern_not_cells.F90 | 25 +
.../dynamo0p3/testkern_one_int_scalar.f90 | 28 +
.../dynamo0p3/testkern_operator_2_mod.f90 | 20 +
.../test_files/dynamo0p3/testkern_operator_mod.f90 | 27 +
.../dynamo0p3/testkern_operator_nofield_mod.f90 | 27 +
.../testkern_operator_nofield_scalar_mod.f90 | 26 +
.../dynamo0p3/testkern_operator_orient_2_mod.f90 | 28 +
.../dynamo0p3/testkern_operator_orient_mod.f90 | 27 +
.../dynamo0p3/testkern_operator_read_mod.f90 | 27 +
.../test_files/dynamo0p3/testkern_orientation.F90 | 30 +
src/tests/test_files/dynamo0p3/testkern_qr.F90 | 33 +
.../testkern_same_anyspace_stencil_mod.f90 | 19 +
.../test_files/dynamo0p3/testkern_short_name.F90 | 25 +
.../dynamo0p3/testkern_stencil_depth_2_mod.f90 | 26 +
.../dynamo0p3/testkern_stencil_depth_mod.f90 | 26 +
.../dynamo0p3/testkern_stencil_fs_mod.f90 | 32 +
.../test_files/dynamo0p3/testkern_stencil_mod.f90 | 25 +
.../dynamo0p3/testkern_stencil_multi_2_mod.f90 | 26 +
.../dynamo0p3/testkern_stencil_multi_mod.f90 | 26 +
.../dynamo0p3/testkern_stencil_region_mod.f90 | 20 +
.../dynamo0p3/testkern_stencil_vector_mod.f90 | 24 +
.../dynamo0p3/testkern_stencil_xory1d_mod.f90 | 21 +
.../dynamo0p3/testkern_two_int_scalars.f90 | 29 +
.../dynamo0p3/testkern_two_real_scalars.f90 | 27 +
.../test_files/dynamo0p3/testkern_two_scalars.f90 | 27 +
.../test_files/dynamo0p3/testkern_vector_2_mod.f90 | 20 +
.../test_files/dynamo0p3/testkern_write_any_w1.f90 | 30 +
.../test_files/dynamo0p3/testkern_write_any_w3.f90 | 31 +
.../dynamo0p3/testkern_write_op_and_fld.f90 | 24 +
.../test_files/dynamo0p3/testkern_write_w3_w1.f90 | 30 +
.../test_files/dynamo0p3/testkern_writers_mod.f90 | 26 +
.../dynamo0p3/weighted_proj_theta2_kernel_mod.F90 | 141 +
src/tests/test_files/dynamo0p3/xyz | 0
src/tests/test_files/gocean0p1/1_kg_inline.f90 | 23 +
src/tests/test_files/gocean0p1/1_kg_orig.f90 | 22 +
.../test_files/gocean0p1/1_single_function.f90 | 14 +
src/tests/test_files/gocean0p1/argument_mod.F90 | 60 +
src/tests/test_files/gocean0p1/compute_cu_mod.f90 | 105 +
.../gocean0p1/fuse_different_spaces_test.f90 | 55 +
.../test_files/gocean0p1/global_parameters_mod.F90 | 35 +
src/tests/test_files/gocean0p1/kernel_mod.F90 | 49 +
src/tests/test_files/gocean0p1/kind_params_mod.f90 | 17 +
.../test_files/gocean0p1/openmp_fuse_test.f90 | 62 +
src/tests/test_files/gocean0p1/testkern.F90 | 16 +
src/tests/test_files/gocean0p1/time_smooth_mod.f90 | 96 +
.../boundary_conditions_ne_offset_mod.f90 | 313 +
src/tests/test_files/gocean1p0/compute_cu_mod.f90 | 114 +
src/tests/test_files/gocean1p0/compute_cv_mod.f90 | 116 +
src/tests/test_files/gocean1p0/field_mod.f90 | 1378 ++++
src/tests/test_files/gocean1p0/grid_mod.f90 | 427 ++
.../gocean1p0/kernel_any_offset_cu_mod.f90 | 55 +
.../test_files/gocean1p0/kernel_field_copy_mod.f90 | 39 +
.../gocean1p0/kernel_invalid_fortran.f90 | 45 +
.../gocean1p0/kernel_invalid_grid_property.f90 | 50 +
.../gocean1p0/kernel_invalid_iterates_over.f90 | 112 +
.../gocean1p0/kernel_invalid_meta_arg_type.f90 | 56 +
.../gocean1p0/kernel_invalid_meta_args.f90 | 56 +
.../test_files/gocean1p0/kernel_invalid_offset.f90 | 107 +
.../gocean1p0/kernel_invalid_stencil.f90 | 46 +
.../gocean1p0/kernel_missing_iterates_over.f90 | 109 +
.../test_files/gocean1p0/kernel_missing_offset.f90 | 107 +
.../gocean1p0/kernel_missing_stencil.f90 | 46 +
.../gocean1p0/kernel_ne_offset_cf_mod.f90 | 49 +
.../gocean1p0/kernel_ne_offset_ct_mod.f90 | 48 +
.../test_files/gocean1p0/kernel_ne_offset_mod.f90 | 116 +
.../test_files/gocean1p0/kernel_no_fld_args.f90 | 54 +
.../gocean1p0/kernel_requires_grid_props.f90 | 67 +
.../test_files/gocean1p0/kernel_scalar_float.f90 | 70 +
.../test_files/gocean1p0/kernel_scalar_int.f90 | 71 +
.../gocean1p0/kernel_sw_offset_cf_mod.f90 | 97 +
.../gocean1p0/kernel_sw_offset_ct_mod.f90 | 86 +
.../gocean1p0/kernel_sw_offset_cu_mod.f90 | 90 +
.../gocean1p0/kernel_sw_offset_cv_mod.f90 | 90 +
.../gocean1p0/kernel_unsupported_offset_mod.f90 | 97 +
.../test_files/gocean1p0/kernel_wrong_access.f90 | 52 +
.../gocean1p0/kernel_wrong_gridpt_type.f90 | 52 +
.../gocean1p0/kernel_wrong_meta_arg_arg_count.f90 | 74 +
src/tests/test_files/gocean1p0/kind_params_mod.f90 | 10 +
src/tests/test_files/gocean1p0/single_invoke.f90 | 52 +
.../gocean1p0/single_invoke_grid_props.f90 | 47 +
.../gocean1p0/single_invoke_scalar_float_arg.f90 | 46 +
.../gocean1p0/single_invoke_scalar_int_arg.f90 | 44 +
.../gocean1p0/single_invoke_three_kernels.f90 | 62 +
.../gocean1p0/single_invoke_two_kernels.f90 | 56 +
...test00.1_invoke_kernel_wrong_meta_arg_count.f90 | 45 +
.../test00.2_invoke_kernel_invalid_meta_args.f90 | 43 +
...est00.3_invoke_kernel_invalid_meta_arg_type.f90 | 43 +
.../test01_different_grid_offsets_one_invoke.f90 | 56 +
.../test02_different_grid_offsets_two_invokes.f90 | 56 +
.../test03_invoke_kernel_missing_offset.f90 | 52 +
.../test04_invoke_kernel_invalid_offset.f90 | 52 +
...est05.1_invoke_kernel_invalid_iterates_over.f90 | 52 +
.../test05_invoke_kernel_missing_iterates_over.f90 | 52 +
.../test06_invoke_kernel_wrong_access.f90 | 52 +
.../test07_invoke_kernel_wrong_gridpt_type.f90 | 52 +
.../test08.1_invoke_kernel_no_fld_args.f90 | 39 +
.../test08_invoke_kernel_invalid_grid_property.f90 | 52 +
.../test09_invoke_kernel_missing_stencil.f90 | 52 +
.../test10_invoke_kernel_invalid_stencil.f90 | 52 +
.../test11_different_iterates_over_one_invoke.f90 | 53 +
.../gocean1p0/test12_two_invokes_two_kernels.f90 | 56 +
.../test13_invoke_kernel_invalid_fortran.f90 | 52 +
.../gocean1p0/test14_module_inline_same_kernel.f90 | 15 +
.../test14_ne_offset_cf_updated_one_invoke.f90 | 52 +
.../test15_ne_offset_ct_updated_one_invoke.f90 | 51 +
.../test16_ne_offset_cu_updated_one_invoke.f90 | 52 +
.../test17_ne_offset_cv_updated_one_invoke.f90 | 51 +
.../test18_ne_offset_cf_updated_one_invoke.f90 | 51 +
.../test19.1_sw_offset_cf_updated_one_invoke.f90 | 51 +
...est19.2_sw_offset_all_cf_updated_one_invoke.f90 | 51 +
.../test20_sw_offset_ct_updated_one_invoke.f90 | 51 +
.../test21_sw_offset_all_ct_updated_one_invoke.f90 | 51 +
.../test22_sw_offset_all_cu_updated_one_invoke.f90 | 47 +
.../test23_sw_offset_all_cv_updated_one_invoke.f90 | 47 +
.../test24_any_offset_all_update_one_invoke.f90 | 45 +
.../test25_any_offset_all_cu_update_one_invoke.f90 | 45 +
.../test26_const_bounds_invalid_offset.f90 | 46 +
src/tests/test_files/gocean1p0/time_smooth_mod.f90 | 102 +
.../test_files/gunghoproto/1_single_function.f90 | 21 +
src/tests/test_files/gunghoproto/1_single_set.f90 | 20 +
.../gunghoproto/2_mixed_kernel_and_set.f90 | 22 +
.../gunghoproto/2_undeclared_function.f90 | 21 +
.../test_files/gunghoproto/3_multiple_set.f90 | 21 +
.../3_two_functions_shared_arguments.f90 | 23 +
.../test_files/gunghoproto/4_explicit_name.f90 | 23 +
.../gunghoproto/5_two_single-function_invokes.f90 | 25 +
src/tests/test_files/gunghoproto/6_other_calls.f90 | 25 +
src/tests/test_files/gunghoproto/testkern.F90 | 23 +
src/tests/test_files/gunghoproto/testkern1.F90 | 24 +
src/tests/test_files/gunghoproto/testkern2.F90 | 24 +
src/tests/utils.py | 30 +
src/transformations.py | 1140 ++++
src/undoredo.py | 133 +
512 files changed, 65573 insertions(+)
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..bcdc768
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,33 @@
+BSD 3-Clause License
+
+Copyright (c) 2017, Science and Technology Facilities Council
+(c) The copyright relating to this work is owned jointly by the Crown,
+Met Office and NERC 2016.
+However, it has been created with the help of the GungHo Consortium,
+whose members are identified at https://puma.nerc.ac.uk/trac/GungHo/wiki
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+* Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/README b/README
new file mode 100644
index 0000000..6526e0a
--- /dev/null
+++ b/README
@@ -0,0 +1,30 @@
+Introduction
+============
+
+Welcome to PSyclone. PSyclone is a code generation system that generates
+appropriate code for the PSyKAl code structure developed in the GungHo project.
+
+Please see psyclone.pdf in this directory for more information. If you would
+prefer to build the documentation, please see the README file in the "doc"
+directory.
+
+There is a simple installer (contributions/install) which creates a
+stand-alone tree containing the functional components. To make use of the
+result add the python package directories to PYTHONPATH and consider adding
+the "bin" directory to PATH.
+
+Structure
+=========
+
+changelog : information on changes between releases
+contributions/ : Unsupported additional material
+doc/ : documentation source using sphinx
+examples/ : simple examples
+psyclone.pdf : generated documentation
+README : this file
+README.gource : information on how to generate a gource video from the
+ repository
+README.uml : information on how to create UML class diagrams from the source
+ using pyreverse
+src/ : the python source code
+src/tests/ : unit and functional tests using pytest
diff --git a/README.gource b/README.gource
new file mode 100644
index 0000000..c2a676c
--- /dev/null
+++ b/README.gource
@@ -0,0 +1,26 @@
+install:
+ look for gource in ubuntu software centre
+
+install video generator:
+ install ffmpeg
+ follow instructions here: https://trac.ffmpeg.org/wiki/UbuntuCompilationGuide
+ May need to install libtool to configure ffmpeg
+ May need to install dev versions of some libraries to configure ffmpeg
+ e.g. libass (install libass-dev), theora (install libtheora-dev), Xfixes (install libxfixes-dev) from software centre
+
+run gource:
+ Works for git and svn. Just run in appropriate directory
+ Just type gource in the working copy / cloned repository
+
+run gource and create an mpeg file:
+ Works for git and svn. Just run in appropriate directory
+ see: https://git.help.collab.net/entries/22604703-Visualize-Git-logs-using-Gource
+ > gource -1280x720 -o - | ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -preset ultrafast -crf 1 -threads 0 -bf 0 gource.mp4
+
+edit video:
+ install openshot:
+ look for openshot in ubuntu software centre
+ drag and drop interface
+ scissors to cut
+ export to mp4
+
diff --git a/README.uml b/README.uml
new file mode 100644
index 0000000..2c799aa
--- /dev/null
+++ b/README.uml
@@ -0,0 +1,24 @@
+# To make pyreverse provide a reasonably complete UML diagram we need to add
+# in fake declarations where it does not realise there is a "has a"
+# relationship. We simply qualify these with if False so they never get called.
+
+# All fake declarations have a comment "# for pyreverse"
+# The two cases that require fake declarations are
+# 1: when a class creates a list of other classes,
+# 2: when class names are passed by argument.
+
+# for the dynamo 0.1 api:
+pyreverse -A -p dynamo0p1 dynamo0p1.py # -A includes base classes
+dotty classes_dynamo0p1.dot # to view
+dot -Tsvg classes_dynamo0p1.dot > classes_dynamo0p1.svg # to generate svg
+
+# for gocean
+pyreverse -A -p gocean gocean.py
+dotty classes_gocean.dot
+dot -Tsvg classes_gocean.dot > classes_gocean.svg
+
+# svg can be imported into libreoffice, although there appears to be a bug with visualisation
+# (it looks OK in eog)
+
+# below might make it prettier?
+http://www.hokstad.com/making-graphviz-output-pretty-with-xsl
diff --git a/changelog b/changelog
new file mode 100644
index 0000000..1544ea1
--- /dev/null
+++ b/changelog
@@ -0,0 +1,324 @@
+ 1) #20 and PR #28 Add dependence analysis (and a Move
+ transformation) to PSyclone. This will subsequently allow for
+ the safe implementation of more complex schedule transformations
+ and optimisations.
+
+ 2) #16 and PR #29 Update and add new PSyclone-generated builtins
+ to support the functionaliity required by the current LFRic code.
+
+ 3) #43 and PR #44 Update of Met Office-specific install script to
+ symlink the generator.py file rather than copy it.
+
+ 4) #40 and PR #47 Update example dynamo/eg3 to use builtins and to
+ merge invokes together as much as possible
+
+release 1.4.1
+
+ 1) #22 Updated PSyclone to support enforce_operator_bc_kernel (in
+ addition to the existing enforce_bc_kernel) for boundary
+ conditions. PSyclone no longer adds in boundary condition calls
+ after a call to matrix_vector_kernel, it is up to the user to add
+ them in the algorithm layer in all cases. Also fixes a bug
+ introduced in 1.4.0 issue #12.
+
+release 1.4.0
+
+ 1) #2 Add support for kernel meta-data changes required to support
+ Column-wise operators (Column Matrix Assembly).
+
+ 2) #6 Implement support for Column Matrix Assembly (CMA) in
+ PSyclone.
+
+ 3) #12 Add support for the any_w2 function space descriptor
+
+ 4) #33 Update documentation referring to fparser.
+
+release 1.3.3
+
+ 1) Project moved to github: https://github.com/stfc/PSyclone.
+ Hereon, ticket numbers now refer to github issues instead of
+ SRS tickets.
+
+ 2) #8 Remove the f2py source code from the PSyclone distribution
+ and use the fparser package (https://github.com/stfc/fparser)
+ instead.
+
+ 3) #9 Update documentation to refer to github.
+
+release 1.3.2
+
+ 1) #908 Bug fix - ensure that the dynamo0p3 loop colour
+ transformation raises an exception if the loop it is applied to
+ does not iterate over cells.
+
+ 2) #923 Change the name of the generated Fortran module containing
+ PSy-layer code for the Dynamo 0.3 API. The name is constructed by
+ appending "_psy" to the Algorithm-layer name. (Previously "psy_"
+ was prepended to it.) The names of modules produced by other
+ PSyclone APIs are unchanged.
+
+release 1.3.1
+
+ 1) #846 Bug fix - generate correct logic and code for the call to
+ enforce_bc_kernel after a call to matrix_vector_kernel. Also add
+ w2h and w2v as spaces that cause enforce_bc_kernel to be called in
+ addition to W1 and W2.
+
+ 2) #853 Bug fix - make sure that an operator object is only used
+ as a lookup for values in the PSy layer when it is correct to do
+ so. In particular, make sure that the dofmap lookup is always from
+ a field, as this fixes the known bug.
+
+release 1.3.0
+
+ 1) #686 Stencil extents (depth of the stencil) are now changed to
+ stencil sizes (number of elements in the stencil) in the PSy-layer
+ as the algorithm expects to provide the former and the kernel
+ expects to receive the latter.
+
+ 2) #706 Avoid potential name clashes with stencil extent and
+ direction arguments (as well as nlayers).
+
+ 3) #673 Fixed an xfailing built-in test
+
+ 4) #721 Bug fix - generate correct variable declarations and
+ module use statements without modifying original arguments. Invokes
+ requiring multiple enforce-bc kernel calls are now handled correctly.
+
+ 5) #727 Addition of install script (contributions/install) to
+ support Met Office modules environment.
+
+ 6) #423 Add support for distributed-memory for built-ins.
+ Global sums are now generated for calls to inner_product and
+ sum_field built-in kernels.
+
+ 7) #489 Support the dereferencing of an object/derived type in the
+ argument list of a kernel call within an invoke in the algorithm
+ layer e.g. call invoke(kern(a%b))
+
+ 8) #669 Added support for named arguments to the expression
+ analyser. This is the first step towards supporting named invokes
+ in PSyclone.
+
+ 9) #628 dofmap lookups are now outside loops in the
+ PSy-layer. This makes no functional difference but should give a
+ performance benefit.
+
+ 10) #304 Added support for named invokes in PSyclone.
+
+ 11) #580 Implemented tests for the agreed dynamo0.3 builtin
+ rules. For example, all fields must be on the same function space
+ within a builtin.
+
+ 12) #761 Added support for parsing evaluator metadata.
+
+ 13) #484 Add support for the use of OpenMP (including reductions)
+ with builtins.
+
+ 14) #819 Re-structuring of DynKern._create_arg_list. Replaced with
+ new ArgList base class which is then sub-classed to KernCallArgList
+ and KernStubArgList.
+
+ 15) #576 Added tests and documentation to check and describe the
+ dynamo0.3 api kernel and builtin rules.
+
+release 1.2.4
+
+ 1) #658 Adds support for the use of real and integer literals with
+ kind specified in kernel calls from the algorithm layer. For
+ example 0.0_rdef. This will be particularly useful for built-ins.
+
+ 2) #475 Fixes any remaining string assert comparison errors in
+ tests. Updates algen_test.py to be pep8, pyflakes and pylint
+ compliant.
+
+ 3) #468 Add support for kernels that perform stencil operations.
+ Stencil depth is specified at the algorithm layer.
+
+ 4) #672 Fix error in boundary layer code generation for
+ matrix_vector_kernel. The function space check is now always
+ correct (hopefully).
+
+ 5) #680 Bug fix: the kernel stub generator was not adding the stencil
+ dofmap required by a field with stencil access.
+
+release 1.2.3
+
+ 1) #111 Adds support for dynamo0.3 built-in operations running
+ sequentially.
+
+ 2) #640 Update PSyclone to call enforce_bc_kernel after every
+ call to matrix_vector_kernel if the space is W1 or W2. (Previously
+ PSyclone looked for matrix_vector_mm_kernel and only W2.)
+
+ 3) #430 Adds support for multiple kernels within an invoke with
+ kernel arguments specified as any_space. Previously there was a
+ limit of one kernel per invoke. This is particularly relevant for
+ built-ins as all of these currently have arguments that are
+ any_space.
+
+ 4) #657 Changes to the declaration and assignment of the mesh
+ object (it is now a pointer) within the generated PSy layer so as
+ to use the mesh singleton and not generate a temporary copy of it.
+
+release 1.2.2
+
+ 1) #575 Add parser support for stencil meta-data.
+
+ 2) #587 Changed scalar metadata names to gh_real and gh_integer
+
+ 3) #501 Updates to parser and documentation to support writing to
+ scalar arguments (reductions). Note that this is currently only
+ supported for serial code. Implementation of this functionality
+ for OpenMP and MPI will be done under #484 and #423, respectively.
+
+ 4) #235 PSyclone now uses the appropriate intent for arguments in
+ the generated PSy code. Previously it always used inout. This
+ allows the algorithm developer to specify the intent of data in
+ the algorithm layer appropriately, rather than being forced to use
+ inout in all cases.
+
+ 5) #604 If PSyclone encounters an Algorithm file that contains no
+ invoke calls then it now issues a warning and outputs that file
+ unchanged (previously it did not output a file at all). No PSy
+ file is created in this case.
+
+ 6) #618 fix for #235. Data with intent out should have fields
+ declared as inout as internal subroutines within the field are
+ dereferenced so are required as intent in.
+
+ 7) #610 When PSyclone is operating in line length limiting mode
+ ("-l" switch) problems are caused if it breaks a line in the middle
+ of a string. PSyclone now prefixes all continued lines with an
+ ampersand. This then produces valid Fortran irrespective of whether
+ the line-break happens within a string.
+
+release 1.2.1
+
+ 1) Added a PSyclone logo
+
+ 2) #360 Internal code structure changes to make the Node class
+ calls() method more intuitive and consistent with other methods. A
+ side effect is that the OpenMP private list should no longer
+ contain any variables names that are not required (as this change
+ fixes that bug).
+
+ 3) #546 Bug fix for colouring when a kernel is passed an operator.
+ PSyclone was not generating the correct cell look-up when
+ colouring a loop containing a kernel call with an operator. i.e.
+ the PSy layer passed 'cell' to the kernel rather than
+ 'cmap(colour, cell)'.
+
+ 4) #542 generate correct OpenMP private list. This was actually
+ fixed by the changes made under #360 (change 2 above) so this
+ ticket only adds a test for this functionality.
+
+release 1.2.0
+
+ 1) #415 Support for parsing stencil information supplied in
+ Dynamo 0.3 kernel meta-data.
+
+ 2) #367 Make gocean python conform to pep8
+
+ 3) #230 Add documentation for the GOcean1.0 API
+
+ 4) #379 Make f2pygen and its tests conform to pep8, pylint and
+ improve the test coverage
+
+ 5) #429 Support for read-only scalar arguments in the 0.3
+ Dynamo API.
+
+ 6) #420 Support for inter-invoke halo calls and logic (for
+ distributed memory)
+
+ 7) #514 Fix for a bug in the if test round a halo_exchange call
+ in which arrays (vectors) did not have their index added.
+
+ 8) #521 Fix bugs in the logic for adding halo exchange calls before
+ loops.
+
+ 9) #532 Fix in the logic for adding halo exchange calls before
+ loops which recognises that operators do not have halos.
+
+ 10) #467 Support transformations in Distributed Memory. Enable the use
+ of OpenMP (and other transformations) with DM. Note that PSyclone
+ currently does not support halo swaps inside OpenMP parallel regions.
+
+release 1.1.0
+
+ 1) #263 OpenMP (including colouring) supported for the 0.3 Dynamo
+ API. Parser fails gracefully if Kernel-code parsing is
+ unsuccessful.
+
+ 2) #292 Add support for user-supplied transformations/optimisations
+ via a script passed to the generate function/command-line. This
+ enables the use of transformations within a build system.
+
+ 3) #292 Documentation for Algorithm, PSy and Kernel layers as well
+ as for transformations has been added. Documentation on using
+ transformation scripts then added on top.
+
+ 4) #292 Dynamo example scripts fixed.
+
+ 5) #258 First version of kernel-stub generator added. Given kernel
+ metadata as input, PSyclone has enough information to be able to
+ generate stub kernel code with the appropriate arguments and
+ argument ordering.
+
+ 6) #364 OpenMP fix for update 1) (ticket #263). 'ncolour' variable
+ now declared. New dynamo/eg3 example added to demonstrate the use
+ of transformation scripts introduced in update 2) (ticket #292).
+
+ 7) #361 Minor updates to the kernel-stub generator. Remove spurious
+ dir() command, remove additional '_code' from kernel subroutine name
+ and add 'implicit none' to the generated subroutine.
+
+ 8) #363 Update to the generator script to catch any run-time
+ errors generated by the user-supplied optimisation script. Such
+ errors are then reported in a user-friendly fashion to aid
+ debugging.
+
+ 9) #272 Added support for explicit loop bounds in the PSy layer
+ for the GOcean1.0 API. The Cray compiler makes use of this
+ information to generate more efficient code. This option can be
+ switched on or off using a transformation.
+
+ 10) Support the module in-lining of kernel subroutines. i.e.
+ kernel subroutines can be moved into the same module that contains
+ the invoke from which they are called. This functionality is
+ implemented as a new transformation, 'KernelModuleInlineTrans'.
+ psyGen.py has also been made fully pep8 compliant.
+
+ 11) #347 Add an option to limit the length of lines of fortran
+ code that PSyclone generates to 132 chars. This is the length
+ mandated by the Fortran free-format standard and is rigorously
+ enforced by some compilers (e.g. PGI). As a part of this change
+ PSyclone now checks the length of all lines of source code in
+ the Algorithm and Kernel files that it parses.
+
+ 12) #395 Add support for new function spaces: Wtheta, W2H and W2V.
+
+ 13) #396 and #397 Make all tests work with Python 2.6. Previously
+ two of the tests only worked in Python 2.7 and a third caused
+ resource issues when using deepcopy.
+
+ 14) #355 Support operators where the "to" and "from" function
+ spaces are different.
+
+release 1.0.2
+
+ 1) #299 temporary boundary condition
+ support. matrix_vector_kernel_mm now uses enforce_bc_code rather
+ than enforce_boundary_w2 as the latter is no longer used.
+
+release 1.0.1
+
+ 1) #299 temporary boundary condition support. removed the
+ hardwired code and associated test that added an additional
+ boundary condition array to ru_kernel as this kernel is no longer
+ required. Added support for generating a boundary condition array
+ in the PSy layer and passing it into the enforce_bc_kernel
+ kernel. enforce_bc_kernel should be placed by the algorithm
+ developer to enforce boundary conditions.
+
+release 1.0.0
diff --git a/contributions/install b/contributions/install
new file mode 100755
index 0000000..0a8c318
--- /dev/null
+++ b/contributions/install
@@ -0,0 +1,76 @@
+#!/usr/bin/env python2.7
+# -*- coding: utf-8 -*-
+##############################################################################
+# (c) The copyright relating to this work is owned jointly by the Crown,
+# Met Office and NERC 2014.
+# However, it has been created with the help of the GungHo Consortium,
+# whose members are identified at https://puma.nerc.ac.uk/trac/GungHo/wiki
... 68147 lines suppressed ...
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/psyclone.git
More information about the Python-modules-commits
mailing list