mPlot.f90

Package of f90 MATLAB-style callable routines for plain
graphics and few calling examples. RGB color scheme used (True
Color mode supported). Compile in DVF (5.x or higher) environment
(e.g. as Quick Win Appl.)
Last modified: 3/24/1999
Bugs to Valery E.Grikurov: grikurov@mph.phys.spbu.ru
Free for any use. However, $5 check will
be appreciated and supports further developments
Thanks, Valery
Dr Valery E. Grikurov
Dept. Math. & Comp.Phys., Inst. on Phys.,St.Petersburg
Univ.,Uljanovskaia 1, Petrodvoretz, 198504 Russia
grikurov@mph.phys.spbu.ru
Valery@VG3224.spb.edu
http://mph.phys.spbu.ru/~grikurov
fax : 812-428-7240
Download
mPlot.f90

Package
guidelines

GLOBAL PACKAGE
VARIABLES
integer(4), parameter :: DW = 33
Descriptor of Dialog Window, may be any
integer
larger the number of "open"
statements in your code
integer(4) nfig
Graph windows counte
integer(4) bkclr /0/
Initial background color (0 - black, 1
- white)
logical(4) ifhold /.FALSE./
.TRUE. if hold is on, .FALSE. otherwise
logical(4) ifgrid /.FALSE./
.TRUE. if grid is on, .FALSE. otherwise
logical(4) ifaxis /.TRUE./
.TRUE. for default axis behavior,
.FALSE. otherwise
integer(4) dummy
Dummy integer

USER-FRIENDLY ROUTINES
subroutine axis(limits,drawing)
real(4),
optional :: limits(4)
integer(4), optional :: drawing(2)
Default axis behaviour is as follows:
1) limits set to data range
2) drawing of axis with reasonable
number of ticks
call axis( (/x1,x2,y1,y2/) ) set
axis limits to [x1,x2], [y1,y2] unless x1.ne.x2 and/or
y1.ne.y2, while x1.eq.x2 and/or y1.eq.y2 set limits to data
range
call axis( (/x1,x2,y1,y2/), (/ 0,
0/) ) is equivalent to previous line
call axis( (/x1,x2,y1,y2/), (/ 1,
1/) ) set limits but suppress axis drawing
call axis( (/x1,x2,y1,y2/),
(/-1,-1/) ) set limits but suppress ticks
call axis() restores axis
behavior to default
WARNING: use "axis"
before calling plot
subroutine delete(handle)
integer(4)
handle
Same as close(handle)
subroutine figure(handle)
integer(4)
handle
Directs output to graph window
"handle"
subroutine hold(toggle)
character*(*),
optional :: toggle
Calling:
call hold('on') toggles hold to
'ON'
call hold('off') toggles hold to
'OFF'
call hold() displays hold status
subroutine grid(toggle)
character*(*),
optional :: toggle
Calling:
call grid('on') toggles grid to
'ON'
call grid('off') toggles grid to
'OFF'
call grid() displays grid status
subroutine legend(string,attr,pos)
character*(*)
string
character*(*) attr
integer(4), optional :: xy
Plots legend 'string' for line with
attribute 'attr'
If given, two-digits integer 'xy' moves
starting point of legend
from left-upper corner to
{(1+x)*X_shift, (1+y)*Y_shift},
where X_shift, Y_shift - some default
values
subroutine OpenDialogBox()
Opens text-dialog window with
descriptor DW (see above)
WARNING: any output to dialog box
suppress output to current graphic window
(known bug to be fix)
subroutine plot(x,y,attr)
real(8),
dimension(:) :: x
real(8), dimension(:), optional :: y
character*(*), optional :: attr
plots is MATLAB-style callable routine
for plane graphics
Only the following functionality of
MATLAB's plot is supported
-----------------------------------------------------------------
plot(x,y) plots vector y versus
vector x
plot(y) plots the columns of y
versus their index
Various line types, plot symbols and
colors may be obtained with plot(x,y,attr) where attr
is a character string made from one element from any or all
the following 3 columns:
| y yellow |
. point |
_ solid |
| m magenta |
o circle |
: dotted |
| c
cyan |
x
x-mark |
;
dash-dot |
| r
red |
+
plus |
-
dashed |
| g
green |
*
asterisk |
h
histogram |
| b
blue |
|
|
| w
white |
|
|
| k black |
|
|
For example, plot(x,y,'c+:')
plots a cyan dotted line with a plus at each data point; plot(x,y,'b*')
plots blue asterisk at each data point but does not draw any
line
subroutine title(string)
character*(*)
string
Print title "string"
subroutine xlabel(string)
character*(*)
string
Print X-caption "string"
subroutine ylabel(string)
character*(*)
string
Print Y-caption "string"
subroutine Wait()
Wait for user input into dialog window
subroutine whitebg()
Consequent calls of this routine
toggle background color from black to
white and vice versa

LOW-LEVEL ROUTINES
subroutine draw_ticks(x1,x2,y1,y2)
subroutine draw_axis(x1,x2,y1,y2)
integer(4) function limits_w(x1,y1,x2,y2)
function plot_mode(attr)
integer(4) function select_color(clr)
subroutine set_limits(xx,yy,x1,x2,y1,y2)
subroutine string_position(string,orient)
subroutine style_draw(j,n,xx,yy,ifstyle,attr)