| PROGRAM FM109 |
| |
| C COMMENT SECTION 00010109 |
| C 00020109 |
| C FM109 00030109 |
| C 00040109 |
| C THIS ROUTINE TESTS THE BASIC OPTIONS REGARDING THE SIMPLE 00050109 |
| C FORMATTED WRITE STATEMENT OF FORM 00060109 |
| C WRITE (U,F) OR 00070109 |
| C WRITE (U,F) L 00080109 |
| C WHERE U IS A LOGICAL UNIT NUMBER 00090109 |
| C F IS A FORMAT STATEMENT LABEL, AND 00100109 |
| C L IS A LIST OF INTEGER VARIABLES. 00110109 |
| C THE FORMAT STATEMENT F CONTAINS NH HOLLERITH FIELD DESCRIPTORS, 00120109 |
| C NX BLANK FIELD DESCRIPTORS AND IW NUMERIC FIELD DESCRIPTORS. 00130109 |
| C 00140109 |
| C THIS ROUTINE TESTS WHETHER THE FIRST CHARACTER OF A FORMAT 00150109 |
| C RECORD FOR PRINTER OUTPUT DETERMINES VERTICAL SPACING AS FOLLOWS 00160109 |
| C 1 - ADVANCE TO FIRST LINE OF NEXT PAGE 00170109 |
| C BLANK - ONE LINE 00180109 |
| C 0 - ADVANCE TWO LINES BEFORE PRINTING 00190109 |
| C + - DO NOT ADVANCE BEFORE PRINTING - ADVANCE 0 00200109 |
| C 00210109 |
| C REFERENCES 00220109 |
| C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00230109 |
| C X3.9-1978 00240109 |
| C 00250109 |
| C SECTION 8, SPECIFICATION STATEMENTS 00260109 |
| C SECTION 9, DATA STATEMENT 00270109 |
| C SECTION 11.10, DO STATEMENT 00280109 |
| C SECTION 12, INPUT/OUTPUT STATEMENTS 00290109 |
| C SECTION 12.8.2, INPUT/OUTPUT LIST 00300109 |
| C SECTION 12.9.5.2, FORMATTED DATA TRANSFER 00310109 |
| C SECTION 13, FORMAT STATEMENT 00320109 |
| C SECTION 13.2.1, EDIT DESCRIPTORS 00330109 |
| C 00340109 |
| C ALL OF THE RESULTS OF THIS ROUTINE MUST BE VISUALLY CHECKED 00350109 |
| C ON THE OUTPUT REPORT. THE USUAL TEST CODE FOR PASS, FAIL, OR 00360109 |
| C DELETE DOES NOT APPLY TO THIS ROUTINE. IF ANY TEST IS TO BE 00370109 |
| C DELETED, CHANGE THE OFFENDING WRITE OR FORMAT STATEMENT TO A 00380109 |
| C COMMENT. THE PERSON RESPONSIBLE FOR CHECKING THE OUTPUT MUST ALSO00390109 |
| C CHECK THE COMPILER LISTING TO SEE IF ANY STATEMENTS HAVE BEEN 00400109 |
| C CHANGED TO COMMENTS. 00410109 |
| C 00420109 |
| C 00430109 |
| C ********************************************************** 00440109 |
| C 00450109 |
| C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00460109 |
| C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00470109 |
| C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00480109 |
| C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00490109 |
| C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00500109 |
| C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00510109 |
| C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00520109 |
| C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00530109 |
| C OF EXECUTING THESE TESTS. 00540109 |
| C 00550109 |
| C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00560109 |
| C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00570109 |
| C 00580109 |
| C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00590109 |
| C 00600109 |
| C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00610109 |
| C SOFTWARE STANDARDS VALIDATION GROUP 00620109 |
| C BUILDING 225 RM A266 00630109 |
| C GAITHERSBURG, MD 20899 00640109 |
| C ********************************************************** 00650109 |
| C 00660109 |
| C 00670109 |
| C 00680109 |
| C INITIALIZATION SECTION 00690109 |
| C 00700109 |
| C INITIALIZE CONSTANTS 00710109 |
| C ************** 00720109 |
| C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00730109 |
| I01 = 5 00740109 |
| C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00750109 |
| I02 = 6 00760109 |
| C SYSTEM ENVIRONMENT SECTION 00770109 |
| C 00780109 |
| CX010 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD. 00790109 |
| C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00800109 |
| C (UNIT NUMBER FOR CARD READER). 00810109 |
| CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00820109 |
| C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00830109 |
| C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00840109 |
| C 00850109 |
| CX020 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD. 00860109 |
| C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00870109 |
| C (UNIT NUMBER FOR PRINTER). 00880109 |
| CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00890109 |
| C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00900109 |
| C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00910109 |
| C 00920109 |
| IVPASS=0 00930109 |
| IVFAIL=0 00940109 |
| IVDELE=0 00950109 |
| ICZERO=0 00960109 |
| C 00970109 |
| C WRITE PAGE HEADERS 00980109 |
| WRITE (I02,90000) 00990109 |
| WRITE (I02,90001) 01000109 |
| WRITE (I02,90002) 01010109 |
| WRITE (I02, 90002) 01020109 |
| WRITE (I02,90003) 01030109 |
| WRITE (I02,90002) 01040109 |
| WRITE (I02,90004) 01050109 |
| WRITE (I02,90002) 01060109 |
| WRITE (I02,90011) 01070109 |
| WRITE (I02,90002) 01080109 |
| WRITE (I02,90002) 01090109 |
| WRITE (I02,90006) 01100109 |
| WRITE (I02,90002) 01110109 |
| C 01120109 |
| IVTNUM = 156 01130109 |
| C **** TEST 156 **** 01140109 |
| C TEST 156 - VERTICAL SPACING TEST 01150109 |
| C 1 IN FIRST CHARACTER OF FORMATTED PRINT RECORD MEANS 01160109 |
| C RECORD IS FIRST LINE AT TOP OF NEXT PAGE. 01170109 |
| C 01180109 |
| IF (ICZERO) 31560, 1560, 31560 01190109 |
| 1560 CONTINUE 01200109 |
| WRITE (I02,80001) IVTNUM 01210109 |
| WRITE (I02,80331) 01220109 |
| 80331 FORMAT (5X,"LAST LINE ON THIS PAGE" ) 01230109 |
| WRITE (I02,80330) 01240109 |
| 80330 FORMAT ("1"," THIS IS FIRST LINE ON PAGE" ) 01250109 |
| GO TO 1571 01260109 |
| 31560 IVDELE = IVDELE + 1 01270109 |
| WRITE (I02,80003) IVTNUM 01280109 |
| 1571 CONTINUE 01290109 |
| IVTNUM = 157 01300109 |
| C 01310109 |
| C **** TEST 157 **** 01320109 |
| C TEST 157 - VERTICAL SPACING TEST 01330109 |
| C PRINT BLANK LINES 01340109 |
| C 01350109 |
| C 01360109 |
| IF (ICZERO) 31570, 1570, 31570 01370109 |
| 1570 CONTINUE 01380109 |
| WRITE (I02,90002) 01390109 |
| WRITE (I02,80001) IVTNUM 01400109 |
| WRITE (I02,80340) 01410109 |
| 80340 FORMAT (" ", 10X) 01420109 |
| WRITE (I02,80341) 01430109 |
| 80341 FORMAT (" THERE IS ONE BLANK LINE BEFORE THIS LINE" ) 01440109 |
| WRITE (I02,80342) 01450109 |
| WRITE (I02,80342) 01460109 |
| 80342 FORMAT (" " ) 01470109 |
| WRITE (I02,80343) 01480109 |
| 80343 FORMAT (" THERE ARE TWO BLANK LINES BEFORE THIS LINE" ) 01490109 |
| WRITE (I02,80344) 01500109 |
| WRITE (I02,80344) 01510109 |
| WRITE (I02,80344) 01520109 |
| 80344 FORMAT (11X) 01530109 |
| WRITE (I02,80345) 01540109 |
| 80345 FORMAT (" THERE ARE THREE BLANK LINES BEFORE THIS LINE" ) 01550109 |
| GO TO 1581 01560109 |
| 31570 IVDELE = IVDELE + 1 01570109 |
| WRITE (I02,80003) IVTNUM 01580109 |
| 1581 CONTINUE 01590109 |
| IVTNUM = 158 01600109 |
| C 01610109 |
| C **** TEST 158 **** 01620109 |
| C TEST 158 - PRINT 54 CHARACTERS 01630109 |
| C 01640109 |
| C 01650109 |
| IF (ICZERO) 31580, 1580, 31580 01660109 |
| 1580 CONTINUE 01670109 |
| WRITE (I02,90002) 01680109 |
| WRITE (I02,80001)IVTNUM 01690109 |
| WRITE (I02,80351) 01700109 |
| 80351 FORMAT (" NEXT LINE CONTAINS 54 CHARACTERS" ) 01710109 |
| WRITE (I02,80350) 01720109 |
| 80350 FORMAT(" 123456789012345678901234567890123456789012345678901234" )01730109 |
| GO TO 1591 01740109 |
| 31580 IVDELE = IVDELE + 1 01750109 |
| WRITE (I02,80003) IVTNUM 01760109 |
| 1591 CONTINUE 01770109 |
| IVTNUM = 159 01780109 |
| C 01790109 |
| C **** TEST 159 **** 01800109 |
| C TEST 159 - NUMERIC FIELD DESCRIPTOR I1 01810109 |
| C 01820109 |
| IF (ICZERO) 31590, 1590, 31590 01830109 |
| 1590 CONTINUE 01840109 |
| WRITE (I02,90002) 01850109 |
| WRITE (I02,80001) IVTNUM 01860109 |
| WRITE (I02,80361) 01870109 |
| 80361 FORMAT (" ",10X,"THIS TEST PRINTS 3 UNDER I1 DESCRIPTOR" ) 01880109 |
| IVON01 = 3 01890109 |
| WRITE (I02,80360) IVON01 01900109 |
| 80360 FORMAT (" ",10X,I1) 01910109 |
| GO TO 1601 01920109 |
| 31590 IVDELE = IVDELE + 1 01930109 |
| WRITE (I02,80003) IVTNUM 01940109 |
| 1601 CONTINUE 01950109 |
| IVTNUM = 160 01960109 |
| C 01970109 |
| C **** TEST 160 **** 01980109 |
| C TEST 160 - NUMERIC FIELD DESCRIPTOR I2 01990109 |
| C 02000109 |
| IF (ICZERO) 31600, 1600, 31600 02010109 |
| 1600 CONTINUE 02020109 |
| WRITE (I02,90002) 02030109 |
| WRITE (I02,80001) IVTNUM 02040109 |
| WRITE (I02,80371) 02050109 |
| 80371 FORMAT (11X,"THIS TEST PRINTS 15 UNDER I2 DESCRIPTOR" ) 02060109 |
| IVON01 = 15 02070109 |
| WRITE (I02,80370) IVON01 02080109 |
| 80370 FORMAT (" ",10X,I2) 02090109 |
| GO TO 1611 02100109 |
| 31600 IVDELE = IVDELE + 1 02110109 |
| WRITE (I02,80003) IVTNUM 02120109 |
| 1611 CONTINUE 02130109 |
| IVTNUM = 161 02140109 |
| C 02150109 |
| C **** TEST 161 **** 02160109 |
| C TEST 161 - NUMERIC FIELD DESCRIPTOR I3 02170109 |
| C 02180109 |
| IF (ICZERO) 31610, 1610, 31610 02190109 |
| 1610 CONTINUE 02200109 |
| WRITE (I02,90002) 02210109 |
| WRITE (I02,80001) IVTNUM 02220109 |
| WRITE (I02,80381) 02230109 |
| 80381 FORMAT (11X,"THIS TEST PRINTS 291 UNDER I3 DESCRIPTOR" ) 02240109 |
| IVON01 = 291 02250109 |
| WRITE (I02,80380) IVON01 02260109 |
| 80380 FORMAT (11X,I3) 02270109 |
| GO TO 1621 02280109 |
| 31610 IVDELE = IVDELE + 1 02290109 |
| WRITE (I02,80003) IVTNUM 02300109 |
| 1621 CONTINUE 02310109 |
| IVTNUM = 162 02320109 |
| C 02330109 |
| C **** TEST 162 **** 02340109 |
| C TEST 162 - NUMERIC FIELD DESCRIPTOR I4 02350109 |
| C 02360109 |
| IF (ICZERO) 31620, 1620, 31620 02370109 |
| 1620 CONTINUE 02380109 |
| WRITE (I02,90002) 02390109 |
| WRITE (I02,80001) IVTNUM 02400109 |
| WRITE (I02,80391) 02410109 |
| 80391 FORMAT (11X,"THIS TEST PRINTS 4321 UNDER I4 DESCRIPTOR" ) 02420109 |
| IVON01 = 4321 02430109 |
| WRITE (I02,80390) IVON01 02440109 |
| 80390 FORMAT (11X,I4) 02450109 |
| GO TO 1631 02460109 |
| 31620 IVDELE = IVDELE + 1 02470109 |
| WRITE (I02,80003) IVTNUM 02480109 |
| 1631 CONTINUE 02490109 |
| IVTNUM = 163 02500109 |
| C 02510109 |
| C **** TEST 163 **** 02520109 |
| C TEST 163 - NUMERIC FIELD DESCRIPTOR I5 02530109 |
| C 02540109 |
| IF (ICZERO) 31630, 1630, 31630 02550109 |
| 1630 CONTINUE 02560109 |
| WRITE (I02,90002) 02570109 |
| WRITE (I02,80001) IVTNUM 02580109 |
| WRITE (I02,80401) 02590109 |
| 80401 FORMAT (" ",10X,"THIS TEST PRINTS 12345 UNDER I5 DESCRIPTOR" ) 02600109 |
| IVON01 = 12345 02610109 |
| WRITE (I02,80400) IVON01 02620109 |
| 80400 FORMAT (" ",10X,I5) 02630109 |
| GO TO 1641 02640109 |
| 31630 IVDELE = IVDELE + 1 02650109 |
| WRITE (I02,80003) IVTNUM 02660109 |
| 1641 CONTINUE 02670109 |
| IVTNUM = 164 02680109 |
| C 02690109 |
| C **** TEST 164 **** 02700109 |
| C TEST 164 - NUMERIC FIELD DESCRIPTORS, INTEGER CONVERSION 02710109 |
| C 02720109 |
| IF (ICZERO) 31640, 1640, 31640 02730109 |
| 1640 CONTINUE 02740109 |
| IVON01 = 1 02750109 |
| IVON02 = 22 02760109 |
| IVON03 = 333 02770109 |
| IVON04 = 4444 02780109 |
| IVON05 = 25555 02790109 |
| WRITE (I02,90002) 02800109 |
| WRITE (I02,80001) IVTNUM 02810109 |
| WRITE (I02,80411) 02820109 |
| 80411 FORMAT (3X,"THIS TEST PRINTS 1, 22, 333, 4444, AND 25555 UNDER" ) 02830109 |
| WRITE (I02,80412) 02840109 |
| 80412 FORMAT (10X,"(10X,I1,3X,I2,3X,I3,3X,I4,3X,I5)" ) 02850109 |
| WRITE (I02,80410) IVON01, IVON02, IVON03, IVON04, IVON05 02860109 |
| 80410 FORMAT (10X,I1,3X,I2,3X,I3,3X,I4,3X,I5) 02870109 |
| GO TO 1651 02880109 |
| 31640 IVDELE = IVDELE + 1 02890109 |
| WRITE (I02,80003) IVTNUM 02900109 |
| 1651 CONTINUE 02910109 |
| IVTNUM = 165 02920109 |
| C 02930109 |
| C **** TEST 165 **** 02940109 |
| C TEST 165 - HOLLERITH, NUMERIC AND X FIELD DESCRIPTORS 02950109 |
| C COMBINE HOLLERITH, NUMERIC AND X FIELD DESCRIPTORS IN 02960109 |
| C ONE FORMAT STATEMENT 02970109 |
| C 02980109 |
| IF (ICZERO) 31650, 1650, 31650 02990109 |
| 1650 CONTINUE 03000109 |
| IVON01=113 03010109 |
| IVON02=8 03020109 |
| WRITE (I02,90002) 03030109 |
| WRITE (I02,80001) IVTNUM 03040109 |
| WRITE (I02,80421) 03050109 |
| 80421 FORMAT (10X,"NEXT TWO LINES ARE IDENTICAL" ) 03060109 |
| WRITE (I02,80422) 03070109 |
| 80422 FORMAT (" IVON01 = 113 IVON02 = 8" ) 03080109 |
| WRITE (I02,80420) IVON01, IVON02 03090109 |
| 80420 FORMAT (6X,"IVON01 =",I5,3X,"IVON02 =",I5) 03100109 |
| GO TO 1661 03110109 |
| 31650 IVDELE = IVDELE + 1 03120109 |
| WRITE (I02,80003) IVTNUM 03130109 |
| 1661 CONTINUE 03140109 |
| IVTNUM = 166 03150109 |
| C 03160109 |
| C **** TEST 166 **** 03170109 |
| C TEST 166 - NUMERIC FIELD DESCRIPTOR I2 03180109 |
| C PRINT NEGATIVE INTEGER 03190109 |
| C 03200109 |
| IF (ICZERO) 31660, 1660, 31660 03210109 |
| 1660 CONTINUE 03220109 |
| IVON01 = -1 03230109 |
| WRITE (I02,90002) 03240109 |
| WRITE (I02,80001) IVTNUM 03250109 |
| WRITE (I02,80431) 03260109 |
| 80431 FORMAT (11X,"THIS TEST PRINTS -1 UNDER I2 DESCRIPTOR" ) 03270109 |
| WRITE (I02,80430) IVON01 03280109 |
| 80430 FORMAT (11X,I2) 03290109 |
| GO TO 1671 03300109 |
| 31660 IVDELE = IVDELE + 1 03310109 |
| WRITE (I02,80003) IVTNUM 03320109 |
| 1671 CONTINUE 03330109 |
| IVTNUM = 167 03340109 |
| C 03350109 |
| C **** TEST 167 **** 03360109 |
| C TEST 167 - NUMERIC FIELD DESCRIPTOR I3 03370109 |
| C PRINT NEGATIVE INTEGER 03380109 |
| C 03390109 |
| IF (ICZERO) 31670, 1670, 31670 03400109 |
| 1670 CONTINUE 03410109 |
| IVON01 = -22 03420109 |
| WRITE (I02,90002) 03430109 |
| WRITE (I02,80001) IVTNUM 03440109 |
| WRITE (I02,80441) 03450109 |
| 80441 FORMAT (11X,"THIS TEST PRINTS -22 UNDER I3 DESCRIPTOR" ) 03460109 |
| WRITE (I02,80440) IVON01 03470109 |
| 80440 FORMAT (11X,I3) 03480109 |
| GO TO 1681 03490109 |
| 31670 IVDELE = IVDELE + 1 03500109 |
| WRITE (I02,80003) IVTNUM 03510109 |
| 1681 CONTINUE 03520109 |
| IVTNUM = 168 03530109 |
| C 03540109 |
| C **** TEST 168 **** 03550109 |
| C TEST 168 - NUMERIC FIELD DESCRIPTOR I4 03560109 |
| C PRINT NEGATIVE INTEGER 03570109 |
| C 03580109 |
| IF (ICZERO) 31680, 1680, 31680 03590109 |
| 1680 CONTINUE 03600109 |
| IVON01 = -333 03610109 |
| WRITE (I02,90002) 03620109 |
| WRITE (I02,80001) IVTNUM 03630109 |
| WRITE (I02,80451) 03640109 |
| 80451 FORMAT (11X,"THIS TEST PRINTS -333 UNDER I4 DESCRIPTOR" ) 03650109 |
| WRITE (I02,80450) IVON01 03660109 |
| 80450 FORMAT (11X,I4) 03670109 |
| GO TO 1691 03680109 |
| 31680 IVDELE = IVDELE + 1 03690109 |
| WRITE (I02,80003) IVTNUM 03700109 |
| 1691 CONTINUE 03710109 |
| IVTNUM = 169 03720109 |
| C 03730109 |
| C **** TEST 169 **** 03740109 |
| C TEST 169 - NUMERIC FIELD DESCRIPTOR I5 03750109 |
| C PRINT NEGATIVE INTEGER 03760109 |
| C 03770109 |
| IF (ICZERO) 31690, 1690, 31690 03780109 |
| 1690 CONTINUE 03790109 |
| IVON01 = -4444 03800109 |
| WRITE (I02,90002) 03810109 |
| WRITE (I02,80001) IVTNUM 03820109 |
| WRITE (I02,80461) 03830109 |
| 80461 FORMAT (11X,"THIS TEST PRINTS -4444 UNDER I5 DESCRIPTOR" ) 03840109 |
| WRITE (I02,80460) IVON01 03850109 |
| 80460 FORMAT (11X,I5) 03860109 |
| GO TO 1701 03870109 |
| 31690 IVDELE = IVDELE + 1 03880109 |
| WRITE (I02,80003) IVTNUM 03890109 |
| 1701 CONTINUE 03900109 |
| IVTNUM = 170 03910109 |
| C 03920109 |
| C **** TEST 170 **** 03930109 |
| C TEST 170 - NUMERIC FIELD DESCRIPTOR I6 03940109 |
| C PRINT NEGATIVE INTEGER 03950109 |
| C 03960109 |
| IF (ICZERO) 31700, 1700, 31700 03970109 |
| 1700 CONTINUE 03980109 |
| IVON01 = -15555 03990109 |
| WRITE (I02,90002) 04000109 |
| WRITE (I02,80001) IVTNUM 04010109 |
| WRITE (I02,80471) 04020109 |
| 80471 FORMAT (11X,"THIS TEST PRINTS -15555 UNDER DESCRIPTOR I6" ) 04030109 |
| WRITE (I02,80470) IVON01 04040109 |
| 80470 FORMAT (11X,I6) 04050109 |
| GO TO 1711 04060109 |
| 31700 IVDELE = IVDELE + 1 04070109 |
| WRITE (I02,80003) IVTNUM 04080109 |
| 1711 CONTINUE 04090109 |
| IVTNUM = 171 04100109 |
| C 04110109 |
| C **** TEST 171 **** 04120109 |
| C TEST 171 - NUMERIC FIELD DESCRIPTORS, INTEGER CONVERSION 04130109 |
| C PRINT NEGATIVE INTEGERS 04140109 |
| C 04150109 |
| IF (ICZERO) 31710, 1710, 31710 04160109 |
| 1710 CONTINUE 04170109 |
| IVON01 = -9 04180109 |
| IVON02 = -88 04190109 |
| IVON03 = -777 04200109 |
| IVON04 = -6666 04210109 |
| IVON05 = -25555 04220109 |
| WRITE (I02,90002) 04230109 |
| WRITE (I02,80001) IVTNUM 04240109 |
| WRITE (I02,80481) 04250109 |
| 80481 FORMAT (8X,"THIS TEST PRINTS -9, -88, -777, -6666, AND -25555" ) 04260109 |
| WRITE (I02,80482) 04270109 |
| 80482 FORMAT (11X,"UNDER FORMAT 10X,I2,3X,I3,3X,I4,3X,I5,3X,I6" ) 04280109 |
| WRITE (I02,80480) IVON01,IVON02,IVON03,IVON04,IVON05 04290109 |
| 80480 FORMAT (10X,I2,3X,I3,3X,I4,3X,I5,3X,I6) 04300109 |
| GO TO 1721 04310109 |
| 31710 IVDELE = IVDELE + 1 04320109 |
| WRITE (I02,80003) IVTNUM 04330109 |
| 1721 CONTINUE 04340109 |
| IVTNUM = 172 04350109 |
| C 04360109 |
| C **** TEST 172 **** 04370109 |
| C TEST 172 - NUMERIC FIELD DESCRIPTOR I5 04380109 |
| C MIX POSITIVE AND NEGATIVE INTEGER OUTPUT IN ONE FORMAT 04390109 |
| C STATEMENT ALL UNDER I5 DESCRIPTOR 04400109 |
| C 04410109 |
| IF (ICZERO) 31720, 1720, 31720 04420109 |
| 1720 CONTINUE 04430109 |
| IVON01 =5 04440109 |
| IVON02 = -54 04450109 |
| IVON03 = 543 04460109 |
| IVON04 = -5432 04470109 |
| IVON05=32000 04480109 |
| WRITE (I02,90002) 04490109 |
| WRITE (I02,80001) IVTNUM 04500109 |
| WRITE (I02,80491) 04510109 |
| 80491 FORMAT (18X,"THIS TEST PRINTS 5, -54, 543, -5432, AND 32000" ) 04520109 |
| WRITE (I02,80492) 04530109 |
| 80492 FORMAT (11X,"UNDER I5 NUMERIC FIELD DESCRIPTOR" ) 04540109 |
| WRITE (I02,80490) IVON01,IVON02,IVON03,IVON04,IVON05 04550109 |
| 80490 FORMAT (11X,I5,3X,I5,3X,I5,3X,I5,3X,I5) 04560109 |
| GO TO 1731 04570109 |
| 31720 IVDELE = IVDELE + 1 04580109 |
| WRITE (I02,80003) IVTNUM 04590109 |
| 1731 CONTINUE 04600109 |
| IVTNUM = 173 04610109 |
| C 04620109 |
| C **** TEST 173 **** 04630109 |
| C TEST 173 - VERTICAL SPACING TEST USING THE 1H0 AS A DOUBLE 04640109 |
| C SPACE BEFORE PRINT ( ADVANCE TWO LINES BEFORE WRITING ). THE 0 04650109 |
| C AS A CARRIAGE CONTROL CHARACTER IS USED WITH THE BLANK CHARACTER 04660109 |
| C TO GET AN ODD NUMBER OF LINES TO ADVANCE BEFORE WRITING. 04670109 |
| C 04680109 |
| IF (ICZERO) 31730, 1730, 31730 04690109 |
| 1730 CONTINUE 04700109 |
| WRITE (I02,90002) 04710109 |
| WRITE (I02,80001) IVTNUM 04720109 |
| WRITE (I02,81730) 04730109 |
| 81730 FORMAT (" ", 10X) 04740109 |
| WRITE (I02,81731) 04750109 |
| 81731 FORMAT (" THERE IS ONE BLANK LINE BEFORE THIS LINE" ) 04760109 |
| WRITE ( I02, 81732 ) 04770109 |
| 81732 FORMAT ( "0",10X) 04780109 |
| WRITE ( I02, 81733 ) 04790109 |
| 81733 FORMAT (" THERE ARE TWO BLANK LINES BEFORE THIS LINE" ) 04800109 |
| WRITE ( I02, 81730 ) 04810109 |
| WRITE ( I02, 81732 ) 04820109 |
| WRITE ( I02, 81735 ) 04830109 |
| 81735 FORMAT (" THERE ARE THREE BLANK LINES BEFORE THIS LINE" ) 04840109 |
| WRITE ( I02, 81732 ) 04850109 |
| WRITE ( I02, 81732 ) 04860109 |
| WRITE ( I02, 81736 ) 04870109 |
| 81736 FORMAT (" THERE ARE FOUR BLANK LINES BEFORE THIS LINE" ) 04880109 |
| GO TO 1741 04890109 |
| 31730 IVDELE = IVDELE + 1 04900109 |
| WRITE (I02,80003) IVTNUM 04910109 |
| 1741 CONTINUE 04920109 |
| IVTNUM = 174 04930109 |
| C 04940109 |
| C **** TEST 174 **** 04950109 |
| C TEST 174 - VERTICAL SPACING TEST USING THE + CHARACTER TO 04960109 |
| C SUPPRESS ADVANCING BEFORE THE PRINT AND THIS SHOULD CAUSE TWO AND 04970109 |
| C THEN THREE SUCCESSIVE LINES TO OVERPRINT 04980109 |
| C 04990109 |
| IF (ICZERO) 31740, 1740, 31740 05000109 |
| 1740 CONTINUE 05010109 |
| WRITE ( I02, 90002 ) 05020109 |
| WRITE ( I02, 80001 ) IVTNUM 05030109 |
| WRITE ( I02, 81740 ) 05040109 |
| 81740 FORMAT ( " " ) 05050109 |
| WRITE ( I02, 81741 ) 05060109 |
| 81741 FORMAT ( " ",10X, "1ST LINE - AABBCCDD" ) 05070109 |
| WRITE ( I02, 81742 ) 05080109 |
| 81742 FORMAT ( "+", 25X, "WWXXYYZZ OVERPRINTS - 2ND LINE" ) 05090109 |
| WRITE ( I02, 81743 ) 05100109 |
| 81743 FORMAT ( /////" ") 05110109 |
| C SKIP DOWN A FEW LINES TO GET SET - OK AWAY WE GO.. 05120109 |
| WRITE ( I02, 81740 ) 05130109 |
| WRITE ( I02, 81744 ) 05140109 |
| 81744 FORMAT ( " ", 10X, "11 44 1ST LINE" ) 05150109 |
| WRITE ( I02, 81745 ) 05160109 |
| 81745 FORMAT ( "+", 10X, " 22 55 2ND" ) 05170109 |
| WRITE ( I02, 81746 ) 05180109 |
| 81746 FORMAT ( "+", 10X, " 33 66 3RD" ) 05190109 |
| GO TO 1751 05200109 |
| 31740 IVDELE = IVDELE + 1 05210109 |
| WRITE (I02,80003) IVTNUM 05220109 |
| 1751 CONTINUE 05230109 |
| IVTNUM = 175 05240109 |
| C 05250109 |
| C **** TEST 175 **** 05260109 |
| C TEST 175 - NUMERIC FIELD DESCRIPTOR F3.0 05270109 |
| C 05280109 |
| IF (ICZERO) 31750, 1750, 31750 05290109 |
| 1750 CONTINUE 05300109 |
| WRITE ( I02, 90002 ) 05310109 |
| WRITE ( I02, 80001 ) IVTNUM 05320109 |
| WRITE ( I02, 81751 ) 05330109 |
| 81751 FORMAT (" ",10X,"THIS TESTS PRINTS 3. UNDER F3.0 DESCRIPTOR" ) 05340109 |
| RVON01 = 3. 05350109 |
| WRITE ( I02, 81752 ) RVON01 05360109 |
| 81752 FORMAT ( " ",10X, F3.0 ) 05370109 |
| GO TO 1761 05380109 |
| 31750 IVDELE = IVDELE + 1 05390109 |
| WRITE (I02,80003) IVTNUM 05400109 |
| 1761 CONTINUE 05410109 |
| IVTNUM = 176 05420109 |
| C 05430109 |
| C **** TEST 176 **** 05440109 |
| C TEST 176 - SIGNED NUMERIC FIELD DESCRIPTOR F4.0 05450109 |
| C 05460109 |
| IF (ICZERO) 31760, 1760, 31760 05470109 |
| 1760 CONTINUE 05480109 |
| WRITE ( I02, 90002 ) 05490109 |
| WRITE ( I02, 80001 ) IVTNUM 05500109 |
| WRITE ( I02, 81761 ) 05510109 |
| 81761 FORMAT ( " ",10X,"THIS TEST PRINTS -15. WITH F4.0 DESCRIPTOR" ) 05520109 |
| RVON01 = -15. 05530109 |
| WRITE ( I02, 81762 ) RVON01 05540109 |
| 81762 FORMAT ( " ",10X, F4.0) 05550109 |
| GO TO 1771 05560109 |
| 31760 IVDELE = IVDELE + 1 05570109 |
| WRITE (I02,80003) IVTNUM 05580109 |
| 1771 CONTINUE 05590109 |
| IVTNUM = 177 05600109 |
| C 05610109 |
| C **** TEST 177 **** 05620109 |
| C TEST 177 - SIGNED NUMERIC FIELD DESCRIPTOR E12.5 05630109 |
| C 05640109 |
| IF (ICZERO) 31770, 1770, 31770 05650109 |
| 1770 CONTINUE 05660109 |
| WRITE ( I02, 90002 ) 05670109 |
| WRITE ( I02, 80001 ) IVTNUM 05680109 |
| WRITE ( I02, 81771 ) 05690109 |
| 81771 FORMAT ( " ", 10X,"THIS TEST PRINTS -0.12345E+03 USING E12.5" ) 05700109 |
| RVON01 = -123.45 05710109 |
| WRITE ( I02, 81772 ) RVON01 05720109 |
| 81772 FORMAT ( " ", 10X, E12.5 ) 05730109 |
| GO TO 1781 05740109 |
| 31770 IVDELE = IVDELE + 1 05750109 |
| WRITE (I02,80003) IVTNUM 05760109 |
| 1781 CONTINUE 05770109 |
| C 05780109 |
| C WRITE PAGE FOOTINGS 05790109 |
| 99999 CONTINUE 05800109 |
| WRITE (I02,90002) 05810109 |
| WRITE (I02,90006) 05820109 |
| WRITE (I02,90002) 05830109 |
| WRITE (I02,90007) 05840109 |
| C 05850109 |
| C TERMINATE ROUTINE EXECUTION 05860109 |
| STOP 05870109 |
| C 05880109 |
| C FORMAT STATEMENTS FOR PAGE HEADERS 05890109 |
| 90000 FORMAT ("1") 05900109 |
| 90002 FORMAT (" ") 05910109 |
| 90001 FORMAT (" ",10X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 05920109 |
| 90003 FORMAT (" ",21X,"VERSION 2.1" ) 05930109 |
| 90004 FORMAT (" ",10X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" ) 05940109 |
| 90005 FORMAT (" ",5X,"TEST",5X,"PASS/FAIL", 5X,"COMPUTED",8X,"CORRECT") 05950109 |
| 90006 FORMAT (" ",5X,"----------------------------------------------" ) 05960109 |
| 90011 FORMAT (" ",18X,"SUBSET LEVEL TEST" ) 05970109 |
| C FORMAT STATEMENTS FOR THIS ROUTINE 05980109 |
| 80001 FORMAT (10X,"TEST ",I5) 05990109 |
| 80003 FORMAT ( " ",4X,I5,7X,"DELETED") 06000109 |
| 90007 FORMAT (" ",20X,"END OF PROGRAM FM109" ) 06010109 |
| END 06020109 |