PALM overview
group
Institute of Meteorology and Climatology, Leibniz Universität Hannover
PALM overview
Introduction
First version 1997, continuously developed since then.
Written in FORTRAN 95 / 2003 / 2008.
Very high performance and scalability on all state-of-the-art parallel architectures (see
lecture “Code parallelization”).
PALM code is under the GNU General Public License v3.
PALM project is managed under gitlab (see [Link] ).
Detailed online documentation under [Link]
Many new features have been added since then (see lecture “Current developments”).
PALM 6.0 has been released Oct 2018, described in a special issue in Geoscientific
Model Development (see [Link]
Current version used in this webinar is PALM release 23.04 (see
[Link]
Further extensions are planned for the next years.
group PALM seminar Page 2
PALM overview
Features (I)
Physics / Numerics
Cyclic horizontal boundary conditions but also non-cyclic boundary conditions along x or y
available.
Turbulent inflow is realized for non-cyclic boundary conditions.
Complex topography / 3d-buildings are realized.
A Lagrangian particle model is embedded (can be used to replace bulk cloud physics two-
moment scheme).
Ocean mode is available, i.e. salinity equation and equation of state for seawater is
included; coupled ocean-atmosphere simulations are possible.
Coupling to larger scale models implemented using large scale advection and nudging.
Various surface models are included.
Soil and radiation model available.
LES-LES-nesting and nesting to meso-scale models is implemented.
Gas phase chemistry and aerosol model available.
Wind turbine model for simulating energy output and wakes.
RANS and DNS mode is included.
Multi-agent system for simulating effects on population groups.
group PALM seminar Page 3
PALM overview
Features (II)
Technical features
Scripts allow for very comfortable operation of the model.
Model can be adapted for any kind of (Unix) system including batch operation by simply
adjusting a configuration file.
Batch jobs and job chains (restart mechanism) can be automatically created.
Runs are controlled via simple NAMELIST parameter file and in case of complex
surfaces by driver files in NetCDF format.
Error messages inform in case of parameter inconsistencies or other problems that are
detected during runtime.
Standard data analysis is done online during the simulation.
All output is in standard NetCDF data format.
A user-interface allows for easy code extensions by the user.
Code is highly optimized for all state-of-the-art computer architectures and allows for
very huge applications (currently 50003 gridpoints).
group PALM seminar Page 4
PALM overview
Some examples of applications at IMUK (LUH)
Roll Convection
Dust Devils Urban Canopy Flow
Canopy Flow
Wind turbine wakes Gusts at Airports
group PALM seminar Page 5
PALM overview
External users / collaborations
ForWind (University of Oldenburg, Germany)
DWD (German Weather Service)
KIT (Karlsruhe Institute of Technology, Germany)
University of Bergen (Bergen, Norway)
FMI (Finnish Meteorological Institute, Helsinki, Finland)
Department of Atmospheric Sciences, Yonsei University (Seoul, Korea)
School of Earth and Environmental Science, Seoul National University (Seoul,
Korea)
Dept. of Intl. Development Eng., Tokyo Institute of Technology (Tokyo, Japan)
Dept. of Earth and Environment, Boston University (USA)
INPE/CPTEC Instituto Nacional de Pesquisas Espaciais (Brazil)
Chinese University of Hong Kong, School of Architecture (Hong Kong)
Institute of Physical Oceanography, Zhejiang University (China)
…
Currently more than 800 registered users on our trac-server.
group PALM seminar Page 6
PALM overview
Areas of application (external users)
Interaction of boundary layer turbulence with wind turbines / wind farm wakes.
Improvement of turbulence parameterizations.
Atmosphere-ocean coupling.
Ocean mixed layer.
Turbulence / dispersion in the urban canopy layer.
…
group PALM seminar Page 7
PALM overview
PALM components
Beside the model‘s FORTRAN code, the PALM download contains a variety of further
components / files, organized in folders. The subfolders you see below can be found in
folder palm_model_system/packages/palm/model
readme-file containing information about PALM
[Link]
README.
installation and changes included in the release
bin shell scripts for compiling, testing, and running PALM
palm_model_system
src PALM source code + Makefile
input files and various output files to check
tests
and verify the PALM installation (used by our testserver)
example configuration files for various computers /
share/config
operating systems
lib libraries shipped with PALM (e.g. RRTMG)
Please never modify or delete files in palm_model_system and its subfolders!
group PALM seminar Page 8
PALM overview
Recommended structure of folders for PALM installation
You can freely configure the folder structure in configuration files!
parameter files for steering,
contains job protocol JOBS/
output data, code extensions
files from batch jobs from user (user interface)
job_queue/
$HOME/ palm/ current_version/ palm_model_system PALM software (FORTRAN
code, scripts, etc.)
working directory
of PALM user precompiled routines,
MAKE_DEPOSITORY_.../ generated by
palmbuild
... compiled with
MAKE_DEPOSITORY_.../ different options (e.g.
older_version/ for debugging)
older PALM version, if needed
contains a temporary folder created optional
/fast_io_catalog/
(by palmrun) for each PALM run
automatically generated
contains large binary data files created
/fast_io_catalog/ by PALM and required e.g. for restarts created by user
group PALM seminar Page 9
PALM overview
Main modes of operation
Interactive mode
PALM is run in interactive shell (terminal session).
CPU time as well as number of processors for interactive runs is limited on many
systems.
Restart runs (job chain) are not possible.
Only requires appropriate settings in the configuration file.
Batch mode (running batch jobs)
Requires a batch queueing system (e.g. SLURM, PBS, Loadleveler, etc.) on the
computer in use.
Requires additional settings (for batch directives) in the configuration file.
Running batch jobs on remote computers
Requires a batch queueing system on the remote computer.
Requires ssh/scp access of the remote computer (in both directions “local <->
remote“), fixed IP-adresses for local and remote computer are required too.
Running job chains automatically
Requires a batch queueing system (+ ssh/scp access).
group PALM seminar Page 10
PALM overview
Scripts for operating
PALM is operated mainly by one script, named palmrun. palmrun itself calls
palmbuild to compile for the respective runs, if required.
palmrun
script for running PALM (interactive or batch)
palmbuild
script for generating a pre-compiled PALM version (object files)
helper programs
small FORTRAN programs, needed e.g. for collecting output data or finding grid setups
(combine_plot_fields, palm_gf, etc.)
Location of scripts: ~/palm/current_version/bin
The scripts have a large number of options. A short summary of available options
For a detailed palmrun documentation see
can be listed by giving the question mark as the only option, i.e.. palmrun ?
[Link]
group PALM seminar Page 11
PALM overview
PALM configuration file
palmrun and palmbuild require a lot of settings (which depend on the respective
computer system used), to be given in configuration files with default names
.[Link].<configuration_identifier> and .[Link]
Main purposes of the configuration files:
setting of compiler options
setting of preprocessor switches
setting of paths for libraries (e.g. NetCDF library)
setting of environment variables
setting of UNIX-commands to be executed before or after PALM execution
handling of input/output files by file connection statements
Default position
$HOME/ palm/ current_version/
for .[Link].<ci>:
A default version of this
file .[Link] can be found palm_model_system/packages/palm/model/share/config
in:
See [Link] and [Link] for
detailed descriptions.
group PALM seminar Page 12
PALM overview
Further requirements for running PALM
The following things are not provided with the download!
FORTRAN compiler
MPI-library (must fit to the compiler!), MPI-3 is required
optional FFTW-library (see [Link]) for very fast FFT
NetCDF-library (see [Link]/software/netcdf/), required for data
output (must fit to compiler and MPI-library!)
graphics software capable to read NetCDF data format (e.g. ncview, NCL, IDL,
ferret)
Batch-system
Python 3, required for the installer and several helper scripts
group PALM seminar Page 13