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
146
147
148
149
150
|
SUBROUTINE TSRFAC (nplot, IERROR)
C
C LATEST REVISION MARCH 1984
C
C PURPOSE TO PROVIDE A SIMPLE DEMONSTRATION OF
C SRFACE AND TO TEST SRFACE ON A SINGLE
C PROBLEM
C
C USAGE CALL TSRFAC (IERROR)
C
C ARGUMENTS
c +noao: additional input parameter
c nplot
c = 1, EZSRF is demonstrated
c = 2, SRFACE is demonstrated
c
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 SRFACE TEST SUCCESSFUL . . . SEE PLOT TO
C VERIFY PERFORMANCE
C
C IS PRINTED ON UNIT 6.
C
C IN ADDITION, TWO FRAMES CONTAINING THE
C SURFACE PLOT ARE PRODUCED ON THE MACHINE
C GRAPHICS DEVICE. IN ORDER TO DETERMINE
C IF THE TEST WAS SUCCESSFUL, IT IS
C NECESSARY TO EXAMINE THESE PLOTS.
C
C PRECISION SINGLE
C
C REQUIRED LIBRARY SRFACE
C FILES
C
C LANGUAGE FORTRAN
C
C HISTORY FIRST WRITTEN IN APRIL 1979, CONVERTED TO
C FORTRAN 77 AND GKS IN MARCH 1984.
C
C ALGORITHM THE FUNCTION
C
C Z(X,Y) = .25*(X + Y + 1./((X-.1)**2+Y**2+.09)
C - 1./((X+.1)**2+Y**2+.09))
C
C IS EVALUATED FOR
C X = -1. TO 1. IN INCREMENTS OF .1 AND
C Y = -1.2 TO 1.2 IN INCREMENTS OF .1.
C TSRFAC CALLS SUBROUTINES EZSRFC AND SRFACE
C ONCE. EACH CALL PRODUCES A SURFACE PLOT
C OF THE ARRAY Z.
C
C PORTABILITY ANSI FORTRAN 77
C
C XX CONTAINS THE X-DIRECTION COORDINATE VALUES FOR Z(X,Y), YY CONTAINS
C THE Y-DIRECTION COORDINATE VALUES FOR Z(X,Y), Z CONTAINS THE FUNCTION
C VALUES, S CONTAINS VALUES FOR THE LINE OF SIGHT FOR ENTRY SRFACE,
C WORK IS A WORK ARRAY, ANGH CONTAINS THE ANGLE IN DEGREES IN THE X-Y
C PLANE TO THE LINE OF SIGHT, ANGV CONTAINS THE ANGLE IN DEGREES FROM
C THE X-Y PLANE TO THE LINE OF SIGHT.
C
REAL XX(21) ,YY(25) ,Z(21,25) ,S(6) ,
1 WORK(1096)
C
DATA S(1), S(2), S(3), S(4), S(5), S(6)/
1 -8.0, -6.0, 3.0, 0.0, 0.0, 0.0/
C
DATA ANGH/45./, ANGV/15./
C
C SPECIFY COORDINATES FOR PLOT TITLES. ON AN ABSTRACT GRID WHERE
C THE COORDINATES RANGE FROM 0. TO 1., THE VALUES CX AND CY
C DEFINE THE CENTER OF THE TITLE STRING.
C
DATA CX/.405/, CY/.97/
C
C INITIALIZE ERROR PARAMETER
C
IERROR = 0
C
C FILL XX AND YY COORDINATE ARRAYS AND Z FUNCTION VALUE ARRAY
C
DO 20 I=1,21
X = .1*FLOAT(I-11)
XX(I) = X
DO 10 J=1,25
Y = .1*FLOAT(J-13)
YY(J) = Y
Z(I,J) = (X+Y+1./((X-.1)**2+Y**2+.09)-
1 1./((X+.1)**2+Y**2+.09))*.25
10 CONTINUE
20 CONTINUE
C
C SELECT NORMALIZATION TRANSFORMATION 0
C
CALL GSELNT(0)
C
C EZSRFC DEMO
C
C LABEL THE PLOT FOR ENTRY EZSRFC
C
C SET TEXT ALIGNMENT TO CENTER THE STRING AT THE STRING CENTER
C AND IN THE VERTICAL CENTER
C
CALL GSTXAL(2,3)
C
C SET CHARACTER HEIGHT
C
CALL GSCHH(.016)
C
C PLOT CHARACTERS
C
if (nplot .eq. 1) then
CALL GTX(CX,CY,'DEMONSTRATION PLOT FOR EZSRFC ENTRY OF SRFACE')
CALL EZSRFC (Z,21,25,ANGH,ANGV,WORK)
endif
C
C
C SRFACE DEMO
C
C LABEL THE PLOT FOR ENTRY SRFACE
C
C SET TEXT ALIGNMENT TO CENTER THE STRING AT THE STRING CENTER
C AND IN THE VERTICAL CENTER
C
CALL GSTXAL(2,3)
C
C SET CHARACTER HEIGHT
C
CALL GSCHH(.016)
C
C PLOT CHARACTERS
C
if (nplot .eq. 2) then
CALL GTX(CX,CY,'DEMONSTRATION PLOT FOR SRFACE ENTRY OF SRFACE')
CALL SRFACE (XX,YY,Z,WORK,21,21,25,S,0.)
endif
C
c WRITE (6,1001)
C
RETURN
C
C1001 FORMAT (' SRFACE TEST SUCCESSFUL',24X,
C 1 'SEE PLOT TO VERIFY PERFORMANCE')
C
END
|