  We present here Multem 3, an updated and revised version of Multem 2, which
syntax has been upgraded to Fortran 2018, with the source code being divided
into modules. Multem 3 is equipped with LAPACK, the state-of-the art Faddeeva
complex error function routine, and the Bessel function package AMOS. The
amendments significantly improve both the speed, convergence, and precision of
Multem 2. Increased stability allows to freely increase the cut-off value LMAX
on the number of spherical vector wave functions and the cut-off value RMAX
controlling the maximal length of reciprocal vectors taken into consideration.
An immediate bonus is that Multem 3 can be reliably used to describe bound
states in the continuum (BICs). To ensure convergence of the layer coupling
scheme, it appears that appreciably larger values of convergence paramaters
LMAX and RMAX are required than those reported in numerous published work in
the past using Multem 2. We hope that Multem 3 will become a reliable and fast
alternative to generic commercial software, such as COMSOL Multiphysics, CST
Microwave Studio, or Ansys HFSS, and that it will become the code of choice for
various optimization tasks for a large number of research groups. The
improvements concern the core part of Multem 2, which is common to the
extensions of Multem 2 for acoustic and elastic multiple scattering and to the
original layer-Kohn-Korringa-Rostocker (LKKR) code. Therefore, the enhancements
presented here can be readily applied to the above codes as well.
