Advertisement
eXFq7GJ1cC

Untitled

Dec 1st, 2012
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Fortran 38.86 KB | None | 0 0
  1.       PROGRAM FM004
  2.  
  3. C     COMMENT SECTION                                                   00010004
  4. C                                                                       00020004
  5. C     FM004                                                             00030004
  6. C                                                                       00040004
  7. C         THIS ROUTINE CONTAINS BASIC ARITHMETIC IF STATEMENT TESTS.    00050004
  8. C     THE STATEMENT FORMAT IS                                           00060004
  9. C                IF  (E)  K1, K2, K3                                    00070004
  10. C     WHERE E IS A SIMPLE INTEGER EXPRESSION OF FORM                    00080004
  11. C                VARIABLE - CONSTANT                                    00090004
  12. C                VARIABLE + CONSTANT                                    00100004
  13. C     AND K1, K2 AND K3 ARE STATEMENT LABELS.  ONLY THE STATEMENTS IN   00110004
  14. C     THE BASIC ASSUMPTIONS ARE INCLUDED IN THESE TESTS.                00120004
  15. C         EXECUTION OF AN IF STATEMENT CAUSES EVALUATION OF THE         00130004
  16. C     EXPRESSION E FOLLOWING WHICH THE STATEMENT LABEL K1, K2 OR K3     00140004
  17. C     IS EXECUTED NEXT AS THE VALUE OF E IS LESS THAN ZERO, ZERO, OR    00150004
  18. C     GREATER THAN ZERO, RESPECTIVELY.                                  00160004
  19. C                                                                       00170004
  20. C         THE BASIC UNCONDITIONAL GO TO STATEMENT IS TESTED IN THIS     00180004
  21. C     ROUTINE. THE STATEMENT IS OF THE FORM                             00190004
  22. C               GO TO K                                                 00200004
  23. C     WHERE K IS A STATEMENT LABEL.                                     00210004
  24. C         EXECUTION OF AN UNCONDITIONAL GO TO STATEMENT CAUSES THE      00220004
  25. C     STATEMENT IDENTIFIED BY STATEMENT LABEL K TO BE EXECUTED NEXT.    00230004
  26. C                                                                       00240004
  27. C      REFERENCES                                                       00250004
  28. C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,       00260004
  29. C              X3.9-1978                                                00270004
  30. C                                                                       00280004
  31. C        SECTION 3.6, NORMAL EXECUTION SEQUENCE AND TRANSFER OF CONTROL 00290004
  32. C        SECTION 11.1, GO TO STATEMENT                                  00300004
  33. C        SECTION 11.4, ARITHMETIC IF STATEMENT                          00310004
  34. C                                                                       00320004
  35. C      **********************************************************       00330004
  36. C                                                                       00340004
  37. C         A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE         00350004
  38. C     BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD  00360004
  39. C     PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00370004
  40. C     FEDERAL COBOL COMPILER TESTING SERVICE.  THE FORTRAN COMPILER     00380004
  41. C     VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00390004
  42. C     DATA, AND AN EXECUTIVE SYSTEM.  EACH AUDIT ROUTINE IS A FORTRAN   00400004
  43. C     PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC  00410004
  44. C     LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00420004
  45. C     OF EXECUTING THESE TESTS.                                         00430004
  46. C                                                                       00440004
  47. C         THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00450004
  48. C     FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978.                 00460004
  49. C                                                                       00470004
  50. C         SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO -             00480004
  51. C                                                                       00490004
  52. C              NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY           00500004
  53. C                   SOFTWARE STANDARDS VALIDATION GROUP                 00510004
  54. C                          BUILDING 225  RM A266                        00520004
  55. C                         GAITHERSBURG, MD  20899                       00530004
  56. C      **********************************************************       00540004
  57. C                                                                       00550004
  58. C                                                                       00560004
  59. C                                                                       00570004
  60. C     INITIALIZATION SECTION                                            00580004
  61. C                                                                       00590004
  62. C     INITIALIZE CONSTANTS                                              00600004
  63. C      **************                                                   00610004
  64. C     I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER.         00620004
  65.       I01 = 5                                                           00630004
  66. C     I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER.             00640004
  67.       I02 = 6                                                           00650004
  68. C     SYSTEM ENVIRONMENT SECTION                                        00660004
  69. C                                                                       00670004
  70. CX010    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD. 00680004
  71. C     THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5      00690004
  72. C     (UNIT NUMBER FOR CARD READER).                                    00700004
  73. CX011    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00710004
  74. C     THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            00720004
  75. C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE.         00730004
  76. C                                                                       00740004
  77. CX020    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD. 00750004
  78. C     THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6      00760004
  79. C     (UNIT NUMBER FOR PRINTER).                                        00770004
  80. CX021    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00780004
  81. C     THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            00790004
  82. C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE.         00800004
  83. C                                                                       00810004
  84.       IVPASS=0                                                          00820004
  85.       IVFAIL=0                                                          00830004
  86.       IVDELE=0                                                          00840004
  87.       ICZERO=0                                                          00850004
  88. C                                                                       00860004
  89. C     WRITE PAGE HEADERS                                                00870004
  90.       WRITE (I02,90000)                                                 00880004
  91.       WRITE (I02,90001)                                                 00890004
  92.       WRITE (I02,90002)                                                 00900004
  93.       WRITE (I02, 90002)                                                00910004
  94.       WRITE (I02,90003)                                                 00920004
  95.       WRITE (I02,90002)                                                 00930004
  96.       WRITE (I02,90004)                                                 00940004
  97.       WRITE (I02,90002)                                                 00950004
  98.       WRITE (I02,90011)                                                 00960004
  99.       WRITE (I02,90002)                                                 00970004
  100.       WRITE (I02,90002)                                                 00980004
  101.       WRITE (I02,90005)                                                 00990004
  102.       WRITE (I02,90006)                                                 01000004
  103.       WRITE (I02,90002)                                                 01010004
  104. C          TEST SECTION                                                 01020004
  105. C                                                                       01030004
  106. C         TESTS 21, 22, AND 23 CONTAIN THE SAME IF STATEMENT BUT THE    01040004
  107. C     EXPECTED BRANCH IS TO THE FIRST, SECOND OR THIRD STATEMENT LABEL  01050004
  108. C     AS THE INTEGER EXPRESSION IS LESS THAN ZERO, EQUAL TO ZERO, OR    01060004
  109. C     GREATER THAN ZERO RESPECTIVELY.                                   01070004
  110. C                                                                       01080004
  111.   211 CONTINUE                                                          01090004
  112.       IVTNUM =  21                                                      01100004
  113. C                                                                       01110004
  114. C      ****  TEST 021  ****                                             01120004
  115. C     TEST 21 - ARITHMETIC IF STATEMENT TEST                            01130004
  116. C         LESS THAN ZERO BRANCH EXPECTED.                               01140004
  117. C                                                                       01150004
  118.       IF (ICZERO) 30210,  210, 30210                                    01160004
  119.   210 CONTINUE                                                          01170004
  120.       IVON01=2                                                          01180004
  121.       IF (IVON01 - 3) 212,213,214                                       01190004
  122.   212 IVON02 = -1                                                       01200004
  123.       GO TO 40210                                                       01210004
  124.   213 IVON02 = 0                                                        01220004
  125.       GO TO 40210                                                       01230004
  126.   214 IVON02 = 1                                                        01240004
  127.       GO TO 40210                                                       01250004
  128. 30210 IVDELE = IVDELE + 1                                               01260004
  129.       WRITE (I02,80003) IVTNUM                                          01270004
  130.       IF (ICZERO) 40210,  221, 40210                                    01280004
  131. 40210 IF (IVON02) 10210, 20210, 20210                                   01290004
  132. 10210 IVPASS = IVPASS + 1                                               01300004
  133.       WRITE (I02,80001) IVTNUM                                          01310004
  134.       GO TO  221                                                        01320004
  135. 20210 IVFAIL = IVFAIL + 1                                               01330004
  136.       IVCOMP=IVON02                                                     01340004
  137.       IVCORR=-1                                                         01350004
  138.       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          01360004
  139.   221 CONTINUE                                                          01370004
  140.       IVTNUM =  22                                                      01380004
  141. C                                                                       01390004
  142. C      ****  TEST 022  ****                                             01400004
  143. C     TEST 22 - ARITHMETIC IF STATEMENT TEST                            01410004
  144. C         EQUAL TO ZERO BRANCH EXPECTED                                 01420004
  145. C                                                                       01430004
  146.       IF (ICZERO) 30220,  220, 30220                                    01440004
  147.   220 CONTINUE                                                          01450004
  148.       IVON01 = 3                                                        01460004
  149.       IF (IVON01 - 3) 222,223,224                                       01470004
  150.   222 IVON02 = -1                                                       01480004
  151.       GO TO 40220                                                       01490004
  152.   223 IVON02 = 0                                                        01500004
  153.       GO TO 40220                                                       01510004
  154.   224 IVON02 = 1                                                        01520004
  155.       GO TO 40220                                                       01530004
  156. 30220 IVDELE = IVDELE + 1                                               01540004
  157.       WRITE (I02,80003) IVTNUM                                          01550004
  158.       IF (ICZERO) 40220,  231, 40220                                    01560004
  159. 40220 IF (IVON02) 20220, 10220, 20220                                   01570004
  160. 10220 IVPASS = IVPASS + 1                                               01580004
  161.       WRITE (I02,80001) IVTNUM                                          01590004
  162.       GO TO  231                                                        01600004
  163. 20220 IVFAIL = IVFAIL + 1                                               01610004
  164.       IVCOMP=IVON02                                                     01620004
  165.       IVCORR= 0                                                         01630004
  166.       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          01640004
  167.   231 CONTINUE                                                          01650004
  168.       IVTNUM =  23                                                      01660004
  169. C                                                                       01670004
  170. C      ****  TEST 023  ****                                             01680004
  171. C     TEST 23 - ARITHMETIC IF STATEMENT TEST                            01690004
  172. C         GREATER THAN ZERO BRANCH EXPECTED                             01700004
  173. C                                                                       01710004
  174.       IF (ICZERO) 30230,  230, 30230                                    01720004
  175.   230 CONTINUE                                                          01730004
  176.       IVON01 = 4                                                        01740004
  177.       IF (IVON01 - 3) 232,233,234                                       01750004
  178.   232 IVON02 = -1                                                       01760004
  179.       GO TO 40230                                                       01770004
  180.   233 IVON02 = 0                                                        01780004
  181.       GO TO 40230                                                       01790004
  182.   234 IVON02 = 1                                                        01800004
  183.       GO TO 40230                                                       01810004
  184. 30230 IVDELE = IVDELE + 1                                               01820004
  185.       WRITE (I02,80003) IVTNUM                                          01830004
  186.       IF (ICZERO) 40230,  241, 40230                                    01840004
  187. 40230 IF (IVON02) 20230, 20230, 10230                                   01850004
  188. 10230 IVPASS = IVPASS + 1                                               01860004
  189.       WRITE (I02,80001) IVTNUM                                          01870004
  190.       GO TO  241                                                        01880004
  191. 20230 IVFAIL = IVFAIL + 1                                               01890004
  192.       IVCOMP=IVON02                                                     01900004
  193.       IVCORR = 1                                                        01910004
  194.       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          01920004
  195. C                                                                       01930004
  196. C         TESTS 24 THROUGH 29 CONTAIN AN IF STATEMENT WITH TWO OF THE   01940004
  197. C     THREE BRANCH STATEMENT LABELS EQUAL.                              01950004
  198. C                                                                       01960004
  199.   241 CONTINUE                                                          01970004
  200.       IVTNUM =  24                                                      01980004
  201. C                                                                       01990004
  202. C      ****  TEST 024  ****                                             02000004
  203. C     TEST 24 - ARITHMETIC IF STATEMENT TEST                            02010004
  204. C         LESS THAN ZERO BRANCH EXPECTED                                02020004
  205. C                                                                       02030004
  206.       IF (ICZERO) 30240,  240, 30240                                    02040004
  207.   240 CONTINUE                                                          02050004
  208.       IVON01=2                                                          02060004
  209.       IF (IVON01 - 3) 242,243,242                                       02070004
  210.   242 IVON02=-1                                                         02080004
  211.       GO TO 40240                                                       02090004
  212.   243 IVON02=0                                                          02100004
  213.       GO TO 40240                                                       02110004
  214. 30240 IVDELE = IVDELE + 1                                               02120004
  215.       WRITE (I02,80003) IVTNUM                                          02130004
  216.       IF (ICZERO) 40240,  251, 40240                                    02140004
  217. 40240 IF (IVON02) 10240, 20240, 20240                                   02150004
  218. 10240 IVPASS = IVPASS + 1                                               02160004
  219.       WRITE (I02,80001) IVTNUM                                          02170004
  220.       GO TO  251                                                        02180004
  221. 20240 IVFAIL = IVFAIL + 1                                               02190004
  222.       IVCOMP=IVON02                                                     02200004
  223.       IVCORR=-1                                                         02210004
  224.       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02220004
  225.   251 CONTINUE                                                          02230004
  226.       IVTNUM =  25                                                      02240004
  227. C                                                                       02250004
  228. C      ****  TEST 025  ****                                             02260004
  229. C     TEST 25 - ARITHMETIC IF STATEMENT TEST                            02270004
  230. C         EQUAL TO ZERO BRANCH EXPECTED                                 02280004
  231. C                                                                       02290004
  232.       IF (ICZERO) 30250,  250, 30250                                    02300004
  233.   250 CONTINUE                                                          02310004
  234.       IVON01=3                                                          02320004
  235.       IF (IVON01 - 3) 252,253,252                                       02330004
  236.   252 IVON02= -1                                                        02340004
  237.       GO TO 40250                                                       02350004
  238.   253 IVON02 = 0                                                        02360004
  239.       GO TO 40250                                                       02370004
  240. 30250 IVDELE = IVDELE + 1                                               02380004
  241.       WRITE (I02,80003) IVTNUM                                          02390004
  242.       IF (ICZERO) 40250,  261, 40250                                    02400004
  243. 40250 IF (IVON02) 20250,10250,20250                                     02410004
  244. 10250 IVPASS = IVPASS + 1                                               02420004
  245.       WRITE (I02,80001) IVTNUM                                          02430004
  246.       GO TO  261                                                        02440004
  247. 20250 IVFAIL = IVFAIL + 1                                               02450004
  248.       IVCOMP=IVON02                                                     02460004
  249.       IVCORR=0                                                          02470004
  250.       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02480004
  251.   261 CONTINUE                                                          02490004
  252.       IVTNUM =  26                                                      02500004
  253. C                                                                       02510004
  254. C      ****  TEST 026  ****                                             02520004
  255. C     TEST 26 - ARITHMETIC IF STATEMENT TEST                            02530004
  256. C         GREATER THAN ZERO BRANCH EXPECTED                             02540004
  257. C                                                                       02550004
  258.       IF (ICZERO) 30260,  260, 30260                                    02560004
  259.   260 CONTINUE                                                          02570004
  260.       IVON01=4                                                          02580004
  261.       IF (IVON01-3) 262, 263, 262                                       02590004
  262.   262 IVON02= 1                                                         02600004
  263.       GO TO 40260                                                       02610004
  264.   263 IVON02 = 0                                                        02620004
  265.       GO TO 40260                                                       02630004
  266. 30260 IVDELE = IVDELE + 1                                               02640004
  267.       WRITE (I02,80003) IVTNUM                                          02650004
  268.       IF (ICZERO) 40260,  271, 40260                                    02660004
  269. 40260 IF (IVON02) 20260, 20260, 10260                                   02670004
  270. 10260 IVPASS = IVPASS + 1                                               02680004
  271.       WRITE (I02,80001) IVTNUM                                          02690004
  272.       GO TO  271                                                        02700004
  273. 20260 IVFAIL = IVFAIL + 1                                               02710004
  274.       IVCOMP=IVON02                                                     02720004
  275.       IVCORR = 1                                                        02730004
  276.       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02740004
  277.   271 CONTINUE                                                          02750004
  278.       IVTNUM =  27                                                      02760004
  279. C                                                                       02770004
  280. C      ****  TEST 027  ****                                             02780004
  281. C     TEST 27 - ARITHMETIC IF STATEMENT TEST                            02790004
  282. C         LESS THAN ZERO BRANCH EXPECTED                                02800004
  283. C                                                                       02810004
  284.       IF (ICZERO) 30270,  270, 30270                                    02820004
  285.   270 CONTINUE                                                          02830004
  286.       IVON01 = -4                                                       02840004
  287.       IF (IVON01 + 3) 272, 272, 273                                     02850004
  288.   272 IVON02= -1                                                        02860004
  289.       GO TO 40270                                                       02870004
  290.   273 IVON02 = 1                                                        02880004
  291.       GO TO 40270                                                       02890004
  292. 30270 IVDELE = IVDELE + 1                                               02900004
  293.       WRITE (I02,80003) IVTNUM                                          02910004
  294.       IF (ICZERO) 40270,  281, 40270                                    02920004
  295. 40270 IF (IVON02) 10270, 20270, 20270                                   02930004
  296. 10270 IVPASS = IVPASS + 1                                               02940004
  297.       WRITE (I02,80001) IVTNUM                                          02950004
  298.       GO TO  281                                                        02960004
  299. 20270 IVFAIL = IVFAIL + 1                                               02970004
  300.       IVCOMP=IVON02                                                     02980004
  301.       IVCORR= -1                                                        02990004
  302.       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          03000004
  303.   281 CONTINUE                                                          03010004
  304.       IVTNUM =  28                                                      03020004
  305. C                                                                       03030004
  306. C      ****  TEST 028  ****                                             03040004
  307. C     TEST 28 - ARITHMETIC IF STATEMENT TEST                            03050004
  308. C         EQUAL TO ZERO BRANCH EXPECTED                                 03060004
  309. C                                                                       03070004
  310.       IF (ICZERO) 30280,  280, 30280                                    03080004
  311.   280 CONTINUE                                                          03090004
  312.       IVON01 = -3                                                       03100004
  313.       IF (IVON01 + 3) 282, 282, 283                                     03110004
  314.   282 IVON02 = 0                                                        03120004
  315.       GO TO 40280                                                       03130004
  316.   283 IVON02 = 1                                                        03140004
  317.       GO TO 40280                                                       03150004
  318. 30280 IVDELE = IVDELE + 1                                               03160004
  319.       WRITE (I02,80003) IVTNUM                                          03170004
  320.       IF (ICZERO) 40280,  291, 40280                                    03180004
  321. 40280 IF (IVON02) 20280, 10280, 20280                                   03190004
  322. 10280 IVPASS = IVPASS + 1                                               03200004
  323.       WRITE (I02,80001) IVTNUM                                          03210004
  324.       GO TO  291                                                        03220004
  325. 20280 IVFAIL = IVFAIL + 1                                               03230004
  326.       IVCOMP=IVON02                                                     03240004
  327.       IVCORR= 0                                                         03250004
  328.       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          03260004
  329.   291 CONTINUE                                                          03270004
  330.       IVTNUM =  29                                                      03280004
  331. C                                                                       03290004
  332. C      ****  TEST 029  ****                                             03300004
  333. C     TEST 29 - ARITHMETIC IF STATEMENT TEST                            03310004
  334. C         GREATER THAN ZERO BRANCH EXPECTED                             03320004
  335. C                                                                       03330004
  336.       IF (ICZERO) 30290,  290, 30290                                    03340004
  337.   290 CONTINUE                                                          03350004
  338.       IVON01 = -2                                                       03360004
  339.       IF (IVON01 + 3) 292,292,293                                       03370004
  340.   292 IVON02 = -1                                                       03380004
  341.       GO TO 40290                                                       03390004
  342.   293 IVON02 = 1                                                        03400004
  343.       GO TO 40290                                                       03410004
  344. 30290 IVDELE = IVDELE + 1                                               03420004
  345.       WRITE (I02,80003) IVTNUM                                          03430004
  346.       IF (ICZERO) 40290,  301, 40290                                    03440004
  347. 40290 IF (IVON02) 20290, 20290, 10290                                   03450004
  348. 10290 IVPASS = IVPASS + 1                                               03460004
  349.       WRITE (I02,80001) IVTNUM                                          03470004
  350.       GO TO  301                                                        03480004
  351. 20290 IVFAIL = IVFAIL + 1                                               03490004
  352.       IVCOMP= IVON02                                                    03500004
  353.       IVCORR = 1                                                        03510004
  354.       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          03520004
  355. C                                                                       03530004
  356. C         TESTS 30 AND 31 CONTAIN THE BASIC GO TO STATEMENT TESTS.      03540004
  357. C                                                                       03550004
  358.   301 CONTINUE                                                          03560004
  359.       IVTNUM =  30                                                      03570004
  360. C                                                                       03580004
  361. C      ****  TEST 030  ****                                             03590004
  362. C     TEST 30 - UNCONDITIONAL GO TO STATEMENT TEST                      03600004
  363. C                                                                       03610004
  364.       IF (ICZERO) 30300,  300, 30300                                    03620004
  365.   300 CONTINUE                                                          03630004
  366.       IVON01 = 1                                                        03640004
  367.       GO TO 302                                                         03650004
  368.   303 IVON01 = 2                                                        03660004
  369.       GO TO 304                                                         03670004
  370.   302 IVON01 = 3                                                        03680004
  371.       GO TO 303                                                         03690004
  372.   304 GO TO 40300                                                       03700004
  373. 30300 IVDELE = IVDELE + 1                                               03710004
  374.       WRITE (I02,80003) IVTNUM                                          03720004
  375.       IF (ICZERO) 40300,  311, 40300                                    03730004
  376. 40300 IF (IVON01 - 2) 20300,10300,20300                                 03740004
  377. 10300 IVPASS = IVPASS + 1                                               03750004
  378.       WRITE (I02,80001) IVTNUM                                          03760004
  379.       GO TO  311                                                        03770004
  380. 20300 IVFAIL = IVFAIL + 1                                               03780004
  381.       IVCOMP = IVON01                                                   03790004
  382.       IVCORR = 2                                                        03800004
  383.       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          03810004
  384.   311 CONTINUE                                                          03820004
  385.       IVTNUM =  31                                                      03830004
  386. C                                                                       03840004
  387. C      ****  TEST 031  ****                                             03850004
  388. C     TEST 31 - UNCONDITIONAL GO TO STATEMENT TEST                      03860004
  389. C                                                                       03870004
  390.       IF (ICZERO) 30310,  310, 30310                                    03880004
  391.   310 CONTINUE                                                          03890004
  392.       IVON01 = 1                                                        03900004
  393.       GO TO 316                                                         03910004
  394.   313 GO TO 317                                                         03920004
  395.   314 IVON01 = 3                                                        03930004
  396.       GO TO 40310                                                       03940004
  397.   315 GO TO 313                                                         03950004
  398.   316 GO TO 315                                                         03960004
  399.   317 GO TO 314                                                         03970004
  400. 30310 IVDELE = IVDELE + 1                                               03980004
  401.       WRITE (I02,80003) IVTNUM                                          03990004
  402.       IF (ICZERO) 40310,  321, 40310                                    04000004
  403. 40310 IF (IVON01 - 3) 20310, 10310, 20310                               04010004
  404. 10310 IVPASS = IVPASS + 1                                               04020004
  405.       WRITE (I02,80001) IVTNUM                                          04030004
  406.       GO TO  321                                                        04040004
  407. 20310 IVFAIL = IVFAIL + 1                                               04050004
  408.       IVCOMP=IVON01                                                     04060004
  409.       IVCORR = 3                                                        04070004
  410.       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          04080004
  411.   321 CONTINUE                                                          04090004
  412.       IVTNUM =  32                                                      04100004
  413. C                                                                       04110004
  414. C      ****  TEST 032  ****                                             04120004
  415. C         TEST 32 - ARITHMETIC IF STATEMENT AND UNCONDITIONAL GO TO     04130004
  416. C                   STATEMENT                                           04140004
  417. C     THIS TEST COMBINES THE BASIC ARITHMETIC IF STATEMENTS AND         04150004
  418. C     UNCONDITIONAL GO TO STATEMENTS IN ONE TEST.                       04160004
  419. C                                                                       04170004
  420.       IF (ICZERO) 30320,  320, 30320                                    04180004
  421.   320 CONTINUE                                                          04190004
  422.       IVON01 = 1                                                        04200004
  423.       GO TO 322                                                         04210004
  424.   324 IVON01 = 2                                                        04220004
  425.       IF (IVON01 -1) 323, 323, 325                                      04230004
  426.   327 IVON01 = 5                                                        04240004
  427.       GO TO 328                                                         04250004
  428.   326 IVON01 = -4                                                       04260004
  429.       IF (IVON01 + 4) 323, 327, 323                                     04270004
  430.   322 IF (IVON01 - 1) 323, 324, 323                                     04280004
  431.   323 GO TO 20320                                                       04290004
  432.   325 IVON01 = 3                                                        04300004
  433.       IF (IVON01 -4) 326,323,323                                        04310004
  434.   328 GO TO 40320                                                       04320004
  435. 30320 IVDELE = IVDELE + 1                                               04330004
  436.       WRITE (I02,80003) IVTNUM                                          04340004
  437.       IF (ICZERO) 40320,  331, 40320                                    04350004
  438. 40320 IF (IVON01 - 5) 20320, 10320, 20320                               04360004
  439. 10320 IVPASS = IVPASS + 1                                               04370004
  440.       WRITE (I02,80001) IVTNUM                                          04380004
  441.       GO TO  331                                                        04390004
  442. 20320 IVFAIL = IVFAIL + 1                                               04400004
  443.       IVCOMP=IVON01                                                     04410004
  444.       IVCORR=5                                                          04420004
  445.       WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          04430004
  446.   331 CONTINUE                                                          04440004
  447. C                                                                       04450004
  448. C     WRITE PAGE FOOTINGS AND RUN SUMMARIES                             04460004
  449. 99999 CONTINUE                                                          04470004
  450.       WRITE (I02,90002)                                                 04480004
  451.       WRITE (I02,90006)                                                 04490004
  452.       WRITE (I02,90002)                                                 04500004
  453.       WRITE (I02,90002)                                                 04510004
  454.       WRITE (I02,90007)                                                 04520004
  455.       WRITE (I02,90002)                                                 04530004
  456.       WRITE (I02,90008)  IVFAIL                                         04540004
  457.       WRITE (I02,90009) IVPASS                                          04550004
  458.       WRITE (I02,90010) IVDELE                                          04560004
  459. C                                                                       04570004
  460. C                                                                       04580004
  461. C     TERMINATE ROUTINE EXECUTION                                       04590004
  462.       STOP                                                              04600004
  463. C                                                                       04610004
  464. C     FORMAT STATEMENTS FOR PAGE HEADERS                                04620004
  465. 90000 FORMAT (1H1)                                                      04630004
  466. 90002 FORMAT (1H )                                                      04640004
  467. 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM)            04650004
  468. 90003 FORMAT (1H ,21X,11HVERSION 2.1)                                   04660004
  469. 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978)        04670004
  470. 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 04680004
  471. 90006 FORMAT (1H ,5X,46H----------------------------------------------) 04690004
  472. 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST)                             04700004
  473. C                                                                       04710004
  474. C     FORMAT STATEMENTS FOR RUN SUMMARIES                               04720004
  475. 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED)                        04730004
  476. 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED)                              04740004
  477. 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED)                             04750004
  478. C                                                                       04760004
  479. C     FORMAT STATEMENTS FOR TEST RESULTS                                04770004
  480. 80001 FORMAT (1H ,4X,I5,7X,4HPASS)                                      04780004
  481. 80002 FORMAT (1H ,4X,I5,7X,4HFAIL)                                      04790004
  482. 80003 FORMAT (1H ,4X,I5,7X,7HDELETED)                                   04800004
  483. 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6)                         04810004
  484. 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5)                    04820004
  485. C                                                                       04830004
  486. 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM004)                          04840004
  487.       END                                                               04850004
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement