LFRic
is the new weather and climate modelling system being developed by the
UK Met Office to replace the existing Unified Model (UM) in preparation for
exascale computing in the 2020s. LFRic
uses the GungHo dynamical core and runs
on a semi-structured cubed-sphere mesh.
The design of the supporting infrastructure follows object-oriented principles
to facilitate modularity and the use of external libraries. One of the guiding
design principles, imposed to promote performance portability, is
“separation of concerns” between the science code and parallel code. An
application called PSyclone
, developed at the STFC Hartree Centre, can generate
the parallel code enabling deployment of a single source science code onto
different machine architectures.
PSyclone
is a domain-specific compiler and source-to-source translator developed
for use in finite element, finite volume and finite difference codes. Using the
information from a supported API, PSyclone
generates code exploiting different
parallel programming models.
More detailed information about LFRic
and further references can be found in
Introduction to LFRic section.
Instructions on building and runing LFRic
in two container platforms,
Docker CE and
Singularity, can be found following the links below:
For more information on building the LFRic
Docker container please contact
Iva Kavcic, Met Office and
Luca Marsella, CSCS (mentor).
For more information on building the LFRic
Singularity container please contact
Simon Wilson, NCAS and
Luca Marsella, CSCS (mentor).
The LFRic
repository and the associated wiki are hosted at the Met Office
Science Repository Service (MOSRS).
The code is BSD-licensed, however browsing the
LFRic
wiki and
code repository requires
login access to MOSRS. Please contact the LFRic
team manager,
Steve Mullerworth, to be granted
access to the repository.
Once the access has been granted the LFRic
trunk can be checked out using
Subversion or
FCM version control systems. SVN
is
recommended for checking out the code for runs only as it is easier to install.
The current LFRic
trunk
(revision 21509)
is structured as follows:
-
bin
-Rose
executables; -
extra
- Utilities (e.g.job submission scripts); -
GPL
-Rose
source used inLFRic
; -
gungho
- Gungho dynamical core (one of the main science applications); -
infrastructure
-LFRic
infrastructure supporting science applications; -
jules
- Interface to the MO JULES land surface model; -
lfric_atm
-LFRic
atmospheric model (Gungho dynamical core, UM Physics, JULES and SOCRATES); -
mesh_tools
- Mesh generation tools; -
miniapps
- "Standalone" science and infrastructure applications (e.g. Gravity Wave application); -
socrates
- Interface to the MO radiative transfer ("Suite Of Community RAdiative Transfer codes") model; -
um_physics
- Interface to the MO UM Physics parameterisation schemes.
Both PSyclone
and the
Fortran parser it uses are open source and
hosted on GitHub.
Wikis are also hosted on GitHub:
The documentation is hosted on Read the Docs:
or PSyclone
and fparser
repositories for functionality merged to master but
not yet part of an official release.
LFRic
wiki hosts pages on the use of PSyclone
in LFRic
, starting with the
PSyclone
in LFRic
wiki.
As mentioned in the
LFRic Docker container
section, not every PSyclone
release works with every LFRic
trunk revision. The LFRic
- PSyclone
compatibility table is give in this
LFRic
wiki (requires login).