1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
! Displays the plotter symbols for PLSYM
!
! Copyright (C) 2004-2016 Alan W. Irwin
!
! This file is part of PLplot.
!
! PLplot is free software; you can redistribute it and/or modify
! it under the terms of the GNU Library General Public License as
! published by the Free Software Foundation; either version 2 of the
! License, or (at your option) any later version.
!
! PLplot is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU Library General Public License for more details.
!
! You should have received a copy of the GNU Library General Public
! License along with PLplot; if not, write to the Free Software
! Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
! N.B. the pl_test_flt parameter used in this code is only
! provided by the plplot module to allow convenient developer
! testing of either kind(1.0) or kind(1.0d0) floating-point
! precision regardless of the floating-point precision of the
! PLplot C libraries. We do not guarantee the value of this test
! parameter so it should not be used by users, and instead user
! code should replace the pl_test_flt parameter by whatever
! kind(1.0) or kind(1.0d0) precision is most convenient for them.
! For further details on floating-point precision issues please
! consult README_precision in this directory.
!
program x07f
use plplot
implicit none
character (len=4) :: text
integer :: i, j, k, l
integer, dimension(20) :: base = &
(/ 0, 100, 0, 100, 200, &
500, 600, 700, 800, 900, &
2000, 2100, 2200, 2300, 2400, &
2500, 2600, 2700, 2800, 2900 /)
integer :: plparseopts_rc
real(kind=pl_test_flt), dimension(1:1) :: x, y
! Process command-line arguments
plparseopts_rc = plparseopts(PL_PARSE_FULL)
if(plparseopts_rc .ne. 0) stop "plparseopts error"
! Full sized page for display
call plinit()
call plfontld(0)
do l=1,20
if (l==3) call plfontld(1)
call pladv(0)
call plcol0(2)
! Set up viewport and window
call plvpor(0.15_pl_test_flt, 0.95_pl_test_flt, 0.1_pl_test_flt, 0.9_pl_test_flt)
call plwind(0.0_pl_test_flt, 1.0_pl_test_flt, 0.0_pl_test_flt, 1.0_pl_test_flt)
! Draw the grid using plbox
call plbox('bcg', 0.1_pl_test_flt, 0,'bcg', 0.1_pl_test_flt, 0)
call plcol0(15)
! Write the digits below the frame
do i=0,9
write (text,'(i1)') i
call plmtex('b', 1.5_pl_test_flt, (0.1_pl_test_flt*i+0.05_pl_test_flt), &
0.5_pl_test_flt, text)
enddo
k=0
do i=0,9
! Write the digits to the left of the frame
write (text,'(i0)') base(l)+10*i
call plmtex('lv', 1.0_pl_test_flt, (0.95_pl_test_flt-0.1_pl_test_flt*i), &
1.0_pl_test_flt, text)
do j=0,9
x=0.1_pl_test_flt*j+0.05_pl_test_flt
y=0.95_pl_test_flt-0.1_pl_test_flt*i
! Display the symbols
call plsym(x,y,base(l)+k)
k=k+1
enddo
enddo
if (l<=2) then
call plmtex('t', 1.5_pl_test_flt, 0.5_pl_test_flt, 0.5_pl_test_flt, &
'PLplot Example 7 - PLSYM symbols (compact)')
else
call plmtex('t', 1.5_pl_test_flt, 0.5_pl_test_flt, 0.5_pl_test_flt, &
'PLplot Example 7 - PLSYM symbols (extended)')
endif
enddo
call plend
end program x07f
|