|
|
1.1 root 1: C***********************************************************************00010828
2: C DATE***82/08/02*18.33.46
3: C OWNER PRE/850703/TC-85- -410/ /FSTC/278FCVS*F78UBP20/
4: C AUDIT FCVS78 V2.0
5: C***** FORTRAN 77 00020828
6: C***** FM828 00030828
7: C***** YCFOR - (203) 00040828
8: C***** 00050828
9: C***********************************************************************00060828
10: C***** GENERAL PURPOSE ANS REF 00070828
11: C***** TEST COMPLEX TRIGONOMETRIC FORMULAE 15.3 00080828
12: C***** TABLE 5 00090828
13: CBB** ********************** BBCCOMNT **********************************00100828
14: C**** 00110828
15: C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00120828
16: C**** VERSION 2.0 00130828
17: C**** 00140828
18: C**** 00150828
19: C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00160828
20: C**** GENERAL SERVICES ADMINISTRATION 00170828
21: C**** FEDERAL SOFTWARE TESTING CENTER 00180828
22: C**** 5203 LEESBURG PIKE, SUITE 1100 00190828
23: C**** FALLS CHURCH, VA. 22041 00200828
24: C**** 00210828
25: C**** (703) 756-6153 00220828
26: C**** 00230828
27: CBE** ********************** BBCCOMNT **********************************00240828
28: C***** 00250828
29: C***** S P E C I F I C A T I O N S SEGMENT 203 00260828
30: COMPLEX AVC, BVC, CVC, DVC, ZVCORR 00270828
31: REAL R2E(2) 00280828
32: EQUIVALENCE (AVC, R2E) 00290828
33: C***** 00300828
34: CBB** ********************** BBCINITA **********************************00310828
35: C**** SPECIFICATION STATEMENTS 00320828
36: C**** 00330828
37: CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00340828
38: 1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00350828
39: CBE** ********************** BBCINITA **********************************00360828
40: CBB** ********************** BBCINITB **********************************00370828
41: C**** INITIALIZE SECTION 00380828
42: DATA ZVERS, ZVERSD, ZDATE 00390828
43: 1 /'VERSION 2.0 ', '82/08/02*18.33.46', '*NO DATE*TIME'/ 00400828
44: DATA ZCOMPL, ZNAME, ZTAPE 00410828
45: 1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00420828
46: DATA ZPROJ, ZTAPED, ZPROG 00430828
47: 1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00440828
48: DATA REMRKS /' '/ 00450828
49: C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00460828
50: C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00470828
51: C**** 00480828
52: CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00490828
53: CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00500828
54: CZ03 ZPROG = 'PROGRAM NAME' 00510828
55: ZDATE = '07-Nov-85 ' *RP
56: ZCOMPL = 'CCI 5.2 ' *RP
57: ZPROJ = 'TC-85- -410' *RP
58: ZNAME = ' ' *RP
59: ZTAPE = ' ' *RP
60: ZTAPED = '850703 ' *RP
61: C 00580828
62: IVPASS = 0 00590828
63: IVFAIL = 0 00600828
64: IVDELE = 0 00610828
65: IVINSP = 0 00620828
66: IVTOTL = 0 00630828
67: IVTOTN = 0 00640828
68: ICZERO = 0 00650828
69: C 00660828
70: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00670828
71: I01 = 05 00680828
72: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00690828
73: I02 = 06 00700828
74: C 00710828
75: I01 = 5 00720828
76: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00730828
77: CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 00740828
78: C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 00750828
79: C 00760828
80: I02 = 6 00770828
81: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 00780828
82: CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 00790828
83: C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 00800828
84: C 00810828
85: CBE** ********************** BBCINITB **********************************00820828
86: NUVI = I02 00830828
87: IVTOTL = 9 00840828
88: ZPROG = 'FM828' 00850828
89: CBB** ********************** BBCHED0A **********************************00860828
90: C**** 00870828
91: C**** WRITE REPORT TITLE 00880828
92: C**** 00890828
93: WRITE (I02, 90002) 00900828
94: WRITE (I02, 90006) 00910828
95: WRITE (I02, 90007) 00920828
96: WRITE (I02, 90008) ZVERS, ZVERSD 00930828
97: WRITE (I02, 90009) ZPROG, ZPROG 00940828
98: WRITE (I02, 90010) ZDATE, ZCOMPL 00950828
99: CBE** ********************** BBCHED0A **********************************00960828
100: C***** 00970828
101: C***** HEADER FOR SEGMENT 203 00980828
102: WRITE(NUVI,20300) 00990828
103: 20300 FORMAT(1H , / 35H YCFOR - (203) INTRINSIC FUNCTIONS// 01000828
104: 1 32H COMPLEX TRIGONOMETRIC FORMULAE// 01010828
105: 2 17H ANS REF. - 15.3) 01020828
106: CBB** ********************** BBCHED0B **********************************01030828
107: C**** WRITE DETAIL REPORT HEADERS 01040828
108: C**** 01050828
109: WRITE (I02,90004) 01060828
110: WRITE (I02,90004) 01070828
111: WRITE (I02,90013) 01080828
112: WRITE (I02,90014) 01090828
113: WRITE (I02,90015) IVTOTL 01100828
114: CBE** ********************** BBCHED0B **********************************01110828
115: C***** 01120828
116: PIVS = 3.1415926535897932384626434 01130828
117: C***** 01140828
118: CT001* TEST 1 SQRT(Z)**2 = Z 01150828
119: IVTNUM = 1 01160828
120: BVC = (1.0, 0.0) + (0.0, -2.5) 01170828
121: AVC = CSQRT((1.0, -2.5)) ** 2 - BVC 01180828
122: IF (R2E(1) + 0.50000E-04) 20010, 40012, 40011 01190828
123: 40011 IF (R2E(1) - 0.50000E-04) 40012, 40012, 20010 01200828
124: 40012 IF (R2E(2) + 0.50000E-04) 20010, 10010, 40010 01210828
125: 40010 IF (R2E(2) - 0.50000E-04) 10010, 10010, 20010 01220828
126: 10010 IVPASS = IVPASS + 1 01230828
127: WRITE (NUVI, 80002) IVTNUM 01240828
128: GO TO 0011 01250828
129: 20010 IVFAIL = IVFAIL + 1 01260828
130: ZVCORR = (0.0000, 0.0000) 01270828
131: WRITE (NUVI, 80045) IVTNUM, AVC, ZVCORR 01280828
132: 0011 CONTINUE 01290828
133: CT002* TEST 2 ANGLE SUBTENDED BY SQRT(Z) IS 1/2 ANGLE SUBTENDED BY Z 01300828
134: IVTNUM = 2 01310828
135: BVC = CSQRT((2.0, 3.25)) 01320828
136: CVS = AIMAG(BVC) 01330828
137: DVS = CABS((BVC + CONJG(BVC)) / (2.0, 0.0)) 01340828
138: AVS = ATAN2(3.0 + 0.25, 1.0 * 2.0) - 2.0 * ATAN2(CVS, DVS) 01350828
139: IF (AVS + 0.50000E-04) 20020, 10020, 40020 01360828
140: 40020 IF (AVS - 0.50000E-04) 10020, 10020, 20020 01370828
141: 10020 IVPASS = IVPASS + 1 01380828
142: WRITE (NUVI, 80002) IVTNUM 01390828
143: GO TO 0021 01400828
144: 20020 IVFAIL = IVFAIL + 1 01410828
145: RVCORR = 0.0000 01420828
146: WRITE (NUVI, 80012) IVTNUM, AVS, RVCORR 01430828
147: 0021 CONTINUE 01440828
148: CT003* TEST 3 EXP(LOG(Z)) = Z 01450828
149: IVTNUM = 3 01460828
150: BVC = (0.0, 0.0) - (1.5, 0.75) 01470828
151: AVC = CEXP(CLOG(BVC)) + (1.5, 0.75) 01480828
152: IF (R2E(1) + 0.50000E-04) 20030, 40032, 40031 01490828
153: 40031 IF (R2E(1) - 0.50000E-04) 40032, 40032, 20030 01500828
154: 40032 IF (R2E(2) + 0.50000E-04) 20030, 10030, 40030 01510828
155: 40030 IF (R2E(2) - 0.50000E-04) 10030, 10030, 20030 01520828
156: 10030 IVPASS = IVPASS + 1 01530828
157: WRITE (NUVI, 80002) IVTNUM 01540828
158: GO TO 0031 01550828
159: 20030 IVFAIL = IVFAIL + 1 01560828
160: ZVCORR = (0.0000, 0.0000) 01570828
161: WRITE (NUVI, 80045) IVTNUM, AVC, ZVCORR 01580828
162: 0031 CONTINUE 01590828
163: CT004* TEST 4 ABS(EXP(Z)) = EXP(REAL(Z)) 01600828
164: IVTNUM = 4 01610828
165: AVS = CABS(CEXP((-2.5, 1.375))) - EXP(5.0 / (-2.0)) 01620828
166: IF (AVS + 0.50000E-04) 20040, 10040, 40040 01630828
167: 40040 IF (AVS - 0.50000E-04) 10040, 10040, 20040 01640828
168: 10040 IVPASS = IVPASS + 1 01650828
169: WRITE (NUVI, 80002) IVTNUM 01660828
170: GO TO 0041 01670828
171: 20040 IVFAIL = IVFAIL + 1 01680828
172: RVCORR = 0.0000 01690828
173: WRITE (NUVI, 80012) IVTNUM, AVS, RVCORR 01700828
174: 0041 CONTINUE 01710828
175: CT005* TEST 5 ANGLE SUBTENDED BY EXP(Z) IS IMAG(Z) MOD 2 PI 01720828
176: IVTNUM = 5 01730828
177: BVC = (0.0625, 0.0) 01740828
178: CVC = CEXP(BVC + (0.0, 1.125)) 01750828
179: DVS = ATAN2(AIMAG(CVC), CABS((CVC + CONJG(CVC)) / (2.0, 0.0))) 01760828
180: AVS = DVS - AMOD(AIMAG((0.0625, 1.125)), 2.0 * PIVS) 01770828
181: IF (AVS + 0.50000E-04) 20050, 10050, 40050 01780828
182: 40050 IF (AVS - 0.50000E-04) 10050, 10050, 20050 01790828
183: 10050 IVPASS = IVPASS + 1 01800828
184: WRITE (NUVI, 80002) IVTNUM 01810828
185: GO TO 0051 01820828
186: 20050 IVFAIL = IVFAIL + 1 01830828
187: RVCORR = 0.0000 01840828
188: WRITE (NUVI, 80012) IVTNUM, AVS, RVCORR 01850828
189: 0051 CONTINUE 01860828
190: CT006* TEST 6 EXP(IY) = COS(Y) + I SIN(Y) 01870828
191: IVTNUM = 6 01880828
192: AVC = CEXP(CMPLX(0.0, 37.5 / 10.0)) 01890828
193: 1 - CMPLX(COS(3.75), SIN(2.75 + 1.0)) 01900828
194: IF (R2E(1) + 0.50000E-04) 20060, 40062, 40061 01910828
195: 40061 IF (R2E(1) - 0.50000E-04) 40062, 40062, 20060 01920828
196: 40062 IF (R2E(2) + 0.50000E-04) 20060, 10060, 40060 01930828
197: 40060 IF (R2E(2) - 0.50000E-04) 10060, 10060, 20060 01940828
198: 10060 IVPASS = IVPASS + 1 01950828
199: WRITE (NUVI, 80002) IVTNUM 01960828
200: GO TO 0061 01970828
201: 20060 IVFAIL = IVFAIL + 1 01980828
202: ZVCORR = (0.0000, 0.0000) 01990828
203: WRITE (NUVI, 80045) IVTNUM, AVC, ZVCORR 02000828
204: 0061 CONTINUE 02010828
205: CT007* TEST 7 COS(Z) = 0.5 * (EXP(I*Z) + EXP(-I*Z)) 02020828
206: IVTNUM = 7 02030828
207: BVC = CEXP((-1.5, -2.75)) 02040828
208: CVC = (BVC + 1 / BVC) / (2.0, 0.0) 02050828
209: DVC = (2.75, -1.5) 02060828
210: AVC = CVC - CCOS(DVC * (-1.0, 0.0)) 02070828
211: IF (R2E(1) + 0.50000E-04) 20070, 40072, 40071 02080828
212: 40071 IF (R2E(1) - 0.50000E-04) 40072, 40072, 20070 02090828
213: 40072 IF (R2E(2) + 0.50000E-04) 20070, 10070, 40070 02100828
214: 40070 IF (R2E(2) - 0.50000E-04) 10070, 10070, 20070 02110828
215: 10070 IVPASS = IVPASS + 1 02120828
216: WRITE (NUVI, 80002) IVTNUM 02130828
217: GO TO 0071 02140828
218: 20070 IVFAIL = IVFAIL + 1 02150828
219: ZVCORR = (0.0000, 0.0000) 02160828
220: WRITE (NUVI, 80045) IVTNUM, AVC, ZVCORR 02170828
221: 0071 CONTINUE 02180828
222: CT008* TEST 8 ABS(EXP(IY)) = 1.0 02190828
223: IVTNUM = 8 02200828
224: BVC = (3.25, 3.25) 02210828
225: CVC = (3.25, 0.0) 02220828
226: AVC = CABS(CEXP(BVC - CVC)) - COS(0.0) 02230828
227: IF (R2E(1) + 0.50000E-04) 20080, 40082, 40081 02240828
228: 40081 IF (R2E(1) - 0.50000E-04) 40082, 40082, 20080 02250828
229: 40082 IF (R2E(2) + 0.50000E-04) 20080, 10080, 40080 02260828
230: 40080 IF (R2E(2) - 0.50000E-04) 10080, 10080, 20080 02270828
231: 10080 IVPASS = IVPASS + 1 02280828
232: WRITE (NUVI, 80002) IVTNUM 02290828
233: GO TO 0081 02300828
234: 20080 IVFAIL = IVFAIL + 1 02310828
235: ZVCORR = (0.0000, 0.0000) 02320828
236: WRITE (NUVI, 80045) IVTNUM, AVC, ZVCORR 02330828
237: 0081 CONTINUE 02340828
238: CT009* TEST 9 DEMOIVRE THEOREM FOR N = 3 02350828
239: IVTNUM = 9 02360828
240: BVS = 3.0/2.0 02370828
241: BVC = CMPLX(COS(1.5), SIN(BVS)) ** 3 02380828
242: AVC = BVC - CMPLX(COS(4.5), -SIN(4.5 + PIVS)) 02390828
243: IF (R2E(1) + 0.50000E-04) 20090, 40092, 40091 02400828
244: 40091 IF (R2E(1) - 0.50000E-04) 40092, 40092, 20090 02410828
245: 40092 IF (R2E(2) + 0.50000E-04) 20090, 10090, 40090 02420828
246: 40090 IF (R2E(2) - 0.50000E-04) 10090, 10090, 20090 02430828
247: 10090 IVPASS = IVPASS + 1 02440828
248: WRITE (NUVI, 80002) IVTNUM 02450828
249: GO TO 0091 02460828
250: 20090 IVFAIL = IVFAIL + 1 02470828
251: ZVCORR = (0.0000, 0.0000) 02480828
252: WRITE (NUVI, 80045) IVTNUM, AVC, ZVCORR 02490828
253: 0091 CONTINUE 02500828
254: C***** 02510828
255: CBB** ********************** BBCSUM0 **********************************02520828
256: C**** WRITE OUT TEST SUMMARY 02530828
257: C**** 02540828
258: IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 02550828
259: WRITE (I02, 90004) 02560828
260: WRITE (I02, 90014) 02570828
261: WRITE (I02, 90004) 02580828
262: WRITE (I02, 90020) IVPASS 02590828
263: WRITE (I02, 90022) IVFAIL 02600828
264: WRITE (I02, 90024) IVDELE 02610828
265: WRITE (I02, 90026) IVINSP 02620828
266: WRITE (I02, 90028) IVTOTN, IVTOTL 02630828
267: CBE** ********************** BBCSUM0 **********************************02640828
268: CBB** ********************** BBCFOOT0 **********************************02650828
269: C**** WRITE OUT REPORT FOOTINGS 02660828
270: C**** 02670828
271: WRITE (I02,90016) ZPROG, ZPROG 02680828
272: WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 02690828
273: WRITE (I02,90019) 02700828
274: CBE** ********************** BBCFOOT0 **********************************02710828
275: CBB** ********************** BBCFMT0A **********************************02720828
276: C**** FORMATS FOR TEST DETAIL LINES 02730828
277: C**** 02740828
278: 80000 FORMAT (1H ,2X,I3,4X,7HDELETED,32X,A31) 02750828
279: 80002 FORMAT (1H ,2X,I3,4X,7H PASS ,32X,A31) 02760828
280: 80004 FORMAT (1H ,2X,I3,4X,7HINSPECT,32X,A31) 02770828
281: 80008 FORMAT (1H ,2X,I3,4X,7H FAIL ,32X,A31) 02780828
282: 80010 FORMAT (1H ,2X,I3,4X,7H FAIL ,/,1H ,15X,10HCOMPUTED= , 02790828
283: 1I6,/,1H ,15X,10HCORRECT= ,I6) 02800828
284: 80012 FORMAT (1H ,2X,I3,4X,7H FAIL ,/,1H ,16X,10HCOMPUTED= , 02810828
285: 1E12.5,/,1H ,16X,10HCORRECT= ,E12.5) 02820828
286: 80018 FORMAT (1H ,2X,I3,4X,7H FAIL ,/,1H ,16X,10HCOMPUTED= , 02830828
287: 1A21,/,1H ,16X,10HCORRECT= ,A21) 02840828
288: 80020 FORMAT (1H ,16X,10HCOMPUTED= ,A21,1X,A31) 02850828
289: 80022 FORMAT (1H ,16X,10HCORRECT= ,A21,1X,A31) 02860828
290: 80024 FORMAT (1H ,16X,10HCOMPUTED= ,I6,16X,A31) 02870828
291: 80026 FORMAT (1H ,16X,10HCORRECT= ,I6,16X,A31) 02880828
292: 80028 FORMAT (1H ,16X,10HCOMPUTED= ,E12.5,10X,A31) 02890828
293: 80030 FORMAT (1H ,16X,10HCORRECT= ,E12.5,10X,A31) 02900828
294: 80050 FORMAT (1H ,48X,A31) 02910828
295: CBE** ********************** BBCFMT0A **********************************02920828
296: CBB** ********************** BBCFMAT1 **********************************02930828
297: C**** FORMATS FOR TEST DETAIL LINES - FULL LANGUAGE 02940828
298: C**** 02950828
299: 80031 FORMAT (1H ,2X,I3,4X,7H FAIL ,/,1H ,16X,10HCOMPUTED= , 02960828
300: 1D17.10,/,1H ,16X,10HCORRECT= ,D17.10) 02970828
301: 80033 FORMAT (1H ,16X,10HCOMPUTED= ,D17.10,10X,A31) 02980828
302: 80035 FORMAT (1H ,16X,10HCORRECT= ,D17.10,10X,A31) 02990828
303: 80037 FORMAT (1H ,16X,10HCOMPUTED= ,1H(,E12.5,2H, ,E12.5,1H),6X,A31) 03000828
304: 80039 FORMAT (1H ,16X,10HCORRECT= ,1H(,E12.5,2H, ,E12.5,1H),6X,A31) 03010828
305: 80041 FORMAT (1H ,16X,10HCOMPUTED= ,1H(,F12.5,2H, ,F12.5,1H),6X,A31) 03020828
306: 80043 FORMAT (1H ,16X,10HCORRECT= ,1H(,F12.5,2H, ,F12.5,1H),6X,A31) 03030828
307: 80045 FORMAT (1H ,2X,I3,4X,7H FAIL ,/,1H ,16X,10HCOMPUTED= , 03040828
308: 11H(,F12.5,2H, ,F12.5,1H)/,1H ,16X,10HCORRECT= , 03050828
309: 21H(,F12.5,2H, ,F12.5,1H)) 03060828
310: CBE** ********************** BBCFMAT1 **********************************03070828
311: CBB** ********************** BBCFMT0B **********************************03080828
312: C**** FORMAT STATEMENTS FOR PAGE HEADERS 03090828
313: C**** 03100828
314: 90002 FORMAT (1H1) 03110828
315: 90004 FORMAT (1H ) 03120828
316: 90006 FORMAT (1H ,20X,31HFEDERAL SOFTWARE TESTING CENTER) 03130828
317: 90007 FORMAT (1H ,19X,34HFORTRAN COMPILER VALIDATION SYSTEM) 03140828
318: 90008 FORMAT (1H ,21X,A13,A17) 03150828
319: 90009 FORMAT (1H ,/,2H *,A5,6HBEGIN*,12X,15HTEST RESULTS - ,A5,/) 03160828
320: 90010 FORMAT (1H ,8X,16HTEST DATE*TIME= ,A17,15H - COMPILER= ,A20) 03170828
321: 90013 FORMAT (1H ,8H TEST ,10HPASS/FAIL ,6X,17HDISPLAYED RESULTS, 03180828
322: 1 7X,7HREMARKS,24X) 03190828
323: 90014 FORMAT (1H ,46H----------------------------------------------, 03200828
324: 1 33H---------------------------------) 03210828
325: 90015 FORMAT (1H ,48X,17HTHIS PROGRAM HAS ,I3,6H TESTS,/) 03220828
326: C**** 03230828
327: C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 03240828
328: C**** 03250828
329: 90016 FORMAT (1H ,/,2H *,A5,4HEND*,14X,14HEND OF TEST - ,A5,/) 03260828
330: 90018 FORMAT (1H ,A13,13X,A20,7H * ,A10,1H/, 03270828
331: 1 A13) 03280828
332: 90019 FORMAT (1H ,26HFOR OFFICIAL USE ONLY ,35X,15HCOPYRIGHT 1982) 03290828
333: C**** 03300828
334: C**** FORMAT STATEMENTS FOR RUN SUMMARY 03310828
335: C**** 03320828
336: 90020 FORMAT (1H ,21X,I5,13H TESTS PASSED) 03330828
337: 90022 FORMAT (1H ,21X,I5,13H TESTS FAILED) 03340828
338: 90024 FORMAT (1H ,21X,I5,14H TESTS DELETED) 03350828
339: 90026 FORMAT (1H ,21X,I5,25H TESTS REQUIRE INSPECTION) 03360828
340: 90028 FORMAT (1H ,21X,I5,4H OF ,I3,15H TESTS EXECUTED) 03370828
341: CBE** ********************** BBCFMT0B **********************************03380828
342: C***** 03390828
343: C***** END OF TEST SEGMENT 203 03400828
344: STOP 03410828
345: END 03420828
346: 03430828
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.