File: x07f.f90

package info (click to toggle)
plplot 5.15.0%2Bdfsg-19
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 31,312 kB
  • sloc: ansic: 79,707; xml: 28,583; cpp: 20,033; ada: 19,456; tcl: 12,081; f90: 11,431; ml: 7,276; java: 6,863; python: 6,792; sh: 3,274; perl: 828; lisp: 75; makefile: 50; sed: 34; fortran: 5
file content (112 lines) | stat: -rw-r--r-- 3,730 bytes parent folder | download | duplicates (4)
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