PSyclone
PSyclone copied to clipboard
Domain-specific compiler and code transformation system for Finite Difference/Volume/Element Earth-system models in Fortran
The gocean/eg2 example compiles and runs an OpenACC example. To return the final values from the accelerator an OpenACC directive is manually placed in the algorithm file. However, this directive...
`domain/gocean/*` would benefit from restructuring. It may be that we should try to mirror `psyir/*`. The structure decided here should also be used in `domain/lfric/*` (and perhaps domain/nemo?).
The directory layout of the internal infrastructure library and the LFRic infrastructure library is inconsistent, e.g. LFRic uses `field/field_mod.o`, `mesh/mesh.o` (and same for .mod files). Our copy of the infrastructure...
Currently the majority of the builtin tests are in `domain/lfric/lfric_builtins_test.py` and `domain/lfric/lfric_integer_builtins_test.py` but they are huge. Therefore a new `domain/lfric/builtins` directory has been created and tests for each builtin should...
While trying to enable my OpenMP taskloop/wait code to both generate and compile, I discovered that some of the examples code does not compile with only the `dl_esm_inf` dependency. The...
At this stage, an allocate statement becomes a code block. For the kernel-extraction driver creation, direct support for creating allocate statements would simplify the code (which currently parses a Fortran...
Quoting @arporter : > Following our discussion on Teams, I had a play and it seems the warnings are to do with classes contained within classes. Therefore, contrary to what...
A literal such as `1.0_wp` requires that the `wp` symbol is in scope. However, discovering that currently requires walking the tree to find all `Literal` instances and then checking whether...
There is a subtle bug in the HoistTrans that brings a statement outside of a loop when possible. The bug is when the statement accesses a symbol declared in the...