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