C COMMENT SECTION C C FM005 C C THIS ROUTINE TESTS THE BASIC ASSUMPTIONS REGARDING THE SIMPLE C FORMATTED WRITE STATEMENT OF FORM C WRITE (U,F) OR C WRITE (U,F) L C WHERE U IS A LOGICAL UNIT NUMBER C F IS A FORMAT STATEMENT LABEL, AND C L IS A LIST OF INTEGER VARIABLES. C THE FORMAT STATEMENT F CONTAINS NH HOLLERITH FIELD DESCRIPTORS, C NX BLANK FIELD DESCRIPTORS AND IW NUMERIC FIELD DESCRIPTORS. C C THIS ROUTINE TESTS WHETHER THE FIRST CHARACTER OF A FORMAT C RECORD FOR PRINTER OUTPUT DETERMINES VERTICAL SPACING AS FOLLOWS C BLANK - ONE LINE C 1 - ADVANCE TO FIRST LINE OF NEXT PAGE C C REFERENCES C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, C X3.9-1978 C C SECTION 12.8.2, INPUT/OUTPUT LISTS C SECTION 12.9.5.2, READ, WRITE, AND PRINT STATEMENT C SECTION 12.9.5.2.3, PRINTING OF FORMATTED RECORDS C SECTION 13.5.2, H EDITING C SECTION 13.5.3.2, X EDITING C SECTION 13.5.9.1, NUMERIC EDITING C C ALL OF THE RESULTS OF THIS ROUTINE MUST BE VISUALLY CHECKED C ON THE OUTPUT REPORT. THE USUAL TEST CODE FOR PASS, FAIL, OR C DELETE DOES NOT APPLY TO THIS ROUTINE. IF ANY TEST IS TO BE C DELETED, CHANGE THE OFFENDING WRITE OR FORMAT STATEMENT TO A C COMMENT. THE PERSON RESPONSIBLE FOR CHECKING THE OUTPUT MUST ALSO C CHECK THE COMPILER LISTING TO SEE IF ANY STATEMENTS HAVE BEEN C CHANGED TO COMMENTS. C C ********************************************************** C C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT C OF EXECUTING THESE TESTS. C C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. C C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - C C DEPARTMENT OF THE NAVY C FEDERAL COBOL COMPILER TESTING SERVICE C WASHINGTON, D.C. 20376 C C ********************************************************** C C C C INITIALIZATION SECTION C C INITIALIZE CONSTANTS C ************** C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. I01 = 5 C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. I02 = 6 C SYSTEM ENVIRONMENT SECTION C CX010 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD. C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 C (UNIT NUMBER FOR CARD READER). CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. C CX020 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD. C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 C (UNIT NUMBER FOR PRINTER). CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. C IVPASS=0 IVFAIL=0 IVDELE=0 ICZERO=0 C C WRITE PAGE HEADERS WRITE (I02,90000) WRITE (I02,90001) WRITE (I02,90002) WRITE (I02, 90002) WRITE (I02,90003) WRITE (I02,90002) WRITE (I02,90004) WRITE (I02,90002) WRITE (I02,90011) WRITE (I02,90002) WRITE (I02,90002) WRITE (I02,90006) WRITE (I02,90002) 331 CONTINUE IVTNUM = 33 C C **** TEST 033 **** C TEST 33 - VERTICAL SPACING TEST C 1 IN FIRST CHARACTER OF FORMATTED PRINT RECORD MEANS C RECORD IS FIRST LINE AT TOP OF NEXT PAGE. C WRITE (I02,80001) IVTNUM WRITE (I02,80331) 80331 FORMAT (5X,22HLAST LINE ON THIS PAGE) WRITE (I02,80330) 80330 FORMAT (1H1,31H THIS IS FIRST LINE ON PAGE) 341 CONTINUE IVTNUM = 34 C C **** TEST 034 **** C TEST 34 - VERTICAL SPACING TEST C PRINT BLANK LINES C WRITE (I02,90002) WRITE (I02,80001) IVTNUM WRITE (I02,80340) 80340 FORMAT (1H , 10X) WRITE (I02,80341) 80341 FORMAT (41H THERE IS ONE BLANK LINE BEFORE THIS LINE) WRITE (I02,80342) WRITE (I02,80342) 80342 FORMAT (11H ) WRITE (I02,80343) 80343 FORMAT (43H THERE ARE TWO BLANK LINES BEFORE THIS LINE) WRITE (I02,80344) WRITE (I02,80344) WRITE (I02,80344) 80344 FORMAT (11X) WRITE (I02,80345) 80345 FORMAT (45H THERE ARE THREE BLANK LINES BEFORE THIS LINE) 351 CONTINUE IVTNUM = 35 C C **** TEST 035 **** C TEST 35 - PRINT 54 CHARACTERS C WRITE (I02,90002) WRITE (I02,80001)IVTNUM WRITE (I02,80351) 80351 FORMAT (33H NEXT LINE CONTAINS 54 CHARACTERS) WRITE (I02,80350) 80350 FORMAT(55H 123456789012345678901234567890123456789012345678901234) 361 CONTINUE IVTNUM = 36 C C **** TEST 036 **** C TEST 36 - NUMERIC FIELD DESCRIPTOR I1 C WRITE (I02,90000) WRITE (I02,90002) WRITE (I02,80001) IVTNUM WRITE (I02,80361) 80361 FORMAT (1H ,10X,38HTHIS TEST PRINTS 3 UNDER I1 DESCRIPTOR) IVON01 = 3 WRITE (I02,80360) IVON01 80360 FORMAT (1H ,10X,I1) 371 CONTINUE IVTNUM = 37 C C **** TEST 037 **** C TEST 37 - NUMERIC FIELD DESCRIPTOR I2 C WRITE (I02,90002) WRITE (I02,80001) IVTNUM WRITE (I02,80371) 80371 FORMAT (11X,39HTHIS TEST PRINTS 15 UNDER I2 DESCRIPTOR) IVON01 = 15 WRITE (I02,80370) IVON01 80370 FORMAT (1H ,10X,I2) 381 CONTINUE IVTNUM = 38 C C **** TEST 038 **** C TEST 38 - NUMERIC FIELD DESCRIPTOR I3 C WRITE (I02,90002) WRITE (I02,80001) IVTNUM WRITE (I02,80381) 80381 FORMAT (11X,40HTHIS TEST PRINTS 291 UNDER I3 DESCRIPTOR) IVON01 = 291 WRITE (I02,80380) IVON01 80380 FORMAT (11X,I3) 391 CONTINUE IVTNUM = 39 C C **** TEST 039 **** C TEST 39 - NUMERIC FIELD DESCRIPTOR I4 C WRITE (I02,90002) WRITE (I02,80001) IVTNUM WRITE (I02,80391) 80391 FORMAT (11X,41HTHIS TEST PRINTS 4321 UNDER I4 DESCRIPTOR) IVON01 = 4321 WRITE (I02,80390) IVON01 80390 FORMAT (11X,I4) 401 CONTINUE IVTNUM = 40 C C **** TEST 040 **** C TEST 40 - NUMERIC FIELD DESCRIPTOR I5 C WRITE (I02,90002) WRITE (I02,80001) IVTNUM WRITE (I02,80401) 80401 FORMAT (1H ,10X,42HTHIS TEST PRINTS 12345 UNDER I5 DESCRIPTOR) IVON01 = 12345 WRITE (I02,80400) IVON01 80400 FORMAT (1H ,10X,I5) 411 CONTINUE IVTNUM = 41 C C **** TEST 041 **** C TEST 41 - NUMERIC FIELD DESCRIPTORS, INTEGER CONVERSION C IVON01 = 1 IVON02 = 22 IVON03 = 333 IVON04 = 4444 IVON05 = 25555 WRITE (I02,90002) WRITE (I02,80001) IVTNUM WRITE (I02,80411) 80411 FORMAT (3X,50HTHIS TEST PRINTS 1, 22, 333, 4444, AND 25555 UNDER) WRITE (I02,80412) 80412 FORMAT (10X,32H(10X,I1,3X,I2,3X,I3,3X,I4,3X,I5)) WRITE (I02,80410) IVON01, IVON02, IVON03, IVON04, IVON05 80410 FORMAT (10X,I1,3X,I2,3X,I3,3X,I4,3X,I5) 421 CONTINUE IVTNUM = 42 C C **** TEST 042 **** C TEST 42 - HOLLERITH, NUMERIC AND X FIELD DESCRIPTORS C COMBINE HOLLERITH, NUMERIC AND X FIELD DESCRIPTORS IN C ONE FORMAT STATEMENT C IVON01=113 IVON02=8 WRITE (I02,90002) WRITE (I02,80001) IVTNUM WRITE (I02,80421) 80421 FORMAT (10X,28HNEXT TWO LINES ARE IDENTICAL) WRITE (I02,80422) 80422 FORMAT (35H IVON01 = 113 IVON02 = 8) WRITE (I02,80420) IVON01, IVON02 80420 FORMAT (6X,8HIVON01 =,I5,3X,8HIVON02 =,I5) 431 CONTINUE IVTNUM=43 C C **** TEST 043 **** C TEST 43 - NUMERIC FIELD DESCRIPTOR I2 C PRINT NEGATIVE INTEGER C IVON01 = -1 WRITE (I02,90000) WRITE (I02,90002) WRITE (I02,80001) IVTNUM WRITE (I02,80431) 80431 FORMAT (11X,39HTHIS TEST PRINTS -1 UNDER I2 DESCRIPTOR) WRITE (I02,80430) IVON01 80430 FORMAT (11X,I2) 441 CONTINUE IVTNUM = 44 C C **** TEST 044 **** C TEST 44 - NUMERIC FIELD DESCRIPTOR I3 C PRINT NEGATIVE INTEGER C IVON01 = -22 WRITE (I02,90002) WRITE (I02,80001) IVTNUM WRITE (I02,80441) 80441 FORMAT (11X,40HTHIS TEST PRINTS -22 UNDER I3 DESCRIPTOR) WRITE (I02,80440) IVON01 80440 FORMAT (11X,I3) 451 CONTINUE IVTNUM = 45 C C **** TEST 045 **** C TEST 45 - NUMERIC FIELD DESCRIPTOR I4 C PRINT NEGATIVE INTEGER C IVON01 = -333 WRITE (I02,90002) WRITE (I02,80001) IVTNUM WRITE (I02,80451) 80451 FORMAT (11X,41HTHIS TEST PRINTS -333 UNDER I4 DESCRIPTOR) WRITE (I02,80450) IVON01 80450 FORMAT (11X,I4) 461 CONTINUE IVTNUM = 46 C C **** TEST 046 **** C TEST 46 - NUMERIC FIELD DESCRIPTOR I5 C PRINT NEGATIVE INTEGER C IVON01 = -4444 WRITE (I02,90002) WRITE (I02,80001) IVTNUM WRITE (I02,80461) 80461 FORMAT (11X,42HTHIS TEST PRINTS -4444 UNDER I5 DESCRIPTOR) WRITE (I02,80460) IVON01 80460 FORMAT (11X,I5) 471 CONTINUE IVTNUM = 47 C C **** TEST 047 **** C TEST 47 - NUMERIC FIELD DESCRIPTOR I6 C PRINT NEGATIVE INTEGER C IVON01 = -15555 WRITE (I02,90002) WRITE (I02,80001) IVTNUM WRITE (I02,80471) 80471 FORMAT (11X,43HTHIS TEST PRINTS -15555 UNDER DESCRIPTOR I6) WRITE (I02,80470) IVON01 80470 FORMAT (11X,I6) 481 CONTINUE IVTNUM = 48 C C **** TEST 048 **** C TEST 48 - NUMERIC FIELD DESCRIPTORS, INTEGER CONVERSION C PRINT NEGATIVE INTEGERS C IVON01 = -9 IVON02 = -88 IVON03 = -777 IVON04 = -6666 IVON05 = -25555 WRITE (I02,90002) WRITE (I02,80001) IVTNUM WRITE (I02,80481) 80481 FORMAT (8X,49HTHIS TEST PRINTS -9, -88, -777, -6666, AND -25555) WRITE (I02,80482) 80482 FORMAT (11X,43HUNDER FORMAT 10X,I2,3X,I3,3X,I4,3X,I5,3X,I6) WRITE (I02,80480) IVON01,IVON02,IVON03,IVON04,IVON05 80480 FORMAT (10X,I2,3X,I3,3X,I4,3X,I5,3X,I6) 491 CONTINUE IVTNUM = 49 C C **** TEST 049 **** C TEST 49 - NUMERIC FIELD DESCRIPTOR I5 C MIX POSITIVE AND NEGATIVE INTEGER OUTPUT IN ONE FORMAT C STATEMENT ALL UNDER I5 DESCRIPTOR C IVON01 =5 IVON02 = -54 IVON03 = 543 IVON04 = -5432 IVON05=32000 WRITE (I02,90002) WRITE (I02,80001) IVTNUM WRITE (I02,80491) 80491 FORMAT (18X,46HTHIS TEST PRINTS 5, -54, 543, -5432, AND 32000) WRITE (I02,80492) 80492 FORMAT (11X,33HUNDER I5 NUMERIC FIELD DESCRIPTOR) WRITE (I02,80490) IVON01,IVON02,IVON03,IVON04,IVON05 80490 FORMAT (11X,I5,3X,I5,3X,I5,3X,I5,3X,I5) C C WRITE PAGE FOOTINGS 99999 CONTINUE WRITE (I02,90002) WRITE (I02,90006) WRITE (I02,90002) WRITE (I02,90007) C C TERMINATE ROUTINE EXECUTION STOP C C FORMAT STATEMENTS FOR PAGE HEADERS 90000 FORMAT (1H1) 90002 FORMAT (1H ) 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 90003 FORMAT (1H ,21X,11HVERSION 1.0) 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 90006 FORMAT (1H ,5X,46H----------------------------------------------) 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) C FORMAT STATEMENTS FOR THIS ROUTINE 80001 FORMAT (10X,5HTEST ,I2) 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM005) END