User Guide# Introduction Getting Going Installation Configuration Running PSyclone The psyclone command Basic Use Transformation script Fortran INCLUDE Files and Modules Fortran line length Fortran Format Option Backend Options Automatic Profiling Instrumentation Using PSyclone for PSyKAL DSLs Configuration Options Code Transformation PSyclone User Scripts Script Global Variables PSyKAl algorithm code transformations The PSyIR PSyIR Nodes Available language-level nodes Text Representation Tree Navigation DataTypes Symbols and Symbol Tables Creating PSyIR Comparing PSyIR nodes Modifying the PSyIR Transformations Finding transformations Validating and Applying transformations Available transformations Algorithm-layer Kernels OpenMP OpenCL OpenACC SIR Code Instrumentation The PSyData Transformations Read-Only Verification Value Range Check Integrating PSyData Libraries into the LFRic Build Environment Profiling Interface to Third Party Profiling Tools Required Modifications to the Program Profiling Command-Line Options Profiling in Scripts - ProfileTrans Naming Profiling Regions PSy Kernel Extractor (PSyKE) Introduction Usage Extraction Libraries Driver Summary Statistics PSyData Libraries Available libraries Dependencies Compilation PSyKAl DSLs Introduction to PSyKAl Usage Algorithm layer Kernel layer Built-ins PSy layer The LFRic DSL Algorithm Algorithm Argument Types Mixed Precision PSy-layer Kernel Built-ins Boundary Conditions Conventions Configuration Transformations The GOcean DSL Introduction The GOcean Infrastructure Library - dl_esm_inf Algorithm Kernel Built-ins Conventions Configuration Transformations Utilities PSyclone Kernel Tools The psyclone-kern Command Kernel-stub Generator Algorithm Generator PSyAD The psyad Command Implementation