blob: 793bcbcb64bc49ef09891cb9f9d1b2c087b55746 [file] [log] [blame]
PROGRAM FM903
C***********************************************************************00010903
C***** FORTRAN 77 00020903
C***** FM903 IOFMTF - (354) 00030903
C***** THIS PROGRAM CALLS SUBROUTINE SN904 00040903
C***********************************************************************00050903
C***** GENERAL PURPOSE ANS REFS 00060903
C***** TO TEST ADDITIONAL FEATURES OF READ AND WRITE 12.8 00070903
C***** STATEMENTS, FORMATTED RECORDS AND FORMAT STATEMENTS 12.1.1 00080903
C***** DOUBLE PRECISION AND COMPLEX DATA TYPES. 00090903
C***** TO TEST ALL FORMS OF CHARACTER EXPRESSIONS AS 13.1.2 00100903
C***** FORMAT SPECIFIERS. 00110903
C***** RESTRICTIONS OBSERVED 00120903
C***** * H AND X DESCRIPTORS ARE NEVER REPEATED 13.2.1 00130903
C***** * FOR W.D DESCRIPTORS, D IS ALWAYS SPECIFIED AND 00140903
C***** W IS EQUAL TO OR GREATER THAN D 00150903
C***** * FIELD WIDTH IS NEVER ZERO 00160903
C***** * IF AN I/O LIST SPECIFIES AT LEAST ONE ITEM 13.3 00170903
C***** AT LEAST ONE REPEATABLE EDIT DESCRIPTOR MUST EXIST 00180903
C***** IN THE FORMAT SPECIFICATION 00190903
C***** * ITEMS IN I/O LIST CORRESPOND TO EDIT DESCRIPTORS 00200903
C***** * NEGATIVE OUTPUT VALUES ARE SIGNED 13.5.9 00210903
C***** * AN H EDIT DESCRIPTOR IS NEVER USED ON INPUT 13.5.2 00220903
C***** * IN THE INPUT FIELD, FOR THE IW EDIT DESCRIPTOR 13.5.9.1 00230903
C***** THE CHARACTER STRING MUST BE AN OPTIONALLY SIGNED 00240903
C***** INTEGER CONSTANT 00250903
C***** GENERAL COMMENTS 00260903
C***** PLUS SIGNS FOR INPUT FIELDS ARE USUALLY OMITTED 13.5.9 00270903
C***** 00280903
C***** CALL SUBROUTINE SN904 (SEGMENT 790) 00290903
C***** 00300903
CBB** ********************** BBCCOMNT **********************************00310903
C**** 00320903
C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00330903
C**** VERSION 2.1 00340903
C**** 00350903
C**** 00360903
C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00370903
C**** NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00380903
C**** SOFTWARE STANDARDS VALIDATION GROUP 00390903
C**** BUILDING 225 RM A266 00400903
C**** GAITHERSBURG, MD 20899 00410903
C**** 00420903
C**** 00430903
C**** 00440903
CBE** ********************** BBCCOMNT **********************************00450903
C***** 00460903
C INPUT DATA TO THIS SEGMENT CONSISTS OF 14 CARD IMAGES IN COL. 1 - 56 00470903
COL. 1-----------------------------------------------------56 00480903
CARD 1 333144446666225555 00490903
CARD 2 1234567890 00500903
CARD 3 1234567890 00510903
CARD 4 1234567890 00520903
CARD 5 1234567890 00530903
CARD 6 12345 00540903
CARD 7 12345123.5123.45D-01 12345D+01 00550903
CARD 8 12 345 678 00560903
CARD 9 5-1111 3333-5555 7777-9999 00570903
CARD 10 12345678901234567890123456781234567890123456789012345678 00580903
CARD 11 12345678901234123456789012341234567890123412345678901234 00590903
CARD 12 12345678901234123456789012341234567890123456789012345678 00600903
CARD 13 12345678901234567890123456781234567890123456789012345678 00610903
CARD 14 12345678901234123456789012341234567890123412345678901234 00620903
C***** 00630903
C***** S P E C I F I C A T I O N S SEGMENT 354 00640903
C***** 00650903
INTEGER J1I(6) 00660903
INTEGER IA1I(8) 00670903
CHARACTER*11 A11VK 00680903
CHARACTER*15 C151K(7) 00690903
CHARACTER*19 A19VK 00700903
CHARACTER*25 C251K(6) 00710903
CHARACTER*32 A32VK 00720903
CHARACTER*52 A52VK 00730903
CHARACTER*65 A65VK 00740903
CHARACTER*85 A85VK 00750903
DOUBLE PRECISION AVD, A1D(4), B4D(2,1,2,2) 00760903
COMPLEX AVC, BVC, CVC, A2C(2,2) 00770903
EXTERNAL SN904 00780903
C***** 00790903
CBB** ********************** BBCINITA **********************************00800903
C**** SPECIFICATION STATEMENTS 00810903
C**** 00820903
CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00830903
1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00840903
CBE** ********************** BBCINITA **********************************00850903
CBB** ********************** BBCINITB **********************************00860903
C**** INITIALIZE SECTION 00870903
DATA ZVERS, ZVERSD, ZDATE 00880903
1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00890903
DATA ZCOMPL, ZNAME, ZTAPE 00900903
1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00910903
DATA ZPROJ, ZTAPED, ZPROG 00920903
1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00930903
DATA REMRKS /' '/ 00940903
C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00950903
C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00960903
C**** 00970903
CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00980903
CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00990903
CZ03 ZPROG = 'PROGRAM NAME' 01000903
CZ04 ZDATE = 'DATE OF TEST' 01010903
CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 01020903
CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 01030903
CZ07 ZNAME = 'NAME OF USER' 01040903
CZ08 ZTAPE = 'TAPE OWNER/ID' 01050903
CZ09 ZTAPED = 'DATE TAPE COPIED' 01060903
C 01070903
IVPASS = 0 01080903
IVFAIL = 0 01090903
IVDELE = 0 01100903
IVINSP = 0 01110903
IVTOTL = 0 01120903
IVTOTN = 0 01130903
ICZERO = 0 01140903
C 01150903
C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 01160903
I01 = 05 01170903
C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 01180903
I02 = 06 01190903
C 01200903
CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 01210903
C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 01220903
CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 01230903
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 01240903
C 01250903
CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 01260903
C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 01270903
CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 01280903
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 01290903
C 01300903
CBE** ********************** BBCINITB **********************************01310903
IRVI = I01 01320903
NUVI = I02 01330903
IVTOTL = 13 01340903
ZPROG = 'FM903' 01350903
CBB** ********************** BBCHED0A **********************************01360903
C**** 01370903
C**** WRITE REPORT TITLE 01380903
C**** 01390903
WRITE (I02, 90002) 01400903
WRITE (I02, 90006) 01410903
WRITE (I02, 90007) 01420903
WRITE (I02, 90008) ZVERS, ZVERSD 01430903
WRITE (I02, 90009) ZPROG, ZPROG 01440903
WRITE (I02, 90010) ZDATE, ZCOMPL 01450903
CBE** ********************** BBCHED0A **********************************01460903
C***** HEADER FORMAT STATEMENT 01470903
WRITE(NUVI, 35400) 01480903
35400 FORMAT(" ",/ 1X, "IOFMTF - (354) ADDITIONAL FORMATTED" //1X, 01490903
1 "DATA TRANSFERS" ,//1X, 01500903
2 "ANS REF. - 12.9.5.2 13.1 13.5" ) 01510903
CBB** ********************** BBCHED0B **********************************01520903
C**** WRITE DETAIL REPORT HEADERS 01530903
C**** 01540903
WRITE (I02,90004) 01550903
WRITE (I02,90004) 01560903
WRITE (I02,90013) 01570903
WRITE (I02,90014) 01580903
WRITE (I02,90015) IVTOTL 01590903
CBE** ********************** BBCHED0B **********************************01600903
C***** TEST THAT A FORMAT MAY BE A CHARACTER VARIABLE, 12.4.2(3) 01610903
C***** A CHARACTER EXPRESSION, A CHARACTER ARRAY, OR A 12.4.2(4) 01620903
C***** CHARACTER ARRAY ELEMENT. 13.1.2 01630903
C***** NOTE THAT THE LENGTH OF THE FORMAT MAY EXCEED THE 01640903
C***** LENGTH OF AN ARRAY ELEMENT IF THE FORMAT SPECIFIER 01650903
C***** IS AN ARRAY, BUT NOT IF THE SPECIFIER IS AN ARRAY ELEMENT. 01660903
WRITE(NUVI, 35401) 01670903
35401 FORMAT(/8X, "CHARACTER EXPRESSION AS FORMAT" /) 01680903
A19VK = '(I3,I1,I4,I4,I2,I4)' 01690903
C***** CARD 1 01700903
READ(IRVI, A19VK) J1I(3), J1I(1), J1I(4), J1I(6), J1I(2), J1I(5)01710903
CT001* TEST 1 - CHARACTER EXPRESSION AS FORMAT 01720903
IVTNUM = 1 01730903
REMRKS = 'LEADING PLUS SIGN OPTIONAL' 01740903
WRITE (NUVI, 80004) IVTNUM, REMRKS 01750903
A65VK = '16X, "COMPUTED: "/26X,I1, 1X, I2, 1X, I3, 1X, I4, 1X, 01760903
1I5, 1X, I6' 01770903
A85VK = '16X, "CORRECT: ",22X, "2 CORRECT ANSWERS POSSIBLE"/26X01780903
1, "1 22 333 4444 5555 6666"' 01790903
WRITE(NUVI, '(/1X,' // A65VK // '/1X,' // A85VK // ')') J1I 01800903
IVINSP = IVINSP + 1 01810903
WRITE (NUVI, 70010) 01820903
70010 FORMAT (26X,"1 22 333 4444 +5555 +6666" ) 01830903
CT002* TEST 2 - CHARACTER ARRAY AS FORMAT 01840903
IVTNUM = 2 01850903
WRITE (NUVI, 80004) IVTNUM, REMRKS 01860903
WRITE (NUVI, 80020) 01870903
C251K(1) = '(26X, I6, 1X, I5, 1X, I4,' 01880903
C251K(2) = ' 1X, I3, 1X, I2, 1X, I1 /' 01890903
C251K(3) = '17X,"CORRECT: ",22X, "2 C' 01900903
C251K(4) = 'ORRECT ANSWERS POSSIBLE"/' 01910903
C251K(5) = '26X, " 6666 5555 4444 ' 01920903
C251K(6) = '333 22 1")' 01930903
WRITE(NUVI, C251K) (J1I(7-IVI), IVI=1,6) 01940903
IVINSP = IVINSP + 1 01950903
WRITE (NUVI, 70020) 01960903
70020 FORMAT (26X," +6666 +5555 4444 333 22 1" ) 01970903
CT003* TEST 3 - CHARACTER ARRAY ELEMENT AS FORMAT 01980903
IVTNUM = 3 01990903
WRITE (NUVI, 80004) IVTNUM, REMRKS 02000903
WRITE (NUVI, 80020) 02010903
C***** 02020903
C151K(1) = '(I1,2X,I2)' 02030903
C151K(3) = '(2X,I3,1X,I4)' 02040903
C151K(5) = '(I5,T1,I1)' 02050903
C151K(7) = '(TR4,I2,TL2,I3)' 02060903
C***** CARDS 2-5 02070903
DO 0032 IVI = 1, 7, 2 02080903
READ(IRVI, C151K(IVI)) IA1I(IVI), IA1I(IVI+1) 02090903
0032 CONTINUE 02100903
WRITE(NUVI, 70030) IA1I 02110903
70030 FORMAT (25X, 8(1X, I5)) 02120903
IVINSP = IVINSP + 1 02130903
WRITE (NUVI, 70031) 02140903
70031 FORMAT (" ",16X,"CORRECT: " ,22X,"2 CORRECT ANSWERS POSSIBLE" )02150903
WRITE (NUVI, 70032) 02160903
70032 FORMAT(26X, ' 1 45 345 7890 12345 1 56 567'/ 02170903
1 26X, ' +1 +45 +345 +7890 12345 +1 +56 +567') 02180903
C***** 02190903
C***** TEST ADDITIONAL INTEGER EDITING FEATURES. 02200903
C***** - IW.M EDITING DESCRIPTOR 13.5.9.1 02210903
C***** NOTE THAT IF M IS ZERO AND THE VALUE OF THE INTERNAL 02220903
C***** DATUM IS ZERO, THE OUTPUT FIELD CONSISTS OF ONLY BLANK 02230903
C***** CHARACTERS REGARDLESS OF THE SIGN CONTROL IN EFFECT. 02240903
WRITE(NUVI, 35404) 02250903
35404 FORMAT(/8X, "INTEGER EDITING AND OUT OF RANGE" /) 02260903
C***** CARD 6 02270903
READ(IRVI, 35405) (IA1I(IVI), IVI=1,4) 02280903
35405 FORMAT(I6.6, T1, I6.4, TL6, I6.2, TL9, I6.0) 02290903
CT004* TEST 4 - INTEGER EDITING 02300903
IVTNUM = 4 02310903
WRITE (NUVI, 80004) IVTNUM,REMRKS 02320903
WRITE (NUVI, 80020) 02330903
WRITE(NUVI, 70040) (IA1I(IVI), IVI=1,4) 02340903
70040 FORMAT(25X, 4(1X, I6)) 02350903
IVINSP = IVINSP + 1 02360903
WRITE (NUVI, 70031) 02370903
WRITE (NUVI, 70041) 02380903
70041 FORMAT(26X, " 12345 12345 12345 12345" / 02390903
1 26X, "+12345 +12345 +12345 +12345" ) 02400903
CT005* TEST 5 - OUT OF RANGE 02410903
IVTNUM = 5 02420903
WRITE (NUVI, 80004) IVTNUM 02430903
WRITE (NUVI, 80020) 02440903
JVI = 0 02450903
IVI = 12 02460903
WRITE (NUVI, 70050) -IVI, IVI, IVI, IVI, IVI, JVI, JVI, JVI 02470903
70050 FORMAT (26X, SS, I5.5, S, 1X, I5.5, SS, 1X, I5.3, 1X, I5.1, 02480903
1 1X, I5.0, 1X, "(", I5.0, ")", S, 1X, "(", I5.0, ")", 02490903
2 SP, 1X, "(", I5.0, ")") 02500903
IVINSP = IVINSP + 1 02510903
WRITE (NUVI, 80022) 02520903
WRITE (NUVI, 70051) 02530903
70051 FORMAT (26X, "***** 00012 012 12 12 ( ) ( )" , 02540903
1 " ( )") 02550903
C ADVANCE TO TOP-OF PAGE AND WRITE HEADERS 02560903
WRITE (NUVI, 90002) 02570903
WRITE (NUVI, 90013) 02580903
WRITE (NUVI, 90014) 02590903
C***** 02600903
C***** TEST ADDITIONAL DOUBLE PRECISION EDITING FEATURES. 13.5.9.2 02610903
C***** - D.P. MAY BE READ, WRITTEN WITH F AND E 13.5.9.2.1 02620903
C***** EDIT DESCRIPTOR. 13.5.9.2.2 02630903
C***** (D AND G FORMATS ARE TEST IN INTERNAL FILE SEGMENTS 02640903
C***** 392 AND 393.) 02650903
C***** - FIELD WIDTH TOO SMALL ON F 13.5.9(4) 02660903
C***** - EXPONENT WIDTH TOO SMALL ON EW.DE(E) 13.5.9(4) 02670903
C***** - IF SP AND FIELD TOO SMALL, THE PLUS IS NOT 13.5.9(5) 02680903
C***** OPTIONAL 02690903
WRITE(NUVI, 35408) 02700903
35408 FORMAT(/8X,"DOUBLE PRECISION EDITING AND OUT OF RANGE" /) 02710903
C***** CARD 7 02720903
READ(IRVI, 35409) B4D 02730903
35409 FORMAT(1X, 2F5.2, F10.2, F10.5, TL40, 1X, 2E5.2, E10.2, E10.5E5)02740903
CT006* TEST 6 - DOUBLE PRECISION EDITING AND OUT OF RANGE 02750903
IVTNUM = 6 02760903
REMRKS = '2 COMPUTED LINES EXPECTED' 02770903
WRITE (NUVI, 80004) IVTNUM,REMRKS 02780903
WRITE (NUVI, 80020) 02790903
B4D(2,1,2,2) = (B4D(2,1,2,2) * 10) ** 12 02800903
WRITE(NUVI, 70060) B4D 02810903
70060 FORMAT(26X, SP, F6.2, SS, 1X, F5.4, 1X, F6.3, 1X, F6.4, 02820903
1 /26X,2P,E6.1,0P,2(5X,E10.5),5X,E9.5E1) 02830903
IVINSP = IVINSP + 1 02840903
WRITE (NUVI, 70061) 02850903
70061 FORMAT(/" ",16X,"CORRECT: " ,22X, "CORRESPONDING LINES MUST02860903
1 MATCH " ,/" ",48X,"EITHER OF THE FOLLOWING TWO " , 02870903
2 /" ",48X,"CORRECT ANSWERS " ) 02880903
WRITE (NUVI, 70062) 02890903
70062 FORMAT(26X,"****** ***** 12.345 1.2345" /26X, 02900903
1 "****** .12350E+03 .12345E+02 *********" /02910903
2 /26X,"****** ***** 12.345 1.2345" /26X, 02920903
3 "****** .12350+003 .12345+002 *********" )02930903
C***** 02940903
C***** TEST ADDITIONAL COMPLEX EDITING FEATURES. 13.5.9.2.4 02950903
C***** - FIELD WIDTH TOO SMALL ON F 13.5.9(4) 02960903
C***** - EXPONENT WIDTH TOO SMALL ON EW.DE(E) 13.5.9(4) 02970903
WRITE(NUVI, 35411) 02980903
35411 FORMAT(/8X, "COMPLEX EDITING AND OUT OF RANGE" /) 02990903
CT007* TEST 7 - COMPLEX EDITING AND OUT OF RANGE 03000903
IVTNUM = 7 03010903
WRITE (NUVI, 80004) IVTNUM, REMRKS 03020903
WRITE (NUVI, 80020) 03030903
AVC = (25.25, 75.75) 03040903
BVC = (0.25E+10, 0.75E+10) 03050903
WRITE(NUVI, 70070) AVC, AVC, BVC, BVC 03060903
70070 FORMAT (26X, F7.2, 3X, F6.2, 3X, F5.2, 3X, F4.2, 03070903
1 /26X, E8.2E3, 3X, E7.2E2, 2(4X, E6.2E1)) 03080903
IVINSP = IVINSP + 1 03090903
WRITE (NUVI, 70061) 03100903
WRITE (NUVI, 70071) 03110903
70071 FORMAT (26X, " 25.25 75.75 25.25 ****" / 03120903
1 25X, " .25E+010 .75E+10 ****** ******" // 03130903
2 26X, " +25.25 +75.75 25.25 ****" / 03140903
3 25X, " .25E+010 .75E+10 ****** ******" ) 03150903
C***** 03160903
C***** - TEST BZ, BN EDIT DESCRIPTORS 13.5.8 03170903
C***** - TEST T, TL, TR EDIT DESCRIPTORS 13.5.3.1 03180903
WRITE(NUVI, 35414) 03190903
35414 FORMAT(/8X,"BZ, BN, T, TL AND TR EDIT DESCRIPTOR" /) 03200903
CT008* TEST 8 - BZ, BN, T, TL, AND TR EDIT DESCRIPTOR 03210903
IVTNUM = 8 03220903
REMRKS = 'LEADING PLUS SIGN OPTIONAL' 03230903
WRITE (NUVI, 80004) IVTNUM,REMRKS 03240903
WRITE (NUVI, 80020) 03250903
C***** CARD 8 03260903
READ(IRVI, 70080) AVD, B4D(2,1,1,2), A2C(1,1), AVC 03270903
70080 FORMAT(BN, D5.2, BZ, D5.2, TL40, 2F5.2, T1, TR1, TL1, BN, 2F5.1)03280903
WRITE(NUVI, 70081) AVD, B4D(2,1,1,2), A2C(1,1), AVC 03290903
70081 FORMAT (25X, 2F6.2, (((4(1X, F6.2))))) 03300903
IVINSP = IVINSP + 1 03310903
WRITE (NUVI, 70031) 03320903
WRITE (NUVI, 70082) 03330903
70082 FORMAT(25X, TR26, " 123.40 567.80" , T25, " 12.34506.78" , 03340903
1 1X, "120.34 506.78" // 03350903
2 25X, TR26, " 123.40 567.80" , T25, " +12.34506.78" , 03360903
3 1X, "120.34 506.78" ) 03370903
C***** 03380903
C***** PASS A CHARACTER CONSTANT, WHICH IS A LEGITIMATE FORMAT 03390903
C***** SPECIFIER TO A SUBROUTINE. 03400903
WRITE(NUVI, 35417) 03410903
35417 FORMAT(/8X,"SUBROUTINE CALL" /) 03420903
CT009* TEST 9 - SUBROUTINE CALL 03430903
IVTNUM = 9 03440903
WRITE (NUVI, 80004) IVTNUM,REMRKS 03450903
C***** CARD 9 03460903
A11VK = '(I5, 6(I5))' 03470903
CALL SN904(A11VK, IRVI, NUVI) 03480903
IVINSP = IVINSP + 1 03490903
C***** 03500903
C ADVANCE TO TOP-OF PAGE AND WRITE HEADERS 03510903
WRITE (NUVI, 90002) 03520903
WRITE (NUVI, 90013) 03530903
WRITE (NUVI, 90014) 03540903
C***** 03550903
C***** - TEST SS AND SP EDIT DESCRIPTORS. 13.5.6 03560903
C***** - TEST ALSO THAT A FORMAT SPECIFICATION MAY BE 13.1.2 03570903
C***** ALTERED BY A CHARACTER SUBSTRING SUBSTITUTION. 5.7 03580903
WRITE(NUVI, 35419) 03590903
35419 FORMAT(/8X,"SS AND SP EDIT DESCRIPTOR" /) 03600903
CT010* TEST 10 - SS AND SP EDIT DESCRIPTORS 03610903
IVTNUM = 10 03620903
WRITE (NUVI, 80004) IVTNUM, REMRKS 03630903
WRITE (NUVI, 80020) 03640903
IVI = 12345 03650903
AVS = 25.25 03660903
A1D(2) = 5.5D0 03670903
A2C(2,1) = (3.0, 4.0) 03680903
A52VK = '(26X,SP,F5.1,SS,2X,F4.1,SP,(T40,I6,2X,F6.2,SS,F6.1))' 03690903
WRITE(NUVI, A52VK) A2C(2,1), IVI, AVS, A1D(2), IVI, AVS, A1D(2) 03700903
IVINSP = IVINSP + 1 03710903
WRITE (NUVI, 70101) 03720903
70101 FORMAT(/" ",16X,"CORRECT: " ,22X, "CORRESPONDING LINES MUST03730903
1 MATCH " ) 03740903
WRITE (NUVI, 70102) 03750903
70102 FORMAT(26X,' +3.0 4.0 +12345 +25.25 5.5' 03760903
1 /T40,' 12345 25.25 5.5') 03770903
CT011* TEST 11 - FORMAT ALTERED BY CHARACTER SUBSTRING SUBSTITUTION 03780903
IVTNUM = 11 03790903
WRITE (NUVI, 80004) IVTNUM, REMRKS 03800903
WRITE (NUVI, 80020) 03810903
A52VK(7:7) = 'S' 03820903
A52VK(14:15) = 'SP' 03830903
A52VK(26:26) = 'S' 03840903
A52VK(45:45) = 'P' 03850903
WRITE(NUVI, A52VK) A2C(2,1), IVI, AVS, A1D(2), IVI, AVS, A1D(2) 03860903
IVINSP = IVINSP + 1 03870903
WRITE (NUVI, 70101) 03880903
WRITE (NUVI, 70111) 03890903
70111 FORMAT (26X,' 3.0 +4.0 12345 25.25 +5.5' 03900903
1 /T40,'+12345 +25.25 +5.5') 03910903
C***** 03920903
C***** TEST A COLON EDIT DESCRIPTOR FOLLOWED BY A H-EDIT 13.5.5 03930903
C***** DESCRIPTOR TO SHOW THAT THE COLON EDIT DESCRIPTOR 03940903
C***** TERMINATED IF THERE ARE NO MORE ITEMS IN THE INPUT/OUTPUT LIST03950903
WRITE(NUVI, 35422) 03960903
35422 FORMAT(/8X,'COLON EDIT DESCRIPTOR'/) 03970903
CT012* TEST 12 03980903
IVTNUM = 12 03990903
REMRKS = '2 COMPUTED LINES EXPECTED' 04000903
WRITE (NUVI, 80004) IVTNUM, REMRKS 04010903
WRITE (NUVI, 80020) 04020903
A32VK = 'AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHH' 04030903
WRITE(NUVI, 70120) A32VK, A32VK 04040903
70120 FORMAT(26X, A32, :, 'IIIIJJJJ') 04050903
IVINSP = IVINSP + 1 04060903
WRITE (NUVI, 70101) 04070903
WRITE (NUVI, 70121) 04080903
70121 FORMAT(26X, 'AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIJJJJ', 04090903
1 /26X, 'AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHH') 04100903
C***** 04110903
C***** TEST THAT FW.D, EW.DE(E) AND GW.DE(E) MAY HAVE MORE DIGITS ON 04120903
C***** INPUT THAN THE PROCESSOR CAN HANDLE FOR D.P. AND COMPLEX 04130903
CT013* TEST 13 - LARGE FORMAT SIZE FOR D.P. AND COMPLEX 04140903
IVTNUM = 13 04150903
WRITE (NUVI, 70131) IVTNUM 04160903
70131 FORMAT (/" ",2X,I3,4X,"INSPECT",32X, 04170903
1 'TEST SUCCESSFUL IF PROCESSOR IS '/" ",48X, 04180903
2 'ABLE TO READ INPUT CARDS 10-14 '/" ",48X, 04190903
3 'UNDER F, E, AND G FORMATS WHICH '/" ",48X, 04200903
4 'HAVE MORE DIGITS THAN THE '/" ",48X, 04210903
5 'PROCESSOR CAN HANDLE FOR D. P. '/" ",48X, 04220903
6 'AND COMPLEX') 04230903
IVINSP = IVINSP + 1 04240903
C***** CARDS 10-14 04250903
READ(IRVI, 70130) B4D(1,1,1,1), AVD, AVC, A2C(2,2), BVC, 04260903
1 (B4D(1,1,IVI,1),IVI=1,2), A1D(1), A2C(1,2), CVC 04270903
70130 FORMAT(2F28.14, /2(E14.7E2, G14.14E1), /G14.0E3, E14.14E3, 04280903
1 E28.0E1, /2G28.14E2, /2(F14.0, F14.14) ) 04290903
C***** 04300903
CBB** ********************** BBCSUM0 **********************************04310903
C**** WRITE OUT TEST SUMMARY 04320903
C**** 04330903
IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 04340903
WRITE (I02, 90004) 04350903
WRITE (I02, 90014) 04360903
WRITE (I02, 90004) 04370903
WRITE (I02, 90020) IVPASS 04380903
WRITE (I02, 90022) IVFAIL 04390903
WRITE (I02, 90024) IVDELE 04400903
WRITE (I02, 90026) IVINSP 04410903
WRITE (I02, 90028) IVTOTN, IVTOTL 04420903
CBE** ********************** BBCSUM0 **********************************04430903
CBB** ********************** BBCFOOT0 **********************************04440903
C**** WRITE OUT REPORT FOOTINGS 04450903
C**** 04460903
WRITE (I02,90016) ZPROG, ZPROG 04470903
WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 04480903
WRITE (I02,90019) 04490903
CBE** ********************** BBCFOOT0 **********************************04500903
CBB** ********************** BBCFMT0A **********************************04510903
C**** FORMATS FOR TEST DETAIL LINES 04520903
C**** 04530903
80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 04540903
80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 04550903
80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 04560903
80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 04570903
80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 04580903
1I6,/," ",15X,"CORRECT= " ,I6) 04590903
80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 04600903
1E12.5,/," ",16X,"CORRECT= " ,E12.5) 04610903
80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 04620903
1A21,/," ",16X,"CORRECT= " ,A21) 04630903
80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 04640903
80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 04650903
80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 04660903
80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 04670903
80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 04680903
80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 04690903
80050 FORMAT (" ",48X,A31) 04700903
CBE** ********************** BBCFMT0A **********************************04710903
CBB** ********************** BBCFMAT1 **********************************04720903
C**** FORMATS FOR TEST DETAIL LINES - FULL LANGUAGE 04730903
C**** 04740903
80031 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 04750903
1D17.10,/," ",16X,"CORRECT= " ,D17.10) 04760903
80033 FORMAT (" ",16X,"COMPUTED= " ,D17.10,10X,A31) 04770903
80035 FORMAT (" ",16X,"CORRECT= " ,D17.10,10X,A31) 04780903
80037 FORMAT (" ",16X,"COMPUTED= " ,"(",E12.5,", ",E12.5,")",6X,A31) 04790903
80039 FORMAT (" ",16X,"CORRECT= " ,"(",E12.5,", ",E12.5,")",6X,A31) 04800903
80041 FORMAT (" ",16X,"COMPUTED= " ,"(",F12.5,", ",F12.5,")",6X,A31) 04810903
80043 FORMAT (" ",16X,"CORRECT= " ,"(",F12.5,", ",F12.5,")",6X,A31) 04820903
80045 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 04830903
1"(",F12.5,", ",F12.5,")"/," ",16X,"CORRECT= " , 04840903
2"(",F12.5,", ",F12.5,")") 04850903
CBE** ********************** BBCFMAT1 **********************************04860903
CBB** ********************** BBCFMT0B **********************************04870903
C**** FORMAT STATEMENTS FOR PAGE HEADERS 04880903
C**** 04890903
90002 FORMAT ("1") 04900903
90004 FORMAT (" ") 04910903
90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )04920903
90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 04930903
90008 FORMAT (" ",21X,A13,A17) 04940903
90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 04950903
90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 04960903
90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 04970903
1 7X,"REMARKS",24X) 04980903
90014 FORMAT (" ","----------------------------------------------" , 04990903
1 "---------------------------------" ) 05000903
90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 05010903
C**** 05020903
C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 05030903
C**** 05040903
90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 05050903
90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 05060903
1 A13) 05070903
90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 05080903
C**** 05090903
C**** FORMAT STATEMENTS FOR RUN SUMMARY 05100903
C**** 05110903
90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 05120903
90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 05130903
90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 05140903
90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 05150903
90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 05160903
CBE** ********************** BBCFMT0B **********************************05170903
C***** 05180903
C***** END OF TEST SEGMENT 354 05190903
STOP 05200903
END 05210903
C***********************************************************************00010904
C***** FORTRAN 77 00020904
C***** FM904 SN904 - (790) 00030904
C***** THIS SUBROUTINE IS CALLED BY FM903 00040904
C***********************************************************************00050904
C***** GENERAL PURPOSE ANS REFS 00060904
C***** THIS SUBROUTINE IS CALLED BY IOFMTF (354) 00070904
C***** IT IS USED PRIMARILY TO TEST THAT A CHARACTER 13.1.2 00080904
C***** CONSTANT MAY BE PASSED AS A PARAMETER TO A 15.6.2.3 00090904
C***** SUBROUTINE AND USED AS A FORMAT. 00100904
C***** IT ALSO TESTS THAT A FORMAT MAY BE DEFINED IN A 9.4 00110904
C***** DATA STATEMENT. 00120904
C***** RESTRICTIONS OBSERVED 00130904
C***** SEE SEGMENT 354 00140904
C***** 00150904
SUBROUTINE SN904(A0WVK, IRWVI, NUWVI) 00160904
C***** 00170904
C***** S P E C I F I C A T I O N S SEGMENT 790 00180904
C***** 00190904
CHARACTER*(*) A0WVK 00200904
CHARACTER*130 A130VK 00210904
INTEGER I1I(5) 00220904
C***** 00230904
C***** TESTS THAT 00240904
C***** - A FORMAT SPECIFIER MAY BE PASSED AS A CHARACTER 13.1.2 00250904
C***** CONSTANT TO A SUBROUTINE. 15.6.2.3 00260904
C***** - A FORMAT SPECIFIER MAY BE DEFINED IN A DATA 13.1.2 00270904
C***** STATEMENT. 9.4 00280904
C***** - AN INPUT LIST MAY CONTAIN AN INTEGER THAT IS USED 12.8.2.3 00290904
C***** AS A SUBSCRIPT IN AN IMPLIED DO-LIST. 00300904
C***** - AN OUTPUT LIST MAY CONTAIN AN EXPRESSION WITH AN 12.8.2.2 00310904
C***** INTRINISC FUNCTION. 15.3 00320904
C***** 00330904
DATA A130VK/'(16X, "COMPUTED: "/26X, 3I5/16X, "CORRECT: ",22X, 00340904
1''2 CORRECT ANSWERS POSSIBLE''/26X,'' 1111 3333-5555''/26X,''+111100350904
2+3333-5555'')'/ 00360904
READ(IRWVI, A0WVK) IVI, (I1I(JVI),JVI=1,IVI) 00370904
WRITE(NUWVI, A130VK) IABS(I1I(1)), MAX0(I1I(2),I1I(5)), I1I(3) 00380904
C***** 00390904
RETURN 00400904
END 00410904