M_fixedform simplifies creating a TUI (Terminal User Interface) with Ncurses from Fortran. That is it facilitates creating simple forms in terminal windows.
Requires the M_ncurses module and for the ncurses library to be available on the system.
The idea of M_fixedform was originally based on memories of the CDC NOS TDU Fortran interface and PDU and CCL where a simple text representation of a form plus some simple descriptions could be turned into a screen-mode interface from Fortran.
Surprisingly, long after creating this I found a manual for the TDU product from long ago. Although they are not all that similiar after all, M_fixedform and PDUs share an approach where a simple text template defines a more refined TUI:
A sample view of a M_fixedform input file as it would be rendered on the screen that also describes the input file format converted to HTML (using an included program) is in paper0001
M_fixedform(3f) is a beta release and so subject to change, but this has been stable for a long time.
Probably at least needs scrolling input fields and pull-down menus added.
M_fixedform(3f) - use M_ncurses to generated fixed forms (LICENSE:MIT)
use M_fixedform
git clone https://github.com/urbanjost/M_fixedform.git
cd M_fixedform/src
# change Makefile if not using one of the listed compilers
# for gfortran
make clean
make F90=gfortran gfortran
# for ifort
make clean
make F90=ifort ifort
# for nvfortran
make clean
make F90=nvfortran nvfortran
This will compile the Fortran module and basic example program that exercise the routine.
Alternatively, download the github repository and build it with fpm ( as described at Fortran Package Manager )
git clone https://github.com/urbanjost/M_fixedform.git
cd M_fixedform
fpm run "*"
fpm run --example "*"
fpm test
or just list it as a dependency in your fpm.toml project file.
[dependencies]
M_fixedform = { git = "https://github.com/urbanjost/M_fixedform.git" }
-
A single page that uses javascript to combine all the HTML descriptions of the man-pages is at BOOK_M_fixedform.
-
a simple index to the man-pages in HTML form for the routines and programs
-
There are man-pages in the repository download in the docs/ directory that may be installed on ULS (Unix-Like Systems).
-
CHANGELOG provides a history of significant changes