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)