mpgrafic NEWS                                         -*- outline -*-

* Main changes in releases 0.3.19 (2020-08-01) [alpha]

Fix debian gcc-10 compile error related to single versus
double precision routines. Allow an environment variable
HAVE_OPENMPI to be set to 1 for the regression test
to be executed on some types of non-debian systems.

* Main changes in releases 0.3.18 (2019-01-17) [alpha]

Minor change that should fix LFS safety in i386 and other 32-bit
architectures.

* Main changes in releases 0.3.17 (2019-01-16) [alpha]

Allow reading parameters from input file instead of from
standard input.

* Main changes in releases 0.3.16 (2018-12-23) [alpha]

Minor portability and documentation fixes. AX_MPI is now in
an m4/ subdirectory instead in aclocal.m4 which can get
automatically recreated; I spent a long time reading about
LFS support and ended up doing a commit and then reverting
most of it - what remains is to include config.h in the
src/*.c files.

* Main changes in releases 0.3.1[345] (2017-08-18) [alpha]

More careful usage of the recommended "use mpi_f08": mpi_f08
preprocessor macro test added for "use mpi_f08" in .f90 files,
with fallback to "include 'mpif.h'".  Integer bit-length
consistency: grafic_io.f90: length now declared as C type
(c_size_t) since size_t can be 32-bit even on 64-bit machines.
The openmpi option --allow-run-as-root for automated testing
using regression-test-0.3.7.9.sh is now set directly as an
option rather than as an environment variable, since it
appears to be ignored by mpirun in the latter case.

* Main changes in release 0.3.12 (2017-08-14) [alpha]

Bug fix in parallel_io.c: do not write null to unallocated
location (fortran vs C string conversion; bug present since
v0.2). The test script regression-test-0.3.7.9.sh
has been updated to set the MCA plm_rsh_agent to /bin/false,
since testing mpi over ssh has never been desired.
The header mpif.h has been upgraded to
"use mpi_f08" as per MPI recommendations
(see 17.1.1 of the MPI 3.0 standard -
http://mpi-forum.org/docs/mpi-3.0/mpi30-report.pdf)
in multiple files, with downgrading of MaxRandNumStreams to int32_t,
and hardcoding to (c_|)int64_t.

* Main changes in release 0.3.11 (2017-07-30) [alpha]

LFS: AC_SYS_LARGEFILE added to configure.ac, but int64_t
retained in parallel_io.c rather than replacing it by off_t,
because ISO C binding (c_off_t) does not seem to be standard;
minor tidying in response to some compiler warnings;
added --enable-devmode option for ./configure for developers.

* Main changes in release 0.3.10 (2017-01-28) [alpha]

Debian bug #851918 for (at least) the s390x architecture
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=851918
appears to be a problem between fftw2 and openmpi, related
to the preprocessor macros MPI_COMM_F2C and FFTW_MPI_COMM_F2C,
which are intended to provide implementation-independent
conversion from fortran to C for MPI and fftw/MPI purposes.
On s390x (at least), this has the bug indicated above -
mpgrafic fails with MPI_Comm_dup reporting a fatal error.

Since mpgrafic does not require a general fftw2/openmpi
bux fix - it is a small program with only a few calls
to fftw2 - a wrapper to `rfftw3d_mpi_create_plan', the
only function subject to this bug and needed by mpgrafic,
appears to solve this bug from mpgrafic's point of view.
The two wrapper files are src/rfftw3d_mpi_create_plan_c_wrap.c
and src/wrap_rfftw3d_mod.f90. ISO_C_binding is used
to reduce the chance of future portability errors.

* Main changes in release 0.3.9 (2017-01-22) [alpha]

Previous versions stored the input `iseed' and the array `seeds'
(generated by GSL using MT19937) as fortran `integer', which
typically can be 16-bit, and on some machines might be 8-bit.
That allowed at most 65536 distinct `seeds', so on a 10,000-core
system, repeat elements of `seeds' would be extremely likely.
In 0.3.9, the C long type is used, giving about 4e9 possible
seeds. MaxRandNumStreams .eq. MaxParallelism in random.f90 limits
the stored number of seeds.

One minor reduction in printed float precision should enable the
regression test (updated) to succeed on an i386 machine.

* Main changes in release 0.3.8 (2017-01-22) [alpha]

Portability: reproducible lower precision printed floats;
iso_C_binding; avoid implementation-dependent integer sizes;
avoid implementation-dependent fortran `kind' values.
The portability improvements in 0.3.8 are only intended
to cover some of the most likely sources of portability errors,
and are unlikley to be complete.

* Main changes in release 0.3.7 (2017-01-12) [alpha]

A code regression test was added. Running this on future versions
with `make check' should detect whether code changes have caused
scientifically significant changes in the calculations.

* Main changes in release 0.3.4 (2017-01-05) [alpha]

Debianisation - a debian directory for preparing debian packets
is available in the debian downstream version 0.3.4-1 at
https://anonscm.debian.org/cgit/debian-astro/packages/mpgrafic.git/
