V3FIT
plotbox.f
1  SUBROUTINE graf0 (y,n,lx,ly,lt,runlbl)
2  IMPLICIT NONE
3  INTEGER n, i
4  REAL, DIMENSION(n), INTENT(in) :: y
5  REAL, DIMENSION(n) :: x
6  REAL :: ymin, ymax, xmin, xmax, siz
7  CHARACTER*(*) lx,ly,lt,runlbl
8  CALL pgsave
9  CALL pgbbuf
10  CALL pgsci(1)
11  xmin=1; xmax=n
12  DO i=1,n
13  x(i)=i
14  ENDDO
15  ymin=minval(y);ymax=maxval(y)
16  IF (ymax .EQ. ymin) THEN
17  IF (ymax .GT. 0.) ymin=.99*ymax
18  IF (ymax .LT. 0.) ymax=.99*ymin
19  IF (ymax .EQ. 0.) ymax=1.e-3;ymin=-1.e-3
20  ENDIF
21  CALL pgenv(minval(x),maxval(x),ymin,ymax,0,0)
22  CALL pglab(trim(lx),trim(ly),trim(lt))
23  CALL pgqch(siz)
24  CALL pgsch(siz-.5)
25  CALL pgmtxt('B',4.19,0.5,0.5,trim(runlbl))
26  CALL pgsch(siz)
27  CALL pgsci(2)
28  CALL pgslw(3)
29  CALL pgpt(n,x,y,2)
30  CALL pgebuf
31  CALL pgunsa
32  END SUBROUTINE graf0
33  SUBROUTINE graf1 (x,y,n,lx,ly,lt,runlbl)
34  IMPLICIT NONE
35  INTEGER n
36  REAL, DIMENSION(n), INTENT(in) :: x, y
37  REAL :: ymin, ymax, xmin, xmax, siz
38  CHARACTER*(*) lx,ly,lt,runlbl
39  CALL pgsave
40  CALL pgbbuf
41  CALL pgsci(1)
42  xmin=minval(x);xmax=maxval(x)
43  ymin=minval(y);ymax=maxval(y)
44  IF (ymax .EQ. ymin) THEN
45  IF (ymax .GT. 0.) ymin=.99*ymax
46  IF (ymax .LT. 0.) ymax=.99*ymin
47  IF (ymax .EQ. 0.) ymax=1.e-3;ymin=-1.e-3
48  ENDIF
49  CALL pgenv(minval(x),maxval(x),ymin,ymax,0,0)
50  CALL pglab(trim(lx),trim(ly),trim(lt))
51  CALL pgqch(siz)
52  CALL pgsch(siz-.5)
53  CALL pgmtxt('B',4.19,0.5,0.5,trim(runlbl))
54  CALL pgsch(siz)
55  CALL pgsci(2)
56  CALL pgslw(3)
57  CALL pgline(n,x,y)
58  CALL pgebuf
59  CALL pgunsa
60  END SUBROUTINE graf1
61  SUBROUTINE graf1x (x,y,n,lx,ly,lt,runlbl)
62  IMPLICIT NONE
63  INTEGER n
64  REAL, DIMENSION(n), INTENT(in) :: x, y
65  REAL :: ymin, ymax, xmin, xmax, siz
66  CHARACTER*(*) lx,ly,lt,runlbl
67  CALL pgsave
68  CALL pgbbuf
69  CALL pgsci(1)
70  xmin=minval(x);xmax=maxval(x)
71  ymin=minval(y);ymax=maxval(y)
72  IF (ymax .EQ. ymin) THEN
73  IF (ymax .GT. 0.) ymin=.99*ymax
74  IF (ymax .LT. 0.) ymax=.99*ymin
75  IF (ymax .EQ. 0.) ymax=1.e-3;ymin=-1.e-3
76  ENDIF
77  CALL pgenv(minval(x),maxval(x),ymin,ymax,0,1)
78  CALL pglab(trim(lx),trim(ly),trim(lt))
79  CALL pgqch(siz)
80  CALL pgsch(siz-.5)
81  CALL pgmtxt('B',4.19,0.5,0.5,trim(runlbl))
82  CALL pgsch(siz)
83  CALL pgsci(2)
84  CALL pgslw(3)
85  CALL pgline(n,x,y)
86  CALL pgebuf
87  CALL pgunsa
88  END SUBROUTINE graf1x
89 
90  SUBROUTINE graf1pt (x,y,n,lx,ly,lt,runlbl)
91  IMPLICIT NONE
92  INTEGER n
93  REAL, DIMENSION(n), INTENT(in) :: x, y
94  REAL :: ymin, ymax, siz
95  CHARACTER*(*) lx,ly,lt,runlbl
96  CALL pgsave
97  CALL pgsci(1)
98  ymin=minval(y);ymax=maxval(y)
99  IF (ymax .EQ. ymin) THEN
100  IF (ymax .GT. 0.) ymin=.99*ymax
101  IF (ymax .LT. 0.) ymax=.99*ymin
102  IF (ymax .EQ. 0.) ymax=1.e-3;ymin=-1.e-3
103  ENDIF
104  CALL pgpage
105  CALL pgvstd
106  CALL pgswin(minval(x),maxval(x),ymin,ymax)
107  CALL pgbox('BCNT',0.,0,'BCNTP1',0.,0)
108  CALL pglab(trim(lx),trim(ly),trim(lt))
109  CALL pgqch(siz)
110  CALL pgsch(siz-.5)
111  CALL pgmtxt('B',4.19,0.5,0.5,trim(runlbl))
112  CALL pgsch(siz)
113  CALL pgsci(2)
114  CALL pgpt(n,x,y,2)
115  CALL pgunsa
116  END SUBROUTINE graf1pt
117  SUBROUTINE graf2 (x,y,yfit,n,lx,ly,lt,runlbl)
118 ! two lines on a SINgle scale
119  IMPLICIT NONE
120  INTEGER i, n
121  REAL :: ymin, ymax, siz
122  REAL, DIMENSION(n) :: x,y,yfit
123  CHARACTER*(*) lx,ly,lt,runlbl
124  CALL pgsave
125  CALL pgbbuf
126  CALL pgsci(1)
127  ymin=min(minval(y),minval(yfit))
128  ymax=max(maxval(y),maxval(yfit))
129  IF (ymax .EQ. ymin) THEN
130  IF (ymax .GT. 0.) ymin=.99*ymax
131  IF (ymax .LT. 0.) ymax=.99*ymin
132  IF (ymax .EQ. 0.) ymax=1.e-3;ymin=-1.e-3
133  ENDIF
134  CALL pgenv(minval(x),maxval(x),ymin,ymax,0,0)
135  CALL pglab(trim(lx),trim(ly),trim(lt))
136  CALL pgqch(siz)
137  CALL pgsch(siz-.5)
138  CALL pgmtxt('B',4.19,0.5,0.5,trim(runlbl))
139  CALL pgsch(siz)
140  CALL pgsci(3)
141  CALL pgpt(n,x,y,-2)
142  CALL pgslw(3)
143  CALL pgsls(1)
144  CALL pgsci(2)
145  CALL pgline(n,x,yfit)
146  CALL pgsci(3)
147  CALL pgpt(n,x,y,2)
148  CALL pgebuf
149  CALL pgunsa
150  END SUBROUTINE graf2
151 
152  SUBROUTINE graf2pt (x1,x2,y1,y2,n,lx,ly1,ly2,lt,runlbl)
153  INTEGER n
154  REAL, DIMENSION(n), INTENT(in) :: x1, x2, y1, y2
155  REAL :: ymin, ymax, siz
156  CHARACTER*(*) lx,ly1,ly2,lt,runlbl
157  CALL pgsave
158  CALL pgslw(1)
159  CALL pgsci(1)
160  xmin=minval(x1);xmax=maxval(x1)
161  xmin=min(xmin,minval(x2))
162  xmax=max(xmax,maxval(x2))
163  ymin=minval(y1);ymax=maxval(y1)
164  ymin=min(ymin,minval(y2))
165  ymax=max(ymax,maxval(y2))
166  IF (ymax .EQ. ymin) THEN
167  IF (ymax .GT. 0.) ymin=.99*ymax
168  IF (ymax .LT. 0.) ymax=.99*ymin
169  IF (ymax .EQ. 0.) ymax=1.e-3;ymin=-1.e-3
170  ENDIF
171  CALL pgpage
172  CALL pgvstd
173  CALL pgswin(xmin,xmax,ymin,ymax)
174  CALL pgbox('BCNT',0.,0,'BCNTP',0.,0)
175  CALL pglab(trim(lx),trim(ly1//" "//ly2),trim(lt))
176  CALL pgqch(siz)
177  CALL pgmtxt('T',.919,0.5,0.5,trim(runlbl))
178  CALL pgsch(siz)
179  CALL pgsci(4)
180  CALL pgslw(1)
181 ! CALL pgsch(siz-.5)
182  CALL pgpt(n,x1,y1,5)
183  CALL pgsch(siz)
184 ! CALL pgmtxt('L',2.65,0.,0.,TRIM(ly1))
185  CALL pgsci(2)
186  CALL pgslw(1)
187  CALL pgpt(n,x2,y2,4)
188  CALL pgsch(siz)
189 ! CALL pgmtxt('L',2.65,1.0,1.0,TRIM(ly2))
190  CALL pgunsa
191  END SUBROUTINE graf2pt
192 
193  SUBROUTINE graf3pt (x,y1,y2,y3,n,lx,ly1,ly2,ly3,lt,runlbl)
194  INTEGER n
195  REAL, DIMENSION(n), INTENT(in) :: x, y1, y2, y3
196  REAL :: ymin, ymax, siz
197  CHARACTER*(*) lx,ly1,ly2,ly3,lt,runlbl
198  CALL pgsave
199  CALL pgsci(1)
200  ymin=minval(y1);ymax=maxval(y1)
201  ymin=min(ymin,minval(y2))
202  ymax=max(ymax,maxval(y2))
203  ymin=min(ymin,minval(y3))
204  ymax=max(ymax,maxval(y3))
205  IF (ymax .EQ. ymin) THEN
206  IF (ymax .GT. 0.) ymin=.99*ymax
207  IF (ymax .LT. 0.) ymax=.99*ymin
208  IF (ymax .EQ. 0.) ymax=1.e-3;ymin=-1.e-3
209  ENDIF
210  CALL pgenv(minval(x),maxval(x),ymin,ymax,0,0)
211  CALL pglab(trim(lx),' ',trim(lt))
212  CALL pgqch(siz)
213  CALL pgsch(siz-.5)
214  CALL pgmtxt('B',4.19,0.5,0.5,trim(runlbl))
215  CALL pgsch(siz)
216  CALL pgsci(1)
217  CALL pgpt(n,x,y1,2)
218  CALL pgmtxt('L',2.65,0.,0.,trim(ly1))
219  CALL pgsci(2)
220  CALL pgpt(n,x,y2,3)
221  CALL pgmtxt('L',2.65,0.5,0.5,trim(ly2))
222  CALL pgsci(4)
223  CALL pgpt(n,x,y3,4)
224  CALL pgmtxt('L',2.65,1.,1.,trim(ly3))
225  CALL pgunsa
226  END SUBROUTINE graf3pt
227 
228  SUBROUTINE graf2x (x,y,yfit,n,lx,lyl,lyr,lt,runlbl)
229 ! two lines in a box with y axis left and right
230  IMPLICIT NONE
231  INTEGER i, n
232  REAL :: ymin, ymax, dx, siz
233  REAL, DIMENSION(n) :: x,y,yfit
234  CHARACTER*(*) lx,lyl,lyr,lt,runlbl
235  CHARACTER*8 xopt,yopt
236  dx=x(3)-x(1)
237  IF (n .LT. 30)dx=x(2)-x(1)
238  CALL pgsave
239  CALL pgbbuf
240  CALL pgsci(1)
241  CALL pgpage
242  CALL pgvstd
243  CALL pgswin(minval(x),maxval(x),minval(y),maxval(y))
244  xopt='BCNST';yopt='B'
245  CALL pgbox(trim(xopt),0.,0,trim(yopt),0.,0)
246  CALL pglab(trim(lx),' ',trim(lt))
247  CALL pgqch(siz)
248  CALL pgsch(siz-.5)
249  CALL pgmtxt('B',4.19,0.5,0.5,trim(runlbl))
250  CALL pgsch(siz)
251  CALL pgsci(2)
252  yopt='BNST'
253  CALL pgbox(' ',0.,0,trim(yopt),0.,0)
254  CALL pgmtxt('L',2.25,0.5,0.5,trim(lyl))
255  CALL pgsls(1)
256  CALL pgslw(3)
257  CALL pgline(n,x,y)
258  xopt=' ';yopt='CMST'
259  CALL pgsci(4)
260  CALL pgswin(minval(x),maxval(x),minval(yfit),maxval(yfit))
261  CALL pgbox(' ',0.,0,trim(yopt),0.,0)
262  CALL pgmtxt('R',2.25,0.5,0.5,trim(lyr))
263  CALL pgsls(4)
264  CALL pgslw(8)
265  CALL pgline(n,x,yfit)
266  CALL pgebuf
267  CALL pgunsa
268  END SUBROUTINE graf2x
269