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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
SUBROUTINE TDASHC (IERROR)
C
C LATEST REVISION MAY 1984
C
C PURPOSE TO PROVIDE A DEMONSTRATION OF DASHCHAR
C AND TO TEST DASHCHAR ON A SIMPLE PROBLEM
C
C USAGE CALL TDASHC (IERROR)
C
C ARGUMENTS
C
C ON OUTPUT IERROR
C AN INTEGER VARIABLE
C = 0, IF THE TEST IS SUCCESSFUL,
C = 1, OTHERWISE
C
C I/O IF THE TEST IS SUCCESSFUL, THE MESSAGE
C
C DASHCHAR TEST SUCCESSFUL . . . SEE PLOT
C TO VERIFY PERFORMANCE
C
C IS PRINTED ON UNIT 6.
C
C IN ADDITION, ONE FRAME CONTAINING THE
C DASHED LINE PLOT IS PRODUCED ON THE
C MACHINE GRAPHICS DEVICE. TO DETERMINE
C IF THE TEST IS SUCCESSFUL, IT IS NECESSARY
C TO EXAMINE THIS PLOT.
C
C PRECISION SINGLE
C
C REQUIRED LIBRARY DASHCHAR
C FILES
C
C LANGUAGE FORTRAN
C
C ALGORITHM TDASHC UTILIZES THE SOFTWARE DASHCHAR
C SUBROUTINES DASHDB, DASHDC, FRSTD, VECTD,
C LINED AND CURVED TO DRAW FIVE CURVES ON ONE
C PICTURE USING FIVE DIFFERENT DASHCHAR
C PATTERNS. EACH CURVE IS CENTERED ABOUT
C SOLID AXIS LINES AND LABELLED WITH THE
C CHARACTER REPRESENTATION OF THE DASHCHAR
C PATTERN USED.
C
C PORTABILITY FORTRAN 77
C
C X CONTAINS ABSCISSAE VALUES OF THE CURVE TO BE PLOTTED, Y CONTAINS
C ORDINATE VALUES OF THE CURVE TO BE PLOTTED.
C
DIMENSION X(31) ,Y(31)
C
C SELECT NORMALIZATION TRANSFORMATION 0
C
CALL GSELNT(0)
C
C SET SOLID DASH PATTERN, 1111111111111111 (BINARY).
C BOOLEAN OPERATIONS (EMPLOYING LOCALLY-IMPLEMENTED SUPPORT
C ROUTINES) ARE USED FOR PORTABILITY TO HOSTS WITH 16 BIT
C INTEGERS.
C
ISOLID = IOR (ISHIFT (32767,1), 1)
C
DO 130 K=1,5
CALL DASHDB (ISOLID)
ORG =1.07-0.195*K
C
C DRAW CENTRAL AXIS FOR EACH CURVE
C
CALL FRSTD (.50,ORG-0.03)
CALL VECTD (.50,ORG+0.03)
CALL LINED (.109,ORG,.891,ORG)
C
C CALL SUBROUTINE DASHDC WITH A DIFFERENT DASHED LINE AND CHARACTER
C COMBINATION FOR EACH OF FIVE CURVES
C
GO TO ( 10, 20, 30, 40, 50),K
10 CALL DASHDC ('$''$''$''$''$''$''$''$K = 1',10,12)
GO TO 60
20 CALL DASHDC ('$$$$$$''$''$$$$$$K = 2',10,12)
GO TO 60
30 CALL DASHDC ('$$$$''$$$$''$$$$''K = 3',10,12)
GO TO 60
40 CALL DASHDC ('$$$$$''''''''''$$$$$K = 4',10,12)
GO TO 60
50 CALL DASHDC ('$$$''$$$''$$$''$$$K = 5',10,12)
60 CONTINUE
C
C COMPUTE VALUES FOR AND DRAW THE KTH CURVE
C
DO 70 I=1,31
THETA = FLOAT(I-1)*3.1415926535897932/15.
X(I) = 0.5+.4*COS(THETA)
Y(I) = ORG+.075*SIN(FLOAT(K)*THETA)
70 CONTINUE
CALL CURVED (X,Y,31)
C
C LABEL EACH CURVE WITH THE APPROPRIATE CHARACTER REPRESENTATION
C OF THE DASHCHAR PATTERN. IN THE PATTERN LABELS, A AND D
C SHOULD BE INTERPRETED AS APOSTROPHE AND DOLLAR SIGN.
C
C SET TEXT ALIGNMENT TO CENTER THE STRING AT THE LEFT OF THE
C STRING AND IN THE VERTICAL CENTER
C
CALL GSTXAL(1,3)
C
C SET CHARACTER HEIGHT
C
CALL GSCHH(.012)
C
ORY = ORG+.089
GO TO ( 80, 90,100,110,120),K
80 CALL GTX(.1,ORY,'IPAT=DADADADADADADADK=1')
GO TO 130
90 CALL GTX(.1,ORY,'IPAT=DDDDDDADADDDDDDK=2')
GO TO 130
100 CALL GTX(.1,ORY,'IPAT=DDDDADDDDADDDDAK=3')
GO TO 130
110 CALL GTX(.1,ORY,'IPAT=DDDDDAAAAADDDDDK=4')
GO TO 130
120 CALL GTX(.1,ORY,'IPAT=DDDADDDADDDADDDK=5')
C
130 CONTINUE
C
CALL GSTXAL(2,3)
CALL GTX (.5,.991,'DEMONSTRATION PLOT FOR DASHCHAR')
CALL GTX (.5,.015,'IN IPAT STRINGS, A AND D SHOULD BE INTERPRETED
1AS APOSTROPHE AND DOLLAR SIGN')
C
C ADVANCE FRAME
C
c + noao: no need for clearing terminal
c CALL NEWFM
c - noao
C
IERROR = 0
C WRITE (6,1001)
C
RETURN
C
C
C1001 FORMAT (' DASHCHAR TEST SUCCESSFUL',24X,
C 1 'SEE PLOT TO VERIFY PERFORMANCE')
C
END
|