JU Home Page
COMPACT VIEW
EXPANDED VIEW

FORTRAN/C programming

Building a Fortran-based CLI (Command Line Interface)

Read arguments from a command-line execution of a Fortran program using Unix-like syntax with KRACKEN(3f). Alternatively, read NAMELIST input directly from the command line. Allow basic Fortran expressions as input values. Add conditional selection of input lines using if/else/elseif/endif logic. Interactive programs can use command line recall and editting to make repeating commands and correcting entries easy. Call a simple C routine for most Unix systems that immediately reads a single character keystroke from the keyboard. Use a variety of routines to make generating journal files, log files, and attention-getting messages such as large large block letters and ASCII art.

VOGLE graphics

modified VOGLE graphics library (Fortran and C)

VOGLE graphics library

Draw vector graphics from C and Fortran programs to a variety of output devices (X11, PostScript, Adobe PDF, HTML5 canvas, SVG, VML...). Basic three-dimensional line drawing is available; but this is primarily a two-dimensional library.

CALCOMP library

VOGLE graphics library

CALCOMP library that calls VOGLE library(Fortran)

NUMDIFF: finding numeric differences in files

Simple utilities to detect numeric differences in values when porting to new compilers

UFPP: Lahey-style Fortran pre-processor ufpp(1f)

A simple preprocessor for Fortran source code written in Fortran. It takes directives very similar to the preprocessor fpp(1) that used to come with the Lahey preprocessor. It is not compatible with cpp(1).

Fortran(2003) interface to the ncurses(3c) library

A Fortran module and a few related files create an interface from Fortran to the C ncurses(3c) library; allowing Fortran programs to read function keys and characters one at a time and to control the characters on the screen on a character-cell by character-cell basis.

Miscellaneous Examples







cprintenv(1c) prints environmental table

I needed a command that would print the current environmental table as setenv(1) commands so it could easily be read back into csh(1) and tcsh(1) shells.

Txedit(1c) look-alike of NOS XEDIT line editor

This is a line editor in C reminiscent of the CDC NOS XEDIT editor; with extensions

MATLAB88(1f) - an array input and linear algebra package (circa 1988)

Long long ago, a Fortran program allowed text input using a matrix-algebra like syntax; it was called MATLAB. This routine is nothing like the commercial application that has evolved with GUI interfaces and full-featured interpreters and sophisticated graphics; but it is still useful.

COMING ATTRACTIONS

As permitted, other routines may appear here someday ...



   expression parsing functions

   standard self-describing files
   using SQLLite (databases), HDF5,
   XML, XDR routines, and other formats.

   checksums

   encryption

   fortran shells

   standard ways to build many libraries

   GUI building (calling fortran from
   tcl/tk, curses, GLUT, X11 ...)

   high-level graphics routines that call
   the VOGLE graphics primitives

   examples of newer features of Fortran

   fortran-based regular expression routines

   hash tables

   advice about floating point

   steam table library ??

   traverse an XML file with "Unix" commands

SEE ALSO:(External Links)

Whatever happened to ???

Whatever happened to the Fortran(Ratfor) tools ; the RIM database; ...

Why didn't I know about this?

What you should know about
















            _                  _           _    ____                                    _                _
 _   _ _ __| |__   __ _ _ __  (_) ___  ___| |_ / __ \  ___ ___  _ __ ___   ___ __ _ ___| |_   _ __   ___| |_
| | | | '__| '_ \ / _` | '_ \ | |/ _ \/ __| __/ / _` |/ __/ _ \| '_ ` _ \ / __/ _` / __| __| | '_ \ / _ \ __|
| |_| | |  | |_) | (_| | | | || | (_) \__ \ || | (_| | (_| (_) | | | | | | (_| (_| \__ \ |_ _| | | |  __/ |_
 \__,_|_|  |_.__/ \__,_|_| |_|/ |\___/|___/\__\ \__,_|\___\___/|_| |_| |_|\___\__,_|___/\__(_)_| |_|\___|\__|
                            |__/               \____/








Since Jan 15th, 2016