blob: 97d7fc8760184ba9947099bbc32b866ec7d4b8ba [file] [log] [blame]
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