README file for DISPMODULE package

The files in the package are all contained in the same folder. They are the following:

FORTRAN 95 MODULES (THE "ALGORITHM IMPLEMENTATION"):
  dispmodule.f90            Principal module of package
  disp_i1mod.f90            Add-on module for 1-byte integers
  disp_i2mod.f90            Add-on module for 2-byte integers
  disp_i4mod.f90            Add-on module for 4-byte integers
  disp_i8mod.f90            Add-on module for 8-byte integers
  disp_l1mod.f90            Add-on module for 1-byte logicals
  disp_r16mod.f90           Add-on module for quad precision reals
  dispmodule_absoft.f90     Version of principal module for the Absoft compiler (see below)
  disp_i1mod_absoft.f90     Version of 1-byte integer module for the Absoft compiler (see below)

DOCUMENTATION
  dispmodule-userman.doc    User manual in Word 2003 format
  dispmodule-userman.pdf    User manual in pdf format
  dispmodule-userman.html   User manual in html
  dispmodule-userman.txt    User manual in plain text format
  dispmodule.doc            Paper submitted for final publication in TOMS in Sept. 2008
  changelog.txt		    Textfile detailing changes since version 0.00 (submitted to TOMS
                            originally)
  README                    This file

EXAMPLE DRIVER
  dispdemo.f90              Fortran 95 main program demonstrating usage
  expected-demo-output.txt  File with expected output from the demo program

TESTING MATERIAL AND SHELL SCRIPTS
  test_dispmodule.f90       Principal test. Checks correctness of principal module
  test_dispmodule_fpp.F90   Checks correctness of add-on modules (needs Fortran preprocessor)
  test_naninf.f90           Checks displaying of nans and infinities with non-ieee compilers
  test_naninf_ieee.f90      Checks displaying of nans and infinities on ieee supporting compilers
  test_naninf_mod.f90       Module used by test_naninf.f90 and test_naninf_ieee.f90
  mexdispdemo.f90           Program for testing displaying from a Matlab mex-file
  test-all.sh               A shell script that runs a full set of tests
  make-package.sh           Shell script that copies all files to dispmodule.tgz and
                            dispmodule-vX.XX.tgz

MAKEFILE ("COMMAND FILE")
  Makefile                  Makefile (gnu-make) for example driver and test programs.

EVIDENCE OF PORTABILITY AND CONFORMANCE TO FORTRAN 95 STANDARD
  portability-evidence.txt  Results of running test-all.sh on several different compiler/platform
                            combinations

POSSIBLE MAKE COMMANDS

  The default compiler name is f95 and the default platform is Unix/Linux. It is assumed that gnu
  make is used (on some systems one should use gmake instead of make). If this is the case one may
  issue:

    make demo               Compile, link and run example driver
    make check              Compile, link and run "principal test"
    make check-all-kinds    Compile, link and run checks of principal and add-on-modules
    make check-quadprec     Compile, link and run checks of quadruple precision display
    make check-naninf       Compile, link and run checks of nan and infinities display
    make check-naninf-ieee  Compile, link and run checks of nan and infinities display (ieee compilers)

  For other compilers or on Microsoft Windows with make installed (e.g. cygwin / mingw), one can
  issue, for example:

    make demo compiler=g95 platform=windows
    make check compiler=nag
    make check compiler=ifort

  It may also be necessary to edit the makefile. Apart from "compiler" and "platform" it is
  possible to set values of the makefile variables "optimize", "debug", "fflags" and more. See the
  makefile itself for more information and examples.

VERSION FOR ABSOFT COMPILER
  There are some bugs in the most recent version of the Absoft compiler (version 10.1) that prevent
  the standard version of dispmodule to work:
  
   (a) The function REAL cannot be used in specification expressions.
   (b) MERGE does not work for string arrays.
   (c) Specification functions cannot have assumed shape array arguments.
   (d) Integer*2, Integer*8 and Logical*1 have serious errors.

  In the files dispmodule_absoft.f90 and disp_i1mod_absoft.f90 these bugs have been programmed
  around, apart from (d). To circumvent (c) assumed size arrays have been used instead, but
  unfortunately the gfortran compiler is also buggy, and with that arguments to specification
  cannot be assumed size and must be assumed shape! (Bug-reports have been submitted for both
  compilers.) So unfortunately it is not possible to create a version of dispmodule compatible with
  all current compilers...
  
Author: Kristjan Jonasson, Dept. of Computer Science, University of Iceland (jonasson@hi.is).
