Release 2.5.0
What's Changed
LFRic and PSyAD
- Much renaming and moving of LFRic-related classes from 'dyn' to 'LFRic';
- PSy-layer generation now creates array pointers for use as kernel arguments (required for GPU compilation);
- Bug fix for missing maps in
enter datadirective; - Bug fixes for LFRic dependency analysis;
- PSyKE: use proper NetCDF variable names for array of fields;
- Metadata support for multi-precision kernels;
- Bug fix for PSy-layer generation involving CMA operators;
- All LFRic built-ins are now generated using PSyIR and lowering;
- Precision-map values moved to configuration file;
- New real-to-real conversion built-in;
- Generated PSyAD test harness now uses LFRic logging API;
- Bug fix for
setop_randomkernel.
NEMO
- Support for OpenMP tasking transformation and directive;
- Supported added for OMP/ACC Atomics and OMP Simd directives;
- Bug fix for
VERIFYintrinsic; - Fix
Ref2ArrayRangeTransbug withALLOCATEstatements; - Addition of NEMO OpenACC loops transformation script;
NemoKernnode removed;maxval2loopand atomics used to parallelise NEMOstpctl.f90;- Bug fix for
NemoOuterArrayRange2LoopTrans; - Bug fix for
process_nemo.pyscript: ensure-Iflags are aggregated.
PSyIR Improvements
- Add
Node.siblingsproperty; - Add
depthkwarg toNode.walk; - Add
Node.get_sibling_listsmethod; Node.origin_stringmethod to retrieve original filename and line number information;- Improvements to
ACCRoutineTrans.validate(); - Improvements to
maxval-,minval- andsum-to-code transformations; - Allow PSyIR backend consistency checks to be disabled;
- Improvements to
InlineTransandLoopFusionTrans; - Support for querying the datatype of a unary/binary operation;
UnknownTyperenamed toUnsupportedTypeandDeferredTypetoUnresolvedType;same_rangefunctionality moved toArrayMixinplus other improvements.
Fortran PSyIR Frontend
- Add support for
SAVEstatement andDO CONCURRENT; - Put WHEREs containing reductions into
CodeBlocksand fix non-unity lower-bound bug; - Bug fixes for handling of Fortran types;
- Catch unsupported statements in
implicit-partof parse tree.
Full Changelog: 2.4.0...2.5.0