| PROGRAM FM701 00010701 |
| C 00020701 |
| C THIS ROUTINE TESTS ARRAY DECLARATORS WHERE DIMENSION ANS REF.00030701 |
| C BOUND EXPRESSIONS MAY CONTAIN CONSTANTS, 5.1.1.2 00040701 |
| C SYMBOLIC NAMES OF CONSTANTS, OR VARIABLES 5.1.1 00050701 |
| C OF TYPE INTEGER. 00060701 |
| C 00070701 |
| C THIS ROUTINE USES ROUTINES 602 THROUGH 609 AS SUBROUTINES. 00080701 |
| C 00090701 |
| C 00100701 |
| CBB** ********************** BBCCOMNT **********************************00110701 |
| C**** 00120701 |
| C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00130701 |
| C**** VERSION 2.1 00140701 |
| C**** 00150701 |
| C**** 00160701 |
| C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00170701 |
| C**** NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00180701 |
| C**** SOFTWARE STANDARDS VALIDATION GROUP 00190701 |
| C**** BUILDING 225 RM A266 00200701 |
| C**** GAITHERSBURG, MD 20899 00210701 |
| C**** 00220701 |
| C**** 00230701 |
| C**** 00240701 |
| CBE** ********************** BBCCOMNT **********************************00250701 |
| IMPLICIT DOUBLE PRECISION (D), COMPLEX (Z), LOGICAL (L) 00260701 |
| IMPLICIT CHARACTER*27 (C) 00270701 |
| CBB** ********************** BBCINITA **********************************00280701 |
| C**** SPECIFICATION STATEMENTS 00290701 |
| C**** 00300701 |
| CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00310701 |
| 1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00320701 |
| CBE** ********************** BBCINITA **********************************00330701 |
| C 00340701 |
| INTEGER I2D001(3,5), I2D002(2,4), I2D003(5,2) 00350701 |
| PARAMETER (IPN001=1, IPN002=-1, IPN003=4) 00360701 |
| DIMENSION I2N004(IPN001:2,3), I2N005(2,-1:IPN001), 00370701 |
| 1 I2N006(IPN002:IPN001,1:IPN003) 00380701 |
| DIMENSION I2N007(+5:7,+1:2), I2N008(0:2,2), I2N009(1:3,-1:1), 00390701 |
| 1 I2N010(4,2), I2N011(2*2+1:7,1:2) 00400701 |
| DIMENSION I2N012(1:+2,2:+4), I2N013(-2:0,2), I2D014(1:3,-3:-1), 00410701 |
| 1 I2N015(1:2*2+1,1:2), I2N016(2,6/3-1:2*5-7) 00420701 |
| CHARACTER*4 CVCOMP, CVCORR 00430701 |
| CHARACTER*4 C2N001(0:5,1:6), C2D002(2,1:3), C2N003(-2:1,3:10), 00440701 |
| 1 C2D004(1:2,5:7), C1N005(+1:6),C3D006(1:2,2,5:7) 00450701 |
| DATA I2D001 / 12*0, -47, 2*0 / 00460701 |
| DATA I2D002 / 6*0, 5, 0 / 00470701 |
| DATA I2D003 / 6, 8*0, -11 / 00480701 |
| DATA I2N004 / -4, 5*4 / 00490701 |
| DATA I2N005 / -5, 5*5 / 00500701 |
| DATA I2N006 / 6*6, -6, 5*6 / 00510701 |
| DATA I2N007 / 3*7, -7, 2*7 / 00520701 |
| DATA I2N008 / -8, 5*8 / 00530701 |
| DATA I2N009 / 2*9, -9, 6*9 / 00540701 |
| DATA I2N010 / -10, 7*10 / 00550701 |
| DATA I2N011 / 3*11, -11, 2*11 / 00560701 |
| DATA I2N012 / 7, 5*-7 / 00570701 |
| DATA I2N013 / 8, 5*-8 / 00580701 |
| DATA I2D014 / 9, 8*-9 / 00590701 |
| DATA I2N015 / 9*-10, 10 / 00600701 |
| DATA I2N016 / 11, 4*-11, -10 / 00610701 |
| DATA C2N001 / 'C001', 35*' ' / 00620701 |
| DATA C2D002 / 5*' ', 'C002' / 00630701 |
| DATA C2N003 / 'C003', 31*' ' / 00640701 |
| DATA C2D004 / 'C004', 5*' ' / 00650701 |
| DATA C1N005 / 'C005', 5*' ' / 00660701 |
| DATA C3D006 / 'C006', 11*' ' / 00670701 |
| C 00680701 |
| C 00690701 |
| CBB** ********************** BBCINITB **********************************00700701 |
| C**** INITIALIZE SECTION 00710701 |
| DATA ZVERS, ZVERSD, ZDATE 00720701 |
| 1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00730701 |
| DATA ZCOMPL, ZNAME, ZTAPE 00740701 |
| 1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00750701 |
| DATA ZPROJ, ZTAPED, ZPROG 00760701 |
| 1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00770701 |
| DATA REMRKS /' '/ 00780701 |
| C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00790701 |
| C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00800701 |
| C**** 00810701 |
| CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00820701 |
| CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00830701 |
| CZ03 ZPROG = 'PROGRAM NAME' 00840701 |
| CZ04 ZDATE = 'DATE OF TEST' 00850701 |
| CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 00860701 |
| CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 00870701 |
| CZ07 ZNAME = 'NAME OF USER' 00880701 |
| CZ08 ZTAPE = 'TAPE OWNER/ID' 00890701 |
| CZ09 ZTAPED = 'DATE TAPE COPIED' 00900701 |
| C 00910701 |
| IVPASS = 0 00920701 |
| IVFAIL = 0 00930701 |
| IVDELE = 0 00940701 |
| IVINSP = 0 00950701 |
| IVTOTL = 0 00960701 |
| IVTOTN = 0 00970701 |
| ICZERO = 0 00980701 |
| C 00990701 |
| C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 01000701 |
| I01 = 05 01010701 |
| C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 01020701 |
| I02 = 06 01030701 |
| C 01040701 |
| CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 01050701 |
| C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 01060701 |
| CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 01070701 |
| C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 01080701 |
| C 01090701 |
| CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 01100701 |
| C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 01110701 |
| CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 01120701 |
| C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 01130701 |
| C 01140701 |
| CBE** ********************** BBCINITB **********************************01150701 |
| ZPROG='FM701' 01160701 |
| IVTOTL = 35 01170701 |
| CBB** ********************** BBCHED0A **********************************01180701 |
| C**** 01190701 |
| C**** WRITE REPORT TITLE 01200701 |
| C**** 01210701 |
| WRITE (I02, 90002) 01220701 |
| WRITE (I02, 90006) 01230701 |
| WRITE (I02, 90007) 01240701 |
| WRITE (I02, 90008) ZVERS, ZVERSD 01250701 |
| WRITE (I02, 90009) ZPROG, ZPROG 01260701 |
| WRITE (I02, 90010) ZDATE, ZCOMPL 01270701 |
| CBE** ********************** BBCHED0A **********************************01280701 |
| CBB** ********************** BBCHED0B **********************************01290701 |
| C**** WRITE DETAIL REPORT HEADERS 01300701 |
| C**** 01310701 |
| WRITE (I02,90004) 01320701 |
| WRITE (I02,90004) 01330701 |
| WRITE (I02,90013) 01340701 |
| WRITE (I02,90014) 01350701 |
| WRITE (I02,90015) IVTOTL 01360701 |
| CBE** ********************** BBCHED0B **********************************01370701 |
| C 01380701 |
| C TESTS 1-3 - LOWER AND/OR UPPER BOUNDS ARE ARITHMETIC EXPRESSIONS 01390701 |
| C OF TYPE INTEGER, USING VARIABLES 01400701 |
| C 01410701 |
| C 01420701 |
| CT001* TEST 001 **** FCVS PROGRAM 701 **** 01430701 |
| C 01440701 |
| C TEST 001 LOWER BOUND 01450701 |
| C 01460701 |
| IVTNUM = 1 01470701 |
| IVCORR = -47 01480701 |
| CALL SN702(1,1,2,6,I2D001,I2D002,I2D003,IVCOMP) 01490701 |
| 40010 IF (IVCOMP + 47) 20010, 10010, 20010 01500701 |
| 10010 IVPASS = IVPASS + 1 01510701 |
| WRITE (I02,80002) IVTNUM 01520701 |
| GO TO 0011 01530701 |
| 20010 IVFAIL = IVFAIL + 1 01540701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01550701 |
| 0011 CONTINUE 01560701 |
| C 01570701 |
| CT002* TEST 002 **** FCVS PROGRAM 701 **** 01580701 |
| C 01590701 |
| C TEST 002 UPPER BOUND 01600701 |
| C 01610701 |
| IVTNUM = 2 01620701 |
| IVCORR = 5 01630701 |
| CALL SN702(2,1,2,6,I2D001,I2D002,I2D003,IVCOMP) 01640701 |
| 40020 IF (IVCOMP - 5) 20020, 10020, 20020 01650701 |
| 10020 IVPASS = IVPASS + 1 01660701 |
| WRITE (I02,80002) IVTNUM 01670701 |
| GO TO 0021 01680701 |
| 20020 IVFAIL = IVFAIL + 1 01690701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01700701 |
| 0021 CONTINUE 01710701 |
| C 01720701 |
| CT003* TEST 003 **** FCVS PROGRAM 701 **** 01730701 |
| C 01740701 |
| C TEST 003 BOTH LOWER AND UPPER BOUNDS 01750701 |
| C 01760701 |
| IVTNUM = 3 01770701 |
| IVCORR = 17 01780701 |
| CALL SN702(3,1,2,6,I2D001,I2D002,I2D003,IVCOMP) 01790701 |
| 40030 IF (IVCOMP - 17) 20030, 10030, 20030 01800701 |
| 10030 IVPASS = IVPASS + 1 01810701 |
| WRITE (I02,80002) IVTNUM 01820701 |
| GO TO 0031 01830701 |
| 20030 IVFAIL = IVFAIL + 1 01840701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01850701 |
| 0031 CONTINUE 01860701 |
| C 01870701 |
| C TESTS 4-6 - LOWER AND/OR UPPER BOUNDS ARE SYMBOLIC NAMES 01880701 |
| C OF INTEGER CONSTANTS 01890701 |
| C 01900701 |
| C 01910701 |
| CT004* TEST 004 **** FCVS PROGRAM 701 **** 01920701 |
| C 01930701 |
| C TEST 004 LOWER BOUND 01940701 |
| C 01950701 |
| IVTNUM = 4 01960701 |
| IVCOMP = 0 01970701 |
| IVCORR = -4 01980701 |
| IVCOMP = I2N004(1,1) 01990701 |
| 40040 IF (IVCOMP + 4) 20040, 10040, 20040 02000701 |
| 10040 IVPASS = IVPASS + 1 02010701 |
| WRITE (I02,80002) IVTNUM 02020701 |
| GO TO 0041 02030701 |
| 20040 IVFAIL = IVFAIL + 1 02040701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02050701 |
| 0041 CONTINUE 02060701 |
| C 02070701 |
| CT005* TEST 005 **** FCVS PROGRAM 701 **** 02080701 |
| C 02090701 |
| C TEST 005 UPPER BOUND 02100701 |
| C 02110701 |
| IVTNUM = 5 02120701 |
| IVCOMP = 0 02130701 |
| IVCORR = -5 02140701 |
| IVCOMP = I2N005(1,-1) 02150701 |
| 40050 IF (IVCOMP + 5) 20050, 10050, 20050 02160701 |
| 10050 IVPASS = IVPASS + 1 02170701 |
| WRITE (I02,80002) IVTNUM 02180701 |
| GO TO 0051 02190701 |
| 20050 IVFAIL = IVFAIL + 1 02200701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02210701 |
| 0051 CONTINUE 02220701 |
| C 02230701 |
| CT006* TEST 006 **** FCVS PROGRAM 701 **** 02240701 |
| C 02250701 |
| C TEST 006 BOTH UPPER AND LOWER BOUNDS 02260701 |
| C 02270701 |
| IVTNUM = 6 02280701 |
| IVCOMP = 0 02290701 |
| IVCORR = -6 02300701 |
| IVCOMP = I2N006(-1,3) 02310701 |
| 40060 IF (IVCOMP + 6) 20060, 10060, 20060 02320701 |
| 10060 IVPASS = IVPASS + 1 02330701 |
| WRITE (I02,80002) IVTNUM 02340701 |
| GO TO 0061 02350701 |
| 20060 IVFAIL = IVFAIL + 1 02360701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02370701 |
| 0061 CONTINUE 02380701 |
| C 02390701 |
| CT007* TEST 007 **** FCVS PROGRAM 701 **** 02400701 |
| C 02410701 |
| C TEST 007 LOWER BOUND POSITIVE 02420701 |
| C 02430701 |
| IVTNUM = 7 02440701 |
| IVCOMP = 0 02450701 |
| IVCORR = -7 02460701 |
| IVCOMP = I2N007(5,2) 02470701 |
| 40070 IF (IVCOMP + 7) 20070, 10070, 20070 02480701 |
| 10070 IVPASS = IVPASS + 1 02490701 |
| WRITE (I02,80002) IVTNUM 02500701 |
| GO TO 0071 02510701 |
| 20070 IVFAIL = IVFAIL + 1 02520701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02530701 |
| 0071 CONTINUE 02540701 |
| C 02550701 |
| CT008* TEST 008 **** FCVS PROGRAM 701 **** 02560701 |
| C 02570701 |
| C TEST 008 LOWER BOUND ZERO 02580701 |
| C 02590701 |
| IVTNUM = 8 02600701 |
| IVCOMP = 0 02610701 |
| IVCORR = -8 02620701 |
| IVCOMP = I2N008(0,1) 02630701 |
| 40080 IF (IVCOMP + 8) 20080, 10080, 20080 02640701 |
| 10080 IVPASS = IVPASS + 1 02650701 |
| WRITE (I02,80002) IVTNUM 02660701 |
| GO TO 0081 02670701 |
| 20080 IVFAIL = IVFAIL + 1 02680701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02690701 |
| 0081 CONTINUE 02700701 |
| C 02710701 |
| CT009* TEST 009 **** FCVS PROGRAM 701 **** 02720701 |
| C 02730701 |
| C TEST 009 LOWER BOUND NEGATIVE 02740701 |
| C 02750701 |
| IVTNUM = 9 02760701 |
| IVCOMP = 0 02770701 |
| IVCORR = -9 02780701 |
| IVCOMP = I2N009(3,-1) 02790701 |
| 40090 IF (IVCOMP + 9) 20090, 10090, 20090 02800701 |
| 10090 IVPASS = IVPASS + 1 02810701 |
| WRITE (I02,80002) IVTNUM 02820701 |
| GO TO 0091 02830701 |
| 20090 IVFAIL = IVFAIL + 1 02840701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02850701 |
| 0091 CONTINUE 02860701 |
| C 02870701 |
| CT010* TEST 010 **** FCVS PROGRAM 701 **** 02880701 |
| C 02890701 |
| C TEST 010 LOWER BOUND OMITTED 02900701 |
| C 02910701 |
| IVTNUM = 10 02920701 |
| IVCOMP = 0 02930701 |
| IVCORR = -10 02940701 |
| IVCOMP = I2N010(1,1) 02950701 |
| 40100 IF (IVCOMP + 10) 20100, 10100, 20100 02960701 |
| 10100 IVPASS = IVPASS + 1 02970701 |
| WRITE (I02,80002) IVTNUM 02980701 |
| GO TO 0101 02990701 |
| 20100 IVFAIL = IVFAIL + 1 03000701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03010701 |
| 0101 CONTINUE 03020701 |
| C 03030701 |
| CT011* TEST 011 **** FCVS PROGRAM 701 **** 03040701 |
| C 03050701 |
| C TEST 011 LOWER BOUND IS AN INTEGER EXPRESSION 03060701 |
| C 03070701 |
| IVTNUM = 11 03080701 |
| IVCOMP = 0 03090701 |
| IVCORR = -11 03100701 |
| IVCOMP = I2N011(5,2) 03110701 |
| 40110 IF (IVCOMP + 11) 20110, 10110, 20110 03120701 |
| 10110 IVPASS = IVPASS + 1 03130701 |
| WRITE (I02,80002) IVTNUM 03140701 |
| GO TO 0111 03150701 |
| 20110 IVFAIL = IVFAIL + 1 03160701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03170701 |
| 0111 CONTINUE 03180701 |
| C 03190701 |
| CT012* TEST 012 **** FCVS PROGRAM 701 **** 03200701 |
| C 03210701 |
| C TEST 012 UPPER BOUND POSITIVE 03220701 |
| C 03230701 |
| IVTNUM = 12 03240701 |
| IVCOMP = 0 03250701 |
| IVCORR = 7 03260701 |
| IVCOMP = I2N012(1,2) 03270701 |
| 40120 IF (IVCOMP - 7) 20120, 10120, 20120 03280701 |
| 10120 IVPASS = IVPASS + 1 03290701 |
| WRITE (I02,80002) IVTNUM 03300701 |
| GO TO 0121 03310701 |
| 20120 IVFAIL = IVFAIL + 1 03320701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03330701 |
| 0121 CONTINUE 03340701 |
| C 03350701 |
| CT013* TEST 013 **** FCVS PROGRAM 701 **** 03360701 |
| C 03370701 |
| C TEST 013 UPPER BOUND ZERO 03380701 |
| C 03390701 |
| IVTNUM = 13 03400701 |
| IVCOMP = 0 03410701 |
| IVCORR = 8 03420701 |
| IVCOMP = I2N013(-2,1) 03430701 |
| 40130 IF (IVCOMP - 8) 20130, 10130, 20130 03440701 |
| 10130 IVPASS = IVPASS + 1 03450701 |
| WRITE (I02,80002) IVTNUM 03460701 |
| GO TO 0131 03470701 |
| 20130 IVFAIL = IVFAIL + 1 03480701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03490701 |
| 0131 CONTINUE 03500701 |
| C 03510701 |
| CT014* TEST 014 **** FCVS PROGRAM 701 **** 03520701 |
| C 03530701 |
| C TEST 014 UPPER BOUND NEGATIVE 03540701 |
| C 03550701 |
| IVTNUM = 14 03560701 |
| IVCOMP = 0 03570701 |
| IVCORR = 9 03580701 |
| IVCOMP = I2D014(1,-3) 03590701 |
| 40140 IF (IVCOMP - 9) 20140, 10140, 20140 03600701 |
| 10140 IVPASS = IVPASS + 1 03610701 |
| WRITE (I02,80002) IVTNUM 03620701 |
| GO TO 0141 03630701 |
| 20140 IVFAIL = IVFAIL + 1 03640701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03650701 |
| 0141 CONTINUE 03660701 |
| C 03670701 |
| CT015* TEST 015 **** FCVS PROGRAM 701 **** 03680701 |
| C 03690701 |
| C TEST 015 UPPER BOUND IS INTEGER EXPRESSION 03700701 |
| C 03710701 |
| IVTNUM = 15 03720701 |
| IVCOMP = 0 03730701 |
| IVCORR = 10 03740701 |
| IVCOMP = I2N015(5,2) 03750701 |
| 40150 IF (IVCOMP - 10) 20150, 10150, 20150 03760701 |
| 10150 IVPASS = IVPASS + 1 03770701 |
| WRITE (I02,80002) IVTNUM 03780701 |
| GO TO 0151 03790701 |
| 20150 IVFAIL = IVFAIL + 1 03800701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03810701 |
| 0151 CONTINUE 03820701 |
| C 03830701 |
| CT016* TEST 016 **** FCVS PROGRAM 701 **** 03840701 |
| C 03850701 |
| C TEST 016 UPPER BOUNDS ARE INTEGER EXPRESSIONS 03860701 |
| C 03870701 |
| IVTNUM = 16 03880701 |
| IVCOMP = 0 03890701 |
| IVCORR = -110 03900701 |
| IVCOMP = I2N016(1,1)*I2N016(2,3) 03910701 |
| 40160 IF (IVCOMP + 110) 20160, 10160, 20160 03920701 |
| 10160 IVPASS = IVPASS + 1 03930701 |
| WRITE (I02,80002) IVTNUM 03940701 |
| GO TO 0161 03950701 |
| 20160 IVFAIL = IVFAIL + 1 03960701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03970701 |
| 0161 CONTINUE 03980701 |
| C 03990701 |
| CT017* TEST 017 **** FCVS PROGRAM 701 **** 04000701 |
| C 04010701 |
| C TEST 017 ZERO AS A DIMENSION 04020701 |
| C 04030701 |
| IVTNUM = 17 04040701 |
| CVCOMP = ' ' 04050701 |
| IVCOMP = 0 04060701 |
| CVCORR = 'C001' 04070701 |
| CVCOMP = C2N001(0,1) 04080701 |
| IF (CVCOMP .EQ. 'C001') IVCOMP = 1 04090701 |
| IF (IVCOMP - 1) 20170, 10170, 20170 04100701 |
| 10170 IVPASS = IVPASS + 1 04110701 |
| WRITE (I02,80002) IVTNUM 04120701 |
| GO TO 0171 04130701 |
| 20170 IVFAIL = IVFAIL + 1 04140701 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 04150701 |
| 0171 CONTINUE 04160701 |
| C 04170701 |
| CT018* TEST 018 **** FCVS PROGRAM 701 **** 04180701 |
| C 04190701 |
| C TEST 018 UPPER DIMENSION UNDEFINED IN THE SUBROUTINE 04200701 |
| C 04210701 |
| IVTNUM = 18 04220701 |
| CVCOMP = ' ' 04230701 |
| IVCOMP = 0 04240701 |
| CVCORR = 'C002' 04250701 |
| CALL SN703(1,1,2,C2D002,C2D004,CVCOMP) 04260701 |
| IF (CVCOMP .EQ. 'C002') IVCOMP = 1 04270701 |
| IF (IVCOMP - 1) 20180, 10180, 20180 04280701 |
| 10180 IVPASS = IVPASS + 1 04290701 |
| WRITE (I02,80002) IVTNUM 04300701 |
| GO TO 0181 04310701 |
| 20180 IVFAIL = IVFAIL + 1 04320701 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 04330701 |
| 0181 CONTINUE 04340701 |
| C 04350701 |
| CT019* TEST 019 **** FCVS PROGRAM 701 **** 04360701 |
| C 04370701 |
| C TEST 019 NEGATIVE DIMENSION 04380701 |
| C 04390701 |
| IVTNUM = 19 04400701 |
| CVCOMP = ' ' 04410701 |
| IVCOMP = 0 04420701 |
| CVCORR = 'C003' 04430701 |
| CVCOMP = C2N003(-2,3) 04440701 |
| IF (CVCOMP .EQ. 'C003') IVCOMP = 1 04450701 |
| IF (IVCOMP - 1) 20190, 10190, 20190 04460701 |
| 10190 IVPASS = IVPASS + 1 04470701 |
| WRITE (I02,80002) IVTNUM 04480701 |
| GO TO 0191 04490701 |
| 20190 IVFAIL = IVFAIL + 1 04500701 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 04510701 |
| 0191 CONTINUE 04520701 |
| C 04530701 |
| CT020* TEST 020 **** FCVS PROGRAM 701 **** 04540701 |
| C 04550701 |
| C TEST 020 VARIABLE DIMENSION 04560701 |
| C 04570701 |
| IVTNUM = 20 04580701 |
| CVCOMP = ' ' 04590701 |
| IVCOMP = 0 04600701 |
| CVCORR = 'C004' 04610701 |
| CALL SN703(2,1,2,C2D002,C2D004,CVCOMP) 04620701 |
| IF (CVCOMP .EQ. 'C004') IVCOMP = 1 04630701 |
| IF (IVCOMP - 1) 20200, 10200, 20200 04640701 |
| 10200 IVPASS = IVPASS + 1 04650701 |
| WRITE (I02,80002) IVTNUM 04660701 |
| GO TO 0201 04670701 |
| 20200 IVFAIL = IVFAIL + 1 04680701 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 04690701 |
| 0201 CONTINUE 04700701 |
| C 04710701 |
| CT021* TEST 021 **** FCVS PROGRAM 701 **** 04720701 |
| C 04730701 |
| C TEST 021 POSITIVE DIMENSION 04740701 |
| C 04750701 |
| IVTNUM = 21 04760701 |
| CVCOMP = ' ' 04770701 |
| IVCOMP = 0 04780701 |
| CVCORR = 'C005' 04790701 |
| CVCOMP = C1N005(1) 04800701 |
| IF (CVCOMP .EQ. 'C005') IVCOMP = 1 04810701 |
| IF (IVCOMP - 1) 20210, 10210, 20210 04820701 |
| 10210 IVPASS = IVPASS + 1 04830701 |
| WRITE (I02,80002) IVTNUM 04840701 |
| GO TO 0211 04850701 |
| 20210 IVFAIL = IVFAIL + 1 04860701 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 04870701 |
| 0211 CONTINUE 04880701 |
| C 04890701 |
| C TESTS 22-25 - MIXED DIMENSION BOUNDS WITH VARIABLE NUMBER OF 04900701 |
| C ELEMENTS IN EACH DIMENSION 04910701 |
| C 04920701 |
| C 04930701 |
| CT022* TEST 022 **** FCVS PROGRAM 701 **** 04940701 |
| C 04950701 |
| C 04960701 |
| IVTNUM = 22 04970701 |
| CVCOMP = ' ' 04980701 |
| IVCOMP = 0 04990701 |
| CVCORR = 'C006' 05000701 |
| CALL SN704(1,1,2,5,C3D006,CVCOMP) 05010701 |
| IF (CVCOMP .EQ. 'C006') IVCOMP = 1 05020701 |
| IF (IVCOMP - 1) 20220, 10220, 20220 05030701 |
| 10220 IVPASS = IVPASS + 1 05040701 |
| WRITE (I02,80002) IVTNUM 05050701 |
| GO TO 0221 05060701 |
| 20220 IVFAIL = IVFAIL + 1 05070701 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 05080701 |
| 0221 CONTINUE 05090701 |
| C 05100701 |
| CT023* TEST 023 **** FCVS PROGRAM 701 **** 05110701 |
| C 05120701 |
| C 05130701 |
| IVTNUM = 23 05140701 |
| CVCOMP = ' ' 05150701 |
| IVCOMP = 0 05160701 |
| CVCORR = 'IJKL' 05170701 |
| CALL SN704(2,1,2,6,C3D006,CVCOMP) 05180701 |
| IF (CVCOMP .EQ. 'IJKL') IVCOMP = 1 05190701 |
| IF (IVCOMP - 1) 20230, 10230, 20230 05200701 |
| 10230 IVPASS = IVPASS + 1 05210701 |
| WRITE (I02,80002) IVTNUM 05220701 |
| GO TO 0231 05230701 |
| 20230 IVFAIL = IVFAIL + 1 05240701 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 05250701 |
| 0231 CONTINUE 05260701 |
| C 05270701 |
| CT024* TEST 024 **** FCVS PROGRAM 701 **** 05280701 |
| C 05290701 |
| C 05300701 |
| IVTNUM = 24 05310701 |
| CVCOMP = ' ' 05320701 |
| IVCOMP = 0 05330701 |
| CVCORR = 'EFGH' 05340701 |
| CALL SN704(3,1,1,5,C3D006,CVCOMP) 05350701 |
| IF (CVCOMP .EQ. 'EFGH') IVCOMP = 1 05360701 |
| IF (IVCOMP - 1) 20240, 10240, 20240 05370701 |
| 10240 IVPASS = IVPASS + 1 05380701 |
| WRITE (I02,80002) IVTNUM 05390701 |
| GO TO 0241 05400701 |
| 20240 IVFAIL = IVFAIL + 1 05410701 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 05420701 |
| 0241 CONTINUE 05430701 |
| C 05440701 |
| CT025* TEST 025 **** FCVS PROGRAM 701 **** 05450701 |
| C 05460701 |
| C 05470701 |
| IVTNUM = 25 05480701 |
| CVCOMP = ' ' 05490701 |
| IVCOMP = 0 05500701 |
| CVCORR = 'ABCD' 05510701 |
| CALL SN704(4,2,2,6,C3D006,CVCOMP) 05520701 |
| IF (CVCOMP .EQ. 'ABCD') IVCOMP = 1 05530701 |
| IF (IVCOMP - 1) 20250, 10250, 20250 05540701 |
| 10250 IVPASS = IVPASS + 1 05550701 |
| WRITE (I02,80002) IVTNUM 05560701 |
| GO TO 0251 05570701 |
| 20250 IVFAIL = IVFAIL + 1 05580701 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 05590701 |
| 0251 CONTINUE 05600701 |
| C 05610701 |
| C TESTS 26-28 - LOWER BOUND IS AN EXPRESSION INVOLVING 05620701 |
| C ARITHMETIC OPERATORS 05630701 |
| C 05640701 |
| C 05650701 |
| CT026* TEST 026 **** FCVS PROGRAM 701 **** 05660701 |
| C 05670701 |
| C 05680701 |
| IVTNUM = 26 05690701 |
| IVCORR = -47 05700701 |
| CALL SN705(1,2,-1,1,I2D001,I2D002,I2D003,IVCOMP) 05710701 |
| 40260 IF (IVCOMP + 47) 20260, 10260, 20260 05720701 |
| 10260 IVPASS = IVPASS + 1 05730701 |
| WRITE (I02,80002) IVTNUM 05740701 |
| GO TO 0261 05750701 |
| 20260 IVFAIL = IVFAIL + 1 05760701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05770701 |
| 0261 CONTINUE 05780701 |
| C 05790701 |
| CT027* TEST 027 **** FCVS PROGRAM 701 **** 05800701 |
| C 05810701 |
| C 05820701 |
| IVTNUM = 27 05830701 |
| IVCORR = 5 05840701 |
| CALL SN705(2,2,-1,1,I2D001,I2D002,I2D003,IVCOMP) 05850701 |
| 40270 IF (IVCOMP - 5) 20270, 10270, 20270 05860701 |
| 10270 IVPASS = IVPASS + 1 05870701 |
| WRITE (I02,80002) IVTNUM 05880701 |
| GO TO 0271 05890701 |
| 20270 IVFAIL = IVFAIL + 1 05900701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05910701 |
| 0271 CONTINUE 05920701 |
| C 05930701 |
| CT028* TEST 028 **** FCVS PROGRAM 701 **** 05940701 |
| C 05950701 |
| C 05960701 |
| IVTNUM = 28 05970701 |
| IVCORR = 17 05980701 |
| CALL SN705(3,2,-1,1,I2D001,I2D002,I2D003,IVCOMP) 05990701 |
| 40280 IF (IVCOMP - 17) 20280, 10280, 20280 06000701 |
| 10280 IVPASS = IVPASS + 1 06010701 |
| WRITE (I02,80002) IVTNUM 06020701 |
| GO TO 0281 06030701 |
| 20280 IVFAIL = IVFAIL + 1 06040701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06050701 |
| 0281 CONTINUE 06060701 |
| C 06070701 |
| C TESTS 29-31 - UPPER BOUND IS AN EXPRESSION INVOLVING 06080701 |
| C ARITHMETIC OPERATORS 06090701 |
| C 06100701 |
| C 06110701 |
| CT029* TEST 029 **** FCVS PROGRAM 701 **** 06120701 |
| C 06130701 |
| C 06140701 |
| IVTNUM = 29 06150701 |
| IVCORR = -47 06160701 |
| CALL SN706(1,4,0,3,I2D001,I2D002,I2D003,IVCOMP) 06170701 |
| 40290 IF (IVCOMP + 47) 20290, 10290, 20290 06180701 |
| 10290 IVPASS = IVPASS + 1 06190701 |
| WRITE (I02,80002) IVTNUM 06200701 |
| GO TO 0291 06210701 |
| 20290 IVFAIL = IVFAIL + 1 06220701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06230701 |
| 0291 CONTINUE 06240701 |
| C 06250701 |
| CT030* TEST 030 **** FCVS PROGRAM 701 **** 06260701 |
| C 06270701 |
| C 06280701 |
| IVTNUM = 30 06290701 |
| IVCORR = 5 06300701 |
| CALL SN706(2,4,0,3,I2D001,I2D002,I2D003,IVCOMP) 06310701 |
| 40300 IF (IVCOMP - 5) 20300, 10300, 20300 06320701 |
| 10300 IVPASS = IVPASS + 1 06330701 |
| WRITE (I02,80002) IVTNUM 06340701 |
| GO TO 0301 06350701 |
| 20300 IVFAIL = IVFAIL + 1 06360701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06370701 |
| 0301 CONTINUE 06380701 |
| C 06390701 |
| CT031* TEST 031 **** FCVS PROGRAM 701 **** 06400701 |
| C 06410701 |
| C 06420701 |
| IVTNUM = 31 06430701 |
| IVCORR = 17 06440701 |
| CALL SN706(3,4,0,3,I2D001,I2D002,I2D003,IVCOMP) 06450701 |
| 40310 IF (IVCOMP - 17) 20310, 10310, 20310 06460701 |
| 10310 IVPASS = IVPASS + 1 06470701 |
| WRITE (I02,80002) IVTNUM 06480701 |
| GO TO 0311 06490701 |
| 20310 IVFAIL = IVFAIL + 1 06500701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06510701 |
| 0311 CONTINUE 06520701 |
| C 06530701 |
| CT032* TEST 032 **** FCVS PROGRAM 701 **** 06540701 |
| C 06550701 |
| C TEST 032 "/" IN LOWER BOUND 06560701 |
| C 06570701 |
| IVTNUM = 32 06580701 |
| IVCORR = -47 06590701 |
| CALL SN707(1,3,2,I2D001,I2D002,IVCOMP) 06600701 |
| 40320 IF (IVCOMP + 47) 20320, 10320, 20320 06610701 |
| 10320 IVPASS = IVPASS + 1 06620701 |
| WRITE (I02,80002) IVTNUM 06630701 |
| GO TO 0321 06640701 |
| 20320 IVFAIL = IVFAIL + 1 06650701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06660701 |
| 0321 CONTINUE 06670701 |
| C 06680701 |
| CT033* TEST 033 **** FCVS PROGRAM 701 **** 06690701 |
| C 06700701 |
| C TEST 033 "**" IN UPPER BOUND 06710701 |
| C 06720701 |
| IVTNUM = 33 06730701 |
| IVCORR = 5 06740701 |
| CALL SN707(2,3,2,I2D001,I2D002,IVCOMP) 06750701 |
| 40330 IF (IVCOMP - 5) 20330, 10330, 20330 06760701 |
| 10330 IVPASS = IVPASS + 1 06770701 |
| WRITE (I02,80002) IVTNUM 06780701 |
| GO TO 0331 06790701 |
| 20330 IVFAIL = IVFAIL + 1 06800701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06810701 |
| 0331 CONTINUE 06820701 |
| C 06830701 |
| C TESTS 34-35 - UPPER AND LOWER BOUNDS WITH ARITHMETIC OPERATORS 06840701 |
| C IN EXPRESSION 06850701 |
| C 06860701 |
| C 06870701 |
| CT034* TEST 034 **** FCVS PROGRAM 701 **** 06880701 |
| C 06890701 |
| C 06900701 |
| IVTNUM = 34 06910701 |
| IVCORR = -47 06920701 |
| CALL SN708(3,-2,2,I2D001,IVCOMP) 06930701 |
| 40340 IF (IVCOMP + 47) 20340, 10340, 20340 06940701 |
| 10340 IVPASS = IVPASS + 1 06950701 |
| WRITE (I02,80002) IVTNUM 06960701 |
| GO TO 0341 06970701 |
| 20340 IVFAIL = IVFAIL + 1 06980701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06990701 |
| 0341 CONTINUE 07000701 |
| C 07010701 |
| CT035* TEST 035 **** FCVS PROGRAM 701 **** 07020701 |
| C 07030701 |
| C 07040701 |
| IVTNUM = 35 07050701 |
| IVCORR = 9 07060701 |
| CALL SN709(-1,-2,1,I2D014,IVCOMP) 07070701 |
| 40350 IF (IVCOMP - 9) 20350, 10350, 20350 07080701 |
| 10350 IVPASS = IVPASS + 1 07090701 |
| WRITE (I02,80002) IVTNUM 07100701 |
| GO TO 0351 07110701 |
| 20350 IVFAIL = IVFAIL + 1 07120701 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07130701 |
| 0351 CONTINUE 07140701 |
| C 07150701 |
| CBB** ********************** BBCSUM0 **********************************07160701 |
| C**** WRITE OUT TEST SUMMARY 07170701 |
| C**** 07180701 |
| IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 07190701 |
| WRITE (I02, 90004) 07200701 |
| WRITE (I02, 90014) 07210701 |
| WRITE (I02, 90004) 07220701 |
| WRITE (I02, 90020) IVPASS 07230701 |
| WRITE (I02, 90022) IVFAIL 07240701 |
| WRITE (I02, 90024) IVDELE 07250701 |
| WRITE (I02, 90026) IVINSP 07260701 |
| WRITE (I02, 90028) IVTOTN, IVTOTL 07270701 |
| CBE** ********************** BBCSUM0 **********************************07280701 |
| CBB** ********************** BBCFOOT0 **********************************07290701 |
| C**** WRITE OUT REPORT FOOTINGS 07300701 |
| C**** 07310701 |
| WRITE (I02,90016) ZPROG, ZPROG 07320701 |
| WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 07330701 |
| WRITE (I02,90019) 07340701 |
| CBE** ********************** BBCFOOT0 **********************************07350701 |
| 90001 FORMAT (" ",56X,"FM701") 07360701 |
| 90000 FORMAT (" ",50X,"END OF PROGRAM FM701" ) 07370701 |
| CBB** ********************** BBCFMT0A **********************************07380701 |
| C**** FORMATS FOR TEST DETAIL LINES 07390701 |
| C**** 07400701 |
| 80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 07410701 |
| 80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 07420701 |
| 80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 07430701 |
| 80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 07440701 |
| 80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 07450701 |
| 1I6,/," ",15X,"CORRECT= " ,I6) 07460701 |
| 80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 07470701 |
| 1E12.5,/," ",16X,"CORRECT= " ,E12.5) 07480701 |
| 80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 07490701 |
| 1A21,/," ",16X,"CORRECT= " ,A21) 07500701 |
| 80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 07510701 |
| 80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 07520701 |
| 80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 07530701 |
| 80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 07540701 |
| 80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 07550701 |
| 80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 07560701 |
| 80050 FORMAT (" ",48X,A31) 07570701 |
| CBE** ********************** BBCFMT0A **********************************07580701 |
| CBB** ********************** BBCFMAT1 **********************************07590701 |
| C**** FORMATS FOR TEST DETAIL LINES - FULL LANGUAGE 07600701 |
| C**** 07610701 |
| 80031 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 07620701 |
| 1D17.10,/," ",16X,"CORRECT= " ,D17.10) 07630701 |
| 80033 FORMAT (" ",16X,"COMPUTED= " ,D17.10,10X,A31) 07640701 |
| 80035 FORMAT (" ",16X,"CORRECT= " ,D17.10,10X,A31) 07650701 |
| 80037 FORMAT (" ",16X,"COMPUTED= " ,"(",E12.5,", ",E12.5,")",6X,A31) 07660701 |
| 80039 FORMAT (" ",16X,"CORRECT= " ,"(",E12.5,", ",E12.5,")",6X,A31) 07670701 |
| 80041 FORMAT (" ",16X,"COMPUTED= " ,"(",F12.5,", ",F12.5,")",6X,A31) 07680701 |
| 80043 FORMAT (" ",16X,"CORRECT= " ,"(",F12.5,", ",F12.5,")",6X,A31) 07690701 |
| 80045 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 07700701 |
| 1"(",F12.5,", ",F12.5,")"/," ",16X,"CORRECT= " , 07710701 |
| 2"(",F12.5,", ",F12.5,")") 07720701 |
| CBE** ********************** BBCFMAT1 **********************************07730701 |
| CBB** ********************** BBCFMT0B **********************************07740701 |
| C**** FORMAT STATEMENTS FOR PAGE HEADERS 07750701 |
| C**** 07760701 |
| 90002 FORMAT ("1") 07770701 |
| 90004 FORMAT (" ") 07780701 |
| 90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )07790701 |
| 90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 07800701 |
| 90008 FORMAT (" ",21X,A13,A17) 07810701 |
| 90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 07820701 |
| 90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 07830701 |
| 90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 07840701 |
| 1 7X,"REMARKS",24X) 07850701 |
| 90014 FORMAT (" ","----------------------------------------------" , 07860701 |
| 1 "---------------------------------" ) 07870701 |
| 90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 07880701 |
| C**** 07890701 |
| C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 07900701 |
| C**** 07910701 |
| 90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 07920701 |
| 90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 07930701 |
| 1 A13) 07940701 |
| 90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 07950701 |
| C**** 07960701 |
| C**** FORMAT STATEMENTS FOR RUN SUMMARY 07970701 |
| C**** 07980701 |
| 90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 07990701 |
| 90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 08000701 |
| 90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 08010701 |
| 90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 08020701 |
| 90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 08030701 |
| CBE** ********************** BBCFMT0B **********************************08040701 |
| END 08050701 |
| |
| C THIS SUBROUTINE IS TO BE RUN WITH ROUTINE 701. 00010702 |
| C 00020702 |
| C THIS SUBROUTINE TESTS DIMENSION BOUND EXPRESSIONS 00030702 |
| C CONTAINING VARIABLES OF TYPE INTEGER. 00040702 |
| C 00050702 |
| SUBROUTINE SN702(IVD001,IVD002,IVD003,IVD004,I2D001,I2D002,I2D003,00060702 |
| 1 IVD005) 00070702 |
| C 00080702 |
| DIMENSION I2D001(IVD002:3,1:5), I2D002(2,1:2*IVD003), 00090702 |
| 1 I2D003(IVD004/3 - 1 : IVD002 + 4, 1:2) 00100702 |
| C 00110702 |
| IF (IVD001 - 2) 70010, 70020, 70030 00120702 |
| 70010 IVD005 = I2D001(1,5) 00130702 |
| RETURN 00140702 |
| 70020 IVD005 = I2D002(1,4) 00150702 |
| RETURN 00160702 |
| 70030 IVD005 = I2D003(1,1) - I2D003(5,2) 00170702 |
| RETURN 00180702 |
| END 00190702 |
| |
| C THIS SUBROUTINE IS TO BE RUN WITH ROUTINE 701. 00010703 |
| C 00020703 |
| C THIS SUBROUTINE TESTS ASSUMED-SIZE ARRAY DECLARATORS 00030703 |
| C AND ADJUSTABLE ARRAY DECLARATORS. 00040703 |
| C 00050703 |
| SUBROUTINE SN703(IVD001,IVD002,IVD003,C2D001,C2D002,CVD001) 00060703 |
| C 00070703 |
| CHARACTER*4 CVD001, C2D001(2,1:*), C2D002(IVD002:IVD003,5:7) 00080703 |
| C 00090703 |
| IF (IVD001 - 1) 70010, 70010, 70020 00100703 |
| 70010 CVD001 = C2D001(2,3) 00110703 |
| RETURN 00120703 |
| 70020 CVD001 = C2D002(1,5) 00130703 |
| RETURN 00140703 |
| END 00150703 |
| |
| C THIS SUBROUTINE IS TO BE RUN WITH ROUTINE 701. 00010704 |
| C 00020704 |
| C THIS SUBROUTINE TESTS ADJUSTABLE ARRAY DECLARATORS. 00030704 |
| C 00040704 |
| SUBROUTINE SN704(IVD001,IVD002,IVD003,IVD004,C3D001,CVD001) 00050704 |
| C 00060704 |
| CHARACTER*4 CVD001, C3D001(IVD002:IVD003,2,IVD004:7) 00070704 |
| C 00080704 |
| IF (IVD001 - 2) 70010, 70020, 70030 00090704 |
| 70010 CVD001 = C3D001(1,1,5) 00100704 |
| RETURN 00110704 |
| 70020 C3D001(1,2,6) = 'IJKL' 00120704 |
| CVD001 = C3D001(1,2,6) 00130704 |
| RETURN 00140704 |
| 70030 IF (IVD001 - 3) 70040, 70040, 70050 00150704 |
| 70040 C3D001(1,1,5) = 'EFGH' 00160704 |
| CVD001 = C3D001(1,1,5) 00170704 |
| RETURN 00180704 |
| 70050 C3D001(2,2,6) = 'ABCD' 00190704 |
| CVD001 = C3D001(2,2,6) 00200704 |
| RETURN 00210704 |
| END 00220704 |
| |
| C THIS SUBROUTINE IS TO BE RUN WITH ROUTINE 701. 00010705 |
| C 00020705 |
| C THIS SUBROUTINE TESTS ARRAY DECLARATORS WHERE THE LOWER BOUNDS 00030705 |
| C CONTAIN ARITHMETIC EXPRESSIONS OF TYPE 00040705 |
| C INTEGER. 00050705 |
| C 00060705 |
| SUBROUTINE SN705(IVD001,IVD002,IVD003,IVD004,I2D001,I2D002,I2D003,00070705 |
| 1 IVD005) 00080705 |
| C 00090705 |
| DIMENSION I2D001(IVD002-1:3,1:5),I2D002(IVD003+2:2,1:4), 00100705 |
| 1 I2D003(2*IVD004-1:5,2) 00110705 |
| C 00120705 |
| IF (IVD001 - 2) 70010, 70020, 70030 00130705 |
| 70010 IVD005 = I2D001(1,5) 00140705 |
| RETURN 00150705 |
| 70020 IVD005 = I2D002(1,4) 00160705 |
| RETURN 00170705 |
| 70030 IVD005 = I2D003(1,1) - I2D003(5,2) 00180705 |
| RETURN 00190705 |
| END 00200705 |
| |
| C THIS SUBROUTINE IS TO BE RUN WITH ROUTINE 701. 00010706 |
| C 00020706 |
| C THIS SUBROUTINE TESTS ARRAY DECLARATORS WHERE THE UPPER BOUNDS 00030706 |
| C CONTAIN ARITHMETIC EXPRESSIONS OF TYPE 00040706 |
| C INTEGER. 00050706 |
| C 00060706 |
| SUBROUTINE SN706(IVD001,IVD002,IVD003,IVD004,I2D001,I2D002,I2D003,00070706 |
| 1 IVD005) 00080706 |
| C 00090706 |
| DIMENSION I2D001(1:IVD002-1,1:5),I2D002(1:IVD003+2,1:4), 00100706 |
| 1 I2D003(1:2*IVD004-1,2) 00110706 |
| C 00120706 |
| IF (IVD001 - 2) 70010, 70020, 70030 00130706 |
| 70010 IVD005 = I2D001(1,5) 00140706 |
| RETURN 00150706 |
| 70020 IVD005 = I2D002(1,4) 00160706 |
| RETURN 00170706 |
| 70030 IVD005 = I2D003(1,1) - I2D003(5,2) 00180706 |
| RETURN 00190706 |
| END 00200706 |
| |
| C THIS SUBROUTINE IS TO BE RUN WITH ROUTINE 701. 00010707 |
| C 00020707 |
| C THIS SUBROUTINE TESTS ARRAY DECLARATORS WHERE BOUND EXPRESSIONS 00030707 |
| C MAY CONTAIN DIVISION OPERATORS OR 00040707 |
| C EXPONENTIATION OPERATORS. 00050707 |
| C 00060707 |
| SUBROUTINE SN707(IVD001,IVD002,IVD003,I2D001,I2D002,IVD004) 00070707 |
| C 00080707 |
| DIMENSION I2D001(IVD002/3:3,1:5),I2D002(1:2,1:IVD003**2) 00090707 |
| C 00100707 |
| IF (IVD001 - 1) 70010, 70010, 70020 00110707 |
| 70010 IVD004 = I2D001(1,5) 00120707 |
| RETURN 00130707 |
| 70020 IVD004 = I2D002(1,4) 00140707 |
| RETURN 00150707 |
| END 00160707 |
| |
| C THIS SUBROUTINE IS TO BE RUN WITH ROUTINE 701. 00010708 |
| C 00020708 |
| C THIS SUBROUTINE TESTS ARRAY DECLARATORS WHERE BOTH THE LOWER 00030708 |
| C AND UPPER BOUNDS CONTAIN ARITHMETIC 00040708 |
| C EXPRESSIONS OF TYPE INTEGER. 00050708 |
| C 00060708 |
| SUBROUTINE SN708(IVD001,IVD002,IVD003,I2D001,IVD004) 00070708 |
| C 00080708 |
| DIMENSION I2D001(IVD001/3:IVD001,IVD002+3 : 4*(2*IVD003-1)/3 + 1) 00090708 |
| C 00100708 |
| IVD004 = I2D001(1,5) 00110708 |
| RETURN 00120708 |
| END 00130708 |
| |
| C THIS SUBROUTINE IS TO BE RUN WITH ROUTINE 701. 00010709 |
| C 00020709 |
| C THIS SUBROUTINE TESTS ARRAY DECLARATORS WHERE THE BOUND 00030709 |
| C EXPRESSIONS CONTAIN SYMBOLIC NAMES 00040709 |
| C OF CONSTANTS OR VARIABLES OF TYPE 00050709 |
| C INTEGER. 00060709 |
| C 00070709 |
| SUBROUTINE SN709(IVD001,IVD002,IVD003,I2D001,IVD005) 00080709 |
| C 00090709 |
| PARAMETER (IPN001=-3) 00100709 |
| DIMENSION I2D001(IPN001+4:(2*IVD003 + 1),IPN001:(1-IVD001)/IVD002)00110709 |
| C 00120709 |
| IVD005 = I2D001(1,-3) 00130709 |
| RETURN 00140709 |
| END 00150709 |