subroutine grasol (otes18.f)
For a guide to the graphic prompter, see OTEQ/Displays.html
Example view
Call list parameters:
GRASOL
grasol(flz,el,m,n,in,type,rlo,rhi,ivss,qco,qclr,qstop,qgor,it,mess,unit)
FLZ -
I - flag array
EL - R(M,N,IN) - data array
M,N,IN - I,I,I - array size
and the part of EL to display
TYP - C*1 -
array type 'Z' or 'M'
RANGEL - R
- lower and
RANGEU - R
- upper limit, rounded please
IVSS -
I - -1: free range
+1: symmetric -RANGEL ... +RANGEL (RANGEU ignored)
0: show 0 .. RANGEL (RANGEU ignored)
QCO * L
- .true.: initialize graphic screen.
QCO is returned .false. if the graphic screen is
active at return time. Input / output.
QCLR -
L - clear screen before
display.
QSTOP *
L - returned:
.true. if the user enters `S´ at prompt.
QGRA_GO * L
- Prompting mode after screen is filled.
Is set .false. by entering `G´ at prompt (Go).
Is set .true. if `^R´ is pressed during screen
filling.
ITMSG * I
- input: a number to display as a comment.
output: Number entered by user after `I´ -key entered at
prompt
MSG -
C** - on-screen message. should not be longer than 70
chars.
UNITS - C*80
- metric unit for the data, e.g. `[m]´
A "tank-filling" percentage can be appended;
then the unit
must be delimited with `$´, and the
percentage is indicated
with a leading `%´ , e.g. `[m]$
%050´
The purple bar right above the array map then functions
as filling meter, e.g. to show where in a confined call loop
the display has been issued.
Entry calls:
(add `gotsal´ before `_´)
_2f (flz,el,eu,m,n,in,type,rlo,rhi,ivss,qtr2,qco,qclr,qstop,qgor,it,mess,units)
EL,EU - R -
two-components arrays (suggest ocean current) ...
QTR2 -
L - if enabled with entry _2f_Enable(.true.
if qtr2=.true.
Other parameters are the same as in the subroutine call.
_Activate_inkey(q) - deprecated
_Statusline(c) - text c
on the status line
_Isgn(i1,i2) -
store integer i2 at position i1
_Lsgn(i)
- store integer i
_Qclip(q)
- if .true., over-range values of EL will be shown with the
extreme but
normal colors. (By default they
are shown in special mixed colors
not in the legend bar.)
_Rvy(q)
- if .true., show y-axis with reversed labels
_Rvyax(q,i1,i2)
- like _Rvy, add i1, plot every i2'th label
_2f_Enable(q,r) - if
.true., enable 2-component mode; r is a
coordinate rotation angle.
(If e.g. the components are oriented toward
south-east and north-east,
use r=-45.0)
_corner(i,j) - sets
the lower corner i,j of the part of the array to display
_width(i,j)
- sets the usable screen
width (default is according to the actual
graphics mode).
_prompt_i(c) - c is the
prompting message appearing after `C´ has been pressed at the
graphics prompter.
enq_grasol(i,j,k,l,m)
- returns the currently displayed part of the array (i,j)
to (k,l),
m is colour box size.
_basebox(i) - sets
the basic size of the colour boxes.
_Subcolors(i) -
number of mixed colors for each pure color, 6 is maximum.
Default=5.
Additional subroutines in
otes18.f
Grasol_Ds
_Ds()
- s - display double-sized
_Vs(i)
- e - display custom-sized
times i
_Ss()
- e - display single-sized (default)
Grasol_End
_End(q1,q2)
- s - qco,qgra-go
Bar
Bar(i1,i2,i3)
- s - i1 is screen width in pxl's, i2 is
color-box size (usually 3)
i3 is returned:
length of bar (in pxl's)
Put_Field(...) - e - places a color box (integer
color code) at the indicated position
Paint-Field
Grasol_Fct
_Fct(r)
- s - display r*EL
Set_Grasol_Msg(c) -
e - set message MSG = c
Get_Grasol_Msg(c)
- e - get message MSG =
c
Functions:
Isgn_Grasol
Isgn_Grasol(i) - i -
returns the value stored at position i
Last_Isgn_Grasol
Last_Isgn_Grasol() - i - returns the highest position
used.
Lsgn_Grasol
Lsgn_Grasol()
- i - returns the value stored with
Grasol_Lsgn
Common areas:
common /cvmon/
modegrc,ixpcc,iypcc,iwxc,iwyc
common
/colors/
ivm,ksiz,icolor(0:15),ic1,ic2,iac1,iac2
- interacts with palette
sub's, util/afor/p/chpal.f
common
/cgraso/ factor,ksgn(10),lksgn,lsgn,ithalt,kount,maxkount
- proprietary to otes18.f
character csgn*64
common /ccgras/ csgn
- interacts with otes12.f
logical qsplash_on
real*8 dt_splashb, dt_splashe
common /csplash/
dt_splashb,dt_splashe,splashh
&,
isplash,jsplash,rsplash,qsplash_on -
interacts with otes12.f
Quotes:
otemt1.f
call
set_grasol_vmode (grasol_vmode)
call grasol_boxwidth
(grasol_basebox)
otes12.f
CALL GRASOL
(FLZ,EL,M,N,IN,'Z',RANGE,rdummy,ivss
&,
QCO,QCLR,QSTOP,Qgra_go
&,
ITMSG,'Elevation '//datim(:26),unita)
if (m.lt.160.and.n.lt.100)
call grasol_ds
call grasol_activate_inkey
(QInkey)
call grasol_statusline
(status_mess)
call grasol_isgn (1,nclc)
call grasol_end
(qco,qpgra_go)
call
grasol_activate_inkey (QInkey) !
QInkey=.false.
call grasol_clip
(index('yY',ans).gt.0)
call grasol_fct (1.0)
call grasol_vs (ksiz)
otes18.f
call grasol_end (qco,qgra_go)
call Grasol_Subcolors (ier)