[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