I am working with the ParallelIO library, a free software library for high performance computing (HPC) I/O with a netCDF-like API.
In some fortran code I have a file called piolib_mod.F90 that starts:
!>
!! @file
!! @brief Initialization Routines for PIO
#define __PIO_FILE__ "piolib_mod.F90"
This produces a doxygen warning:
/home/ed/tmp/ParallelIO/src/flib/piolib_mod.F90:4: warning: Member __PIO_FILE__ (macro definition) of file piolib_mod.F90 is not documented.
But no matter what I do, I can't doxygen to accept my definition of the documentation for this macro. I have tried:
!> for debugging
#define __PIO_FILE__ "piolib_mod.f90"
also:
!> @def __PIO_FILE__ for debugging
#define __PIO_FILE__ "piolib_mod.f90"
I have tried to exclude this line from doxygen processing:
!> @cond exclude
#define __PIO_FILE__ 'piodarray'
!> @endcond
But that does not work either.
Doxygen may be confused by the concept of a pre-processor macro in a Fortran file, but that's just the 21st Century for you, expensive supercomputers and programming languages from the 1960s.
How do I document this pre-processor define with doxygen?