1. Introductory notes:
   - In Fortran code, GSL_* must be replaced by FGSL_* for each API call, abstract data type, module variables and parameters (with exception of the M_* mathematical constants)
   - Some names were changed due to UC/LC aliasing. See the documentation chapter on special functions for details.
   - Intrinsic type matching:
     1. real(fgsl_double) is used for double precision values
     2. real(fgsl_float) is used for single precision values
     3. integer(fgsl_int) for integer
     4. integer(fgsl_long) for long integer
     5. integer(fgsl_size_t) for size_t integer
     6. complex(fgsl_double_complex) for gsl_complex
     7. character(fgsl_char) for characters
     8. no value attributes and mostly no pointers in Fortran calls
     9. unsigned int must be converted to integer(fgsl_long).
     10. char * results are converted to fixed length strings. Use TRIM.
2. Additional routines:
   - Generic interface fgsl_well_defined for checking status of FGSL objects (which are typically opaque).
   - See api/array.finc for array alignment routines.
   - See api/math.finc for function object constructors.
   - See api/io.finc for I/O related add-ons.
3. Structure of the documentation:
   - type definitions are in the fgsl section of the Modules menu item
   - all API routines are available via the Files menu item
   - additional remarks on the various files are available via the Related Pages menu item
4. Only interfaces from the GSL manual are implemented. The C include files may contain more stuff which may only be meant for internal use, or is not officially documented.
5. Inlining of GSL routines is not possible.
6. Macros are not supported:
   - macro values are replicated as parameters
   - Inf/Nan need to use IEEE_VALUE (if available)