  This paper describes neural-fortran, a parallel Fortran framework for neural
networks and deep learning. It features a simple interface to construct
feed-forward neural networks of arbitrary structure and size, several
activation functions, and stochastic gradient descent as the default
optimization algorithm. Neural-fortran also leverages the Fortran 2018 standard
collective subroutines to achieve data-based parallelism on shared- or
distributed-memory machines. First, I describe the implementation of neural
networks with Fortran derived types, whole-array arithmetic, and collective sum
and broadcast operations to achieve parallelism. Second, I demonstrate the use
of neural-fortran in an example of recognizing hand-written digits from images.
Finally, I evaluate the computational performance in both serial and parallel
modes. Ease of use and computational performance are similar to an existing
popular machine learning framework, making neural-fortran a viable candidate
for further development and use in production.
