.. SPDX-FileCopyrightText: 1992-2026 NWO-I/SRON Space Research Organisation Netherlands .. .. SPDX-License-Identifier: CC-BY-4.0 .. _spexapi_plot: Plot functions ============== Plot """" Update plot:: call spex%plot(ier) Interface:: module subroutine spex_plot(this, ier) class(sapi), intent(inout) :: this integer,intent(out) :: ier end subroutine Plot ascdump """""""""""" Write plot data to QDP file:: call spex%plot_adump(qdpfile,overwrite) Interface:: module subroutine spex_plot_adump(this, qdpfile, overwrite) class(sapi), intent(inout) :: this character*(*), intent(in) :: qdpfile logical, intent(in) :: overwrite end subroutine Plot frame """""""""" New frame:: call spex%plot_frame_new() Interface:: module subroutine spex_plot_frame_new(this) class(sapi), intent(inout) :: this end subroutine Set current frame number to manipulate:: call spex%plot_frame_set(i,ier) Interface:: module subroutine spex_plot_frame_set(this, i, ier) class(sapi), intent(inout) :: this integer,intent(in) :: i integer,intent(out) :: ier end subroutine Delete frame (range):: call spex%plot_frame_del(i1,i2,ier) Interface:: module subroutine spex_plot_frame_del(this, i1, i2, ier) class(sapi), intent(inout) :: this integer,intent(in) :: i1 integer,intent(in) :: i2 integer,intent(out) :: ier end subroutine Plot devices """""""""""" Set plot device:: call spex%plot_device(dev,file,ier) Interface:: module subroutine spex_plot_device(this,dev,file,ier) class(sapi), intent(inout) :: this character*(*), intent(in) :: dev ! Device name character*(*), optional :: file ! Filename (optional, for PS output) integer, intent(out) :: ier end subroutine Close plot device:: call spex%plot_device_close(in,ier) Interface:: module subroutine spex_plot_device_close(this,in,ier) class(sapi), intent(inout) :: this integer, intent(in) :: in integer, intent(inout) :: ier end subroutine Plot properties """"""""""""""" Set font height:: call spex%plot_fh(fonth) Interface:: module subroutine spex_plot_set_fh(this,fonth) class(sapi), intent(inout) :: this real(dp), intent(in) :: fonth !! Font number (integer) end subroutine Set font type:: call spex%plot_font(ifont) Interface:: module subroutine spex_plot_set_font(this,ifont) class(sapi), intent(inout) :: this integer, intent(in) :: ifont !! Font number (integer) end subroutine Set linetype:: call spex%plot_lt(ltype) Interface:: module subroutine spex_plot_set_lt(this,ltype) class(sapi), intent(inout) :: this integer, intent(in) :: ltype !! Line type (integer) end subroutine Set linewidth:: call spex%plot_lw(lwidth) Interface:: module subroutine spex_plot_set_lw(this,lwidth) class(sapi), intent(inout) :: this integer, intent(in) :: lwidth !! Line type (integer) end subroutine Set plot orientation in hardcopy:: call spex%plot_hard(mode,ier) Interface:: module subroutine spex_plot_hard(this, mode, ier) class(sapi), intent(inout) :: this character*(*), intent(in) :: mode !! orientation (landscape/potrait) integer, intent(out) :: ier !! Error status end subroutine Plot information:: call spex%plot_info(ier) Interface:: module subroutine spex_plot_info(this, ier) class(sapi), intent(inout) :: this integer, intent(out) :: ier end subroutine Set axis to logarithmic/linear:: call spex%plot_log(axis,scale,inr1,inr2,ier) Interface:: module subroutine spex_plot_log(this, axis, scale, inr1, inr2, ier) class(sapi), intent(inout) :: this character(len=1), intent(in) :: axis !! axis character(len=3), intent(in) :: scale !! scaling type (lin/log) real(dp), intent(in) :: inr1 !! lower range of scaling real(dp), intent(in) :: inr2 !! upper range of scaling integer, intent(out) :: ier !! Error status end subroutine Plot rescale:: call spex%plot_rescale(raxis,inr1,inr2,ier) Interface:: module subroutine spex_plot_rescale(this, raxis, inr1, inr2, ier) class(sapi), intent(inout) :: this character*2, intent(in) :: raxis !! axis (rx,ry,rz) real(dp), intent(in) :: inr1 !! low end of range real(dp), intent(in) :: inr2 !! high end of range integer, intent(out) :: ier !! Error status end subroutine Plot set:: call spex%plot_set(all, in1, in2) Interface:: module subroutine spex_plot_set(this, all, in1, in2) class(sapi), intent(inout) :: this logical, intent(in) :: all integer, intent(in) :: in1,in2 end subroutine Plot new string and delete it:: call spex%plot_string_new(x,y,text) call spex%plot_string_del(i1,i2) call spex%plot_string(prop,i1,i2,boxprop,ini,inr,inl,ina,ier) Interfaces:: module subroutine spex_plot_string_new(this,x,y,text) class(sapi), intent(inout) :: this real(dp), intent(in) :: x !! X coordinate for the string real(dp), intent(in) :: y !! Y coordinate for the string character*(*), intent(in) :: text !! The string text end subroutine module subroutine spex_plot_string_del(this, i1, i2) class(sapi), intent(inout) :: this integer, intent(in) :: i1 !! Lower string ID integer, intent(in) :: i2 !! Upper string ID end subroutine module subroutine spex_plot_string(this, prop, i1, i2, boxprop, ini, inr, inl, ina, ier) class(sapi), intent(inout) :: this character*(*), intent(in) :: prop !! Property to change integer, intent(in) :: i1 !! Lower string number integer, intent(in) :: i2 !! Upper string number character*(*), intent(in) :: boxprop !! If property is 'box', select subproperty ('lt','lw','col') integer, intent(in) :: ini !! Integer input value real(dp), intent(in) :: inr !! Real input value logical, intent(in) :: inl !! Logical input value character*(*), intent(in) :: ina !! Text input value integer, intent(out) :: ier end subroutine Set plot type:: call spex%plot_type(ptype,ier) Interface:: module subroutine spex_plot_type(this, ptype, ier) class(sapi), intent(inout) :: this character*(*), intent(in) :: ptype !! The plot type integer, intent(out) :: ier !! Error status end subroutine Example:: call spex%plot_type('data',ier) Plot unit:: call spex%plot_unit(uaxis,raxis,runit,inr,ier) Interface:: module subroutine spex_plot_unit(this, uaxis, raxis, runit, inr, ier) class(sapi), intent(inout) :: this character*(*), intent(in) :: uaxis !! Unit axis (ux;uy;uz) character*(*), intent(in) :: raxis !! ref axis character*(*), intent(in), optional :: runit !! ref unit real, optional, intent(in) :: inr !! Unit energy integer, intent(out) :: ier !! Error status end subroutine Plot set viewport:: call spex%plot_view(iview,back_col,range_low,range_high,status,ier) Interface:: module subroutine spex_plot_set_view(this, iview, back_col, range_low, range_high, status, ier) class(sapi), intent(inout) :: this character*(*), intent(in) :: iview !! View property to change ('x', 'y', 'back', 'transp','default') integer, intent(in) :: back_col !! Background color number real(dp), intent(in) :: range_low !! Low end of range (for 'x' and 'y') real(dp), intent(in) :: range_high !! High end of range (for 'x' and 'y') logical, intent(in) :: status !! Switch transparency or default on or off. integer, intent(out) :: ier end subroutine