PSyclone
PSyclone copied to clipboard
Domain-specific compiler and code transformation system for Finite Difference/Volume/Element Earth-system models in Fortran
Currently the `validate` method of `ParallelLoopTrans` *always* uses the dependence analysis to check for loop-carried dependencies. However, there are occasions when a user will want to ignore the results of...
The "omp loop" construct that we use for OpenMP offloading is a feature introduced in OpenMP 5 and is not available on all the compilers I attempted to use for...
I tried using the NEMO OpenMP offloading script to insert OpenACC directive instead of OpenMP. It worked after fixing 2 issues: - The ACCLoopDirective does not have a collapse attribute...
At the moment Fortran intrinsics are replaced by equivalent code before being transformed to SIR. However, Dawn does support a number of intrinsics so these can be translated directly.
In PSyclone there is an assumption that the precision of a scalar reduction variable will always be the default value (currently r_def). This needs discussing with the Met Office to...
The expressions: `my_array = 2` `my_array(:,:) = 2` ``` do i = 1, size(my_array, 1) do j = 1, size(my_array, 2) my_array(i,j) = 2 end do end do ``` are...
j_ls_vorticity = wqp_h(qp1) * wqp_v(qp2) * & matmul( jac, ls_vorticity_at_quad )
There are multiple issues: 1) Can not find the name of the subroutine when doing the lookup in the kernel file (e.g. with mixed precision) 2) The validate_kernel_code_args() fails. For...
Metadata names and access patterns may need to be updated when transforming from tangent-linear metadata to adjoint metadata. When dealing with stencil codes further modications may be required. At the...
LFRic API currently only support read-only user-defined scalars. Global sums that PSyclone generates can be written to, but nothing user-defined. This issue adds support for writable scalars in LFRic API....