!<arch> nbs01.d 480890328 170 2 100666 1873 ` SAMPLE COMPUTER, FORTRAN COMPILER LEVEL DO NOT READ OR WRITE RECORD 2 . DOUBLE SPACE ON OUTPUT. ID 2 OPERATING SYSTEM VERSION DO NOT READ OR WRITE RECORD 4 . DOUBLE SPACE ON OUTPUT ID 4 DATE, INSTALLATION NAME DO NOT READ OR WRITE RECORD 6 DOUBLE SPACE ON OUTPUT ID 6 999 555554444 666 777777 8 333333111112222222255555444444444444 7.7123456.7 8.889.9997.123456 5.44446.5555533.133.133.133.1444.1 5555.15555.1 66666.166666.1 44.22 2.12.12.12.12.1666.3334.3334.3334.333 -0.1E+01+0.22E-01 0.333E+02 0.4444E+03-0.55555E-03+0.666666E+00+0.9876543E+12 1.05.522.066.633.123455.0789 123.00456.88 0.123E+01 +0.987+1 -0.2345+02 -0.6879E+2+0.7E+03 0.4E+03 0.9876543E-04+0.1357913E-04 19.34+0.2468E+02 +.765+287.643.96 0.5407E+0243.96+0.5407E+0243.96 0.5407+2 +0.1D+06 -0.334D-04 -.334-4 +0.7657654D00 0.12345678901D+10 +0.98765432109876D-1+0.98765432109876D-01 .98765432109876-1 -.555555542D+03 -0.555555542+3 TABC FDEFFGHIT*+T1F$)TF 9.91.19.92.29.93.39.94.49.91.19.92.29.93.39.94.4 9.95.59.96.69.97.79.98.89.95.59.96.69.97.79.98.8 -9.9-9.9-9.9-9.9 -0.99D+01-0.99D+01-0.99D+01-0.99D+01-0.99D+01 -.99D+01 -.99+01 -.99+1 9999999999 +0.99D+01 0.99D+01 +.99D01 +.99D1 .9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9 TFTFTFTFTF 99999999+0.99D+01 0.99D+01 0.99D+01+0.99D+01 .99D1 9.95.59.96.69.97.79.98.89999999999999999TFFT9.99.99.99.99.9 T F T F 4444.55555 123.45678E2 1234.5678 123.45678 12.345678 1.2345678 .12345678 9876.5498.7654E2 9876.54 987.654864786D-486.4786E286.4786 8657.86D0 9876.54 9.8765598.7654E2 9876.54 987.654864786D-386.4786E286.4786 8657.86D0 9876.54 122333544888611222 455666233444966111 788999377555899777 11112 334 559 880 11 6 778 995 441 222 00 B=EF-*JKL/()012TUVW+,.$X YZACDGHIPQRSMNO678(C)B2$9+A345 QZ1*A ABCDEFGHIJKLMNOPQRSTUVWXYZ nbs01.f 480887303 170 2 100666 50099 ` C***** PART1 ***************************************************** C***** C***** ANSI FORTRAN (X3.9-1966) TEST PROGRAMS C***** C***** PREPARED BY THE NATIONAL BUREAU OF STANDARDS VERSION 3 C***** C***** JUNE 1973 C***** C***** PART 1 OF 14 PARTS C***** C***** SEGMENTS INCLUDED C***** C***** DATA1 - 003 TEST FORMAT OF DATA STATEMENT C***** C***** FMTRW - 008 FORMATTED INPUT/OUTPUT C***** C***** AFRMT - 009 A-CONVERSION C***** C***** DATA2 - 010 DATA STATEMENT USE C***** C***** AASGN - 011 REAL AND INTEGER ARITH ASSIGN. STMNTS C***** C***** THE FOLLOWING SPECIFICATIONS ARE TO BE USED ONLY WHEN C***** SEGMENTS 003, 008, 009, 010, 011 ARE RUN AS ONE MAIN PROGRAM C***** DIMENSION IAC2I(2,7), EP1S(33), AC2S(5,6), AC3S(1,1,3) DIMENSION A1S(5), A2S(2,2), CMA1S(5), A3S(3,3,3) 1 , IAC1I(5), AC1S(25), MCA1I(5) INTEGER AVI,MCA3I(2,3,3),I2I(2,2),I3I(2,2,2),BVI,MAVI,LAVI,I1I(5) REAL JVS, MVS, CVS, BCVS LOGICAL MAVB, MBVB, MCVB, MCA1B(7), GH2B(1,2), GI3B(1,1,2),MCBVB 1 , A1B(2), A2B(2,2), A3B(2,2,2), GG1B(2), AVB, CVB, DVB, EVB DOUBLE PRECISION AVD, BVD, CVD, DVD 1 , DPA2D(2,2), MCA3D(1,4,2), A1D(4) DOUBLE PRECISION DPA1D(5), ZZDVD, A2D(2,2), A3D(2,2,2) 1 , AC1D(10), BC2D(7,4), DPAVD, DPBVD COMPLEX ADSVC, BCVC, CHEVC, DCVC, LL1C(32), LM2C(8,4) 1, LN3C(9,2,2), BVC, QAVC, CHAVC, CHBVC, CHCVC, CHDVC 2 , A1C(12), A2C(2,2), B3C(2,2,2), B1C(8) C***** END OF SPECIFICATIONS FOR SEGMENTS 003, 008, 009, 010, 011 C***** C*********************************************************************** C***** C***** DATA1 - (003) C***** COMPLETE WITH DATA2 - (010) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REFS C***** TO TEST FORMAT OF DATA STATEMENT 7.2.2 C***** RESTRICTIONS OBSERVED C***** NO DUMMY ARGUMENTS OR EXTERNAL FUNCTION NAMES 7.2.2/27 C***** APPEAR IN DATA STATEMENTS 8.4.1.1/40 C***** 10.1.2/08 C***** NO INITIALY DEFINED ITEMS APPEAR IN BLANK COMMON 7.2.2/39 C***** 10.2.4/47 C***** STORAGE UNITS INITIALIZED ONLY ONCE 10.1.2/10 C***** SUBSCRIPTS ARE INTEGER CONSTANTS 7.2.2/28 C***** EXPLICIT VARIABLES C***** AVI IS INTEGER C***** JVS IS REAL C***** C***** S P E C I F I C A T I O N S SEGMENTS 003 AND 010 C***** C***** WHEN EXECUTING ONLY SEGMENTS 003 AND 010, REMOVE THE PRECEDING C***** SPECIFICATIONS. THE FOLLOWING SPECIFICATIONS WHICH APPEAR AS C***** COMMENTS MUST HAVE THE C= IN COL 1 AND 2 REMOVED. C***** C= DIMENSION IAC2I(2,7), EP1S(33), AC2S(5,6) C= 1,AC3S(1,1,3) C= INTEGER AVI ,MCA3I(2,3,3), I1I(5) C= REAL JVS C= LOGICAL MAVB,MBVB,MCVB, MCA1B(7),GH2B(1,2),GI3B(1,1,2),GG1B(2) C= DOUBLE PRECISION AVD,BVD,CVD,DVD C= 1,DPA2D(2,2),MCA3D(1,4,2),A1D(4) C= COMPLEX ADSVC,BCVC,CHEVC,DCVC,LL1C(32),LM2C(8,4),LN3C(9,2,2) C***** C***** TEST DATA INITIALIZATION OF INTEGER CONSTANTS TO 5.1.1.1 C***** INTEGER VARIABLES DATA I1I(1),MCA3I(1,2,1),MCA3I(2,2,2),IAC2I(2,5),IAC2I(2,6), AMCA3I(2,1,1)/0,2*10,3*246/ C***** TEST DATA INITIALIZATION OF REAL CONSTANTS TO 5.1.1.2 C***** REAL VARIABLES DATA EP1S(8),EP1S(10),EP1S(12),AC2S(5,5),EP1S(11),AC2S(5,3), AAC2S(5,2)/2*0.,2*-750.05,.24615E3,2.4615E2,3.54674E+3/ C***** TEST DATA INITIALIZATION OF DP CONTANTS TO 5.1.1.3 C***** DP VARIABLES DATA BVD ,DPA2D(2,1),CVD,DPA2D(1,2), DVD,DPA2D(2,2)/+34567890.1D- A3,345.678901D+2,112233.5D-08,11.22335D-4,3.4D12,0.34D13/ C***** TEST DATA INITIALIZATION OF COMPLEX CONSTANTS TO 5.1.1.4 C***** COMPLEX VARIABLES DATA ADSVC,LN3C(9,1,2),LL1C(30),LN3C(8,2,2),LM2C(8,3),LN3C(9,1,1), ALL1C(32),LN3C(8,1,2)/2*(11.1,22.22),(-3.45E1,-67.8E-1), B(-34.5E0,-6.78E0),(10.E0,-20.E0),(1.0E1,-2.0E1),(-20.0E1,+4.E3), C(-200.E0,+4000.E0)/ C***** TEST DATA INITIALIZATION OF LOGICAL CONSTANTS TO 5.1.1.5 C***** LOGICAL VARIABLES DATA MAVB ,MCA1B(6), MBVB/2*.TRUE.,.FALSE./ C***** TEST DATA INITIALIZATION OF HOLLERITH CONSTANTS 5.1.1.6 DATA GI3B(1,1,2),GG1B(1),EP1S(15)/2HNO,2*2HAD/ C***** TEST DATA INITIALIZATION OF A MIXTURE OF ALL TYPES OF C***** CONSTANTS AND VARIABLES IN ONE DATA STATEMENT DATA I1I(2),IAC2I(1,5),IAC2I(1,3), I1I(5),IAC2I(2,4), AMCA3I(1,1,2), AVI,EP1S(13),AC2S(2,6),AC2S(1,6),AC3S(1,1,1), BAC2S(3,6),AC3S(1,1,2),AC2S(4,6), AVD,A1D(1),DPA2D(1,1), CMCA3D(1,1,1),A1D(2),MCA3D(1,1,2),LL1C(29),LN3C(8,2,1),BCVC, DLM2C(8,4),GH2B(1,1),GI3B(1,1,1), MCVB/3*0,4*-750,2*0.,2*246.15, E354674.E-2,354.674E+ 1,35467.4E-01,3*-.295D5,-29.5D+3, F3456.78901D+01,0.345678901D+5,2*(1.11E1,+222.2E-1),(-34.5,-6.78), G(-.345E2,-678.E-2),2*.TRUE.,.FALSE./, I1I(3), I1I(4), HMCA3I(1,2,2),AC2S(5,6),JVS ,EP1S(14),AC3S(1,1,3),IAC2I(1,4), ICHEVC,LL1C(31),DCVC,LM2C(8,2),A1D(3),MCA3D(1,3,1),A1D(4), JMCA3D(1,4,1), MCA1B(7),GH2B(1,2) / 2*10,+246, K-.75005E03,-7.5005E+02,2HBC,2H*=,2H P,2*(10.,-20.), L(-200.,+4000.),(-2000.E-1,+400.E1),+1122.335D-6,0.00001122335D+2, M34.0D11,0.034D14,2*.FALSE./ C***** END OF SEGMENT 003 C*********************************************************************** C***** C***** FMTRW - (008) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REFS C***** TO TEST SIMPLE FORMAT AND FORMATTED I/O STATEMENTS 7.1.3.2.2 C***** SO THAT THESE FEATURES MAY BE USED IN OTHER TEST 7.1.3.2.3 C***** PROGRAM SEGMENTS 7.2.3 C***** RESTRICTIONS OBSERVED C***** * ALL FORMAT STATEMENTS ARE LABELED 7.2.3 /57 C***** * H AND X DESCRIPTORS ARE NEVER REPEATED 7.2.3.3/54 C***** * FOR W.D DESCRIPTORS, D IS ALWAYS SPECIFIED AND 7.2.3.1/31 C***** W IS EQUAL TO OR GREATER THAN D 7.2.3.1/33 C***** * FIELD WIDTH IS NEVER ZERO 7.2.3 /18 C***** * IF THERE IS AN I/O LIST, THE FORMAT STATEMENT 7.2.3.4/22 C***** CONTAINS AT LEAST ONE FIELD DESCRIPTOR (OTHER C***** THAN H OR X) C***** * ITEMS IN I/O LIST CORRESPOND TO FORMAT DESCRIPTORS 7.2.3.4/36 C***** * NEGATIVE OUTPUT VALUES ARE SIGNED 7.2.3.6/56 C***** * FIELD WIDTH NEVER EXCEEDED BY OUTPUT 7.2.3.6/01 C***** * FOR I CONVERSION, EXTERNAL INPUT FIELDS ARE 7.2.3.6.1/07 C***** INTEGER CONSTANTS C***** GENERAL COMMENTS C***** PLUS SIGNS FOR INPUT FIELDS ARE USUALLY OMITTED 7.2.3.6/44 C***** C***** READ AND WRITE STATEMENTS FOR ENTIRE SEGMENT FOLLOW C***** C***** FORMATTED WRITES WITHOUT AN I/O LIST (FORMAT 7.1.3.2.3/05 C***** STATEMENTS TEST H AND X DESCRIPTORS AND SLASH 7.2.3.2 /44 C***** RECORD DIVIDERS) 7.2.3.8 /09 C***** 7.2.3.9 /31 C INPUT DATA TO THIS SEGMENT CONSISTS OF 40 CARD IMAGES IN COL. 1 - 80 COL. 1----------------------------------------------------------61 CARD 1 999 CARD 2 555554444 CARD 3 666 777777 8 CARD 4 333333111112222222255555444444444444 CARD 5 7.7123456.7 CARD 6 8.889.9997.123456 CARD 7 5.44446.5555533.133.133.133.1444.1 CARD 8 5555.15555.1 66666.166666.1 44.22 CARD 9 2.12.12.12.12.1666.3334.3334.3334.333 CARD 10 -0.1E+01+0.22E-01 0.333E+02 0.4444E+03-0.55555E-03+0.666666E+ COL. 62------------77 CARD 10 00+0.9876543E+12 COL. 1----------------------------------------------------------61 CARD 11 1.05.522.066.633.123455.0789 CARD 12 123.00456.88 0.123E+01 +0.987+1 -0.2345+02 -0.6879E+2+0.7E+0 COL 62-----70 CARD 12 3 0.4E+03 COL. 1----------------------------------------------------------61 CARD 13 0.9876543E-04+0.1357913E-04 CARD 14 19.34+0.2468E+02 +.765+287.643.96 0.5407E+0243.96+0.5407E+0 COL. 62-------------78 CARD 14 243.96 0.5407+2 COL. 1----------------------------- ----------------------------61 CARD 15 +0.10+06 CARD 16 -0.334D-04 -.334-4 +0.7657654D00 0.12345678901D+10 CARD 17 +0.98765432109876D-1+0.98765432109876D-01 .98765432109876 COL. 62-66 CARD 17 -1 COL. 1----------------------------------------------------------61 CARD 18 -.555555542D+03 -0.555555542+3 CARD 19 TABC CARD 20 FDEFFGHIT*+T1F$)TF CARD 21 9.91.19.92.29.93.39.94.49.91.19.92.29.93.39.94.4 CARD 22 9.95.59.96.69.97.79.98.89.95.59.96.69.97.79.98.8 CARD 23 -9.9-9.9-9.9-9.9 CARD 24 -0.99D+01-0.99D+01-0.99D+01-0.99D+01-0.99D+01 -.99D+01 -.99+ COL. 62-------72 CARD 24 01 -.99+1 COL. 1----------------------------------------------------------61 CARD 25 9999999999 CARD 26 +0.99D+01 0.99D+01 +.99D01 +.99D1 CARD 27 .9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9 CARD 28 TFTFTFTFTF CARD 29 99999999+0.99D+01 0.99D+01 0.99D+01+0.99D+01 .99D1 CARD 30 9.95.59.96.69.97.79.98.89999999999999999TFFT9.99.99.99.99.9 CARD 31 T F T F CARD 32 4444.55555 COL. 1----------------------------------------------------------61 CARD 33 123.45678E2 1234.5678 123.45678 12.345678 1.2345678 .123 COL. 62-66 CARD 33 45678 COL. 1----------------------------------------------------------61 CARD 34 9876.5498.7654E2 9876.54 987.654864786D-486.4786E286.4786 COL. 62---------------80 CARD 34 8657.86D0 9876.54 COL. 1----------------------------------------------------------61 CARD 35 9.8765598.7654E2 9876.54 987.654864786D-386.4786E286.4786 COL. 62---------------80 CARD 35 8657.86D0 9876.54 COL. 1----------------------------------------------------------61 CARD 36 122333544888611222 CARD 37 455666233444966111 CARD 38 788999377555899777 CARD 39 11112 334 559 880 11 CARD 40 6 778 995 441 222 00 C***** C***** S P E C I F I C A T I O N S SEGMENT 008 C***** C***** WHEN EXECUTING ONLY SEGMENT 008, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED C= DIMENSION A1S(5),A2S(2,2) ,EP1S(33),CMA1S(5),A3S(3,3,3) C= 1,IAC1I(5),IAC2I(2,7),AC1S(25),AC2S(5,6),MCA1I(5) C= INTEGER I2I(2,2),I3I(2,2,2),MCA3I(2,3,3) C= LOGICAL MCA1B(7),A1B(2),A2B(2,2),A3B(2,2,2),AVB,CVB,DVB ,MCBVB C= DOUBLE PRECISION DPA1D(5),MCA3D(1,4,2),ZZDVD ,A2D(2,2),A3D(2,2,2) C= 1,AC1D(10),BC2D(7,4),DPAVD,DPBVD C= COMPLEX BVC,QAVC,CHAVC,CHBVC,CHCVC,CHDVC C= 1,LL1C(32),LM2C(8,4),A1C(12),A2C(2,2),B3C(2,2,2),B1C(8) C***** C***** I N P U T - O U T P U T TAPE ASSIGNMENT STATEMENTS C***** IRVI = 5 NUVI = 6 C***** IDENTIFY THE SOURCE OF THE TEST PROGRAMS WRITE(NUVI,0071) 0071 FORMAT (41H1 F O R T R A N T E S T P R O G R A M S// 1 42H PREPARED BY NATIONAL BUREAU OF STANDARDS// 3 37H FOR USE ON LARGE FORTRAN PROCESSORS // 4 42H IN ACCORDANCE WITH ASA FORTRAN X3.9-1966// 5 23H VERSION 3 PART 1 ///) C***** 3 OF 6 INPUT CARDS IDENTIFY THE USERS SYSTEM AND COMPILER C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST READ(IRVI,0070) READ(IRVI,0072) READ(IRVI,0073) 0070 FORMAT(40H BASED ON ASA FORTRAN X3.9-1966 /) 0072 FORMAT(40H TEST PROGRAMS /) 0073 FORMAT(40H FORTRAN COMPILER /) WRITE(NUVI,0070) WRITE(NUVI,0072) WRITE(NUVI,0073) C***** HEADER FORMAT STATEMENT 0080 FORMAT (1H1, 1X,27HFMTRW - (008) FORMATTED I/O//2X, 138HASA REFS - 7.1.3.2.2 7.1.3.2.3 7.2.3//2X,7HRESULTS) WRITE (NUVI,0080) C***** FORMAT WITH DIGITS 0-9 IN H FIELDS 0081 FORMAT (//22H 10101010101010101010,9H999999999,8H88888888/2X, 17H7777777,6H666666,5H55555,4H4444,3H333,2H22,1H1) WRITE (NUVI,0081) C***** FORMAT CONTAINING ALL LETTERS (A-Z) IN H FIELDS AND C***** A VARIABLE NUMBER OF BLANKS IN H AND X FIELDS 0082 FORMAT(/2X,3HAAA,5X,5H ,3HBBB,10X,3HCCC/3H ,3HDDD,9X,3HEEE, 19H ,3HFFF/4X,3HGGG,8X,3HHHH,8H ,3HIII/5H ,3HJJJ 2,7H ,3HKKK,7X,3HLLL/6X,3HMMM,6X,3HNNN,6H ,3HOOO/7X, 3 3HPPP,5H ,3HQQQ,5X,3HRRR/8X,3HSSS,4X,3HTTT,4H ,3HUUU/ 1 45H VVV ,3HWWW,3X,3HXXX/12X,3HYYY,3X,3HZZZ) WRITE (NUVI,0082) C***** FORMAT CONTAINING H FIELD WITH ALL POSSIBLE C***** SPECIAL CHARACTERS 3.1/46 0083 FORMAT(/21H = + - * / ( ) , . $) WRITE (NUVI,0083) C***** FORMAT TO TEST VERTICAL SPACING C***** 7.1.3.4/04 7154 FORMAT(/24H BEGIN VERTICAL SPACING//30H FORMAT(14H SKIP 1 LINE 1 /) /) WRITE (NUVI, 7154) 7155 FORMAT(32H FORMAT(15H SKIP 2 LINES //) //) WRITE (NUVI, 7155) 7156 FORMAT(33H FORMAT(16H SKIP 3 LINES ///) ///) WRITE (NUVI,7156) 0084 FORMAT( 32H IMBEDDED SLASHES - SKIP 1 LINE // 1 14H SKIP 2 LINES/// 14H SKIP 3 LINES/ 3(/), 2 19H SKIP TO NEXT LINE/ 1H , 12H SKIP 1 LINE/ 1H0, 38H TEST NO/1H+,9X,14H/1H+,7HADVANCE/19H SKIP TO NEW PAGE / 4 1H1, /// 30H END OF VERTICAL SPACING TEST) WRITE (NUVI,0084) C***** FORMATTED READ AND WRITE STATEMENTS WITH INTEGER 7.1.3.2.1/25 C***** VARIABLES AND ARRAY ELEMENTS IN AN I/O LIST. (THE 7.2.3.3/01 C***** NUMBER OF ITEMS IN THE LIST IS VARIABLE.) SOME C***** FORMAT STATEMENTS CONTAIN REPEATED FIELDS. C***** FORMATS CONTAINING I CONVERSION DESCRIPTORS. 7.2.3.6.1/03 C***** FIELDS WIDTH IS FROM 1 TO 5 DIGITS. SOME 7.2.3.3 /01 C***** FIELDS ARE REPEATED 0085 FORMAT (//25H BEGIN I CONVERSION TEST/40H EACH PAIR OF LINES SHO 1ULD BE IDENTICAL/47H LINE 1 OF EACH GROUP IS HOLLERITH INFORMATIO 2N) WRITE (NUVI,0085) C***** INPUT CARD 1 0086 FORMAT (2X,I3) READ (IRVI,0086) JACVI C***** INPUT CARD 2 0087 FORMAT (2X,I5,I4) READ (IRVI,0087) KBCVI, IAC1I(1) C***** INPUT CARD 3 0088 FORMAT (2X,I3,2X,3(I2),2X,I1) READ (IRVI,0088) IAC2I(1,2), LCCVI, IAC1I(5), IHDVI, MCA3I(1,2,3) C***** INPUT CARD 4 0089 FORMAT (2X,2(I3),5(I1),4(I2),1(I5),3(I4)) READ (IRVI,0089) MDCVI, IAC2I(2,2), IAC1I(4), NECVI, IAC1I(3), 1 IAC2I(2,3), IAC2I(2,1), MRRVI, IGDVI, KGVI, IEDVI, IAC2I(1,1) 2 ,IAC1I(2), IAC2I(2,7), MCA3I(2,1,3) 7086 FORMAT (/ 5H 999) WRITE (NUVI,7086) WRITE (NUVI,0086) JACVI 7087 FORMAT (/ 11H 555554444) WRITE (NUVI,7087) WRITE (NUVI,0087) KBCVI, IAC1I(1) 7088 FORMAT (/ 16H 666 777777 8) WRITE (NUVI,7088) WRITE (NUVI,0088) IAC2I(1,2), LCCVI, IAC1I(5), IHDVI, MCA3I(1,2,3) 7089 FORMAT (/ 38H 333333111112222222255555444444444444) WRITE (NUVI,7089) WRITE (NUVI,0089) MDCVI, IAC2I(2,2), IAC1I(4), NECVI, IAC1I(3), 1 IAC2I(2,3), IAC2I(2,1), MRRVI, IGDVI, KGVI, IEDVI, IAC2I(1,1) 2 ,IAC1I(2), IAC2I(2,7), MCA3I(2,1,3) C***** FORMATTED READ AND WRITE STATEMENTS WITH REAL 7.1.3.2.1/25 C***** VARIABLES AND ARRAY ELEMENTS IN AN I/O LIST.(THE 7.2.3.6.2/18 C***** NUMBER OF ITEMS IN THE LIST IS VARIABLE.) ONLY 7.2.3.3 /01 C***** F CONVERSION IS USED IN THE FORMAT STATEMENTS. C***** SOME F FIELD DESCRIPTORS ARE REPEATED. FIELD C***** WIDTH ALWAYS CONTAINS 1 POSITION FOR DECIMAL PT. C***** FORMATS CONTAINING F CONVERSION DESCRIPTORS. 7.2.3.6.2/18 C***** FIELD WIDTH IS FROM 1 TO 7 DIGITS. PLACEMENT OF 7.2.3.3 /01 C***** DECIMAL POINT IS VARIABLE. SOME F FIELDS ARE C***** REPEATED 7080 FORMAT (/ 25H BEGIN F CONVERSION TEST/40H EACH PAIR OF LINES SHO 1ULD BE IDENTICAL) WRITE (NUVI,7080) C***** INPUT CARD 5 7081 FORMAT (2X,F3.1,F8.1) READ (IRVI,7081) ACVS, CMAVS C***** INPUT CARD 6 7082 FORMAT(2X,F4.2,F5.3,F8.6) READ (IRVI,7082) A1S(2), BCVS, CMBVS C***** INPUT CARD 7 7083 FORMAT (2X,F6.4,F7.5,4(F4.1),F5.1) READ (IRVI,7083) HHCVS, CMCVS, GGCVS, FFCVS, A1S(1), AC1S(25), 1 AC2S(4,1) C***** INPUT CARD 8 7084 FORMAT (2X,2(F6.1),2X,2(F7.1),2X,F5.2) READ (IRVI,7084) AC1S(18), AC1S(7), AC2S(4,4) , AC1S(8), AC1S(10) C***** INPUT CARD 9 7085 FORMAT (2X,5(F3.1),F7.3,3(F5.3)) READ (IRVI,7085) AC2S(3,3) , AC2S(5,1), CCVS, AC1S(12), DCVS, 1 AC1S(13), AC1S(5), A3S(1,1,2), AC2S(3,5) 7091 FORMAT (/ 13H 7.7123456.7) WRITE (NUVI,7091) WRITE (NUVI,7081) ACVS, CMAVS 7092 FORMAT (/ 19H 8.889.9997.123456) WRITE (NUVI,7092) WRITE (NUVI,7082) A1S(2), BCVS, CMBVS 7093 FORMAT (/ 36H 5.44446.5555533.133.133.133.1444.1) WRITE (NUVI,7093) WRITE (NUVI,7083) HHCVS, CMCVS, GGCVS, FFCVS, A1S(1), AC1S(25) 1 ,AC2S(4,1) 7094 FORMAT (/ 37H 5555.15555.1 66666.166666.1 44.22 ) WRITE (NUVI,7094) WRITE (NUVI,7084) AC1S(18), AC1S(7), AC2S(4,4) , AC1S(8), AC1S(10) 7095 FORMAT ( /39H 2.12.12.12.12.1666.3334.3334.3334.333) WRITE (NUVI,7095) WRITE (NUVI,7085) AC2S(3,3) , AC2S(5,1), CCVS, AC1S(12), DCVS, 1 AC1S(13), AC1S(5), A3S(1,1,2), AC2S(3,5) C***** FORMATTED READ AND WRITE STATEMENTS WITH REAL 7.1.3.2.1/ C***** VARIABLES AND ARRAY ELEMENTS IN AN I/O LIST. 7.2.3.6.2/ C***** E CONVERSION IS USED IN THE FORMAT STATEMENTS 7.2.3.3 / C***** SOME E FIELD DESCRIPTORS ARE REPEATED C***** (FIELD WIDTH ALWAYS INCLUDES 6 EXTRA POSITIONS 7.2.3.6.2.1/47 C***** TO PROVIDE FOR SIGN, DECIMAL POINT AND EXPONENT. 7.2.3.6/01 C***** PROVISION IS ALWAYS MADE FOR THE DIGIT ZERO 7.2.3.6.2.1/04 C***** BEFORE THE DECIMAL POINT) C***** THE NUMBER OF DECIMAL PLACES VARIES FROM 1 C***** TO 7 DIGITS. 7110 FORMAT (//25H BEGIN E CONVERSION TEST/40H EACH PAIR OF LINES SHO 1ULD BE IDENTICAL) WRITE (NUVI,7110) C***** INPUT CARD 10 7111 FORMAT (E8.1,E9.2,E10.3,E11.4,E12.5,E13.6,E14.7) READ (IRVI,7111) AVS, BVS, EP1S(5), AC2S(1,5), CVS, AC2S(5,4), 1 A3S(2,1,2) 7112 FORMAT (/ 21H -0.1E+01 0.22E-01/2X,E8.1,2X,E9.2// 1 25H 0.333E+02 0.4444E+03/2X,E10.3,2X,E11.4// 2 29H -0.55555E-03 0.666666E+00/2X,E12.5,2X,E13.6// 3 16H 0.9876543E+12/2X,E14.7) WRITE (NUVI,7112) AVS, BVS, EP1S(5), AC2S(1,5), CVS, AC2S(5,4), 1 A3S(2,1,2) C***** FORMATTED READ AND WRITE STATEMENTS WITH COMPLEX 7.1.3.2.1/25 C***** VARIABLES AND ARRAY ELEMAENTS IN AN I/O LIST. 7.2.3.6.4/52 C***** E AND F CONVERSION ARE USED IN THE FORMAT 7.2.3.4 /39 C***** STATEMENTS. SOME FORMAT DESCRIPTORS ARE REPEATED 7.2.3.3 /01 7118 FORMAT ( 31H1 BEGIN COMPLEX CONVERSION TEST/32H EACH GROUP SHOUL 1D BE IDENTICAL) WRITE (NUVI,7118) C***** INPUT CARD 11 7119 FORMAT ( 2(F3.1) , 2(F4.1), 2(F7.4)) READ (IRVI,7119) CHAVC, CHBVC, A1C(2) C***** INPUT CARDS 12, 13 7120 FORMAT ( 2(F6.2), 2(E10.3), 2(E11.4), 2(E8.1)/ 2(E14.7)) READ (IRVI,7120) A2C(1,2), B3C(2,2,1), CHCVC, A1C(1), CHDVC C***** INPUT CARD 14 7122 FORMAT (F5.2, E11.4, E10.3, F4.1, 3(F5.2,E11.4)) READ (IRVI,7122) A2C(2,1), BVC, QAVC, LM2C(1,2), LL1C(2) 7123 FORMAT (/ 10H 1.0 5.5/ 2X, F3.1,2X, F3.1 // 1 12H 22.0 66.6/ 2X, F4.1, 2X, F4.1 // 2 18H 33.1234 55.0789/ 2X, F7.4, 2X, F7.4 ) WRITE (NUVI,7123) CHAVC, CHBVC, A1C(2) 7124 FORMAT (/ 16H 123.00 456.88/ 2X, F6.2, 2X, F6.2 // 1 24H 0.123E+01 0.987E+01/ 2X, E10.3, 2X, E10.3 // 2 26H -0.2345E+02 -0.6879E+02/ 2X, E11.4, 2X, E11.4 // 3 20H 0.7E+03 0.4E+03/ 2X, E8.1, 2X, E8.1 // 4 32H 0.9876543E-04 0.1357913E-04/ 2X, E14.7, 2X, E14.7) WRITE (NUVI,7124) A2C(1,2), B3C(2,2,1), CHCVC, A1C(1), CHDVC 7126 FORMAT (/ 20H 19.34 0.2468E+02/ 2X, F5.2, 2X, E11.4// 1 18H 0.765E+02 87.6/ 2X, E10.3, 2X,F4.1// 2 18H 43.96 0.5407E+02/ 3(F7.2,E11.4/)) WRITE (NUVI,7126) A2C(2,1), BVC, QAVC, LM2C(1,2), LL1C(2) C***** FORMATTED READ AND WRITE STATEMENTS WITH 7.1.3.2.1/25 C***** DOUBLE PRECISION VARIABLES IN AN I/O LIST. 7.2.3.6.3/41 C***** D CONVERSION IS USED IN THE FORMAT STATEMENTS. 7.2.3.3 /01 C***** SOME D FORMAT DESCRIPTORS ARE REPEATED. (FIELD C***** WIDTH ALWAYS INCLUDES 6 EXTRA POSITIONS TO 7.2.3.6.2.1/45 C***** PROVIDE FOR SIGN, DECIMAL POINT AND EXPONENT 7.2.3.6 /04 C***** AND 1 POSITION FOR OPTIONAL DIGIT ZERO BEFORE 7.2.3.6.2.1/04 C***** THE DECIMAL POINT) 7127 FORMAT ( /25H BEGIN D CONVERSION TEST/32H EACH GROUP SHOULD BE I 1DENTICAL) WRITE (NUVI,7127) C***** INPUT CARD 15 7128 FORMAT ( 2X, D8.1) READ (IRVI,7128) DPAVD C***** INPUT CARDS 16, 17, 18 7129 FORMAT ( 2(D10.3), D14.7, D18.11/ 3(D21.14)/ 2(D16.9)) READ (IRVI,7129) MCA3D(1,2,2), AC1D(2), BC2D(3,1), AC1D(1), 1 ZZDVD, AC1D(3), DPBVD, MCA3D(1,2,1), BC2D(1,2) 7130 FORMAT (/ 10H 0.1D+06) WRITE (NUVI,7130) WRITE (NUVI,7128) DPAVD 7131 FORMAT (/ 12H -0.334D-04/ 2X, D10.3 / 2X, D10.3 // 1 16H 0.7657654D+00/ 2X, D14.7 // 2 20H1 0.12345678901D+10/ 2X, D18.11 // 3 23H 0.98765432109876D-01/ 2X, D21.14/ 2X, D21.14 / 2X, D21.14// 4 18H -0.555555542D+03/ 2X, D16.9/ 2X, D16.9 ) WRITE (NUVI,7131) MCA3D(1,2,2), AC1D(2), BC2D(3,1), AC1D(1) , 1 ZZDVD, AC1D(3), DPBVD, MCA3D(1,2,1), BC2D(1,2) C***** FORMATTED READ AND WRITE STATEMENTS WITH LOGICAL 7.1.3.2.1/25 C***** VARIABLES AND ARRAY ELEMENTS IN AN I/O LIST 7.2.3.7 /56 C***** SOME L DESCRIPTORS ARE REPEATED. 7132 FORMAT(//25H BEGIN L CONVERSION TEST/33H LINES BELOW SHOULD BE I 1DENTICAL) C***** L CONVERSION IS USED IN THE FORMAT STATEMENTS 7.2.3.3 /01 WRITE (NUVI,7132) C***** INPUT CARD 19 7133 FORMAT (L4) READ (IRVI,7133) A2B(2,1) C***** INPUT CARD 20 7134 FORMAT ( 2(L4), L3, L2, L3, 2(L1)) READ (IRVI,7134) MCA1B(1), MCBVB, A2B(1,1), A3B(1,1,1), CVB, 1 DVB, A3B(1,2,1) 7135 FORMAT (//24H T F F T T FTF/ 2X, 3(L4), L3, L2, L3, 1 2(L1)) WRITE (NUVI,7135) A2B(2,1), MCA1B(1), MCBVB, A2B(1,1), A3B(1,1,1), 1 CVB, DVB, A3B(1,2,1) C***** FORMATTED READ AND WRITE STATEMENTS WITH ARRAY 7.1.3.2.1/26 C***** NAMES OF ALL TYPES IN AN I/O LIST. THE NUMBER OF 7.1.3.2.1/39 C***** ITEMS IN THE LIST IS VARIABLE. SOME FIELD 7.2.3.3 /01 C***** DESCRIPTORS ARE REPEATED. 7097 FORMAT (//32H TEST UNSUBSCRIPTED ARRAY NAMES/35H IN I/O LISTS. E 1ACH GROUP OF LINES/22H SHOULD BE IDENTICAL.) WRITE (NUVI,7097) C***** INPUT CARDS 21, 22 7098 FORMAT(2X,8(F3.1),8F3.1/8(2(F3.1))) READ (IRVI,7098) B1C,B3C C***** INPUT CARDS 23, 24, 25 7099 FORMAT(2X,4(F4.1)/4(D9.2),4D9.2/5(I2)) READ (IRVI,7099) A2S, A3D, MCA1I C***** INPUT CARDS 26, 27, 28 7100 FORMAT(2X,4(D9.2)/27(F2.1)/5(L1),5L1) READ (IRVI,7100) A2D, A3S, A1B, A3B C***** INPUT CARDS 29, 30 7101 FORMAT (2X,4(I2),5(D9.2)/4(2(F3.1)),8(I2),4(L1),5(F3.1)) READ (IRVI,7101) I2I, DPA1D, A2C, I3I, A2B, CMA1S 7102 FORMAT (/ 26H 9.91.19.92.29.93.39.94.4 / 2X,8(F3.1)/2X,8(F3.1)) WRITE (NUVI,7102) B1C 7103 FORMAT (/ 18H -9.9-9.9-9.9-9.9/2X,4(F4.1) // 138H -0.99D+01-0.99D+01-0.99D+01-0.99D+01/2X,4(D9.2)/2X,4(D9.2)// 2 12H 9999999999/ 2X, 5(I2) //38H 0.99D+01 0.99D+01 0.99D+01 0.9 39D+01/ 2X, 4(D9.2) // 37H 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9/1X, 4 9(F4.1)/ 1X, 9(F4.1)/ 1X,9(F4.1)/ 4H1 TF/ 2X,2(L1)) WRITE (NUVI,7103) A2S, A3D, MCA1I, A2D, A3S, A1B 7104 FORMAT (/ 10H TFTFTFTF/ 2X, 8(L1) // 10H 99999999/ 2X, 4(I2)// 1 11H 0.99D+01/ 5(D11.2/) /26H 9.95.59.96.69.97.79.98.8/2X, 28(F3.1)/2X,8(F3.1)/2X,8(F3.1)//18H 9999999999999999/2X,8(I2)// 3 6H TFFT/ 2X, 4(L1) // 17H 9.99.99.99.99.9/2X, 5(F3.1)) WRITE (NUVI,7104) A3B, I2I, DPA1D, A2C, B3C, I3I, A2B, CMA1S C***** FORMATTED WRITES TO TEST THAT LEADING BLANKS 7.2.3.6/51 C***** ARE INSERTED IN THE OUTPUT FIELD WHEN THE OUTPUT C***** PRODUCED IS SMALLER THAN THE FIELD WIDTH. (I, E, C***** F AND D DESCRIPTORS ARE TESTED) 7090 FORMAT ( /30H LEADING BLANK INSERTION TEST/40H EACH PAIR OF LINE 1S SHOULD BE IDENTICAL) WRITE (NUVI,7090) 7096 FORMAT (/ 3H 8/I3//4H 1/I4//5H 1/I5//6H 1/I6// 1 7H 1/I7// 5H 7.7/F5.1// 7H 8.88/F7.2/ 9H1 9.999/ 2 F9.3// 11H 5.4444/F11.4// 13H 6.55555/F13.5// 3 15H 7.123456/F15.6// 10H 0.21E+01/E10.2// 4 12H 0.331E+02/E12.3// 14H 0.4441E+03/E14.4// 5 16H 0.55551E+04/E16.5// 18H 0.666661E+05/E18.6// 6 20H 0.1234567E+06/E20.7) WRITE (NUVI,7096) MCA3I(1,2,3), IAC1I(4), NECVI, IAC1I(3), 1 IAC2I(2,3), ACVS, A1S(2), BCVS, HHCVS, CMCVS, CMBVS, 2 DCVS, AC1S(25), AC2S(4,1), AC1S(7), AC1S(8), CMAVS 7105 FORMAT (/ 9H 0.1D+00/D9.1// 10H 0.1D+00/D10.1// 1 11H 0.1D+00/D11.1// 12H 0.1D+00/D12.1// 2 10H 1.0 5.5/ 2(F5.1) // 12H 9.9 5.5/ 2(F6.1) // 3 14H 9.9 5.5/ 2(F7.1) // 16H 1.0 5.5/ 2(F8.1)) WRITE (NUVI,7105) AC1D(3), ZZDVD, ZZDVD, 1 ZZDVD, CHAVC, B3C(1,1,1), B3C(1,1,1), CHAVC C***** FORMATTED READ AND WRITE STATEMENT TO TEST THAT 7.2.3.7/03 C***** OPTIONAL BLANKS MAY PRECEDE A LOGICAL INPUT FIELD 7.2.3.7/06 7138 FORMAT ( 33H1 TEST LOGICAL FIELDS WITH BLANKS/33H LINES BELOW SH 1OULD BE IDENTICAL) WRITE (NUVI,7138) C***** INPUT CARD 31 7139 FORMAT ( L6, L4, L10, L5) READ (IRVI,7139) AVB, MCA1B(2), A2B(1,2), A3B(2,1,2) 7140 FORMAT (//27H T F T F/ 2X, L6, L4, L10, L5) WRITE (NUVI,7140) AVB, MCA1B(2), A2B(1,2), A3B(2,1,2) C***** FORMATTED READ AND WRITE TO TEST F DESCRIPTORS 7.2.3.1/31 C***** WHERE D IS EQUAL TO ZERO AND WHERE W EQUALS D 7.2.3.4/40 C***** (2ND TEST APPLIES ONLY TO READ STMNTS.) 7108 FORMAT (//36H TEST D = 0, W=D+1 (PAIRS OF LINES/ 28H BELOW SHOU 1LD BE IDENTICAL)) WRITE (NUVI,7108) C***** INPUT CARD 32 7141 FORMAT (2X, F5.0, F5.5) READ (IRVI,7141) ACVS, BVS 7109 FORMAT (//7H 4444./2X, F5.0// 9H .55555/ 3X,F6.5) WRITE (NUVI,7109) ACVS, BVS C***** FORMATS WITH G CONVERSIONS C***** INPUT CARD 33 7142 FORMAT( 3(G11.4), 3G11.4) READ (IRVI,7142) AC1S(14), AC1S(15), AC1S(16), AC1S(17) , 1 AC1S(21), AC1S(22) 7143 FORMAT(/ 2X,23HBEGIN G CONVERSION /2X,38HEACH PAIR OF LINES SH 1OULD BE IDENTICAL//36H .1235E+05 1235. 123.5/ 2 G14.4,4X,2G11.4///3X,33H 12.35 1.235 .1235/ 3 G14.4,4X,2G11.4) WRITE(NUVI,7143) AC1S(14), AC1S(15), AC1S(16), AC1S(17), 1 AC1S(21), AC1S(22) C***** SCALE FACTOR APPLIED TO F,E,D,G DESCRIPTORS C***** ON READ, BUT NOT ON WRITE C***** INPUT CARD 34 7144 FORMAT(2PF8.3,-2PE9.4,F9.4,0PG9.4,D9.4,-2PE9.4,F9.4,D9.4,2PG9.4) READ(IRVI,7144)EP1S(16),EP1S(17),EP1S(18), EP1S(19), 1 BC2D(1,4),EP1S(20),EP1S(22),BC2D(2,1),EP1S(23) 7145 FORMAT(22H1 SCALE FACTOR ON READ/31H IN ORDER OF FORMAT OCCURRENC 1E//40H CARD 9876.54 98.7654E2 9876.54/ 2 40H DESC 2PF8.3 -2PE9.4 F9.4/ 3 40H TO BE 98.7654 .9877E+04 987654.00/ 4 4H IS, F12.4, E12.4, F12.2// 5 40H CARD 987.654 864786D-4 86.4786E2/ 6 40H DESC 0PG9.4 D9.4 -2PE9.4/ 7 40H TO BE 987.654 .8648D-02 .8648E+04/ 8 4H IS, F12.3,D12.4, E12.4// 9 40H CARD 86.4786 8657.87D0 9876.54/ A 40H DESC F9.4 D9.4 2PG9.4/ B 40H TO BE 8647.860 .8658D+04 98.77/ C4H IS,F12.3, D12.4, G16.4) WRITE(NUVI,7145) EP1S(16),EP1S(17),EP1S(18),EP1S(19), 1 BC2D(1,4),EP1S(20),EP1S(22),BC2D(2,1),EP1S(23) C***** SCALE FACTOR APPLIED TO F, E, D, G DESCRIPTORS C***** ON WRITE, BUT, NOT ON READ C***** INPUT CARD 35 7152 FORMAT(F8.2,E9.4,F9.2,G9.3,D9.0,E9.4,F9.4,D9.2,G9.4) READ(IRVI,7152) AC1S(1),AC1S(2),AC1S(3),AC1S(4), 1 AC1D(4),AC1S(20),AC1S(23),AC1D(5),AC1S(24) 7153 FORMAT(/23H SCALE FACTOR ON WRITE/31H IN ORDER OF FORMAT OCCURRE 1NCE//40H CARD 9.87655 98.7654E2 9876.54/ 2 40H DESC 2PF12.2 -2PE12.4 F12.4/ 3 40H TO BE 987.65 .0099E+06 98.7654/ 4 4H IS, 2PF12.2, -2PE12.4,F12.4// 5 40H CARD 987.654 864786D-3 86.4786E2/ 6 40H DESC 1PG12.2 D12.4 -2PE12.4/ 7 40H TO BE 9.88E+02 8.6479D+02 .0086E+06/ 8 4H IS, 1PG12.2, D12.4, -2PE12.4// 9 40H CARD 86.4786 8657.86D0 9876.54/ A 40H DESC 2PF12.2 1PD12.4 2PG16.4/ B 40H TO BE 8647.86 8.6579D+03 9877./ C 4H IS, 2PF12.2, 1PD12.4, 2PG16.4// H28H THE LAST TWO LINES OF EACH/24H SET SHOULD BE THE SAME) WRITE(NUVI,7153) AC1S(1),AC1S(2),AC1S(3),AC1S(4), 1 AC1D(4),AC1S(20),AC1S(23),AC1D(5),AC1S(24) C***** I/O FORMAT RESCAN C***** INPUT CARDS 36, 37, 38 7146 FORMAT( I1,I2,I3) READ(IRVI,7146) I2I,IAC1I 7147 FORMAT(/ 37H FORMAT RESCAN - THE SECOND GROUP OF/38H EACH SET SH 1OULD AGREE WITH THE FIRST //15H 1 22 333/15H 4 55 666/ 115H 7 88 999/1H ) WRITE(NUVI,7147) 7148 FORMAT(I4,I5,I6) WRITE(NUVI,7148) I2I(1,1),I2I(2,1),I2I(1,2),I2I(2,2),IAC1I C***** INPUT CARDS 39, 40 7149 FORMAT(I4, 2(I1,1X,I2)) READ( IRVI,7149) I2I, IAC1I 7150 FORMAT(/21H 2 ** 4 $$ 6 ((/7H 8 $$/1H ) WRITE( NUVI,7150) 7151 FORMAT (I4,3H **,1(I4,3H $$,(I4,3H (())) WRITE( NUVI,7151) I2I(2,1),I2I(2,2),IAC1I(2),IAC1I(4) C***** END OF TEST SEGMENT 008 C***** WHEN EXECUTING ONLY SEGMENT 008 , THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED C= STOP C= END C*********************************************************************** C***** C***** AFRMT - (009) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REFS C***** TO TEST SIMPLE FORMAT AND FORMATTED I/O STATEMENTS 7.1.3.2.2 C***** WHICH USE A-CONVERSION SO THAT THIS FEATURE MAY 7.1.3.2.2 C***** BE USED IN OTHER SEGMENTS 7.1.3.2.3 C***** 7.2.3 C***** 7.2.3.8 C***** RESTRICTIONS OBSERVED C***** * ALL FORMAT STATEMENTS ARE LABELED 7.2.3 /57 C***** * H AND X DESCRIPTORS ARE NEVER REPEATED 7.2.3.3/54 C***** * FIELD WIDTH IS NEVER ZERO 7.2.3 /18 C***** * IF THERE IS AN I/O LIST, THE FORMAT STATEMENT 7.2.3.4/22 C***** CONTAINS AT LEAST ONE FIELD DESCRIPTOR (OTHER C***** THAN H OR X) C***** * ITEMS IN I/O LIST CORRESPOND TO FORMAT DESCRIPTORS 7.2.3.4/36 C***** * FIELD WIDTH NEVER EXCEEDED BY OUTPUT 7.2.3.6/01 C***** C***** READ AND WRITE STATEMENTS FOR ENTIRE SEGMENT FOLLOW C***** C***** FORMATTED READ AND WRITE STATEMENTS WITH ALL 7.1.3.2.1/25 C***** TYPES OF FIELDS. ONLY A (HOLLERITH) CONVERSION 7.2.3.8 /16 C***** IS USED IN THE FORMAT STATEMENTS. SOME A FORMAT 7.2.3.3 /01 C***** DESCRIPTORS ARE REPEATED C INPUT DATA TO THIS SEG. CONSISTS OF 3 DATA CARD IMAGES IN COLS. 1 - 55 COL. 1-----------------------------31---------------------55 CARD 1 B=EF-*JKL/()012TUVW+,.$X YZACDGHIPQRSMNO678(C)B2$9+A345 CARD 2 QZ1*A CARD 3 ABCDEFGHIJKLMNOPQRSTUVWXYZ C***** C***** S P E C I F I C A T I O N S SEGMENT 009 C***** C***** WHEN EXECUTING ONLY SEGMENT 009, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION A1S(5),A3S(3,3,3),EP1S(33),IAC2I(2,7),AC2S(5,6) C= 1,MCA1I(5),CMA1S(5) C= INTEGER BVI,MAVI,LAVI,MCA3I(2,3,3) C= REAL MVS,CVS,BCVS C= LOGICAL MCA1B(7), A1B(2), A2B(2,2),A3B(2,2,2),AVB,EVB C***** C***** I N P U T - O U T P U T T A P E ASSIGNMENT STATEMENTS C***** C***** WHEN EXECUTING ONLY SEGMENT 009, THE FOLLOWING TWO STATEMENTS C***** NUVI = 6 AND IRVI = 5 MUST HAVE C***** THE C= IN COL 1 AND 2 REMOVED. C= NUVI = 6 C= IRVI = 5 C***** WRITE (NUVI,0090) READ (IRVI,0091) MVS, IAC2I(2,2),MAVI ,AC2S(4,2),MCA1I(1),LAVI, 1 A2B(1,2),A1B(2), BCVS, MCA1B(2), BVI, CVS, EVB,A1S(2),EP1S(9), 2A3S(1,1,1),A3B(2,2,1),MCA3I(1,2,3), MCA3I(2,1,2), MCA3I(1,1,3) WRITE (NUVI,0092) BVI, MVS, CVS, MAVI, EVB, MCA1I(1), EP1S(9), 1 A1S(2), A1B(2), MCA1B(2), IAC2I(2,2), AC2S(4,2), 2 LAVI, BCVS, A2B(1,2), MCA3I(1,1,3), A3S(1,1,1), 3 MCA3I(2,1,2), MCA3I(1,2,3), A3B(2,2,1) C***** FORMATTED READ AND WRITE TO TEST HOLLERITH FIELDS 7.2.3.8/22 C***** WHERE FIELD WIDTH IS LESS THAN THE WORD LENGTH 7.2.3.8/28 C***** CAPACITY OF THE MACHINE WRITE (NUVI,0093) READ (IRVI,0094) CMA1S(2), CMA1S(1), LCCVI, AVB, BVI WRITE (NUVI,0095) BVI, AVB, CMA1S(2), LCCVI, CMA1S(1) C***** FORMATTED READ AND WRITE TO TEST HOLLERITH FIELDS 7.2.3.8/20 C***** WHERE FIELD WIDTH IS GREATER THAN THE WORD LENGTH 7.2.3.8/25 C***** CAPACITY OF THE MACHINE WRITE (NUVI,0096) READ (IRVI,0097) MRRVI WRITE (NUVI,0098) MRRVI C***** C***** C***** FORMAT STATEMENTS FOR THE ENTRIRE SEGMENT FOLLOW C***** FORMATS TO TEST A CONVERSION. FIELD WIDTH IS 7.2.3.8/16 C***** FROM 1 TO 4 CHARACTERS. SOME A DESCRIPTORS ARE 7.2.3.3/01 C***** REPEATED. 0090 FORMAT (1H1,1X,26HAFRMT - (009) A-CONVERSION//2X, 117HASA REF - 7.2.3.8//40H EACH PAIR OF LINES SHOULD BE IDENTICAL/ 28X,26HFOR COMPUTERS STORING FOUR/8X,27HOR MORE CHARACTERS PER WORD 3) 0091 FORMAT ( 2(A1), 2(A2), 3(A3), 3(A4), A1, A2, A3, A4, 6(A3)) 0092 FORMAT (// 29H ABCDEFGHIJKLMNOPQRSTUVWX YZ/ 2X, 2(A1), 2(A2), 1 3(A3), 3(A4)//12H =-*/()+,.$/ 2X, A1, A2, A3, A4 // 2 20H 0123456789+AB2$(C)/ 2X, 6 A3 ) C***** FORMATS TO TEST A CONVERSION WHERE FIELD WIDTH 7.2.3.8/22 C***** IS LESS THAN THE WORD LENGTH CAPACITY OF MACHINE 7.2.3.8/28 0093 FORMAT (//35H TEST A CONVERSION - ADDING BLANKS/40H EACH PAIR OF 1 LINES SHOULD BE IDENTICAL) 0094 FORMAT ( 5(A1)) 0095 FORMAT (//4H A / 3X, A3//4H */ 3X, A3 //4H Q/ 3X, A3// 1 4H 1/3X, A3 //4H Z/ 3X,A3) C***** FORMATS TO TEST A CONVERSION WHERE FIELD WIDTH 7.2.3.8/20 C***** IS GREATER THAN WORD LENGTH CAPACITY OF MACHINE 7.2.3.8/25 0096 FORMAT(/25H TEST A FIELD TRUNCATION/37H 2ND LINE SHOULD PARTIALL 1Y MATCH 1ST) 0097 FORMAT ( A26 ) 0098 FORMAT (// 28H ABCDEFGHIJKLMNOPQRSTUVWXYZ/ 2X, A26) C***** END OF TEST SEGMENT 009 C***** WHEN EXECUTING ONLY SEGMENT 009 , THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED C= STOP C= END C*********************************************************************** C***** C***** DATA2 - (010) C***** C*********************************************************************** C***** C***** GENERAL PURPOSE C***** TO TEST CONTENTS OF VARIABLES THAT WERE FORMED BY C***** DATA STATEMENTS IN SEG. DATA1 - (003) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 010, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** WRITE (NUVI,100) 100 FORMAT (1H1,1X, 32HDATA2 - (010) DATA STATEMENT USE/ A /2X,17HASA REFS. - 7.2.2//2X,7HRESULTS) WRITE (NUVI,101) 101 FORMAT(/35H LINE 1 OF EACH GROUP IS HOLLERITH/36H INFORMATION. T AEST IS SUCCESSFUL IF/37H EACH GROUP CONTAINS THE SAME VALUES) WRITE (NUVI,102) I1I(1), I1I(2), IAC2I(1,5), IAC2I(1,3), A MCA3I(1,2,1), MCA3I(2,2,2), I1I(3), I1I(4), B IAC2I(2,5), IAC2I(2,6), MCA3I(2,1,1), C MCA3I(1,2,2), I1I(5), IAC2I(2,4), MCA3I(1,1,2), D AVI 102 FORMAT ( /25X,1H0/4(I26/)// A 24X,2H10/4(I26/)// B 23X,3H246/4(I26/)// C 22X,4H-750/4(I26/)) WRITE (NUVI,103) EP1S(8), EP1S(10), EP1S(13), AC2S(2,6), A AC2S(1,6),AC3S(1,1,1),EP1S(11),AC2S(5,3), B AC2S(3,6), AC2S(5,2), AC3S(1,1,2), AC2S(4,6), C EP1S(12), AC2S(5,5), AC2S(5,6), JVS 103 FORMAT ( /22X,4H0.00/4(F26.2/)// A 20X,6H246.15/4(F26.2/)// B 19X,7H3546.74/4(F26.2/), C 1H1,18X,7H-750.05/4(F26.2/)) WRITE (NUVI,104)ADSVC, LL1C(29), LN3C(9,1,2), LN3C(8,2,1), A BCVC, LL1C(30), LM2C(8,4), LN3C(8,2,2), B CHEVC, LL1C(31), LM2C(8,3), LN3C(9,1,1), C DCVC, LL1C(32), LM2C(8,2), LN3C(8,1,2) 104 FORMAT ( /9X,17H 11.1 22.22/4(F14.1,F12.2/)// A 8X,18H-34.50 -6.78/4(F14.2,F12.2/)// B 8X,18H 10.00 -20.00/4(F14.2,F12.2/)// C 5X,21H -200.00 4000.00/4(F14.2,F12.2/)) WRITE (NUVI,105) AVD, A1D(1), DPA2D(1,1), MCA3D(1,1,1), A BVD, A1D(2), DPA2D(2,1), MCA3D(1,1,2), B CVD, A1D(3),DPA2D(1,2), MCA3D(1,3,1), C DVD, A1D(4), DPA2D(2,2), MCA3D(1,4,1) 105 FORMAT ( /16X,10H-0.295D+05/4(D26.3/)// A 11X,15H0.345678901D+05/4(D26.9/)// B 13X,13H0.1122335D-02/4(D26.7/), C 1H1,17X,8H0.34D+13/4(D26.2/)) WRITE (NUVI,106) MAVB, MCA1B(6), GH2 B(1,1), GI3B(1,1,1), A MBVB, MCVB, MCA1B(7), GH2B(1,2), GG1B(1), B EP1S(15), GI3B(1,1,2), C EP1S(14), AC3S(1,1,3), IAC2I(1,4) 106 FORMAT (//20X,4H T/ 4(L24/)// A 20X,4H F/ 4(L24/)// B 22X,2HAD /2(22X,A2/)/ C 22X,2HNO / 22X,A2// D 22X,2HBC / 22X,A2// E 22X,2H*= / 22X,A2// F 22X,2H P / 22X,A2) C***** END OF SEGMENT 010 C***** WHEN EXECUTING ONLY SEGMENTS 003 AND 010, THE STOP AND END C***** CARDS WHICH APPEAR AS COMMENTS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED C= STOP C= END C*********************************************************************** C***** C***** AASGN - (011) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** * TO TEST VERY SIMPLE ARITHMETIC ASSIGNMENT 7.1.1.1 C***** STATEMENTS, SO THAT THIS STATEMENT MAY BE C***** USED IN LATER SEGMENTS C***** * TO TEST THAT ALL TYPES OF INTEGER AND REAL CONSTANTS 5.1.1 C***** MAY BE FORMED 5.1.1.1 C***** 5.1.1.2 C***** GENERAL COMMENTS C***** * ONLY REAL AND INTEGER TYPES ARE INCLUDED IN C***** THIS SEGMENT - NO MIXING OF TYPES C***** * IN ORDER NOT TO EXCEED THE WORD LENGTH CAPACITY OF C***** SOME COMPUTERS, INTEGER CONSTANTS ARE LIMITED TO C***** 5 DIGITS AND REAL CONSTANTS TO 7 DIGITS. C***** C***** S P E C I F I C A T I O N S SEGMENT 011 C***** C***** WHEN EXECUTING ONLY SEGMENT 011, THE SPECIFICATION STATEMENT C***** WHICH APPEARS AS A COMMENT MUST HAVE THE C= REMOVED C= DIMENSION IAC1I(5),IAC2I(2,7),AC1S(25),AC2S(5,6),A2S(2,2) C***** C***** O U T P U T T A P E ASSIGNMENT - NO INPUT DATA C***** C***** WHEN EXECUTING ONLY SEGMENT 011, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,110) 110 FORMAT (1H1,1X,38HASSIGN - (011) SIMPLE REAL AND INTEGER/10X,32HAR 1ITHMETIC ASSIGNMENT STATEMENTS/2X,16HASA REF. - 7.1.1//34H LINE 1 2 OF EACH PAIR IS HOLLERITH/13H INFORMATION//17H INTEGER RESULTS) C***** HEADER FOR SEGMENT 011 WRITTEN C***** TEST ASSIGNMENT OF UNSIGNED INTEGER CONSTANTS 7.1.1.1/40 C***** TO VARIABLES 5.1.1.1/15 MRRVI = 1 JACVI = 12345 KBCVI = 000 C***** TEST ASSIGNMENT OF SIGNED INTEGER CONSTANTS TO 7.1.1.1/40 C***** VARIABLES 5.1.1/11 MCAVI = +2 LCCVI = -3 MDCVI = -98765 NECVI = +36912 C***** TEST ASSIGNMENT OF UNSIGNED INTEGER CONSTANTS 7.1.1.1/40 C***** TO ARRAYS 5.1.1.1/15 IAC1I(1) = 0 IAC2I(2,1) = 02468 IAC2I(2,2) = 00 IAC1I(3) = 4444 C***** TEST ASSIGNMENT OF SIGNED INTEGER CONSTANTS 7.1.1.1/40 C***** TO ARRAYS 5.1.1/11 IAC2I(1,1) = +45 IAC1I(4) = +54321 IAC1I(2) = -23 IAC2I(1,2) = -43123 C***** TEST ASSIGNMENT OF UNSIGNED REAL CONSTANTS 7.1.1.1/40 C***** TO VARIABLES (BASIC REAL CONSTANTS) 5.1.1.2/18 ACVS = 1.0 BCVS = 358.6724 C***** TEST ASSIGNMENT OF SIGNED REAL CONSTANTS 7.1.1.1/40 C***** TO VARIABLES (BASIC REAL CONSTANTS) 5.1.1.2/18 C***** 5.1.1/11 CCVS = -2.0 DCVS = +3.0 ECVS = -2714.250 FCVS = +29.30542 C***** TEST ASSIGNMENT OF UNSIGNED REAL CONSTANTS 7.1.1.1/40 C***** TO ARRAYS (BASIC REAL CONSTANTS) 5.1.1.2/18 C***** 5.1.1/11 AC1S(2) = 86.27 AC2S(1,2) = 1034.2 AC1S(1) = 0.0 AC2S(1,1) = 0.00000 C***** TEST ASSIGNMENT OF SIGNED REAL CONSTANTS 7.1.1.1/40 C***** TO ARRAYS (BASIC REAL CONSTANTS) 5.1.1.2/18 C***** 5.1.1/11 AC2S(2,2) = +345.678 AC1S(3) = -2.5 AC2S(2,1) = -5.66 AC1S(4) = +1.111111 C***** TEST ASSIGNMENT OF UNSIGNED AND SIGNED REAL 5.1.1.2/22 C***** CONSTANTS WITH NO DECIMAL DIGITS TO BOTH C***** VARIABLES AND ARRAYS GCVS = 1. HCVS = -2. AADVS = +3. AC2S(3,1) = 4. AC2S(1,3) = +5. AC1S(5) = -6. C***** TEST ASSIGNMENT OF UNSIGNED AND SIGNED REAL 5.1.1.2/22 C***** CONSTANTS WITH NO INTEGER PART TO BOTH C***** VARIABLES AND ARRAYS BBDVS = .0 CCDVS = +.23 DDDVS = -.716 AC1S(6) = -.7 AC2S(4,1) = .81 AC1S(7) = +.9 C***** TEST ASSIGNMENT OF UNSIGNED AND SIGNED REAL 5.1.1.2/25 C***** CONSTANTS WITH UNSIGNED AND SIGNED DECIMAL 5.1.1.2/32 C***** EXPONENTS TO BOTH VARIABLES AND ARRAYS EEDVS = 1.05E02 FFDVS = -7.6E1 GGDVS = +332.4E0 HHDVS = 51.32E-1 OODVS = +5.34E-3 PPDVS = -14.19E-2 QQDVS = -9.9E+2 RRDVS = +10.5210E+3 SSDVS = 4.56E+1 AC2S(1,4) = 665.2E0 AC1S(11) =-52.9E01 AC1S(9) = +78.564E2 AC2S(5,1) = -3.4567E+3 AC2S(1,5) = 61.62E+2 AC1S(10) = +0.023E+1 AC1S(8) = 94.333E-1 AC1S(12) = +0.3524E-2 AC2S(3,2) = -743.2E-3 C***** TEST ASSIGNMENT OF UNSIGNED AND SIGNED REAL 5.1.1.2/22 C***** CONSTANTS (NO DECIMAL PART) WITH DECIMAL 5.1.1.2/26 C***** EXPONENTS TO BOTH VARIABLES AND ARRAYS TTDVS = 1.E0 UUDVS = +123.E2 VVDVS = -11.E3 WWDVS = 144.E-1 XXDVS = -12.E-2 YYDVS = +3645.E-3 ZZDVS = 1.E+4 CMAVS = -200.E+1 CMBVS = +99.E+2 AC1S(13) = +0.E00 AC2S(2,5) = -1512.E2 AC2S(4,3) = 214.E3 AC1S(15) = 34.E-1 AC1S(14) = -4.E-2 AC2S(3,4) = +53214.E-4 AC2S(4,4) = +6.E+3 AC2S(2,3) = 72.E+4 AC1S(16) = -813.E+1 C***** TEST ASSIGNMENT OF UNSIGNED AND SIGNED REAL 5.1.1.2/22 C***** CONSTANTS (NO INTEGER PART) WITH DECIMAL 5.1.1.2/26 C***** EXPONENTS TO BOTH VARIABLES AND ARRAYS CMCVS = .234E0 CMDVS = -.3E2 CMEVS = +.44E1 CMFVS = .36E-3 CMGVS = +.9E-4 CMHVS = -.10E-2 CMOVS = .777E+1 CMPVS = -.29E+3 CMQVS = +.04E+2 AC1S(17) = .90E1 AC2S(4,2) = +.810E0 AC1S(19) = -.7E3 AC2S(3,3) = .62E+3 AC1S(21) = +.5310E+1 A2S(1,2) = -.442E+2 AC1S(18) = .3E-4 AC2S(2,4) = +.25E-03 A2S(2,1) = -.163E-2 C***** TEST ASSIGNMENT OF UNSIGNED AND SIGNED REAL 5.1.1.2/34 C***** CONSTANTS (FORMED BY PLACING DECIMAL EXPONENT C***** AFTER INTEGER CONSTANT) TO BOTH VARIABLES AND C***** ARRAYS AVS = 709E3 BVS = +81842E0 CVS = -9E5 DVS = 627E+2 EVS = +53E+3 FVS = -4E+04 GVS = 1463E-2 HVS = +2E-3 PVS = -355E-1 AC1S(24) = 29E5 AC1S(20) = +4072E3 AC2S(5,4) = -61835E2 AC2S(3,5) = 829E+1 AC1S(22) = +03E+2 AC1S(25) = -1E+3 AC2S(4,5) = 3404E-4 A2S(2,2) = +55E-5 AC1S(23) = -761E-1 C***** VERIFY CORRECTNESS OF ASSIGNMENT BY WRITING C***** THE INFORMATION WRITE (NUVI,111) MRRVI, JACVI, KBCVI, MCAVI, LCCVI, MDCVI, NECVI, 1 (IAC1I(IVI),IVI=1,4),((IAC2I(IVI,JVI),IVI=1,2),JVI=1,2) WRITE (NUVI,112) WRITE (NUVI,113) ACVS, BCVS, CCVS, DCVS, ECVS, FCVS, AC1S(2), 1 AC2S(1,2), AC1S(1), AC2S(1,1), AC2S(2,2), 2 AC1S(3), AC2S(2,1), AC1S(4), GCVS, HCVS, 3 AADVS, AC2S(3,1) WRITE (NUVI,114) AC2S(1,3), AC1S(5), BBDVS, CCDVS, DDDVS, AC1S(6), 1 AC2S(4,1), AC1S(7), EEDVS, FFDVS, GGDVS, HHDVS, 2 OODVS, PPDVS, QQDVS, RRDVS, SSDVS WRITE (NUVI,115) AC2S(1,4), AC1S(11), AC1S(9), AC2S(5,1), 1 AC2S(1,5), AC1S(10), AC1S(8), AC1S(12), 2 AC2S(3,2), TTDVS, UUDVS, VVDVS, WWDVS, XXDVS, 3 YYDVS WRITE (NUVI,116) CMAVS, CMBVS, AC1S(13), AC2S(2,5), AC2S(4,3), 1 AC1S(15), AC1S(14), AC2S(3,4), AC2S(4,4), 2 AC2S(2,3), AC1S(16), CMCVS, CMDVS, CMEVS,ZZDVS WRITE (NUVI,117) CMFVS, CMGVS, CMHVS, CMOVS, CMPVS, CMQVS, 1 AC1S(17), AC2S(4,2), AC1S(19), AC2S(3,3), 1 AC1S(21),A2S(1,2),AC1S(18), AC2S(2,4),A2S(2,1) WRITE (NUVI,118) AVS, BVS, CVS, DVS, EVS, FVS, GVS, HVS, PVS, 1 AC1S(24), AC1S(20), AC2S(5,4), AC2S(3,5), 2 AC1S(22),AC1S(25),AC2S(4,5),A2S(2,2) , 3 AC1S(23) 111 FORMAT(/7X,1H1,7X,5H12345,13X,1H0/1X,I7,5X,I7,7X,I7// 1 7X, 1H2, 10X, 2H-3,8X, 6H-98765/1X, I7, 5X, I7, 7X, I7// 2 3X, 5H36912, 11X, 1H0, 11X, 3H-23/ 1X, I7, 5X, I7, 7X,I7// 3 4X, 4H4444, 7X, 5H54321, 12X, 2H45/ 1X, I7, 5X, I7, 7X, I7// 4 4X, 4H2468, 6X, 6H-43123, 13X, 1H0/ 1X, I7, 5X, I7, 7X, I7) 112 FORMAT (/14H REAL RESULTS) 113 FORMAT(/3X,3H1.0, 10X, 8H358.6724, 6X, 4H-2.0/1X,F5.1,6X,F12.4,2X, 1 F8.1//3X,3H3.0,8X,9H-2714.250,7X,8H29.30542/1X,F5.1,6X,F11.3,3X, 2 F12.5//2X,5H86.27,8X,6H1034.2,10X,3H0.0/1X,F6.2,5X,F9.1,5X,F8.1// 3 3X, 3H0.0, 10X,7H345.678,7X, 4H-2.5/1X,F5.1,6X,F11.3,3X,F8.1// 4 2X,5H-5.66,11X,8H1.111111,5X,3H1.0/1X,F6.2,5X,F14.6,F8.1// 5 2X,4H-2.0,12X,3H3.0,10X,3H4.0/1X,F5.1,6X,F9.1,5X,F8.1) 114 FORMAT(/3X,3H5.0,11X,4H-6.0,10X,3H0.0/1X,F5.1,6X,F9.1,5X,F8.1// 1 3X,4H0.23,10X,6H-0.716,7X,4H-0.7/1X,F6.2,5X,F11.3,3X,F8.1// 2 3X,4H0.81,11X,3H0.9/1X,F6.2,5X,F9.1/1H1,2X,9H0.105E+03,3X, 3 9H-0.76E+02,5X,10H0.3324E+03/E12.3,E12.2,E15.4// 4 3X,10H0.5132E+01,3X,9H0.534E-02,3X,11H-0.1419E+00/E13.4,E12.3, 5 E14.4//2X,9H-0.99E+03,5X,12H0.105210E+05,10H 0.456E+02/E11.2, 6 E17.6,E10.3) 115 FORMAT(/3X,10H0.6652E+03,2X,10H-0.529E+03,4X,11H0.78564E+04/E13.4, 1 E12.3,E15.5//2X,12H-0.34567E+04,2X,10H0.6162E+04,3X,8H0.23E+00/ 2 E14.5,E12.4,E11.2//3X,11H0.94333E+01,2X,10H0.3524E-02,2X, 3 11H-0.7432E+00/E14.5,E12.4,E13.4//3X,7H0.1E+01,6X,9H0.123E+05, 4 3X,9H-0.11E+05/E10.1,E15.3,E12.2//3X,9H0.144E+02,3X,9H-0.12E+00, 5 5X,10H0.3645E+01/E12.3,E12.2,E15.4) 116 FORMAT(/12H -0.200E+04,4X,8H0.99E+04,5X,7H0.0E+00/E12.3,E12.2, 1 E12.1//2X,11H-0.1512E+06,3X,9H0.214E+06,4X,8H0.34E+01/E13.4, 2 E12.3,E12.2//2X,8H-0.4E-01,6X,11H0.53214E+01,2X,7H0.6E+04/E10.1, 3 E17.5,E9.1//3X,8H0.72E+06,4X,10H-0.813E+04,4X,9H0.234E+00/E11.2, 4 E14.3,E13.3//2X,8H-0.3E+02,6X,8H0.44E+01,5X,7H0.1E+05/E10.1, 5 E14.2,E12.1) 117 FORMAT(/3X,8H0.36E-03,5X,7H0.9E-04,5X,9H-0.10E-02/E11.2,E12.1, 1 E14.2//3X,9H0.777E+01,3X,9H-0.29E+03,5X,7H0.4E+01/E12.3,E12.2, 2 E12.1//3X,8H0.90E+01,5X,9H0.810E+00,3X,8H-0.7E+03/E11.2,E14.3, 3 E11.1//3X,8H0.62E+03,5X,10H0.5310E+01,2X,10H-0.442E+02/E11.2, 4 E15.4,E12.3//3X,7H0.3E-04,6X,8H0.25E-03,4X,10H-0.163E-02/E10.1, 5 E14.2,E14.3/1H1) 118 FORMAT(3X,9H0.709E+06,4X,11H0.81842E+05,1X,8H-0.9E+06/E12.3,E15.5, 1 E9.1//3X,9H0.627E+05,4X,8H0.53E+05,4X,8H-0.4E+05/E12.3,E12.2, 2 E12.1//3X,10H0.1463E+02,3X,7H0.2E-02,5X,10H-0.355E+02/E13.4, 3 E10.1,E15.3//3X,8H0.29E+07,5X,10H0.4072E+07,2X,12H-0.61835E+07/ 4 E11.2,E15.4,E14.5//3X,9H0.829E+04,4X,7H0.3E+03,5X,8H-0.1E+04/ 5 E12.3,E11.1,E13.1//3X,10H0.3404E+00,3X,8H0.55E-03,4X,10H-0.761E+0 62/E13.4,E11.2,E14.3) C***** END OF TEST SEGMENT 011 C***** WHEN EXECUTING ONLY SEGMENT 011, THE STOP AND END CARDS C**** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED C= STOP C= END STOP END nbs02.d 480890330 170 2 100666 302 ` SAMPLE COMPUTER, FORTRAN COMPILER LEVEL DO NOT READ OR WRITE RECORD 2 . DOUBLE SPACE ON OUTPUT. ID 2 OPERATING SYSTEM VERSION DO NOT READ OR WRITE RECORD 4 . DOUBLE SPACE ON OUTPUT ID 4 DATE, INSTALLATION NAME DO NOT READ OR WRITE RECORD 6 DOUBLE SPACE ON OUTPUT ID 6 nbs02.f 480887307 170 2 100666 39962 ` C***** PART2 ***************************************************** C***** C***** ANSI FORTRAN (X3.9-1966) TEST PROGRAMS C***** C***** PREPARED BY THE NATIONAL BUREAU OF STANDARDS VERSION 3 C***** C***** JUNE 1973 C***** C***** PART 2 OF 14 PARTS C***** C***** SEGMENTS INCLUDED C***** C***** DASGN - 013 SIMPLE D.P. ASSIGNMENT STATEMENTS C***** C***** CASGN - 015 SIMPLE COMPLEX ASSIGNMENT STATEMENTS C***** C***** THE FOLLOWING SPECIFICATIONS ARE TO BE USED ONLY WHEN C***** SEGMENTS 013 AND 015 ARE RUN AS ONE MAIN PROGRAM. C***** DOUBLE PRECISION MCAVD,MCBVD,MCCVD,MCDVD,MCEVD,MCFVD,MCGVD, 1MCHVD,MCIVD,EEDVD,ACVD,BCVD,CCVD,DCVD,DDDVD,CCDVD,FFDVD,GGDVD, 2 HHDVD,EP1D(43),AC1D(10),BC2D(7,4),CC3D(7,2,2),FC2D(5,5) DOUBLE PRECISION DPAVD,DPBVD,DPCVD,DPDVD,DPEVD,DPFVD,DPGVD,DPHVD, 1 DPIVD,DPJVD,DPKVD,DPLVD,DPMVD,DPNVD,DPOVD,DPPVD, 2 AADVD,BBDVD,PPDVD,RRDVD,SSDVD,TTDVD,UUDVD,VVDVD,WWDVD,XXDVD, 3 YYDVD,ZZDVD,ECVD,FCVD,GCVD,HCVD,RC3D(3,3,3),MCJVD,MCKVD COMPLEX QEVC,QFVC,QGVC,QHVC,QIVC,QJVC,QKVC,QLVC,QMVC,QNVC,QOVC, 1 QPVC,QRVC,QSVC,QTVC,QUVC,QVVC,KVC,LVC,MVC,NVC,OVC,PVC,QVC,VVC, 2 MEVC,MFVC,MGVC,MHVC,MIVC,QQVC,MJVC,MKVC,MLVC, MNVC,MOVC, 3 MPVC,MQVC,MRVC,MSVC,MTVC,MUVC,MVVC,BCVC,DCVC,DDVC COMPLEX AVC,BVC,CVC,DVC,EVC,FVC,GVC,HVC,IVC,JVC,AAVC, 1 ABVC,BAVC,BBVC,CCVC,CDVC,CAVC,DAVC,ASVC,BSVC,CSVC, 2 DSVC,AAAVC,ABAVC,ACAVC,ADAVC,CHCVC COMPLEX NUMVC, QAVC,QBVC,QCVC,QDVC,RVC,SVC,TVC,UVC 1 , MAVC,MBVC,MCVC,MDVC,B1C(8),B2C(4,2),B3C(2,2,2) COMPLEX LL1C(32),LM2C(8,4),LN3C(9,2,2),A1C(12),A2C(2,2),A3C(2,2,1) C***** END OF SPECIFICATIONS FOR SEGMENTS 013, 015 C***** C*********************************************************************** C***** C***** DASGN - (013) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** * TO TEST ALL POSSIBLE METHODS OF FORMING DOUBLE 5.1.1 THRU C***** PRECISION CONSTANTS C***** * TO TEST THAT D.P. VARIABLES AND ARRAY 5.1.2 /5 C***** ELEMENTS MAY BE REFERENCED 5.1.3.1/16 C***** * TO TEST VERY SIMPLE ARITHMETIC ASSIGNMENT 7.1.1.1 C***** STATEMENTS, SO THAT THIS FEATURE CAN BE USED TABLE 1 C***** FOR INITIALIZATION IN LATER SEGMENTS C***** S P E C I F I C A T I O N S SEGMENT 013 C***** C***** WHEN EXECUTING ONLY SEGMENT 013, REMOVE THE PRECEDING C***** SPECIFICATIONS. THE FOLLOWING SPECIFICATIONS WHICH APPEAR C***** AS COMMENTS MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION MCAVD,MCBVD,MCCVD,MCDVD,MCEVD,MCFVD,MCGVD, C= 1MCHVD,MCIVD,EEDVD,ACVD,BCVD,CCVD,DCVD,DDDVD,CCDVD,FFDVD,GGDVD, C= 2 HHDVD,EP1D(43),AC1D(10),BC2D(7,4),CC3D(7,2,2),FC2D(5,5) C= DOUBLE PRECISION DPAVD,DPBVD,DPCVD,DPDVD,DPEVD,DPFVD,DPGVD,DPHVD, C= 1 DPIVD,DPJVD,DPKVD,DPLVD,DPMVD,DPNVD,DPOVD,DPPVD, C= 2 AADVD,BBDVD,PPDVD,RRDVD,SSDVD,TTDVD,UUDVD,VVDVD,WWDVD,XXDVD, C= 3 YYDVD,ZZDVD,ECVD,FCVD,GCVD,HCVD,RC3D(3,3,3),MCJVD,MCKVD C***** C***** I N P U T - O U T P U T T A P E ASSIGNMENT STATEMENTS C***** IRVI = 5 NUVI = 6 C***** IDENTIFY THE SOURCE OF THE TEST PROGRAMS WRITE(NUVI,0071) 0071 FORMAT (41H1 F O R T R A N T E S T P R O G R A M S// 1 42H PREPARED BY NATIONAL BUREAU OF STANDARDS// 3 37H FOR USE ON LARGE FORTRAN PROCESSORS // 4 42H IN ACCORDANCE WITH ASA FORTRAN X3.9-1966// 5 23H VERSION 3 PART 2 ///) C***** 3 OF 6 INPUT CARDS IDENTIFY THE USERS SYSTEM AND COMPILER C PREPARED BY USER C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST READ(IRVI,0070) READ(IRVI,0072) READ(IRVI,0073) 0070 FORMAT(40H BASED ON ASA FO-TRAN X3.9-1966 /) 0072 FORMAT(40H TEST PROGRAMS /) 0073 FORMAT(40H FORTRAN COMPILER /) WRITE(NUVI,0070) WRITE(NUVI,0072) WRITE(NUVI,0073) WRITE (NUVI,130) WRITE(NUVI,131) 130 FORMAT(1H1,1X,36HDASGN - (013) SIMPLE D.P. ARITHMETIC/ 1 16X,18HASSIGNMENT STMNTS./2X,28HASA REFS. - 7.1.1.1 5.1.1.3// 2 2X,7HRESULTS) 131 FORMAT(/2X,23HLINE 1 OF EACH GROUP IS/ A 2X,21HHOLLERITH INFORMATION) C***** HEADER FOR THIS SEGMENT WRITTEN C***** TEST ASSIGNMENT OF UNSIGNED DP CONSTANTS WITH 7.1.1.1/41 C***** UNSIGNED EXPONENTS TO VARIABLES AND ARRAY ELEMENTS 5.1.1.3/40 C***** 5.1.1 /14 C***** 5.1.1.3/36 C***** 5.1.1.2/26 MCAVD = 3.4D1 MCBVD = 123456.7891011D02 AC1D(1) = 3.4D1 AC1D(2) = 123456.7891011D02 BC2D(1,1) = 3.4D1 BC2D(2,1) = 123456.7891011D02 CC3D(1,1,1) = 3.4D1 CC3D(2,1,1) = 123456.7891011D2 C***** ASSIGNMENT OF UNSIGNED DP CONSTANTS WITH 5.1.1.3/36 C***** SIGNED EXPONENTS TO VARIABLES AND ARRAY ELEMENTS 5.1.1.2/26 MCCVD = 29.8765234D-3 MCDVD = 345.10000555D+4 AC1D(3) = 29.8765234D-3 AC1D(4) = 345.10000555D+4 BC2D(3,1) = 29.8765234D-3 BC2D(4,1) = 345.10000555D+4 CC3D(3,1,1) = 29.8765234D-3 CC3D(4,1,1) = 345.10000555D+4 C***** ASSIGNMENT OF UNSIGNED DP CONSTANTS (NO DECIMAL 5.1.1.2/22 C***** PART) WITH UNSIGNED EXPONENTS TO VARIABLES C***** AND ARRAY ELEMENTS MCEVD = 22232425.D00 AC1D(5) = 22232425.D00 BC2D(5,1) = 22232425.D00 CC3D(5,1,1) = 22232425.D00 C***** ASSIGNMENT OF UNSIGNED DP CONSTANTS (NO 5.1.1.2/22 C***** INTEGER PART) WITH UNSIGNED EXPONENTS TO C***** VARIABLES AND ARRAY ELEMENTS MCFVD = .281420D5 AC1D(6) = .281420D5 BC2D(6,1) = .281420D5 CC3D(6,1,1) = .281420D5 C***** ASSIGNMENT OF UNSIGNED DP CONSTANTS (NO DECIMAL C***** PART) WITH SIGNED EXPONENTS TO VARIABLES AND C***** ARRAY ELEMENTS MCGVD = 4455667788.D+6 MCHVD = 35692483569248.D-02 AC1D(7) = 4455667788.D+6 AC1D(8) = 35692483569248.D-02 BC2D(7,1) = 4455667788.D+6 BC2D(1,2) = 35692483569248.D-02 CC3D(7,1,1) = 4455667788.D+6 CC3D(1,2,1) = 35692483569248.D-2 C***** ASSIGNMENT OF UNSIGNED DP CONSTANTS (NO C***** INTEGER PART) WITH SIGNED EXPONENTS TO C***** VARIABLES AND ARRAY ELEMENTS ACVD = .6549876D-3 BCVD = .78D+10 AC1D(9) = .6549876D-3 AC1D(10) = .78D+10 BC2D(2,2) = .6549876D-3 BC2D(3,2) = .78D+10 CC3D(2,2,1) = .6549876D-3 CC3D(3,2,1) = .78D+10 C***** ASSIGNMENT OF SIGNED DP CONSTANTS WITH 5.1.1 /12 C***** UNSIGNED EXPONENTS TO VARIABLES AND ARRAY C***** ELEMENTS CCVD = +0.0D0 DCVD = -17263544.5D3 EP1D(1) = +0.0D0 EP1D(2) = -17263544.5D3 BC2D(4,2) = +0.0D00 BC2D(5,2) = -17263544.5D3 CC3D(4,2,1) = +0.0D0 CC3D(5,2,1) = -17263544.5D3 C***** ASSIGNMENT OF SIGNED DP CONSTANTS WITH C***** SIGNED EXPONENTS TO VARIABLES AND ARRAY C***** ELEMENTS ECVD = +1987.62D+1 FCVD = -2.54396621D+2 GCVD = +34.786529910234D-7 HCVD = -44.4D-10 EP1D(3) = +1987.62D+1 EP1D(4) = -2.54396621D+2 EP1D(5) = +34.786529910234D-7 EP1D(6) = -44.4D-10 BC2D(6,2) = +1987.62D+1 BC2D(7,2) = -2.54396621D+2 BC2D(1,3) = +34.786529910234D-7 BC2D(2,3) = -44.4D-10 CC3D(6,2,1) = +1987.62D+1 CC3D(7,2,1) = -2.54396621D+2 CC3D(1,1,2) = +34.786529910234D-07 CC3D(2,1,2) = -44.4D-10 C***** ASSIGNMENT OF SIGNED DP CONSTANTS (NO DECIMAL C***** PART) WITH SIGNED EXPONENT TO VARIABLES AND C***** ARRAY ELEMENTS AADVD = +0.D+1 BBDVD = -123.D+17 CCDVD = +3692468.D-8 DDDVD = -147937824967.D-5 EP1D(7) = +0.D+1 EP1D(8) = -123.D+17 EP1D(9) = +3692468.D-8 EP1D(10) = -147937824967.D-5 BC2D(3,3) = +0.D+1 BC2D(4,3) = -123.D+17 BC2D(5,3) = +3692468.D-8 BC2D(6,3) = -147937824967.D-5 CC3D(3,1,2) = +0.D+1 CC3D(4,1,2) = -123.D+17 CC3D(5,1,2) = +3692468.D-8 CC3D(6,1,2) = -147937824967.D-5 C***** ASSIGNMENT OF SIGNED DP CONSTANTS (NO INTEGER C***** PART) WITH SIGNED EXPONENTS TO VARIABLES AND C***** ARRAY ELEMENTS EEDVD = +.927786174985D+2 FFDVD = -.59354914223619D+0 GGDVD = +.98663271D-03 HHDVD = -.1D-15 EP1D(11) = +.927786174985D+2 EP1D(12) = -.59354914223619D+0 EP1D(13) = +.98663271D-03 EP1D(14) = -.1D-15 BC2D(7,3) = +.927786174985D+2 BC2D(1,4) = -.59354914223619D+0 BC2D(2,4) = +.98663271D-03 BC2D(3,4) = -.1D-15 CC3D(7,1,2) = +.927786174985D+2 CC3D(1,2,2) = -.59354914223619D+0 CC3D(2,2,2) = +.98663271D-3 CC3D(3,2,2) = -.1D-15 C***** ASSIGNMENT OF SIGNED DP CONSTANTS (NO DECIMAL C***** PART) WITH UNSIGNED EXPONENTS TO VARIABLES C***** AND ARRAY ELEMENTS PPDVD = +3261294675.D12 RRDVD = -969492909.D4 EP1D(15) = +3261294675.D12 EP1D(16) = -969492909.D4 BC2D(4,4) = +3261294675.D12 BC2D(5,4) = -969492909.D4 CC3D(4,2,2) = +3261294675.D12 CC3D(5,2,2) = -969492909.D4 C***** ASSIGNMENT OF SIGNED DP CONSTANTS (NO INTEGER C***** PART) WITH UNSIGNED EXPONENTS TO VARIABLES C***** AND ARRAY ELEMENTS SSDVD = +.001246085D3 TTDVD = -.59D2 EP1D(17) = +.001246085D3 EP1D(18) = -.59D2 BC2D(6,4) = +.001246085D3 BC2D(7,4) = -.59D2 CC3D(6,2,2) = +.001246085D3 CC3D(7,2,2) = -.59D2 C***** ASSIGNMENT OF DP CONSTANTS FORMED BY ADDING 5.1.1.3/42 C***** UNSIGNED EXPONENTS TO UNSIGNED INTEGERS UUDVD = 798281392253D0 EP1D(19) = 798281392253D0 FC2D(1,1) = 798281392253D0 RC3D(1,1,1) = 798281392253D0 C***** ASSIGNMENT OF DP CONSTANTS FORMED BY ADDING C***** SIGNED EXPONENTS TO UNSIGNED INTEGERS VVDVD = 42921D+6 WWDVD = 793685443D-4 EP1D(20) = 42921D+6 EP1D(21) = 793685443D-4 FC2D(2,1) = 42921D+6 FC2D(3,1) = 793685443D-4 RC3D(2,1,1) = 42921D+6 RC3D(3,1,1) = 793685443D-4 C***** ASSIGNMENT OF DP CONSTANTS FORMED BY ADDING C***** UNSIGNED EXPONENTS TO SIGNED INTEGERS XXDVD = +33344455566D2 YYDVD = -222333444D1 EP1D(22) = +33344455566D2 EP1D(23) = -222333444D1 FC2D(4,1) = +33344455566D2 FC2D(5,1) = -222333444D1 RC3D(1,2,1) = +33344455566D2 RC3D(2,2,1) = -222333444D1 C***** ASSIGNMENT OF DP CONSTANTS FORMED BY ADDING C***** SIGNED EXPONENTS TO SIGNED INTEGERS ZZDVD = +1D+1 MCIVD = -2D+2 MCJVD = +33333333333333D-3 MCKVD = -444444444D-4 EP1D(24) = +1D+1 EP1D(25) = -2D+2 EP1D(26) = +33333333333333D-3 EP1D(27) = -444444444D-4 FC2D(1,2) = +1D+1 FC2D(2,2) = -2D+2 FC2D(3,2) = +33333333333333D-3 FC2D(4,2) = -444444444D-4 RC3D(3,2,1) = +1D+1 RC3D(1,3,1) = -2D+2 RC3D(2,3,1) = +33333333333333D-3 RC3D(3,3,1) = -444444444D-4 C***** ASSIGNMENT OF UNSIGNED DP VARIABLES AND ARRAY 7.1.1.1/41 C***** ELEMENTS TO DP VARIABLES AND ARRAY ELEMENTS C***** (BOTH PLUS AND MINUS VALUES ARE ASSIGNED IN THIS C***** WAY) DPAVD = MCAVD DPBVD = DCVD DPCVD = EP1D(1) DPDVD = EP1D(2) DPEVD = BC2D(2,2) DPFVD = BC2D(4,2) DPGVD = CC3D(3,1,1) DPHVD = CC3D(7,2,1) EP1D(28) = DPAVD EP1D(29) = DPBVD EP1D(30) = EP1D(1) EP1D(31) = EP1D(2) EP1D(32) = BC2D(2,2) EP1D(33) = BC2D(4,2) EP1D(34) = CC3D(3,1,1) EP1D(35) = CC3D(7,2,1) FC2D(5,2) = DPAVD FC2D(1,3) = DPBVD FC2D(2,3) = EP1D(1) FC2D(3,3) = EP1D(2) FC2D(4,3) = BC2D(2,2) FC2D(5,3) = BC2D(4,2) FC2D(1,4) = CC3D(3,1,1) FC2D(2,4) = CC3D(7,2,1) RC3D(1,1,2) = MCAVD RC3D(2,1,2) = DCVD RC3D(3,1,2) = EP1D(1) RC3D(1,2,2) = EP1D(2) RC3D(2,2,2) = BC2D(2,2) RC3D(3,2,2) = BC2D(4,2) RC3D(1,3,2) = CC3D(3,1,1) RC3D(2,3,2) = CC3D(7,2,1) C***** ASSIGNMENT OF SIGNED DP VARIABLES AND ARRAY C***** ELEMENTS TO DP VARIABLES AND ARRAY ELEMENTS C***** (UNARY MINUS USED TO REVERSE BOTH PLUS AND 6.4 /44 C***** MINUS VALUES) DPIVD = -GCVD DPJVD = -DDDVD DPKVD = -AC1D(3) DPLVD = -EP1D(10) DPMVD = -BC2D(3,1) DPNVD = -BC2D(2,4) DPOVD = -CC3D(2,1,1) DPPVD = -CC3D(2,1,2) EP1D(36) = -GCVD EP1D(37) = -DDDVD EP1D(38) = -AC1D(3) EP1D(39) = -EP1D(10) EP1D(40) = -BC2D(3,1) EP1D(41) = -BC2D(2,4) EP1D(42) = -CC3D(2,1,1) EP1D(43) = -CC3D(2,1,2) FC2D(3,4) = -GCVD FC2D(4,4) = -DDDVD FC2D(5,4) = -AC1D(3) FC2D(1,5) = -EP1D(10) FC2D(2,5) = -BC2D(3,1) FC2D(3,5) = -BC2D(2,4) FC2D(4,5) = -CC3D(2,1,1) FC2D(5,5) = -CC3D(2,1,2) RC3D(3,3,2) = -GCVD RC3D(1,1,3) = -DDDVD RC3D(2,1,3) = -AC1D(3) RC3D(3,1,3) = -EP1D(10) RC3D(1,2,3) = -BC2D(3,1) RC3D(2,2,3) = -BC2D(2,4) RC3D(3,2,3) = -CC3D(2,1,1) RC3D(1,3,3) = -CC3D(2,1,2) C***** WRITE RESULTS FOR THIS SEGMENT WRITE (NUVI,132) MCAVD, AC1D(1), BC2D(1,1), CC3D(1,1,1), MCBVD, A AC1D(2), BC2D(2,1), CC3D(2,1,1), MCCVD, AC1D(3), BC2D(3,1), B CC3D(3,1,1), MCDVD, AC1D(4), BC2D(4,1), CC3D(4,1,1), MCEVD, C AC1D(5), BC2D(5,1), CC3D(5,1,1), MCFVD, AC1D(6), BC2D(6,1), D CC3D(6,1,1), MCGVD, AC1D(7), BC2D(7,1), CC3D(7,1,1), MCHVD, E AC1D(8), BC2D(1,2), CC3D(1,2,1), ACVD, AC1D(9), BC2D(2,2), F CC3D(2,2,1), BCVD, AC1D(10), BC2D(3,2), CC3D(3,2,1), CCVD, G EP1D(1) , BC2D(4,2), CC3D(4,2,1), DCVD, EP1D(2) , BC2D(5,2), H CC3D(5,2,1), ECVD, EP1D(3) , BC2D(6,2), CC3D(6,2,1), FCVD, I EP1D(4) , BC2D(7,2), CC3D(7,2,1), GCVD, EP1D(5) , BC2D(1,3), J CC3D(1,1,2), HCVD, EP1D(6) , BC2D(2,3), CC3D(2,1,2), AADVD, K EP1D(7) , BC2D(3,3), CC3D(3,1,2), BBDVD, EP1D(8) , BC2D(4,3), L CC3D(4,1,2), CCDVD, EP1D(9) , BC2D(5,3), CC3D(5,1,2), DDDVD, M EP1D(10), BC2D(6,3), CC3D(6,1,2) WRITE (NUVI,133) EEDVD, EP1D(11), BC2D(7,3), CC3D(7,1,2), FFDVD, 1 EP1D(12), BC2D(1,4), CC3D(1,2,2),GGDVD, EP1D(13), BC2D(2,4), 2 CC3D(2,2,2), HHDVD, EP1D(14), BC2D(3,4), CC3D(3,2,2), PPDVD, 3 EP1D(15), BC2D(4,4), CC3D(4,2,2), RRDVD, EP1D(16),BC2D( 5,4), 4 CC3D(5,2,2),SSDVD, EP1D(17), BC2D(6,4), CC3D(6,2,2), TTDVD, 5 EP1D(18), BC2D(7,4), CC3D(7,2,2) WRITE (NUVI,134) UUDVD, EP1D(19), FC2D(1,1), RC3D(1,1,1), VVDVD, 1 EP1D(20), FC2D(2,1), RC3D(2,1,1), WWDVD, EP1D(21), FC2D(3,1), 2 RC3D(3,1,1), XXDVD, EP1D(22), FC2D(4,1), RC3D(1,2,1), YYDVD, 3 EP1D(23), FC2D(5,1), RC3D(2,2,1), ZZDVD, EP1D(24), FC2D(1,2), 4 RC3D(3,2,1), MCIVD, EP1D(25), FC2D(2,2), RC3D(1,3,1), MCJVD, 5 EP1D(26), FC2D(3,2), RC3D(2,3,1), MCKVD, EP1D(27), FC2D(4,2), 6 RC3D(3,3,1) WRITE (NUVI,135) MCAVD, DPAVD, EP1D(28), FC2D(5,2), RC3D(1,1,2), A DCVD, DPBVD, EP1D(29), FC2D(1,3), RC3D(2,1,2), EP1D(1), B DPCVD, EP1D(30), FC2D(2,3), RC3D(3,1,2), EP1D(2), DPDVD, C EP1D(31), FC2D(3,3), RC3D(1,2,2), BC2D(2,2), DPEVD, EP1D(32), D FC2D(4,3), RC3D(2,2,2), BC2D(4,2), DPFVD, EP1D(33), FC2D(5,3), E RC3D(3,2,2), CC3D(3,1,1), DPGVD, EP1D(34), FC2D(1,4), F RC3D(1,3,2), CC3D(7,2,1), DPHVD, EP1D(35), FC2D(2,4), G RC3D(2,3,2), GCVD, DPIVD, EP1D(36), FC2D(3,4), RC3D(3,3,2), H DDDVD, DPJVD, EP1D(37), FC2D(4,4), RC3D(1,1,3), AC1D(3), I DPKVD, EP1D(38), FC2D(5,4), RC3D(2,1,3), EP1D(10), DPLVD, J EP1D(39), FC2D(1,5), RC3D(3,1,3), BC2D(3,1), DPMVD, EP1D(40), K FC2D(2,5), RC3D(1,2,3), BC2D(2,4), DPNVD, EP1D(41), FC2D(3,5), L RC3D(2,2,3), CC3D(2,1,1), DPOVD, EP1D(42), FC2D(4,5), M RC3D(3,2,3), CC3D(2,1,2), DPPVD, EP1D(43), FC2D(5,5), N RC3D(1,3,3) 132 FORMAT (/ 6X,8H0.34D+02/4(D14.2/)/ A 6X,19H0.1234567891011D+08/4(D25.13/)/ B 6X,15H0.298765234D-01/4(D21.9/)/ C 6X,17H0.34510000555D+07/4(D23.11/)/ D 6X,14H0.22232425D+08/4(D20.8/)/ E 6X,12H0.281420D+05/4(D18.6/)/ F 6X,16H0.4455667788D+16/4(D22.10/), G 1H1,5X,20H0.35692483569248D+12/4(D26.14/)/ H 6X,13H0.6549876D-03/4(D19.7/)/ I 6X,8H0.78D+10/4(D14.2/)/ J 6X,7H0.0D+00/4(D13.1/)/ K 5X,16H-0.172635445D+11/4(D21.9/)/ L 6X,12H0.198762D+05/4(D18.6/)/ M 5X,16H-0.254396621D+03/4(D21.9/)/ N 6X,20H0.34786529910234D-05/4(D26.14/)/ O 5X,10H-0.444D-08/4(D15.3/), P 1H1,5X,7H0.0D+00/4(D13.1/)/ Q 5X,10H-0.123D+20/4(D15.3/)/ R 6X,13H0.3692468D-01/4(D19.7/)/ S 5X,19H-0.147937824967D+07/4(D24.12/),1H ) 133 FORMAT ( 6X,18H0.927786174985D+02/4(D24.12/)/ T 5X,21H-0.59354914223619D+00/4(D26.14/)/ U 6X,14H0.98663271D-03/4(D20.8/)/ V 5X,8H-0.1D-15/4(D13.1/)/ W 6X,16H0.3261294675D+22/4(D22.10/), X 1H1,4X,16H-0.969492909D+13/4(D21.9/)/ Y 6X,13H0.1246085D+01/4(D19.7/)/ Z 5X,9H-0.59D+02/4(D14.2/),1H ) 134 FORMAT ( 6X,18H0.798281392253D+12/4(D24.12/)/ 1 6X,11H0.42921D+11/4(D17.5/)/ 2 6X,15H0.793685443D+05/4(D21.9/)/ 3 6X,17H0.33344455566D+13/4(D23.11/)/ 4 5X,16H-0.222333444D+10/4(D21.9/)/ 5 6X,7H0.1D+02/4(D13.1/), 6 1H1,4X,8H-0.2D+03/4(D13.1/)/ 7 6X,20H0.33333333333333D+11/4(D26.14/)/ 8 5X,16H-0.444444444D+05/4(D21.9/),1H ) 135 FORMAT( 6X,20H0.34000000000000D+02/5(D26.14/)/ 1 5X,21H-0.17263544500000D+11/5(D26.14/)/ 2 6X,20H0.00000000000000D+00/5(D26.14/)/ 3 5X,21H-0.17263544500000D+11/5(D26.14/)/ 4 6X,20H0.65498760000000D-03/5(D26.14/), 5 1H1,5X,20H0.00000000000000D+00/5(D26.14/)/ 6 6X,20H0.29876523400000D-01/5(D26.14/)/ 7 5X,21H-0.25439662100000D+03/5(D26.14/), 8 39H1 EACH GROUP SHOULD BE IDENTICAL EXCEPT/ 9 38H FOR THE SIGNS OF THE FIRST TWO LINES// A 6X,20H0.34786529910234D-05/5(D26.14/)/ B 5X,21H-0.14793782496700D+07/5(D26.14/)/ C 6X,20H0.29876523400000D-01/5(D26.14/)/ D 5X,21H-0.14793782496700D+07/5(D26.14/)/ E 6X,20H0.29876523400000D-01/5(D26.14/)/ F 6X,20H0.98663271000000D-03/5(D26.14/)/ G 6X,20H0.12345678910110D+08/5(D26.14/), H 1H1,4X,21H-0.44400000000000D-08/5(D26.14/)) C***** END OF SEGMENT 013 C***** WHEN EXECUTING ONLY SEGMENT 013, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENTS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED C= STOP C= END C*********************************************************************** C***** C***** CASGN - (015) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** * TO TEST METHODS OF FORMING COMPLEX CONSTANTS 5.1.1 C***** * TO TEST THAT COMPLEX VARIABLES AND ARRAY 5.1.2 /5 C***** ELEMENTS MAY BE REFERENCED. 5.1.3 /16 C***** * TO TEST SIMPLE ARITHMETIC ASSIGNMENT STATEMENTS 7.1.1.1 C***** SO THAT THIS FEATURE CAN BE USED FOR INITIALIZATION TABLE 1 C***** IN LATER SEGMENTS C***** S P E C I F I C A T I O N S SEGMENT 015 C***** C***** WHEN EXECUTING ONLY SEGMENT 015, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C***** C= COMPLEX QEVC,QFVC,QGVC,QHVC,QIVC,QJVC,QKVC,QLVC,QMVC,QNVC,QOVC, C= 1 QPVC,QRVC,QSVC,QTVC,QUVC,QVVC,KVC,LVC,MVC,NVC,OVC,PVC,QVC,VVC, C= 2 MEVC,MFVC,MGVC,MHVC,MIVC,QQVC,MJVC,MKVC,MLVC, MNVC,MOVC, C= 3 MPVC,MQVC,MRVC,MSVC,MTVC,MUVC,MVVC,BCVC,DCVC,DDVC C= COMPLEX AVC,BVC,CVC,DVC,EVC,FVC,GVC,HVC,IVC,JVC,AAVC, C= 1 ABVC,BAVC,BBVC,CCVC,CDVC,CAVC,DAVC,ASVC,BSVC,CSVC, C= 2 DSVC,AAAVC,ABAVC,ACAVC,ADAVC,CHCVC C= COMPLEX NUMVC, QAVC,QBVC,QCVC,QDVC,RVC,SVC,TVC,UVC C= 1 , MAVC,MBVC,MCVC,MDVC,B1C(8),B2C(4,2),B3C(2,2,2) C= COMPLEX LL1C(32),LM2C(8,4),LN3C(9,2,2),A1C(12),A2C(2,2),A3C(2,2,1) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 015, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,150) WRITE (NUVI,151) 150 FORMAT(1H1,1X,32HCASGN - (015) COMPLEX ASSIGNMENT/ 1 16X, 10HSTATEMENTS/2X,28HASA REFS. - 5.1.1.4 7.1.1.1// 2 2X, 7HRESULTS//2X,23HLINE 1 OF EACH GROUP IS/ 3 2X,21HHOLLERITH INFORMATION/) 151 FORMAT(2X,36HVALUES IN A GROUP SHOULD BE THE SAME) C***** HEADER FOR SEGMENT 015 WRITTEN C***** BEGINNING OF TEST OF COMPLEX CONSTANT ASSIGNMENTS. IN C***** THE FOLLOWING 22 BLOCKS, BOTH PARTS OF THE CONSTANT C***** HAVE THE SAME METHOD OF FORMATION C***** TEST ASSIGNMENT OF COMPLEX CONSTANTS FORMED FROM C***** UNSIGNED BASIC REAL CONSTANTS QAVC = (22.2,33.33) LL1C(1) = (22.2,33.33) LM2C(1,1) = (22.2,33.33) LN3C(1,1,1) = (22.2,33.33) C***** TEST ASSIGNMENT OF COMPLEX CONSTANTS FORMED FROM C***** SIGNED BASIC REAL CONSTANTS QBVC = (+395.6,+4106.7) QCVC = (-12345.67,-1234.567) QDVC = (+8.9,-9.1) QEVC = (-2635.12,+46.21) LL1C(2) = (+395.6,+4106.7) LL1C(3) = (-12345.67,-1234.567) LL1C(4) = (+8.9,-9.1) LL1C(5) = (-2635.12,+46.21) LM2C(2,1) = (+395.6,+4106.7) LM2C(3,1) = (-12345.67,-1234.567) LM2C(4,1) = (+8.9,-9.1) LM2C(5,1) = (-2635.12,+46.21) LN3C(2,1,1) = (+395.6,+4106.7) LN3C(3,1,1) = (-12345.67,-1234.567) LN3C(4,1,1) = (+8.9,-9.1) LN3C(5,1,1) = (-2635.12,+46.21) C***** TEST ASSIGNMENT OF COMPLEX CONSTANTS FORMED FROM C***** UNSIGNED AND SIGNED REAL CONSTANTS (INTEGER PART C***** ONLY) QFVC = (10.,20.) QGVC = (+300.,+4000.) QHVC = (-50.,-600.) QIVC = (+71.,-92.) QJVC = (-883.,+1414.) QKVC = (10.,+562.) QLVC = (2002.,-983.) QMVC = (+461.,-165.) QNVC = (-21.,+122.) LL1C(6) = (10.,20.) LM2C(6,1) = (+300.,+4000.) LN3C(6,1,1) = (-50.,-600.) LL1C(7) = (+71.,-92.) LM2C(7,1) = (-883.,+1414.) LN3C(7,1,1) = (10.,+562.) LL1C(8) = (2002.,-983.) LM2C(8,1) = (+461.,-165.) LN3C(8,1,1) = (-21.,+122.) C***** TEST ASSIGNMENT OF COMPLEX CONSTANTS FORMED FROM C***** UNSIGNED AND SIGNED REAL CONSTANTS (DECIMAL PART C***** ONLY QOVC = (.001,.00200) QPVC = (+.562,+.562) QQVC = (-.3,-.3333333) QRVC = (+.4,-.445) QSVC = (-.95,+.95) QTVC = (.0164239,+.36) QUVC = (.21,-.3963) QVVC = (+.3398,.3398) NUMVC = (-.6,.6) LL1C(9) = (.001,.00200) LM2C(1,2) = (+.562,+.562) LN3C(1,2,1) = (-.3,-.3333333) LL1C(10) = (+.4,-.445) LM2C (2,2) = (-.95, +.95) LN3C(2,2,1) = (.0164239,+.36) LL1C(11) = (.21,-.3963) LM2C(3,2) = (+.3398,.3398) LN3C(3,2,1) = (-.6,.6) C***** TEST ASSIGNMENT OF COMPLEX CONSTANTS FORMED FROM C***** UNSIGNED REAL CONSTANTS WITH UNSIGNED EXPONENTS AVC = (0.0E0,1.0E0) LL1C(12) = (456231.1E1,789.453E3) LM2C(4,2) = (44.9E4,2.5E3) LN3C(4,2,1) = (2222.3E3,333.2E2) C***** TEST ASSIGNMENT OF COMPLEX CONSTANTS FORMED FROM C***** UNSIGNED REAL CONSTANTS WITH SIGNED EXPONENTS BVC = (3.0E+0,3.0E+0) CVC = (987654.3E-1,876543.2E-2) DVC = (4.444E+3,55.555E-4) EVC = (6.0E-5,7.7E+6) LL1C(13) = (3.0E+0,3.0E+0) LM2C(5,2) = (987654.3E-1,876543.2E-2) LN3C(5,2,1) = (4.444E+3,55.555E-4) LL1C(14) = (6.0E-5,7.7E+6) C***** TEST ASSIGNMENT OF COMPLEX CONSTANTS FORMED FROM C***** SIGNED REAL CONSTANTS WITH UNSIGNED EXPONENTS FVC = (+14.2E1,+26.67E0) GVC = (-36.923E4,-0.234E03) HVC = (+2.1E2,-2.1E2) IVC = (-595.9E00,+4.967E2) LM2C(6,2) = (+14.2E1,+26.67E0) LN3C(6,2,1) = (-36.923E4,-0.234E03) LL1C(15) = (+2.1E2,-2.1E2) LM2C(7,2) = (-595.9E00,+4.967E2) C***** TEST ASSIGNMENT OF COMPLEX CONSTANTS FORMED FROM C***** SIGNED REAL CONSTANTS WITH SIGNED EXPONENTS JVC = (+1.0E+0,+1.0E+0) KVC = (-2.0E-0,-2.0E-0) LVC = (+49.2E-1,-65.27E+2) MVC = (-737.1E+3,+99.8E-3) NVC = (+4774.47E+03,-9362.4E-4) OVC = (-846.2E-5,+13.33E+1) LN3C(7,2,1) = (+1.0E+0,+1.0E+0) LL1C(16) = (-2.0E-0,-2.0E-0) LM2C(1,3) = (+49.2E-1,-65.27E+2) LN3C(1,1,2) = (-737.1E+3,+99.8E-3) LL1C(17) = (+4774.47E+03,-9362.4E-4) LM2C(2,3) = (-846.2E-5,+13.33E+1) C***** TEST ASSIGNMENT OF COMPLEX CONSTANTS FORMED FROM C***** UNSIGNED REAL CONSTANTS (NO DECIMAL PART) WITH C***** UNSIGNED EXPONENTS PVC = (77.E7,816248.E2) LL1C(18) = (77.E7,816248.E2) LM2C(3,3) = (1334.E01,379.E03) LN3C(2,1,2) = (1334.E01,379.E03) C***** TEST ASSIGNMENT OF COMPLEX CONSTANTS FORMED FROM C***** UNSIGNED REAL CONSTANTS (NO DECIMAL PART) WITH C***** SIGNED EXPONENTS QVC = (3.E+5,3.E+05) RVC = (299.E-4,299.E-1) SVC = (1419.E+2,1419.E-2) TVC = (76.E-3,987.E+0) LL1C(19) = (3.E+05,3.E+5) LM2C(4,3) = (299.E-4,299.E-1) LN3C(3,1,2) = (1419.E+2,1419.E-2) LL1C(20) = (76.E-3, 987.E+0) C***** TEST ASSIGNMENT OF COMPLEX CONSTANTS FORMED FROM C***** SIGNED REAL CONSTANTS (NO DECIMAL PART) WITH C***** UNSIGNED EXPONENTS UVC = (+31.E0,+4659.E1) VVC = (-728.E2,-93296.E3) MAVC = (+6.E6,-6.E6) MBVC = (-7914.E3,+16.E5) LM2C(5,3) = (+31.E0,+4659.E1) LN3C(4,1,2) = (-728.E2,-93296.E3) LL1C(21) = (+6.E6,-6.E6) LM2C(6,3) = (-7914.E3,+16.E5) C***** TEST ASSIGNMENT OF COMPLEX CONSTANTS FORMED FROM C***** SIGNED REAL CONSTANTS (NO DECIMAL PART) WITH C***** SIGNED EXPONENTS MCVC = (+1.E+1,+1.E+1) MDVC = (-2.E-2,-2.E-2) MEVC = (+3.E-3,-3.E+3) MFVC = (-4.E+4,+4.E-4) MGVC = (+5.E+5,-5.E-5) MHVC = (-6.E-6,+6.E+6) LN3C(5,1,2) = (+1.E+1,+1.E+1) LL1C(22) = (-2.E-2,-2.E-2) LM2C(7,3) = (+3.E-3,-3.E+3) LN3C(6,1,2) = (-4.E+4,+4.E-4) LL1C(23) = (+5.E+5,-5.E-5) LM2C(1,4) = (-6.E-6,+6.E+6) C***** TEST ASSIGNMENT OF COMPLEX CONSTANTS FORMED FROM C***** UNSIGNED REAL CONSTANTS (NO INTEGER PART) WITH C***** UNSIGNED EXPONENTS MIVC = (.39393E01,.62E04) LL1C(24) = (.39393E01,.62E04) LM2C(2,4) = (.009E2,.765765E3) LN3C(7,1,2) = (.009E2,.765765E3) C***** TEST ASSIGNMENT OF COMPLEX CONSTANTS FORMED FROM C***** UNSIGNED REAL CONSTANTS (NO INTEGER PART) WITH C***** SIGNED EXPONENTS MJVC =(.352E+09,.352E+3) MKVC =(.147626E+0,.891E-14) MLVC =(.9E-7,.9999E+8) MNVC =(.13E-04,.13E-04) LL1C(25) =(.352E+09,.352E+3) LM2C(3,4) =(.147626E+0,.891E-14) LN3C(1,2,2) =(.9E-7,.9999E+8) LN3C(2,2,2) =(.13E-4,.13E-4) C***** TEST ASSIGNMENT OF COMPLEX CONSTANTS FORMED FROM C***** SIGNED REAL CONSTANTS (NO INTEGER PART) WITH C***** UNSIGNED EXPONENTS MOVC =(+.77E00,+.77E00) MPVC =(+.878E1,-.878E1) MQVC =(-.9797E2,+.9797E2) MRVC =(-.10101E15,-.10101E15) LL1C(26) =(+.77E00,+.77E00) LM2C(4,4) =(+.878E1,-.878E1) LN3C(3,2,2) =(-.9797E2,+.9797E2) LN3C(4,2,2) =(-.10101E15,-.10101E15) C***** TEST ASSIGNMENT OF COMPLEX CONSTANTS FORMED FROM C***** SIGNED REAL CONSTANTS (NO INTEGER PART) WITH C***** SIGNED EXPONENTS MSVC =(+.68E+12,+.357628E+0) MTVC =(+.798E-3,+.76444E-00) MUVC =(-.3247E+20,-.2594E+5) MVVC =(-.43599E-19,-.12E-4) AAVC =(-.6E-9,-.6E+9) ABVC =(-.9119E+6,+.9119E-6) BAVC =(+.39426E+2,-.39426E-2) BBVC =(+.45E-12,+.45E+12) LL1C(27) =(+.68E+12,+.357628E+0) LM2C(5,4) =(+.798E-3,+.76444E-00) LN3C(5,2,2) =(-.3247E+20,-.2594E+5) LL1C(28) =(-.43599E-19,-.12E-4) LM2C(6,4) =(-.6E-9,-.6E+9) LN3C(6,2,2) =(-.9119E+6,+.9119E-6) LM2C(7,4) =(+.39426E+2,-.39426E-2) LN3C(7,2,2) =(+.45E-12,+.45E+12) C***** ASSIGNMENT OF COMPLEX CONSTANTS FORMED FROM SIGNED AND UNSIGNED C***** INTEGER CONSTANTS WITH SIGNED AND UNSIGNED EXPONENTS BCVC = (+4793E+2,3479E2) DDVC = (3682E-3,8236E-2) DCVC = (-2571E5,+1752E+5) CHCVC = (+1460E-4,-1064E+01) A1C(5) = (4793E2,3479E+2) A1C(6) = (3682E-03,+8236E-02) A1C(7) = (-2571E+5,1752E+05) A1C(8) = (1460E-4,-1064E1) LM2C(8,2) = (4793E+2,+3479E+2) LN3C(8,2,1) = (+3682E-3,8236E-02) LN3C(8,2,2) = (-2571E+05,1752E5) LN3C(8,1,2) = (1460E-04,-1064E+1) C***** ASSIGNMENT OF COMPLEX VARIABLES AND ARRAY ELEMENTS C***** TO COMPLEX VARIABLES AND ARRAY ELEMENTS CCVC = QTVC CDVC = LL1C(12) CAVC = LM2C(1,4) DAVC = LN3C(6,2,2) A1C(1) = CCVC A1C(2) = LL1C(12) A1C(3) = LM2C(1,4) A1C(4) = LN3C(6,2,2) A2C(1,1) = QTVC A2C(2,1) = LL1C(12) A2C(1,2) = LM2C(1,4) A2C(2,2) = LN3C(6,2,2) A3C(1,1,1) = CCVC A3C(2,1,1) = LL1C(12) A3C(1,2,1) = LM2C(1,4) A3C(2,2,1) = LN3C(6,2,2) C***** ASSIGNMENT OF COMPLEX VARIABLES AND ARRAY ELEMENTS C***** TO COMPLEX VARIABLES AND ARRAY ELEMENTS (UNARY 6.4/44 C***** MINUS USED TO REVERSE BOTH PLUS AND MINUS VALUES) ASVC = - QGVC BSVC = - QHVC CSVC = - LL1C(26) DSVC = - LL1C(23) AAAVC = - LM2C(1,3) AAAVC = - LM2C(1,3) ABAVC = - LM2C(1,4) ACAVC = - LN3C(5,2,1) ADAVC = - LN3C(6,2,1) B1C(1) = - QGVC B1C(2) = - QHVC B1C(3) = - LL1C(26) B1C(4) = - LL1C(23) B1C(5) = - LM2C(1,3) B1C(6) = - LM2C(1,4) B1C(7) = - LN3C(5,2,1) B1C(8) = - LN3C(6,2,1) B2C(1,1) = - QGVC B2C(2,1) = - QHVC B2C(3,1) = - LL1C(26) B2C(4,1) = - LL1C(23) B2C(1,2) = - LM2C(1,3) B2C(2,2) = - LM2C(1,4) B2C(3,2) = - LN3C(5,2,1) B2C(4,2) = - LN3C(6,2,1) B3C(1,1,1) = - QGVC B3C(2,1,1) = - QHVC B3C(1,2,1) = - LL1C(26) B3C(2,2,1) = - LL1C(23) B3C(1,1,2) = - LM2C(1,3) B3C(2,1,2) = - LM2C(1,4) B3C(1,2,2) = - LN3C(5,2,1) B3C(2,2,2) = - LN3C(6,2,1) C***** WRITE RESULTS FOR THIS TEST SEGMENT WRITE (NUVI, 152) QAVC, LL1C(1), LM2C(1,1), LN3C(1,1,1), QBVC, 1 LL1C(2), LM2C(2,1), LN3C(2,1,1), QCVC, LL1C(3), LM2C(3,1), 2 LN3C(3,1,1), QDVC, LL1C(4), LM2C(4,1), LN3C(4,1,1), QEVC, 3 LL1C(5), LM2C(5,1), LN3C(5,1,1), QFVC, LL1C(6), QGVC, 4 LM2C(6,1), QHVC, LN3C(6,1,1), QIVC, LL1C(7), QJVC, LM2C(7,1), 5 QKVC, LN3C(7,1,1), QLVC, LL1C(8), QMVC, LM2C(8,1), QNVC, 6 LN3C(8,1,1), QOVC, LL1C(9), QPVC, LM2C(1,2), QQVC, 7 LN3C(1,2,1), QRVC, LL1C(10), QSVC, LM2C(2,2), QTVC, 8 LN3C(2,2,1) WRITE (NUVI,153) QUVC, LL1C(11), QVVC, LM2C(3,2), NUMVC, 1 LN3C(3,2,1), AVC, LL1C(12), LM2C(4,2), LN3C(4,2,1), BVC, 2 LL1C(13), CVC, LM2C(5,2), DVC, LN3C(5,2,1), EVC, LL1C(14), 3 FVC, LM2C(6,2), GVC, LN3C(6,2,1), HVC, LL1C(15), IVC, 4 LM2C(7,2), JVC, LN3C(7,2,1), KVC, LL1C(16), LVC, LM2C(1,3), 5 MVC, LN3C(1,1,2), NVC, LL1C(17) WRITE(NUVI,8873) OVC, LM2C(2,3), PVC, 1 LL1C(18), LM2C(3,3), LN3C(2,1,2), QVC, LL1C(19) WRITE (NUVI,154) RVC, LM2C(4,3), SVC, LN3C(3,1,2), TVC, 1 LL1C(20), UVC, LM2C(5,3), VVC, LN3C(4,1,2), MAVC, LL1C(21), 2 MBVC, LM2C(6,3), MCVC, LN3C(5,1,2), MDVC, LL1C(22), MEVC, 3 LM2C(7,3), MFVC, LN3C(6,1,2), MGVC, LL1C(23), MHVC, 4 LM2C(1,4), MIVC, LL1C(24), LM2C(2,4), LN3C(7,1,2) WRITE (NUVI,8870) MJVC, LL1C(25), MKVC, LM2C(3,4), MLVC, - LN3C(1,2,2), MNVC, LN3C(2,2,2), MOVC, LL1C(26), + MPVC, LM2C(4,4), MQVC, LN3C(3,2,2), MRVC, = LN3C(4,2,2), MSVC, LL1C(27), MTVC, LM2C(5,4), $ MUVC, LN3C(5,2,2), MVVC, LL1C(28), AAVC, . LM2C(6,4), ABVC, LN3C(6,2,2), BAVC, LM2C(7,4), + BBVC, LN3C(7,2,2) WRITE(NUVI,8872) BCVC,A1C(5),LM2C(8,2),DDVC, A1C(6),LN3C(8,2,1), 1 DCVC,A1C(7),LN3C(8,2,2),CHCVC,A1C(8),LN3C(8,1,2) 0WRITE (NUVI,8871) QTVC, CCVC, A1C(1), A2C(1,1), A3C(1,1,1), 1 LL1C(12), CDVC, A1C(2), A2C(2,1), A3C(2,1,1), LM2C(1,4), 2 CAVC, A1C(3), A2C(1,2), A3C(1,2,1), LN3C(6,2,2), DAVC, 3 A1C(4), A2C(2,2), A3C(2,2,1), QGVC, ASVC, B1C(1), B2C(1,1), 4 B3C(1,1,1), QHVC, BSVC, B1C(2), B2C(2,1), B3C(2,1,1), 5 LL1C(26), CSVC, B1C(3), B2C(3,1), B3C(1,2,1), LL1C(23), 6 DSVC, B1C(4), B2C(4,1), B3C(2,2,1), LM2C(1,3), AAAVC, B1C(5), 7 B2C(1,2), B3C(1,1,2), LM2C(1,4), ABAVC, B1C(6), B2C(2,2), 8 B3C(2,1,2), LN3C(5,2,1), ACAVC, B1C(7), B2C(3,2), B3C(1,2,2), 9 LN3C(6,2,1), ADAVC, B1C(8), B2C(4,2), B3C(2,2,2) C***** FORMAT STATEMENTS FOR THIS SEGMENT 152 FORMAT (/ 6X,9H0.222E+02,9X,10H0.3333E+02/4(E15.3,E19.4/)/ A 6X,10H0.3956E+03,8X,11H0.41067E+04/4(E16.4,E19.5/)/ B 5X,14H-0.1234567E+05,4X,14H-0.1234567E+04/4(E19.7,E18.7/)/ C 6X,8H0.89E+01,9X,9H-0.91E+01/4(E14.2,E18.2/)/ D 5X,13H-0.263512E+04,6X,10H0.4621E+02/4(E18.6,E16.4/)/ E 6X,7H0.1E+02,11X,7H0.2E+02/2(E13.1,E18.1/)/ F 6X,7H0.3E+03,11X,7H0.4E+04/2(E13.1,E18.1/)/ G 5X,8H-0.5E+02,10X,8H-0.6E+03/2(E13.1,E18.1/)/ H 6X,8H0.71E+02,9X,9H-0.92E+02/2(E14.2,E18.2/)/ I1H1,4X,10H-0.883E+03,9X,10H0.1414E+04/2(E15.3,E19.4/)/ J 6X,7H0.1E+02,11X,9H0.562E+03/2(E13.1,E20.3/)/ K 6X,10H0.2002E+04,7X,10H-0.983E+03/2(E16.4,E17.3/)/ L 6X,9H0.461E+03,8X,10H-0.165E+03/2(E15.3,E18.3/)/ M 5X,9H-0.21E+02,10X,9H0.122E+03/2(E14.2,E19.3/)/ N 6X,7H0.1E-02,11X,7H0.2E-02/2(E13.1,E18.1/)/ O 6X,9H0.562E+00,9X,9H0.562E+00/2(E15.3,E18.3/)/ P 5X,8H-0.3E+00,10X,14H-0.3333333E+00/2(E13.1,E24.7/)/ Q 6X,7H0.4E+00,10X,10H-0.445E+00/2(E13.1,E20.3/)/ R 5X,9H-0.95E+00,10X,8H0.95E+00/2(E14.2,E18.2/)/ S 6X,12H0.164239E-01,6X,8H0.36E+00/2(E18.6,E14.2/),1H ) 153 FORMAT ( 6X,8H0.21E+00,9X,11H-0.3963E+00/2(E14.2,E20.4/)/ A 6X,10H0.3398E+00,8X,10H0.3398E+00/2(E16.4,E18.4/)/ B 5X,8H-0.6E+00,11X,7H0.6E+00/2(E13.1,E18.1/)/ C1H1,5X,7H0.0E+00,11X,7H0.1E+01/E13.1,E18.1// D 6X,13H0.4562311E+07,5X,12H0.789453E+06/E19.7,E17.6// E 6X,9H0.449E+06,9X,8H0.25E+04/E15.3,E17.2// F 6X,11H0.22223E+07,7X,10H0.3332E+05/E17.5,E17.4// G 6X,7H0.3E+01,11X,7H0.3E+01/2(E13.1,E18.1/)/ H 6X,13H0.9876543E+05,5X,13H0.8765432E+04/2(E19.7,E18.7/)/ I 6X,10H0.4444E+04,8X,11H0.55555E-02/2(E16.4,E19.5/)/ J 6X,7H0.6E-04,11X,8H0.77E+07/2(E13.1,E19.2/)/ K 6X,9H0.142E+03,9X,10H0.2667E+02/2(E15.3,E19.4/)/ L 5X,12H-0.36923E+06,6X,10H-0.234E+03/2(E17.5,E16.3/)/ M 6X,8H0.21E+03,9X,9H-0.21E+03/2(E14.2,E18.2/)/ N 5X,11H-0.5959E+03,8X,10H0.4967E+03/2(E16.4,E18.4/)/ O 6X,7H0.1E+01,11X,7H0.1E+01/2(E13.1,E18.1/)/ P 5X,8H-0.2E+01,10X,8H-0.2E+01/2(E13.1,E18.1/)/ Q 6X,9H0.492E+01,8X,11H-0.6527E+04/2(E15.3,E19.4/), R1H1,4X,11H-0.7371E+06,8X,9H0.998E-01/2(E16.4,E17.3/)/ S 6X,12H0.477447E+07,5X,12H-0.93624E+00/2(E18.6,E17.5/),1H ) 8873 FORMAT(5X,13H-0.846200E-02,6X,11H0.13330E+03/2(E18.6,E17.5/)/ U 6X,12H0.770000E+09,6X,11H0.81625E+08/2(E18.6,E17.5/)/ V 6X,12H0.133400E+05,6X,11H0.37900E+06/2(E18.6,E17.5/)/ W 6X,12H0.300000E+06,6X,11H0.30000E+06/2(E18.6,E17.5/),1H ) 154 FORMAT ( 6X,9H0.299E-01,9X,9H0.299E+02/2(E15.3,E18.3/)/ A 6X,10H0.1419E+06,8X,10H0.1419E+02/2(E16.4,E18.4/)/ B 6X,8H0.76E-01,10X,9H0.987E+03/2(E14.2,E19.3/)/ C 6X,8H0.31E+02,10X,10H0.4659E+05/2(E14.2,E20.4/)/ D 5X,10H-0.728E+05,8X,12H-0.93296E+08/2(E15.3,E20.5/)/ E 6X,7H0.6E+07,10X,8H-0.6E+07/2(E13.1,E18.1/)/ F 5X,11H-0.7914E+07,8X,8H0.16E+07/2(E16.4,E16.2/)/ G 6X,7H0.1E+02,11X,7H0.1E+02/2(E13.1,E18.1/), H1H1,4X,8H-0.2E-01,10X,8H-0.2E-01/2(E13.1,E18.1/)/ I 6X,7H0.3E-02,10X,8H-0.3E+04/2(E13.1,E18.1/)/ J 5X,8H-0.4E+05,11X,7H0.4E-03/2(E13.1,E18.1/)/ K 6X,7H0.5E+06,10X,8H-0.5E-04/2(E13.1,E18.1/)/ L 5X,8H-0.6E-05,11X,7H0.6E+07/2(E13.1,E18.1/)/ M 6X,11H0.39393E+01,7X,8H0.62E+04/2(E17.5,E15.2/)/ N 6X,7H0.9E+00,11X,12H0.765765E+03/2(E13.1,E23.6/),1H ) 8870 FORMAT ( 6X,9H0.352E+09,9X,8H0.35E+03/2(E15.3,E17.2/)/ ( 6X,12H0.147626E+00,6X,9H0.891E-14/2(E18.6,E15.3/)/ * 6X,7H0.9E-07,11X,10H0.9999E+08/2(E13.1,E21.4/)/ ) 6X,8H0.13E-04,10X,8H0.13E-04/2(E14.2,E18.2/)/ / 6X,8H0.77E+00,10X,8H0.77E+00/2(E14.2,E18.2/)/ / 6X,9H0.878E+01,8X,10H-0.878E+01/2(E15.3,E18.3/)/ A 5X,11H-0.9797E+02,8X,10H0.9797E+02/2(E16.4,E18.4/), . 1H1,4X,12H-0.10101E+15,6X,12H-0.10101E+15/2(E17.5,E18.5/)/ , 6X,8H0.68E+12,10X,12H0.357628E+00/2(E14.2,E22.6/)/ - 6X,9H0.798E-03,9X,11H0.76444E+00/2(E15.3,E20.5/)/ + 5X,11H-0.3247E+20,7X,11H-0.2594E+05/2(E16.4,E18.4/)/ 1 5X,12H-0.43599E-19,6X,9H-0.12E-04/2(E17.5,E15.2/)/ 2 5X,8H-0.6E-09,10X,8H-0.6E+09/2(E13.1,E18.1/)/ 3 5X,11H-0.9119E+06,8X,10H0.9119E-06/2(E16.4,E18.4/)/ 4 6X,11H0.39426E+02,6X,12H-0.39426E-02/2(E17.5,E18.5/)/ 5 6X,8H0.45E-12,10X,8H0.45E+12/2(E14.2,E18.2/),1H ) 8872 FORMAT( 6 6X,10H0.4793E+06,8X,10H0.3479E+06/3(E16.4,E18.4/)/ 7 6X,10H0.3682E+01,8X,10H0.8236E+02/3(E16.4,E18.4/)/ 8 5X,11H-0.2571E+09,8X,10H0.1752E+09/3(E16.4,E18.4/)/ 9 6X,10H0.1460E+00,7X,11H-0.1064E+05/3(E16.4,E18.4/)) 8871 FORMAT(1H1,5X,13H0.1642390E-01,5X,13H0.3600000E+00/5(E19.7,E18.7/) 1 /6X,13H0.4562311E+07,5X,13H0.7894530E+06/5(E19.7,E18.7/)/ 2 5X,14H-0.6000000E-05,5X,13H0.6000000E+07/5(E19.7,E18.7/)/ 3 5X,14H-0.9119000E+06,5X,13H0.9119000E-06/5(E19.7,E18.7/), 4 39H1 EACH GROUP SHOULD BE IDENTICAL EXCEPT/ 5 38H FOR THE SIGN OF THE FIRST TWO LINES// 6 6X,13H0.3000000E+03,5X,13H0.4000000E+04/5(E19.7,E18.7/)/ 7 5X,14H-0.5000000E+02,4X,14H-0.6000000E+03/5(E19.7,E18.7/)/ 8 6X,13H0.7700000E+00,5X,13H0.7700000E+00/5(E19.7,E18.7/)/ 9 6X, 13H0.5000000E+06,4X,14H-0.5000000E-04/5(E19.7,E18.7/)/ A 6X,13H0.4920000E+01,4X,14H-0.6527000E+04/5(E19.7,E18.7/)/ B 5X,14H-0.6000000E-05,5X,13H0.6000000E+07/5(E19.7,E18.7/)/ C 6X,13H0.4444000E+04,5X,13H0.5555500E-02/5(E19.7,E18.7/)/ D 1H1,4X,14H-0.3692300E+06,4X,14H-0.2340000E+03/5(E19.7,E18.7/)) C***** END OF TEST SEGMENT 015 C***** WHEN EXECUTING ONLY SEGMENT 015, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENTS MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C= STOP C= END STOP END nbs03.d 480890331 170 2 100666 299 ` SAMPLE COMPUTER, FORTRAN COMPILER LEVEL DO NOT READ OR WRITE RECORD 2 . DOUBLE SPACE ON OUTPUT. ID 2 OPERATING SYSTEM VERSION DO NOT READ OR WRITE RECORD 4 . DOUBLE SPACE ON OUTPUT ID 4 DATE, INSTALLATION NAME DO NOT READ OR WRITE RECORD 6 DOUBLE SPACE ON OUTPUT ID 6 nbs03.f 480887313 170 2 100666 37969 ` C***** PART3 ***************************************************** C***** C***** ANSI FORTRAN (X3.9-1966) TEST PROGRAMS C***** C***** PREPARED BY THE NATIONAL BUREAU OF STANDARDS VERSION 3 C***** C***** JUNE 1973 C***** C***** PART 3 OF 14 PARTS C***** C***** SEGMENTS INCLUDED C***** C***** LASGN - 016 LOGICAL ASSIGNMENT STATEMENTS C***** C***** INTRL - 017 ARITHMETIC ASSIGNMENT STATEMENTS C***** C***** UGOTO - 020 UNCONDITIONAL GO TO STATEMENTS C***** C***** AGOTO - 021 GO TO ASSIGNMENT STATEMENTS C***** C***** CGOTO - 022 COMPUTED GO TO STATEMENTS C***** C***** ARBAD - 030 BASIC ADDITION C***** C***** ARFAD - 031 DOUBLE PRECISION ADDITION C***** C***** ARBSB - 032 BASIC SUBTRACTION C***** C***** ARFSB - 033 DOUBLE PRECISION SUBTRACTION C***** C***** ARBAS - 034 BASIC ADDITION AND SUBTRACTION C***** C***** C***** THE FOLLOWING SPECIFICATIONS ARE TO BE USED ONLY WHEN C***** SEGMENTS 016, 017, 020, 021, 022, 030, 031, 032, 033, 034, C***** ARE RUN AS ONE MAIN PROGRAM. C***** DIMENSION A1S(5), A2S(2,2), A3S(3,3,3), IAC1I(5), IAC2I(2,7) 1 , AC1S(25) INTEGER MCA3I(2,3,3), GTVI DOUBLE PRECISION AC1D(10), BC2D(7,4), CC3D(7,2,2), DPAVD, ACVD, 1 BCVD, FFCVD, GGCVD, HHCVD, EP1D(43), CCVD, DCVD, A2D(2,2) 2 , A3D(2,2,2), DPCVD LOGICAL MCAVB, MCBVB, MCCVB, MCDVB, MCEVB, MCFVB, MCGVB, MCIVB 1 , MCJVB, MCKVB, MCLVB, MCMVB, MCNVB, MCA1B(7),MCHVB LOGICAL A1B(2), A2B(2,2), A3B(2,2,2), AVB, BVB, CVB C***** C***** END OF SPECIFICATIONS FOR SEGMENTS 016, 017, 020, 021, 022, C***** 030, 031, 032, 033, 034 C***** C*********************************************************************** C***** C***** LASGN - (016) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST LOGICAL ASSIGNMENTS 7.1.1.2 C***** CONSTANTS USED IN THIS SEGMENT C***** S P E C I F I C A T I O N S SEGMENT 016 C***** C***** WHEN EXECUTING ONLY SEGMENT 016, REMOVE THE PRECEDING C***** SPECIFICATIONS. THE FOLLOWING SPECIFICATIONS WHICH APPEAR AS C***** COMMENTS MUST HAVE THE C= IN COL 1 AND 2 REMOVED. C***** C= DIMENSION IAC1I(5) C= LOGICAL MCAVB,MCBVB,MCCVB,MCDVB,MCEVB,MCFVB,MCGVB,MCHVB,MCIVB, C= 1 MCJVB, MCKVB, MCLVB, MCMVB, MCNVB ,MCA1B(7) C= LOGICAL A1B(2),A2B(2,2),A3B(2,2,2),AVB,BVB,CVB C***** C***** I N P U T - O U T P U T T A P E ASSIGNMENT STATEMENTS IRVI = 5 NUVI = 6 C***** IDENTIFY THE SOURCE OF THE TEST PROGRAMS WRITE(NUVI,0071) 0071 FORMAT (41H1 F O R T R A N T E S T P R O G R A M S// 1 42H PREPARED BY NATIONAL BUREAU OF STANDARDS// 3 37H FOR USE ON LARGE FORTRAN PROCESSORS // 4 42H IN ACCORDANCE WITH ASA FORTRAN X3.9-1966// 5 23H VERSION 3 PART 3 ///) C***** 3 OF 6 INPUT CARDS IDENTIFY THE USERS SYSTEM AND COMPILER C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST READ(IRVI,0070) READ(IRVI,0072) READ(IRVI,0073) 0070 FORMAT(40H BASED ON ASA FORTRAN X3.9-1966 /) 0072 FORMAT(40H TEST PROGRAMS /) 0073 FORMAT(40H FORTRAN COMPILER /) WRITE(NUVI,0070) WRITE(NUVI,0072) WRITE(NUVI,0073) C***** IAC1I(1) = 25 IAC1I(2) = 10 IAC1I(3) = 15 IAC1I(4) = 25 C***** WRITE HEADER FOR THIS SEGMENT WRITE (NUVI,160) 160 FORMAT (1H1,28H LASGN - (016) ASSIGNMENT OF/ 16X,17HLOGIGAL VARIAB ALES/21H ASA REFS. - 7.1.1.2//9H RESULTS) C***** TEST THE ASSIGNMENT OF RELATIONAL EXPRESSIONS 6.2 C***** TO LOGICAL VARIABLES AND ARRAYS MCAVB = IAC1I(2) .LT. IAC1I(3) MCBVB = IAC1I(3) .LT. IAC1I(2) MCCVB = IAC1I(1) .EQ. IAC1I(4) MCDVB = IAC1I(2) .EQ. IAC1I(1) MCEVB = IAC1I(1) .LE. IAC1I(4) MCFVB = IAC1I(2) .LE. IAC1I(1) MCGVB = IAC1I(1) .LE. IAC1I(2) MCHVB = IAC1I(1) .EQ. 25 MCIVB = IAC1I(2) .EQ. IAC1I(4) MCA1B(1) = IAC1I(2) .NE. IAC1I(3) MCA1B(2) = IAC1I(1) .NE. IAC1I(4) MCA1B(3) = IAC1I(1) .GT. IAC1I(2) MCA1B(4) = IAC1I(2) .GT. IAC1I(1) MCA1B(5) = IAC1I(1) .GE. IAC1I(2) A1B(1) = IAC1I(1) .GE. IAC1I(4) A1B(2) = IAC1I(2) .GE. IAC1I(1) C***** TEST THE ASSIGNMENT OF A MIXTURE OF RELATIONAL AND C***** LOGICAL EXPRESSIONS TO LOGICAL VARIABLES AND ARRAYS 6.3 A2B(1,1) = .TRUE. A2B(1,2) = .FALSE. AVB = A2B(1,2) .AND. .NOT. A2B(1,1) BVB = A2B(1,2) .OR. .NOT. A2B(1,1) CVB = IAC1I(2).LT.IAC1I(3).AND.(A2B(1,1).OR..NOT.A2B(1,2)).OR.A2B( A1,1).AND..NOT.A2B(1,2).AND.IAC1I(1).GT.IAC1I(4) A2B(2,1) = .NOT. (CVB.AND.MCIVB).AND. IAC1I(2) .NE. IAC1I(3) .AND. 1 IAC1I(2) .LT. IAC1I(3) .AND. IAC1I(1) .EQ. IAC1I(4) A2B(2,2) = A2B(1,2) .AND. IAC1I(1) .EQ. IAC1I(4) A3B(1,1,1) = IAC1I(2) .LT. IAC1I(3) .AND. A2B(1,2) A3B(1,1,2) = IAC1I(2) .GT. IAC1I(3) .AND. A2B(1,1) A3B(1,2,1) = .NOT. MCA1B(5) .AND. 1 A2B(1,1) .OR. IAC1I(1) .EQ. IAC1I(4) A3B(1,2,2) = .NOT. (A2B(1,2) .AND. IAC1I(1) .EQ. IAC1I(4)).OR. 1 A2B(1,1) .OR. A2B(1,2) A3B(2,1,1) = A2B(1,2) .OR. IAC1I(1) .EQ. IAC1I(4) A3B(2,2,1) = .NOT.MCCVB.AND.MCHVB .OR. IAC1I(1) .NE. IAC1I(4) .OR. 1 IAC1I(1) .LT. IAC1I(4) .OR. A2B(1,2) A3B(2,1,2) = .NOT. A3B(1,1,2) .AND. 1 ( A2B(1,1) .AND. .NOT. A2B(1,2) ) A3B(2,2,2) = IAC1I(1) .LT. IAC1I(4) .OR. .NOT. A2B(1,2) MCJVB=IAC1I(2).GT.IAC1I(3).AND.(A2B(1,1).OR..NOT.A2B(1,2)).OR.A2B( A1,2).AND..NOT.A2B(1,2).AND.IAC1I(1).GT.IAC1I(4) MCKVB = IAC1I(2).LT.IAC1I(3).AND.A2B(1,1).OR.A2B(1,2) MCLVB = (IAC1I(2) .LT. IAC1I(3) .AND. A2B(1,2)) .OR. A2B(1,1) MCMVB = A2B(1,2) .OR. IAC1I(2) .LT. IAC1I(3) .AND. A2B(1,1) MCNVB = A2B(1,2) .OR. (IAC1I(2) .LT. IAC1I(3) .AND. A2B(1,1)) C***** WRITE VARIABLES THAT ARE TRUE WRITE (NUVI,161) MCAVB, MCCVB, MCEVB, MCFVB, MCHVB, MCA1B(1), A MCA1B(3), MCA1B(5), A1B(1), A2B(1,1), A2B(2,1), B A3B(1,2,1), A3B(1,2,2), A3B(2,1,1), A3B(2,1,2), C A3B(2,2,2), CVB, MCKVB, MCLVB, MCMVB, MCNVB 161 FORMAT (//32H ALL ANSWERS BELOW MUST BE TRUE//21(L16/)//) C***** WRITE VARIABLES THAT ARE FALSE WRITE (NUVI,162) MCBVB, MCDVB, MCGVB, MCIVB, MCA1B(2), MCA1B(4), A A1B(2), A2B(1,2), A2B(2,2),A3B(1,1,1),A3B(1,1,2), B A3B(2,2,1), AVB, BVB, MCJVB 162 FORMAT (33H ALL ANSWERS BELOW MUST BE FALSE//15(L16/)) C***** END OF SEGMENT 016 C***** C***** WHEN EXECUTING ONLY SEGMENT 016, THE STOP AND END C***** CARDS, WHICH APPEAR AS COMMENTS, MUST HAVE THE C= C***** IN COL 1 AND 2 REMOVED. C***** C= STOP C= END C*********************************************************************** C***** C***** INTRL - (017) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST ARITHMETIC ASSIGNMENT STATEMENTS WHERE TABLE 1,PG13 C***** REAL CONSTANTS AND VARIABLES, INTEGER VARIABLES (LINES 2,3, C***** AND ARRAY ELEMENTS, AND DOUBLE PRECISION CON- 5,6, C***** STANTS AND VARIABLES ARE ASSIGNED TO EACH OTHER 9,10) C***** C***** S P E C I F I C A T I O N S SEGMENT 017 C***** C***** WHEN EXECUTING ONLY SEGMENT 017, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS MUST HAVE THE C= IN C***** COL 1 AND 2 REMOVED C= DIMENSION A1S(5),A2S(2,2),A3S(3,3,3),IAC1I(5),IAC2I(2,7) C= INTEGER MCA3I(2,3,3) C= DOUBLE PRECISION AC1D(10),BC2D(7,4),CC3D(7,2,2),DPAVD C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 017, THE STATEMENT NUVI = 6 C***** MUST HAVE THE C= IN COL 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,170) 170 FORMAT(1H1,1X,39HINTRL - (017) ASSIGN INTEGER, REAL, AND/ 1 16X,23HDOUBLE PRECISION VALUES/2X,29HASA REFS. - 7.1.1.1. 5.1.1. 22/2X,7HRESULTS/) C***** TEST ASSIGNMENT OF INTEGER VARIABLES TABLE 1/LN 5,9 JACVI = 1 IAC1I(3) = +111 IAC2I(2,3) = -1111 MCA3I(2,1,2) = -1111111 ACVS = IAC1I(3) A1S(2) = IAC2I(2,3) A2S(2,1) = MCA3I(2,1,2) A3S(2,1,2) = JACVI DPAVD = MCA3I(2,1,2) AC1D(7) = JACVI BC2D(7,4) = IAC1I(3) CC3D(5,1,2) = IAC2I(2,3) WRITE (NUVI,171) 171 FORMAT (/2X,24HASSIGN INTEGER VARIABLES//3X, 21H1 - TO 1REAL VARIABLES) WRITE (NUVI,172)ACVS,A1S(2),A2S(2,1),A3S(2,1,2),DPAVD,AC1D(7),BC2D 1(7,4),CC3D(5,1,2) 172 FORMAT(/8X,8H 111.0 */F14.1// 1 7X,9H-1111.0 */F14.1// 2 4X,12H-1111111.0 */F14.1// 3 11X,5H1.0 */F14.1//3X,33H2 - TO DOUBLE PRECISION VARIABLES 4 //4X,16H-0.1111111D 07 */D18.7// 5 11X,9H0.1D 01 */D18.1// 6 9X,11H0.111D 03 */D18.3// 7 7X,13H-0.1111D 04 */D18.4/) C***** TEST ASSIGNMENT OF INTEGER CONSTANTS ACVS = -2222 A1S(2) = +222 A2S(2,1) = -2222222 A3S(2,1,2) = 2 DPAVD = 2 AC1D(7) = -2222222 BC2D(7,4) = -2222 CC3D(5,1,2) = +222 WRITE (NUVI,173) 173 FORMAT (/2X,24HASSIGN INTEGER CONSTANTS//3X, 21H1 - TO R 1EAL VARIABLES) WRITE (NUVI,174)ACVS,A1S(2),A2S(2,1),A3S(2,1,2),DPAVD,AC1D(7),BC2D 1(7,4),CC3D(5,1,2) 174 FORMAT(/6X,9H-2222.0 */F13.1// 1 8X,7H222.0 */F13.1// 2 3X,12H-2222222.0 */F13.1// 3 10X,5H2.0 */F13.1/ 35H1 2 - TO DOUBLE PRECISION VARIABLES/ 4 /12X,9H0.2D 01 */D19.1// 5 5X,16H-0.2222222D 07 */D19.7// 6 8X,13H-0.2222D 04 */D19.4// 7 10X,11H0.222D 03 */D19.3/) C***** TEST ASSIGNMENT OF BASIC REAL CONSTANTS TABLE 1/LN 2,10 JACVI = 3.3 IAC1I(3) = +333.3E-2 IAC2I(2,3) = .3333E+1 MCA3I(2,1,2) = -.0033333E3 DPAVD = +3.3333 AC1D(7) = .3333333E1 BC2D(7,4) = -333.3333E-2 CC3D(5,1,2) = -.0333333E+2 WRITE (NUVI,7173) 7173 FORMAT (/2X,27HASSIGN BASIC REAL CONSTANTS//3X, 24H1 - 1TO INTEGER VARIABLES) WRITE(NUVI,7172)JACVI,IAC1I(3),IAC2I(2,3),MCA3I(2,1,2),DPAVD,AC1D( 17),BC2D(7,4),CC3D(5,1,2) 7172 FORMAT(/9X,3H3 */3(I10/)/8X,4H-3 */I10//3X,33H2 - TO DOUBLE PRECIS 1ION VARIABLES// 2 8X,13H0.33333D 01 */D19.5// 3 6X,15H0.3333333D 01 */D19.7// 4 5X,16H-0.3333333D 01 */D19.7// 5 6X,15H-0.333333D 01 */D19.6/) C***** TEST ASSIGNMENT OF REAL VARIABLES ACVS = +.0044444E4 A1S(2) = -4444.E-2 A2S(2,1) = -44.4 A3S(2,1,2) = 4.4444E+1 JACVI = A2S(2,1) IAC1I(3) = A1S(2) IAC2I(2,3) = A3S(2,1,2) MCA3I(2,1,2) = ACVS DPAVD = A2S(2,1) AC1D(7) = A1S(2) BC2D(7,4) = A3S(2,1,2) CC3D(5,1,2) = ACVS WRITE (NUVI,175) 175 FORMAT (/23H ASSIGN REAL VARIABLES// 27H 1 - TO INTEG 1ER VARIABLES) WRITE (NUVI,176)JACVI,IAC1I(3),IAC2I(2,3),MCA3I(2,1,2),DPAVD,AC1D( 17),BC2D(7,4),CC3D(5,1,2) 176 FORMAT( /7X,5H-44 */2(I10/)/8X,4H44 */2(I10/), 35H1 2 - TO DOUBL 1E PRECISION VARIABLES// 2 6X,12H-0.444D 02 */D16.3// 3 5X,13H-0.4444D 02 */D16.4// 4 5X,13H0.44444D 02 */D16.5// 5 5X,13H0.44444D 02 */D16.5/) C***** TEST ASSIGNMENT OF D.P. VARIABLES TABLE 1/LN 3,6 DPAVD=55555.5 AC1D(7) = +55555555555555.D-13 BC2D(7,4) = -.00000555555555D6 CC3D(5,1,2) = -.05555555555555D+2 JACVI = DPAVD IAC1I(3) = AC1D(7) IAC2I(2,3) = BC2D(7,4) MCA3I(2,1,2) = CC3D(5,1,2) ACVS = CC3D(5,1,2) A1S(2) = BC2D(7,4) A2S(2,1) = AC1D(7) A3S(2,1,2) = DPAVD WRITE (NUVI,177) 177 FORMAT (/2X,33HASSIGN DOUBLE PRECISION VARIABLES/ 1/3X,24H1 - TO INTEGER VARIABLES) WRITE (NUVI,178)JACVI,IAC1I(3),IAC2I(2,3),MCA3I(2,1,2),ACVS,A1S(2) 1,A2S(2,1),A3S(2,1,2) 178 FORMAT(/3X,9H 55555 */I10//9X,3H5 */I10//8X,4H-5 */2(I10/)/3X,21H 12 - TO REAL VARIABLES// 2 3X,16H-0.5555556E 01 */E17.7// 3 3X,16H-0.5555556E 01 */E17.7// 4 3X,16H 0.5555556E 01 */E17.7// 5 3X,16H 0.555555E 05 */E17.6/) C***** TEST ASSIGNMENT OF DOUBLE PRECISION CONSTANTS JACVI = 66666.D-4 IAC1I(3) = -.00000066666666D7 IAC2I(2,3) = -.06666666666666D+2 MCA3I(2,1,2)=66666.666666666 ACVS = 66666666666666. A1S(2) = +66666.D-4 A2S(2,1) = -.00000006666666D8 A3S(2,1,2) = -.06666666666666D+2 WRITE (NUVI,179) 179 FORMAT ( 35H1 ASSIGN DOUBLE PRECISION CONSTANTS/ 1/3X,24H1 - TO INTEGER VARIABLES) WRITE(NUVI,7170)JACVI,IAC1I(3),IAC2I(2,3),MCA3I(2,1,2),ACVS,A1S(2) 1,A2S(2,1),A3S(2,1,2) 7170 FORMAT( / 9X,3H6 */I10//8X,4H-6 */2(I10/)/3X,9H 66666 */I10// 1 3X,21H2 - TO REAL VARIABLES// 2 3X,16H 0.6666667E 14 */E17.7// 3 3X,16H 0.66666E 01 */E17.5// 4 3X,16H-0.6666666E 01 */E17.7// 5 3X,16H-0.6666667E 01 */E17.7/) WRITE (NUVI,7171) 7171 FORMAT(//34H ALL TEST OUTPUT SHOULD BE CHECKED/ 1 34H AGAINST THE ASTERISKED (*) FIGURE/ 2 18H WHICH PRECEDES IT) C***** END OF TEST SEGMENT 017 C***** C***** WHEN EXECUTING ONLY SEGMENT 017, THE STOP AND END C***** CARDS WHICH APPEAR AS COMMENTS MUST HAVE THE C= C***** IN COL 1 AND 2 REMOVED. C***** C= STOP C= END C*********************************************************************** C***** C***** UGOTO - (020) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST UNCONDITIONAL GO TO STATEMENTS 7.1.2.1.1 C***** RESTRICTION OBSERVED C***** GO TO STATEMENTS CAUSE BRANCHES ONLY TO 7.1.2 /54 C***** EXECUTABLE STATEMENTS C***** GENERAL COMMENTS C***** GO TO STATEMENTS ALSO TESTED IN SEGMENT 193 C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 020, THE STATEMENT NUVI = 6 C***** MUST HAVE THE C= IN COL 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,200) 200 FORMAT (1H1,1X,33HUGOTO - (020) UNCONDITIONAL GO TO/16X, 19HSTATEMENT//2X, 2 21HASA REFS. - 7.1.2.1.1//2X,7HRESULTS) C***** HEADER FOR SEGMENT 020 WRITTEN C***** TEST BRANCH FORWARD GO TO 201 203 MRRVI = 3 WRITE (NUVI,7200) MRRVI 7200 FORMAT (/4X,I1) GO TO 204 207 MRRVI = 7 WRITE (NUVI,7200) MRRVI GO TO 208 202 MRRVI = 2 WRITE (NUVI,7200) MRRVI C***** TEST BRANCH BACKWARD GO TO 203 201 MRRVI = 1 WRITE (NUVI,7200) MRRVI GO TO 202 208 MRRVI = 8 WRITE (NUVI,7200) MRRVI GO TO 209 206 MRRVI = 6 WRITE (NUVI,7200) MRRVI GO TO 207 204 MRRVI = 4 WRITE (NUVI,7200) MRRVI C***** TEST BRANCH TO STATEMENT IMMEDIATELY AFTER C***** UNCONDITIONAL GO TO GO TO 205 205 MRRVI = 5 WRITE (NUVI,7200) MRRVI GO TO 206 209 WRITE (NUVI,7201) 7201 FORMAT (//2X,35HTHIS TEST IS SUCCESSFUL ONLY IF THE/ 12X,37HNUMBERS LISTED ABOVE ARE SEQUENTIALLY/ 22X,20HIN ORDER FROM 1 TO 8) C***** END OF TEST SEGMENT 020 C***** C***** WHEN EXECUTING ONLY SEGMENT 020, THE STOP AND END C***** CARDS, WHICH APPEAR AS COMMENTS, MUST HAVE THE C= C***** IN COL 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** AGOTO - (021) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST GO TO ASSIGNMENT STATEMENTS 7.1.1.3 C***** AND ASSIGNED GO TO STATEMENTS 7.1.2.1.2 C***** RESTRICTIONS OBSERVED C***** INTEGER VARIABLE USED IN ASSIGN STATEMENTS 7.1.1.3 /06 C***** IS NEVER REFERENCED ELSEWHERE IN THIS SEGMENT 10.2.3 /12 C***** ASSIGNED GO TO STATEMENTS CAUSE BRANCHES ONLY 7.1.1.3 /03 C***** TO EXECUTABLE STATEMENTS 7.1.2 /54 C***** INTEGER VARIABLE ALWAYS CONTAINS STATEMENT 7.1.2.1.2/20 C***** LABEL FROM THE ASSIGNED GO TO LIST C***** GENERAL COMMENTS C***** IGVI AND KGVI ARE IMPLICITLY DEFINED 5.3 /07 C***** GTVI IS EXPLICITLY DEFINED 7.2.1.6 /55 C***** ASSIGN AND ASSIGNED GO TO ALSO TESTED IN C***** SEGMENT 190 C***** C***** S P E C I F I C A T I O N S SEGMENT 021 C***** C***** WHEN EXECUTING ONLY SEGMENT 021, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS, MUST HAVE THE C= IN COL C***** 1 AND 2 REMOVED C= INTEGER GTVI C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 021, THE STATEMENT NUVI = 6 C***** MUST HAVE THE C= IN COL 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,210) 210 FORMAT (1H1,1X,33HAGOTO - (021) ASSIGN AND ASSIGNED/16X, 15HGO TO//2X, 231HASA REFS. - 7.1.1.3 AND 7.1.2.1//2X,7HRESULTS) C***** HEADER FOR SEGMENT 021 WRITTEN C***** TEST FORWARD BRANCHING GO TO WITH ONLY ONE C***** LABEL IN THE BRANCH LIST ASSIGN 211 TO IGVI GO TO IGVI, (211) C***** TEST FORWARD BRANCHING GO TO WHICH BRANCHES C***** TO IMMEDIATELY FOLLOWING STATEMENT 212 MRRVI = 2 WRITE (NUVI,8212) MRRVI ASSIGN 213 TO GTVI GO TO GTVI, (213) C***** TEST FORWARD BRANCHING GO TO WHERE ALL BRANCHES C***** ARE IDENTICAL 213 MRRVI = 3 WRITE (NUVI,8212) MRRVI ASSIGN 214 TO GTVI GO TO GTVI, (214,214,214) C***** TEST FORWARD BRANCHING GO TO WITH SEVERAL UNIQUE C***** BRANCHES IN THE LIST 215 MRRVI = 5 WRITE (NUVI,8212) MRRVI ASSIGN 217 TO KGVI ASSIGN 216 TO IGVI GO TO IGVI, (217,218,216,219) C***** TEST BACKWARD BRANCHING GO TO WHERE BRANCHES C***** ARE IDENTICAL 214 MRRVI = 4 WRITE (NUVI,8212) MRRVI ASSIGN 215 TO IGVI GO TO IGVI, (215,215) C***** TEST BACKWARD BRANCHING GO TO WITH ONLY ONE LABEL C***** IN THE BRANCH LIST 211 MRRVI = 1 WRITE (NUVI,8212) MRRVI ASSIGN 212 TO GTVI GO TO GTVI, (212) C***** IN THE FIRST PART OF THIS TEST, ALL GO TO STATEMENTS C***** WERE EXECUTED ONLY ONCE, IMMEDIATELY AFTER THE C***** INTEGER VARIABLE WAS DEFINED. ALL GO TO STATEMENTS C***** WHICH FOLLOW WILL BE EXECUTED MORE THAN ONCE. C***** VALUE OF IGVI IS ALWAYS 8216 IN THIS PART OF THE C***** TEST UNTIL FINAL MESSAGE IS TO BE WRITTEN 216 MRRVI = 6 WRITE (NUVI,8212) MRRVI ASSIGN 8216 TO IGVI 8216 GO TO KGVI, (217,219,7210,7214,8210) 217 MRRVI = 7 ASSIGN 218 TO GTVI GO TO 8211 218 MRRVI = 8 ASSIGN 219 TO KGVI GO TO 8213 219 MRRVI = 9 ASSIGN 7210 TO KGVI GO TO 8213 7210 MRRVI = 10 ASSIGN 7211 TO GTVI GO TO 8211 7211 MRRVI = 11 ASSIGN 7212 TO GTVI GO TO 8211 7212 MRRVI = 12 ASSIGN 7213 TO GTVI GO TO 8211 7213 MRRVI = 13 ASSIGN 7214 TO KGVI GO TO 8213 7214 MRRVI = 14 ASSIGN 7215 TO GTVI GO TO 8211 7215 MRRVI = 15 ASSIGN 7216 TO GTVI GO TO 8211 7216 MRRVI = 16 ASSIGN 7217 TO GTVI GO TO 8211 7217 MRRVI = 17 ASSIGN 7218 TO GTVI GO TO 8211 7218 MRRVI = 18 ASSIGN 7219 TO GTVI GO TO 8211 7219 MRRVI = 19 ASSIGN 8210 TO KGVI GO TO 8213 8210 MRRVI = 20 ASSIGN 8214 TO IGVI GO TO 8213 8211 WRITE (NUVI,8212) MRRVI 8212 FORMAT (/6X,I2) C***** TEST GO TO WITH CONTINUATION CARD GO TO GTVI, (218, 7211, 7212, 7213, 7215, 7216, 7217, 7218, 1 7219) 8213 WRITE (NUVI,8212) MRRVI GO TO IGVI, (8216,8214) 8214 WRITE (NUVI,8215) 8215 FORMAT (1H0,2X,35HTHIS TEST IS SUCCESSFUL ONLY IF THE/ 12X,37HNUMBERS LISTED ABOVE ARE SEQUENTIALLY/ 22X,21HIN ORDER FROM 1 TO 20) C***** END OF TEST SEGMENT 021 C***** C***** WHEN EXECUTING ONLY SEGMENT 021, THE STOP AND END C***** CARDS, WHICH APPEAR AS COMMENTS, MUST HAVE THE C= C***** IN COL 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** CGOTO - (022) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST COMPUTED GO TO STATEMENTS 7.1.2.1.3 C***** RESTRICTIONS OBSERVED C***** VALUE OF INTEGER VARIABLE IS NEVER LESS THAN 1 7.1.2.1.3/33 C***** AND NEVER LARGER THAN THE NUMBER OF BRANCHES C***** INTEGER VARIABLES USED IN COMPUTED GO TO STMNTS. 10.2.8 /09 C***** ARE NOT EQUATED TO AVOID SECOND LEVEL 10.3 /13 C***** DEFINITION PROBLEMS C***** GENERAL COMMENTS C***** IGVI AND KGVI ARE IMPLICITLY DEFINED 5.3 /07 C***** GTVI IS EXPLICITLY DEFINED 7.2.1.6 /55 C***** COMPUTED GO TO ALSO TESTED IN SEGMENT 162 C***** C***** S P E C I F I C A T I O N S SEGMENT 022 C***** C***** WHEN EXECUTING ONLY SEGMENT 022, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS, MUST HAVE THE C= IN COL C***** 1 AND 2 REMOVED C***** C= INTEGER GTVI C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 022, THE STATEMENT NUVI = 6 C***** MUST HAVE THE C= IN COL 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,220) 220 FORMAT (1H1,1X,28HCGOTO - (022) COMPUTED GO TO//2X, 120HASA REF. - 7.1.2.1.3//2X,7HRESULTS) C***** HEADER FOR SEGMENT 022 WRITTEN C***** TEST FORWARD BRANCHING GO TO WITH ONLY ONE C***** LABEL IN BRANCH LIST IGVI = 1 GO TO (221), IGVI C***** TEST FORWARD BRANCHING GO TO WHICH BRANCHES C***** TO IMMEDIATELY FOLLOWING STATEMENT 222 MRRVI = 2 WRITE (NUVI,8222) MRRVI GO TO (223), GTVI C***** C***** TEST FORWARD BRANCHING GO TO WHERE SOME BRANCHES C***** ARE IDENTICAL 223 MRRVI = 3 WRITE (NUVI,8222) MRRVI GTVI = 2 GO TO (225,224,225), GTVI C***** TEST FORWARD BRANCHING GO TO WITH SEVERAL UNIQUE C***** BRANCHES IN LIST 225 MRRVI = 5 WRITE (NUVI,8222) MRRVI KGVI = 1 IGVI = 3 GO TO (227,228,226,229), IGVI C***** TEST BACKWARD BRANCHING GO TO WHERE SOME C***** BRANCHES ARE IDENTICAL 224 MRRVI = 4 WRITE (NUVI,8222) MRRVI IGVI = 4 GO TO (226,226,226,225), IGVI C***** TEST BACKWARD BRANCHING GO TO WITH ONLY ONE C***** LABEL IN BRANCH LIST 221 MRRVI = 1 WRITE (NUVI, 8222) MRRVI GTVI = 1 GO TO (222), GTVI C***** IN THE FIRST PART OF THIS TEST, ALL GO TO STATEMENTS C***** WERE EXECUTED ONLY ONCE, IMMEDIATELY AFTER THE C***** INTEGER VARIABLE WAS DEFINED. ALL GO TO STATEMENTS C***** WHICH FOLLOW WILL BE EXECUTED MORE THAN ONCE. C***** VALUE OF IGVI IS ALWAYS 1 IN THIS PART OF THE TEST C***** UNTIL THE FINAL MESSAGE IS TO BE WRITTEN 226 MRRVI = 6 IGVI = 1 WRITE (NUVI,8222) MRRVI 8226 GO TO (227,229,7220,7224,8220), KGVI 227 MRRVI = 7 GTVI = 1 GO TO 8221 228 MRRVI = 8 KGVI = 2 GO TO 8223 229 MRRVI = 9 KGVI = 3 GO TO 8223 7220 MRRVI = 10 GTVI = 2 GO TO 8221 7221 MRRVI = 11 GTVI = 5 GO TO 8221 7222 MRRVI = 12 GTVI = 4 GO TO 8221 7223 MRRVI = 13 KGVI = 4 GO TO 8223 7224 MRRVI = 14 GTVI = 6 GO TO 8221 7225 MRRVI = 15 GTVI = 7 GO TO 8221 7226 MRRVI = 16 GTVI = 9 GO TO 8221 7227 MRRVI = 17 GTVI = 8 GO TO 8221 7228 MRRVI = 18 GTVI = 3 GO TO 8221 7229 MRRVI = 19 KGVI = 5 GO TO 8223 8220 MRRVI = 20 IGVI = 2 GO TO 8223 8221 WRITE (NUVI,8222) MRRVI 8222 FORMAT(/6X,I2) C***** TEST GO TO STATEMENT WITH CONTINUATION LINE GO TO (228, 7221, 7229, 7223, 7222, 7225, 7226, 7228, 1 7227), GTVI 8223 WRITE (NUVI,8222) MRRVI GO TO (8226,8224), IGVI 8224 WRITE (NUVI,8225) 8225 FORMAT (1H0,2X,35HTHIS TEST IS SUCCESSFUL ONLY IF THE/ 12X,37HNUMBERS LISTED ABOVE ARE SEQUENTIALLY/ 22X,21HIN ORDER FROM 1 TO 20) C***** END OF TEST SEGMENT 022 C***** C***** WHEN EXECUTING ONLY SEGMENT 022, THE STOP AND END C***** CARDS, WHICH APPEAR AS COMMENTS, MUST HAVE THE C= C***** IN COL 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** ARBAD - (030) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST THAT EXPRESSIONS INVOLVING THE ADDITION 6.1 C***** OF INTEGER OR REAL VALUES MAY BE FORMED C***** GENERAL COMMENTS C***** TYPES ARE NEVER MIXED. C***** VARIABLES, ARRAY ELEMENTS AND CONSTANTS ARE USED C***** IN A VARIETY OF COMBINATIONS. C***** C***** S P E C I F I C A T I O N S SEGMENT 030 C***** C***** WHEN EXECUTING ONLY SEGMENT 030, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS, MUST HAVE THE C= IN COL C***** 1 AND 2 REMOVED C***** C= DIMENSION A1S(5),A2S(2,2),IAC1I(5),IAC2I(2,7) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 030, THE STATEMENT NUVI = 6 C***** MUST HAVE THE C= IN COL 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,301) 301 FORMAT (1H1,1X,28HARBAD - (030) BASIC ADDITION//2X, -14HASA REF. - 6.1//2X,7HRESULTS) C***** HEADER FOR SEGMENT 030 WRITTEN WRITE (NUVI,302) 302 FORMAT (//2X,16HINTEGER ADDITION) C***** TEST 1 - ADD 2 INTEGER VARIABLES (ONE CONTAINS MINUS VALUE) MRRVI=1 JACVI=2 KBCVI = -2 IHDVI=JACVI+KBCVI WRITE (NUVI,303) MRRVI, IHDVI 303 FORMAT (/6H TEST,I3,I6) C***** TEST 2 - REVERSE VARIABLES IN TEST 1 MRRVI = 2 IGDVI=KBCVI+JACVI WRITE (NUVI,303) MRRVI, IGDVI C***** TEST 3 - ADD 2 CONSTANTS MRRVI = 3 IAC1I(1) = 2+(-2) WRITE (NUVI,303) MRRVI, IAC1I(1) C***** TEST 4 - ADD 2 ARRAY ELEMENTS (ONE CONTAINS MINUS VALUE) MRRVI = 4 IAC1I(3) = 3 IAC2I(1,3) = - 3 IAC2I(2,2) = IAC1I(3)+IAC2I(1,3) WRITE (NUVI,303) MRRVI, IAC2I(2,2) C***** TEST 5 - ADD 8 INTEGER VARIABLES MRRVI = 5 LCCVI = -6 MDCVI=-2 NECVI = +18 IFDVI = JACVI+KBCVI+LCCVI+MDCVI+MDCVI+LCCVI+KBCVI+NECVI WRITE (NUVI,303) MRRVI, IFDVI C***** TEST 6 - ADD COMBINATION OF VARIABLES, ARRAY ELEMENTS C***** AND CONSTANTS MRRVI = 6 IAC2I(2,2) = -2 IFDVI = IAC1I(3)+IAC2I(1,3)+IAC2I(2,2)+JACVI+KBCVI+LCCVI+7+1 WRITE (NUVI,303) MRRVI, IFDVI C***** TEST 7 - ADD 2 REAL VARIABLES WRITE (NUVI,304) 304 FORMAT (//15H REAL ADDITION) MRRVI = 7 ACVS = -2.0 BCVS = 2.0E0 HHCVS = ACVS+BCVS WRITE (NUVI,305) MRRVI, HHCVS 305 FORMAT (/6H TEST,I3,F7.1) C***** TEST 8 - REVERSE ORDER OF VARIABLES IN TEST 7 MRRVI = 8 GGCVS = BCVS + ACVS WRITE (NUVI,305) MRRVI, GGCVS C***** TEST 9 - ADD 4 REAL VARIABLES MRRVI = 9 FFCVS = ACVS + BCVS + ACVS + BCVS WRITE (NUVI,305) MRRVI, FFCVS C***** TEST 10 - ADD 2 REAL CONSTANTS MRRVI = 10 A2S(1,2) = 3.5 + (-3.5) WRITE (NUVI,305) MRRVI, A2S(1,2) C***** TEST 11 - ADD REAL ARRAY ELEMENTS MRRVI = 11 A1S(1) = -25.E-1 ACVS = 2.5 A2S (1,1) = -7.0 FFCVS = A1S(1) + A2S(1,1) + 9.5 WRITE ( NUVI,305) MRRVI, FFCVS C***** TEST 12 - ADD COMBINATION OF VARIABLES, ARRAY ELEMENTS C***** AND CONSTANTS MRRVI = 12 FFCVS = A1S(1) + ACVS + 7.0 + A2S(1,1) WRITE (NUVI,305) MRRVI, FFCVS WRITE (NUVI,306) 306 FORMAT (//35H ALL ABOVE ANSWERS SHOULD BE 0 FOR/ 1 31H THIS SEGMENT TO BE SUCCESSFUL) C***** END OF TEST SEGMENT 030 C***** C***** WHEN EXECUTING ONLY SEGMENT 030, THE STOP AND END C***** CARDS, WHICH APPEAR AS COMMENTS, MUST HAVE THE C= C***** IN COL 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** ARFAD - (031) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST THAT EXPRESSIONS INVOLVING THE ADDITION OF 6.1 C***** DOUBLE PRECISION VALUES MAY BE FORMED C***** GENERAL COMMENTS C***** VARIABLES, ARRAY ELEMENTS AND CONSTANTS ARE USED IN A C***** VARIETY OF COMBINATIONS C***** C***** S P E C I F I C A T I O N S SEGMENT 031 C***** C***** WHEN EXECUTING ONLY SEGMENT 031, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS, MUST HAVE THE C= IN COL C***** 1 AND 2 REMOVED C***** C= DOUBLE PRECISION ACVD,BCVD,FFCVD,GGCVD,HHCVD C= 1,EP1D(43),BC2D(7,4),CC3D(7,2,2) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 031, THE STATEMENT NUVI = 6 C***** MUST HAVE THE C= IN COL 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,310) 310 FORMAT (1H1,1X,27HARFAD - (031) D.P. ADDITION// -16H ASA REF. - 6.1//9H RESULTS) C***** HEADER FOR SEGMENT 031 WRITTEN ACVD = -.01414213562373095D2 BCVD = 14.14213562373095D-1 EP1D(20) = -4.12310562561766D0 BC2D(6,3) = .206155281280883D1 HHCVD=ACVD+BCVD GGCVD=BCVD+ACVD EP1D(34) = .003D3 + (-300.0D-2) FFCVD = BCVD+ACVD+ACVD+BCVD CC3D(7,1,1)=EP1D(20)+BC2D(6,3)+206.155281280883D-2 +41.23105625617 166D-1 + EP1D(20) WRITE (NUVI,312) HHCVD, GGCVD, FFCVD, EP1D(34), CC3D(7,1,1) 312 FORMAT (//5(D22.10//)//38H THE 5 ANSWERS ABOVE SHOULD BE 0 PLUS/ 137H OR MINUS AN ERROR FACTOR OF 0.1D-13) C***** END OF TEST SEGMENT 031 C***** C***** WHEN EXECUTING ONLY SEGMENT 031, THE STOP AND END C***** CARDS, WHICH APPEAR AS COMMENTS, MUST HAVE THE C= C***** IN COL 1 AND 2 REMOVED. C= END C= STOP C*********************************************************************** C***** C***** ARBSB - (032) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST THAT EXPRESSIONS INVOLVING THE SUBTRACTION OF 6.1 C***** INTEGER OR REAL VALUES MAY BE FORMED C***** GENERAL COMMENTS C***** TYPES ARE NEVER MIXED C***** VARIABLES, ARRAY ELEMENTS AND CONSTANTS ARE USED IN A C***** VARIETY OF COMBINATIONS. C***** S P E C I F I C A T I O N S SEGMENT 032 C***** C***** WHEN EXECUTING ONLY SEGMENT 032, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS, MUST HAVE THE C= IN COL C***** 1 AND 2 REMOVED C***** C= DIMENSION A1S(5),A2S(2,2),IAC1I(5),IAC2I(2,7) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 032, THE STATEMENT NUVI = 6 C***** MUST HAVE THE C= IN COL 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,320) 320 FORMAT (1H1,1X,31HARBSB - (032) BASIC SUBTRACTION// 1 17H ASA REFS. - 6.1//2X,7HRESULTS) C***** HEADER FOR SEGMENT 032 WRITTEN MRRVI = 1 WRITE (NUVI,321)MRRVI 321 FORMAT (//2X,4HTEST,I1,1X,19HINTEGER SUBTRACTION) JACVI=3 IAC1I(1)=3 IHDVI=JACVI-IAC1I(1) IGDVI=IAC1I(1)-JACVI IFDVI=JACVI-IAC1I(1)-IAC1I(1)+JACVI IAC2I(2,3) = 3-2-1 IAC2I(1,1) = 6 - JACVI - IAC1I(1) WRITE (NUVI,323) IHDVI,IGDVI, IFDVI, IAC2I(2,3), IAC2I(1,1) 323 FORMAT (/5(I11/)) MRRVI = 2 328 WRITE (NUVI,329)MRRVI 329 FORMAT (//2X,4HTEST,I1,1X,16HREAL SUBTRACTION) ACVS=5.1E1 BCVS=.51E2 HHCVS=ACVS-BCVS GGCVS=BCVS-ACVS FFCVS=ACVS-BCVS+BCVS-ACVS A2S(1,2) = 2.1E1 A1S(1) = ACVS - A2S(1,2) - 30.0 WRITE (NUVI,324) HHCVS, GGCVS, FFCVS, A1S(1) 324 FORMAT (/4(F11.1/)/34H ALL ABOVE ANSWERS SHOULD BE 0 FOR/ 1 31H THIS SEGMENT TO BE SUCCESSFUL) C***** END OF TEST SEGMENT 032 C***** C***** WHEN EXECUTING ONLY SEGMENT 032, THE STOP AND END C***** CARDS, WHICH APPEAR AS COMMENTS, MUST HAVE THE C= C***** IN COL 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** ARFSB - (033) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST THAT EXPRESSIONS INVOLVING THE SUBTRACTION OF 6.1 C***** DOUBLE PRECISION VALUES MAY BE FORMED C***** GENERAL COMMENTS C***** VARIABLES, ARRAY ELEMENTS AND CONSTANTS ARE USED IN A C***** VARIETY OF COMBINATIONS C***** C***** S P E C I F I C A T I O N S SEGMENT 033 C***** C***** WHEN EXECUTING ONLY SEGMENT 033, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS, MUST HAVE THE C= IN COL C***** 1 AND 2 REMOVED C***** C= DOUBLE PRECISION ACVD,BCVD,CCVD,DCVD,GGCVD,HHCVD,DPCVD,FFCVD C= 1,AC1D(10),A2D(2,2),A3D(2,2,2) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 033, THE STATEMENT NUVI = 6 C***** MUST HAVE THE C= IN COL 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,330) 330 FORMAT (1H1,1X,30HARFSB - (033) D.P. SUBTRACTION// -16H ASA REF. - 6.1//2X,7HRESULTS) C***** HEADER FOR SEGMENT 033 WRITTEN ACVD=1.0D2 BCVD=.3D1 CCVD=15.D0 AC1D(1) = 60.D-1 A2D(1,1) = -.02D2 A3D(1,2,1) = 4000.D-3 C***** TWO TERM SUBTRACTION HHCVD= ACVD-BCVD HHCVD= HHCVD-97.0D0 GGCVD=1.0D0-AC1D(1) GGCVD=GGCVD+5.0D0 DCVD = 4.0D0 - A3D(1,2,1) WRITE (NUVI,331) HHCVD, GGCVD, DCVD C***** THREE TERM SUBTRACTION HHCVD= ACVD-BCVD-97.0D0 GGCVD = 16.0D0 - CCVD - 1.0D0 DCVD = A3D(1,2,1)-A2D(1,1) -6.0D0 WRITE (NUVI,331) HHCVD, GGCVD, DCVD C***** FOUR TERM SUBTRACTION DPCVD = 6.85565460040104D0 FFCVD = (+.342782730020052D1) GGCVD = DPCVD - FFCVD - 42.782730020052D-2 - 300D-2 HHCVD=ACVD-AC1D(1)-AC1D(1)-8.8D1 DCVD = CCVD - A2D(1,1) - 110.D-1 - AC1D(1) WRITE (NUVI,332) HHCVD, DCVD , GGCVD 331 FORMAT (//3(D22.10/)) 332 FORMAT (//3(D22.10/)//36H THE ANSWERS ABOVE SHOULD BE 0 PLUS/ 137H OR MINUS AN ERROR FACTOR OF 0.1D-13) C***** END OF TEST SEGMENT 033 C***** C***** WHEN EXECUTING ONLY SEGMENT 033, THE STOP AND END C***** CARDS, WHICH APPEAR AS COMMENTS, MUST HAVE THE C= C***** IN COL 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** ARBAS - (034) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST THAT EXPRESSIONS INVOLVING THE ADDITION AND 6.1 C***** SUBTRACTION (COMBINED) OF INTEGER OR REAL VALUES MAY BE C***** FORMED. C***** GENERAL COMMENTS C***** TYPES ARE NEVER MIXED. C***** VARIABLES, ARRAY ELEMENTS AND CONSTANTS ARE USED IN C***** A VARIETY OF COMBINATIONS. C***** C***** S P E C I F I C A T I O N S SEGMENT 034 C***** C***** WHEN EXECUTING ONLY SEGMENT 034, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS, MUST HAVE THE C= IN COL C***** 1 AND 2 REMOVED C***** C= DIMENSION A2S(2,2),A3S(3,3,3) C= 1,IAC1I(5),IAC2I(2,7),AC1S(25) C= INTEGER MCA3I(2,3,3) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 034, THE STATEMENT NUVI = 6 C***** MUST HAVE THE C= IN COL 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,340) 340 FORMAT (1H1,1X,32HARBAS - (034) BASIC ADDITION AND/14X, 113H SUBTRACTION//16H ASA REF. - 6.4// 22X,7HRESULTS) C***** HEADER FOR SEGMENT 034 WRITTEN WRITE (NUVI,341) 341 FORMAT (//2X,26HTEST1 INTEGER ADD AND SUBT) JACVI = 5 KBCVI = 1 LCCVI = 10 MDCVI = -2 IAC1I(2) = 3 IAC2I(2,2) = -3 IHDVI = JACVI+KBCVI-LCCVI+MDCVI-IAC1I(2)+9 IGDVI = (JACVI+KBCVI) - (MDCVI-IAC1I(2)) - 11 IFDVI =(6 + (KBCVI - (LCCVI+MDCVI))) + 1 MCA3I(1,1,1) = IAC2I(2,2) - JACVI - MDCVI - KBCVI + 7 + 0 WRITE (NUVI,342) IHDVI,IGDVI, IFDVI, MCA3I(1,1,1) 342 FORMAT (/4(I11/)) C***** HEADER FOR TEST2 WRITE (NUVI,344) 344 FORMAT (/2X,24HTEST2 REAL ADD AND SUBTR) ACVS = 5.0 BCVS = 1.0 CCVS = 10.0 DCVS = -.2E+1 AC1S(1) = 30.E-1 A2S (2,1) = 6.0 HHDVS= ACVS + BCVS - CCVS + DCVS +9.0-AC1S(1) GGDVS= (ACVS + 1.0) -11.0 - ( DCVS-AC1S(1)) FFDVS= (6.0 + (BCVS-(CCVS+DCVS))) + 1.0 A3S(1,1,2) = A2S(2,1) - CCVS + 8.0 - 4.0 WRITE (NUVI,343) HHDVS, GGDVS, FFDVS, A3S(1,1,2) 343 FORMAT (//4(F11.1/)/35H ALL ABOVE ANSWERS SHOULD BE 0 FOR/ 1 31H THIS SEGMENT TO BE SUCCESSFUL) C***** END OF TEST SEGMENT 034 C***** C***** WHEN EXECUTING ONLY SEGMENT 034, THE STOP AND END C***** CARDS WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END STOP END nbs04.d 480890332 170 2 100666 302 ` SAMPLE COMPUTER, FORTRAN COMPILER LEVEL DO NOT READ OR WRITE RECORD 2 . DOUBLE SPACE ON OUTPUT. ID 2 OPERATING SYSTEM VERSION DO NOT READ OR WRITE RECORD 4 . DOUBLE SPACE ON OUTPUT ID 4 DATE, INSTALLATION NAME DO NOT READ OR WRITE RECORD 6 DOUBLE SPACE ON OUTPUT ID 6 nbs04.f 480887319 170 2 100666 41989 ` C***** PART4 ***************************************************** C***** C***** ANSI FORTRAN (X3.9-1966) TEST PROGRAMS C***** C***** PREPARED BY THE NATIONAL BUREAU OF STANDARDS VERSION 3 C***** C***** JUNE 1973 C***** C***** PART 4 OF 14 PARTS C***** C***** SEGMENTS INCLUDED C***** C***** ARFAS - 035 ADDITION AND SUBTRACTION OF DP VALUES C***** C***** ARBMI - 036 MULTIPLICATION OF INTEGER VALUES C***** C***** ARBMR - 037 MULTIPLICATION OF REAL VALUES C***** C***** ARFMD - 038 MULTIPLICATION OF DOUBLE PRECISION VALUES C***** C***** ARBDV - 039 DIVISION OF INTEGER AND REAL VALUES C***** C***** ARFDV - 040 DIVISION OF DOUBLE PRECISION VALUES C***** C***** ARBEX - 041 EXPONENTIATION OF INTEGER AND REAL VALUES C***** C***** ARFEX - 042 EXPONENTIATION OF DOUBLE PRECISION VALUES C***** C***** ARBHI - 043 HIERARCHY OF OPERATORS AND PARENTHESES C***** C***** SBB67 - 050 SUBSCRIPTS OF INTEGER AND REAL ARRAYS V, K C***** C***** SBB45 - 051 SUBSCRIPTS OF INT., REAL ARRAYS V+K, V-K C***** C***** SBB13 - 052 SUBSCRIPTS OF INT, REAL ARRAYS C*V, C*V+K, C*V-K C***** C***** SBF17 - 053 SUBSCRIPTS OF DP ARRAYS V, K, C*V, C*V+K, C*V-K C***** V+K, V-K C***** C***** THE FOLLOWING SPECIFICATIONS ARE TO BE USED ONLY WHEN SEGMENTS C***** 035, 036, 037, 038, 039, 040, 041, 042, 043, 050, 051, 052, 053 C***** ARE RUN AS ONE MAIN PROGRAM. C***** INTEGER MCA3I(2,3,3) DOUBLE PRECISION ACVD, BCVD, CCVD, DCVD, CCDVD, DDDVD 1 , EEDVD, FFDVD, GGDVD, HHDVD, AC1D(10), BC2D(7,4), CC3D(7,2,2) 2 , EP1D(43), VTAVD, WTAVD, AADVD DIMENSION A2S(2,2), A3S(3,3,3), AC1S(25), AC2S(5,6) 1 , IAC1I(5), IAC2I(2,7) C***** C***** END OF SPECIFICATIONS FOR SEGMENTS C***** 035, 036, 037, 038, 039, 040, 041, 042, 043, 050, 051, 052, 053 C*********************************************************************** C***** C***** ARFAS - (035) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST THAT EXPRESSIONS INVOLVING THE ADDITION AND 6.1 C***** SUBTRACTION (COMBINED) OF DOUBLE PRECISION VALUES C***** MAY BE FORMED C***** GENERAL COMMENTS C***** VARIABLES, ARRAY ELEMENTS AND CONSTANTS ARE USED IN A C***** VARIETY OF COMBINATIONS C***** C***** S P E C I F I C A T I O N S SEGMENT 035 C***** C***** WHEN EXECUTING ONLY SEGMENT 035, REMOVE THE PRECEDING C***** SPECIFICATIONS. THE FOLLOWING SPECIFICATIONS WHICH APPEAR AS C***** COMMENTS MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION ACVD,BCVD,CCVD,DCVD,FFDVD,GGDVD,HHDVD C= 1,AC1D(10),BC2D(7,4),CC3D(7,2,2) C***** C***** I N P U T - O U T P U T T A P E ASSIGNMENT STATEMENTS. IRVI = 5 NUVI = 6 C***** IDENTIFY THE SOURCE OF THE TEST PROGRAMS WRITE(NUVI,0071) 0071 FORMAT (41H1 F O R T R A N T E S T P R O G R A M S// 1 42H PREPARED BY NATIONAL BUREAU OF STANDARDS// 3 37H FOR USE ON LARGE FORTRAN PROCESSORS // 4 42H IN ACCORDANCE WITH ASA FORTRAN X3.9-1966// 5 23H VERSION 3 PART 4 ///) C***** 3 OF 6 INPUT CARDS IDENTIFY THE USERS SYSTEM AND COMPILER C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST READ(IRVI,0070) READ(IRVI,0072) READ(IRVI,0073) 0070 FORMAT(40H BASED ON ASA FORTRAN X3.9-1966 /) 0072 FORMAT(40H TEST PROGRAMS /) 0073 FORMAT(40H FORTRAN COMPILER /) WRITE(NUVI,0070) WRITE(NUVI,0072) WRITE(NUVI,0073) WRITE (NUVI,350) 350 FORMAT (1H1,1X,32HARFAS - (035) D.P. ADD AND SUBTR//2X, -14HASA REF. - 6.1//2X,7HRESULTS) C***** HEADER FOR SEGMENT 035 WRITTEN ACVD = 5.0D0 BCVD = 10.0D-1 CCVD = 10.0D0 DCVD = -0.2D1 AC1D(1)= 300.0D-2 BC2D(6,3) = 400.D-2 AC1D(2) = .24816326424816D5 BC2D(5,3) = -.12408163212408D5 HHDVD = ACVD + BCVD - CCVD + DCVD + 9.0D0 - AC1D(1) GGDVD = (ACVD + 1.0E0) - 11.0E0 -(DCVD - AC1D(1)) FFDVD = (6.0D0+(BCVD-(CCVD+DCVD))) + 10.0D-1 CC3D(6,1,1) = CCVD-DCVD+BC2D(6,3)-ACVD-11.0D0 CC3D(5,1,2) = AC1D(2) + BC2D(5,3) - 12408.163212408D0 WRITE (NUVI,351) HHDVD, GGDVD, FFDVD, CC3D(6,1,1), CC3D(5,1,2) 351 FORMAT (//5(D22.10/)//35H THE ANSWERS ABOVE SHOULD BE 0 FOR/ 1 32H THIS SEGMENT TO BE SUCCESSFUL./36H VALUES WITH EXPONENTS LE 2SS THAN /31H 10**(-14) ARE CONSIDERED ZERO) C***** END OF TEST SEGMENT 035 C***** C***** WHEN EXECUTING ONLY SEGMENT 035, THE STOP AND END C***** CARDS, WHICH APPEAR AS COMMENTS, MUST HAVE THE C= C***** IN COL 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** ARBMI - (036) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST THAT EXPRESSIONS INVOLVING MULTIPLICATION OF 6.1 C***** INTEGER VALUES MAY BE FORMED. C***** GENERAL COMMENTS C***** INTEGER SUBTRACTION ASSUMED WORKING C***** * VARIABLES, ARRAY ELEMENTS AND CONSTANTS ARE USED C***** IN A VARIETY OF COMBINATIONS. C***** C***** S P E C I F I C A T I O N S SEGMENT 036 C***** C***** WHEN EXECUTING ONLY SEGMENT 036, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS, MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C***** C= DIMENSION IAC1I(5), IAC2I(2,7) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 036, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,360) 360 FORMAT (1H1, 1X,36HARBMI - (036) INTEGER MULTIPLICATION// 116H ASA REF. - 6.1//2X,7HRESULTS) C***** HEADER FOR SEGMENT 036 WRITTEN JACVI=1 KBCVI=2 LCCVI=0 MDCVI=-5 IAC1I(2) = -10 IAC2I(1,2) = 3 IHDVI=JACVI*KBCVI IGDVI=KBCVI*MDCVI*LCCVI IFDVI = MDCVI*JACVI*IAC1I(2)*3 IEDVI=-3*JACVI*(-MDCVI)*JACVI*KBCVI IDDVI=KBCVI*KBCVI*KBCVI*KBCVI*KBCVI*JACVI ICDVI = (-IAC1I(2))*JACVI*KBCVI*JACVI*KBCVI*JACVI*1 IAC2I(1,1)=IAC2I(1,2)*MDCVI*IAC1I(2)*2 IHDVI = IHDVI - 2 IFDVI = IFDVI - 150 IEDVI = IEDVI + 30 IDDVI = IDDVI - 32 ICDVI = ICDVI - 40 IAC2I(1,1) = IAC2I(1,1) - 300 WRITE (NUVI,361) IHDVI, IGDVI, IFDVI, IEDVI, IDDVI, ICDVI, 1 IAC2I(1,1) 361 FORMAT (//7(I10/)//35H ALL ABOVE ANSWERS SHOULD BE 0 FOR/ 1 31H THIS SEGMENT TO BE SUCCESSFUL) C***** END OF TEST SEGMENT 036 C***** C***** WHEN EXECUTING ONLY SEGMENT 036, THE STOP AND END C***** CARDS, WHICH APPEAR AS COMMENTS, MUST HAVE THE C= C***** IN COL 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** ARBMR - (037) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST THAT EXPRESSIONS INVOLVING MULTIPLICATION OF 6.1 C***** REAL VALUES MAY BE FORMED C***** GENERAL COMMENTS C***** REAL SUBTRACTION ASSUMED WORKING C***** * VARIABLES, ARRAY ELEMENTS AND CONSTANTS ARE USED IN A C***** VARIETY OF COMBINATIONS. C***** C***** S P E C I F I C A T I O N S SEGMENT 037 C***** C***** WHEN EXECUTING ONLY SEGMENT 037, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS, MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C***** C= DIMENSION A2S(2,2),AC1S(25) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 037, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,370) 370 FORMAT (1H1,1X,33HARBMR - (037) REAL MULTIPLICATION//2X, 114HASA REF. - 6.1//2X,7HRESULTS) C***** HEADER FOR SEGMENT 037 WRITTEN ACVS = 1.0 BCVS = 0.2E2 CCVS = -1.0 DCVS = 0.0 AC1S(1) = .5E+1 HHDVS=ACVS*BCVS GGDVS=BCVS*BCVS*1.0 FFDVS=2.0*AC1S(1)*ACVS*ACVS EEDVS=ACVS*BCVS*CCVS*DCVS*AC1S(1) DDDVS=AC1S(1)*ACVS*BCVS*1.0E1*ACVS*ACVS CCDVS=CCVS*CCVS*CCVS*3.E0*ACVS*ACVS*ACVS A2S(1,1) = ACVS*CCVS*2. HHDVS = HHDVS - 20.0 GGDVS = GGDVS - 400.0 FFDVS = FFDVS - 10.0 DDDVS = DDDVS - 1000.0 CCDVS = CCDVS + 3.0 A2S(1,1) = A2S(1,1) + 2. WRITE (NUVI,371) HHDVS, GGDVS, FFDVS, EEDVS, DDDVS, CCDVS, 1 A2S(1,1) 371 FORMAT (//7(F11.1/)//35H ALL ABOVE ANSWERS SHOULD BE 0 FOR/ 1 31H THIS SEGMENT TO BE SUCCESSFUL) C***** END OF TEST SEGMENT 037 C***** WHEN EXECUTING ONLY SEGMENT 037, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** ARFMD - (038) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST THAT EXPRESSIONS INVOLVING THE MULTIPLICATION 6.1 C***** OF DOUBLE PRECISION VALUES MAY BE FORMED C***** GENERAL COMMENTS C***** * DP ADDITION AND SUBTRACTION ASSUMED WORKING. C***** * VARIABLES, ARRAY ELEMENTS AND CONSTANTS ARE USED IN A C***** VARIETY OF COMBINATIONS. C***** C***** S P E C I F I C A T I O N S SEGMENT 038 C***** C***** WHEN EXECUTING ONLY SEGMENT 038, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS, MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION ACVD,BCVD,CCVD,DCVD,EEDVD,DDDVD,CCDVD C= 1,FFDVD, GGDVD,HHDVD,AC1D(10),BC2D(7,4), CC3D(7,2,2) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 038, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,380) 380 FORMAT (1H1,1X,33HARFMD - (038) D.P. MULTIPLICATION// 2X, -15H ASA REF. - 6.1//2X,7HRESULTS) C***** HEADER FOR SEGMENT 038 WRITTEN ACVD=1.0D0 BCVD=2.0 CCVD=-30.0D-1 DCVD=1.0D1 AC1D(1) = 1.1D1 CC3D(3,1,2) = .262144D6 CC3D(6,1,2) = -2000.D-3 CC3D(3,2,2) = 409.6D1 HHDVD=ACVD*BCVD GGDVD=ACVD*0.0D0*CCVD FFDVD = AC1D(1)*ACVD*ACVD*ACVD EEDVD=CCVD*CCVD*ACVD*1.0D0*BCVD DDDVD=ACVD*2.0D1*ACVD*DCVD*1.0E0*CCVD CCDVD=ACVD*BCVD*CCVD*CCVD*CCVD*BCVD*ACVD BC2D(3,4) = DCVD*(400.D-2)*CC3D(6,1,2) BC2D(2,3) = CC3D(3,1,2) * CC3D(3,2,2) HHDVD = HHDVD - 2.0D0 FFDVD = FFDVD - 11.0D0 EEDVD = EEDVD - 18.0D0 DDDVD = DDDVD + 600.0D0 CCDVD = CCDVD + 108.0D0 BC2D(3,4) = BC2D(3,4) -(-80.D0) BC2D(2,3) = BC2D(2,3) - 1.073741824D9 WRITE (NUVI,381) HHDVD, GGDVD, FFDVD, EEDVD, DDDVD, CCDVD, 1 BC2D(3,4) , BC2D(2,3) 381 FORMAT (//8(D22.10/)//35H THE ANSWERS ABOVE SHOULD BE 0 FOR/ 1 31H THIS SEGMENT TO BE SUCCESSFUL) C***** END OF TEST SEGMENT 038 C***** WHEN EXECUTING ONLY SEGMENT 038, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** ARBDV - (039) C***** C*********************************************************************** C***** C***** GENERAL PURPOSE ASA REF C***** TEST BASIC DIVISION, 6.1 C***** INTEGER AND REAL (SP) TYPES ONLY C***** C***** S P E C I F I C A T I O N S SEGMENT 039 C***** C***** WHEN EXECUTING ONLY SEGMENT 039, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS, MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C***** C= DIMENSION A2S(2,2),IAC1I(5),IAC2I(2,7),AC1S(25) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 039, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,390) 390 FORMAT (1H1,1X,30HARBDV - (039) INTEGER AND REAL/15X, -9H DIVISION//2X,14HASA REF. - 6.1/ /2X,7HRESULTS) C***** HEADER FOR SEGMENT 039 WRITTEN WRITE (NUVI,391) 391 FORMAT (//2X,22HTEST1 INTEGER DIVISION) JACVI=1 KBCVI=2 LCCVI=0 MDCVI=10 IAC1I(2) = 1 IAC2I(1,4) = -8 IHDVI=KBCVI/JACVI IGDVI=MDCVI/KBCVI/JACVI IFDVI=LCCVI/JACVI/JACVI/1 IEDVI = MDCVI/KBCVI/IAC1I(2)/IAC1I(2)/JACVI IAC2I(1,2)=IAC2I(1,4)/4/KBCVI IHDVI = IHDVI - 2 IGDVI = IGDVI - 5 IEDVI = IEDVI - 5 IAC2I(1,2) = IAC2I(1,2) + 1 WRITE (NUVI,392) IHDVI, IGDVI, IFDVI, IEDVI, IAC2I(1,2) 392 FORMAT (//5(I10/)) WRITE (NUVI, 393) 393 FORMAT (//2X,19HTEST2 REAL DIVISION) ACVS=1.0 BCVS=0.0 CCVS=1.0E1 DCVS=20.0E-1 AC1S(1)=100.0E-2 A2S(1,1) = -200.E-2 HHDVS= ACVS/ACVS GGDVS = CCVS/ACVS/(-ACVS) FFDVS= BCVS/CCVS/DCVS/ACVS EEDVS= CCVS/AC1S(1)/DCVS/(-1.0)/ACVS A2S(1,2) = A2S(1,1)/AC1S(1)/ACVS/(-2.0E0) HHDVS = HHDVS - 1.0 GGDVS = GGDVS + 10.0 EEDVS = EEDVS + 5.0 A2S(1,2) = A2S(1,2) - 1. WRITE (NUVI,394) HHDVS , GGDVS, FFDVS, EEDVS, A2S(1,2) 394 FORMAT (//5(F11.1/)//35H ALL ABOVE ANSWERS SHOULD BE 0 FOR/ 12X,29HTHIS SEGMENT TO BE SUCCESSFUL) C***** END OF TEST SEGMENT 039 C***** WHEN EXECUTING ONLY SEGMENT 039, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** ARFDV - (040) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST THAT EXPRESSIONS INVOLVING DIVISION OF DOUBLE 6.1 C***** PRECISION VALUES MAY BE FORMED C***** GENERAL COMMENTS C***** * DP SUBTRACTION ASSUMED WORKING. C***** * VARIABLES, ARRAY ELEMENTS AND CONSTANTS ARE USED IN A C***** VARIETY OF COMBINATIONS. C***** C***** S P E C I F I C A T I O N S SEGMENT 040 C***** C***** WHEN EXECUTING ONLY SEGMENT 040, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS, MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION ACVD,BCVD,CCVD,DCVD,EEDVD,FFDVD,GGDVD,HHDVD C= 1,AC1D(10),BC2D(7,4),CC3D(7,2,2) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 040, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,400) 400 FORMAT (1H1,1X,27HARFDV - (040) D.P. DIVISION// -16H ASA REF. - 6.1//2X,7HRESULTS) C***** HEADER FOR SEGMENT 040 WRITTEN ACVD = 1.0D0 BCVD = 20.0D-1 CCVD = .1D2 DCVD = -10.0 AC1D(1)= 0.0 CC3D(1,2,2) = -.004D3 CC3D(1,1,2) = .244140625D-3 HHDVD = BCVD/ACVD CC3D(3,1,2) = .125D0 GGDVD = DCVD/DCVD/ACVD FFDVD = AC1D(1)/BCVD/ACVD/1.D0/1.D0 EEDVD = DCVD/BCVD/(-5.0E0)/ACVD/ACVD BC2D(4,4) = CC3D(1,2,2)/BCVD/DCVD/.002D2 BC2D(4,3) = CC3D(1,1,2) / CC3D(3,1,2) HHDVD = HHDVD - 2.0D0 GGDVD = GGDVD - 1.0D0 EEDVD = EEDVD - 1.0D0 BC2D(4,4) = BC2D(4,4) - 1.0D0 BC2D(4,3) = BC2D(4,3) - 195.3125D-5 WRITE (NUVI,401) HHDVD,GGDVD,FFDVD,EEDVD,BC2D(4,4) , BC2D(4,3) 401 FORMAT (//6(D22.10/)//35H THE ANSWERS ABOVE SHOULD BE 0 FOR/ 1 31H THIS SEGMENT TO BE SUCCESSFUL) C***** END OF TEST SEGMENT 040 C***** WHEN EXECUTING ONLY SEGMENT 040, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** ARBEX - (041) C***** C*********************************************************************** C***** C***** GENERAL PURPOSE ASA REF C***** TEST THAT EXPRESSIONS INVOLVING INTEGER AND REAL 6.1 C***** EXPONENTIATION MAY BE FORMED C***** GENERAL COMMENTS C***** THE FOLLOWING TESTS ARE MADE - C***** INTEGER BY INTEGER GIVING INTEGER 6.1 C***** REAL (SP) BY INTEGER GIVING REAL (SP) C***** REAL (SP) BY REAL (SP) GIVING REAL (SP) C***** RESTRICTIONS OBSERVED C***** C***** S P E C I F I C A T I O N S SEGMENT 041 C***** C***** WHEN EXECUTING ONLY SEGMENT 041, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS, MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C***** C= DIMENSION A2S(2,2),IAC1I(5),IAC2I(2,7),AC1S(25) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 041, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,410) 410 FORMAT (1H1,1X,34HARBEX - (041) BASIC EXPONENTIATION// - 2X,15HASA REFS. - 6.1//2X, 7HRESULTS) C***** HEADER FOR SEGMENT 041 WRITTEN WRITE (NUVI,411) 411 FORMAT (//2X,18HINTEGER BY INTEGER) JACVI=1 KBCVI=0 LCCVI=2 MDCVI=-1 IAC1I(2) = 3 IAC2I(1,4) = 3 IHDVI = LCCVI**IAC1I(2) IGDVI=KBCVI**JACVI IFDVI=JACVI**KBCVI IEDVI = MDCVI**IAC1I(2) IDDVI=(LCCVI**LCCVI)**(JACVI**MDCVI) IAC2I(1,2) = (LCCVI**IAC2I(1,4))**JACVI IHDVI = IHDVI - 8 IFDVI = IFDVI - 1 IEDVI = IEDVI + 1 IDDVI = IDDVI- 4 IAC2I(1,2) = IAC2I(1,2) - 8 WRITE (NUVI, 412) IHDVI, IGDVI, IFDVI, IEDVI, IAC2I(1,2) 412 FORMAT (//6(I10/)) WRITE (NUVI, 413) 413 FORMAT (//2X,25HREAL BY INT, REAL BY REAL) ACVS=1.0 BCVS=0.0 CCVS=0.5E0 DCVS = 20.0E-1 AC1S(1)=1.21E0 A2S(1,1) = 300.E-2 HHDVS=ACVS**JACVI GGDVS=BCVS**JACVI FFDVS=DCVS**IAC1I(2) EEDVS=ACVS**ACVS DDDVS=AC1S(1)**CCVS CCDVS=(DCVS**1)**(2.0**ACVS) A2S(2,1) = (A2S(1,1)**DCVS)**BCVS HHDVS = HHDVS - 1.0 FFDVS = FFDVS - 8.0 EEDVS = EEDVS - 1.0 DDDVS = DDDVS - 1.1 CCDVS = CCDVS - 4.0 A2S(2,1) = A2S(2,1) - 1.0 WRITE (NUVI,414) HHDVS, GGDVS, FFDVS, EEDVS, DDDVS, CCDVS,A2S(2,1) 414 FORMAT (//7(F11.1/)//35H ALL ABOVE ANSWERS SHOULD BE 0 FOR/ 12X, 29HTHIS SEGMENT TO BE SUCCESSFUL) C***** END OF TEST SEGMENT 041 C***** WHEN EXECUTING ONLY SEGMENT 041, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** ARFEX - (042) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST EXPONENTIATION OF DOUBLE PRECISION ITEMS 6.1 C***** THE FOLLOWING TYPES OF DP EXPONENTIATION ARE TESTED - C***** DP BY REAL GIVING DP C***** REAL BY DP GIVING DP C***** DP BY DP GIVING DP C***** GENERAL COMMENTS C***** * DP ADDITION AND SUBTRACTION ASSUMED WORKING. C***** * VARIABLES, ARRAY ELEMENTS AND CONSTANTS ARE USED IN A C***** VARIETY OF COMBINATIONS. C***** RESTRICTION OBSERVED C***** NEGATIVE VALUED ITEMS ARE NEVER RAISED TO A REAL OR 6.4/12 C***** DP EXPONENT C***** C***** S P E C I F I C A T I O N S SEGMENT 042 C***** C***** WHEN EXECUTING ONLY SEGMENT 042, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS, MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION ACVD,BCVD,CCVD,EEDVD,FFDVD,GGDVD,HHDVD C= DOUBLE PRECISION AC1D(10),BC2D(7,4),CC3D(7,2,2) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 042, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,420) 420 FORMAT (1H1,1X,28HARFEX - (042) EXPONENTIATION// -16H ASA REF. - 6.1//2X,7HRESULTS) C***** HEADER FOR SEGMENT 042 WRITTEN C***** DEFINE VARIABLES AND ARRAY ELEMENTS ACVS=1.0 BCVS=0.0 CCVS=0.5 DCVS=20.0E-1 ACVD = 1.0D0 BCVD = 80.0D-1 CCVD = 0.0 AC1D(1) = 1.0 BC2D(2,4) = 3000.D-3 HHDVD = ACVD**BCVS GGDVD = ACVS**ACVD FFDVD = AC1D(1)**BCVD EEDVD = (DCVS**ACVD)** (2.0D0**ACVS) CC3D(5,1,2) = BC2D(2,4)**(DCVS**BCVS) HHDVD = HHDVD - 1.0D0 GGDVD = GGDVD - 1.0D0 FFDVD = FFDVD - 1.0D0 EEDVD = EEDVD - 4.0D0 CC3D(5,1,2) = CC3D(5,1,2) - 3.0D0 WRITE (NUVI,421) HHDVD, GGDVD, FFDVD, EEDVD, CC3D(5,1,2) 421 FORMAT (//5(D22.10/)//35H THE ANSWERS ABOVE SHOULD BE 0 FOR/ 1 32H THIS SEGMENT TO BE SUCCESSFUL./36H VALUES WITH EXPONENTS LE 2SS THAN /31H 10**(-14) ARE CONSIDERED ZERO) C***** END OF TEST SEGMENT 042 C***** WHEN EXECUTING ONLY SEGMENT 042, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** ARBHI - (043) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TESTS THAT HIERARCHY OF OPERATORS AND PARENTHESES 6.1/07 C***** ARE HANDLED CORRECTLY. OPERATORS SHOULD FOLLOW C***** THIS ORDER - ** (EXPONENTIATION) 6.4/41 C***** * AND / (MULTIPLICATION,DIVISION) C***** + AND - (ADDITION,SUBTRACTION) C***** GENERAL COMMENTS C***** * ONLY INTEGER EXPRESSIONS ARE USED SINCE THIS TEST IS C***** CONCENTRATING ON OPERATORS AND PARENTHESES C***** * ADDITION, SUBTRACTION, MULTIPLICATION, DIVISION, 6.4/49 C***** EXPONENTIATION ASSUMED TO FOLLOW LAWS OF C***** ASSOCIATION AND COMMUTATION UNLESS PARENTHESES C***** REGROUP EXPRESSIONS C***** * INTEGER DIVISION MUST BE EVALUATED FROM LEFT TO 6.4/56 C***** RIGHT C***** RESTRICTIONS OBSERVED C***** * ALL ELEMENTS EVALUATED ARE MATHEMATICALLY DEFINED 6.4/16 C***** * NO NEGATIVE VALUES ARE RAISED TO A REAL 6.4/12 C***** EXPONENT C***** * NO ZERO VALUED PRIMARY IS RAISED TO A ZERO 6.4/14 C***** VALUED EXPONENT C***** C***** S P E C I F I C A T I O N S SEGMENT 043 C***** C***** WHEN EXECUTING ONLY SEGMENT 043, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS, MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C***** C= DIMENSION IAC1I(5),IAC2I(2,7) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 043, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,430) 430 FORMAT (1H1,1X,36HARBHI - (043) HIERARCHY, PARENTHESES//2X, 1 23HASA REFS. - 6.1 AND 6.4// 2 2X, 7HRESULTS) JACVI = 1 KBCVI = 2 LCCVI = -5 MDCVI = 0 NECVI = 36 IAC1I(2) = 10 C***** TEST THAT ADDITION IS COMMUTATIVE (TEST 1) MRRVI = 1 IHDVI = JACVI + KBCVI IGDVI = KBCVI + JACVI IFDVI = IHDVI - IGDVI WRITE (NUVI,431) MRRVI, IFDVI C***** TEST THAT MULTIPLICATION IS COMMUTATIVE (TEST 2) MRRVI = 2 IHDVI = JACVI * KBCVI IGDVI = KBCVI * JACVI IFDVI = IHDVI - IGDVI WRITE (NUVI,431) MRRVI, IFDVI C***** TEST THAT SUBTRACTION IS COMMUTATIVE (TEST 3) MRRVI = 3 IHDVI = KBCVI - JACVI IGDVI = -JACVI + KBCVI IFDVI = IHDVI - IGDVI WRITE (NUVI,431) MRRVI, IFDVI C***** TEST THAT ADDITION IS ASSOCIATIVE (TEST 4) MRRVI = 4 IHDVI = (IAC1I(2) + JACVI) + KBCVI IGDVI = IAC1I(2) + (JACVI + KBCVI) IFDVI = IHDVI - IGDVI WRITE (NUVI,431) MRRVI, IFDVI C***** TEST THAT MULTIPLICATION IS ASSOCIATIVE (TEST 5) MRRVI = 5 IHDVI = (IAC1I(2) * LCCVI) * KBCVI IGDVI = IAC1I(2) * (LCCVI * KBCVI) IFDVI = IHDVI - IGDVI WRITE (NUVI,431) MRRVI, IFDVI C***** TEST THAT MULTIPLICATION IS DONE BEFORE ADDITION C***** OR SUBTRACTION (TEST 6). ANSWER SHOULD BE ZERO MRRVI = 6 IHDVI = JACVI + KBCVI * LCCVI - 1 + IAC1I(2) WRITE (NUVI,431) MRRVI, IHDVI C***** REGROUP TEST 6 EXPRESSION (SLIGHTLY CHANGED) WITH C***** PARENTHESES. ANSWERS SHOULD BE NON-ZERO (TEST7). MRRVI = 7 IGDVI = (JACVI + KBCVI) * LCCVI + 9 IFDVI = JACVI + KBCVI * (LCCVI + 9) IEDVI = (JACVI + KBCVI) * (LCCVI + 9) IAC1I(1) = IGDVI + 6 IAC1I(3) = IFDVI - 9 IAC1I(4) = IEDVI - 12 WRITE (NUVI,432) MRRVI, IAC1I(1), IAC1I(3), IAC1I(4) C***** TEST THAT DIVISION IS DONE BEFORE ADDITION C***** AND SUBTRACTION (TEST 8). ANSWER SHOULD BE ZERO. MRRVI = 8 LCCVI = - 6 IAC1I(2) = 12 IHDVI = LCCVI + IAC1I(2) / KBCVI - LCCVI - 6 WRITE (NUVI,431) MRRVI, IHDVI C***** REGROUP TEST 8 EXPRESSION WITH PARENTHESES (TEST 9). SECOND C***** ANSWER SHOULD BE ZERO, OTHERS NON-ZERO. MRRVI = 9 IGDVI = (LCCVI + IAC1I(2)) / KBCVI - LCCVI - 6 IFDVI = LCCVI + IAC1I(2) / (KBCVI - LCCVI - 6) IEDVI = (LCCVI + IAC1I(2)) / (KBCVI - LCCVI - 6) IAC1I(1) = IGDVI - 3 IAC1I(4) = IEDVI - 3 WRITE (NUVI,432) MRRVI, IAC1I(1), IAC1I(3), IAC1I(4) C***** TEST THAT EXPONENTIATION IS DONE BEFORE C***** ANY OTHER OPERATION (TEST 10). ANSWERS SHOULD C***** BE ZERO. MRRVI = 10 IHDVI = KBCVI + 3 ** 2 - 11 IGDVI = IAC1I(2) * KBCVI ** 3 - 96 IFDVI = NECVI / LCCVI ** KBCVI - 1 WRITE (NUVI,432) MRRVI, IHDVI, IGDVI, IFDVI C***** REGROUP TEST 10 EXPRESSIONS WITH PARENTHESES (TEST 11) C***** ANSWERS SHOULD BE NON-ZERO MRRVI = 11 IHDVI = (KBCVI + 3) ** 2 - 11 IGDVI = (IAC1I(2) * KBCVI) ** 3 - 80 IFDVI = (NECVI / LCCVI) ** KBCVI - 1 IAC1I(1) = IHDVI - 14 IAC1I(3) = IGDVI - 13744 IAC1I(4) = IFDVI - 35 WRITE (NUVI,432) MRRVI, IAC1I(1), IAC1I(3), IAC1I(4) C***** THE FOLLOWING STATEMENTS INCLUDE AN ADDITIONAL TEST C***** OF OPERATOR HIERARCHY. A VARIETY OF OPERATORS IS USED C***** BOTH VARIABLES AND ARRAY ELEMENTS ARE USED. ALL C***** ANSWERS SHOULD BE ZERO (TEST 12). MRRVI = 12 LCCVI = -5 IAC1I(2) = 10 IEDVI = JACVI+KBCVI*LCCVI-IAC1I(2)/2-IAC1I(2)/2/5+15 IDDVI = KBCVI**3*4 + 162/(3**(KBCVI*2)) + MDCVI-34 IHDVI = KBCVI*(JACVI+KBCVI*(IAC1I(2)-KBCVI)) - 34 IGDVI = IAC1I(2)/KBCVI+70/(LCCVI*(KBCVI**2+3))-3 IFDVI = KBCVI*(KBCVI+IAC1I(2)*(KBCVI+3*(JACVI+KBCVI)))-224 IAC1I(1) = KBCVI*(KBCVI+KBCVI*(KBCVI+KBCVI*(KBCVI+KBCVI* -(KBCVI+KBCVI)))) - 92 IAC2I(1,4) = IAC1I(2)+LCCVI+JACVI+KBCVI+KBCVI-JACVI-9 IAC2I(1,2) = IAC1I(2)/(LCCVI+JACVI+KBCVI)*(KBCVI** 1(KBCVI-JACVI))+10 WRITE (NUVI,433) MRRVI, IEDVI, IDDVI, IHDVI, IGDVI, IFDVI, 1 IAC1I(1),IAC2I(1,4),IAC2I(1,2) C***** EVALUATION MAY PROCEED ACCORDING TO ANY VALID FORMATION SEQUENCE C***** EVALUATION OF INTEGER TERM CONTAINING DIVISION MRRVI = 13 NECVI = 7 KBCVI = 2 LCCVI = 4 IGDVI = NECVI/KBCVI * LCCVI IFDVI = LCCVI * NECVI / KBCVI IAC1I(1) = IGDVI - 12 IAC1I(2) = IFDVI - 14 WRITE (NUVI,434) MRRVI,IAC1I(1), IAC1I(2) C***** FORMAT STATEMENTS FOR THIS SEGMENT 431 FORMAT ( /2X,4HTEST, I4, I6) 432 FORMAT(/2X, 4HTEST, I4, I6/ I16/ I16) 433 FORMAT(/2X, 4HTEST,I4,I6/6(I16/),I16) 434 FORMAT(/2X,4HTEST,I4,I6/I16/2X,35H THE ANSWERS ABOVE SHOULD BE 0 1FOR/31H THIS SEGMENT TO BE SUCCESSFUL) C***** END OF TEST SEGMENT 043 C***** WHEN EXECUTING ONLY SEGMENT 043, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C****** C****** SBB67 - (050) C****** C*********************************************************************** C****** GENERAL PURPOSE ASA REF C****** TEST FORMATION OF SUBSCRIPTS FOR INTEGER 5.1.3.3 C****** AND SINGLE PRECISION ARRAYS IN FORM V,K FORMS C***** C***** S P E C I F I C A T I O N S SEGMENT 050 C***** C***** WHEN EXECUTING ONLY SEGMENT 050, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS, MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C***** C= DIMENSION A3S(3,3,3) C= DIMENSION IAC1I(5),IAC2I(2,7),AC1S(25),AC2S(5,6) C= INTEGER MCA3I(2,3,3) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 050, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,501) 501 FORMAT (1H1,1X,36HSBB67 - (050) SUBSCRIPTS FOR INTEGER/ -16X,21HAND REAL ARRAYS, V, K//2X,14HASA REF. 5.1.3//2X, -7HRESULTS) IAC1I(5) = 3 IAC2I(1,3)=4 MCA3I(2,2,1) = -7 AC1S(20)=1.0 AC2S(4,1)=-2.1E1 A3S(1,2,2) = -22.0 JACVI = IAC1I(5) + IAC2I(1,3) + MCA3I(2,2,1) HHCVS = AC1S(20) - AC2S( 4,1) + A3S(1,2,2) WRITE (NUVI, 502) JACVI, HHCVS 502 FORMAT (// I9//F11.1) 504 JACVI=1 ACVS=1.0 IAC1I(JACVI)=10 IAC2I(JACVI,3)=12 IAC2I(2,JACVI)=-6 MCA3I(JACVI,JACVI,3) = -1 MCA3I(2,JACVI,JACVI) = -1 MCA3I(JACVI,3,JACVI) = -2 AC1S(JACVI)=ACVS AC2S(JACVI,2)=3.0 AC2S(5,JACVI)=60.0E-1 A3S(JACVI,JACVI,3) = +1.0 A3S(2,JACVI,JACVI) = +1.0 A3S(JACVI,3,JACVI) = +0.0 NECVI = IAC1I(1) - IAC2I(1,3) - IAC2I(2,1) + MCA3I(1,1,3) + 1 MCA3I(2,1,1) + MCA3I(1,3,1) MDCVI = IAC1I(JACVI) - IAC2I(JACVI,3) - IAC2I(2,JACVI) + 1 MCA3I(JACVI,JACVI,3) + MCA3I(2,JACVI,JACVI) + 2 MCA3I(JACVI,3,JACVI) HHCVS = AC1S(1) + AC2S(1,2) - AC2S(5,1) + A3S(1,1,3) + A3S(2,1,1) 1 + A3S(1,3,1) GGDVS = AC1S(JACVI) + AC2S(JACVI,2) - AC2S(5,JACVI) + 1 A3S(JACVI,JACVI,3) + A3S(2,JACVI,JACVI) + 2 A3S(JACVI,3,JACVI) WRITE (NUVI,508) NECVI, MDCVI, HHCVS, GGDVS 508 FORMAT (// 2(I9/) / 2(F11.1/) / 35H THE ANSWERS ABOVE SHOULD BE 0 1 FOR/31H THIS SEGMENT TO BE SUCCESSFUL) C***** END OF TEST SEGMENT 050 C***** WHEN EXECUTING ONLY SEGMENT 050, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C****** C****** SBB45 - (051) C****** C*********************************************************************** C****** GENERAL PURPOSE ASA REF C****** TEST FORMATION OF SUBSCRIPTS FOR INTEGER 5.1.3.3 C****** AND SINGLE PRECISION ARRAYS IN FORM V+K AND V-K C***** C***** S P E C I F I C A T I O N S SEGMENT 051 C***** C***** WHEN EXECUTING ONLY SEGMENT 051, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS, MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C***** C= DIMENSION IAC1I(5),IAC2I(2,7),AC1S(25),AC2S(5,6),A3S(3,3,3) C= INTEGER MCA3I(2,3,3) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 051, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,511) 511 FORMAT (1H1,1X,36HSBB45 - (051) SUBSCRIPTS FOR INTEGER/ -16X,24HAND REAL ARRAYS,V+K, V-K//2X,16HASA REF. 5.1.3.3//2X, -7HRESULTS) JACVI=4 IAC1I(JACVI+1)=1 IAC1I(JACVI-1)=2 IAC2I(JACVI-2,1)=3 IAC2I(JACVI-2,2)=4 IAC2I(2,JACVI+ 3 )=5 IAC2I(1,JACVI-0)=-3 AC1S(JACVI+1)=1.0 AC1S(JACVI-1)=2.0 AC2S(JACVI+0,1)=3.0 AC2S(JACVI-2,2)=4.0 AC2S(2,JACVI+ 2 )=5.0 AC2S(1,JACVI-0) = -3.0E0 NECVI=IAC1I(5)+IAC1I(3)+IAC2I(2,1)+IAC2I(2,2) -+IAC2I(2,7)+IAC2I(1,4)-12 KBCVI = IAC1I(JACVI+1) + IAC1I(JACVI-1) + IAC2I(JACVI-2,1) + 1 IAC2I(JACVI-2,2) + IAC2I(1,JACVI-0) + IAC2I(2,JACVI+3) -12 HHCVS = AC1S(5) + AC1S(3) + AC2S(4,1) + AC2S(2,2) + AC2S(2,6) + 1 AC2S(1,4) - 12.0 GGDVS = AC1S(JACVI+1) + AC1S(JACVI-1) + AC2S(JACVI+0,1) + 1 AC2S(JACVI-2,2) + AC2S(2,JACVI+2) + AC2S(1,JACVI-0) - 12.0 JACVI = 2 MCA3I(JACVI,JACVI+1,1) = 12 MCA3I(1,JACVI+1,3) = -4 MCA3I(1,2,JACVI+0) = +2 MCA3I(JACVI-1,1,JACVI-1) = -6 MCA3I(JACVI,JACVI-0,2) = 15 MCA3I(2,JACVI-1,JACVI-1) = -11 MCA3I(JACVI-0,JACVI+1,JACVI+0) = -8 MCA3I(JACVI,JACVI+1,JACVI+1) = MCA3I(JACVI,JACVI+1,1) + 1 MCA3I(1,JACVI+1,3) + MCA3I(1,2,JACVI+0) + 2 MCA3I(JACVI-1,1,JACVI-1) + MCA3I(JACVI,JACVI-0,2) + 3 MCA3I(2,JACVI-1,JACVI-1) + MCA3I(JACVI-0,JACVI+1,JACVI+0) A3S(JACVI+1,1,1) = 12.0 A3S(1,JACVI+1,3) = -4.0 A3S(1,2,JACVI+0) = +2.0 A3S(JACVI-1,1,JACVI-1) = -6.0 A3S(JACVI+1,JACVI-0,2) = 15.0 A3S(2,JACVI-1,JACVI-1) = -11.0 A3S(JACVI-0,JACVI+1,JACVI+0) = -8.0 A3S(JACVI+1,JACVI+1,JACVI+1) = A3S(JACVI+1,1,1) + 1 A3S(1,JACVI+1,3) + A3S(1,2,JACVI+0) + 2 A3S(JACVI-1,1,JACVI-1) + A3S(JACVI+1,JACVI-0,2) + 3 A3S(2,JACVI-1,JACVI-1) + A3S(JACVI-0,JACVI+1,JACVI+0) WRITE (NUVI,515) NECVI,KBCVI,MCA3I(2,3,3),HHCVS,GGDVS,A3S(3,3,3) 515 FORMAT (//3(I9/)/3(F11.1/)/35H THE ANSWERS ABOVE SHOULD BE 0 FOR/ 1 31H THIS SEGMENT TO BE SUCCESSFUL) C***** END OF TEST SEGMENT 051 C***** WHEN EXECUTING ONLY SEGMENT 051, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** SBB13 - (052) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REFS C***** TEST FORMATION OF SUBSCRIPTS FOR INTEGER 5.1.3.3 C***** AND SINGLE PRECISION ARRAYS C***** FORM C*V, C*V-K, C*V+K C***** C***** S P E C I F I C A T I O N S SEGMENT 052 C***** C***** WHEN EXECUTING ONLY SEGMENT 052, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS, MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C***** C= DIMENSION IAC1I(5),IAC2I(2,7),AC1S(25),A3S(3,3,3),AC2S(5,6) C= INTEGER MCA3I(2,3,3) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 052, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,520) 520 FORMAT (1H1,1X,36HSBB13 - (052) SUBSCRIPTS INTEGER AND/ -16X,23HREAL, C*V, C*V-K, C*V+K//2X,16HASA REF. 5.1.3.3//2X, -7HRESULTS) JACVI=2 KACVI= 1 LCCVI = -2 IAC1I(2*JACVI)=1 IAC2I(1*JACVI,1)=2 IAC2I(1,3*KACVI)=3 AC1S(2*JACVI)=1.0 AC2S(1*JACVI,1)=2.0 AC2S(3, 3*KACVI)=30.E-1 MDCVI = IAC1I(2*JACVI) + IAC2I(1*JACVI,1) + IAC2I(1,3*KACVI) - 6 NECVI=IAC1I(4) +IAC2I(2,1) +IAC2I(1,3) - 6 GGDVS = AC1S(2*JACVI) + AC2S(1*JACVI,1) + AC2S(3,3*KACVI) - 6.0 HHCVS = AC1S(4) + AC2S(2,1) + AC2S(3,3) - 6.0 WRITE (NUVI,524) MDCVI, NECVI, GGDVS, HHCVS 524 FORMAT (//2(I9/)/2(F11.1/)) IAC1I(2*JACVI+1) = -6 IAC1I(1*JACVI-1)=-4 IAC2I(1*JACVI-1,2)=3 IAC2I(2*JACVI-3,1)=4 IAC2I(2,1*JACVI+4)=2 IAC2I(1,3*JACVI-2)=1 AC1S(2*LCCVI+9) = -6.0 AC1S(1*LCCVI+3) = -4.0 AC2S(1*LCCVI+3,2) = 3.0 AC2S(2*JACVI+0,3)=4.0 AC2S(3,1*JACVI+3)=2.0 AC2S(3,3*JACVI-2)=1.0 MDCVI = IAC1I(2*JACVI+1) + IAC1I(1*JACVI-1) + IAC2I(1*JACVI-1,2) + 1 IAC2I(1*KACVI+0,1) + IAC2I(2,2*JACVI+2) + 2 IAC2I(1,3*JACVI-2) NECVI = IAC1I(5) + IAC1I(1) + IAC2I(1,2) -+ IAC2I(1,1) + IAC2I(2,6) + IAC2I(1,4) GGDVS = AC1S(2*JACVI+1) + AC1S(1*JACVI-1) + AC2S(1*JACVI-1,2) + 1 AC2S(2*JACVI+0,3) + AC2S(3,1*JACVI+3) + AC2S(3,3*JACVI-2) HHCVS = AC1S(5) + AC1S(1) + AC2S(1,2) -+ AC2S(4,3) + AC2S(3,5) + AC2S(3,4) WRITE (NUVI,524) MDCVI, NECVI, GGDVS, HHCVS MCA3I(2*KACVI,1,1) = -1 MCA3I(2,2*KACVI,2) = -2 MCA3I(1,1,1*KACVI) = -3 MCA3I(1*KACVI+1,2,3) = 1 MCA3I(2,1*KACVI+2,2) = 2 MCA3I(1,2,3*KACVI+0) = 3 MCA3I(4*KACVI-2,1,3) = 40 MCA3I(1,6*KACVI-3,2) = 5 MCA3I(2,3,10*KACVI-9) = -40 MCA3I(2*KACVI,5*KACVI-4,2*KACVI+0)= -5 MCA3I(1*KACVI-0,3,2*KACVI+1) = MCA3I(2*KACVI,1,1) + 1 MCA3I(2,2*KACVI,2) + MCA3I(1,1,1*KACVI) + MCA3I(1*KACVI+1,2,3) 2 + MCA3I(2,1*KACVI+2,2) + MCA3I(1,2,3*KACVI+0) 3 + MCA3I(4*KACVI-2,1,3) + MCA3I(1,6*KACVI-3,2) 4 + MCA3I(2,3,10*KACVI-9) + MCA3I(2*KACVI,5*KACVI-4,2*KACVI+0) A3S(3*KACVI,1,1) = -1.0 A3S(2,2*KACVI,2) = -2.0 A3S(1,1,1*KACVI) = -3.0 A3S(2*KACVI+1,2,3) = 1.0 A3S(3,1*KACVI+2,2) = 2.0 A3S(1,2,3*KACVI+0) = 3.0 A3S(4*KACVI-2,1,3) = 40.0 A3S(1,6*KACVI-3,2) = 5.0 A3S(2,3,10*KACVI-8) = -40.0 A3S(3*KACVI,5*KACVI-4,2*KACVI+0) = -5.0 A3S(1*KACVI-0,3,2*KACVI+1) = A3S(3*KACVI,1,1) + A3S(2,2*KACVI,2) + 1 A3S(1,1,1*KACVI) + A3S(2*KACVI+1,2,3) + A3S(3,1*KACVI+2,2) + 2 A3S(1,2,3*KACVI+0) + A3S(4*KACVI-2,1,3) + A3S(1,6*KACVI-3,2) + 3 A3S(2,3,10*KACVI-8) + A3S(3*KACVI,5*KACVI-4,2*KACVI+0) WRITE (NUVI,525) MCA3I(1,3,3), A3S(1,3,3) 525 FORMAT (//I9 // F11.1 ) WRITE (NUVI,527) 527 FORMAT (// 35H THE ANSWERS ABOVE SHOULD BE 0 FOR/ 1 31H THIS SEGMENT TO BE SUCCESSFUL) C***** END OF TEST SEGMENT 052 C***** WHEN EXECUTING ONLY SEGMENT 052, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** SBF17 - (053) C***** C*********************************************************************** C***** C***** GENERAL PURPOSE ASA REF C***** TEST FORMATION OF SUBSCRIPTS FOR DOUBLE PRECISION 5.1.3.3 C***** ARRAYS C***** FORMS V, K, C*V, C*V-K, C*V+K, V+K, V-K C***** C***** S P E C I F I C A T I O N S SEGMENT 053 C***** C***** WHEN EXECUTING ONLY SEGMENT 053, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS, MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION AC1D(10),BC2D(7,4),CC3D(7,2,2),EP1D(43), C= 1 VTAVD, WTAVD, AADVD C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 053, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,530) 530 FORMAT (1H1,1X,33HSBF17 - (053) SUBSCRIPTS FOR D.P./ -16X,17HARRAYS, ALL FORMS//2X,18HASA REF. - 5.1.3.3//2X,7HRESULTS) NACVI = 10 JACVI=1 KACVI=+2 LCCVI = -1 EP1D(10)=1.00 BC2D(6,3)=4.0D0 CC3D(4,1,1)=-60.0D-1 AC1D(JACVI)=30.0D-1 BC2D(JACVI,3)=1.0D0 CC3D(JACVI,1,1)=2.0D0 BC2D(3,JACVI)=5.0D0 CC3D(2,JACVI,1)=-2.0D0 CC3D(3,2,JACVI)=.4D1 VTAVD = EP1D(10) + BC2D(6,3) + CC3D(4,1,1) + AC1D(1) -+BC2D(1,3) + CC3D(1,1,1) + BC2D(3,1) + CC3D(2,1,1) -+CC3D(3,2,1) - 12.0D0 AADVD = EP1D(10) + AC1D(JACVI) + BC2D(JACVI,3) + BC2D(6,3) + 1 CC3D(4,1,1) + CC3D(JACVI,1,1) + BC2D(3,JACVI) + 2 CC3D(2,JACVI,1) + CC3D(3,2,JACVI) - 12.0D0 AC1D(3*JACVI)=-0.6D+1 AC1D(3*JACVI-2)=70.0D-1 AC1D(5*JACVI+3) = 1.0D0 AC1D (JACVI+3) = 1.0D0 AC1D (NACVI-3) = -1.0D0 BC2D(6*JACVI,2*KACVI-1) =2.0D0 BC2D(8*JACVI-2,1*LCCVI+5) = 10.0D0 CC3D (3*JACVI,2,4*KACVI-6) = -8.0D0 CC3D(10*JACVI-3,1,1*LCCVI+3) = -6.0D0 WTAVD = AC1D(3) + AC1D(1) + AC1D(8) + BC2D(6,3) + -BC2D(6,4) + CC3D(3,2,2) + CC3D(7,1,2) + AC1D(4) + AC1D(7) CC3D(2*KACVI+1,NACVI-8,2*JACVI) = AC1D(3*JACVI) + 1 AC1D(3*JACVI-2) + AC1D(5*JACVI+3) + AC1D(JACVI+3) + 2 AC1D(NACVI-3) + BC2D(6*JACVI,2*KACVI-1) + 3 BC2D(8*JACVI-2,1*JACVI+3) + CC3D(3*JACVI,2,4*KACVI-6 ) + 4 CC3D(10*JACVI-3,1,1*JACVI+1) WRITE (NUVI,531) VTAVD, WTAVD, AADVD, CC3D(5,2,2) 531 FORMAT (//4(D18.5/)/ 35H THE ANSWERS ABOVE SHOULD BE 0 FOR/ 1 31H THIS SEGMENT TO BE SUCCESSFUL) C***** END OF TEST SEGMENT 053 C***** WHEN EXECUTING ONLY SEGMENT 053, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C= STOP C= END STOP END nbs05.d 480890333 170 2 100666 299 ` SAMPLE COMPUTER, FORTRAN COMPILER LEVEL DO NOT READ OR WRITE RECORD 2 . DOUBLE SPACE ON OUTPUT. ID 2 OPERATING SYSTEM VERSION DO NOT READ OR WRITE RECORD 4 . DOUBLE SPACE ON OUTPUT ID 4 DATE, INSTALLATION NAME DO NOT READ OR WRITE RECORD 6 DOUBLE SPACE ON OUTPUT ID 6 nbs05.f 480887323 170 2 100666 38641 ` C***** PART5 ***************************************************** C***** C***** ANSI FORTRAN (X3.9-1966) TEST PROGRAMS C***** C***** PREPARED BY THE NATIONAL BUREAU OF STANDARDS VERSION 3 C***** C***** JUNE 1973 C***** C***** PART 5 OF 14 PARTS C***** C***** SEGMENTS INCLUDED C***** C***** SIMIF - 054 ARITHMETIC IF, LOGICAL IF FOLLOWED BY GO TO C***** C***** IFABS - 055 ABS,IABS(ABSOLUTE VALUE) C***** C***** IFFLT - 056 FLOAT(CONVERT FROM INTEGER TO REAL) C***** C***** IFFIX - 057 IFIX(CONVERT FROM REAL TO INTEGER) C***** C***** IFSGN - 058 SIGN,ISIGN(TRANSFER OF SIGN) C***** C***** IFDAB - 059 DABS(ABSOLUTE VALUE) C***** C***** IFTRN - 060 AINT,INT,IDINT(TRUNCATION) C***** C***** IFMOD - 061 AMOD,MOD(REMAINDERING) C***** C***** IFMAX - 062 AMAXO,AMAX1,MAX0,MAX1,DMAX1(CHOOSE LARGEST VALUE) C***** C***** IFMIN - 063 AMIN0,AMIN1,MIN0,MIN1,DMIN1(CHOOSE SMALLEST VALUE C***** C***** IFDSG - 064 DSIGN(TRANSFER OF SIGN) C***** C***** THE FOLLOWING SPECIFICATIONS ARE TO BE USED ONLY WHEN SEGMENTS C***** 054, 055, 056, 057, 058, 059, 060, 061, 062, 063, 064 C***** ARE RUN AS ONE MAIN PROGRAM. C***** DOUBLE PRECISION DPAVD, DPBVD, DPCVD, DPEVD, DPFVD, DPGVD, DPDVD 1 ,MCAVD, MCBVD, MCCVD, MCDVD, MCEVD, MCFVD LOGICAL LVB, L1B(10), LNVB C***** C***** END OF SPECIFICATIONS FOR SEGMENTS C***** 054,055, 056, 057, 058, 059, 060, 061, 062, 063, 064 C***** C*********************************************************************** C***** C***** SIMIF - (054) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REFS C***** TO TEST ARITHMETIC IF STATEMENT 7.1.2.2 C***** AND LOGICAL IF FOLLOWED BY GO TO 7.1.2.3 C***** SO THAT THESE STATEMENTS MAY BE USED 4.2 C***** IN SUBSEQUENT TEST SEGMENTS. C***** C***** ARITHMETIC EXPRESSIONS ARE - C***** INTEGER VARIABLE C***** INTEGER VARIABLE + OR - A CONSTANT C***** LOGICAL EXPRESSIONS ARE - C***** LOGICAL VARIABLE C***** .NOT. LOGICAL VARIABLE C***** C***** S P E C I F I C A T I O N S SEGMENT 054 C***** C***** WHEN EXECUTING ONLY SEGMENT 054, REMOVE THE PRECEDING C***** SPECIFICATIONS. THE FOLLOWING SPECIFICATIONS WHICH APPEAR C***** AS COMMENTS MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= LOGICAL LVB, L1B(10), LNVB C***** C***** I N P U T - O U T P U T T A P E ASSIGNMENT STATEMENTS. IRVI = 5 NUVI = 6 C***** IDENTIFY THE SOURCE OF THE TEST PROGRAMS WRITE(NUVI,0071) 0071 FORMAT (41H1 F O R T R A N T E S T P R O G R A M S// 1 42H PREPARED BY NATIONAL BUREAU OF STANDARDS// 3 37H FOR USE ON LARGE FORTRAN PROCESSORS // 4 42H IN ACCORDANCE WITH ASA FORTRAN X3.9-1966// 5 23H VERSION 3 PART 5 ///) C***** 3 OF 6 INPUT CARDS IDENTIFY THE USERS SYSTEM AND COMPILER C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST READ(IRVI,0070) READ(IRVI,0072) READ(IRVI,0073) 0070 FORMAT(40H BASED ON ASA FORTRAN X3.9-1966 /) 0072 FORMAT(40H TEST PROGRAMS /) 0073 FORMAT(40H FORTRAN COMPILER /) WRITE(NUVI,0070) WRITE(NUVI,0072) WRITE(NUVI,0073) WRITE(NUVI,7540) IVI = -8 JVI = 0 KVI = 2 MVI = -4 LVB = .TRUE. LNVB = .FALSE. C***** LOGICAL ARRAY L1B SHOULD CONTAIN ALL .TRUE. IF TEST IS CORRECT. NVI = 1 IF (IVI) 541, 542, 542 544 IF (JVI) 542, 541, 542 545 IF (KVI) 542,542, 541 C***** ZERO IS NEITHER POSITIVE NOR NEGATIVE 546 NAVI = IVI * JVI IF (NAVI) 542, 541, 542 547 NAVI = JVI * MVI IF (NAVI) 542, 541, 542 548 NAVI = JVI / MVI IF (NAVI) 542, 541, 542 549 IF (MVI + 4) 542, 541, 542 7543 IF (KVI - 2) 542, 541, 542 C***** LOGICAL IF FOLLOWED BY GO TO 7544 IF (LVB) GO TO 541 GO TO 542 7545 IF (.NOT.LNVB) GO TO 541 542 L1B(NVI) = .FALSE. GO TO 543 541 L1B(NVI) = .TRUE. 543 NVI = NVI + 1 GO TO (544,544,545,546,547,548,549,7543,7544,7545,7546), NVI 7546 WRITE (NUVI,7541) L1B WRITE (NUVI,7542) 7540 FORMAT (2H1 ,30HSIMIF - (054) SIMPLE ARITH. IF/19X,14HAND LOGICAL -IF//20H ASA REF. - 7.1.2.2/ 13X, 7H7.1.2.3 //9H RESULTS) 7541 FORMAT (/L4) 7542 FORMAT (/36H THE TEN ANSWERS ABOVE MUST BE TRUE) C***** END OF TEST SEGMENT 054 C***** WHEN EXECUTING ONLY SEGMENT 054, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** IFABS - (055) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST INTRINSIC FUNCTION ABS,IABS (ABSOLUTE VALUE) 8.2 C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 055, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE(NUVI,0550) 0550 FORMAT(37H1 IFABS - (055) INTRINSIC FUNCTIONS--/10X,26HABS, IABS ( 1ABSOLUTE VALUE)//17H ASA REFS. - 8.2//9H RESULTS) C***** HEADER FOR SEGMENT 055 WRITTEN C***** SINGLE PRECISION REAL ARGUMENT MCGVI = 1 CMAVS = 1.000789 CMBVS = -0.2E2 CMCVS = -2.0 CMDVS = 2.0 CMFVS = -4.0 CMEVS = ABS(CMAVS) CMEVS = CMEVS - 1.000789 WRITE (NUVI,0557) CMEVS CMBVS = ABS(CMBVS) CMEVS = CMBVS - 0.2E2 WRITE (NUVI,0557) CMEVS CMEVS = 2.0*CMCVS+ABS(2.0*CMFVS+ABS(CMCVS*CMDVS**MCGVI)) WRITE (NUVI,0557) CMEVS CMEVS = CMFVS+CMDVS+ABS(CMCVS+ABS(CMFVS)-ABS(CMDVS-CMCVS)) WRITE (NUVI,0557) CMEVS 0557 FORMAT (/2X,F15.1) 0558 FORMAT (/2X,37HTHE ABOVE ANSWERS SHOULD ALL BE 0 FOR/2X, 1 35HTHIS TEST SEGMENT TO BE SUCCESSFUL.) C***** INTEGER ARGUMENT MCAVI = 25 MCBVI = 4 MCCVI = -129 MCDVI = -2 MCEVI = 2 MCFVI = IABS(MCAVI) MCFVI = MCFVI -25 WRITE (NUVI,0551) MCFVI MCFVI = IABS(MCDVI+IABS(MCBVI/MCDVI)-IABS(MCEVI**2))-MCBVI WRITE (NUVI,0551) MCFVI MCCVI = IABS(MCCVI) MCFVI = MCCVI - 129 WRITE (NUVI,0551) MCFVI 0551 FORMAT (/10X,I5) WRITE (NUVI,0558) C***** END OF TEST SEGMENT 055 C***** WHEN EXECUTING ONLY SEGMENT 055, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** IFFLT - (056) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST INTRINSIC FUNCTION FLOAT (CONVERSION FROM 8.2 C***** INTEGER TO REAL) (TABLE 3) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 056, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,0560) 0560 FORMAT (1H1,1X,34HIFFLT - (056) INTRINSIC FUNCTION--/16X, 15HFLOAT/ 2X,14HASA REF. - 8.2/2X,7HRESULTS) C***** HEADER FOR SEGMENT 056 C***** ARGUMENT IS INTEGER, FUNCTION IS REAL MCAVI = 64 MCBVI = -512 MCCVI = 2 MCDVI = 4 MCEVI = 8 CMAVS = FLOAT(MCAVI) CMBVS = CMAVS - 64.0 WRITE (NUVI,0561) CMBVS CMAVS = FLOAT(MCBVI) CMBVS = CMAVS + 512.0 WRITE (NUVI,0561) CMBVS CMBVS= FLOAT(-2*MCEVI)+FLOAT(MCCVI*MCDVI)*FLOAT(MCEVI/MCDVI)- - FLOAT(MCDVI**MCCVI) + 16.0 WRITE (NUVI,0561) CMBVS WRITE (NUVI,0562) WRITE (NUVI,0563) 0561 FORMAT (/2X,F15.1) 0562 FORMAT (/2X,37HTHE ABOVE ANSWERS SHOULD ALL BE 0 FOR) 0563 FORMAT (2X,35HTHIS TEST SEGMENT TO BE SUCCESSFUL.) C***** END OF TEST SEGMENT 056 C***** WHEN EXECUTING ONLY SEGMENT 056, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** IFFIX - (057) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST INTRINSIC FUNCTION - IFIX - (CONVERSION FROM 8.2 C***** REAL TO INTEGER) (TABLE 3) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 057, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,0570) 0570 FORMAT (1H1,1X,34HIFFIX - (057) INTRINSIC FUNCTION--/16X, 4 1HIFIX//2X,14HASA REF. - 8.2//2X,7HRESULTS) C***** HEADER FOR SEGMENT 057 C***** SINGLE PRECISION ARGUMENT, INTEGER FUNCTION CMAVS = 2.4567 CMBVS = -0.2001E2 CMCVS = +5.61E-1 CMDVS = -123.456E0 CMEVS = 789.9876E-2 CMFVS = 2.0 CMGVS = -0.5 MCAVI = IFIX(CMAVS) MCBVI = MCAVI -2 WRITE (NUVI,0571) MCBVI MCAVI = IFIX(CMBVS) MCBVI = MCAVI + 20 WRITE (NUVI,0571) MCBVI MCAVI = IFIX(CMCVS) WRITE (NUVI,0571) MCAVI MCAVI = IFIX(CMDVS) MCBVI = MCAVI + 123 WRITE (NUVI,0571) MCBVI MCAVI = IFIX(CMEVS) MCBVI = MCAVI - 7 WRITE (NUVI,0571) MCBVI MCBVI = IFIX(CMBVS*CMGVS)*IFIX(CMDVS/CMFVS)- - IFIX(CMBVS**IFIX(CMFVS))+1010 WRITE(NUVI,0571) MCBVI WRITE (NUVI,0572) WRITE (NUVI,0573) 0571 FORMAT (/10X,I6) 0572 FORMAT (/2X,37HTHE ABOVE ANSWERS SHOULD ALL BE 0 FOR) 0573 FORMAT (2X,35HTHIS TEST SEGMENT TO BE SUCCESSFUL.) C***** END OF TEST SEGMENT 057 C***** WHEN EXECUTING ONLY SEGMENT 057, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** IFSGN - (058) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST INTRINSIC FUNCTION - SIGN, ISIGN - (TRANSFER 8.2/31-32 C***** OF SIGN - SIGN OF A2 TIMES ABS(A1) ) (TABLE 3) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 058, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,0580) 0580 FORMAT (1H1 ,1X,35HIFSGN - (058) INTRINSIC FUNCTIONS--/16X, 24 1 HSIGN, ISIGN (TRANSFER OF/16X,14HARGUMENT SIGN)//2X,14HASA REF. 2- 8.2//2X,7HRESULTS) C***** HEADER FOR SEGMENT 058 C***** ARGUMENTS AND FUNCTION ARE ALL REAL-TYPE (SIGN) CMAVS = 1.078 CMBVS = -23.0E1 CMCVS = -5.4567 CMDVS = 7.567E-1 CMGVS = +2.0 CMHVS = -4.0 CMIVS = +8.0 CMEVS = SIGN(CMAVS,CMBVS) CMFVS = CMEVS + 1.078 WRITE (NUVI,0581) CMFVS CMEVS = SIGN(CMAVS,CMDVS) CMFVS = CMEVS - 1.078 WRITE (NUVI,0581) CMFVS CMEVS = SIGN(CMBVS,CMCVS) CMFVS = CMEVS + 23.0E1 WRITE (NUVI,0581) CMFVS CMEVS = SIGN(CMBVS,CMDVS) CMFVS = CMEVS - 23.0E1 WRITE (NUVI,0581) CMFVS CMFVS = SIGN(CMGVS,CMHVS)*SIGN(CMHVS,CMIVS)+ - SIGN(SIGN(CMIVS,CMBVS),SIGN(CMHVS,CMGVS)) WRITE(NUVI,0581) CMFVS C***** ARGUMENTS AND FUNCTION ARE ALL INTEGER-TYPE (ISIGN) MCAVI = 24 MCBVI = +167 MCCVI = -5980 MCDVI = -12345 MCGVI = 2 MCHVI = -4 MCIVI = 8 MCEVI = ISIGN(MCAVI,MCBVI) MCFVI = MCEVI - 24 WRITE (NUVI,0582) MCFVI MCEVI = ISIGN(MCBVI,MCCVI) MCFVI = MCEVI + 167 WRITE (NUVI,0582) MCFVI MCEVI = ISIGN(MCCVI,MCDVI) MCFVI = MCEVI + 5980 WRITE (NUVI,0582) MCFVI MCEVI = ISIGN(MCDVI,MCAVI) MCFVI = MCEVI - 12345 WRITE (NUVI,0582) MCFVI MCFVI = ISIGN(ISIGN(MCGVI*MCHVI+(2*MCIVI),MCIVI/MCGVI+MCCVI)+ 1 ISIGN(+8,MCHVI/MCGVI+MCCVI),MCIVI) - MCHVI **2 WRITE(NUVI,0582)MCFVI WRITE (NUVI,0583) WRITE(NUVI,0584) 0581 FORMAT (/2X,F15.1) 0582 FORMAT (/10X,I5) 0583 FORMAT (/2X,37HTHE ABOVE ANSWERS SHOULD ALL BE 0 FOR) 0584 FORMAT (2X,35HTHIS TEST SEGMENT TO BE SUCCESSFUL.) C***** END OF TEST SEGMENT 058 C***** WHEN EXECUTING ONLY SEGMENT 058, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** IFDAB - (059) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST INTRINSIC FUNCTION DABS (ABSOLUTE VALUE OF 8.2 C***** A DOUBLE PRECISION ARGUMENT) (TABLE 3) C***** C***** S P E C I F I C A T I O N S SEGMENT 059 C***** C***** WHEN EXECUTING ONLY SEGMENT 059, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION DPAVD,DPBVD,DPCVD,DPDVD,DPEVD,DPFVD,DPGVD C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 059, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,0590) 0590 FORMAT (1H1,1X,34HIFDAB - (059) INTRINSIC FUNCTION--/16X, 123HDABS (ABSOLUTE VALUE OF/16X,16HA D.P. ARGUMENT)/ 2X, 214HASA REF. - 8.2// 32X,7HRESULTS) C***** HEADER FOR SEGMENT 059 WRITTEN C***** ARGUMENT AND FUNCTION ARE DOUBLE PRECISION DPAVD = 1.2345678901234D0 DPBVD = -2.0D0 DPCVD = -39.468024681357D-1 DPDVD = 2.0D0 DPGVD = -4.0D0 DPEVD = 1.0D0 DPEVD = DABS(DPAVD) DPFVD = DPEVD - 1.2345678901234D0 WRITE (NUVI,0591) DPFVD DPEVD = 2.0D0*DPBVD+DABS(DPDVD*DPGVD+DABS(DPGVD/(2.0D0*DPDVD) - *DPDVD**2)) WRITE (NUVI,0591) DPEVD DPEVD = 3.0D0 DPEVD = DABS(DPCVD) DPFVD = DPEVD - 39.468024681357D-1 WRITE (NUVI,0591) DPFVD DPEVD = 4.0D0 DPEVD = DPGVD +DPDVD+DABS(DPBVD+DABS(DPGVD)-DABS(DPDVD-DPBVD)) WRITE (NUVI,0591) DPEVD WRITE (NUVI,0592) WRITE (NUVI,0593) 0591 FORMAT (/ D22.10) 0592 FORMAT (/ 39H THE ABOVE ANSWERS SHOULD ALL BE 0 FOR) 0593 FORMAT (36H THIS TEST SEGMENT TO BE SUCCESSFUL) C***** END OF TEST SEGMENT 059 C***** WHEN EXECUTING ONLY SEGMENT 059, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** IFTRN - (060) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST INTRINSIC FUNCTIONS AINT,INT, AND IDINT -- 8.2 C***** TRUNCATION (SIGN OF A * LARGEST INTEGER LE ABS(A) ) (TABLE 3) C***** C***** S P E C I F I C A T I O N S SEGMENT 060 C***** C***** WHEN EXECUTING ONLY SEGMENT 060, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION DPAVD,DPBVD,DPCVD,DPDVD C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 060, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,0600) 0600 FORMAT (1H1, 1X,34HIFTRN - (060) INTRINSIC FUNCTION--/10X,29HAINT, 1 INT, IDINT (TRUNCATION)//16H ASA REF. - 8.2//2X,7HRESULTS) C***** HEADER FOR SEGMENT 060 WRITTEN C***** TEST OF AINT - REAL ARGUMENT AND REAL FUNCTION CMAVS = 1.999 CMBVS = 999.001 CMCVS = -0.45678 CMDVS = -9876.0 CMEVS = 1.0 CMEVS = AINT(CMAVS) CMFVS = CMEVS - 1.0 WRITE (NUVI,0601) CMFVS CMEVS = 2.0 CMEVS = AINT(CMBVS) CMFVS = CMEVS - 999.0 WRITE (NUVI,0601) CMFVS CMEVS = 3.0 CMEVS = AINT(CMCVS) CMFVS = CMEVS WRITE (NUVI,0601) CMFVS CMEVS = 4.0 CMEVS = AINT(CMDVS) CMFVS = CMEVS + 9876.0 WRITE (NUVI,0601) CMFVS WRITE (NUVI,0603) C***** TEST OF INT - REAL ARGUMENT BUT INTEGER FUNCTION MCAVI = 5 MCAVI = INT(CMAVS) MCBVI = MCAVI - 1 WRITE (NUVI,0604) MCBVI MCAVI = 6 MCAVI = INT(CMBVS) MCBVI = MCAVI - 999 WRITE (NUVI,0604) MCBVI MCAVI = 7 MCAVI = INT(CMCVS) WRITE (NUVI,0604) MCAVI MCAVI = 8 MCAVI = INT(CMDVS) MCBVI = MCAVI + 9876 WRITE (NUVI,0604) MCBVI WRITE (NUVI,0605) C***** TEST OF IDINT - DOUBLE PRECISION ARGUMENT AND FUNCTION DPAVD = 1.9999999999999D1 DPBVD = +99.000500189123D0 DPCVD = -0.9876543210198D0 DPDVD = -456.78909876514D2 MCAVI = 9 MCAVI = IDINT(DPAVD) MCBVI = MCAVI - 19 WRITE (NUVI,0606) MCBVI MCAVI = 10 MCAVI = IDINT(DPBVD) MCBVI = MCAVI - 99 WRITE (NUVI,0606) MCBVI MCAVI = 11 MCAVI = IDINT(DPCVD) WRITE (NUVI,0606) MCAVI MCAVI = 12 MCAVI = IDINT(DPDVD) MCBVI = MCAVI + 45678 WRITE (NUVI,0606) MCBVI WRITE (NUVI,0607) WRITE (NUVI,0608) 0601 FORMAT (/F11.1) 0603 FORMAT ( 2X,16HEND OF AINT TEST) 0604 FORMAT (/I10) 0605 FORMAT ( 2X,15HEND OF INT TEST) 0606 FORMAT (/I10) 0607 FORMAT ( 2X,17HEND OF IDINT TEST) 0608 FORMAT ( 40H ALL ABOVE ANSWERS SHOULD BE 0 FOR THIS/ 1 31H TEST SEGMENT TO BE SUCCESSFUL) C***** END OF TEST SEGMENT 060 C***** WHEN EXECUTING ONLY SEGMENT 060, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** IFMOD - (061) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST INTRINSIC FUNCTION AMOD AND MOD - REMAINDERING, 8.2 C***** WHICH IS DEFINED AS A1-(A1/A2)A2 WHERE (X) IS AN (TABLE 3) C***** INTEGER WHOSE MAGNITUDE IS LE ABS(X) AND WHOSE SIGN C***** IS THE SAME AS X. C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 061, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,0610) 0610 FORMAT (1H1, 1X,34HIFMOD - (061) INTRINSIC FUNCTION--/16X,24HAMOD, 1 MOD (REMAINDERING)//16H ASA REF. - 8.2//2X, 2 7HRESULTS) C***** HEADER FOR SEGMENT 061 WRITTEN C***** TEST OF AMOD - REAL ARGUMENTS AND REAL FUNCTION CMAVS = 16.0625 CMBVS = -4.0 CMCVS = -8.125 CMDVS = 2.5 CMEVS = -1.0 CMFVS = 1.0 CMFVS = AMOD(CMAVS,CMBVS) CMGVS = CMFVS - 0.0625 WRITE (NUVI,0611) CMGVS CMFVS = 2.0 CMFVS = AMOD(CMCVS,CMDVS) CMGVS = CMFVS + 0.625 WRITE (NUVI,0611) CMGVS CMFVS = 3.0 CMFVS = AMOD(CMBVS,CMEVS) CMGVS = CMFVS + 0.0 WRITE (NUVI,0611) CMGVS CMFVS = 4.0 CMFVS = AMOD(CMBVS,CMAVS) CMGVS = CMFVS + 4.0 WRITE (NUVI,0611) CMGVS WRITE (NUVI,0612) C***** TEST OF MOD - INTEGER ARGUMENTS AND INTEGER FUNCTION MCAVI = 35 MCBVI = -5 MCCVI = -998 MCDVI = 9 MCEVI = 10 MCFVI = 1 MCFVI = MOD(MCAVI,MCBVI) MCGVI = MCFVI + 0 WRITE (NUVI,0613) MCGVI MCFVI = 2 MCFVI = MOD(MCCVI,MCDVI) MCGVI = MCFVI + 8 WRITE (NUVI,0613) MCGVI MCFVI = 3 MCFVI = MOD(MCAVI,MCDVI) MCGVI = MCFVI - 8 WRITE (NUVI,0613) MCGVI MCFVI = 4 MCFVI = MOD(MCBVI,MCEVI) MCGVI = MCFVI + 5 WRITE (NUVI,0613) MCGVI WRITE (NUVI,0614) 0611 FORMAT (/F11.1) 0612 FORMAT (//2X,17HEND OF AMOD TEST.) 0613 FORMAT (/I10) 0614 FORMAT (//2X,16HEND OF MOD TEST.//2X, 138HALL ABOVE ANSWERS SHOULD BE 0 FOR THIS/2X, 230HTEST SEGMENT TO BE SUCCESSFUL.) C***** END OF TEST SEGMENT 061 C***** WHEN EXECUTING ONLY SEGMENT 061, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** IFMAX - (062) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST OF INTRINSIC FUNCTION AMAX0,AMAX1,MAX0,MAX1 AND 8.2 C***** DMAX1 -- CHOOSING LARGEST VALUE (TABLE 3) C***** C***** S P E C I F I C A T I O N S SEGMENT 062 C***** C***** WHEN EXECUTING ONLY SEGMENT 062, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION MCAVD,MCBVD,MCCVD,MCDVD,MCEVD,MCFVD C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 062, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,0620) 0620 FORMAT (1H1, 1X,35HIFMAX - (062) INTRINSIC FUNCTIONS--/13X,28HAMAX 10,AMAX1,MAX0, MAX1,DMAX1 / 2X,14HASA REF. - 8.2//2X,7HRESULTS) C***** TEST OF AMAX0 - INTEGER ARGUMENTS, REAL FUNCTION 8.2/19 C***** TWO ARGUMENTS FOR AMAX0 WRITE (NUVI,0625) MCAVI = 128 MCBVI = 64 MCCVI = -8 MCDVI = -4096 CMEVS = 1.0 CMEVS = AMAX0(MCAVI,MCBVI) CMFVS = CMEVS - 128.0 WRITE (NUVI,0621) CMFVS CMEVS = 2.0 CMEVS = AMAX0(MCCVI,MCCVI) CMFVS = CMEVS + 8.0 WRITE (NUVI,0621) CMFVS CMEVS = 3.0 CMEVS = AMAX0(MCAVI,MCCVI) CMFVS = CMEVS - 128.0 WRITE (NUVI,0621) CMFVS CMEVS = 4.0 CMEVS = AMAX0(MCCVI,MCDVI) CMFVS = CMEVS + 8.0 WRITE (NUVI,0621) CMFVS CMEVS = 5.0 CMEVS = AMAX0(MCDVI,MCBVI) CMFVS = CMEVS - 64.0 WRITE (NUVI,0621) CMFVS MCGVI = 2 WRITE (NUVI,0622) MCGVI C***** THREE ARGUMENTS FOR AMAX0 CMEVS = 6.0 CMEVS = AMAX0(MCCVI,MCBVI,MCAVI) CMFVS = CMEVS - 128.0 WRITE (NUVI,0621) CMFVS CMEVS = 7.0 CMEVS = AMAX0(MCDVI,MCBVI,MCCVI) CMFVS = CMEVS - 64.0 WRITE (NUVI,0621) CMFVS CMEVS = 8.0 CMEVS = AMAX0(MCDVI,MCCVI,MCCVI) CMFVS = CMEVS + 8.0 WRITE (NUVI,0621) CMFVS MCGVI = 3 WRITE (NUVI,0622) MCGVI C***** FOUR OR FIVE ARGUMENTS FOR AMAX0 CMEVS = 9.0 CMEVS = AMAX0(MCAVI,MCBVI,MCCVI,MCDVI) CMFVS = CMEVS - 128.0 WRITE (NUVI,0621) CMFVS CMEVS = 10.0 CMEVS = AMAX0(MCAVI,MCBVI,MCCVI,MCDVI,MCAVI) CMFVS = CMEVS - 128.0 WRITE (NUVI,0621) CMFVS WRITE (NUVI,0623) C***** TEST OF AMAX1 - REAL ARGUMENTS AND FUNCTION 8.2/20 C***** TWO ARGUMENTS FOR AMAX1 WRITE (NUVI,0624) CMAVS = 102.0E0 CMBVS = +76.12 CMCVS = -85.43E1 CMDVS = -0.986 CMEVS = AMAX1(CMAVS,CMBVS) CMFVS = CMEVS - 102.0E0 WRITE (NUVI,0621) CMFVS CMEVS = AMAX1(CMBVS,CMCVS) CMFVS = CMEVS - 76.12 WRITE (NUVI,0621) CMFVS CMEVS = AMAX1(CMDVS,CMCVS) CMFVS = CMEVS + 0.986 WRITE (NUVI,0621) CMFVS MCGVI = 2 WRITE (NUVI,0622) MCGVI C***** THREE ARGUMENTS FOR AMAX1 CMEVS = AMAX1(CMCVS,CMBVS,CMAVS) CMFVS = CMEVS - 102.0E0 WRITE (NUVI,0621) CMFVS CMEVS = AMAX1(CMDVS,CMBVS,CMCVS) CMFVS = CMEVS - 76.12 WRITE (NUVI,0621) CMFVS CMEVS = AMAX1(CMCVS,CMCVS,CMCVS) CMFVS = CMEVS - CMCVS WRITE (NUVI,0621) CMFVS MCGVI = 3 WRITE (NUVI,0622) MCGVI C***** FOUR OR FIVE ARGUMENTS FOR AMAX1 CMEVS = AMAX1(CMAVS,CMBVS,CMCVS,CMDVS) CMFVS = CMEVS - 102.0E0 WRITE (NUVI,0621) CMFVS CMEVS = AMAX1(CMAVS,CMCVS,CMDVS,CMBVS,CMAVS) CMFVS = CMEVS - 102.0E0 WRITE (NUVI,0621) CMFVS WRITE (NUVI,0623) C***** TEST OF MAX0 - INTEGER ARGUMENTS AND FUNCTION 8.2/21 C***** TWO ARGUMENTS FOR MAX0 WRITE (NUVI,0628) MCEVI = MAX0(MCAVI,MCBVI) MCFVI = MCEVI - 128 WRITE (NUVI,0626) MCFVI MCEVI = MAX0(MCCVI,MCDVI) MCFVI = MCEVI + 8 WRITE (NUVI,0626) MCFVI MCEVI = MAX0(MCBVI,MCCVI) MCFVI = MCEVI - 64 WRITE (NUVI,0626) MCFVI MCEVI = MAX0(MCCVI,MCCVI) MCFVI = MCEVI - MCCVI WRITE (NUVI,0626) MCFVI MCGVI = 2 WRITE (NUVI,0622) MCGVI C***** THREE ARGUMENTS FOR MAX0 MCEVI = MAX0(MCCVI,MCBVI,MCAVI) MCFVI = MCEVI - 128 WRITE (NUVI,0626) MCFVI MCEVI = MAX0(MCDVI,MCDVI,MCCVI) MCFVI = MCEVI + 8 WRITE (NUVI,0626) MCFVI MCGVI = 3 WRITE (NUVI,0622) MCGVI C***** FOUR OR FIVE ARGUMENTS FOR MAX0 MCEVI = MAX0(MCDVI,MCCVI,MCBVI,MCAVI) MCFVI = MCEVI - 128 WRITE (NUVI,0626) MCFVI MCEVI = MAX0(MCAVI,MCCVI,MCBVI,MCDVI,MCBVI) MCFVI = MCEVI - 128 WRITE (NUVI,0626) MCFVI WRITE (NUVI,0623) C***** TEST OF MAX1 - REAL ARGUMENTS AND INTEGER FUNCTION 8.2/22 C***** TWO ARGUMENTS FOR MAX1 WRITE (NUVI,0629) MCEVI = MAX1(CMAVS,CMBVS) MCFVI = MCEVI - 102 WRITE (NUVI,0626) MCFVI MCEVI = MAX1(CMBVS,CMCVS) MCFVI = MCEVI - 76 WRITE (NUVI,0626) MCFVI MCEVI = MAX1(CMDVS,CMCVS) MCFVI = MCEVI + 0 WRITE (NUVI,0626) MCFVI MCGVI = 2 WRITE (NUVI,0622) MCGVI C***** THREE ARGUMENTS FOR MAX1 MCEVI = MAX1(CMCVS,CMBVS,CMAVS) MCFVI = MCEVI - 102 WRITE (NUVI,0626) MCFVI MCEVI = MAX1(CMDVS,CMCVS,CMBVS) MCFVI = MCEVI - 76 WRITE (NUVI,0626) MCFVI MCGVI = 3 WRITE (NUVI,0622) MCGVI C***** FOUR OR FIVE ARGUMENTS FOR MAX1 MCEVI = MAX1(CMAVS,CMBVS,CMCVS,CMDVS) MCFVI = MCEVI - 102 WRITE (NUVI,0626) MCFVI MCEVI = MAX1(CMAVS,CMCVS,CMBVS,CMAVS,CMDVS) MCFVI = MCEVI - 102 WRITE (NUVI,0626) MCFVI WRITE (NUVI,0623) C***** TEST OF DMAX1 - DOUBLE PRECISION ARGUMENTS AND FUNCTION 8.2/23 C***** TWO ARGUMENTS FOR DMAX1 WRITE (NUVI,9999) MCAVD = 23.0D-1 MCBVD = 111.789789D0 MCCVD = -99.66D-1 MCDVD = -456.123D0 MCEVD = DMAX1(MCAVD,MCBVD) MCFVD = MCEVD - 111.789789D0 WRITE (NUVI,0627) MCFVD MCEVD = DMAX1(MCAVD,MCCVD) MCFVD = MCEVD - 23.0D-1 WRITE (NUVI,0627) MCFVD MCEVD = DMAX1(MCDVD,MCCVD) MCFVD = MCEVD + 99.66D-1 WRITE (NUVI,0627) MCFVD MCEVD = DMAX1(MCDVD,MCDVD) MCFVD = MCEVD - MCDVD WRITE (NUVI,0627) MCFVD MCGVI = 2 WRITE (NUVI,0622) MCGVI C***** THREE ARGUMENTS FOR DMAX1 MCEVD = DMAX1(MCAVD,MCCVD,MCBVD) MCFVD = MCEVD - 111.789789D0 WRITE (NUVI,0627) MCFVD MCEVD = DMAX1(MCCVD,MCDVD,MCAVD) MCFVD = MCEVD - 23.0D-1 WRITE (NUVI,0627) MCFVD MCEVD = DMAX1(MCCVD,MCCVD,MCDVD) MCFVD = MCEVD + 99.66D-1 WRITE (NUVI,0627) MCFVD MCGVI = 3 WRITE (NUVI,0622) MCGVI C***** FOUR OR FIVE ARGUMENTS FOR DMAX1 MCEVD = DMAX1(MCAVD,MCCVD,MCBVD,MCDVD) MCFVD = MCEVD - 111.789789D0 WRITE (NUVI,0627) MCFVD MCEVD = DMAX1(MCCVD,MCCVD,MCDVD,MCBVD,MCAVD) MCFVD = MCEVD - 111.789789D0 WRITE (NUVI,0627) MCFVD WRITE (NUVI,0623) WRITE (NUVI,9998) 0621 FORMAT ( F11.1) 0622 FORMAT ( 15X,9H END OF ,I2,15H-ARGUMENT TEST.) 0623 FORMAT ( 15X,31H END OF 4- OR 5-ARGUMENT TEST.) 0624 FORMAT ( /2X,15HTEST OF AMAX1--) 0625 FORMAT ( /2X,15HTEST OF AMAX0--) 0626 FORMAT ( I10) 0627 FORMAT ( D22.10) 0628 FORMAT (2H1 ,14HTEST OF MAX0--) 0629 FORMAT ( /2X,14HTEST OF MAX1--) 9998 FORMAT (/ 39H THE ABOVE ANSWERS SHOULD ALL BE 0 FOR/2X, 135HTHIS TEST SEGMENT TO BE SUCCESSFUL.) 9999 FORMAT ( /2X,15HTEST OF DMAX1--) C***** END OF TEST SEGMENT 062 C***** WHEN EXECUTING ONLY SEGMENT 062, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** IFMIN - (063) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST INTRINSIC FUNCTIONS AMIN0,AMIN1,MIN0,MIN1 AND 8.2 C***** DMIN1 -- CHOOSING SMALLEST VALUE. (TABLE 3) C***** C***** S P E C I F I C A T I O N S SEGMENT 063 C***** C***** WHEN EXECUTING ONLY SEGMENT 063, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION MCAVD,MCBVD,MCCVD,MCDVD,MCEVD,MCFVD C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 063, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,0630) 0630 FORMAT (1H1,1X,35HIFMIN - (063) INTRINSIC FUNCTIONS--/13X,27HAMIN0 1,AMIN1,MIN0,MIN1,DMIN1/ 2X,14HASA REF. - 8.2//2X,7HRESULTS) C***** TEST OF AMIN0 - INTEGER ARGUMENTS, REAL FUNCTION 8.2/24 C***** TWO ARGUMENTS FOR AMIN0 WRITE (NUVI,0635) MCAVI = 128 MCBVI = 64 MCCVI = -8 MCDVI = -4096 CMEVS = AMIN0(MCAVI,MCBVI) CMFVS = CMEVS - 64.0 WRITE (NUVI,0631) CMFVS CMEVS = AMIN0(MCDVI,MCCVI) CMFVS = CMEVS + 4096.0 WRITE (NUVI,0631) CMFVS CMEVS = AMIN0(MCBVI,MCCVI) CMFVS = CMEVS + 8.0 WRITE (NUVI,0631) CMFVS MCGVI = 2 WRITE (NUVI,0632) MCGVI C***** THREE-ARGUMENT TEST FOR AMIN0 CMEVS = AMIN0(MCAVI,MCCVI,MCBVI) CMFVS = CMEVS + 8.0 WRITE (NUVI,0631) CMFVS CMEVS = AMIN0(MCBVI,MCBVI,MCDVI) CMFVS = CMEVS + 4096.0 WRITE (NUVI,0631) CMFVS MCGVI = 3 WRITE (NUVI,0632) MCGVI C***** FOUR OR FIVE ARGUMENTS FOR AMIN0 CMEVS = AMIN0(MCAVI,MCCVI,MCDVI,MCBVI) CMFVS = CMEVS + 4096.0 WRITE (NUVI,0631) CMFVS CMEVS = AMIN0(MCCVI,MCBVI,MCCVI,MCAVI,MCDVI) CMFVS = CMEVS + 4096.0 WRITE (NUVI,0631) CMFVS WRITE (NUVI,0633) C***** TEST OF AMIN1 - REAL ARGUMENTS, REAL FUNCTION 8.2/25 C***** TWO ARGUMENTS TEST FOR AMIN1 WRITE (NUVI,0634) CMAVS = 26.5 CMBVS = 9.6666 CMCVS = -1.65 CMDVS = -10.001 CMEVS = AMIN1(CMBVS,CMDVS) CMFVS = CMEVS + 10.001 WRITE (NUVI,0631) CMFVS CMEVS = AMIN1(CMAVS,CMBVS) CMFVS = CMEVS - 9.6666 WRITE (NUVI,0631) CMFVS CMEVS = AMIN1(CMCVS,CMDVS) CMFVS = CMEVS + 10.001 WRITE (NUVI,0631) CMFVS CMEVS = AMIN1(CMCVS,CMCVS) CMFVS = CMEVS + 1.65 WRITE (NUVI,0631) CMFVS MCGVI = 2 WRITE (NUVI,0632) MCGVI C***** THREE-ARGUMENT TEST FOR AMIN1 CMEVS = AMIN1(CMBVS,CMCVS,CMDVS) CMFVS = CMEVS + 10.001 WRITE (NUVI,0631) CMFVS CMEVS = AMIN1(CMBVS,CMBVS,CMBVS) CMFVS = CMEVS - 9.6666 WRITE (NUVI,0631) CMFVS CMEVS = AMIN1(CMAVS,CMBVS,CMCVS) CMFVS = CMEVS + 1.65 WRITE (NUVI,0631) CMFVS MCGVI = 3 WRITE (NUVI,0632) MCGVI C***** FOUR OR FIVE-ARGUMENT TEST FOR AMIN1 CMEVS = AMIN1(CMAVS,CMBVS,CMCVS,CMDVS) CMFVS = CMEVS + 10.001 WRITE (NUVI,0631) CMFVS CMEVS = AMIN1(CMAVS,CMCVS,CMBVS,CMCVS,CMDVS) CMFVS = CMEVS + 10.001 WRITE (NUVI,0631) CMFVS WRITE (NUVI,0633) C***** TEST OF MIN0 - INTEGER ARGUMENTS, INTEGER FUNCTION 8.2/26 C***** TWO-ARGUMENT TEST FOR MIN0 WRITE (NUVI,0636) MCEVI = MIN0(MCBVI,MCAVI) MCFVI = MCEVI - 64 WRITE (NUVI,0639) MCFVI MCEVI = MIN0(MCBVI,MCCVI) MCFVI = MCEVI + 8 WRITE (NUVI,0639) MCFVI MCEVI = MIN0(MCCVI,MCDVI) MCFVI = MCEVI + 4096 WRITE (NUVI,0639) MCFVI MCEVI = MIN0(MCAVI,0) WRITE (NUVI,0639) MCEVI MCGVI = 2 WRITE (NUVI,0632) MCGVI C***** THREE-ARGUMENT TEST FOR MIN0 MCEVI = MIN0(MCAVI,MCCVI,MCBVI) MCFVI = MCEVI + 8 WRITE (NUVI,0639) MCFVI MCEVI = MIN0(MCCVI,MCAVI,MCDVI) MCFVI = MCEVI + 4096 WRITE (NUVI,0639) MCFVI MCGVI = 3 WRITE (NUVI,0632) MCGVI C***** FOUR OR FIVE-ARGUMENT TEST FOR MIN0 MCEVI = MIN0(MCBVI,MCAVI,MCCVI,MCDVI) MCFVI = MCEVI + 4096 WRITE (NUVI,0639) MCFVI MCEVI = MIN0(MCAVI,MCBVI,MCAVI,MCCVI,MCDVI) MCFVI = MCEVI + 4096 WRITE (NUVI,0639) MCFVI WRITE (NUVI,0633) C***** TEST OF MIN1 - REAL ARGUMENTS, INTEGER FUNCTION 8.2/27 C***** TWO-ARGUMENT TEST FOR MIN1 WRITE (NUVI,0637) MCEVI = MIN1(CMAVS,CMBVS) MCFVI = MCEVI - 9 WRITE (NUVI,0639) MCFVI MCEVI = MIN1(CMCVS,CMDVS) MCFVI = MCEVI + 10 WRITE (NUVI,0639) MCFVI MCEVI = MIN1(CMAVS,CMCVS) MCFVI = MCEVI + 1 WRITE (NUVI,0639) MCFVI MCGVI = 2 WRITE (NUVI,0632) MCGVI C***** THREE-ARGUMENT TEST FOR MIN1 MCEVI = MIN1(CMAVS,CMCVS,CMBVS) MCFVI = MCEVI + 1 WRITE (NUVI,0639) MCFVI MCEVI = MIN1(CMAVS,CMCVS,CMDVS) MCFVI = MCEVI + 10 WRITE (NUVI,0639) MCFVI MCGVI = 3 WRITE (NUVI,0632) MCGVI C***** FOUR OR FIVE-ARGUMENT TEST FOR MIN1 MCEVI = MIN1(CMAVS,CMBVS,CMDVS,CMCVS) MCFVI = MCEVI + 10 WRITE (NUVI,0639) MCFVI MCEVI = MIN1(CMAVS,CMBVS,CMCVS,CMCVS,CMDVS) MCFVI = MCEVI + 10 WRITE (NUVI,0639) MCFVI WRITE (NUVI,0633) C***** TEST OF DMIN1 - DOUBLE PRECISION ARGUMENTS, FUNCTION 8.2/28 C***** TWO-ARGUMENT TEST FOR DMIN1 WRITE (NUVI,0638) MCAVD = 61.1234D0 MCBVD = 2.0D1 MCCVD = -999.009D-1 MCDVD = -1.9D0 MCEVD = DMIN1(MCAVD,MCBVD) MCFVD = MCEVD - 2.0D1 WRITE (NUVI,9996) MCFVD MCEVD = DMIN1(MCCVD,MCDVD) MCFVD = MCEVD + 999.009D-1 WRITE (NUVI,9996) MCFVD MCEVD = DMIN1(MCAVD,MCDVD) MCFVD = MCEVD + 1.9D0 WRITE (NUVI,9996) MCFVD MCGVI = 2 WRITE (NUVI,0632) MCGVI C***** THREE-ARGUMENT TEST FOR DMIN1 MCEVD = DMIN1(MCAVD,MCBVD,MCDVD) MCFVD = MCEVD + 1.9D0 WRITE (NUVI,9996) MCFVD MCEVD = DMIN1(MCAVD,MCCVD,MCBVD) MCFVD = MCEVD + 999.009D-1 WRITE (NUVI,9996) MCFVD MCGVI = 3 WRITE (NUVI,0632) MCGVI C***** FOUR OR FIVE-ARGUMENT TEST FOR DMIN1 MCEVD = DMIN1(MCAVD,MCCVD,MCBVD,MCDVD) MCFVD = MCEVD + 999.009D-1 WRITE (NUVI,9996) MCFVD MCEVD = DMIN1(MCBVD,MCAVD,MCBVD,MCDVD,MCCVD) MCFVD = MCEVD + 999.009D-1 WRITE (NUVI,9996) MCFVD WRITE (NUVI,0633) WRITE (NUVI,9997) 0631 FORMAT ( F11.1) 0632 FORMAT( 15X, 8H END OF,I2,15H-ARGUMENT TEST.) 0633 FORMAT ( 15X, 30H END OF 4 OR 5-ARGUMENT TEST.) 0634 FORMAT ( /16H TEST OF AMIN1 ) 0635 FORMAT ( /16H TEST OF AMIN0 ) 0636 FORMAT ( /16H TEST OF MIN0 ) 0637 FORMAT ( 16H1 TEST OF MIN1 ) 0638 FORMAT ( /16H TEST OF DMIN1 ) 0639 FORMAT ( I10) 9996 FORMAT ( D22.10) 9997 FORMAT ( /39H THE ABOVE ANSWERS SHOULD ALL BE 0 FOR/1X, 1 36H THIS TEST SEGMENT TO BE SUCCESSFUL.) C***** END OF TEST SEGMENT 063 C***** WHEN EXECUTING ONLY SEGMENT 063, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** IFDSG - (064) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST INTRINSIC FUNCTION DSIGN (TRANSFER OF SIGN WITH 8.2/33 C***** DOUBLE PRECISION ARGUMENTS AND FUNCTION) (TABLE 3) C***** C***** S P E C I F I C A T I O N S SEGMENT 064 C***** C***** WHEN EXECUTING ONLY SEGMENT 064, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION MCAVD,MCBVD,MCCVD,MCDVD,MCEVD,MCFVD C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 064, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,0640) 0640 FORMAT (1H1,1X,34HIFDSG - (064) INTRINSIC FUNCTION--/16X,24HDSIGN 1(TRANSFER OF SIGN)/ 2X,14HASA REF. - 8.2//2X,7HRESULTS) C***** HEADER FOR SEGMENT 064 WRITTEN MCAVD = +9.5D0 MCBVD = 123.4567D1 MCCVD = -5.665D1 MCDVD = -75.57D-0 MCEVD = DSIGN(MCAVD,MCBVD) MCFVD = MCEVD - 9.5D0 WRITE (NUVI,0641) MCFVD MCEVD = DSIGN(MCBVD,MCCVD) MCFVD = MCEVD + 123.4567D1 WRITE (NUVI,0641) MCFVD MCEVD = DSIGN(MCCVD,MCDVD) MCFVD = MCEVD + 5.665D1 WRITE (NUVI,0641) MCFVD MCEVD = DSIGN(MCDVD,MCDVD) MCFVD = MCEVD +75.57D0 WRITE (NUVI,0641) MCFVD WRITE (NUVI,0642) 0641 FORMAT (1H0,D30.18) 0642 FORMAT (1H0,1X,38HALL ABOVE ANSWERS SHOULD BE 0 FOR THIS/ 12X,30HTEST SEGMENT TO BE SUCCESSFUL.) C***** END OF TEST SEGMENT 064 C***** WHEN EXECUTING ONLY SEGMENT 064, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END STOP END nbs06.d 480890334 170 2 100666 275 ` SAMPLE COMPUTER, FORTRAN COMPILER LEVEL DO NOT READ OR WRITE RECORD 2. DOUBLE SPACE ON OUTPUT ID 2 OPERATING SYSTEM VERSION DO NOT READ OR WRITE RECORD 4. DOUBLE SPACE ON OUTPUT ID 4 DATE, INSTALLATION NAME DO NOT READ OR WRITE RECORD 6. DOUBLE SPACE ON OUTPUT ID 6 nbs06.f 480887327 170 2 100666 35395 ` C***** PART6 ***************************************************** C***** C***** ANSI FORTRAN (X3.9-1966) TEST PROGRAMS C***** C***** PREPARED BY THE NATIONAL BUREAU OF STANDARDS VERSION 3 C***** C***** JUNE 1973 C***** C***** PART 6 OF 14 PARTS C***** C***** SEGMENTS INCLUDED C***** C***** IFDIM - 065 DIM, IDIM (POSITIVE DIFFERENCE) C***** C***** IFSGL - 066 SNGL (OBTAIN MOST SIGNIFICANT PART) C***** C***** IFREL - 067 REAL (OBTAIN REAL PART OF COMPLEX ARGUMENT) C***** C***** IFIMG - 068 AIMAG (OBTAIN IMAGINARY PART OF COMPLEX NO.) C***** C***** IFDBL - 069 DBLE (EXPRESS REAL ARGUMENT IN D.P. FORM) C***** C***** IFCPX - 070 CMPLX (EXPRESS TWO REAL ARG. IN COMPLEX FORM) C***** C***** IFCJG - 071 CONJG (OBTAIN CONJUGATE OF A COMPLEX NUMBER) C***** C***** IFBMS - 072 ALL INTRINSIC FUNCTIONS C***** C***** IFFMS - 073 ALL INTRINSIC FUNCTIONS C***** C***** THE FOLLOWING SPECIFICATIONS ARE TO BE USED ONLY WHEN C***** SEGMENTS 065, 066, 067, 068, 069, 070, 071, 072, 073 C***** ARE RUN AS ONE MAIN PROGRAM. C***** INTEGER MCA3I(2,3,3) DIMENSION MCA1I(5), AC2S(5,6) DOUBLE PRECISION MCAVD, MCBVD, MCCVD, MCDVD, MCEVD, MCFVD, MCGVD, 1 CMAVD, CMBVD, CMCVD , DPA1D(5), FC2D(5,5) DOUBLE PRECISION DPAVD, DPBVD, DPCVD, DPDVD, DPEVD, DPFVD, DPGVD COMPLEX CHAVC, CHBVC, CHCVC, CHDVC, CHEVC, CHFVC, 1 CHGVC, CHHVC, CHIVC, CHJVC, CHKVC, CHLVC C***** C***** END OF SPECIFICATIONS FOR SEGMENTS C***** 065, 066, 067, 068, 069, 070, 071, 072, 073 C*********************************************************************** C***** C***** IFDIM - (065) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA -EF C***** TEST INTRINSIC FUNCTION DIM AND IDIM--POSITIVE 8.2 C***** DIFFERENCE, WHICH IS DEFINED AS A1 - MIN(A1,A2) (TABLE 3) C***** C***** S P E C I F I C A T I O N S SEGMENT 065 C***** C***** WHEN EXECUTING ONLY SEGMENT 065, REMOVE THE PRECEDING C***** SPECIFICATIONS. THIS SEGMENT HAS NO SPECIFICATION STATEMENTS. C***** C***** I N P U T - O U T P U T T A P E ASSIGNMENT STATEMENTS. IRVI = 5 NUVI = 6 C***** IDENTIFY THE SOURCE OF THE TEST PROGRAMS WRITE(NUVI,0071) 0071 FORMAT (41H1 F O R T R A N T E S T P R O G R A M S// 1 42H PREPARED BY NATIONAL BUREAU OF STANDARDS// 3 37H FOR USE ON LARGE FORTRAN PROCESSORS // 4 42H IN ACCORDANCE WITH ASA FORTRAN X3.9-1966// 5 23H VERSION 3 PART 6 ///) C***** 3 OF 6 INPUT CARDS IDENTIFY THE USERS SYSTEM AND COMPILER C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST READ(IRVI,0070) READ(IRVI,0072) READ(IRVI,0073) 0070 FORMAT(40H BASED ON ASA FORTRAN X3.9-1966 /) 0072 FORMAT(40H TEST PROGRAMS /) 0073 FORMAT(40H FORTRAN COMPILER /) WRITE(NUVI,0070) WRITE(NUVI,0072) WRITE(NUVI,0073) WRITE (NUVI,0650) 0650 FORMAT (1H1,1X,39HIFDIM - (065) INTRINSIC FUNCTIONS - DIM/12X, 130HAND IDIM (POSITIVE DIFFERENCE)/ 2X,14HASA REF. - 8.2/ 2/2X,7HRESULTS) C***** HEADER FOR SEGMENT 065 WRITTEN C***** TEST OF DIM - REAL ARGUMENTS, REAL FUNCTION 8.2/34 CMAVS = -4.0 CMBVS = 4.0 CMCVS = 16.25 CMDVS = -64.25 CMEVS = DIM(CMAVS,CMBVS) CMFVS = CMEVS + 0.0 WRITE (NUVI,0651) CMFVS CMEVS = DIM(CMCVS,CMDVS) CMFVS = CMEVS - 80.5 WRITE (NUVI,0651) CMFVS CMEVS = DIM(CMCVS,CMBVS) CMFVS = CMEVS - 12.25 WRITE (NUVI,0651) CMFVS CMEVS = DIM(CMDVS,CMAVS) CMFVS = CMEVS - 0.0 WRITE (NUVI,0651) CMFVS C***** TEST OF IDIM - INTEGER ARGUMENTS, INTEGER FUNCTION 8.2/35 MCAVI = 02468 MCBVI = +36 MCCVI = -3 MCDVI = -23 MCEVI = IDIM(MCAVI,MCBVI) MCFVI = MCEVI - 2432 WRITE (NUVI,0652) MCFVI MCEVI = IDIM(MCBVI,MCCVI) MCFVI = MCEVI - 39 WRITE (NUVI,0652) MCFVI MCEVI = IDIM(MCDVI,MCCVI) MCFVI = MCEVI + 0 WRITE (NUVI,0652) MCFVI MCEVI = IDIM(MCCVI,MCCVI) WRITE (NUVI,0652) MCEVI MCEVI = IDIM(MCCVI,MCBVI) WRITE (NUVI,0652) MCEVI WRITE (NUVI,0653) 0651 FORMAT (1H0,F17.2) 0652 FORMAT (1H0,10X,I5) 0653 FORMAT (1H0,1X,34H ALL ABOVE ANSWERS SHOULD BE 0 FOR/2X, 135HTHIS TEST SEGMENT TO BE SUCCESSFUL.) C***** END OF TEST SEGMENT 065 C***** WHEN EXECUTING ONLY SEGMENT 065 THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** IFSGL - (066) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST INTRINSIC FUNCTION SNGL - OBTAIN MOST SIGNIFICANT 8.2/36 C***** PART OF DOUBLE PRECISION ARGUMENT. (TABLE 3) C***** GENERAL COMMENTS C***** ASSIGNED GO TO STATEMENT ASSUMED WORKING. C***** C***** S P E C I F I C A T I O N S SEGMENT 066 C***** C***** WHEN EXECUTING ONLY SEGMENT 066, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION MCAVD,MCBVD,MCCVD,MCDVD,MCEVD,MCFVD, C= 1 CMAVD, CMBVD,CMCVD C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 066, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** WRITE (NUVI, 0660) 0660 FORMAT (1H1,1X,39HIFSGL - (066) INTRINSIC FUNCTION SNGL--/16X, 126HOBTAIN MOST SIGNIFICANT PT/16X, 218H OF D.P. ARGUMENT. //2X,15HASA REFS. - 8.2//2X,7HRESULTS) C***** HEADER FOR SEGMENT 066 WRITTEN MCAVD = .48748748748748D3+.57D-5+.5604645D-6+.31786509547D-7 MCBVD =-39.689539609539D1-.57D-5-.5604645D-6-.31786509547D-7 MCCVD = .33333333333333D0+.57D-5+.5604645D-6+.31786509547D-7 MCDVD =-.66666666666666D0-.57D-5+.5604645D-6-.31786509547D-7 MCEVD = .48748748748748D3+.57D-5+.5604645D-6+.31786509547D-7 MCFVD = -39.689539609539D+1 AVS = 0.0 BVS = 0.0 CVS = 0.0 IVI = 2 C***** EXPRESSION RESULTS ASSIGNED TO D.P. RESULT FOR VISUAL COMPARISON C***** ARGUMENTS OF SNGL - VARIABLE, SIMPLE EXPRESSION CMAVD = AVS + SNGL(MCAVD) - BVS WRITE (NUVI,661) MCAVD,CMAVD CMAVD = CVS + SNGL(MCBVD) + AVS WRITE (NUVI,661) MCBVD, CMAVD CMAVD = SNGL(MCCVD) WRITE (NUVI,661) MCCVD,CMAVD CMBVD = -MCBVD CMAVD = -SNGL(MCBVD - CMBVD) CMCVD = - (MCBVD + MCBVD) WRITE (NUVI,661) CMCVD,CMAVD CMCVD = MCDVD * MCDVD CMAVD = BVS + SNGL(MCDVD**IVI) + CVS WRITE (NUVI,661) CMCVD, CMAVD C***** ARGUMENT OF SNGL - INTRINSIC FUNCTION WITH DIFFERENT NO. OF ARG CMAVD = -(CVS + SNGL(DABS(MCDVD)) + BVS) WRITE (NUVI,661) MCDVD, CMAVD CMAVD = AVS - BVS + SNGL(DMIN1(MCEVD,MCFVD)) WRITE (NUVI,661) MCFVD, CMAVD CMAVD = CVS + BVS + SNGL(DMAX1(MCCVD,MCEVD,MCFVD)) WRITE (NUVI,661) MCEVD, CMAVD WRITE (NUVI, 662) 661 FORMAT(1H0,1X,6HLINE A,D25.14/2X,6HLINE B,D25.14) 662 FORMAT(33H0 LINE B SHOULD AGREE WITH LINE A /40H ONLY TO THE PREC AISION OF A REAL DATUM. /37H REMAINING DIGITS RESULT FROM OUTPUT / B 33H CONVERSION WHEN A REAL VALUE IS / 32H ASSIGNED TO D.P. FOR CPRINTING. ) C***** END OF SEGMENT 066 C***** WHEN EXECUTING ONLY SEGMENT 066, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** IFREL - (067) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST INTRINSIC FUNCTION REAL (OBTAIN REAL PART OF 8.2/39 C***** COMPLEX ARGUMENT ). (TABLE 3) C***** C***** S P E C I F I C A T I O N S SEGMENT 067 C***** C***** WHEN EXECUTING ONLY SEGMENT 067, THE SPEC+F+CAT+ON STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= COMPLEX CHAVC,CHBVC,CHCVC,CHDVC,CHEVC,CHFVC C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 067, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** WRITE (NUVI,0670) 0670 FORMAT (1H1,1X,34HIFREL - (067) INTRINSIC FUNCTION--/ 16X, 4HREAL/ 1 2X,14HASA REF. - 8.2// 2 2X,7HRESULTS) C***** HEADER FOR SEGMENT 067 WRITTEN CHAVC = (3.2,1.86) CHBVC = (2.1,0.0) CHCVC = (3.7,-1.2) CHDVC = (+45.1,+2.2) CHEVC = (-16.0, 0.0) CHFVC = (-32.0, -1.1) CMAVS = REAL(CHAVC) CMBVS = CMAVS - 3.2 CMAVS = REAL(CHBVC) CMCVS = CMAVS - 2.1 CMAVS = REAL(CHCVC) CMDVS = CMAVS - 3.7 CMAVS = REAL(CHDVC) CMEVS = CMAVS - 45.1 CMAVS = ABS(REAL(CHEVC) + REAL(CHFVC)) CMFVS = CMAVS - 48.0 CMAVS = AMAX1(REAL(CHAVC),REAL(CHBVC), REAL(CHEVC-CHFVC)) CMGVS = CMAVS - 16.0 WRITE (NUVI,0671) CMBVS,CMCVS,CMDVS,CMEVS,CMFVS,CMGVS C***** REAL CONSTANTS HAVING ONLY FRACTIONAL PARTS(NO EXPONENT) CHAVC = (.789,.12) CHBVC = (.13,1.2) CHCVC = (.507,-2.2) CHDVC = (+.5401,+.5) CHEVC = (-.5,0.25) CHFVC = (-.0625, 1.1) CMAVS = REAL(CHAVC) CMBVS = CMAVS - .789 CMAVS = REAL(CHBVC) CMCVS = CMAVS -0.13 CMAVS = REAL(CHCVC) CMDVS = CMAVS -0.507 CMAVS = REAL(CHDVC) CMEVS = CMAVS -0.5401 CMAVS = REAL(CHEVC+CHFVC) CMFVS = CMAVS + 0.5625 CMAVS = REAL(CHEVC) - REAL(CHFVC) CMGVS = CMAVS + 0.4375 WRITE (NUVI,0671) CMBVS,CMCVS,CMDVS,CMEVS,CMFVS,CMGVS C***** REAL CONSTANTS HAVING ONLY INTEGRAL PARTS(NO EXPONENT) C***** 5.1.1.2/22 CHAVC = (23.,0.1) CHBVC = (12.,+1.2) CHCVC = (1.,-2.3) CHDVC = (+45.,+.6) CHEVC = (19.0, 1.0) CHFVC = (-32.0, 2.0) CMAVS = REAL(CHAVC) CMBVS = CMAVS - 23.0 CMAVS = REAL(CHBVC) CMCVS = CMAVS - 12.0 CMAVS = REAL(CHCVC) CMDVS = CMAVS - 1.0 CMAVS = REAL(CHDVC) CMEVS = CMAVS - 45.0 CMAVS = SIGN(DIM(REAL(CHEVC),REAL(CHFVC)),REAL(CHFVC)) CMFVS = CMAVS + 51.0 CMAVS = REAL((16.0,1.0) + CHEVC + CHFVC) CMGVS = CMAVS - 3.0 WRITE (NUVI,0671) CMBVS,CMCVS,CMDVS,CMEVS,CMFVS,CMGVS WRITE (NUVI,0672) 0671 FORMAT (/6(F20.4/)) 0672 FORMAT ( /40H ALL ABOVE ANSWERS SHOULD BE 0 FOR THIS / 132H TEST SEGMENT TO BE SUCCESSFUL.) C***** END OF TEST SEGMENT 067 C***** WHEN EXECUTING ONLY SEGMENT 067, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** IFIMG - (068) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST INTRINSIC FUNCTION AIMAG (OBTAIN IMAGINARY PART 8.2/41 C***** OF COMPLEX ARGUMENT ) (TABLE 3) C***** C***** S P E C I F I C A T I O N S SEGMENT 068 C***** C***** WHEN EXECUTING ONLY SEGMENT 068, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= COMPLEX CHAVC,CHBVC,CHCVC,CHDVC,CHEVC,CHFVC,CHGVC,CHHVC,CHIVC, C= 1CHJVC,CHKVC,CHLVC C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 068, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** WRITE (NUVI,0680) 0680 FORMAT (1H1,1X,40HIFIMG - (068) INTRINSIC FUNCTION - AIMAG/16X, 119HOBTAIN IMAGINARY PT/16X,19HOF COMPLEX ARGUMENT/ 2X, 213HASA REF.- 8.2//2X,7HRESULTS) C***** HEADER FOR SEGMENT 068 WRITTEN C***** IMAGINARY PARTS OF COMPLEX NUMBERS HAVING BOTH INTEGRAL C***** AND FRACTIONAL PARTS. (NO EXPONENT) CHAVC = (3.2,1.86) CHBVC = (2.1,0.0) CHCVC = (37.0,-1.2) CHDVC = (+45.1,+2.2) CMAVS = AIMAG(CHAVC) CMBVS = CMAVS - 1.86 CMAVS = AIMAG(CHBVC) CMCVS = CMAVS - 0.0 CMAVS = AIMAG(CHCVC) CMDVS = CMAVS + 1.2 CMAVS = AIMAG(CHDVC) CMEVS = CMAVS -2.2 WRITE (NUVI,0681) CMBVS,CMCVS,CMDVS,CMEVS C***** IMAGINARY PARTS OF COMPLEX NUMBERS HAVING ONLY FRACTIONAL C***** PARTS (NO EXPONENT) CHAVC = (.789,.00) CHBVC = (1.2,.789) CHCVC = (+4.56,-.456) CHDVC = (-12.3,+.001) CMAVS = AIMAG(CHAVC) CMBVS = CMAVS - 0.0 CMAVS = AIMAG(CHBVC) CMCVS = CMAVS - .789 CMAVS = AIMAG(CHCVC) CMDVS = CMAVS + .456 CMAVS = AIMAG(CHDVC) CMEVS = CMAVS - 0.001 WRITE (NUVI,0681) CMBVS,CMCVS,CMDVS,CMEVS C***** IMAGINARY PARTS OF COMPLEX NUMBERS HAVING ONLY INTEGRAL C***** PARTS (NO EXPONENT) CHAVC =(-12.,12.) CHBVC = (+1.23,0.) CHCVC = (0.0, -16.0) CHDVC = (-1.1, -32.0) CMAVS = AIMAG(CHAVC) CMBVS = CMAVS - 12.0 CMAVS = AIMAG(CHBVC) CMCVS = CMAVS + 0.0 CMAVS = ABS(AIMAG(CHCVC)+AIMAG(CHDVC)) CMDVS = CMAVS - 48.0 CMAVS = AMAX1(AIMAG(CHAVC), AIMAG(CHBVC), AIMAG(CHCVC-CHDVC)) CMEVS = CMAVS - 16.0 WRITE (NUVI,0681) CMBVS,CMCVS,CMDVS,CMEVS C***** IMAGINARY PARTS OF COMPLEX NUMBERS HAVING A DECIMAL EXPONENT. CHAVC = (2.3E0,1.2E0) CHBVC = (1.2,.56E2) CHCVC = (.24,1.E1) CHDVC = (1.,+7.8E+1) CHEVC = (1.5, 16.0) CHFVC = (1.0, -32.0) CHGVC = (1.E0,-7.99E-1) CHHVC = (27.00,.55E-1) CHIVC = (1.E0,2.E-0) CHJVC = (1.2,1.E+1) CHKVC = (1.E-1,+7.E0) CHLVC = (1.7,-99.E-1) CMAVS = AIMAG(CHAVC) CMBVS = CMAVS - 1.2E0 CMAVS = AIMAG(CHBVC) CMCVS = CMAVS - .56E2 CMAVS = AIMAG(CHCVC) CMDVS = CMAVS - 1.E1 CMAVS = AIMAG(CHDVC) CMEVS = CMAVS - 7.8E+1 WRITE (NUVI,0681) CMBVS,CMCVS,CMDVS,CMEVS CMAVS = SIGN(DIM(AIMAG(CHEVC),AIMAG(CHFVC)), AIMAG(CHFVC)) CMBVS = CMAVS + 48.0 CMAVS = AIMAG((1.0, 16.0) + CHEVC + CHFVC) CMCVS = CMAVS + 0.0 CMAVS = AIMAG(CHGVC) CMDVS = CMAVS + 7.99E-1 CMAVS = AIMAG(CHHVC) CMEVS = CMAVS - .55E-1 WRITE (NUVI,0681) CMBVS,CMCVS,CMDVS,CMEVS CMAVS = AIMAG(CHIVC) CMBVS = CMAVS - 2.E-0 CMAVS = AIMAG(CHJVC) CMCVS = CMAVS - 1.E+1 CMAVS = AIMAG(CHKVC) CMDVS = CMAVS - 7.E0 CMAVS = AIMAG(CHLVC) CMEVS = CMAVS + 99.E-1 WRITE (NUVI,0681) CMBVS,CMCVS,CMDVS,CMEVS WRITE (NUVI,0682) 0681 FORMAT ( / 4(F20.5 / )) 0682 FORMAT ( /40H ALL ABOVE ANSWERS SHOULD BE 0 FOR THIS / 132H TEST SEGMENT TO BE SUCCESSFUL.) C***** END OF TEST SEGMENT 068 C***** WHEN EXECUTING ONLY SEGMENT 068, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** IFDBL - (069) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST INTRINSIC FUNCTION DBLE (EXPRESS S.P. ARGUMENT 8.2/43 C***** IN DOUBLE PRECISION FORM ) (TABLE 3) C***** INTRINSIC FUNCTIONS DABS,DSIGN,DMIN1,DMAX1,AMAX1 C***** ASSUMED WORKING. C***** C***** S P E C I F I C A T I O N S SEGMENT 069 C***** C***** WHEN EXECUTING ONLY SEGMENT 069, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION MCAVD,MCBVD,MCCVD,MCDVD,MCEVD,MCFVD,MCGVD C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 069, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** WRITE (NUVI,0690) 0690 FORMAT (1H1,1X,39HIFDBL - (069) INTRINSIC FUNCTION - DBLE/16X, 126HS.P. ARGUMENT IN D.P. FORM / 2X,13HASA REF.- 8.2//2X,7HRESULTS) C***** HEADER FOR SEGMENT 069 WRITTEN CMAVS = 0.9765625E-3 CMBVS = -.1953125E-2 CMCVS = .5859375E-2 CMDVS = -.1048576E+7 CMEVS = +114688.0 MCAVD = 0.0D0 MCBVD = MCAVD * DBLE(CMAVS) MCCVD = DMIN1(DBLE(CMAVS),DBLE(CMEVS)) MCDVD = MCAVD * MCBVD - DABS(DBLE(CMBVS)) MCEVD = MCAVD - DSIGN(DBLE(CMCVS),DBLE(CMBVS)) MCFVD = - DABS(DBLE(CMDVS)) + MCAVD MCGVD = DMAX1(DBLE(AMAX1(CMDVS,CMEVS)),MCBVD) WRITE(NUVI,691) CMAVS, MCCVD, CMBVS, MCDVD, 1 CMCVS, MCEVD, CMDVS, MCFVD, CMEVS, MCGVD 691 FORMAT(1H0,1X,6HLINE A, E18.7/ 8H LINE B, D25.14) WRITE(NUVI, 692) 692 FORMAT(1H0,38H A COMPARISON OF LINE A AGAINST LINE B /1X, 1 40H IS NEEDED TO CHECK THE VALIDITY OF TEST) C***** END OF TEST SEGMENT 069 C***** WHEN EXECUTING ONLY SEGMENT 069, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** IFCPX - (070) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST INTRINSIC FUNCTION CMPLX (EXPRESS TWO REAL 8.2/45 C***** ARGUMENTS IN COMPLEX FORM) (TABLE 3) C***** GENERAL COMMENTS C***** SUBTRACTION OF COMPLEX NUMBERS ASSUMED WORKING C***** C***** S P E C I F I C A T I O N S SEGMENT 070 C***** C***** WHEN EXECUTING ONLY SEGMENT 070, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= COMPLEX CHAVC,CHBVC,CHCVC,CHDVC,CHEVC,CHFVC,CHGVC C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** WHEN EXECUTING ONLY SEGMENT 070, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 WRITE (NUVI,0700) 0700 FORMAT (1H1, 1X,40HIFCPX - (070) INTRINSIC FUNCTION - CMPLX/16X, 126HEXPRESS TWO REAL ARGUMENTS/16X,15HIN COMPLEX FORM/15H ASA REF. 2- 8.2//2X,7HRESULTS) C***** HEADER FOR SEGMENT 070 WRITTEN CMAVS = 23.123 CMBVS = -.78 CMCVS = +17. CMDVS = 157.E-1 CMEVS = -.985E1 CMFVS = +88.E+0 CHAVC = CMPLX(CMAVS,CMBVS) CHBVC = CHAVC - (23.123,-.78) CHAVC = CMPLX(CMBVS,15.0) CHCVC = CHAVC - (-.78,15.0) CHAVC = CMPLX(CMDVS,CMFVS) CHDVC = CHAVC - (157.E-1,+88.E+0) CHAVC = CMPLX(0.0,0.E0) CHEVC = CHAVC CHAVC = CMPLX(CMEVS,CMFVS) CHFVC = CHAVC - (-.985E1,+88.E+0) CHAVC = CMPLX(CMCVS,-0.0E-1) CHGVC = CHAVC - (+17.0,0.0) WRITE (NUVI,0702) CHBVC, CHCVC, CHDVC, CHEVC, CHFVC, CHGVC WRITE (NUVI,0701) 0701 FORMAT (//2X,37HTHE ABOVE ANSWERS SHOULD ALL BE 0 FOR/1X, 136H THIS TEST SEGMENT TO BE SUCCESSFUL.) 0702 FORMAT (6(/F17.7,F17.7)) C***** END OF TEST SEGMENT 070 C***** WHEN EXECUTING ONLY SEGMENT 070, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** IFCJG - (071) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST INTRINSIC FUNCTION CONJG (OBTAIN CONJUGATE OF A 8.2/47 C***** COMPLEX ARGUMENT) (TABLE 3) C***** GENERAL COMMENTS C***** SUBTRACTION OF COMPLEX NUMBERS ASSUMED WORKING C***** C***** S P E C I F I C A T I O N S SEGMENT 071 C***** C***** WHEN EXECUTING ONLY SEGMENT 071, THE SPECIFICATION STATEMENTS C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= COMPLEX CHAVC, CHBVC, CHCVC, CHDVC ,CHEVC C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 071, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** WRITE (NUVI,0710) 0710 FORMAT (1H1, 1X,40HIFCJG - (071) INTRINSIC FUNCTION - CONJG/16X, 119HOBTAIN CONJUGATE OF/16X,16HA COMPLEX NUMBER/ 217H ASA REFS. - 8.2//2X,7HRESULTS) C***** HEADER FOR SEGMENT 071 WRITTEN CHAVC = (1.1,+2.1) CHBVC = CONJG(CHAVC) CHCVC = CHBVC - (1.1,-2.1) CHEVC = (-2.E0, -3.E-1) CHBVC = CONJG(CHEVC) CHDVC = CHBVC - (-2.E0,3.E-1) WRITE (NUVI,0711) CHCVC, CHDVC CHAVC = (-.2,+.3) CHBVC = CONJG(CHAVC) CHCVC = CHBVC - (-.2,-.3) CHAVC = (23.1E-1,1.E-2) CHBVC = CONJG(CHAVC) CHDVC = CHBVC - (23.1E-1,-1.E-2) WRITE (NUVI,0711) CHCVC,CHDVC CHBVC = CONJG((1.2,2.2)) CHCVC = CHBVC - (1.2,-2.2) CHBVC = CONJG((-1.0,2.0E-1)) CHDVC = CHBVC - (-1.0,-2.0E-1) WRITE (NUVI,0711) CHCVC, CHDVC CHBVC = CONJG((.1,.2E0)) CHCVC = CHBVC - (.1,-.2E0) CHDVC = CONJG((.0,-0.E0)) WRITE (NUVI,0711) CHCVC, CHDVC WRITE (NUVI,0712) 0711 FORMAT (4(/ F17.7, F10.7)) 0712 FORMAT (//38H ALL ABOVE ANSWERS MUST BE 0 FOR THIS/1X, 131H TEST SEGMENT TO BE SUCCESSFUL.) C***** END OF TEST SEGMENT 071 C***** WHEN EXECUTING ONLY SEGMENT 071, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** IFBMS - (072) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST THAT ALL INTRINSIC FUNCTIONS WOULD ACCEPT 8.2/32 C***** ANY EXPRESSION OF THE TYPE SPECIFIED IN THE (TABLE 3) C***** INTRINSIC FUNCTION TABLE - ASA REFS - 8.2/01-47 C***** GENERAL COMMENTS C***** SEGMENTS 055 TO 071 ASSUMED WORKING C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 072, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** WRITE (NUVI,0720) 0720 FORMAT (1H1,1X,37HIFBMS - (072) BASIC FORTRAN INTRINSIC/10X, 128HFUNCTIONS ACCEPT EXPRESSIONS/10X,30HOF TYPE SPECIFIED IN I.F.TA 2BLE//15H ASA REF.- 8.2//2X,7HRESULTS) C***** HEADER FOR SEGMENT 072 WRITTEN C***** TEST ABS - ABSOLUTE VALUE OF REAL ARGUMENT 8.2/11 CMAVS = 0.5 CMBVS = -.25 CMCVS = 16.0 CMDVS = -4.0 CMEVS = ABS(CMAVS + CMBVS) + 1.0 CMFVS = CMEVS - (0.5 - .25) - 1.0 CMEVS = ABS(0.0 -ABS(CMAVS - CMCVS+ CMDVS)) CMGVS = CMEVS + (0.5 - 16.0 - 4.0) CMEVS = ABS(CMAVS + 1.0 - (CMCVS + CMDVS) + 0.5 * 8.0) CMHVS = CMEVS + (0.5 + 1.0 - (16.0 - 4.0) + 4.0) CMEVS = ABS(1.0E0 + (1.0 * 1.0 / 1.0) **2) CMIVS = CMEVS - 2.0 WRITE (NUVI,0721) CMFVS , CMGVS , CMHVS , CMIVS C***** TEST OF IABS - ABSOLUTE VALUE OF INTEGER ARGUMENT 8.2/12 MCAVI = 2 MCBVI = 10 MCCVI = IABS (MCAVI + MCBVI) MCDVI = MCCVI - 12 MCCVI = IABS(MCAVI * 2 + MCBVI / 2) +1 MCEVI = MCCVI - 10 MCCVI = IABS(-MCBVI /(-2) - MCBVI ** 1 + (1 * 2 * 3 / 2 - 3) - 10 1 + 10 + MCBVI / MCAVI - 5) MCFVI = MCCVI - 5 MCCVI = IABS(0 - IABS(-5 * 1 / 5 - 5 * IABS(-1))) MCGVI = MCCVI - 6 WRITE (NUVI, 0722) MCDVI , MCEVI , MCFVI , MCGVI C***** TEST OF FLOAT - CONVERSION FROM INTEGER TO REAL 8.2/29 CMEVS = FLOAT (MCAVI + MCBVI) CMFVS = CMEVS - 12.0 CMEVS = FLOAT(MCAVI * 2 /4 + MCBVI ** 1) CMGVS = CMEVS - 11.0 CMEVS = FLOAT((23 + 46)/69 + 10 - MCBVI) *2.0 + 1.5 CMHVS = CMEVS - 3.5 CMEVS = (76.5 * 1.0 - FLOAT (76 * 1)) * 4.0 CMIVS = CMEVS - 2.0 WRITE (NUVI,0723) CMFVS, CMGVS, CMHVS, CMIVS C***** TEST OF IFIX - CONVERSION FROM REAL TO INTEGER 8.2/30 MCCVI = IFIX(CMAVS - CMBVS) MCDVI = MCCVI MCCVI = IFIX(CMAVS *1.0 + CMBVS/CMBVS - (CMCVS - CMDVS)) MCEVI = MCCVI + 18 MCCVI = 1 + IFIX(2.5 * 2.0) - IFIX(10.0 /2.0) MCFVI = MCCVI - 1 MCCVI = 2 + IFIX(2.5 ** 1.0 + (10.65 + 3.45)) MCGVI = MCCVI - 18 WRITE (NUVI,0724) MCDVI, MCEVI, MCFVI, MCGVI C***** TEST OF SIGN - TRANSFER OF SIGN WITH REAL ARGUMENTS 8.2/31 CMEVS = SIGN(CMAVS+CMDVS,CMDVS-CMBVS) CMFVS = CMEVS - (CMAVS + CMDVS) CMEVS = SIGN(25.0 + 0.0 * 4.0,-24.4/6.1 * 1.0) CMGVS = CMEVS + 25.0 CMEVS = SIGN(10.5,SIGN(2.0,-4.5)) CMHVS = CMEVS + 10.5 CMEVS = SIGN(1.0,SIGN(-2.0,SIGN(2.0,-1.0))) CMIVS = CMEVS + 1.0 WRITE (NUVI,0725) CMFVS, CMGVS, CMHVS, CMIVS C***** TEST OF ISIGN - TRANSFER OF SIGN WITH INTEGER ARGUMENT 8.2/32 MCCVI = ISIGN(MCAVI,MCAVI + MCBVI - 13) MCDVI = MCCVI + 2 MCCVI = ISIGN(10,-5 - 10/2 + 1**2) MCEVI = MCCVI + 10 MCCVI = ISIGN( 1 + 2 + 3 , ISIGN(-2,7 + 5)) MCFVI = MCCVI - 6 MCCVI = ISIGN(1,ISIGN(-1,ISIGN(+1,-1))) MCGVI = MCCVI + 1 WRITE (NUVI,0726) MCDVI, MCEVI, MCFVI, MCGVI C***** TEST OF COMBINATION OF ABS,IABS,FLOAT,IFIX,SIGN,ISIGN CMEVS = FLOAT(IABS(IFIX(ABS(-5.0 + SIGN(-1.0,2.0))))) CMFVS = CMEVS - 4.0 MCCVI = IFIX(FLOAT(ISIGN(1+2,IABS(1 + ISIGN(1,-1))))) MCDVI = MCCVI - 3 CMEVS = SIGN(ABS(1.0 + FLOAT(-20)), FLOAT(IFIX(1.0))) CMGVS = CMEVS - 19.0 MCCVI = ISIGN(IABS(IFIX(1.0) - 2) , -((1 + IFIX(-1.0)) +1)) MCEVI = MCCVI + 1 WRITE (NUVI,0727) CMFVS, CMGVS, MCDVI, MCEVI CMEVS = ABS(SIGN(1.0 + 2.0, FLOAT(IABS(-2)))) CMFVS = CMEVS - 3.0 MCCVI = IABS(IFIX(SIGN(-2.0,2.0))) MCDVI = MCCVI - 2 CMEVS = 1.2 + FLOAT(1 + 5 - ISIGN(-1,6)) CMGVS = CMEVS - 6.2 MCCVI = 25 - ISIGN(IFIX(2.0),-IABS(-5)) MCEVI = MCCVI - 27 WRITE (NUVI,0728) CMFVS, CMGVS, MCDVI, MCEVI C***** END OF TEST STATEMENTS 0721 FORMAT ( / 30H TEST OF ABS IN EXPRESSIONS -/ 4(F17.1/)) 0722 FORMAT ( 31H TEST OF IABS IN EXPRESSIONS -/ 4(I15/)) 0723 FORMAT ( 32H TEST OF FLOAT IN EXPRESSIONS -/ 4(F17.1/)) 0724 FORMAT ( 31H TEST OF IFIX IN EXPRESSIONS -/ 4(I15/)) 0725 FORMAT ( 31H TEST OF SIGN IN EXPRESSIONS -/ 4(F17.1/)) 0726 FORMAT ( 32H TEST OF ISIGN IN EXPRESSIONS -/ 4(I15/)) 0727 FORMAT ( 40H COMBINATION OF ALL INTRINSIC FUNCTIONS, 1 2(/F17.1), 2(/I15)) 0728 FORMAT ( 2(F17.1/),2(I15/)/ 35H ALL ABOVE ANSWERS SHOULD BE 0 FO 1R/2X,35HTHIS TEST SEGMENT TO BE SUCCESSFUL.) C***** END OF TEST SEGMENT 072 C***** WHEN EXECUTING ONLY SEGMENT 072, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** IFFMS - (073) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST THAT ALL INTRINSIC FUNCTIONS IN FORTRAN WOULD 8.2/07 C***** ACCEPT ANY EXPRESSION OF THE TYPE SPECIFIED IN THE (PG 24) C***** INTRINSIC FUNCTION TABLE - ASA REFS - 8.2/TABLE 3 C***** SEGMENTS 055 - 071 ASSUMED WORKING. C***** C***** S P E C I F I C A T I O N S SEGMENT 073 C***** C***** WHEN EXECUTING ONLY SEGMENT 073, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION MCA1I(5),AC2S(5,6) C= INTEGER MCA3I(2,3,3) C= DOUBLE PRECISION DPAVD,DPBVD,DPCVD,DPDVD,DPEVD,DPFVD,DPGVD, C= 1DPA1D(5),FC2D(5,5) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 073, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** WRITE (NUVI,0730) 0730 FORMAT (1H1,1X,41HIFFMS - (073) FORTRAN INTRINSIC FUNCTIONS/16X, 126HACCEPT EXPRESSIONS OF TYPE/16X,22HSPECIFIED IN I.F.TABLE/ 223H ASA REF.- 8.2/TABLE 3//2X,7HRESULTS) C***** HEADER FOR SEGMENT 073 WRITTEN C***** TEST OF DABS IN EXPRESSIONS 8.2/13 DPAVD = 1.25D0 DPBVD = - 10.0D0 DPCVD = DABS(DPAVD + DPBVD) DPDVD = DPCVD - 10.0D0 + 1.25D0 DPCVD = DABS(1.0D0 + 2.D0 - 3.0D0 * 50.D-1) DPEVD = DPCVD - 12.D0 DPCVD = DABS( DPAVD * 1.D0 - 1.25D0 + DPBVD/2.D0) + 1.D0 DPFVD = DPCVD - 6.0D0 DPGVD = 1.0D0 + DABS(2.5D0 - 1.5D0 * 1.0D0) - 2.D0 WRITE (NUVI,0731) DPDVD, DPEVD, DPFVD, DPGVD C***** TEST OF AINT IN EXPRESSIONS 8.2/14 CMAVS = 1.23 CMBVS = 27.998 CMCVS = -9.007E0 CMDVS = AINT(CMAVS + CMBVS - CMCVS) CMEVS = CMDVS - 38.0 CMDVS = AINT(1.0 + 2.0 /1.0 - 3.0 * 2.E0) CMFVS = CMDVS + 3.0 CMDVS = AINT(4. + AINT(2.E0 + CMCVS)) CMGVS = CMDVS + 3.0 CMDVS = AINT(AINT(AINT( 1.4 - 2.7))) CMHVS = CMDVS + 1.0 WRITE (NUVI,0732) CMEVS, CMFVS, CMGVS, CMHVS C***** TEST OF INT IN EXPRESSIONS 8.2/15 MCAVI = INT(1.0 + 2.1 + 3.2 - 8.4 / 2.5 * 2.6) MCBVI = MCAVI + 2 MCAVI = INT(100.0/6.0 - (2.0 **4.0) + (((2.0-3.0)+4.0) * 2.0)) MCCVI = MCAVI - 6 MCAVI = INT((100.2/6.1/5.0+4.10) / 2.0) MCDVI = MCAVI - 3 MCAVI = INT(9.0/2.0) + INT(5.1/4.0) MCEVI = MCAVI - 5 WRITE (NUVI,0733) MCBVI, MCCVI, MCDVI, MCEVI C***** TEST OF IDINT IN EXPRESSIONS 8.2/16 DPA1D(1) = 2.5D1 MCAVI = IDINT(DPBVD / 2.0D0 + 1.5D0) MCBVI = MCAVI + 3 MCAVI = IDINT( 1.0D1 + 5.D0 * 2.D1 / 49.D1) + 1 MCCVI = MCAVI - 11 MCAVI = IDINT(DPA1D(1)) MCDVI = MCAVI - 25 MCAVI = IDINT(DPA1D(1) + DPA1D(1)/4.0D0) MCEVI = MCAVI - 31 WRITE (NUVI,0734) MCBVI, MCCVI, MCDVI, MCEVI C***** TEST OF AMOD, MOD IN EXPRESSIONS 8.2/17-18 AC2S(1,1) = 27.0 CMDVS =AMOD(25.0 + AC2S(1,1), 1.0 * 5.0) CMEVS = CMDVS - 2.0 CMDVS =AMOD(99.0,AMOD(25.0+ 27.0, 5.0)) CMFVS = CMDVS - 1.0 MCA3I(1,2,3) = 5 MCAVI = MOD(98 + 1, MOD(25 + 27,5)) MCBVI = MCAVI - 1 MCAVI = MOD (MCA3I (1,2,3), 2) MCCVI = MCAVI - 1 WRITE (NUVI,0735) CMEVS, CMFVS, MCBVI, MCCVI C***** TEST OF AMAX0, AMAX1, MAX0, MAX1 AND DMAX1 IN EXPRESSIONS C***** 8.2/19-23 FC2D(1,1) = 27.0D0 CMDVS = AMAX0(5 + 9, MAX0(14 * 2, MAX1( 2.0 /1.0,1.0))) CMEVS = CMDVS - 28.0 CMDVS = AMAX1((AMAX0((MAX0(29,-100)),5 + 10)), 2.0 * 2.0) CMFVS = CMDVS - 29.0 MCAVI = MAX1((AMAX0(25, -(1 * 5))),100.0) MCBVI = MCAVI - 100 DPCVD = DMAX1(FC2D(1,1),DMAX1(1.0D0, 0.D0 * FC2D(1,1))) DPDVD = DPCVD - 27.0D0 WRITE (NUVI,0736) CMEVS, CMFVS, MCBVI, DPDVD C***** TEST OF AMIN0, AMIN1, MIN0, MIN1 AND DMIN1 IN EXPRESSIONS C***** 8.2/24-27 CMDVS = AMIN1(2.5 + AC2S(1,1), AMIN0(-5, MIN0(0,1))) CMEVS = CMDVS + 5.0 MCAVI = MIN0((MIN1( -99., 100.0 - 1.0 * 99.)), 2) MCBVI = MCAVI + 99 MCAVI = MIN1( 2.0,AMIN1( 5. * 3.0, -9.0 /(-9.0))) MCCVI = MCAVI - 1 DPCVD = DMIN1(FC2D(1,1), DMIN1(2.0D-1,0.0D0)) DPDVD = DPCVD - 0.0D0 WRITE (NUVI,0737) CMEVS, MCBVI, MCCVI, DPDVD C***** TEST OF DSIGN,AND DBLE IN EXPRESSIONS 8.2/33,8.2/43 DPCVD= DSIGN(FC2D(1,1) * 1.0D1, - 1.0D0) DPDVD = DPCVD + 27.0D1 DPCVD = DSIGN((DSIGN(2.0D0, -1.0D0) + 0.0D0), 9.0D0) DPEVD = DPCVD - 2.0D0 DPCVD = DBLE( 2.0 * 4.0 + AC2S(1,1)) DPFVD = DPCVD - 35.0D0 DPCVD = DBLE(-32.00 / 8.0) * DBLE(-2.0) DPGVD = DPCVD - 8.0D0 WRITE (NUVI,0738) DPDVD, DPEVD, DPFVD, DPGVD C***** TEST OF DIM AND IDIM IN EXPRESSIONS 8.2/34-35 CMDVS = DIM( 2.0 * 3.5 /7.0, AC2S(1,1)) CMEVS = CMDVS - 0.0 CMDVS = DIM(DIM(9.0,-5.5), DIM(6.0,0.0)) CMFVS = CMDVS - 8.5 MCA1I(1)=8 MCCVI = IDIM(MCA1I(1) * 1, - (IDIM(0, -3))) MCDVI = MCCVI - 11 MCCVI = IDIM(((4 + 2 + 3)/3), - 2) MCEVI = MCCVI - 5 WRITE (NUVI,9995) CMEVS, CMFVS, MCDVI, MCEVI C***** TEST OF SNGL, REAL , AIMAG, CMPLX AND CONJG IN EXPRESSIONS C***** 8.2/36-47 CMEVS = SNGL (1.0D0 * 2.D1 + AC2S(1,1)) CMFVS = CMEVS - 47.0 CMEVS = REAL( CONJG((1.0, -2.0)))+ AIMAG((99.0, -7.0)) CMGVS = CMEVS + 6.0 CMEVS = AIMAG(CMPLX(REAL((2.0,1.0)), SNGL (1.0D0))) CMHVS = CMEVS - 1.0D0 WRITE (NUVI,0739) CMFVS, CMGVS, CMHVS C***** SOME COMBINATIONS OF ABOVE INTRINSIC FUNCTIONS CMEVS = AMIN1((FLOAT(IDIM(1+2,0))),(AIMAG(CMPLX(1.0,2.0)))) CMFVS = CMEVS - 2.0 CMEVS = REAL(CMPLX(SNGL(DABS(-DSIGN(DBLE(2.0),1.0D0))),CMAVS)) CMGVS = CMEVS - 2.0 WRITE (NUVI,9994) CMFVS, CMGVS C***** END OF TEST STATEMENTS FOR SEGMENT 073 0731 FORMAT (/ 30H TEST OF DABS IN EXPRESSIONS //4(D23.8/)) 0732 FORMAT ( 30H TEST OF AINT IN EXPRESSIONS //4(E19.6/)) 0733 FORMAT ( 30H TEST OF INT IN EXPRESSIONS //4(I10/)) 0734 FORMAT ( 30H TEST OF IDINT IN EXPRESSIONS//4(I10/)) 0735 FORMAT ( 35H TEST OF AMOD, MOD IN EXPRESSIONS // 1 2(E19.6/), 2(I10/)) 0736 FORMAT ( 40H TEST OF AMAX0,AMAX1,MAX0,MAX1 AND DMAX// 1 2(E19.6/), I10/ D23.8) 0737 FORMAT ( 40H1 TEST OF AMIN0,AMIN1,MIN0,MIN1 AND DMIN// 1 E19.6/ 2(I10/), D23.8) 0738 FORMAT (/ 39H TEST OF DSIGN AND DBLE IN EXPRESSIONS//4(D23.8/)) 0739 FORMAT ( 35H TEST OF SNGL,REAL,AIMAG,CMPLX AND / 123H CONJG IN EXPRESSIONS //3(E19.6/)) 9994 FORMAT ( 36H TEST OF SOME COMBINATIONS OF ABOVE/ 122H INTRINSIC FUNCTIONS //2(E19.6/) /40H ALL ABOVE ANSWERS SHOUL 2D BE 0 FOR THIS/27H SEGMENT TO BE SUCCESSFUL.) 9995 FORMAT ( /37H TEST OF DIM AND IDIM IN EXPRESSIONS/2(E19.6/), 1 2(I10/)) C***** END OF TEST SEGMENT 073 C***** WHEN EXECUTING ONLY SEGMENT 073, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END STOP END nbs07.d 480890333 170 2 100666 299 ` SAMPLE COMPUTER, FORTRAN COMPILER LEVEL DO NOT READ OR WRITE RECORD 2 . DOUBLE SPACE ON OUTPUT. ID 2 OPERATING SYSTEM VERSION DO NOT READ OR WRITE RECORD 4 . DOUBLE SPACE ON OUTPUT ID 4 DATE, INSTALLATION NAME DO NOT READ OR WRITE RECORD 6 DOUBLE SPACE ON OUTPUT ID 6 nbs07.f 480887331 170 2 100666 39369 ` C***** PART7 ***************************************************** C***** C***** ANSI FORTRAN (X3.9-1966) TEST PROGRAMS C***** C***** PREPARED BY THE NATIONAL BUREAU OF STANDARDS VERSION 3 C***** C***** JUNE 1973 C***** C***** PART 7 OF 14 PARTS C***** C***** SEGMENTS INCLUDED C***** C***** EXPON - 080 EXP C***** C***** DEXPO - 081 DEXP C***** C***** CEXPO - 082 CEXP C***** C***** LOGTM - 083 ALOG C***** C***** DPLOG - 084 DLOG C***** C***** CXLOG - 085 CLOG C***** C***** COLOG - 086 ALOG10 C***** C***** DCLOG - 087 DLOG10 C***** C***** SINUS - 088 SIN C***** C***** DPSIN - 089 DSIN C***** C***** CSICO - 090 CSIN (AND CCOS) C***** C***** COSNS - 091 COS C***** C***** DPCOS - 092 DCOS C***** C***** THE FOLLOWING SPECIFICATIONS ARE TO BE USED ONLY WHEN SEGMENTS C***** 080,081,082,083,084,085,086,087,088,089,090,091,092 C***** ARE RUN AS ONE MAIN PROGRAM. C***** DIMENSION L1I (10) DOUBLE PRECISION AVD, BVD, CVD, DVD, EVD, FVD, GVD, XVD, PIVD COMPLEX EP1C(30), AVC, BVC DATA LAZVI,LBZVI, LCZVI,LDZVI/2H0( ,2H, ,2H1/,1H)/ DATA L1I(1),L1I(2),L1I(3),L1I(4),L1I(5)/ - 2H1 , 2H2 , 2H3 , 2H4 , 2H5 /, - L1I(6),L1I(7),L1I(8),L1I(9),L1I(10)/ - 2H6 , 2H7 , 2H8 , 2H9 , 2H10 / C***** C***** END OF SPECIFICATIONS FOR SEGMENTS C***** 080,081,082,083,084,085,086,087,088,089,090,091,092 C*********************************************************************** C***** C***** EXPON - 080 C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** .TO TEST BASIC EXTERNAL FUNCTION - EXP - EXPONENTIAL 8.3.3 C***** .USED IN SIMPLE ARITHMETIC EXPRESSIONS TABLE 4 C***** .INTRINSIC FUNCTIONS ABS AND SIGN ASSUMED WORKING C***** ARGUMENTS ARE POWERS OF 2 C***** C***** S P E C I F I C A T I O N S SEGMENT 080 C***** C***** WHEN EXECUTING ONLY SEGMENT 080, REMOVE THE PRECEDING C***** SPECIFICATIONS. THIS SEGMENT HAS NO SPECIFICATIONS. C***** C***** I N P U T - O U T P U T T A P E ASSIGNMENT STATEMENTS IRVI = 5 NUVI = 6 C***** IDENTIFY THE SOURCE OF THE TEST PROGRAMS WRITE(NUVI,0071) 0071 FORMAT (41H1 F O R T R A N T E S T P R O G R A M S// 1 42H PREPARED BY NATIONAL BUREAU OF STANDARDS// 3 37H FOR USE ON LARGE FORTRAN PROCESSORS // 4 42H IN ACCORDANCE WITH ASA FORTRAN X3.9-1966// 5 23H VERSION 3 PART 7 ///) C***** 3 OF 6 INPUT CARDS IDENTIFY THE USERS SYSTEM AND COMPILER C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST READ(IRVI,0070) READ(IRVI,0072) READ(IRVI,0073) 0070 FORMAT(40H BASED ON ASA FORTRAN X3.9-1966 /) 0072 FORMAT(40H TEST PROGRAMS /) 0073 FORMAT(40H FORTRAN COMPILER /) WRITE(NUVI,0070) WRITE(NUVI,0072) WRITE(NUVI,0073) WRITE(NUVI,800) 800 FORMAT(15H1 EXPON - (080)//31H BASIC EXTERNAL FUNCTION -EXP- 1//26H (EXPONENTIAL -TYPE REAL) 2//27H ASA REF.- 8.3.3 (TABLE 4)//24H LINE 1 OF EACH PAIR IS/23H 3 HOLLERITH INFORMATION//9H RESULTS) C***** HEADER FOR SEGMENT 080 WRITTEN C***** ARGUMENT RANGE FROM -16.0 TO +16.0 AVS = -16.0 CVS = 4.0 BVS = EXP(AVS) WRITE (NUVI,801) BVS BVS = EXP(2. * CVS + AVS) WRITE (NUVI,802) BVS BVS = EXP(AVS + (3. * CVS)) WRITE (NUVI, 803) BVS BVS = EXP(ABS(AVS) + AVS) WRITE (NUVI, 804) BVS BVS = EXP(-AVS / CVS) WRITE (NUVI, 805) BVS BVS = EXP(SIGN(AVS + CVS * 2.0, CVS)) WRITE (NUVI, 806) BVS BVS = EXP(CVS + ABS(AVS) - 4.0) WRITE(NUVI, 807) BVS WRITE (NUVI, 808) 801 FORMAT( 9H0 X=-16.0,5X,25H0.1125351747192591145E-06/E27.7) 802 FORMAT( 9H0 X= -8.0,5X,25H0.3354626279025118388E-03/E27.7) 803 FORMAT( 9H0 X= -4.0,5X,25H0.1831563888873418029E-01/E27.7) 804 FORMAT( 9H0 X= 0.0,5X,25H0.1000000000000000000E+01/E27.7) 805 FORMAT( 9H0 X= 4.0,5X,25H0.5459815003314423908E+02/E27.7) 806 FORMAT( 9H0 X= 8.0,5X,25H0.2980957987041728275E+04/E27.7) 807 FORMAT( 9H0 X= 16.0,5X,25H0.8886110520507872637E+07/E27.7) 808 FORMAT(//37H LINE 2 OF EACH PAIR IS THE FUNCTION/25H CALCULATION 1 PRINTED TO ,8H7 DIGITS) C***** END OF TEST SEGMENT 080 C***** WHEN EXECUTING ONLY SEGMENT 080, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** DEXPO - 081 C***** C*********************************************************************** C***** GENERAL PURPOSE C***** .TO TEST BASIC EXTERNAL FUNCTION - DEXP - EXPONENTIAL ASA REF C***** USED IN SIMPLE ARITHMETIC EXPRESSIONS -SAME AS 8.3.3 C***** SEGMENT 080 EXCEPT DOUBLE PRECISION TABLE 4 C***** INTRINSIC FUNCTIONS DABS AND DSIGN ASSUMED WORKING C***** ARGUMENTS RANGE FROM -16.0D0 TO +16.0D0, POWERS OF 2 C***** C***** S P E C I F I C A T I O N S SEGMENT 081 C***** C***** WHEN EXECUTING ONLY SEGMENT 081, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION AVD, BVD, CVD C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 081, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** 810 FORMAT(15H1 DEXPO - (081)//32H BASIC EXTERNAL FUNCTION -DEXP- 1//38H (EXPONENTIAL -TYPE DOUBLE PRECISION) 2//27H ASA REF.- 8.3.3 (TABLE 4)//24H LINE 1 OF EACH PAIR IS/23H 3 HOLLERITH INFORMATION//9H RESULTS) WRITE (NUVI, 810) C***** HEADER FOR SEGMENT 081 WRITTEN AVD = -16.0D0 CVD = 4.0D0 BVD = DEXP(AVD) WRITE (NUVI, 811) BVD BVD = DEXP(2. * CVD + AVD) WRITE (NUVI, 812) BVD BVD = DEXP(AVD + (3. * CVD)) WRITE (NUVI, 813) BVD BVD = DEXP(DABS(AVD) + AVD) WRITE( NUVI, 814) BVD BVD = DEXP(-AVD / CVD) WRITE (NUVI, 815) BVD BVD = DEXP(DSIGN(AVD + CVD * 2.0D0, CVD)) WRITE (NUVI, 816) BVD BVD = DEXP(CVD + DABS(AVD) - 4.0) WRITE (NUVI, 817) BVD WRITE (NUVI, 818) 811 FORMAT( 9H0 X=-16.0,5X,25H0.1125351747192591145D-06/D34.14) 812 FORMAT( 9H0 X= -8.0,5X,25H0.3354626279025118388D-03/D34.14) 813 FORMAT( 9H0 X= -4.0,5X,25H0.1831563888873418029D-01/D34.14) 814 FORMAT( 9H0 X= 0.0,5X,25H0.1000000000000000000D+01/D34.14) 815 FORMAT( 9H0 X= 4.0,5X,25H0.5459815003314423908D+02/D34.14) 816 FORMAT( 9H0 X= 8.0,5X,25H0.2980957987041728275D+04/D34.14) 817 FORMAT( 9H0 X= 16.0,5X,25H0.8886110520507872637D+07/D34.14) 818 FORMAT(//37H LINE 2 OF EACH PAIR IS THE FUNCTION/25H CALCULATION A PRINTED TO ,9H14 DIGITS) C***** END OF TEST SEGMENT 081 C***** WHEN EXECUTING ONLY SEGMENT 081, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C****** C***** CEXPO - (082) C****** C*********************************************************************** C***** GENERAL PURPOSE ASA REF. C***** .TO TEST THE BASIC EXTERNAL FUNCTION- CEXP 8.3.3 C***** .TESTING RANGE EXTENDS FROM 0 TO 16 FOR MODULUS (TABLE 4) C***** AND ARGUMENT, VARIES BY STEPS OF PI/3 MAGNITUDE C***** .INTRINSIC FUNCTIONS CMPLX, SNGL, MOD ASSUMED WORKING C***** C***** S P E C I F I C A T I O N S SEGMENT 082 C***** C***** WHEN EXECUTING ONLY SEGMENT 082, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= COMPLEX EP1C(30), AVC, BVC C= DOUBLE PRECISION AVD, BVD C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 082, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** WRITE(NUVI,820) 820 FORMAT(15H1 CEXPO - (082)//32H BASIC EXTERNAL FUNCTION -CEXP- 1// 29H (EXPONENTIAL -TYPE COMPLEX)//27H ASA REF.- 8.3.3 (TABLE 4 2)//20H (COMPLEX ARGUMENT)/8X,15HEXPECTED RESULT /8X,15HFUNCTION R 3ESULT) C***** LOG OF 10 BVD = 2.3025850929940D0 C***** SINE OF 60 DEGREES AVD = .86602540378444D0 C***** INITIALIZE EP1C (EXPECTED VALUES) EP1C(1) = CMPLX(0.5E-7,SNGL(-AVD*1.D-7)) EP1C(2) = CMPLX(2.5E-7,SNGL(-AVD*5.D-7)) EP1C(3) = (1.E-6,0.0) EP1C(4) = (5.E-6,0.0) EP1C(5) = CMPLX(0.5E-5,SNGL(AVD*1.D-5)) EP1C(6) = CMPLX(2.5E-5,SNGL(AVD*5.D-5)) EP1C(7) = CMPLX(-.5E-4,SNGL(AVD * 1.D-4)) EP1C(8) = CMPLX(-2.5E-4,SNGL(AVD*5.D-4)) EP1C(9) = (-1.E-3,0.0) EP1C(10) = (-5.E-3,0.0) EP1C(11) = CMPLX(-0.5E-2,SNGL(-AVD*1.D-2)) EP1C(12) = CMPLX(-2.5E-2,SNGL(-AVD * 5.D-2)) EP1C(13) = CMPLX(0.5E-1,SNGL(-AVD*1.D-1)) EP1C(14) = CMPLX(2.5E-1,SNGL(-AVD*5.D-1)) EP1C(15) = (1.0,0.0) EP1C(16) = (5.0,0.0) EP1C(17) = CMPLX(0.5E1,SNGL(AVD * 1.D1)) EP1C(18) = CMPLX(2.5E1,SNGL(AVD * 5.D1)) EP1C(19) = CMPLX(-0.5E2,SNGL(AVD * 1.D2)) EP1C(20) = CMPLX(-2.5E2,SNGL(AVD * 5.D2)) EP1C(21) = (-1.E3,0.0) EP1C(22) = (-5.E3,0.0) EP1C(23) = CMPLX(-0.5E4,SNGL(-AVD * 1.D4)) EP1C(24) = CMPLX(-2.5E4,SNGL(-AVD * 5.D4)) EP1C(25) = CMPLX(0.5E5,SNGL(-AVD * 1.D5)) EP1C(26) = CMPLX(2.5E5,SNGL(-AVD * 5.D5)) EP1C(27) = (1.E6,0.0) EP1C(28) = (5.E6,0.0) EP1C(29) = CMPLX(0.5E7,SNGL(AVD * 1.D7)) EP1C(30) = CMPLX(2.5E7,SNGL(AVD * 5.D7)) IVI = 0 821 IVI = IVI + 1 IF ( MOD(IVI,2).EQ.0) GO TO 822 XIVS = ((IVI + 1)/2) - 8 AVS = BVD * XIVS GO TO 823 C***** 1.609 IS LOG OF 5 822 XIVS = (IVI / 2) - 8 AVS = BVD * XIVS + 1.6094379124341D0 C***** 1.047 IS PI/3 823 AVC = CMPLX(AVS,SNGL(1.0471975511966D0 * XIVS)) BVC = CEXP(AVC) WRITE(NUVI, 824) AVC, EP1C(IVI), BVC IF (IVI - 10) 825, 827, 825 825 IF (IVI - 20) 826, 827, 826 826 IF (IVI - 30) 821, 828, 828 827 WRITE(NUVI, 829) GO TO 821 828 CONTINUE 829 FORMAT(22H1 CEXPO - (082) -CEXP-) 824 FORMAT(3H0 (,E14.7,1H,,E14.7,1H),2(/8X,2E16.7)) C***** END OF TEST SEGMENT 082 C***** WHEN EXECUTING ONLY SEGMENT 082, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** LOGTM - 083 C***** C*********************************************************************** C***** GENERAL PURPOSE C***** .TO TEST BASIC EXTERNAL FUNCTION - ALOG - ASA REF C***** NATURAL LOG -USED IN SIMPLE ARITHMETIC EXPRESSIONS 8.3.3 C***** INTRINSIC FUNCTIONS ABS,AMIN1,INT,MIN0,FLOAT, TABLE 4 C***** SIGN ASSUMED WORKING C***** ARGUMENTS ARE POWERS(OR SUMS) OF 2 C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 083, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** 830 FORMAT(15H1 LOGTM - (083)//32H BASIC EXTERNAL FUNCTION -ALOG- 1//26H (NATURAL LOG -TYPE REAL) 2//27H ASA REF.- 8.3.3 (TABLE 4)//24H LINE 1 OF EACH PAIR IS/23H 3 HOLLERITH INFORMATION//9H RESULTS) WRITE (NUVI, 830) C***** HEADER FOR SEGMENT 083 WRITTEN AVS = .25 CVS = 2.0 MVI = -2 BVS = ALOG(AVS / 2.0) WRITE (NUVI, 831) BVS BVS = ALOG(AVS) WRITE (NUVI, 832) BVS BVS = ALOG(AVS * CVS) WRITE (NUVI, 833) BVS BVS = ALOG(AVS * CVS ** 2) WRITE (NUVI, 834) BVS BVS = ALOG(AMIN1(AVS * 2.0 + ABS(FLOAT(MVI) / CVS),CVS)) WRITE (NUVI, 835) BVS BVS = ALOG(SIGN(FLOAT(MIN0(MVI,INT(CVS))),AVS)) WRITE (NUVI, 836) BVS 831 FORMAT( 9H0 X=0.125,5X,19H-2.0794415416798359/14X,F9.6) 832 FORMAT( 9H0 X=0.25 ,5X,19H-1.3862943611198906/14X,F 9.6) 833 FORMAT( 9H0 X=0.5 ,5X,19H-0.6931471805599453/14X,F10.7) 834 FORMAT( 9H0 X=1.0 ,5X,19H 0.0000000000000000/14X,F10.7) 835 FORMAT( 9H0 X=1.5 ,5X,19H 0.4054651081081644/14X,F10.7) 836 FORMAT( 9H0 X=2.0 ,5X,19H 0.6931471805599453/14X,F10.7) WRITE (NUVI, 837) 837 FORMAT(//37H LINE 2 OF EACH PAIR IS THE FUNCTION/25H CALCULATION 1 PRINTED TO ,8H7 DIGITS) C***** END OF TEST SEGMENT 083 C***** WHEN EXECUTING ONLY SEGMENT 083, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** DPLOG - 084 C***** C*********************************************************************** C***** GENERAL PURPOSE C***** TO TEST BASIC EXTERNAL FUNCTION - DLOG - ASA REF C***** NATURAL LOG -TYPE DOUBLE PRECISION 8.3.3 C***** USED IN SIMPLE ARITHMETIC EXPRESSIONS TABLE 4 C***** INTRINSIC FUNCTIONS DMIN1,DABS,DBLE,FLOAT,DSIGN, C***** MIN0,DINT, ASSUMED WORKING C***** ARGUMENTS ARE POWERS OF 2 C***** C***** S P E C I F I C A T I O N S SEGMENT 084 C***** C***** WHEN EXECUTING ONLY SEGMENT 084, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION AVD, BVD, CVD C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 084, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** 840 FORMAT(15H1 DPLOG - (084)//32H BASIC EXTERNAL FUNCTION -DLOG- 1//38H (NATURAL LOG -TYPE DOUBLE PRECISION) 2//27H ASA REF.- 8.3.3 (TABLE 4)//24H LINE 1 OF EACH PAIR IS/23H 3 HOLLERITH INFORMATION//9H RESULTS) WRITE (NUVI, 840) C***** HEADER FOR SEGMENT 084 WRITTEN AVD = .25D0 CVD = 2.0D0 MVI = -2 BVD = DLOG(AVD / 2.0D0) WRITE (NUVI, 841) BVD BVD = DLOG(AVD) WRITE( NUVI, 842) BVD BVD = DLOG(AVD * CVD) WRITE(NUVI, 843) BVD BVD = DLOG(AVD * CVD ** 2) WRITE (NUVI, 844) BVD BVD = DLOG(DMIN1(AVD * 2.0D0 +DABS(DBLE(FLOAT(MVI))/CVD), CVD)) WRITE (NUVI, 845) BVD BVD = DLOG(DSIGN(DBLE(FLOAT(MIN0(MVI,IDINT(CVD)))),AVD)) WRITE (NUVI, 846) BVD WRITE (NUVI, 847) 841 FORMAT( 9H0 X=0.125,5X,23H-2.0794415416798359D+00/1PD34.13) 842 FORMAT( 9H0 X=0.25 ,5X,23H-1.3862943611198906D+00/1PD34.13) 843 FORMAT( 9H0 X=0.5 ,5X,23H-0.6931471805599453D+00/ D35.14) 844 FORMAT( 9H0 X=1.0 ,5X,23H 0.000000000000000 / D35.14) 845 FORMAT( 9H0 X=1.5 ,5X,23H 0.4054651081081644D+00/ D35.14) 846 FORMAT( 9H0 X=2.0 ,5X,23H 0.6931471805599453D+00/ D35.14) 847 FORMAT(//37H LINE 2 OF EACH PAIR IS THE FUNCTION/25H CALCULATION A PRINTED TO ,9H14 DIGITS) C***** END OF TEST SEGMENT 084 C***** WHEN EXECUTING ONLY SEGMENT 084, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** CXLOG - (085) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** .TO TEST BASIC EXTERNAL FUNCTION - CLOG - ASA REF C***** (COMPLEX LOG) 8.3.3 C***** TESTING RANGE EXTENDS FROM 0 TO 5.E7 FOR MODULUS TABLE 4 C***** AND ARGUMENT VARIES BY STEPS OF PI/3 MAGNITUDE C***** INTRINSIC FUNCTIONS CMPLX, SNGL, MOD ASSUMED WORKING C***** C***** S P E C I F I C A T I O N S SEGMENT 085 C***** C***** WHEN EXECUTING ONLY SEGMENT 085, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= COMPLEX EP1C(30), AVC, BVC C= DOUBLE PRECISION AVD, BVD C***** C***** O U T P U T - T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 085, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** WRITE (NUVI, 850) 850 FORMAT( 15H1 CXLOG - (085) //32H BASIC EXTERNAL FUNCTION -CLOG- 1// 29H (NATURAL LOG -TYPE COMPLEX)//27H ASA REF.- 8.3.3 (TABLE 4 2)//20H (COMPLEX ARGUMENT)/ 8X,15HEXPECTED RESULT /8X,15HFUNCTION 3RESULT) C***** LOG OF 10 BVD = 2.3025850929940D0 C***** SINE OF 60 DEGREES AVD = .86602540378444D0 C***** INITIALIZE EP1C (EXPECTED VALUES) EP1C(1) = CMPLX(0.5E-7,SNGL(-AVD*1.D-7)) EP1C(2) = CMPLX(2.5E-7,SNGL(-AVD*5.D-7)) EP1C(3) = (1.E-6,0.0) EP1C(4) = (5.E-6,0.0) EP1C(5) = CMPLX(0.5E-5,SNGL(AVD*1.D-5)) EP1C(6) = CMPLX(2.5E-5,SNGL(AVD*5.D-5)) EP1C(7) = CMPLX(-.5E-4,SNGL(AVD * 1.D-4)) EP1C(8) = CMPLX(-2.5E-4,SNGL(AVD*5.D-4)) EP1C(9) = (-1.E-3,0.0) EP1C(10) = (-5.E-3,0.0) EP1C(11) = CMPLX(-0.5E-2,SNGL(-AVD*1.D-2)) EP1C(12) = CMPLX(-2.5E-2,SNGL(-AVD * 5.D-2)) EP1C(13) = CMPLX(0.5E-1,SNGL(-AVD*1.D-1)) EP1C(14) = CMPLX(2.5E-1,SNGL(-AVD*5.D-1)) EP1C(15) = (1.0,0.0) EP1C(16) = (5.0,0.0) EP1C(17) = CMPLX(0.5E1,SNGL(AVD * 1.D1)) EP1C(18) = CMPLX(2.5E1,SNGL(AVD * 5.D1)) EP1C(19) = CMPLX(-0.5E2,SNGL(AVD * 1.D2)) EP1C(20) = CMPLX(-2.5E2,SNGL(AVD * 5.D2)) EP1C(21) = (-1.E3,0.0) EP1C(22) = (-5.E3,0.0) EP1C(23) = CMPLX(-0.5E4,SNGL(-AVD * 1.D4)) EP1C(24) = CMPLX(-2.5E4,SNGL(-AVD * 5.D4)) EP1C(25) = CMPLX(0.5E5,SNGL(-AVD * 1.D5)) EP1C(26) = CMPLX(2.5E5,SNGL(-AVD * 5.D5)) EP1C(27) = (1.E6,0.0) EP1C(28) = (5.E6,0.0) EP1C(29) = CMPLX(0.5E7,SNGL(AVD * 1.D7)) EP1C(30) = CMPLX(2.5E7,SNGL(AVD * 5.D7)) C***** YVS COMPENSATES FOR -2PI AND +2PI GENERATED BY USE OF XIVS*PI/3 C***** FOR EXPECTED IMAGINARY VALUES, TAKES VALUES +6,0,-6 DURING RANGE YVS = 6. IVI = 0 851 IVI = IVI +1 IF (MOD(IVI, 2) .EQ. 0) GO TO 852 XIVS = ((IVI + 1)/2) - 8 AVS = BVD * XIVS GO TO 853 C***** 1.609 IS LOG OF 5 852 XIVS = (IVI / 2) - 8 AVS = (BVD * XIVS) + 1.6094379124341D0 C***** 1.047 IS PI/3 853 AVC = CMPLX (AVS, SNGL(1.0471975511966D0 * (XIVS + YVS))) BVC = CLOG (EP1C(IVI)) WRITE (NUVI, 854) EP1C(IVI), AVC, BVC IF(IVI - 10) 855, 858, 855 855 IF (IVI - 20) 856, 859, 856 856 IF (IVI - 22) 857, 7850, 857 857 IF (IVI - 30) 851, 7851, 7851 858 YVS = 0.0 859 WRITE (NUVI, 7852) GO TO 851 7850 YVS = -6.0 GO TO 851 7851 CONTINUE 854 FORMAT(3H0 (,E14.7,1H,,E14.7,1H),2(/8X,2E16.7)) 7852 FORMAT(22H1 CXLOG - (085) -CLOG-) C***** END OF TEST SEGMENT 085 C***** WHEN EXECUTING ONLY SEGMENT 085, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** COLOG - 086 C***** C*********************************************************************** C***** GENERAL PURPOSE C***** TO TEST BASIC EXTERNAL FUNCTION - ALOG10 - ASA REF C***** COMMON LOG - TYPE REAL 8.3.3 C***** USED IN SIMPLE ARITHMETIC EXPRESSIONS TABLE 4 C***** INTRINSIC FUNCTIONS ABS,AINT,AMAX1,SIGN, ASSUMED WORKING C***** ARGUMENT RANGE 0.5 TO 16.0 ,POWERS OF 2 C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 086, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** 860 FORMAT(15H1 COLOG - (086)//34H BASIC EXTERNAL FUNCTION -ALOG10- 1//25H (COMMON LOG -TYPE REAL) 2//27H ASA REF.- 8.3.3 (TABLE 4)//24H LINE 1 OF EACH PAIR IS/23H 3 HOLLERITH INFORMATION//9H RESULTS) WRITE (NUVI, 860) C***** HEADER FOR SEGMENT 086 WRITTEN AVS = -2.0 CVS = -4.0 BVS = ALOG10(AVS / CVS) WRITE (NUVI, 861) BVS BVS = ALOG10(ABS(AVS + 1.0)) WRITE (NUVI, 862) BVS BVS = ALOG10( -AVS) WRITE (NUVI, 863) BVS BVS = ALOG10(AINT(AVS + 2.0 - CVS)) WRITE (NUVI, 864) BVS BVS = ALOG10(AMAX1(AVS * CVS, CVS * 2.0)) WRITE (NUVI, 865) BVS BVS = ALOG10(SIGN(CVS,(-AVS)) **2) WRITE (NUVI, 866) BVS WRITE (NUVI, 867) 861 FORMAT( 8H0 X= 0.5,5X,25H-0.3010299956639811952137/8X, F15.7) 862 FORMAT( 8H0 X= 1.0,5X,25H 0.0000000000000000000000/8X, F15.7) 863 FORMAT( 8H0 X= 2.0,5X,25H 0.3010299956639811952137/8X, F15.7) 864 FORMAT( 8H0 X= 4.0,5X,25H 0.6020599913279623904275/8X, F15.7) 865 FORMAT( 8H0 X= 8.0,5X,25H 0.9030899869919435856412/8X, F15.7) 866 FORMAT( 8H0 X=16.0,5X,25H 1.2041199826559247808550/8X, F15.7) 867 FORMAT(//37H LINE 2 OF EACH PAIR IS THE FUNCTION/25H CALCULATION 1 PRINTED TO ,8H7 DIGITS) C***** END OF TEST SEGMENT 086 C***** WHEN EXECUTING ONLY SEGMENT 086, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** DCLOG - 087 C***** C*********************************************************************** C***** GENERAL PURPOSE C***** TO TEST BASIC EXTERNAL FUNCTION - DLOG10 - ASA REF C***** COMMON LOG - TYPE DOUBLE PRECISION 8.3.3 C***** SAME AS SEGMENT 086 EXCEPT FOR TYPE TABLE 4 C***** INTRINSIC FUNCTIONS DABS,IDINT,FLOAT,DBLE, C***** DMAX1,DSIGN ASSUMED WORKING C***** ARGUMENT RANGE 0.5 TO 16.0 POWERS OF 2 C***** C***** S P E C I F I C A T I O N S SEGMENT 087 C***** C***** WHEN EXECUTING ONLY SEGMENT 087, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION AVD, BVD, CVD C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 087, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** 870 FORMAT(15H1 DCLOG - (087)//34H BASIC EXTERNAL FUNCTION -DLOG10- 1//37H (COMMON LOG -TYPE DOUBLE PRECISION) 2//27H ASA REF.- 8.3.3 (TABLE 4)//24H LINE 1 OF EACH PAIR IS/23H 3 HOLLERITH INFORMATION//9H RESULTS) WRITE (NUVI, 870) C***** HEADER FOR SEGMENT 087 WRITTEN AVD = -2.0D0 CVD = -4.0D0 BVD = DLOG10(AVD / CVD) WRITE (NUVI, 871) BVD BVD = DLOG10(DABS(AVD + 1.0D0)) WRITE (NUVI, 872) BVD BVD = DLOG10( -AVD) WRITE (NUVI, 873) BVD BVD = DLOG10(DBLE(FLOAT(IDINT(AVD + 2.0D0 - CVD)))) WRITE (NUVI, 874) BVD BVD = DLOG10(DMAX1(AVD * CVD, CVD * 2.0D0)) WRITE (NUVI, 875) BVD BVD = DLOG10(DSIGN(CVD,(-AVD)) **2) WRITE (NUVI, 876) BVD WRITE (NUVI, 877) 871 FORMAT( 8H0 X= 0.5,5X,29H-0.3010299956639811952137D+00/D34.14) 872 FORMAT( 8H0 X= 1.0,5X,29H 0.0000000000000000000000 /D34.14) 873 FORMAT( 8H0 X= 2.0,5X,29H 0.3010299956639811952137D+00/D34.14) 874 FORMAT( 8H0 X= 4.0,5X,29H 0.6020599913279623904275D+00/D34.14) 875 FORMAT( 8H0 X= 8.0,5X,29H 0.9030899869919435856412D+00/D34.14) 876 FORMAT( 8H0 X=16.0,5X,29H 1.2041199826559247808550D+00/1PD33.13) 877 FORMAT(//37H LINE 2 OF EACH PAIR IS THE FUNCTION/25H CALCULATION A PRINTED TO ,9H14 DIGITS) C***** END OF TEST SEGMENT 087 C***** WHEN EXECUTING ONLY SEGMENT 087, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** SINUS - 088 C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST BASIC EXTERNAL FUNCTION - SIN - 8.3.3 C***** TRIGONOMETRIC SINE - TYPE REAL TABLE 4 C***** INTRINSIC FUNCTION SNGL ASSUMED WORKING C***** ARGUMENTS FROM 0 TO 2 PI C***** C***** S P E C I F I C A T I O N S SEGMENT 088 C***** C***** WHEN EXECUTING ONLY SEGMENT 088, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION AVD, BVD, CVD, DVD, EVD, PIVD C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 088, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** WRITE (NUVI, 880) 880 FORMAT(15H1 SINUS - (088)//31H BASIC EXTERNAL FUNCTION -SIN- 1//33H (TRIGONOMETRIC SINE -TYPE REAL) 2//27H ASA REF.- 8.3.3 (TABLE 4)//24H LINE 1 OF EACH PAIR IS/23H 3 HOLLERITH INFORMATION//9H RESULTS) C***** HEADER FOR SEGMENT 088 WRITTEN AVD = 3.140625D+0 BVD = 0.9613037109375D-3 CVD = 0.57220458984375D-5 DVD = 0.596046447753906D-6 EVD = 0.31786509547056D-7 C*****PI IS SUM OF AVD TO EVD, PARTS ARE EXPRESSED IN SUMS OF POWERS OF C*****2, TO PERMIT A POSSIBLE 20 DECIMAL DIGIT ARGUMENT TO BE CREATED PIVD = EVD + DVD + CVD + BVD + AVD AVS = 1.0 CVS = 2.0 BVS = SIN(CVS - 2.0 * AVS) WRITE (NUVI, 881) BVS BVS = SIN(AVS) WRITE (NUVI, 882) BVS BVS = SIN (CVS) WRITE (NUVI, 883) BVS BVS = SIN(AVS + CVS) WRITE (NUVI,884) BVS BVS = SIN(SNGL(PIVD)) WRITE (NUVI, 885) BVS BVS = SIN(2. * CVS) WRITE (NUVI, 886) BVS BVS = SIN(2.0 + CVS + AVS) WRITE (NUVI, 887) BVS BVS = SIN(CVS * (AVS + CVS)) WRITE (NUVI, 888) BVS BVS = SIN(SNGL(2.0D0 * PIVD)) WRITE (NUVI, 889) BVS WRITE (NUVI, 7880) 881 FORMAT( 9H0 X= 0.0 ,5X,15H 0.000000000000 /14X, F10.7) 882 FORMAT( 9H0 X= 1.0 ,5X,15H+0.841470984808 /14X, F10.7) 883 FORMAT( 9H0 X= 2.0 ,5X,15H+0.909297426826 /14X, F10.7) 884 FORMAT( 9H0 X= 3.0 ,5X,15H+0.141120008060 /14X, F10.7) 885 FORMAT( 9H0 X= (PI),5X,15H 0.000000000000 /14X, F10.7) 886 FORMAT( 9H0 X= 4.0 ,5X,15H-0.756802495308 /14X, F10.7) 887 FORMAT( 9H0 X= 5.0 ,5X,15H-0.958924274663 /14X, F10.7) 888 FORMAT( 9H0 X= 6.0 ,5X,15H-0.279415498198 /14X, F10.7) 889 FORMAT( 9H0 X=(2PI),5X,15H 0.000000000000 /14X, F10.7) 7880 FORMAT(//37H LINE 2 OF EACH PAIR IS THE FUNCTION/25H CALCULATION 1 PRINTED TO ,8H7 DIGITS) C***** END OF TEST SEGMENT 088 C***** WHEN EXECUTING ONLY SEGMENT 088, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** DPSIN - 089 C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST BASIC EXTERNAL FUNCTION - DSIN - 8.3.3 C***** TRIGONOMETRIC SINE - TYPE DOUBLE PRECISION TABLE 4 C***** SAME AS SEGMENT 088 EXCEPT D.P. C***** INTRINSIC FUNCTION DSIGN ASSUMED WORKING C***** ARGUMENTS FROM 0 TO 2 PI C***** C***** S P E C I F I C A T I O N S SEGMENT 089 C***** C***** WHEN EXECUTING ONLY SEGMENT 089, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION AVD, BVD, CVD, DVD, EVD, PIVD, XVD, FVD, GVD C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 089, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** 890 FORMAT(15H1 DPSIN - (089)//32H BASIC EXTERNAL FUNCTION -DSIN- 1//33H (TRIGONOMETRIC SINE -TYPE D.P.) 2//27H ASA REF.- 8.3.3 (TABLE 4)//24H LINE 1 OF EACH PAIR IS/23H 3 HOLLERITH INFORMATION//9H RESULTS) WRITE (NUVI, 890) C***** HEADER FOR SEGMENT 089 WRITTEN AVD = 3.140625D+0 BVD = 0.9613037109375D-3 CVD = 0.57220458984375D-5 DVD = 0.596046447753906D-6 EVD = 0.31786509547056D-7 C*****PI IS SUM OF AVD TO EVD, PARTS ARE EXPRESSED IN SUMS OF POWERS OF C*****2, TO PERMIT A POSSIBLE 20 DECIMAL DIGIT ARGUMENT TO BE CREATED PIVD = EVD + DVD + CVD + BVD + AVD FVD = 1.0D0 GVD = 2.0D0 XVD = DSIN(GVD - 2.0D0 * FVD) WRITE (NUVI, 891) XVD XVD = DSIN(FVD) WRITE (NUVI, 892) XVD XVD = DSIN(GVD) WRITE (NUVI, 893) XVD XVD = DSIN(GVD + FVD) WRITE (NUVI, 894) XVD XVD = DSIN(PIVD) WRITE (NUVI, 895) XVD XVD = DSIN(2. * GVD) WRITE (NUVI, 896) XVD XVD = DSIN(2.0 +FVD + GVD) WRITE (NUVI, 897) XVD XVD = DSIN(GVD * (FVD + GVD)) WRITE (NUVI, 898) XVD XVD = DSIN(DSIGN(2.0D0 * PIVD, GVD)) WRITE (NUVI, 899) XVD WRITE (NUVI, 7890) 891 FORMAT(9H0 X= 0.0 , 31H 0.00000000000000000000000 / D31.14) 892 FORMAT(9H0 X= 1.0 , 31H +0.84147098480789650665250D+00 /D31.14) 893 FORMAT(9H0 X= 2.0 , 31H +0.90929742682568169539602D+00 /D31.14) 894 FORMAT(9H0 X= 3.0 , 31H +0.14112000805986722210074D+00 /D31.14) 895 FORMAT(9H0 X= (PI), 31H 0.00000000000000000000000 / D31.14) 896 FORMAT(9H0 X= 4.0 , 31H -0.75680249530792825137264D+00 /D31.14) 897 FORMAT(9H0 X= 5.0 , 31H -0.95892427466313846889315D+00 / D31.14) 898 FORMAT(9H0 X= 6.0 , 31H -0.27941549819892587281156D+00 / D31.14) 899 FORMAT(9H0 X=(2PI), 31H 0.00000000000000000000000 / D31.14) 7890 FORMAT(//37H LINE 2 OF EACH PAIR IS THE FUNCTION/25H CALCULATION A PRINTED TO ,9H14 DIGITS) C***** END OF TEST SEGMENT 089 C***** WHEN EXECUTING ONLY SEGMENT 089, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C********************************************************************** C***** C***** CSICO - (090) C***** C********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST BASIC EXTERNAL FUNCTIONS -CSIN- AND -CCOS- 8.3.3 C***** COMPLEX SINE AND COSINE TABLE 4 C***** INTRINSIC FUNCTION CMPLX ASSUMED WORKING C***** C***** S P E C I F I C A T I O N S SEGMENT 090 C***** C***** WHEN EXECUTING ONLY SEGMENT 090, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION L1I (10) C= COMPLEX AVC, BVC C***** C***** O U T P U T - T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 090, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** WRITE (NUVI, 900) 900 FORMAT(15H1 CSICO - (090)//40H BASIC EXTERNAL FUNCTIONS -CSIN , C 1COS- //39H (TRIG. SINE AND COSINE -TYPE COMPLEX)//26H ASA REF 8. 23.3 (TABLE 4) //10H FUNCTION, 10X,7HRESULTS //) AVC = (1.0,1.0) BVC = CSIN (AVC) WRITE(NUVI, 901) BVC BVC = CCOS(AVC) WRITE (NUVI, 902) BVC IVI = 0 905 IVI = IVI + 1 AVS = IVI BVS = 1. / AVS AVC = CMPLX (AVS,BVS) BVC = CSIN(AVC) ** 2 + CCOS(AVC) ** 2 WRITE(NUVI, 904) LAZVI, L1I(IVI),LBZVI,LCZVI,L1I(IVI),LDZVI, BVC 904 FORMAT( A2,A2, A2,A2,A2,A1,4X,2F12.7) IF(IVI - 10) 905, 906, 906 906 CONTINUE 901 FORMAT(/13H TABLE VALUE,4X,22H 1.2984576 0.6349639 /17H CSIN(1 1.,1.) = ,F10.7,F12.7) 902 FORMAT(/13H TABLE VALUE,4X,22H 0.8337300 -0.9888977 /17H CCOS(1 1.,1.) = ,F10.7,F12.7 ///35H CSIN(X)**2 + CCOS(X)**2 = 1.0,0.0 / 2 40H0 ARGUMENT RESULTS SHOULD BE 1.0,0.0 ) C***** END OF TEST SEGMENT 090 C***** WHEN EXECUTING ONLY SEGMENT 090, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** COSNS - 091 C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST BASIC EXTERNAL FUNCTION - COS - 8.3.3 C***** TRIGONOMETRIC COSINE - TYPE REAL TABLE 4 C***** SAME AS SEGMENT EXCEPT FOR COSINE C***** INTRINSIC FUNCTION SNGL ASSUMED WORKING C***** ARGUMENTS FROM 0 TO 2 PI C***** C***** S P E C I F I C A T I O N S SEGMENT 091 C***** C***** WHEN EXECUTING ONLY SEGMENT 091, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION AVD, BVD, CVD, DVD, EVD, PIVD C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 091, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** 910 FORMAT(15H1 COSNS - (091)//31H BASIC EXTERNAL FUNCTION -COS- 1//35H (TRIGONOMETRIC COSINE -TYPE REAL) 2//27H ASA REF.- 8.3.3 (TABLE 4)//24H LINE 1 OF EACH PAIR IS/23H 3 HOLLERITH INFORMATION//9H RESULTS) WRITE (NUVI, 910) C***** HEADER FOR SEGMENT 091 WRITTEN AVD = 3.140625D+0 BVD = 0.9613037109375D-3 CVD = 0.57220458984375D-5 DVD = 0.596046447753906D-6 EVD = 0.31786509547056D-7 C*****PI IS SUM OF AVD TO EVD, PARTS ARE EXPRESSED IN SUMS OF POWERS OF C*****2, TO PERMIT A POSSIBLE 20 DECIMAL DIGIT ARGUMENT TO BE CREATED PIVD = EVD + DVD + CVD + BVD + AVD AVS = 1.0 CVS = 2.0 BVS = COS(CVS - 2.0 * AVS) WRITE (NUVI, 911) BVS BVS = COS(AVS) WRITE (NUVI, 912) BVS BVS = COS(CVS) WRITE (NUVI, 913) BVS BVS = COS(AVS + CVS) WRITE (NUVI, 914) BVS BVS = COS(SNGL(PIVD)) WRITE (NUVI, 915) BVS BVS = COS(2. * CVS) WRITE (NUVI, 916) BVS BVS = COS(2.0 + CVS + AVS) WRITE (NUVI, 917) BVS BVS = COS(CVS * (AVS + CVS)) WRITE (NUVI, 918) BVS BVS = COS(SNGL(2.0D0 * PIVD)) WRITE (NUVI, 919) BVS WRITE (NUVI, 7910) 911 FORMAT( 9H0 X= 0.0 ,5X,15H+1.000000000000 /14X, F10.7) 912 FORMAT( 9H0 X= 1.0 ,5X,15H+0.540302305868 /14X, F10.7) 913 FORMAT( 9H0 X= 2.0 ,5X,15H-0.416146836547 /14X, F10.7) 914 FORMAT( 9H0 X= 3.0 ,5X,15H-0.989992496600 /14X, F10.7) 915 FORMAT( 9H0 X= (PI),5X,15H-1.000000000000 /14X, F10.7) 916 FORMAT(9H0 X= 4.0 ,5X,15H-0.653643620864 /14X, F10.7) 917 FORMAT( 9H0 X= 5.0 ,5X,15H+0.283662185463 /14X, F10.7) 918 FORMAT( 9H0 X= 6.0 ,5X,15H+0.960170286650 /14X, F10.7) 919 FORMAT( 9H0 X=(2PI),5X,15H+1.000000000000 /14X, F10.7) 7910 FORMAT(//37H LINE 2 OF EACH PAIR IS THE FUNCTION/25H CALCULATION 1 PRINTED TO ,8H7 DIGITS) C***** END OF TEST SEGMENT 091 C***** WHEN EXECUTING ONLY SEGMENT 091, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** DPCOS - (092) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST BASIC EXTERNAL FUNCTION - DCOS - 8.3.3 C***** TRIGONOMETRIC COSINE -TYPE DOUBLE PRECISION TABLE 4 C***** SAME AS SEGMENT 091 EXCEPT D.P. C***** INTRINSIC FUNCTION DMAX1 ASSUMED WORKING C***** ARGUMENTS FROM 0 TO 2 PI C***** C***** S P E C I F I C A T I O N S SEGMENT 092 C***** C***** WHEN EXECUTING ONLY SEGMENT 092, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION AVD, BVD, CVD, DVD, EVD, FVD, GVD, PIVD, XVD C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 092, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** 920 FORMAT(15H1 DPCOS - (092)//32H BASIC EXTERNAL FUNCTION -DCOS- 1//35H (TRIGONOMETRIC COSINE -TYPE D.P.) 2//27H ASA REF.- 8.3.3 (TABLE 4)//24H LINE 1 OF EACH PAIR IS/23H 3 HOLLERITH INFORMATION//9H RESULTS) WRITE (NUVI, 920) AVD = 3.140625D+0 BVD = 0.9613037109375D-3 CVD = 0.57220458984375D-5 DVD = 0.596046447753906D-6 EVD = 0.31786509547056D-7 C*****PI IS SUM OF AVD TO EVD, PARTS ARE EXPRESSED IN SUMS OF POWERS OF C*****2, TO PERMIT A POSSIBLE 20 DECIMAL DIGIT ARGUMENT TO BE CREATED PIVD = EVD + DVD + CVD + BVD + AVD FVD = 1.0D0 GVD = 2.0D0 XVD = DCOS(GVD - 2.0D0 * FVD) WRITE (NUVI, 921) XVD XVD = DCOS(FVD) WRITE (NUVI, 922) XVD XVD = DCOS(GVD) WRITE (NUVI, 923) XVD XVD = DCOS(GVD + FVD) WRITE (NUVI, 924) XVD XVD = DCOS(PIVD) WRITE (NUVI, 925) XVD XVD = DCOS(2. * GVD) WRITE (NUVI, 926) XVD XVD = DCOS(2.0 + FVD + GVD) WRITE (NUVI, 927) XVD XVD = DCOS(GVD * (FVD + GVD)) WRITE (NUVI, 928) XVD XVD = DCOS(DMAX1(2.0D0 * PIVD, GVD)) WRITE (NUVI, 929) XVD WRITE (NUVI, 7992) 921 FORMAT(9H0 X= 0.0 ,31H +0.10000000000000000000000D+01 / D31.14) 922 FORMAT(9H0 X= 1.0 ,31H +0.54030230586813971740094D+00 /D31.14) 923 FORMAT(9H0 X= 2.0 ,31H -0.41614683654714238699757D+00 / D31.14) 924 FORMAT(9H0 X= 3.0 ,31H -0.98999249660044545727157D+00 / D31.14) 925 FORMAT(9H0 X= (PI),31H -0.10000000000000000000000D+01 / D31.14) 926 FORMAT(9H0 X= 4.0 ,31H -0.65364362086361191463917D+00 / D31.14) 927 FORMAT(9H0 X= 5.0 ,31H +0.28366218546322626446664D+00 / D31.14) 928 FORMAT(9H0 X= 6.0 ,31H +0.96017028665036602054565D+00 / D31.14) 929 FORMAT(9H0 X=(2PI),31H +0.10000000000000000000000D+01 / D31.14) 7992 FORMAT(//37H LINE 2 OF EACH PAIR IS THE FUNCTION/25H CALCULATION A PRINTED TO ,9H14 DIGITS) C***** END OF SEGMENT 092 C***** WHEN EXECUTING ONLY SEGMENT 092, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END STOP END nbs08.d 480890336 170 2 100666 284 ` SAMPLE COMPUTER, FORTRAN COMPILER LEVEL DO NOT READ OR WRITE RECORD 2. DOUBLE SPACE ON OUTPUT. ID 2 OPERATING SYSTEM VERSION DO NOT READ OR WRITE RECORD 4. DOUBLE SPACE ON OUTPUT. ID 4 DATE, INSTALLATION NAME DO NOT READ OR WRITE RECORD 6. DOUBLE SPACE ON OUTPUT. ID 6 nbs08.f 480887337 170 2 100666 39377 ` C***** PART8 ***************************************************** C***** C***** ANSI FORTRAN (X3.9-1966) TEST PROGRAMS C***** C***** PREPARED BY THE NATIONAL BUREAU OF STANDARDS VERSION 3 C***** C***** JUNE 1973 C***** C***** PART 8 OF 14 PARTS C***** C***** SEGMENTS INCLUDED C***** C***** TANGH - 094 TANH C***** C***** SQROT - 095 SQRT C***** C***** DSQRO - 096 DSQRT C***** C***** CSQRO - 097 CSQRT C***** C***** ARCTG - 098 ATAN C***** C***** DACTG - 099 DATAN C***** C***** ACTG2 - 100 ATAN2 C***** C***** DATN2 - 101 DATAN C***** C***** DMODA - 102 DMOD C***** C***** CABSA - 103 CABS C***** C***** BSFTS - 110 STATEMENT FUNCTIONS (REAL AND INTEGER) C***** C***** BSFDF - 005 STATEMENT FUNCTION DEFINITIONS C***** C***** FSFTS - 111 STATEMENT FUNCTIONS (D.P., COMPLEX AND LOGICAL) C***** C***** FSFDF - 006 STATEMENT FUNCTION DEFINITIONS C***** THE FOLLOWING SPECIFICATIONS ARE TO BE USED ONLY WHEN SEGMENTS C***** 094, 095, 096, 097, 098, 099, 100, 101, 102, 103, 110 C***** AND 111 ARE RUN AS ONE MAIN PROGRAM. C***** INTEGER IFIX REAL ABS, SQRT DOUBLE PRECISION BVD, AVD, CVD, DVD, EVD, FVD, GVD DOUBLE PRECISION DPAFD,DPBFD,DPCFD,DPDFD,DPFFD,DPGFD,DPEFD,DPHFD 1 , DPAVD, DPBVD, DPCVD, DPDVD, DAWVD, DBWVD, DCWVD DOUBLE PRECISION DPA1D(5),FC2D(5,5) COMPLEX CHAVC,CHBVC,CHCVC,CHDVC,CHEVC,CHFVC, EP1C(30), AVC, BVC COMPLEX CHAFC, CHBFC, CHCFC, CHDFC,CAWVC, CBWVC LOGICAL A3B(2,2,2) LOGICAL MCFVB, MCHVB, ABFB, BCFB, IEFB, KLFB - ,MCEVB,MCIVB,MCKVB,ATVB,AWVB,BWVB,CWVB,DWVB,EWVB,SWVB,TWVB DOUBLE PRECISION DBLE, DEXP COMPLEX CMPLX, CEXP C***** C***** END OF SPECIFICATIONS FOR SEGMENTS C***** 094, 095, 096, 097, 098, 099, 100, 101, 102, 103, 110, 111 C*********************************************************************** C***** C***** BSFDF - (005) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** DEFINING STATEMENT FUNCTIONS THAT ARE TO BE TESTED C***** IN SEGMENT 110 (BASIC FORTRAN) AND 111 (FULL FORTRAN) 8.1.1 C***** HEADER FOR SEGMENT 005 C***** DEFINING EXPRESSION CONTAINS CONSTANTS AND VARIABLES CMAFS(CAWVS,CBWVS) = CAWVS * 2. + CBWVS CMBFS(MAWVI,MBWVI,MCWVI) =(MAWVI + MBWVI + MCWVI)/3 MCAFI(MAWVI,MBWVI) = MAWVI ** MBWVI MCBFI(CAWVS,CBWVS,CCWVS) = (CAWVS + CBWVS + CCWVS) * 2.0 C***** DEFINING EXPRESSION CONTAINS CONSTANTS, VARIABLES AND C***** INTRINSIC FUNCTIONS CMCFS(CAWVS,CBWVS,CCWVS) = ABS(CAWVS**2 - (CBWVS+CCWVS)**2) CMDFS(MAWVI,MBWVI) = ISIGN((MAWVI+MBWVI),(MAWVI-MBWVI)) MCCFI(MAWVI,MBWVI,CAWVS) = MAWVI**2 + MBWVI**2 + IFIX(CAWVS)**2 MCDFI(CAWVS,CBWVS,CCWVS,CDWVS,CEWVS) = (CAWVS + CBWVS + CCWVS + 1CDWVS +CEWVS) ** (ABS(CAWVS)) C***** DEFINING EXPRESSION CONTAINS PREVIOUSLY DEFINED STATEMENT C***** FUNCTIONS AND/OR EXTERNAL FUNCTION REFERENCES CMEFS(CAWVS,CBWVS) = CMBFS(1,2,3) + SQRT((CAWVS + CBWVS)) CMFFS(MAWVI,MBWVI,MCWVI) = MCCFI(MAWVI,MBWVI,3.0) + MCWVI **2 MCEFI(MAWVI,MBWVI) = MCAFI(MAWVI,MBWVI) ** MCAFI(MAWVI,MBWVI) MCFFI(CAWVS,CBWVS,CCWVS) = SQRT(CAWVS) + SQRT(CBWVS) + EXP(CCWVS) C***** DEFINING EXPRESSION CONTAINS CONSTANTS, VARIABLES, INTRINSIC C***** OR EXTERNAL FUNCTION REFERENCES AND PREVIOUSLY DEFINED C***** STATEMENT FUNCTIONS. CMGFS(MAWVI,MBWVI,CAWVS,CBWVS) = FLOAT(MAWVI ** 2) - CMAFS(CAWVS, 1CBWVS) + SQRT((FLOAT(MAWVI + MBWVI))) MCGFI(MAWVI,MBWVI,MCWVI,CAWVS) = MCEFI(MAWVI,MBWVI) - MCEFI(MAWVI, 1MCWVI) + IFIX(EXP(CAWVS)) C***** END OF TEST SEGMENT 005 C*********************************************************************** C***** C***** FSFDF - (006) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** DEFINING STATEMENT FUNCTIONS THAT ARE TO BE TESTED 8.1.1 C***** IN SEGMENT 111 (FULL FORTRAN STATEMENT FUNCTION TEST) C***** HEADER FOR SEGMENT 006 C***** D.P. STATEMENT FUNCTIONS CONTAINING CONSTANTS AND VARIABLES DPAFD(DAWVD,DBWVD) = (DAWVD + DBWVD) ** 2 DPBFD(DAWVD,DBWVD,DCWVD) = (DAWVD + DBWVD - DCWVD) ** 3 DPCFD(DAWVD,DBWVD,DCWVD) = 3.0D0 * (DAWVD + DBWVD + DCWVD)/2.D0 C***** D.P. STATEMENT FUNCTIONS CONTAINING CONSTANTS, VARIABLES C***** AND INTRINSIC FUNCTION REFERENCES DPDFD(DAWVD,DBWVD) = DSIGN(DAWVD, -(DBWVD)) DPEFD(DAWVD,DBWVD,CAWVC,CAWVS) = DBLE(CAWVS + AIMAG(CAWVC)) 1+ DMAX1(DAWVD,DBWVD + 1.D0) C***** D.P. STATEMENT FUNCTIONS CONTAINING CONSTANTS, VARIABLES, C***** INTRINSIC FUNCTION AND PREVIOUSLY DEFINED STATEMENT FUNCTION C***** REFERENCES DPFFD(DAWVD,DBWVD,CAWVS) = DPAFD(DAWVD,DBWVD) -(2.D0 * DAWVD * 1 DBWVD) + (DBLE(CAWVS) * 2.D0 ) DPGFD(DAWVD,DBWVD,CAWVS,CAWVC) = DPBFD(DAWVD,DBWVD,DBLE(CAWVS)) 1 - DBLE(AIMAG(CAWVC)) + 5.0D0 C***** D.P. STATEMENT FUNCTIONS CONTAINING CONSTANTS, VARIABLES, C***** INTRINSIC FUNCTION, PREVIOUSLY DEFINED STATEMENT FUNCTION C***** AND EXTERNAL FUNCTION REFERENCES DPHFD(DAWVD,DBWVD,CAWVS) = DPFFD(DAWVD,DBWVD +1.0D0, CAWVS) * 2.D0 1 + DEXP(DAWVD) - (DBLE(CAWVS) * 2 .D0)-DEXP(DAWVD) C***** COMPLEX STATEMENT FUNCTIONS CONTAINING CONSTANTS AND VARIABLES CHAFC(CAWVC,CBWVC) = CAWVC * (2.0,2.0) + CBWVC + (2.0,2.0) C***** COMPLEX STATEMENT FUNCTION CONTAINING CONSTANTS, VARIABLES, C***** AND INTRINSIC FUNCTION REFERENCES CHBFC(CAWVC,CBWVC,CAWVS) = CAWVC - CBWVC + CMPLX(CAWVS,CAWVS) C***** COMPLEX STATEMENT FUNCTION CONTAINING CONSTANTS, C***** VARIABLES, INTRINSIC AND EXTERNAL FUNCTION REFERENCES CHCFC(CAWVC,CBWVC,CAWVS,CBWVS) = (CAWVC - CBWVC) + CEXP (CMPLX 1 (CAWVS,CBWVS)) - CMPLX(CAWVS,CBWVS) C***** COMPLEX STATEMENT FUNCTION CONTAINING CONSTANTS, VARIABLES, C***** INTRINSIC, EXTERNAL AND PREVIOUSLY DEFINED STATEMENT FUNCTION C***** REFERENCES CHDFC(CAWVC,CBWVC,CAWVS,CBWVS) = CHCFC(CAWVC,CBWVC,CAWVS +CAWVS, 1 2.0 * CBWVS) + CMPLX(1.0,2.0) C***** STATEMENT FUNCTION CONTAINING LOGICAL VARIABLES ABFB(AWVB, BWVB, DWVB) = AWVB .AND. BWVB .OR. .FALSE..AND.DWVB C***** STATEMENT FUNCTION CONTAINING CONSTANTS, VARIABLES AND C***** INTRINSIC FUNCTIONS BCFB(EWVB,CWVB,BAWVS,BCWVS) = EWVB .AND.(BAWVS * ABS(BCWVS) .GT. 1 0.5).AND..NOT. CWVB C***** STATEMENT FUNCTION CONTAINING PREVIOUSLY DEFINED STATEMENT C***** FUNCTION AND AN INTRINSIC FUNCTION REFERENCE IEFB(EWVB,ATVB,CWVB,BAWVS,BCWVS) = ATVB .AND.EWVB .AND. CWVB .OR. 1 AMAX1(BAWVS,BCWVS) .GT. 600. .OR. BCFB (EWVB,CWVB,BAWVS,BCWVS) C***** STATEMENT FUNCTION CONTAINING BASIC EXTERNAL FUNCTION REFERENCE KLFB(SWVB,TWVB,ATVB,BAWVS) = SWVB .AND..NOT. TWVB.OR.(SQRT(BAWVS) 1 .GT. 9.0) .OR. ATVB C***** END OF TEST SEGMENT 006 C*********************************************************************** C***** C***** TANGH - 094 C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST BASIC EXTERNAL FUNCTION - TANH - 8.3.3 C***** HYPERBOLIC TANGENT -TYPE REAL C***** USED IN SIMPLE ARITHMETIC EXPRESSIONS C***** INTRINSIC FUNCTIONS ABS,FLOAT,AMINO,AMAX0,INT C***** ASSUMED WORKING C***** ARGUMENTS FROM 0.0 TO 8.0 C***** C***** I N P U T - O U T P U T T A P E ASSIGNMENT STATEMENTS IRVI = 5 NUVI = 6 C***** IDENTIFY THE SOURCE OF THE TEST PROGRAMS WRITE(NUVI,0071) 0071 FORMAT (41H1 F O R T R A N T E S T P R O G R A M S// 1 42H PREPARED BY NATIONAL BUREAU OF STANDARDS// 3 37H FOR USE ON LARGE FORTRAN PROCESSORS // 4 42H IN ACCORDANCE WITH ASA FORTRAN X3.9-1966// 5 23H VERSION 3 PART 8 ///) C***** 3 OF 6 INPUT CARDS IDENTIFY THE USERS SYSTEM AND COMPILER C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST READ(IRVI,0070) READ(IRVI,0072) READ(IRVI,0073) 0070 FORMAT(40H BASED ON ASA FORTRAN X3.9-1966 /) 0072 FORMAT(40H TEST PROGRAMS /) 0073 FORMAT(40H FORTRAN COMPILER /) WRITE(NUVI,0070) WRITE(NUVI,0072) WRITE(NUVI,0073) 940 FORMAT(15H1 TANGH - (094)//32H BASIC EXTERNAL FUNCTION -TANH- 1//33H (HYPERBOLIC TANGENT -TYPE REAL) 2//27H ASA REF.- 8.3.3 (TABLE 4)//24H LINE 1 OF EACH PAIR IS/23H 3 HOLLERITH INFORMATION//9H RESULTS) WRITE (NUVI, 940) C***** HEADER FOR SEGMENT 094 WRITTEN AVS = 2.0 CVS = -0.5 IVI = 6 BVS = TANH(FLOAT(IVI) - 3.0 * AVS) WRITE (NUVI, 941) BVS BVS = TANH(AVS) WRITE (NUVI, 942) BVS BVS = TANH(AVS + ABS(CVS)) WRITE (NUVI, 943) BVS BVS = TANH(AMIN0(IVI,8) - AVS) WRITE (NUVI, 944) BVS BVS = TANH(AMAX0(IVI,INT(AVS))) WRITE (NUVI, 945) BVS BVS = TANH(AVS ** 4 / AVS) WRITE (NUVI, 946) BVS WRITE (NUVI, 947) 941 FORMAT(7H0 X=0.0,5X,12H0.0000000000 /F21.7) 942 FORMAT(7H0 X=2.0,5X,12H0.9640275801 /F21.7) 943 FORMAT(7H0 X=2.5,5X,12H0.9866142982 /F21.7) 944 FORMAT(7H0 X=4.0,5X,12H0.9993292997 /F21.7) 945 FORMAT(7H0 X=6.0,5X,12H0.9999877117 /F21.7) 946 FORMAT(7H0 X=8.0,5X,12H0.9999997749 /F21.7) 947 FORMAT(//37H LINE 2 OF EACH PAIR IS THE FUNCTION/25H CALCULATION 1 PRINTED TO , 8H7 DIGITS ) C***** END OF TEST SEGMENT 094 C***** WHEN EXECUTING ONLY SEGMENT 094, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** SQROT - (095) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST BASIC EXTERNAL FUNCTION - SQRT - 8.3.3 C***** (SQUARE ROOT - TYPE REAL) TABLE 4 C***** USED IN SIMPLE ARITHMETIC EXPRESSIONS C***** INTRINSIC FUNCTIONS FLOAT,INT,AMIN0,MAX0 C***** ASSUMED WORKING C***** ARGUMENTS ARE ALL PRIME NUMBERS C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 095, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** 950 FORMAT(15H1 SQROT - (095)//32H BASIC EXTERNAL FUNCTION -SQRT- 1//26H (SQUARE ROOT -TYPE REAL) 2//27H ASA REF.- 8.3.3 (TABLE 4)//24H LINE 1 OF EACH PAIR IS/23H 3 HOLLERITH INFORMATION//9H RESULTS) WRITE (NUVI, 950) C***** HEADER FOR SEGMENT 095 WRITTEN AVS = 2.0 IVI = 3 CVS = 17.0 BVS = SQRT(FLOAT(( IVI + INT(AVS)) / 2)) WRITE (NUVI, 951) BVS BVS = SQRT(AMIN0(MAX0(IVI,2), INT(CVS))) WRITE (NUVI, 952) BVS BVS = SQRT(CVS) WRITE (NUVI, 953) BVS BVS = SQRT(2.0 * CVS - FLOAT(IVI)) WRITE (NUVI, 954) BVS BVS = SQRT(FLOAT(IVI + 1) + 5.0 * CVS) WRITE (NUVI, 955) BVS WRITE (NUVI, 956) 951 FORMAT ( 8H0 X= 2.0,4X,16H1.41421356237310 / F21.7) 952 FORMAT ( 8H0 X= 3.0,4X,16H1.73205080756888 / F21.7) 953 FORMAT ( 8H0 X=17.0,4X,16H4.12310562561766 / F21.7) 954 FORMAT ( 8H0 X=31.0,4X,16H5.56776436283002 / F21.7) 955 FORMAT ( 8H0 X=89.0,4X,16H9.43398113205660 / F21.7) 956 FORMAT(//37H LINE 2 OF EACH PAIR IS THE FUNCTION/25H CALCULATION 1 PRINTED TO , 8H7 DIGITS ) C***** END OF TEST SEGMENT 095 C***** WHEN EXECUTING ONLY SEGMENT 095, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** DSQRO - (096) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST BASIC EXTERNAL FUNCTION - DSQRT - 8.3.3 C***** (SQUARE ROOT - TYPE D.P.) TABLE 4 C***** USED IN SIMPLE EXPRESSIONS C***** INTRINSIC FUNCTIONS DBLE,IABS,FLOAT ASSUMED WORKING C***** ARGUMENTS ARE ALL PRIME NUMBERS C***** C***** S P E C I F I C A T I O N S SEGMENT 096 C***** C***** WHEN EXECUTING ONLY SEGMENT 096, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION BVD C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 096, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** 960 FORMAT(15H1 DSQRO - (096)//33H BASIC EXTERNAL FUNCTION -DSQRT- 1//26H (SQUARE ROOT -TYPE D.P.) 2//27H ASA REF.- 8.3.3 (TABLE 4)//24H LINE 1 OF EACH PAIR IS/23H 3 HOLLERITH INFORMATION//9H RESULTS) WRITE (NUVI, 960) C***** HEADER FOR SEGMENT 096 WRITTEN AVS = 3.0 IVI = -2 CVS = 17.0 BVD = DSQRT(DBLE(FLOAT(IABS(IVI)) + AVS - 3.0)) WRITE (NUVI, 961) BVD BVD = DSQRT(0.0D0 + AVS) WRITE (NUVI, 962) BVD BVD = DSQRT(CVS - AVS + 3.0D0) WRITE (NUVI, 963) BVD BVD = DSQRT(2.0D0 * CVS - DBLE(AVS)) WRITE (NUVI, 964) BVD BVD = DSQRT(DBLE(FLOAT(-IVI)+ AVS) * CVS + FLOAT(IVI ** 2)) WRITE (NUVI, 965) BVD WRITE (NUVI, 966) 961 FORMAT ( 8H0 X= 2.0,5X,25H1.4142135623730950488D+00/8X,1PD24.13) 962 FORMAT ( 8H0 X= 3.0,5X,25H1.7320508075688772935D+00/8X,1PD24.13) 963 FORMAT ( 8H0 X=17.0,5X,25H4.1231056256176605498D+00/8X,1PD24.13) 964 FORMAT ( 8H0 X=31.0,5X,25H5.5677643628300219221D+00/8X,1PD24.13) 965 FORMAT ( 8H0 X=89.0,5X,25H9.4339811320566038113D+00/8X,1PD24.13) 966 FORMAT(//37H LINE 2 OF EACH PAIR IS THE FUNCTION/25H CALCULATION A PRINTED TO ,9H14 DIGITS) C***** END OF TEST SEGMENT 096 C***** WHEN EXECUTING ONLY SEGMENT 096, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** CSQRO - (097) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** C***** TO TEST BASIC EXTERNAL FUNCTION -CSQRT- 8.3.3 C***** (SQUARE ROOT OF A COMPLEX NUMBER ) TABLE 4 C***** ARGUMENTS ARE EP1C(11) TO EP1C(20) C***** EXPECTED RESULTS ARE EP1C(1) TO EP1C(10) C***** S P E C I F I C A T I O N S SEGMENT 097 C***** C***** WHEN EXECUTING ONLY SEGMENT 097 THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= COMPLEX EP1C(30), AVC, BVC C***** C***** O U T P U T - T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 097, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** WRITE (NUVI, 970) 970 FORMAT(15H1 CSQRO - (097)//33H BASIC EXTERNAL FUNCTION -CSQRT- 1//29H (SQUARE ROOT -TYPE COMPLEX)//27H ASA REF.- 8.3.3 (TABLE 4) 2//24H LINE 1 OF EACH PAIR IS /20H THE EXPECTED VALUE //9H RESUL 3T ) C***** INITIALIZE EP1C (EXACT VALUES) EP1C(1) = (0.9950042,0.0998334) EP1C(2) = (0.9800666,0.1986693) EP1C(3) = (0.9553365,0.2955202) EP1C(4) = (0.9210610,0.3894183) EP1C(5) = (0.8775826,0.4794255) EP1C(6) = (0.8253356,0.5646425) EP1C(7) = (0.7648422,0.6442177) EP1C(8) = (0.6967067,0.7173561) EP1C(9) = (0.5403023,0.8414710) EP1C(10) = (0.4161468,-0.9092974) EP1C(11) = (0.9800666,0.1986693) EP1C(12) = (0.9210610,0.3894183) EP1C(13) = (0.8253356,0.5646425) EP1C(14) = (0.6967067,0.7173561) EP1C(15) = (0.5403023,0.8414710) EP1C(16) = (0.3623577,0.9320391) EP1C(17) = (0.1699671,0.9854497) EP1C(18) = (-0.0291995,0.9995736) EP1C(19) = (-0.4161468,0.9092974) EP1C(20) = (-0.6536436,-0.7568025) IVI = 0 971 JVI = 1 972 IVI = IVI + 1 JVI = JVI + 1 AVC = CSQRT(EP1C(IVI + 10) * (10. ** ((2 * JVI) - 8))) BVC = EP1C(IVI) * 10. ** (JVI - 4) WRITE (NUVI, 973) BVC, AVC 973 FORMAT( 2H0 2E14.7/2X,2E14.7) IF (JVI - 6) 972, 974, 974 974 IF (IVI - 10) 971, 975, 975 975 WRITE (NUVI, 976) 976 FORMAT(//37H LINE 2 OF EACH PAIR IS THE FUNCTION/13H CALCULATION 1) C***** END OF TEST SEGMENT 097 C***** WHEN EXECUTING ONLY SEGMENT 097 THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** ARCTG - (098) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST BASIC EXTERNAL FUNCTION - ATAN - 8.3.3 C***** (TRIGONOMETRIC ARCTANGENT, SINGLE ARGUMENT -TYPE REAL)TABLE 4 C***** USED IN SIMPLE ARITHMETIC EXPRESSIONS C***** INTRINSIC FUNCTION ABS,FLOAT,AMAX1,INT C***** ASSUMED WORKING C***** ARGUMENTS ARE POWERS (OR SUMS) OF 2 C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 098, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** WRITE (NUVI, 980) 980 FORMAT(15H1 ARCTG - (098)//32H BASIC EXTERNAL FUNCTION -ATAN- 1//25H (ARCTANGENT -TYPE REAL) 2//27H ASA REF.- 8.3.3 (TABLE 4)//24H LINE 1 OF EACH PAIR IS/23H 3 HOLLERITH INFORMATION//9H RESULTS) C***** HEADER FOR SEGMENT 098 WRITTEN AVS = .125 CVS = -.25 IVI = 2 BVS = ATAN(AMAX1(AVS,CVS)) WRITE (NUVI, 981) BVS BVS = ATAN(AVS * 2.0) WRITE(NUVI, 982) BVS BVS = ATAN (ABS(CVS) + AVS) WRITE(NUVI, 983) BVS BVS = ATAN(-CVS * AMAX0(IVI, INT(AVS))) WRITE(NUVI, 984) BVS BVS = ATAN (FLOAT(IVI) * CVS - (2.0 * AVS)) WRITE (NUVI, 985) BVS BVS = ATAN(1.0) WRITE (NUVI, 986) BVS WRITE (NUVI, 987) 981 FORMAT(10H0 X= 0.125,5X,15H 0.124354994547,/10X,F15.7) 982 FORMAT(10H0 X= 0.250,5X,15H 0.244978663127,/10X,F15.7) 983 FORMAT(10H0 X= 0.375,5X,15H 0.358770670271,/10X,F15.7) 984 FORMAT(10H0 X= 0.500,5X,15H 0.463647609001,/10X,F15.7) 985 FORMAT(10H0 X=-0.750,5X,15H-0.643501108793,/10X,F15.7) 986 FORMAT(10H0 X= 1.000,5X,15H 0.785398163397,/10X,F15.7) 987 FORMAT(//37H LINE 2 OF EACH PAIR IS THE FUNCTION/25H CALCULATION 1 PRINTED TO ,8H7 DIGITS ) C***** END OF TEST SEGMENT 098 C***** WHEN EXECUTING ONLY SEGMENT 098, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** DACTG - (099) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST BASIC EXTERNAL FUNCTION - DATAN - 8.3.3 C***** (TRIGONOMETRIC ARCTANGENT,SINGLE ARGUMENT -TYPE D.P.) TABLE 4 C***** USED IN SIMPLE ARITHMETIC EXPRESSIONS C***** INTRINSIC FUNCTIONS DSIGN,FLOAT,DBLE ASSUMED WORKING C***** ARGUMENTS ARE POWERS (OR SUMS) OF 2 C***** C***** S P E C I F I C A T I O N S SEGMENT 099 C***** C***** WHEN EXECUTING ONLY SEGMENT 099, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION AVD, BVD, CVD C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 099, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** C***** HEADER FOR SEGMENT 099 WRITTEN WRITE(NUVI, 990) 990 FORMAT(15H1 DACTG - (099)//33H BASIC EXTERNAL FUNCTION -DATAN- 1//25H (ARCTANGENT -TYPE D.P.) 2//27H ASA REF.- 8.3.3 (TABLE 4)//24H LINE 1 OF EACH PAIR IS/23H 3 HOLLERITH INFORMATION//9H RESULTS) AVD = -.125D0 CVD = .25D0 IVI = 2 BVD = DATAN(DSIGN(AVD,CVD)) WRITE (NUVI, 991) BVD BVD = DATAN(2.0 * (-AVD)) WRITE(NUVI, 992) BVD BVD = DATAN(CVD - AVD) WRITE(NUVI, 993) BVD BVD = DATAN(DBLE(FLOAT(IVI) / 4.0)) WRITE (NUVI, 994) BVD BVD = DATAN (DSIGN(1.0D0 - CVD, AVD)) WRITE(NUVI, 995) BVD BVD = DATAN(DBLE(FLOAT(IVI ** 2)) * CVD) WRITE (NUVI, 996) BVD WRITE (NUVI, 997) 991 FORMAT(10H0 X= 0.125,5X,19H 0.124354994547D+00 /10X,D24.12) 992 FORMAT(10H0 X= 0.250,5X,19H 0.244978663127D+00 /10X,D24.12) 993 FORMAT(10H0 X= 0.375,5X,19H 0.358770670271D+00 /10X,D24.12) 994 FORMAT(10H0 X= 0.500,5X,19H 0.463647609001D+00 /10X,D24.12) 995 FORMAT(10H0 X=-0.750,5X,19H-0.643501108793D+00 /10X,D24.12) 996 FORMAT(10H0 X= 1.000,5X,19H 0.785398163397D+00 /10X,D24.12) 997 FORMAT(//37H LINE 2 OF EACH PAIR IS THE FUNCTION/25H CALCULATION 1 PRINTED TO ,9H12 DIGITS ) C***** END OF TEST SEGMENT 099 C***** WHEN EXECUTING ONLY SEGMENT 099, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** ACTG2 - (100) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST BASIC EXTERNAL FUNCTION - ATAN2 - 8.3.3 C***** (TRIGONOMETRIC ARCTANGENT, TWO ARGUMENTS -TYPE REAL) TABLE 4 C***** USED IN SIMPLE ARITHMETIC EXPRESSIONS C***** INTRINSIC FUNCTIONS AMIN1,FLOAT,AMAX0 ASSUMED WORKING C***** ARGUMENTS ARE POWERS (OR SUMS) OF 2 C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENTS. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 100, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** WRITE(NUVI, 1000) 1000 FORMAT(15H1 ACTG2 - (100)//33H BASIC EXTERNAL FUNCTION -ATAN2- 1//37H (ARCTANGENT, 2 ARGUMENT -TYPE REAL) 2//27H ASA REF.- 8.3.3 (TABLE 4)//24H LINE 1 OF EACH PAIR IS/23H 3 HOLLERITH INFORMATION//9H RESULTS) AVS = .125 CVS = -.25 IVI = 2 BVS = ATAN2(ABS(AMIN1(AVS,CVS)),FLOAT(IVI)) WRITE (NUVI, 1001) BVS BVS = ATAN2(CVS ** 2, AVS * 2.0) WRITE (NUVI, 1002) BVS BVS = ATAN2 (AVS - CVS, -(4.0 * CVS)) WRITE (NUVI, 1003) BVS BVS = ATAN2(-CVS/AVS, AMAX0(IVI,4)) WRITE (NUVI, 1004) BVS BVS = ATAN2(-.09375,AVS) WRITE (NUVI, 1005) BVS BVS = ATAN2(FLOAT(IVI), 2.0) WRITE (NUVI, 1006) BVS WRITE (NUVI, 1007) 1001 FORMAT(10H0 X= 0.125,5X,15H 0.124354994547,/10X,F15.7) 1002 FORMAT(10H0 X= 0.250,5X,15H 0.244978663127,/10X,F15.7) 1003 FORMAT(10H0 X= 0.375,5X,15H 0.358770670271,/10X,F15.7) 1004 FORMAT(10H0 X= 0.500,5X,15H 0.463647609001,/10X,F15.7) 1005 FORMAT(10H0 X=-0.750,5X,15H-0.643501108793,/10X,F15.7) 1006 FORMAT(10H0 X= 1.000,5X,15H 0.785398163397,/10X,F15.7) 1007 FORMAT(//37H LINE 2 OF EACH PAIR IS THE FUNCTION/25H CALCULATION 1 PRINTED TO ,8H7 DIGITS ) C***** END OF TEST SEGMENT 100 C***** WHEN EXECUTING ONLY SEGMENT 100, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** DATN2 - (101) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST BASIC EXTERNAL FUNCTION - DATAN2 - 8.3.3 C***** (TRIGONOMETRIC ARCTANGENT, TWO ARGUMENT -TYPE D.P.) TABLE 4 C***** USED IN SIMPLE ARITHMETIC EXPRESSIONS C***** INTRINSIC FUNCTIONS DMIN1,DMAX1,DSIGN,DBLE,FLOAT C***** ASSUMED WORKING C***** ARGUMENTS ARE POWERS (OR SUMS) OF 2 C***** C***** S P E C I F I C A T I O N S SEGMENT 101 C***** C***** WHEN EXECUTING ONLY SEGMENT 101, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= IN COLUMNS C***** 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION AVD, BVD, CVD C***** C***** O U T P U T - T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE C***** C***** WHEN EXECUTING ONLY SEGMENT 101, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** WRITE (NUVI, 1010) 1010 FORMAT(15H1 DATN2 - (101)//36H BASIC EXTERNAL FUNCTION -DATAN2- 1//37H (ARCTANGENT, 2 ARGUMENT -TYPE D.P.) 2//27H ASA REF.- 8.3.3 (TABLE 4)//24H LINE 1 OF EACH PAIR IS/23H 3 HOLLERITH INFORMATION//9H RESULTS) AVD = .125 CVD = -.25 IVI = 2 BVD = DATAN2( DMIN1( AVD,-CVD), 2.0D0/ DBLE(FLOAT(IVI))) WRITE (NUVI, 1011) BVD BVD = DATAN2( AVD, FLOAT( IVI) * (-CVD)) WRITE (NUVI, 1012) BVD BVD = DATAN2 (DSIGN(2.0D0 * CVD + AVD, AVD), DMAX1(AVD,CVD,1.0D0)) WRITE (NUVI, 1013) BVD BVD = DATAN2(DMIN1(AVD,.0625D0),DMAX1(AVD,CVD)) WRITE (NUVI, 1014) BVD BVD = DATAN2(DABS(CVD) * DSIGN(AVD, CVD) * 6.D0, .25D0) WRITE (NUVI, 1015) BVD BVD = DATAN2 (DBLE(FLOAT(IVI)),AVD * FLOAT(IVI **4)) WRITE (NUVI, 1016) BVD WRITE (NUVI, 1017) 1011 FORMAT(10H0 X= 0.125,5X,19H 0.124354994547D+00 /10X,D24.12) 1012 FORMAT(10H0 X= 0.250,5X,19H 0.244978663127D+00 /10X,D24.12) 1013 FORMAT(10H0 X= 0.375,5X,19H 0.358770670271D+00 /10X,D24.12) 1014 FORMAT(10H0 X= 0.500,5X,19H 0.463647609001D+00 /10X,D24.12) 1015 FORMAT(10H0 X=-0.750,5X,19H-0.643501108793D+00 /10X,D24.12) 1016 FORMAT(10H0 X= 1.000,5X,19H 0.785398163397D+00 /10X,D24.12) 1017 FORMAT(//37H LINE 2 OF EACH PAIR IS THE FUNCTION/25H CALCULATION 1 PRINTED TO ,9H12 DIGITS ) C***** END OF TEST SEGMENT 101 C***** WHEN EXECUTING ONLY SEGMENT 101 THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** DMODA - (102) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST BASIC EXTERNAL FUNCTION - DMOD - 8.3.3 C***** (REMAINDERING -TYPE DOUBLE PRECISION) TABLE 4 C***** INTRINSIC FUNCTIONS DBLE,FLOAT,IDINT, ASSUMED WORKING C***** C***** S P E C I F I C A T I O N S SEGMENT 102 C***** C***** WHEN EXECUTING ONLY SEGMENT 102, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION AVD,BVD,CVD,DVD,EVD,FVD,GVD C***** C***** O U T P U T - T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 102 THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** WRITE (NUVI, 1020) 1020 FORMAT(15H1 DMODA - (102)//32H BASIC EXTERNAL FUNCTION -DMOD- 1//39H (REMAINDERING -TYPE DOUBLE PRECISION)//27H ASA REF.- 8.3.3 2 (TABLE 4)// 9H RESULTS) AVD = 16.0625D0 BVD = -4.0D0 CVD = -8.125D0 DVD = 2.5D0 EVD = -1.0D0 FVD = 1.0D0 FVD = DMOD(AVD, BVD) GVD = FVD - 0.0625D0 WRITE (NUVI, 1021) GVD FVD = 2.0D0 FVD = DMOD(CVD, DVD) GVD = FVD + 0.625D0 WRITE (NUVI, 1021) GVD FVD = 3.0D0 FVD = DMOD(BVD, EVD) GVD = FVD + 0.0D0 WRITE (NUVI, 1021) GVD FVD = 4.0D0 FVD = DMOD(BVD, AVD) GVD = FVD - (BVD-(DBLE(FLOAT(IDINT(BVD/AVD)))) * AVD) WRITE (NUVI, 1021) GVD WRITE (NUVI, 1022) 1021 FORMAT(//D25.14) 1022 FORMAT(//18H END OF DMOD TEST//40H ALL ABOVE ANSWERS SHOULD BE 0 1 FOR THIS/32H TEST SEGMENT TO BE SUCCESSFUL.) C***** END OF TEST SEGMENT 102 C***** WHEN EXECUTING ONLY SEGMENT 102 THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** CABSA - (103) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** .TO TEST BASIC EXTERNAL FUNCTION -CABS- 8.3.3 C***** (MODULUS OF A COMPLEX NUMBER) TABLE 4 C***** ARGUMENTS ARE ARRAY EP1C(30), FUNCTIONS FROM C***** ODD NUMBERED ARGUMENTS PRINTED AS SET 1 AND 2 C***** FROM EVEN NUMBERED ARGUMENTS C***** SET 1 RESULTS SHOULD BE .1 E-6 TO .1 E+8 C***** SET 2 RESULTS SHOULD BE .5 E-6 TO .5 E+8 C***** C***** S P E C I F I C A T I O N S SEGMENT 103 C***** C***** WHEN EXECUTING ONLY SEGMENT 103 THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= COMPLEX EP1C(30) C***** C***** O U T P U T - T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 103 THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** WRITE (NUVI, 1030) 1030 FORMAT(15H1 CABSA - (103)//32H BASIC EXTERNAL FUNCTION -CABS- 1//31H (MODULUS OF A COMPLEX NUMBER)//27H ASA REF.- 8.3.3 (TABLE 24)//9H RESULTS//10X,5HSET 1,15X,5HSET 2 ) C*****INITIALIZE EP1C(EXACT VALUES) EP1C(1) = (0.5E-7,-0.866025E-7) EP1C(2) = (2.5E-7,-4.330125E-7) EP1C(3) = (1.E-6,0.0) EP1C(4) = (5.E-6,0.0) EP1C(5) = (0.5E-5,0.866025E-5) EP1C(6) = (2.5E-5,4.330125E-5) EP1C(7) = (-0.5E-4,0.866025E-4) EP1C(8) = (-2.5E-4,4.330125E-4) EP1C(9) = (-1.E-3,0.0) EP1C(10) = (-5.E-3,0.0) EP1C(11) = (-0.5E-2,-0.866025E-2) EP1C(12) = (-2.5E-2,-4.330125E-2) EP1C(13) = (0.5E-1,-0.866025E-1) EP1C(14) = (2.5E-1,-4.330125E-1) EP1C(15) = (1.0,0.0) EP1C(16) = (5.0,0.0) EP1C(17) = (0.5E1,0.866025E1) EP1C(18) = (2.5E1,4.330125E1) EP1C(19) = (-0.5E2,0.866025E2) EP1C(20) = (-2.5E2,4.330125E2) EP1C(21) = (-1.E3,0.0) EP1C(22) = (-5.E3,0.0) EP1C(23) = (-0.5E4,-0.866025E4) EP1C(24) = (-2.5E4,-4.330125E4) EP1C(25) = (0.5E5,-0.866025E5) EP1C(26) = (2.5E5,-4.330125E5) EP1C(27) = (1.E6,0.0) EP1C(28) = (5.E6,0.0) EP1C(29) = (0.5E7,0.866025E7) EP1C(30) = (2.5E7,4.330125E7) IVI = - 1 1031 IVI = IVI + 2 AVS = CABS (EP1C(IVI)) BVS = CABS (EP1C(IVI + 1)) WRITE (NUVI, 1032) AVS, BVS 1032 FORMAT(1H0, E17.6, 2X, E17.6) IF (IVI - 29) 1031, 1033, 1033 1033 WRITE (NUVI, 1034) 1034 FORMAT(//39H VALUES IN EACH SET SHOULD BE POSITIVE /39H .1 FOR S 1ET 1 (.5 FOR SET 2), EXPONENT /35H RANGE FROM -06 TO +08 IN SEQUE 2NCE ) C***** END OF TEST SEGMENT 103 C***** WHEN EXECUTING ONLY SEGMENT 103 THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** BSFTS - (110) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST OF ALL STATEMENT FUNCTIONS THAT HAVE BEEN DEFINED C***** IN TEST SEGMENT 005 8.1.2 C***** GENERAL COMMENTS C***** INTRINSIC AND EXTERNAL FUNCTIONS ASSUMED WORKING C***** INTRINSIC AND BASIC EXTERNAL FUNCTIONS DECLARED IN A 10.1.7 C***** TYPE STATEMENT OF SAME TYPE AS TABLES 3 AND 4 5.3 C***** C***** S P E C I F I C A T I O N S SEGMENT 110 C***** C***** WHEN EXECUTING ONLY SEGMENT 110, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= INTEGER IFIX C= REAL ABS, SQRT C***** C***** WHEN EXECUTING ONLY SEGMENT 110, THE SEGMENT 005, WHICH C***** CONTAINS THE STATEMENT FUNCTIONS BEING TESTED HERE MUST BE C***** INSERTED AFTER THE SPECIFICATION STATEMENTS OF SEGMENT 110. C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 110, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** WRITE (NUVI,1100) 1100 FORMAT(39H1 BSFTS - (110) STATEMENT FUNCTION TEST/23X,16HINTEGER A 1ND REAL//18H ASA REF. - 8.1.2// 9H RESULTS) C***** HEADER FOR SEGMENT 110 WRITTEN CMAVS = 9.0 - CMAFS(2.0, 3.0 + 2.0) CMBVS = CMBFS(2/2, 1+1, 1*3) -2.0 MCAVI = MCAFI(IFIX(5.0),5) - (5 ** 5) MCBVI = MCBFI(1.0,2.0,3.0) - MCAFI(6,2) + 24 WRITE (NUVI,1108) CMAVS, CMBVS, MCAVI, MCBVI CMAVS = CMCFS(4.0,2.0,2.0) CMBVS = CMDFS(-1,-4) - 5.0 MCAVI = MCCFI(9*2/18, (4**2)/8, 3.0) - 14 MCBVI = MCDFI(1.,2.1,3.,4.,5.) -15 WRITE (NUVI,1108) CMAVS, CMBVS, MCAVI, MCBVI CMAVS = CMEFS(2.0,1.0 * 2.0) - 4.0 MCAVI = 3 CMBVS = CMFFS(1,2, MCAVI) - 23. MCAVI = MCEFI(2,2) - (4 ** 4) MCBVI = MCFFI(9.0,4.0,CMBVS * CMBVS * 0.0) - 6 WRITE (NUVI,1108) CMAVS, CMBVS, MCAVI, MCBVI CMAVS = CMGFS(3,13,2.0,5.0) - 4.0 CMBVS = CMGFS(IFIX(SQRT(CMAFS(2.,5.))),IFIX(CMFFS(1,2,3) -10.), 1 CMBFS(1,2,3), CMDFS(-1,-4)) - 4.0 MCAVI = MCGFI(2,2,2,0.0) - 1 MCBVI = MCGFI(MCAFI(2,1), MCBFI(1.0,0.,.0), IFIX(SQRT(CMGFS(3,13, 12.0,5.0))),EXP(0.0) - 1.0)-1 WRITE (NUVI,1108) CMAVS, CMBVS, MCAVI, MCBVI WRITE (NUVI,1109) 1108 FORMAT ( /2(F20.10 /),2(I19/ )) 1109 FORMAT ( /36H ALL ABOVE ANSWERS SHOULD BE 0 FOR / 137H THIS TEST SEGMENT TO BE SUCCESSFUL.) C***** END OF TEST SEGMENT 110 C***** WHEN EXECUTING ONLY SEGMENT 110, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** FSFTS - (111) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST STATEMENT FUNCTIONS THAT HAVE BEEN DEFINED IN 8.1.2 C***** SEGMENT 006 (FOR FULL FORTRAN TEST ONLY) C***** GENERAL COMMENTS C***** INTRINSIC AND EXTERNAL FUNCTIONS ASSUMED WORKING C***** INTRINSIC AND BASIC EXTERNAL FUNCTIONS DECLARED IN A 10.1.7 C***** TYPE STATEMENT OF SAME TYPE AS TABLES 3 AND 4 5.3 C***** C***** S P E C I F I C A T I O N S SEGMENT 111 C***** C***** WHEN EXECUTING ONLY SEGMENT 111, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION DPAFD,DPBFD,DPCFD,DPDFD,DPFFD,DPGFD,DPEFD,DPHFD C= DOUBLE PRECISION DPAVD, DPBVD, DPCVD, DPDVD,DAWVD,DBWVD, DCWVD C= DOUBLE PRECISION DPA1D(5),FC2D(5,5) C= DOUBLE PRECISION DBLE, DEXP C= COMPLEX CMPLX, CEXP C= COMPLEX CHAVC,CHBVC,CHCVC,CHDVC,CHEVC,CHFVC C= COMPLEX CHAFC, CHBFC, CHCFC, CHDFC, CAWVC, CBWVC C= LOGICAL A3B(2,2,2) C= LOGICAL MCFVB, MCHVB, ABFB, BCFB, IEFB, KLFB C= - ,MCEVB,MCIVB,MCKVB,ATVB,AWVB, BWVB, CWVB, DWVB, EWVB, SWVB,TWVB C***** C***** WHEN EXECUTING ONLY SEGMENT 111, THE SEGMENT 006, WHICH C***** CONTAINS THE STATEMENT FUNCTIONS BEING TESTED HERE MUST BE C***** INSERTED AFTER THE SPECIFICATION STATEMENTS OF SEGMENT 111. C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 111, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** WRITE (NUVI,1110) 1110 FORMAT(39H1 FSFTS - (111) STATEMENT FUNCTION TEST// 1 39H DOUBLE PRECISION, COMPLEX AND LOGICAL// 218H ASA REF. - 8.1.2//10H RESULTS ) C***** HEADER FOR SEGMENT 111 WRITTEN C***** CONSTANTS USED IN THIS SEGMENT CHAVC = (1.0,2.0) CHBVC = (-2.0,3.0) DPA1D(2) = 3.5D0 ATVB = .FALSE. PPDVS = 18. RRDVS = 21.0 ATVS = 18.0 MCFVB = .TRUE. FC2D(2,2) = 1.75D0 C***** TEST OF D.P. STATEMENT FUNCTIONS DPAVD = DPAFD(3.5D0,DPA1D(2)) - 49.0D0 DPBVD = DPBFD(1.D0,DPA1D(2)- 2.5D0,DBLE(1.0)) - 1.0D0 DPCVD = DPCFD(0.D0,1.0D0,DPA1D(2)+ 0.5D0) - 7.5D0 DPDVD = DPDFD(DBLE(AIMAG(CHAVC)),FC2D(2,2)) + 2.0D0 WRITE (NUVI,1118) DPAVD, DPBVD, DPCVD, DPDVD DPAVD = DPEFD(1.0D0, FC2D(2,2) *2.D0,(1.0,-4.),AMAX1(2.0,4.0)) 1 - 4.5D0 DPBVD = DPFFD(DPA1D(2), FC2D(2,2)-1.75D0,5.00) - 22.25D0 DPCVD = DPGFD(2.D0/.2D1,DPA1D(2) - 2.5D0,1.0,CHAVC) - 4.0D0 DPDVD= DPHFD(3.5D0, FC2D(2,2) - 2.75D0,5.0) - 34.5D0 WRITE (NUVI,1118) DPAVD, DPBVD, DPCVD, DPDVD C***** TEST OF COMPLEX STATEMENT FUNCTIONS CHCVC = CHAFC((2.0,2.),CHAVC) - (3.0,12.0) CHDVC = CHBFC((4.0,-8.5),CHBVC,1.0) - (7.0,-10.5) CHEVC = CHCFC((1.0,1.0) **2,CHAVC, 0.000, AIMAG(CHAVC) -2.0) CHFVC = CHDFC((0.0,0.0) ,CHAVC, 0.000 , SNGL (DMIN1(0.D0,4.D0)) 1)-(1.0,0.0) WRITE (NUVI,1117) CHCVC, CHDVC, CHEVC, CHFVC WRITE (NUVI, 1119) C***** TEST OF LOGICAL STATEMENT FUNCTION MCEVB = PPDVS .GT. 60.0 A3B(1,1,1) = ATVS .LE. 20.9 .AND. ABFB(.TRUE.,.TRUE.,.FALSE.) MCHVB = BCFB(.TRUE.,.FALSE.,PPDVS,21.0) .AND..NOT.PPDVS.GE.RRDVS MCIVB = .NOT. (IEFB(.FALSE.,ATVB,.TRUE.,650.,-5.11).AND.ATVB) MCKVB = MCFVB.AND.KLFB(.TRUE.,.TRUE.,.TRUE.,100.).AND..NOT.MCEVB WRITE (NUVI,1116) A3B(1,1,1), MCHVB, MCIVB, MCKVB 1116 FORMAT(//4(L4)//38H THE FOUR ABOVE ANSWERS SHOULD BE TRUE/ 1 35H FOR THIS SEGMENT TO BE SUCCESSFUL) 1117 FORMAT(/ 4(F16.7,F14.7/)) 1118 FORMAT (/ 4(D30.18/)) 1119 FORMAT (/ 40H ALL ABOVE ANSWERS SHOULD BE 0 FOR THIS/ 140H TEST SEGMENT TO BE SUCCESSFUL. VALUES /40H WITH EXPONENTS LE 2SS THAN 10**(-14) /22H ARE CONSIDERED ZERO ) C***** END OF TEST SEGMENT 111 C***** WHEN EXECUTING ONLY SEGMENT 111, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END STOP END nbs09.d 480890337 170 2 100666 302 ` SAMPLE COMPUTER, FORTRAN COMPILER LEVEL DO NOT READ OR WRITE RECORD 2 . DOUBLE SPACE ON OUTPUT. ID 2 OPERATING SYSTEM VERSION DO NOT READ OR WRITE RECORD 4 . DOUBLE SPACE ON OUTPUT ID 4 DATE, INSTALLATION NAME DO NOT READ OR WRITE RECORD 6 DOUBLE SPACE ON OUTPUT ID 6 nbs09.f 480890341 170 2 100666 34168 ` C***** PART9 ***************************************************** C***** C***** ANSI FORTRAN (X3.9-1966) TEST PROGRAMS C***** C***** PREPARED BY THE NATIONAL BUREAU OF STANDARDS VERSION 3 C***** C***** JUNE 1973 C***** C***** PART 9 OF 14 PARTS C***** C***** SEGMENTS INCLUDED C***** C***** CPXAD - 140 ADDITION AND SUBTRACTION OF COMPLEX NUMBERS C***** C***** CPXMU - 141 MULTIPLICATION OF COMPLEX NUMBERS C***** C***** CPXDV - 142 DIVISION OF COMPLEX NUMBERS C***** C***** CPXEX - 143 EXPONENTIATION OF COMPLEX NUMBERS C***** C***** CPXOP - 144 ARITHMETIC OPERATIONS ON COMPLEX NUMBERS C***** C***** CREAD - 145 ADDITION, SUBTRACTION OF COMPLEX, REAL NUMBERS C***** C***** CREMU - 146 MULTIPLICATION OF COMPLEX BY REAL NUMBERS C***** C***** CREDV - 147 DIVISION OF REAL, COMPLEX BY COMPLEX, REAL NOS. C***** C***** CREOP - 148 COMBINED OPERATIONS ON COMPLEX AND REAL NOS. C***** C***** MISC3 - 149 BLANKS IN AND CONT. OF STATEMENT TO MAX. LINES C***** C***** MISC4 - 150 SPECIAL CHARACTERS FOR CONTINUATIONS C***** C***** THE FOLLOWING SPECIFICATIONS ARE TO BE USED ONLY WHEN C***** SEGMENTS 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150 C***** ARE RUN AS ONE MAIN PROGRAM. C***** DIMENSION A1S(5), A2S(2,2) INTEGER AVI, I1I(5), I2I(2,2) COMPLEX AVC, BVC, CVC, DVC, EVC, FVC, GVC, HVC, IVC, JVC, 1 PVC, RVC, SVC, TVC, UVC, 2 AAVC, ABVC, BAVC, BCVC, CAVC, CCVC, CDVC, DAVC, DCVC, ASVC, 3 BSVC, CSVC, DSVC, DBVC, DDVC, MAVC, MBVC, MCVC, MDVC, BBVC, 4 AAAVC, ABAVC, ACAVC, ADAVC, AASVC, ABSVC, ACSVC, ADSVC COMPLEX NUMVC, DENVC, QAVC, QBVC, QCVC, QDVC C***** C***** C***** END OF SPECIFICATIONS FOR SEGMENTS C***** 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150 C*********************************************************************** C***** C***** CPXAD - (140) C***** C*********************************************************************** C***** GENERAL PURPOSE C***** TO TEST ADDITION AND SUBTRACTION OF COMPLEX NUMBERS ASA REF C***** INCLUDES OPERATIONS WITH UP TO 9 TERMS 6.1 C***** DOES NOT TEST FOR ACCURACY C***** C*****ADDITION AND SUBTRACTION OF 2 TERMS C***** C***** S P E C I F I C A T I O N S SEGMENT 140 C***** C***** WHEN EXECUTING ONLY SEGMENT 140, REMOVE THE PRECEDING C***** SPECIFICATIONS. THE FOLLOWING SPECIFICATIONS WHICH APPEAR C***** AS COMMENTS MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= COMPLEX AVC, BVC, CVC, DVC, EVC, FVC, GVC, HVC, IVC, JVC, AAVC, C= 1 ABVC,BAVC,BBVC,CCVC,CDVC,BCVC,DCVC C***** C***** I N P U T - O U T P U T T A P E ASSIGNMENT STATEMENTS IRVI = 5 NUVI = 6 C***** IDENTIFY THE SOURCE OF THE TEST PROGRAMS WRITE(NUVI,0071) 0071 FORMAT (41H1 F O R T R A N T E S T P R O G R A M S// 1 42H PREPARED BY NATIONAL BUREAU OF STANDARDS// 3 37H FOR USE ON LARGE FORTRAN PROCESSORS // 4 42H IN ACCORDANCE WITH ASA FORTRAN X3.9-1966// 5 23H VERSION 3 PART 9 ///) C***** 3 OF 6 INPUT CARDS IDENTIFY THE USERS SYSTEM AND COMPILER C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST READ(IRVI,0070) READ(IRVI,0072) READ(IRVI,0073) 0070 FORMAT(40H BASED ON ASA FORTRAN X3.9-1966 /) 0072 FORMAT(40H TEST PROGRAMS /) 0073 FORMAT(40H FORTRAN COMPILER /) WRITE(NUVI,0070) WRITE(NUVI,0072) WRITE(NUVI,0073) WRITE (NUVI, 1401) 1401 FORMAT(1H1,1X,34HCPXAD - (140) COMPLEX ADDITION AND/16X, 111HSUBTRACTION//2X,14HASA REF. - 6.1//2X,7HRESULTS//) AVC=(1.467,2.560) BVC=(3.568,7.480) CVC=AVC+BVC DVC=AVC+(3.568,7.480) EVC=(1.9467,2.9560)+BVC FVC=(1.467,2.560)+(3.568,7.480) GVC=AVC-BVC HVC = (.1467E+1,.2560E1) - BVC IVC = AVC - (3568E-3,.7480E+1) JVC=(1.467,2.560)-(3.568,7.480) C*****ADDITION AND SUBTRACTION OF 3 TERMS AAVC=AVC+BVC-CVC ABVC=AVC+(3.568,7.480)-DVC BAVC=(1.467,2.560)+BVC-CVC BBVC=(1.467,2.560)+(3.568,7.480)-FVC BCVC=AVC-BVC-GVC CCVC=(1.467,2.560)-BVC-HVC CDVC=AVC-(3.568,7.480)-IVC DCVC=(1.467,2.560)-(3.568,7.480)-JVC WRITE(NUVI,1402) AAVC,ABVC,BAVC,BBVC,BCVC,CCVC,CDVC,DCVC C*****ADDITION AND SUBTRACTION OF 5 TERMS AAVC=AVC-(1.89,6.48)-AAVC-BVC+(0.0,9.830) ABVC=AVC-(1.89,6.48)-AAVC-BVC+(0.0,9.830) WRITE(NUVI,1402)ABVC 1402 FORMAT(2X,2F8.4) AAVC=AVC-(1.89,6.48)-BVC+(0.0,9.83)+CVC C*****ADDITION AND SUBTRACTION OF 6 TERMS ABVC=AVC-(1.89,6.48)-BVC+(0.0,9.83)+CVC-AAVC WRITE(NUVI,1402) ABVC C*****ADDITION AND SUBTRACTION OF 8 TERMS AAVC=AVC+BVC-CVC+(0.34,6.45)-(4.54,6.85)+DVC+(1.0,0.0)-EVC C*****ADDITION AND SUBTRACTION OF 9 TERMS ABVC=AVC+BVC-CVC+(0.34,6.45)-(4.54,6.85)+DVC+(1.0,0.0)-EVC-AAVC WRITE (NUVI,1403) ABVC 1403 FORMAT(2X,2F8.4//2X,35HTEST IS POSITIVE IF NUMBERS PRINTED/2X , 117HABOVE ARE 0.0,0.0) C***** END OF TEST SEGMENT 140 C***** WHEN EXECUTING ONLY SEGMENT 140, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** CPXMU - (141) C*********************************************************************** C***** GENERAL PURPOSE C***** TO TEST MULTIPLICATION OF COMPLEX NUMBERS ASA REF C***** INCLUDES OPERATIONS WITH UP TO 10 TERMS 6.1 C***** DOES NOT TEST FOR ACCURACY C***** C***** C***** S P E C I F I C A T I O N S SEGMENT 141 C***** C***** WHEN EXECUTING ONLY SEGMENT 141, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= COMPLEX AVC, BVC, CVC, DVC, EVC, FVC, GVC, HVC, IVC, JVC C= 1 ,AAVC, ABVC, BAVC, BBVC C***** C***** O U T O U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 141, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI, 1411) 1411 FORMAT (1H1,1 X,36HCPXMU - (141) COMPLEX MULTIPLICATION//2X, 114HASA REF. - 6.1//2X,7HRESULTS//) C*****MULTIPLICATION OF TWO TERMS AVC = (-0.5,0.86602) BVC = (-0.5,-0.86602) AAVC = (AVC * BVC ) ABVC = AVC * (-0.5,-0.86602) BAVC = (-0.5,0.86602) * BVC BBVC = (-0.5,0.86602)*(-0.5,-0.86602) WRITE(NUVI,1412) AAVC,ABVC,BAVC,BBVC C*****MULTIPLICATION OF 3 TERMS AVC=(0.0,1.0) BVC=(1.0,0.0) CVC=(0.0,-1.0) AAVC=AVC*BVC*CVC ABVC=(0.0,1.0)*BVC*(0.0,-1.0) WRITE(NUVI,1412) AAVC,ABVC 1412 FORMAT(2X,2F8.3) C*****MULTIPLICATION OF 4 TERMS AVC=(0.30901,0.95105) BVC=(-0.80901,0.58778) CVC=(-0.80901,-0.58778) DVC=(0.30901,-0.95105) AAVC=AVC*BVC*CVC*DVC ABVC=AVC*(-0.80901,0.58778)*CVC*(0.30901,-0.95105) WRITE(NUVI,1412) AAVC,ABVC C*****MULTIPLICATION OF 5 TERMS AVC=(0.5,0.86602) BVC=(-0.5,0.86602) CVC = (1.0,0.0) DVC=(-0.5,-0.86602) EVC=(0.5,-0.86602) AAVC=AVC*BVC*CVC*DVC*EVC ABVC=AVC*(-0.5,0.86602)*CVC*(-0.5,-0.86602)*EVC WRITE(NUVI,1412) AAVC,ABVC C*****MULTIPLICATION OF 6 TERMS AVC = (0.98480,0.17364) BVC=(-0.17364,0.98480) CVC=(-0.86602,0.5) DVC=(-0.93969,-0.34202) EVC=(0.34202,-0.93969) FVC=(0.86602,-0.5) AAVC=AVC*BVC*CVC*DVC*EVC*FVC ABVC=AVC*(-0.17364,0.98480)*CVC*(-0.93969,-0.34202)*EVC*(0.86602, 1-0.5) WRITE(NUVI,1412) AAVC,ABVC C*****MULTIPLICATION OF 7 TERMS AVC=(0.70710,0.70710) BVC=(0.0,1.0) CVC=(-0.70710,0.70710) DVC=(1.0,0.0) EVC=(-0.70710,-0.70710) FVC=(0.0,-1.0) GVC=(0.70710,-0.70710) AAVC=AVC*BVC*CVC*DVC*EVC*FVC*GVC ABVC=AVC*(0.0,1.0)*CVC*( 1.0,0.0)*EVC*(0.0,-1.0)*GVC WRITE(NUVI,1412) AAVC,ABVC C*****MULTIPLICATION OF 8 TERMS AVC=(0.76604,0.64278) BVC=(0.17364,0.98480) CVC=(-0.5,0.86602) DVC=(-0.93969,0.34202) EVC=(-0.93969,-0.34202) FVC=(-0.5,-0.86602) GVC=(0.17364,-0.98480) HVC=(0.76604,-0.64278) AAVC=AVC*BVC*CVC*DVC*EVC*FVC*GVC*HVC ABVC=AVC*(0.17364,0.98480)*CVC*DVC*(-0.93969,-0.34202)*FVC*GVC*HVC WRITE(NUVI,1412) AAVC,ABVC C*****MULTIPLICATION OF 9 TERMS AVC=(0.80901,0.58778) BVC=(0.30901,0.95105) CVC=(-0.94832,0.31730) DVC=(-0.80901,0.58778) EVC = (1.0,0.0) FVC=(-0.80901,-0.58778) GVC=(-0.94832,-0.31730) HVC=(0.30901,-0.95105) IVC=(0.80901,-0.58778) AAVC=AVC*BVC*CVC*DVC*EVC*FVC*GVC*HVC*IVC ABVC=AVC*(0.30901,0.95105)*CVC*(-0.80901,0.58778)*( 1.0,0.0)*FVC* 1GVC*HVC*IVC WRITE(NUVI,1412) AAVC,ABVC C*****MULTIPLICATION OF 10 TERMS AVC=(0.86602,0.5) BVC=(0.5,0.86602) CVC=(0.0,1.0) DVC=(-0.5,0.86602) EVC=(-0.86602,0.5) FVC=(-1.0,0.0) GVC=(-0.86602,-0.5) HVC=(-0.5,-0.86602) IVC=(0.0,-1.0) JVC=(0.0,1.0) AAVC=AVC*BVC*CVC*DVC*EVC*FVC*GVC*HVC*IVC*JVC ABVC=AVC*(0.5,0.86602)*CVC*(-0.5,0.86602)*EVC*FVC*GVC*HVC*(0.0,-1. 10)*JVC WRITE(NUVI,1412) AAVC,ABVC WRITE(NUVI,1413) 1413 FORMAT (1H0,35HTEST IS POSITIVE IF NUMBERS PRINTED/1X, 117HABOVE ARE 1.0,0.0) WRITE(NUVI, 1414) 1414 FORMAT (//39H ERROR SHOULD NOT EXCEED + OR - .001 ) C***** END OF TEST SEGMENT 141 C***** WHEN EXECUTING ONLY SEGMENT 141, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** CPXDV-(142) C***** C*********************************************************************** C***** GENERAL PURPOSE C***** TO TEST DIVISION OF COMPLEX NUMBERS ASA REF C***** 6.1 C***** C***** S P E C I F I C A T I O N S SEGMENT 142 C***** C***** WHEN EXECUTING ONLY SEGMENT 142, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= COMPLEX NUMVC,DENVC,QAVC,QBVC,QCVC,QDVC C***** C***** O U T O U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 142, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI, 1421) 1421 FORMAT(1H1,1X,25HCPXDX - (142) DIVISION OF/16X, 115HCOMPLEX NUMBERS//15H ASA REF.- 6.1//2X,7HRESULTS//) C***** TEST NUMBER 1 NUMVC=(0.36602,1.36602) DENVC=(0.86602,0.5) QAVC=NUMVC/DENVC QBVC=(0.36602,1.3660) /DENVC QCVC=NUMVC/(0.86602,0.5) QDVC=(0.36602,1.36602)/(0.86602,0.5) WRITE(NUVI,1422) QAVC,QBVC,QCVC,QDVC C*****TEST NUMBER 2 NUMVC=(0.0,1.41420) DENVC=(0.70710,0.70710) QAVC=NUMVC/DENVC QBVC=(0.0,1.41420)/DENVC QCVC=NUMVC/(0.70710,0.70710) QDVC=(0.0,1.41420)/(0.70710,0.70710) WRITE(NUVI,1422) QAVC,QBVC,QCVC,QDVC 1422 FORMAT(2X,2F8.4) C*****TEST NUMBER 3 NUMVC=(-0.36602,1.36602) DENVC=(0.5,0.86602) QAVC=NUMVC/DENVC QBVC=(-0.36602,1.36602)/DENVC QCVC=NUMVC/(0.5,0.86602) QDVC=(-0.36602,1.36602)/(0.5,0.86602) WRITE(NUVI,1422) QAVC,QBVC,QCVC,QDVC C*****TEST NUMBER 4 NUMVC=(0.73204,2.73204) DENVC=(1.73204,1.0) QAVC=NUMVC/DENVC QBVC=(0.73204,2.73204)/DENVC QCVC=NUMVC/(1.73204,1.0) QDVC=(0.73204,2.73204)/(1.73204,1.0) WRITE(NUVI,1422) QAVC,QBVC,QCVC,QDVC C***** TEST NUMBER 5 NUMVC=(0.0,2.82840) DENVC=(1.41420,1.41420) QAVC=NUMVC/DENVC QBVC=(0.0,2.82840)/DENVC QCVC=NUMVC/(1.41420,1.41420) QDVC=(0.0,2.82840)/(1.41420,1.41420) WRITE(NUVI,1422) QAVC,QBVC,QCVC,QDVC WRITE(NUVI,1423) 1423 FORMAT (//2X,35HTEST IS POSITIVE IF NUMBERS PRINTED/2X, 117HABOVE ARE 1.0,1.0) WRITE (NUVI, 1424) 1424 FORMAT (//39H ERROR SHOULD NOT EXCEED + OR - .0001 ) C***** END OF TEST SEGMENT 142 C***** WHEN EXECUTING ONLY SEGMENT 142, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** CPXEX(143) C***** C*********************************************************************** C***** GENERAL PURPOSE C***** TO TEST EXPONENTIATION OF COMPLEX NUMBERS ASA REF C***** BY INTEGERS 6.1 C***** EXPONENT VALUES VARY FROM 3 TO 100 C***** C***** S P E C I F I C A T I O N S SEGMENT 143 C***** C***** WHEN EXECUTING ONLY SEGMENT 143, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= COMPLEX AVC,BVC,CVC,DVC,EVC C***** C***** O U T O U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 143, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI, 1431) 1431 FORMAT(1H1,1 X,36HCPXEX - (143) COMPLEX EXPONENTIATION// 1 2X,11HASA.REF.6.1//2X,29HRESULTS BASED ON THE FUNCTION// 2 2X,25H1.0 = SIN**2(X)+COS**2(X)//) C***** EXPONENT=3 AVC = (-0.5,0.8660254) AVI=3 BVC=AVC**3 CVC = (-0.5,0.8660254) ** 3 DVC = (-0.5,0.8660254) ** AVI EVC=AVC**AVI WRITE(NUVI,1432) BVC,CVC,DVC,EVC C***** EXPONENT=4 AVC=(0.0,1.0) AVI=4 BVC=AVC**4 CVC=(0.0,1.0)**4 DVC=(0.0,1.0)**AVI EVC=AVC**AVI WRITE(NUVI,1432) BVC,CVC,DVC,EVC 1432 FORMAT (2X,2F8.4) C***** EXPONENT=6 AVC = ( 0.5,0.8660254) AVI=6 BVC=AVC**6 CVC = ( 0.5,0.8660254) ** 6 DVC = ( 0.5,0.8660254) ** AVI EVC= AVC**AVI WRITE(NUVI,1432) BVC,CVC,DVC,EVC C***** EXPONENT=8 AVC = (0.7071068,0.7071068) AVI=8 BVC=AVC**8 CVC = (0.7071068,0.7071068) ** 8 DVC = (0.7071068,0.7071068) ** AVI EVC=AVC**AVI WRITE(NUVI,1432) BVC,CVC,DVC,EVC C***** EXPONENT=10 AVC = (0.8090170,0.5877853) AVI=10 BVC=AVC**10 CVC = (0.8090170,0.5877853) ** 10 DVC = (0.8090170,0.5877853) ** AVI EVC=AVC**AVI WRITE(NUVI,1432) BVC,CVC,DVC,EVC C*****EXPONENT=20 AVC = (0.9510565,0.3090170) AVI=20 BVC=AVC**20 CVC = (0.9510565,0.3090170) ** 20 DVC = (0.9510565,0.3090170) ** AVI EVC=AVC**AVI WRITE(NUVI,1432) BVC,CVC,DVC,EVC C***** EXPONENT=40 AVC = (0.9876883,0.1564345) AVI=40 BVC=AVC**40 CVC = (0.9876883,0.1564345) ** 40 DVC = (0.9876883,0.1564345) ** AVI EVC=AVC**AVI WRITE(NUVI,1432) BVC,CVC,DVC,EVC C***** EXPONENT=60 AVC = (0.9945219,0.1045285) AVI=60 BVC=AVC**60 CVC = (0.9945219,0.1045285) ** 60 DVC = (0.9945219,0.1045285) ** AVI EVC=AVC**AVI WRITE(NUVI,1432) BVC,CVC,DVC,EVC C*****EXPONENT=80 AVI = 80 AVC = (0.9969173,0.0784591) BVC=AVC**80 CVC = (0.9969173,0.0784591) ** 80 DVC = (0.9969173,0.0784591) ** AVI EVC=AVC**AVI WRITE(NUVI,1432) BVC,CVC,DVC,EVC C***** EXPONENT=100 AVC = (0.9980267,0.0627905) AVI=100 BVC=AVC**100 CVC = (0.9980267,0.0627905) ** 100 DVC = (0.9980267,0.0627905) ** AVI EVC=AVC**AVI WRITE(NUVI,1432) BVC,CVC,DVC,EVC WRITE (NUVI,1433) 1433 FORMAT (// 37H TEST IS POSITIVE IF NUMBERS PRINTED/2X, 1 26HABOVE ARE CLOSE TO 1.0,0.0) WRITE (NUVI, 1434) 1434 FORMAT(// 39H ERROR SHOULD NOT EXCEED + OR - .0001 ) C***** END OF TEST SEGMENT 143 C***** WHEN EXECUTING ONLY SEGMENT 143, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** CPXOP - (144) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST ARITHMETIC OPERATIONS ON COMPLEX NUMBERS. 6.1 C***** OPERATIONS INCLUDE ALL BASIC OPERATORS (+,-,*,**) ACTING C***** ON COMPLEX NUMBERS C***** C***** S P E C I F I C A T I O N S SEGMENT 144 C***** C***** WHEN EXECUTING ONLY SEGMENT 144, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= INTEGER AVI C= COMPLEX AVC, BVC, CVC, DVC, EVC, FVC, GVC,HVC,PVC,RVC,SVC,TVC,UVC C***** C***** O U T O U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 144, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI, 1441) 1441 FORMAT(1H1,1X,32HCPXOP - (144) COMPLEX OPERATIONS//2X, 111HASA REF 6.1//2X,7HRESULTS//) AVC = (0.9396926,0.3420201) BVC = (1.2817127,0.5976725) CVC = (0.0, 1.4142136) DVC = (0.7071068, 0.7071068) EVC = (1.0986841, 0.4550899) AVI = 2 RVC=(AVC*BVC+(0.9396926,0.3420201)*BVC+AVC*(1.2817127,0.5976725)- 1(0.9396926,0.3420201)*(1.2817127,0.5976725)+CVC/DVC+(0.0,1.4142136 2)/DVC+CVC/(0.7071068,0.7071068)-(0.0,1.4142136)/(0.7071068, 3 0.7071068)+EVC**2-EVC**AVI+(1.0986841,0.4550899)**2+(1.0986841, 4 0.4550899)**AVI)**2/(0.0, 72.0) FVC=(0.0,4.0) GVC=(0.43301,0.3) HVC=(0.43301,0.2) PVC=(1.73204,1.0) SVC=FVC/((GVC+HVC)*(PVC**2)) TVC=(0.0,4.0)/(((0.43301,0.3)+(0.43301,0.2))*((1.73204,1.0)**2)) UVC=FVC/((GVC+(0.43301,0.2))*(PVC**2)) WRITE (NUVI,1442) RVC,SVC,TVC,UVC 1442 FORMAT ( 4(2X,2F8.4/) /37H TEST IS POSITIVE IF NUMBERS PRINTED / 12X, 17HABOVE ARE 1.0,0.0 ) WRITE (NUVI, 1443) 1443 FORMAT(// 39H ERROR SHOULD NOT EXCEED + OR - .0001 ) C***** END OF TEST SEGMENT 144 C***** WHEN EXECUTING ONLY SEGMENT 144, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** CREAD-(145) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST ADDITION AND SUBTRACTION OF COMPLEX 6.1 C***** AND REAL NUMBERS C***** C***** S P E C I F I C A T I O N S SEGMENT 145 C***** C***** WHEN EXECUTING ONLY SEGMENT 145, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= COMPLEX AVC,BAVC,CAVC,DAVC,ASVC,BSVC,CSVC,AAVC C= 2 , DSVC,AAAVC,ABAVC,ACAVC,ADAVC,AASVC,ABSVC,ACSVC,ADSVC C***** C***** O U T O U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 145, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI, 1450) 1450 FORMAT(1H1,1X,38HCREAD - (145) ADDITION AND SUBTRACTION/ 1 10X,27HOF COMPLEX AND REAL NUMBERS//2X, 1 12HASA REF. 6.1//2X,7HRESULTS//) AVC=(5.4,7.5) AVS=4.2 C***** ADDITION AND SUBTRACTION OF 2 NUMBERS AAVC=AVC-AVS BAVC=(5.4,7.5)-AVS CAVC=AVC-4.2 DAVC=(5.4,7.5)-4.2 ASVC=AVC+AVS BSVC=(5.4,7.5)+AVS CSVC=AVC+4.2 DSVC=(5.4,7.5)+4.2 C***** ADDITION AND SUBTRACTION OF 3 NUMBERS AAAVC=AVC-AVS-AAVC ABAVC=(5.4,7.5)-AVS-BAVC ACAVC=AVC-4.2-(1.2,7.5) ADAVC=(5.4,7.5)-4.2-(1.2,7.5) AASVC=AVC+AVS-ASVC ABSVC=(5.4,7.5)+AVS-BSVC ACSVC=AVC+4.2-(9.6,7.5) ADSVC=(5.4,7.5)+4.2-(9.6,7.5) WRITE(NUVI,1451)ABAVC,ACAVC,ADAVC,AASVC,ABSVC,ACSVC,ADSVC,AAAVC 1451 FORMAT( 2X, 2F8.4) C***** ADDITION AND SUBTRACTION OF 7 NUMBERS ADSVC=AVC-(5.4,7.5)+AVS-4.2+ASVC-3.2-(6.4,7.5) WRITE(NUVI,1452) ADSVC 1452 FORMAT(2X,2F8.4//37H TEST IS POSITIVE IF NUMBERS PRINTED/2X, 1 17HABOVE ARE 0.0,0.0) C***** END OF TEST SEGMENT 145 C***** WHEN EXECUTING ONLY SEGMENT 145, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** CREMU - (146) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST MULTIPLICATION OF COMPLEX NUMBERS BY 6.1 C***** REAL NUMBERS C***** C***** S P E C I F I C A T I O N S SEGMENT 146 C***** C***** WHEN EXECUTING ONLY SEGMENT 146, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= COMPLEX AVC,BVC, MAVC,MBVC,MCVC,MDVC C***** C***** O U T O U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 146, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI, 1461) 1461 FORMAT(1H1,1X,39HCREMU - (146) MULTIPLICATION OF COMPLEX/16X, 1 7HBY REAL //2X, 2 11HASA.REF.6.1//2X,7HRESULTS//) C*****MULTIPLICATION OF A COMPLEX NUMBER BY A REAL NUMBER AVC=(1.6,3.2) AVS=0.625 MAVC=AVC*AVS MBVC=(1.6,3.2)*AVS MCVC=AVC*0.625 MDVC=(1.6,3.2)*0.625 WRITE (NUVI,1463) MAVC,MBVC,MCVC,MDVC 1463 FORMAT(4(2X,2F8.4/)//37H TEST IS POSITIVE IF NUMBERS PRINTED/,2X, 417HABOVE ARE 1.0,2.0 ) C*****MULTIPLICATION OF 4 TERMS AVS=4.0 BVS=0.25 AVC=(0.93969,0.34202) BVC=(1.28168,0.59764) MAVC=AVS*AVC*BVS*BVC MBVC=4.0*BVS*AVC*BVC MCVC=4.0*BVS*(0.93969,0.34202)*BVC MDVC=4.0*0.25*(0.93969,0.34202)*(1.28168,0.59764) WRITE (NUVI,1462) MAVC,MBVC,MCVC,MDVC 1462 FORMAT(//4(2X,2F8.4/)//37H TEST IS POSITIVE IF NUMBERS PRINTED/ 12X,17HABOVE ARE 1.0,1.0) WRITE (NUVI, 1464) 1464 FORMAT(// 39H ERROR SHOULD NOT EXCEED + OR - .0001 ) C***** END OF TEST SEGMENT 146 C***** WHEN EXECUTING ONLY SEGMENT 146, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** CREDV - (147) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST DIVISION OF REAL (COMPLEX) NUMBERS BY 6.1 C***** COMPLEX (REAL) NUMBERS C***** C***** S P E C I F I C A T I O N S SEGMENT 147 C***** C***** WHEN EXECUTING ONLY SEGMENT 147, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= COMPLEX AVC,DAVC,DBVC,DCVC,DDVC C***** C***** O U T O U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 147, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI, 1471) 1471 FORMAT (1H1,1X,33HCREDV - (147) DIVISION OF COMPLEX/16X,16HAND REA 1L NUMBERS//2X,11HASA REF 6.1//2X,7HRESULTS//) C*****DIVISION OF REAL BY COMPLEX AVS=2.0 AVC=(1.0, -1.0) DAVC=AVS/AVC DBVC=2.0/AVC DCVC=AVS/(1.0, -1.0) DDVC=2.0/(1.0, -1.0) WRITE (NUVI,1473) DAVC,DBVC,DCVC,DDVC 1473 FORMAT( 2X, 2F8.4) C*****DIVISION OF COMPLEX BY REAL AVS=2.5463 AVC=(2.5463,2.5463) DAVC=AVC/AVS DBVC=(2.5463,2.5463)/AVS DCVC=AVC/2.5463 DDVC=(2.5463,2.5463)/2.5463 WRITE (NUVI,1472) DAVC,DBVC,DCVC,DDVC 1472 FORMAT (4(2X,2F8.4/)//37H TEST IS POSITIVE IF NUMBERS PRINTED/ 1 2X,17HABOVE ARE 1.0,1.0) WRITE (NUVI, 1474) 1474 FORMAT(// 39H ERROR SHOULD NOT EXCEED + OR - .0001 ) C***** END OF TEST SEGMENT 147 C***** WHEN EXECUTING ONLY SEGMENT 147, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** CREOP - (148) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST COMBINED OPERATIONS ON COMPLEX AND REAL NUMBERS 6.1 C*****DIVISION OF TWO POLYNOMIALS C***** C***** S P E C I F I C A T I O N S SEGMENT 148 C***** C***** WHEN EXECUTING ONLY SEGMENT 148, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= INTEGER AVI C= COMPLEX AVC,BVC,CVC,DVC,RVC C***** C***** O U T O U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 148, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI, 1481) 1481 FORMAT(1H1,1X,36HCREOP - (148) OPERATIONS ON REAL AND/16X,15HCOMPL 1EX NUMBERS// 2X,12HASA REF. 6.1//2X, 7HRESULTS//) AVC=(1.0,1.0) AVS=1.0 BVS = 2.0 BVC=(1.0,-1.0) RVC = (BVS + AVC *(1.+AVC * (-1.+(1.0,1.0)*(-1. +AVC))))/ 1 (4.0+BVC*(2.0+BVC*(-AVS+BVC*(0.5+BVC)))) WRITE (NUVI,1483) RVC 1483 FORMAT( 2X,2F8.4//37H TEST IS POSITIVE IF NUMBERS PRI 3NTED/2X,18HABOVE ARE 2.0,-1.0//) C*****COMPLEX ARITHMETIC EXPRESSION AVC=(1.60,3.2) AVS=0.625 BVS=2.0 BVC=(1.0,-1.0) CVS=2.5 CVC=(2.5,2.5) DVC = (1.09866,0.45508) AVI = 2 RVC=(AVC*AVS+(1.6,3.2)*AVS-AVC*0.625-(1.6,3.2)*0.625+BVS/BVC 1-BVS/(1.0,-1.0)+2.0/BVC+2.0/(1.0,-1.0)+CVC/CVS-(2.5,2.5)/CVS+ 2CVC/2.5+(2.5,2.5)/2.5+DVC**AVI-(1.09866,0.45508)**2+DVC**2+ 3(1.09866,0.45508)**AVI)**2/(0.0,72.0) WRITE (NUVI,1482) RVC 1482 FORMAT(2X,2F8.4// 37H TEST IS POSITIVE IF NUMBERS PRINTED/2X, 1 17HABOVE ARE 1.0,0.0) WRITE (NUVI, 1484) 1484 FORMAT(// 39H ERROR SHOULD NOT EXCEED + OR - .0001 ) C***** END OF TEST SEGMENT 148 C***** WHEN EXECUTING ONLY SEGMENT 148, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** MISC3 - (149) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST EFFECT OF BLANKS WITHIN STATEMENT, 3.1.4.1 C***** CONTINUATION OF STATEMENT TO MAX.NO.OF LINES, 3.2.4,3.3 C***** AND USE OF SPECIAL CHARACTERS TO INDICATE CONTINUATION 3.2.4 C***** LINE - C***** FOR BASIC INTEGERS AND REAL NUMBERS C***** C***** S P E C I F I C A T I O N S SEGMENT 149 C***** C***** WHEN EXECUTING ONLY SEGMENT 149, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION A1S(5),A2S(2,2) C= INTEGER I1I(5),I2I(2,2) C***** C***** O U T O U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 149, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,1490) 1490 FORMAT(1H1,1X,37HMISC3 - (149) EFFECT OF BLANKS WITHIN/16X, 122HSTMNT AND CONTINUATION/16X,20HOF STMNT TO 20 LINES// 239H ASA REFS. - 3.1.4.1 3.2.4.3.3 3.2.4//2X,7HRESULTS ) J A C V I = 1 I =1 +I -( *2 /) =2 I 2I( 2 , 1) = 3 A CV S = - 1 .0 E 0 A 1 S ( 2) = -2 00 . E - 2 A 2 S ( 2 , 1 ) = - .0 3 E + 2 K B * CVI ( = ) J A $ C V . I , + I / 1 I = ( 2 1 ) 2 + 3I 4 2 5 I 6 ( 7 2 8 , 9 1 A ) B - 6 C M = A , V S ( = $ A * C . V ) S /+ 1 A 1 2 S 3 ( 42) + 5 A 6 2 7 S ( 8 2 , 1 9) A + B 6 . 0 W RI T E (NU VI , 1 49 1 ) KB CVI , CMA VS 1 491 F O RM A T (//I10//F11.1// 2 X, 35HTEST IS POSITIVE IF NUMBERS PRI 1NTED/ 2 X, 1 1HABOVE ARE 0) C***** END OF TEST SEGMENT 149 C***** WHEN EXECUTING ONLY SEGMENT 149, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** MISC4 - (150) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST EFFECT OF BLANKS WITHIN STATEMENT, 3.1.4.1 C***** CONTINUATION OF STATEMENT TO 20 LINES, 3.2.4.3.3 C***** AND USE OF SPECIAL CHARACTERS TO INDICATE CONTINUATION 3.2.4 C***** CONTINUATION LINE CAN CONTAIN FORTRAN CHARACTERS C***** (OTHER THAN C IN COLUMN 1) IN COLUMNS 1 THRU 5 (CLARIFICATION 3) C***** C***** S P E C I F I C A T I O N S SEGMENT 150 C***** C***** WHEN EXECUTING ONLY SEGMENT 150, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= INTEGER AVI C= COMPLEX AVC,BVC,CVC,DVC,RVC C***** C***** O U T O U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 150, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI, 1500) 1 500 F O RM A T( 1 H1 , 1 X , 13 HMISC4 - (150) X,1X, 2 3 HEFFECT OF BLANKS WITHIN / 16X, 22HSTMNT AND CON YTINUATION/ 16X, 20HOF STMNT TO 20 LINES// I39H ASA REFS. - 3.1.4.1 3.2.4.3.3 3.2.4//2X,7HRESULTS//) AVC = (1 .0 , 1 .0) AVS = 1. 0 B V S = 2 . 0 BVC= (1 .0 ,- 1 .0) RVC = (B VS +A V C*( 1 . +A VC *( - 1.+ (1 .0, 1 T. 0 ) *( - 1 .0+ A V C ) )) ) /( U4 .0 + BV C * (2 . 0 + BVC * V( - A V S + B V C *( 0 . 5 + B WV C ) ) ) ) RVC = RV C +(-2.0, +1 .0) W RI T E (N UV I , 15 02 ) R VC 1502 FORMAT( 2X, 2F8.4) C*****COMPLEX ARITHMETIC EXPRESSION C***** STATEMENT LABEL NOT REFERENCED 3.4 1503 A VC=1.+V -C * = / ( (1 ). ,6 .0 I, J3 K. L2 M ) C***** CONTINUE STATEMENT WITH NO LABEL 3.4 CONTINUE AVS = 0.625 BVS = 2.0 BVC = (1.0,-1.0) CVS = 2.5 CVC = (2.5,2.5) DVC = (1.0986841, 0.4550899) AVI = 2 RVC = B(AVC*AVS C+(1.6,3.2) D*AVS-AVC E*0.625 F-(1.6,3.2) G*0.625 H+BVS/BVC I-BVS/(1.0,-1.0) J+2.0/BVC+2.0/ K(1.0,-1.0)+CVC/CVS L-(2.5,2.5)/CVS+CVC/2.5 M+(2.5,2.5)/2.5+DVC**AVI N-(1.0986841,0.4550899)**2 O+DVC**2 P+ Q(1.0986841,0.4550899) R**AVI) S**2/(0.0,72.0) T -(1.0,0.0) W R I T E ( N U V I , 1 5 0 1) R V C 15 01 FORM AT(/ /2 X , 2 F 8 . 4 1501 Z/ / 3 7H TEST IS POSITIVE IF NUMBERS PRINTED/ 2X =, 1 7 HABOVE ARE 0.0,0.0 ) C***** END OF TEST SEGMENT 150 C***** WHEN EXECUTING ONLY SEGMENT 150, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END STOP END nbs10.d 480890343 170 2 100666 299 ` SAMPLE COMPUTER, FORTRAN COMPILER LEVEL DO NOT READ OR WRITE RECORD 2 . DOUBLE SPACE ON OUTPUT. ID 2 OPERATING SYSTEM VERSION DO NOT READ OR WRITE RECORD 4 . DOUBLE SPACE ON OUTPUT ID 4 DATE, INSTALLATION NAME DO NOT READ OR WRITE RECORD 6 DOUBLE SPACE ON OUTPUT ID 6 nbs10.f 535327858 170 2 100666 34707 ` C***** PART10 **************************************************** C***** C***** ANSI FORTRAN (X3.9-1966) TEST PROGRAMS C***** C***** PREPARED BY THE NATIONAL BUREAU OF STANDARDS VERSION 3 C***** C***** JUNE 1973 C***** C***** PART 10 OF 14 PARTS C***** C***** SEGMENTS INCLUDED C***** C***** BRFCP - 160 REAL EXTERNAL FUNCTIONS C***** C***** AFS - 400 REAL ARGUMENT C***** C***** BFS - 420 REAL ARGUMENTS C***** C***** CFS - 430 INTEGER ARGUMENT C***** C***** DFS - 440 INTEGER ARGUMENTS C***** C***** EFS - 450 ARRAY NAME C***** C***** FFS - 460 DIFFERENT TYPES OF ARGUMENTS C***** C***** BIFCP - 161 INTEGER EXTERNAL FUNCTIONS C***** C***** IAFI - 401 REAL ARGUMENT C***** C***** IBFI - 421 REAL ARGUMENTS C***** C***** ICFI - 431 INTEGER ARGUMENT C***** C***** IDFI - 441 INTEGER ARGUMENTS C***** C***** IEFI - 451 ARRAY NAME C***** C***** IFFI - 461 DIFFERENT TYPES OF ARGUMENTS C***** C***** FRFCP - 162 REAL FUNCTIONS C***** C***** GFS - 402 D.P. ARGUMENT C***** C***** HFS - 422 COMPLEX ARGUMENTS C***** C***** IRFS - 432 LOGICAL ARGUMENT C***** C***** JRFS - 442 EXTERNAL PROCEDURE C***** C***** RFS - 452 DIFFERENT TYPES OF ARGUMENTS C***** C***** FIFCP - 163 INTEGER FUNCTIONS C***** C***** IFI - 403 D.P. ARGUMENT C***** C***** JFI - 423 COMPLEX ARGUMENTS C***** C***** KFI - 433 LOGICAL ARGUMENT C***** C***** LFI - 443 EXTERNAL PROCEDURE C***** C***** MFI - 453 DIFFERENT TYPES OF ARGUMENTS C***** C***** CFCCP - 164 COMPLEX FUNCTIONS C***** C***** AFC - 404 REAL ARGUMENT C***** C***** BFC - 414 INTEGER ARGUMENT C***** C***** CFC - 424 ARRAY NAME C***** C***** DFC - 434 D.P. ARGUMENT C***** C***** EFC - 444 COMPLEX ARGUMENT C***** C***** FFC - 454 LOGICAL ARGUMENT C***** C***** HFC - 464 DIFFERENT TYPES OF ARGUMENTS C***** C***** THE FOLLOWING SPECIFICATIONS ARE TO BE USED ONLY WHEN C***** SEGMENTS 160, 161, 162, 163, 164 C***** ARE RUN AS ONE MAIN PROGRAM. C***** DIMENSION A1S(5), A2S(2,2) , A3S(3,3,3) INTEGER I1I(5), I2I(2,2), I3I(2,2,2) REAL JRFS, IRFS LOGICAL A1B(2), A2B(2,2), A3B(2,2,2), AVB, BVB DOUBLE PRECISION AVD, A1D(4), A2D(2,2), A3D(2,2,2) COMPLEX AVC, BVC,AFC, BFC, CFC, DFC, EFC, FFC, HFC 1 , A1C(12), A2C(2,2), A3C(2,2,1) COMMON AXVS, CXVS EXTERNAL GFS, BFC, IFI C***** C***** END OF SPECIFICATIONS FOR SEGMENTS C***** 160,161, 162, 163, 164 C*********************************************************************** C***** C***** BRFCP - (160) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** 1.TO TEST REAL FUNCTIONS 8.3.1 C***** 2.DUMMY ARGUMENTS ARE REAL OR INTEGER VARIABLES,OR C***** ARRAY NAMES C***** 3.FUNCTIONS CONTAIN UP TO 20 ARGUMENTS C***** 4.IN REFERENCE, ACTUAL ARGUMENTS ARE VARIABLE NAME, C***** ARRAY NAME, ARRAY ELEMENT NAME, OR AN ARITHMETIC C***** EXPRESSION 8.3.2 C***** RESTRICTIONS OBSERVED C***** 1.ITEMS(2),(3),(4),(5),(6) OF PARAGRAPH 8.3.1 C***** 2.LAST SENTENCE OF PARAGRAPH 3.2 C***** THIS SEGMENT IS TO BE RUN WITH SEGMENTS C***** 400, 420, 430, 440, 450, 460 WHICH C***** CONTAINS ALL FUNCTIONS BEING TESTED HERE. C***** C***** S P E C I F I C A T I O N S SEGMENT 160 C***** C***** WHEN EXECUTING ONLY SEGMENT 160, REMOVE THE PRECEDING C***** SPECIFICATIONS. THE FOLLOWING SPECIFICATIONS WHICH C***** APPEAR AS COMMENTS MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION A1S(5),A2S(2,2) C***** C***** I N P U T - O U T P U T T A P E ASSIGNMENT STATEMENT IRVI = 5 NUVI = 6 C***** IDENTIFY THE SOURCE OF THE TEST PROGRAMS WRITE(NUVI,0071) 0071 FORMAT (41H1 F O R T R A N T E S T P R O G R A M S// 1 42H PREPARED BY NATIONAL BUREAU OF STANDARDS// 3 37H FOR USE ON LARGE FORTRAN PROCESSORS // 4 42H IN ACCORDANCE WITH ASA FORTRAN X3.9-1966// 5 23H VERSION 3 PART 10///) C***** 3 OF 6 INPUT CARDS IDENTIFY THE USERS SYSTEM AND COMPILER C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST READ(IRVI,0070) READ(IRVI,0072) READ(IRVI,0073) 0070 FORMAT(40H BASED ON ASA FORTRAN X3.9-1966 /) 0072 FORMAT(40H TEST PROGRAMS /) 0073 FORMAT(40H FORTRAN COMPILER /) WRITE(NUVI,0070) WRITE(NUVI,0072) WRITE(NUVI,0073) WRITE(NUVI,1604) 1604 FORMAT(1H1,1X,37HBRFCP - (160) REAL EXTERNAL FUNCTIONS/ 1 /2X,16HASA REF. - 8.3.1//28H RESULTS SHOULD BE POSITIVE) IAVI=2 A1S(1)=1.0 A1S(2)=1.0 A2S(2,2)=1.0 A2S(2,1)=1.0 AVS=1.0 BVS=2.0 CVS=1.0 DVS=1.0 EVS=1.0 IVI=AFS(2.0)-8.0 MAVI=1 IF(IVI)1600,1601,1600 1605 IVI=BFS(2.0,BVS)-4.0 MAVI=2 IF(IVI)1600,1601,1600 1606 IVI = CFS(2) -16.0 MAVI=3 IF(IVI)1600,1601,1600 1607 IVI=DFS(2,IAVI)-1.0 MAVI=4 IF(IVI)1600,1601,1600 1608 IVI=EFS(A1S)-2.0 MAVI=5 IF(IVI)1600,1601,1600 1609 IVI=FFS(IAVI,AVS,+2,-1.0,A1S,IAVI,CVS,A1S,1.0,IAVI,A1S,A1S,BVS,DVS 1 ,A1S(1),A2S,A2S,A2S,EVS+1.0,IAVI-1) + 1.0 print *, IAVI,AVS,+2,-1.0,A1S,IAVI,CVS,A1S,1.0,IAVI,A1S,A1S, & BVS,DVS,A1S(1),A2S,A2S,A2S,EVS+1.0,IAVI-1 MAVI=6 IF(IVI) 1600,1601,1600 1600 WRITE (NUVI,1602)MAVI GO TO 7001 1601 WRITE (NUVI,1603)MAVI 1602 FORMAT (//2X,5HTEST ,I1,12H IS NEGATIVE) 1603 FORMAT (//2X,5HTEST ,I1,12H IS POSITIVE) 7001 GO TO (1605,1606,1607,1608,1609,7000 ),MAVI 7000 CONTINUE C***** END OF TEST SEGMENT 160 C***** WHEN EXECUTING ONLY SEGMENT 160, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= IN C***** COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** BIFCP - (161) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** 1-TO TEST INTEGER FUNCTIONS 8.3.1 C***** 2-DUMMY ARGUMENTS ARE REAL OR INTEGER VARIABLES OR C***** ARRAY NAMES 8.3.1 C***** 3-FUNCTIONS CONTAIN UP TO 20 ARGUMENTS C***** 4-IN REFERENCE,ACTUAL ARGUMENTS ARE VARIABLE NAME, C***** ARRAY NAME,ARRAY ELEMENT NAME,OR AN ARITHMETIC C***** EXPRESSION 8.3.2 C*****RESTRICTIONS OBSERVED C***** 1-ITEMS (2),(3),(4),(5),(6) OF PARAGRAPH 8.3.1 C***** 2-LAST SENTENCE OF PARAGRAPH 3.2 C***** THIS SEGMENT IS TO BE RUN WITH SEGMENTS C***** 401, 421, 431, 441, 451, 461 WHICH C***** CONTAINS ALL FUNCTIONS BEING TESTED HERE. C***** C***** S P E C I F I C A T I O N S SEGMENT 161 C***** C***** WHEN EXECUTING ONLY SEGMENT 161, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION A1S(5) C= INTEGER I1I(5) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 161, THE STATEMENT NUVI = 6 C***** MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE(NUVI,1614) 1614 FORMAT(1H1,1X,40HBIFCP - (161) INTEGER EXTERNAL FUNCTIONS/ 1 16X,26HWITH INTEGER AND REAL ARGS//2X,16HASA REF. - 8.3.1// 228H RESULTS SHOULD BE POSITIVE) IAVI=2 A1S(1)=1.0 A1S(2)=1.0 I1I(1)=1 I1I(2)=1 AVS=1.0 BVS=2.0 CVS=1.0 DVS=1.0 EVS=1.0 IVI=IAFI(2.0) - 8 MAVI=1 IF (IVI) 1610,1611,1610 1615 IVI=IBFI(2.0,BVS)-4 MAVI=2 IF (IVI) 1610,1611,1610 1616 IVI = ICFI(2) - 16 MAVI=3 IF (IVI) 1610,1611,1610 1617 IVI=IDFI(2,IAVI)-1 MAVI=4 IF (IVI) 1610,1611,1610 1618 IVI=IEFI(I1I)-2 MAVI=5 IF (IVI) 1610,1611,1610 1619 IVI=IFFI(IAVI,AVS,2,-1.0,A1S,IAVI,CVS,A1S,1.0,IAVI,A1S,A1S,BVS, 1DVS,A1S(1),A1S,A1S,A1S,EVS+1.0,IAVI-1) + 1 MAVI=6 IF(IVI) 1610,1611,1610 1610 WRITE(NUVI,1612)MAVI GO TO 7002 1611 WRITE(NUVI,1613)MAVI 1612 FORMAT (//2X,5HTEST ,I1,12H IS NEGATIVE) 1613 FORMAT (//2X,5HTEST ,I1,12H IS POSITIVE) 7002 GO TO (1615,1616,1617,1618,1619,7003),MAVI 7003 CONTINUE C***** END OF TEST SEGMENT 161 C***** WHEN EXECUTING ONLY SEGMENT 161, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** FRFCP - (162) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** 1.TO TEST REAL FUNCTIONS IN FULL FORTRAN C***** 2.THIS SEGMENT COMPLETES SEGMENT (160) IN ORDER TO TEST C***** FOR ALL FEATURES REQUIRED IN FULL FORTRAN 8.3.1 C***** 3.DUMMY ARGUMENTS CAN BE INTEGER(TESTED IN 160),REAL(TESTED IN C***** 160),ARRAY NAME(TESTED IN 160),DOUBLE PRECISION,COMPLEX, C***** LOGICAL OR EXTERNAL PROCEDURE 8.3.1 C***** 4.DUMMY ARGUMENTS MAY BE REDEFINED IN SUBPROGRAM(ITEM 4) 8.3.1 C***** 5.IN REFERENCE, ACTUAL ARGUMENTS MAY BE AS IN (160) AND C***** BESIDES EXTERNAL PROCEDURE. IN THIS CASE, EXTERNAL 8.3.2 C***** PROCEDURE IS REFERENCED BY AN EXTERNAL STATEMENT C***** 6.USE CAN BE MADE OF ADJUSTABLE DIMENSION C*****RESTRICTIONS OBSERVED C***** 1.ITEMS (1), (2), (3), (5) OF 8.3.1 C***** 2.PARAGRAPH 8.3.2, LINE 18 TO END OF PARAGRAPH C***** THIS SEGMENT USES 5 REAL FUNCTIONS C***** THIS SEGMENT IS TO BE RUN WITH SEGMENTS C***** 402, 422, 432, 442, 452 WHICH C***** WHICH CONTAINS ALL FUNCTIONS BEING TESTED HERE C***** C***** S P E C I F I C A T I O N S SEGMENT 162 C***** C***** WHEN EXECUTING ONLY SEGMENT 162, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION A1S(5),A2S(2,2),A3S(3,3,3) C= INTEGER I1I(5),I2I(2,2),I3I(2,2,2) C= REAL JRFS,IRFS C= LOGICAL A1B(2),A2B(2,2),A3B(2,2,2),AVB,BVB C= DOUBLE PRECISION AVD,A1D(4),A2D(2,2),A3D(2,2,2) C= COMPLEX AVC,BVC,A1C(12),A2C(2,2),A3C(2,2,1) C= COMMON AXVS,CXVS C= EXTERNAL GFS C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 162, THE STATEMENT NUVI = 6 C***** MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,1624) 1624 FORMAT(1H1,1X,33HFRFCP - (162) REAL FUNCTIONS WITH/10X,31HLOGICAL, 1 D.P., AND COMPLEX ARGS//16H ASA REF. 8.3.1// 228H RESULTS SHOULD BE POSITIVE) C*****TEST 1 AVD = 1.0D0 MAVI = 1 IVI = 1.0-GFS(AVD) IF (IVI) 1620,1621,1620 C*****TEST 2 1625 MAVI =2 AVC = (1.0,-1.0) BVC = (1.0,1.0) IVI = HFS(AVC,BVC) IF (IVI) 1620,1621,1620 C*****TEST 3 1626 MAVI=3 AVB = .TRUE. IVI = IRFS(AVB)*2.0 AVB = .FALSE. JVI = IRFS(AVB)*4.0 LVI = IVI + JVI - 4 IF (LVI) 1620,1621,1620 C*****TEST 4 1627 MAVI=4 IVI = JRFS(AVD,GFS) IF (IVI-1) 1620,1621,1620 C*****TEST 5,6,7 1628 AXVS = 1.0 AVS = 1.0 A1S(1) = 1.0 A2S(1,1) = 1.0 A3S(1,1,1) = 1.0 AVB = .FALSE. A1B(1) = .FALSE. A2B(1,1) = .FALSE. A3B(1,1,1) = .FALSE. IAVI = 1 I1I(1) = 1 I2I(1,1) =1 I3I(1,1,1) =1 A1C(1) = (1.0,1.0) A2C(1,1) = (1.0,1.0) A3C(1,1,1) = (-2.0,-2.0) AVD = 1.0D0 A1D(1) = 1.0D0 A2D(1,1) = 1.0D0 A3D(1,1,1) = 1.0D0 IVI= RFS(AVS,IAVI,AVB,AVC,AVD,A1S,A2S,A3S,I1I,I2I,I3I,A1B,A2B,A3B, 1 A1C,A2C,A3C,A1D,A2D,A3D,GFS) MAVI = 5 IF (IVI) 1620,1621,1620 1629 MAVI = 6 BVB = AVB.AND.A1B(1).AND.A2B(1,1).AND.A3B(1,1,1) IF (BVB) GO TO 1621 GO TO 1620 7010 IVI=REAL(AVC) JVI = AIMAG(AVC) MAVI = 7 BVB = IVI.EQ.0.AND.JVI.EQ.0 IF (BVB) GO TO 1621 1620 WRITE (NUVI,1622) MAVI GO TO 7011 1621 WRITE (NUVI,1623) MAVI 1622 FORMAT(//2X,5HTEST ,I1,13H IS NEGATIVE.) 1623 FORMAT (//2X,5HTEST ,I1,13H IS POSITIVE.) 7011 GO TO (1625,1626,1627,1628,1629,7010,7012),MAVI 7012 CONTINUE C***** END OF TEST SEGMENT 162 C***** WHEN EXECUTING ONLY SEGMENT 162, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** FIFCP - (163) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** 1.TO TEST INTEGER FUNCTIONS IN FULL FORTRAN C***** 2.THIS SEGMENT COMPLETES SEGMENT (161) IN ORDER TO TEST C***** FOR ALL FEATURES REQUIRED IN FULL FORTRAN. 8.3.1 C***** 3.DUMMY ARGUMENTS CAN BE INTEGER(TESTED IN 161),REAL(TESTED C***** IN 161),DOUBLE PRECISION,COMPLEX,LOGICAL,OR EXTERNAL PROCEDURE C***** 4.DUMMY ARGUMENTS MAY BE REDIFINED IN SUBPROGRAM(ITEM 4) C***** 5. IN REFERENCE,ACTUAL ARGUMENTS MAY BE AS IN (161) AND BESIDES C***** EXTERNAL PROCEDURE.IN THIS CASE,EXTERNAL PROCEDURE IS C***** REFERENCED BY AN EXTERNAL STATEMENT. C***** 6. USE CAN BE MADE OF ADJUSTABLE DIMENSION. C*****RESTRICTIONS OBSERVED C***** 1.ITEMS (1),(2),(3),(5), OF 8.3.1 C***** 2 PARAGRAPH 8.3.2,LINE 18 TO END OF PARAGRAPH C***** THIS SEGMENT USES 5 INTEGER FUNCTIONS C***** THIS SEGMENT IS TO BE RUN WITH SEGMENTS C***** 403, 423, 433, 443, 453 WHICH C***** WHICH CONTAINS ALL FUNCTIONS BEING TESTED HERE C***** C***** S P E C I F I C A T I O N S SEGMENT 163 C***** C***** WHEN EXECUTING ONLY SEGMENT 163, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= EXTERNAL IFI C= DIMENSION A1S(5),A2S(2,2),A3S(3,3,3) C= INTEGER I1I(5),I2I(2,2),I3I(2,2,2) C= LOGICAL AVB,BVB,A1B(2),A2B(2,2),A3B(2,2,2) C= DOUBLE PRECISION AVD,A1D(4),A2D(2,2),A3D(2,2,2) C= COMPLEX AVC,BVC,A1C(12),A2C(2,2),A3C(2,2,1) C= COMMON AXVS,CXVS C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 163, THE STATEMENT NUVI = 6 C***** MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE(NUVI,1634) 1634 FORMAT (1H1,1X,33HFIFCP - (163) INTEGER FUNCTION IN/ 16X, 1 12HFULL FORTRAN//2X, 214HASA REF. 8.3.1//28H RESULTS SHOULD BE POSITIVE) C***** TEST 1 AVD=1.0D0 MAVI=1 IVI=1-IFI(AVD) IF (IVI) 1630,1631,1630 C***** TEST 2 1635 MAVI=2 AVC=(1.0, 1.0) BVC=(1.0,-1.0) IVI=JFI(AVC,BVC) IF (IVI) 1630,1631,1630 C*****TEST 3 1636 MAVI=3 AVB=.TRUE. IVI=KFI(AVB)*2 AVB=.FALSE. JVI=IVI+KFI(AVB)-4 IF (JVI) 1630,1631,1630 C***** TEST 4 1637 MAVI=4 IVI=LFI(AVD,IFI)-1 IF (IVI) 1630,1631,1630 C***** TESTS 5,6,7 1638 AXVS=1.0 AVS = 1. A1S(1)=1.0 A2S(1,1)=1.0 A3S(1,1,1)=1.0 IAVI=1 I1I(1) = 1 I2I(1,1)=1 I3I(1,1,1)=1 A1C(1)=(1.0,1.0) A2C(1,1)=(1.0,1.0) A3C(1,1,1)=(-2.0,-2.0) AVD=1.0D0 A1D(1)=1.0D0 A2D(1,1)=1.0D0 A3D(1,1,1)=1.0D0 IVI=MFI(AVS,IAVI,AVB,AVC,AVD,A1S,A2S,A3S,I1I,I2I,I3I,A1B,A2B,A3B, 1A1C,A2C,A3C,A1D,A2D,A3D,IFI) MAVI=5 IF (IVI) 1630,1631,1630 1639 MAVI=6 BVB=AVB.AND.A1B(1).AND.A2B(1,1).AND.A3B(1,1,1) IF (BVB) GO TO 1631 IF (.NOT.BVB) GO TO 1630 7007 IVI=REAL(AVC) JVI=AIMAG(AVC) MAVI=7 IF (IVI+JVI) 1630,1631,1630 1630 WRITE(NUVI,1632) MAVI GO TO 7008 1631 WRITE(NUVI,1633) MAVI 1632 FORMAT (//2X,5HTEST ,I2,12H IS NEGATIVE) 1633 FORMAT(//2X,5HTEST , I2,12H IS POSITIVE) 7008 GO TO (1635,1636,1637,1638,1639,7007,7009),MAVI 7009 CONTINUE C***** END OF TEST SEGMENT 163 C***** WHEN EXECUTING ONLY SEGMENT 163, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** CFCCP-(164) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** 1.TO TEST COMPLEX FUNCTIONS IN FULL FORTRAN 8.3.1 C***** 2.DUMMY ARGUMENTS ARE REAL,INTEGER,COMPLEX,LOGICAL, C***** DOUBLE PRECISION,EXTERNAL PROCEDURE,ARRAY NAME. C***** 3.FUNCTIONS CONTAIN UP TO 20 ARGUMENTS C***** 4.IN REFERENCE ACTUAL ARGUMENTS ARE VARIABLE NAME C***** ARRAY NAME,ARRAY ELEMENT NAME,ARITHMETIC EXPRESSION C***** EXTERNAL PROCEDURE C***** 6.USE CAN BE MADE OF ADJUSTABLE DIMENTION C***** 7.ARGUMENTS CAN BE PASSED THROUGH COMMON C*****RESTRICTIONS OBSERVED C***** 1.ITEMS(2),(3),(4),(5),(6) OF PARAGRAPH C***** 2.LAST SENTENCE OF PARAGRAPH 3.2 C***** THIS SEGMENT USES 8 COMPLEX FUNCTIONS C***** THIS SEGMENT IS TO BE RUN WITH SEGMENTS C***** 404, 414, 424, 434, 444, 454, 464 C***** WHICH CONTAIN ALL FUNCTIONS BEING TESTED HERE C***** C***** S P E C I F I C A T I O N S SEGMENT 164 C***** C***** WHEN EXECUTING ONLY SEGMENT 164, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION A1S(5),A2S(2,2),A3S(3,3,3) C= INTEGER I1I(5),I2I(2,2),I3I(2,2,2) C= LOGICAL AVB,A1B(2),A3B(2,2,2),A2B(2,2),BVB C= DOUBLE PRECISION AVD,A1D(4),A2D(2,2),A3D(2,2,2) C= COMPLEX AFC,BFC,CFC,DFC,EFC,FFC,HFC,AVC,BVC C= 1,A1C(12),A2C(2,2),A3C(2,2,1) C= COMMON AXVS,CXVS C= EXTERNAL BFC C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 164, THE STATEMENT NUVI = 6 C***** MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE(NUVI,1641) 1641 FORMAT(1H1,1X,31HCFCCP - (164) COMPLEX FUNCTIONS//2X, 1 21HASA REFS. 8.3.1,8.3.2//2X, 7HRESULTS) C***** TEST 1 BVC=AFC(1.0) MAVI=1 WRITE(NUVI,1642) BVC,MAVI 1642 FORMAT(1H0,2F5.1,9H -- TEST ,I2,20H POSITIVE IF 0.0,0.0) C***** TEST 2 MAVI=2 BVC= BFC(1)-(1.0,1.0) WRITE(NUVI,1642)BVC,MAVI C***** TEST 3 MAVI=3 A1S(1)=1.0 A1S(2)=1.0 BVC=CFC(A1S) WRITE(NUVI,1642)BVC,MAVI C***** TEST 4 MAVI=4 BVC = DFC (1.D0) WRITE(NUVI,1642)BVC,MAVI C*****TEST 5 MAVI=5 AVC=(1.0,1.0) BVC=EFC(AVC) WRITE(NUVI,1642)BVC,MAVI C*****TEST 6 MAVI=6 AVB=.TRUE. BVC=FFC(AVB)-(1.0,1.0) WRITE(NUVI,1642)BVC,MAVI C***** TEST 7 MAVI=7 AVB=.FALSE. BVC=FFC(AVB) WRITE(NUVI,1642)BVC,MAVI C***** TEST 8,9,10 IVI=1 AVD=1.0D0 A1D(1)=1.0D0 A2D(1,1)=1.0D0 A3D(1,1,1)=1.0D0 AVS=1.0 A1S(1)=1.0 A2S(1,1)=1.0 A3S(1,1,1)=1.0 A1C(1)=(1.0,1.0) A2C(1,1)=(1.0,1.0) A3C(1,1,1)=(1.0,1.0) I1I(1)=1 I2I(1,1)=1 I3I(1,1,1)=1 AVC = (0.0,0.0) BVC= HFC(AVS,IVI,AVB,AVC,AVD,A1S,A2S,A3S,I1I,I2I,I3I,A1B,A2B,A3B, 1A1C,A2C,A3C,A1D,A2D,A3D,BFC) MAVI = 8 WRITE (NUVI,1642) BVC,MAVI MAVI=9 IF(AXVS) 1643,1644,1643 1648 MAVI = 10 BVB=AVB.AND.A1B(1).AND.A2B(1,1).AND. A3B(1,1,1) IF (BVB) GO TO 1644 1643 WRITE(NUVI,1645)MAVI GO TO 1647 1644 WRITE(NUVI,1646)MAVI 1645 FORMAT(/15X,5HTEST ,I2,12H IS NEGATIVE) 1646 FORMAT(/15X,5HTEST ,I2,12H IS POSITIVE) 1647 IF (MAVI - 9) 1649,1648,1649 1649 CONTINUE C***** END OF TEST SEGMENT 164 C***** WHEN EXECUTING ONLY SEGMENT 164, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END STOP END C*********************************************************************** C***** C***** AFS - (400) C***** C*********************************************************************** C*****REAL FUNCTION OF REAL ARGUMENT (TEST 1) FUNCTION AFS(AWVS) AFS=4.0*AWVS RETURN END C*********************************************************************** C***** C***** BFS - (420) C***** C*********************************************************************** C*****REAL FUNCTION OF REAL ARGUMENTS (TEST 2) FUNCTION BFS(AWVS,BWVS) BFS=AWVS+BWVS RETURN END C*********************************************************************** C***** C***** CFS - (430) C***** C*********************************************************************** C*****REAL FUNCTION OF INTEGER ARGUMENT (TEST 3) FUNCTION CFS(IWVI) CFS=4.0**IWVI RETURN END C*********************************************************************** C***** C***** DFS - (440) C***** C*********************************************************************** C*****REAL FUNCTION OF INTEGER ARGUMENTS (TEST 4) FUNCTION DFS(IWVI,JWVI) KVI = IWVI - JWVI DFS=4.6**KVI RETURN END C*********************************************************************** C***** C***** EFS - (450) C***** C*********************************************************************** C*****REAL FUNCTION OF ARRAY NAME(TEST 5) FUNCTION EFS(AW1S) DIMENSION AW1S(2) EFS=AW1S(1)+AW1S(2) RETURN END C*********************************************************************** C***** C***** FFS - (460) C***** C*********************************************************************** C*****REAL FUNCTION OF DIFFERENT TYPES OF ARGUMENTS(TEST 6) FUNCTION FFS(IWVI,AWVS,JWVI,BWVS,AW1S,KWVI,CWVS,BW1S,DWVS,LWVI, 1CW1S,DW1S,EWVS,FWVS,GWVS,BW2S,CW2S,DW2S,HWVS,MWVI) DIMENSION AW1S(2),BW1S(2),CW1S(2),DW1S(2),BW2S(2,2),CW2S(2,2), 1DW2S(2,2) print *, 'FUNCTION FFS:\n',IWVI,AWVS,JWVI,BWVS,AW1S,KWVI,CWVS, 1BW1S,DWVS,LWVI,CW1S,DW1S,EWVS,FWVS,GWVS,BW2S,CW2S,DW2S,HWVS,MWVI FFS=AWVS**IWVI-BWVS**JWVI-AW1S(1)-CWVS**KWVI+BW1S(2)-DWVS+CW1S(1) 1**LWVI+DW1S(1)-EWVS+FWVS-GWVS+BW2S(2,1)-CW2S(2,2)+DW2S(2,2)-HWVS** 2MWVI print *, 'ffs=', ffs RETURN END C*********************************************************************** C***** C***** IAFI - (401) C***** C*********************************************************************** C*****INTEGER FUNCTION OF REAL ARGUMENT (TEST 1) FUNCTION IAFI(AWVS) IAFI=4.0*AWVS RETURN END C*********************************************************************** C***** C***** IBFI - (421) C***** C*********************************************************************** C*****INTEGER FUNCTION OF TWO REAL ARGUMENTS (TEST 2) FUNCTION IBFI(AWVS,BWVS) IBFI=AWVS+BWVS RETURN END C*********************************************************************** C***** C***** ICFI - (431) C***** C*********************************************************************** C*****INTEGER FUNCTION OF INTEGER ARGUMENT(TEST 3) FUNCTION ICFI(IWVI) ICFI=4.0**IWVI RETURN END C*********************************************************************** C***** C***** IDFI - (441) C***** C*********************************************************************** C*****INTEGER FUNCTION OF INTEGER ARGUMENTS (TEST 4) INTEGER FUNCTION IDFI (IWVI, JWVI) REAL KUVS DATA KUVS /4.6/ IDFI = IWVI - JWVI IDFI = KUVS ** IDFI RETURN E N D C*********************************************************************** C***** C***** IEFI - (451) C***** C*********************************************************************** C*****INTEGER FUNCTION OF ARRAY NAME (TEST 5) FUNCTION IEFI(IAW1I) DIMENSION IAW1I(2) IEFI=IAW1I(1)+IAW1I(2) RETURN END C*********************************************************************** C***** C***** IFFI - (461) C***** C*********************************************************************** C*****INTEGER FUNCTION OF DIFFERENT TYPES OF ARGUMENTS(TEST 6) FUNCTION IFFI(IWVI,AWVS,JWVI,BWVS,AW1S,KWVI,CWVS,BW1S,DWVS,LWVI, 1CW1S,DW1S,EWVS,FWVS,GWVS,EW1S,GW1S,HW1S,HWVS,MWVI) DIMENSION AW1S(2),BW1S(2),CW1S(2),DW1S(2),EW1S(5), GW1S(5), 1 HW1S(5) IFFI=AWVS**IWVI-BWVS**JWVI+AW1S(1)-CWVS**KWVI+BW1S(2)-DWVS+CW1S(1) 1**LWVI+DW1S(1)-EWVS+FWVS-GWVS+EW1S(1) -GW1S(2) +HW1S(2) -HWVS** 2MWVI RETURN END C*********************************************************************** C***** C***** GFS - (402) C***** C*********************************************************************** C***** REAL FUNCTION OF DOUBLE PRECISION ARGUMENT (TEST 1) FUNCTION GFS(AWVD) DOUBLE PRECISION AWVD GFS = AWVD RETURN END C*********************************************************************** C***** C***** HFS - (422) C***** C*********************************************************************** C*****REAL FUNCTION OF COMPLEX ARGUMENT (TEST 2) FUNCTION HFS(AWVC,BWVC) COMPLEX AWVC,BWVC,CVC CVC = AWVC * BWVC HFS = AIMAG(CVC) RETURN END C*********************************************************************** C***** C***** IRFS - (432) C***** C*********************************************************************** C*****REAL FUNCTION OF LOGICAL ARGUMENT (TEST 3) REAL FUNCTION IRFS(AWVB) LOGICAL AWVB IF (AWVB) GO TO 4321 4320 IF (.NOT. AWVB) GO TO 4322 RETURN 4321 IRFS = 2.0 GO TO 4320 4322 IRFS = 0.0 RETURN END C*********************************************************************** C***** C***** JRFS - (442) C***** C*********************************************************************** C*****REAL FUNCTION OF EXTERNAL PROCEDURE (TEST 4) REAL FUNCTION JRFS( BWVD,BWFS) DOUBLE PRECISION BWVD JRFS = BWFS(BWVD) RETURN END C*********************************************************************** C***** C***** RFS - (452) C***** C*********************************************************************** C*****REAL FUNCTION OF DIFFERENT TYPES OF ARGUMENTS. USE IS MADE OF C*****ADJUSTABLE DIMENSION (TEST 5, 6, 7) FUNCTION RFS(AWVS,IWVI,AWVB,AWVC,AWVD,AW1S,AW2S,AW3S,IW1I,IW2I, 1IW3I,AW1B,AW2B,AW3B,AW1C,AW2C,AW3C,AW1D,AW2D,AW3D,AWFS) LOGICAL AWVB,AW1B,AW2B,AW3B COMPLEX AWVC,AW1C,AW2C,AW3C DOUBLE PRECISION AWVD, AW1D,AW2D,AW3D DIMENSION AW1S(IWVI),AW2S(IWVI,IWVI),AW3S(IWVI,IWVI,IWVI) , 1 IW1I(IWVI),IW2I(IWVI,IWVI),IW3I(IWVI,IWVI,IWVI) , 2 AW1B(IWVI),AW2B(IWVI,IWVI),AW3B(IWVI,IWVI,IWVI) , 3 AW1C(IWVI),AW2C(IWVI,IWVI),AW3C(IWVI,IWVI,IWVI) , 4 AW1D(IWVI),AW2D(IWVI,IWVI),AW3D(IWVI,IWVI,IWVI) COMMON BXVS RFS =AWVS**IWVI+AW1S(IWVI)**IW1I(IWVI)-AW2S(IWVI,IWVI)**IW2I 1 (IWVI,IWVI)+AW3S(IWVI,IWVI,IWVI)**IW3I(IWVI,IWVI,IWVI)-AWVD+ 2 AW1D(IWVI)-AW2D(IWVI,IWVI)-AW3D(IWVI,IWVI,IWVI)+AWFS(AWVD)-BXVS AWVB = IWVI.EQ.1 AW1B(IWVI) = IWVI .EQ. 1 AW2B(IWVI,IWVI) = IWVI .EQ. 1 AW3B(IWVI,IWVI,IWVI) = IWVI.EQ.1 AWVC = AW1C(IWVI) +AW2C(IWVI,IWVI)+AW3C(IWVI,IWVI,IWVI) RETURN C***** END OF TEST SEGMENT 402 END C*********************************************************************** C***** C***** IFI - (403) C***** C*********************************************************************** C***** INTEGER FUNCTION OF DOUBLE PRECISION ARGUMENT(TEST 1) FUNCTION IFI(AWVD) DOUBLE PRECISION AWVD IFI=AWVD RETURN END C*********************************************************************** C***** C***** JFI - (423) C***** C*********************************************************************** C*****INTEGER FUNCTION OF COMPLEX ARGUMENT(TEST 2) FUNCTION JFI(AWVC,BWVC) COMPLEX AWVC,BWVC,CVC CVC =AWVC*BWVC JFI=AIMAG(CVC) RETURN END C*********************************************************************** C***** C***** KFI - (433) C***** C*********************************************************************** C*****INTEGER FUNCTION OF LOGICAL ARGUMENT(TEST 3) FUNCTION KFI(AWVB) LOGICAL AWVB IF (AWVB) GO TO 4331 4330 IF (.NOT.AWVB) GO TO 4332 RETURN 4331 KFI = 2 GO TO 4330 4332 KFI = 0 RETURN END C*********************************************************************** C***** C***** LFI - (443) C***** C*********************************************************************** C*****INTEGER FUNCTION OF EXTERNAL PROCEDURE(TEST 4) FUNCTION LFI(BWVD,IWFI) DOUBLE PRECISION BWVD LFI=IWFI(BWVD) RETURN END C*********************************************************************** C***** C***** MFI - (453) C***** C*********************************************************************** C*****INTEGER FUNCTION OF DIFFERENT TYPES OF ARGUMENTS.USE IS MADE OF C***** ADJUSTABLE DIMENSION(TEST 5,6,7) FUNCTION MFI(AWVS,IWVI,AWVB,AWVC,AWVD,AW1S,AW2S,AW3S,IW1I,IW2I, 1IW3I,AW1B,AW2B,AW3B,AW1C,AW2C,AW3C,AW1D,AW2D,AW3D,IWFI) DOUBLE PRECISION AWVD,AW1D,AW2D,AW3D LOGICAL AWVB,AW1B,AW2B,AW3B COMPLEX AWVC,AW1C,AW2C,AW3C DIMENSION AW1S(IWVI),AW2S(IWVI,IWVI),AW3S(IWVI,IWVI,IWVI) , 1 IW1I(IWVI),IW2I(IWVI,IWVI),IW3I(IWVI,IWVI,IWVI) , 2 AW1B(IWVI),AW2B(IWVI,IWVI),AW3B(IWVI,IWVI,IWVI), 3 AW1C(IWVI),AW2C(IWVI,IWVI),AW3C(IWVI,IWVI,IWVI) , 4 AW1D(IWVI),AW2D(IWVI,IWVI),AW3D(IWVI,IWVI,IWVI) COMMON BXVS MFI =AWVS**IWVI+AW1S(IWVI)**IW1I(IWVI)-AW2S(IWVI,IWVI)**IW2I 1 (IWVI,IWVI)+AW3S(IWVI,IWVI,IWVI)**IW3I(IWVI,IWVI,IWVI)-AWVD+ 2 AW1D(IWVI)-AW2D(IWVI,IWVI)-AW3D(IWVI,IWVI,IWVI)+BXVS**IWFI(AWVD) 3 -1.0 AWVB=IWVI.EQ.1 AW1B(IWVI) = IWVI .EQ. 1 AW2B(IWVI,IWVI) = IWVI.EQ.1 AW3B(IWVI,IWVI,IWVI) = IWVI.EQ.1 AWVC = AW1C(IWVI) +AW2C(IWVI,IWVI)+AW3C(IWVI,IWVI,IWVI) RETURN END C*********************************************************************** C***** C***** AFC - (404) C***** C*********************************************************************** C*****COMPLEX FUNCTION OF REAL ARGUMENT (TEST 1) COMPLEX FUNCTION AFC(AWVS) AFC = (-1.0,0.0)+AWVS RETURN END C*********************************************************************** C***** C***** BFC - (414) C***** C*********************************************************************** C*****COMPLEX FUNCTION OF INTEGER ARGUMENT (TEST 2) COMPLEX FUNCTION BFC(IWVI) BFC=(1.0,1.0)**IWVI RETURN END C*********************************************************************** C***** C***** CFC - (424) C***** C*********************************************************************** C*****COMPLEX FUNCTION OF ARRAY NAME (TEST 3) COMPLEX FUNCTION CFC(AW1S) DIMENSION AW1S(2) CFC = (2.0,0.0)-AW1S(1)-AW1S(2) RETURN END C*********************************************************************** C***** C***** DFC - (434) C***** C*********************************************************************** C*****COMPLEX FUNCTION OF DOUBLE PRECISION ARGUMENT (TEST 4) COMPLEX FUNCTION DFC(AWVD) DOUBLE PRECISION AWVD AVS = AWVD DFC = (1.0,1.0) * AVS - (1.0,1.0) RETURN END C*********************************************************************** C***** C***** EFC - (444) C***** C*********************************************************************** C*****COMPLEX FUNCTION OF COMPLEX ARGUMENT (TEST 5) COMPLEX FUNCTION EFC(AWVC) COMPLEX AWVC EFC=AWVC- (1.0,1.0) RETURN END C*********************************************************************** C***** C***** FFC - (454) C***** C*****COMPLEX FUNCTION OF LOGICAL ARGUMENT(TESTS 6,7) COMPLEX FUNCTION FFC(AWVB) LOGICAL AWVB IF (AWVB) GO TO 4541 4540 IF (.NOT.AWVB) GO TO 4542 RETURN 4541 FFC = (1.0,1.0) GO TO 4540 4542 FFC = (0.0,0.0) RETURN END C*********************************************************************** C***** C***** HFC - (464) C***** C*********************************************************************** C*****COMPLEX FUNCTION OF DIFFERENT TYPES OF ARGUMENTS (TESTS 8,9,10 COMPLEX FUNCTION HFC(AWVS,IWVI,AWVB,AWVC,AWVD,AW1S,AW2S,AW3S, 1 IW1I,IW2I,IW3I,AW1B,AW2B,AW3B,AW1C,AW2C,AW3C,AW1D,AW2D,AW3D,AWFC) DIMENSION AW1S(IWVI),AW2S(IWVI,IWVI),AW3S(IWVI,IWVI,IWVI), 1 IW1I(IWVI),IW2I(IWVI,IWVI),IW3I(IWVI,IWVI,IWVI), 2 AW1B(IWVI),AW2B(IWVI,IWVI),AW3B(IWVI,IWVI,IWVI), 3 AW1C(IWVI),AW2C(IWVI,IWVI),AW3C(IWVI,IWVI,IWVI), 4 AW1D(IWVI),AW2D(IWVI,IWVI),AW3D(IWVI,IWVI,IWVI) COMMON BXVS LOGICAL AWVB,AW1B,AW2B,AW3B COMPLEX AWVC,AW1C,AW2C,AW3C, AWFC DOUBLE PRECISION AWVD,AW1D,AW2D,AW3D HFC = AWVC BXVS=AWVS**IWVI+AW1S(IWVI)**IW1I(IWVI)-AW2S(IWVI,IWVI)**IW2I 1 (IWVI,IWVI)+AW3S(IWVI,IWVI,IWVI)**IW3I(IWVI,IWVI,IWVI)-AWVD+ 2 AW1D(IWVI)-AW2D(IWVI,IWVI)-AW3D(IWVI,IWVI,IWVI) AWVB = IWVI.EQ.1 AW1B(IWVI) = IWVI.EQ.1 AW2B(IWVI,IWVI) = IWVI .EQ. 1 AW3B(IWVI,IWVI,IWVI) = IWVI.EQ.1 RETURN C***** END OF TEST SEGMENT 464 END nbs11.d 480890343 170 2 100666 299 ` SAMPLE COMPUTER, FORTRAN COMPILER LEVEL DO NOT READ OR WRITE RECORD 2 . DOUBLE SPACE ON OUTPUT. ID 2 OPERATING SYSTEM VERSION DO NOT READ OR WRITE RECORD 4 . DOUBLE SPACE ON OUTPUT ID 4 DATE, INSTALLATION NAME DO NOT READ OR WRITE RECORD 6 DOUBLE SPACE ON OUTPUT ID 6 nbs11.f 480890360 170 2 100666 38476 ` C***** PART11 **************************************************** C***** C***** ANSI FORTRAN (X3.9-1966) TEST PROGRAMS C***** C***** PREPARED BY THE NATIONAL BUREAU OF STANDARDS VERSION 3 C***** C***** JUNE 1973 C***** C***** PART 11 OF 14 PARTS C***** C***** SEGMENTS INCLUDED C***** C***** DPFCP - 165 DOUBLE PRECISION FUNCTIONS C***** C***** AFD - 405 REAL ARGUMENT C***** C***** BFD - 415 INTEGER ARGUMENT C***** C***** CFD - 425 D.P. ARGUMENT C***** C***** DFD - 435 COMPLEX ARGUMENTS C***** C***** EFD - 445 LOGICAL ARGUMENT C***** C***** FFD - 455 EXTERNAL PROCEDURE C***** C***** GFD - 465 ARRAY NAME C***** C***** HFD - 475 DIFFERENT TYPES OF ARGUMENTS C***** C***** BFCCP - 166 LOGICAL FUNCTIONS C***** C***** AFB - 406 REAL ARGUMENT C***** C***** BFB - 416 INTEGER ARGUMENT C***** C***** CFB - 426 D.P. ARGUMENT C***** C***** DFB - 436 LOGICAL ARGUMENT C***** C***** EFB - 446 COMPLEX ARGUMENT C***** C***** FFB - 456 ARRAY NAME C***** C***** GFB - 466 EXTERNAL PROCEDURE C***** C***** HFB - 476 DIFFERENT TYPES OF ARGUMENTS C***** C***** SBRTN - 167 SUBROUTINE SUBPROGRAM C***** C***** AAQ - 407 INTEGER AND REAL VARIABLES AND ARRAY ELEMENTS C***** C***** ABQ - 417 ARRAY ELEMENTS C***** C***** ACQ - 427 NO ARGUMENT LIST C***** C***** FSBRT - 168 SUBROUTINE SUBPROGRAM C***** C***** ADQ - 408 DIFFERENT TYPES OF ARGUMENTS C***** C***** AEQ - 418 ARRAY NAMES AND INTEGER ARGUMENTS C***** C***** AFQ - 428 NO ARGUMENT LIST C***** C***** BLKDT - 169 BLOCK DATA C***** C***** BLOKD - 409 BLOCK DATA SUBPROGRAM C***** C***** THE FOLLOWING SPECIFICATIONS ARE TO BE USED ONLY WHEN C***** SEGMENTS 165, 166, 167, 168, 169 ARE RUN AS ONE MAIN PROGRAM. C***** DIMENSION A1S(5), A2S(2,2), A3S(3,3,3) DIMENSION IAB1I(4), IAB2I(3,3), IAB3I(2,2,2), AB1S(4) 1 ,AB2S(3,3), AB3S(2,2,2) INTEGER I1I(5), I2I(2,2), I3I(2,2,2) DOUBLE PRECISION AVD, A1D(4),A2D(2,2),A3D(2,2,2) DOUBLE PRECISION AFD,BFD,CFD,DFD,EFD,FFD,GFD,HFD DOUBLE PRECISION AXVD, AX1D, AX2D,AX3D 1 ,DXVD,DX1D,DX2D,DX3D LOGICAL A1B(2), A2B(2,2), A3B(2,2,2),AXVB, AX1B, AX2B, AX3B,AVB 1 ,BVB,AFB,BFB,CFB,DFB,EFB,FFB,GFB,HFB , DXVB,DX1B,DX2B,DX3B COMPLEX AVC,A1C(12),A2C(2,2), A3C(2,2,1) COMPLEX AXVC, AX1C, AX2C, AX3C,DXVC, DX1C, DX2C, DZ3C COMMON AXVS,CXVS COMMON IXVI,IAX1I(4),IAX2I(3,3),IAX3I(2,2,2),BXVS, - AX1S(4),AX2S(3,3),AX3S(2,2,2),AXVD,AX1D(2),AX2D(2,2), B AX3D(2,2,2), AXVC, AX1C(2), AX2C(2,2), AX3C(2,2,2), AXVB, C AX1B(2), AX2B(2,2), AX3B(2,2,2) COMMON /BLK1/JXVI, JAX1I(2), JAX2I(3,3) A /BLK2/DXVS, DX1S(2), DX2S(2,2) B /BLK3/DXVD, DX1D(2), DX2D(2,2) C /BLK4/DXVC, DX1C(2), DX2C(2,2) D /BLK5/DXVB, DX1B(2), DX2B(2,2) E /BLK6/JAX3I(2,2,2), DX3S(2,2,2), DX3D(2,2,2), F DZ3C(2,2,2), DX3B(2,2,2) EXTERNAL AFB,CFD,AFD INTRINSIC SQRT C***** END OF SPECIFICATIONS FOR SEGMENTS C***** 165, 166, 167, 168, 169 C***** C*********************************************************************** C***** C***** DPFCP-(165) C***** C*********************************************************************** C***** GENERAL PURPOSE C***** 1.TO TEST DOUBLE PRECISION FUNCTIONS IN FULL FORTRAN 8.3.1 C***** 2.DUMMY ARGUMENTS ARE REAL,INTEGER,COMPLEX,LOGICAL, C***** DOUBLE PRECISION,EXTERNAL PROCEDURE,ARRAY NAME C***** 3.FUNCTIONS CONTAIN UP TO 20 ARGUMENTS C***** 4.IN REFERENCE,ACTUAL ARGUMENTS ARE VARIABLE1NAME, C***** ARRAY NAME,ARRAY ELEMENT NAME,OR ARITHMETIC EXPRESSION. 8.3.2 C*****RESTRICTIONS OBSERVED C***** 1.ITEMS(2),(3),(4),(5),(6) OF PARAGRAPH 8.3.1 C***** 2 LAST SENTENCE OF PARAGRAPH 3.2 C***** THIS SEGMENT IS TO BE RUN WITH SEGMENTS C***** 405, 415, 425, 435, 445, 455, 465, 475 WHICH C***** WHICH CONTAINS ALL FUNCTIONS BEING TESTED HERE C***** C***** S P E C I F I C A T I O N S SEGMENT 165 C***** C***** WHEN EXECUTING ONLY SEGMENT 165, REMOVE THE PRECEDING C***** SPECIFICATIONS. THE FOLLOWING SPECIFICATIONS WHICH C***** APPEAR AS COMMENTS MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION A1S(5),A2S(2,2),A3S(3,3,3) C= INTEGER I1I(5),I2I(2,2),I3I(2,2,2) C= LOGICAL A1B(2),A2B(2,2),A3B(2,2,2),AVB,BVB C= DOUBLE PRECISION AFD, BFD, CFD, DFD, EFD, FFD, GFD, HFD,AVD C= 1, A1D(4),A2D(2,2),A3D(2,2,2) C= COMPLEX AVC,A1C(12),A2C(2,2),A3C(2,2,1) C= COMMON AXVS,CXVS C= EXTERNAL CFD,AFD C***** C***** I N P U T O U T P U T T A P E ASSIGNMENT STATEMENTS IRVI = 5 NUVI = 6 C***** IDENTIFY THE SOURCE OF THE TEST PROGRAMS WRITE(NUVI,0071) 0071 FORMAT (41H1 F O R T R A N T E S T P R O G R A M S// 1 42H PREPARED BY NATIONAL BUREAU OF STANDARDS// 3 37H FOR USE ON LARGE FORTRAN PROCESSORS // 4 42H IN ACCORDANCE WITH ASA FORTRAN X3.9-1966// 5 23H VERSION 3 PART 11///) C***** 3 OF 6 INPUT CARDS IDENTIFY THE USERS SYSTEM AND COMPILER C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST READ(IRVI,0070) READ(IRVI,0072) READ(IRVI,0073) 0070 FORMAT(40H BASED ON ASA FORTRAN X3.9-1966 /) 0072 FORMAT(40H TEST PROGRAMS /) 0073 FORMAT(40H FORTRAN COMPILER /) WRITE(NUVI,0070) WRITE(NUVI,0072) WRITE(NUVI,0073) C***** WRITE (NUVI,1650) 1650 FORMAT(1H1,1X,30HDPFCP - (165) DOUBLE PRECISION/ 16X, 9HFUNCTIONS 1 //2X,21HASA REFS. 8.3.1,8.3.2//2X, 7HRESULTS) C***** TEST 1 MAVI = 1 IVI = AFD(1.0) - 1.0D0 IF (IVI) 1652,1653,1652 C***** TEST 2 1657 MAVI =2 IVI=BFD(1)-1.0D0 IF(IVI)1652,1653,1652 C***** TEST 3 1658 MAVI =3 AVD=1.0D0 print *, 'TEST 3 ivi=',CFD(AVD)-1.0D0 IF(IVI) 1652,1653,1652 C***** TEST 4 .ONE ARGUMENT IS ARRAY ELEMENT NAME 1659 MAVI =4 AVC = (1.0,1.0) A1C(1)=(1.0,-1.0) IVI=DFD(AVC,A1C(1)) IF (IVI) 1652,1653,1652 C***** TEST 5,6 7014 MAVI =5 AVB=.TRUE. IVI=EFD(AVB)-1.0D0 IF(IVI)1652,1653,1652 7015 MAVI = 6 AVB=.FALSE. IVI=EFD(AVB) IF(IVI)1652,1653,1652 C***** TEST 7 7016 MAVI = 7 IVI = FFD (1.E0,AFD) - 1.0D0 IF (IVI) 1652,1653,1652 C***** TEST 8 7017 MAVI = 8 A1D(1)=1.0D0 A1D(2)=-1.0D0 IVI=GFD(A1D) IF (IVI) 1652,1653,1652 C***** TESTS 9,10,11,12 7018 IAVI = 1 AVD=1.0D0 A1D(1)=1.0D0 A2D(1,1)=1.0D0 A3D(1,1,1)= 1.0D0 AVS=1.0 A1S(1)=1.0 A2S(1,1)=1.0 A3S(1,1,1)=1.0 A1C(1)=(1.0,1.0) A2C(1,1)=(1.0,1.0) A3C(1,1,1)=(1.0,1.0) I1I(1)=1 I2I(1,1)=1 I3I(1,1,1)=1 MAVI = 9 IVI=HFD(AVS,IAVI,AVB,AVC,AVD,A1S,A2S,A3S,I1I,I2I,I3I ,A1B,A2B,A3B, 1A1C,A2C,A3C,A1D,A2D,A3D,CFD) IF (IVI) 1652,1653,1652 7019 MAVI = 10 IVI=AXVS IF (IVI) 1652,1653,1652 7020 MAVI = 11 WRITE (NUVI,1656) AVC,MAVI 1656 FORMAT(//2F5.1//2X,5HTEST ,I2,31H IS POSITIVE IF NUMBERS PRINTED/ 1 2X,17HABOVE ARE 0.0,0.0) 7021 MAVI = 12 BVB = AVB.AND.A1B(1).AND.A2B(1,1).AND.A3B(1,1,1) IF(BVB) GO TO 1653 1652 WRITE(NUVI,1654)MAVI GO TO 1651 1653 WRITE(NUVI,1655)MAVI 1654 FORMAT(/2X,5HTEST ,I2,12H IS NEGATIVE) 1655 FORMAT(/2X,5HTEST ,I2,12H IS POSITIVE) 1651 GO TO (1657,1658,1659,7014,7015,7016,7017,7018,7019,7020,7021, 1 7022) ,MAVI 7022 CONTINUE C***** END OF TEST SEGMENT 165 C***** WHEN EXECUTING ONLY SEGMENT 165, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** BFCCP-(166) C***** C*********************************************************************** C***** GENERAL PURPOSE C***** 1.TO TEST LOGICAL FUNCTIONS IN FULL FORTRAN C***** 2.DUMMY ARGUMENTS ARE REAL,INTEGER,COMPLEX,LOGICAL, C***** DOUBLE PRECISION,EXTERNAL PROCEDURE,ARRAY NAME. C***** 3.FUNCTIONS CONTAIN UP TO 20 ARGUMENTS C***** 4.IN REFERENCE ACTUAL ARGUMENTS ARE VARIABLE NAME C***** ARRAY NAME,ARRAY ELEMENT NAME,ARITHMETIC EXPRESSION C***** EXTERNAL PROCEDURE C***** 6.USE CAN BE MADE OF ADJUSTABLE DIMENTION C***** 7.ARGUMENTS CAN BE PASSED THROUGH COMMON C*****RESTRICTIONS OBSERVED C***** 1.ITEMS(2),(3),(4),(5),(6) OF PARAGRAPH C***** 2.LAST SENTENCE OF PARAGRAPH 3.2 C***** THIS SEGMENT IS TO BE RUN WITH SEGMENTS C***** 406, 416, 426, 436, 446, 456, 466, 476 WHICH C***** CONTAINS ALL FUNCTIONS BEING TESTED HERE. C*****LOGICAL FUNCTION OF REAL ARGUMENT(TEST 1) C***** C***** S P E C I F I C A T I O N S SEGMENT 166 C***** C***** WHEN EXECUTING ONLY SEGMENT 166, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION A1S(5),A2S(2,2),A3S(3,3,3) C= INTEGER I1I(5),I2I(2,2),I3I(2,2,2) C= LOGICAL AVB,AFB,BFB,CFB,DFB,EFB,FFB,GFB,HFB C= 1, A1B(2),A2B(2,2),A3B(2,2,2) C= DOUBLE PRECISION AVD,A1D(4),A2D(2,2),A3D(2,2,2) C= COMPLEX AVC,A1C(12),A2C(2,2),A3C(2,2,1) C= COMMON AXVS,CXVS C= EXTERNAL AFB C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 166, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 MAVI=1 WRITE(NUVI,1662) 1662 FORMAT(1H1,1X,31HBFCCP - (166) LOGICAL FUNCTIONS//2X, 1 13HASA REF 8.3.1//2X,7HRESULTS) AVB=AFB(1.0) IF (AVB) GO TO 1664 WRITE(NUVI,1661) MAVI GO TO 1665 1660 FORMAT (/7H TEST ,I2,12H IS POSITIVE) 1661 FORMAT (/7H TEST ,I2,12H IS NEGATIVE) 1664 WRITE(NUVI,1660) MAVI GO TO (1665,1666,1667,1668,1669,7030,7031,7032,7033,7034), MAVI C***** LOGICAL FUNCTION OF INTEGER ARGUMENT (TEST 2) 1665 MAVI=2 AVB=BFB(1) IF (AVB) GO TO 1664 WRITE(NUVI,1661) MAVI C*****LOGICAL FUNCTION OF DOUBLE PRECISION ARGUMENT(TEST 3) 1666 MAVI=3 AVD=1.0D0 AVB=CFB(AVD) IF (AVB) GO TO 1664 WRITE(NUVI,1661) MAVI C***** LOGICAL FUNCTION OF LOGICAL ARGUMENT(TEST 4) 1667 MAVI=4 AVB=DFB(.TRUE.) IF (AVB) GO TO 1664 WRITE(NUVI,1661) MAVI C*****LOGICAL FUNCTION OF COMPLEX ARGUMENT(TEST 5) 1668 MAVI=5 AVB=EFB((1.0,1.0)) IF (AVB) GO TO 1664 WRITE(NUVI,1661) MAVI C***** LOGICAL FUNCTION OF ARRAY NAME (TEST 6) 1669 MAVI=6 A1S(1)=1.0 A1S(2)=0.0 AVB=FFB(A1S) IF (AVB) GO TO 1664 WRITE(NUVI,1661) MAVI C***** LOGICAL FUNCTION OF EXTERNAL PROCEDURE(TEST 7) 7030 MAVI=7 AVB= GFB(AFB,1.0) IF (AVB) GO TO 1664 WRITE(NUVI,1661) MAVI C*****LOGICAL FUNCTION OF DIFFERENT TYPES OF ARGUMENTS 7031 MAVI=8 AVD = 1.0D0 AVC = (1.0,1.0) IAVI = 1 AVB=.TRUE. A1B(1)=.TRUE. A2B(1,1)=.TRUE. A3B(1,1,1)=.TRUE. A1C(1)=(1.0,1.0) A2C(1,1)=(1.0,1.0) A3C(1,1,1)=(-2.0,-2.0) A1D(1)=1.0D0 A2D(1,1)=1.0D0 A3D(1,1,1)=-2.0D0 I1I(1)=1 I2I(1,1)=1 I3I(1,1,1)=1 A1S(1)=1.0 A2S(1,1)=1.0 A3S(1,1,1)=1.0 AXVS=1.0 AVB= HFB(AVS,IAVI,AVB,AVD,AVC,A1S,A2S,A3S,I1I,I2I,I3I,A1B,A2B, 1A3B,A1C,A2C,A3C,A1D,A2D,A3D,AFB) IF (AVB) GO TO 1664 WRITE(NUVI,1661) MAVI 7032 MAVI = 9 IAVI=AVD IF(IAVI.EQ.0) GO TO 1664 WRITE(NUVI,1661) MAVI 7033 IAVI=1 MAVI=10 IAVI=AVS IF(IAVI.EQ.0) GO TO 1664 WRITE(NUVI,1661) MAVI 7034 MAVI=11 WRITE(NUVI,1663) AVC,MAVI 1663 FORMAT (//2F8.4//7H TEST ,I2,31H IS POSITIVE IF NUMBERS PRINTED/ 119H ABOVE ARE 0.0,0.0//2X,12HEND OF (166)) C***** END OF TEST SEGMENT 166 C***** WHEN EXECUTING ONLY SEGMENT 166, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= IN C***** COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** SBRTN - (167) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REFS C***** TO TEST SUBROUTINE SUBPROGRAMS 8.4.1 C***** RESTRICTIONS OBSERVED C***** SYMBOLIC NAME OF A SUBROUTINE MAY NOT APPEAR IN ANY 8.4.1.//19 C***** STATEMENT IN THIS SUBROUTINE EXCEPT IN THE C***** SUBROUTINE STATEMENT ITSELF C***** * SYMBOLIC NAMES OF DUMMY ARGUMENTS MAY NOT APPEAR 8.4.1.1/23 C***** IN EQUIVALENCE OR COMMON STATEMENTS IN THE SUBPROGRAM C***** * SUBROUTINES MAY NOT CONTAIN A FUNCTION STATEMENT, 8.4.1.//29 C***** ANOTHER SUBROUTINE STATEMENT, OR ANY STATEMENT THAT C***** DIRECTLY OR INDIRECTLY REFERENCES THE SUBROUTINE C***** BEING DEFINED. C***** * AT LEAST ONE RETURN STATEMENT MUST BE IN A SUBROUTINE C***** 8.4.1.1/33 C***** GENERAL COMMENTS C***** THIS SEGMENT IS TO BE RUN WITH SEGMENT 407, 417, 427 C***** C***** S P E C I F I C A T I O N S SEGMENT 167 C***** C***** WHEN EXECUTING ONLY SEGMENT 167, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION IAB1I(4), IAB2I(3,3), AB1S(4), AB2S(3,3) C= COMMON AXVS, CXVS, IXVI, IAX1I(4), IAX2I(3,3), IAX3I(2,2,2), C= 1 BXVS, AX1S(4), AX2S(3,3) C= EXTERNAL SQRT C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 167, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** C***** WRITE HEADING WRITE (NUVI,1670) 1670 FORMAT(1H1,1X,35HSBRTN - (167) SUBROUTINE SUBPROGRAM/ 1 /2X,16HASA REF. - 8.4.1//2X,7HRESULTS) C***** SET ALL VARIABLES AND SOME ELEMENTS IN ARRAYS TO ZERO IAVI = 4 AVS = 0.0 IAB1I(1) = 0 IAB1I(3) = 0 IAB2I(1,2) = 0 IAB2I(3,3) = 0 C***** AB1S(1) = 0.0 AB1S(4) = 0.0 AB2S(1,3) = 0.0 AB2S(2,3) = 0.0 C***** IXVI = 0 BXVS = 0.0 IAX1I(2) = 0 IAX2I(1,2) = 0 C***** AX1S(2) = 0.0 AX2S(1,2) = 0.0 C***** C***** SET ELEMENTS IN INTEGER AND REAL ARRAY TO 1 TO TEST C***** EXPRESSIONS IN SUBROUTINE ARGUMENT IAB1I(2) = 1 IAB1I(4) = 1 IAB2I(2,1) = 1 IAB2I(2,2) = 1 C***** AB1S(2) = 1.0 AB1S(3) = 1.0 AB2S(1,2) = 1.0 AB2S(2,2) = 1.0 C***** CALL AAQ(IAVI, AVS, IAB1I, IAB2I, AB1S, AB2S, SQRT, 1IAB1I(2)+IAB1I(4)*IAB2I(2,1)-IAB2I(2,2), 2AB1S(2)+AB1S(3)*AB2S(1,2)-AB2S(2,2),1.0) CALL ACQ C***** WRITE RESULTS WRITE (NUVI,1671) IAVI, AVS, IAB1I(1), IAB1I(3), IAB2I(1,2), A IAB2I(3,3), AB1S(1), AB1S(4), B AB2S(1,3), AB2S(2,3), IXVI, BXVS, C IAX1I(2), IAX2I(1,2), AX1S(2), D AX2S(1,2) 1671 FORMAT (//I10/F11.1/4(I10/),4(F11.1/),I10/F11.1/2(I10/),2(F11.1/ A)) WRITE (NUVI,1672) 1672 FORMAT (//2X,38HTEST SUCCESSFUL IF ALL RESULTS EQUAL 1//) C***** END OF TEST SEGMENT 167 C***** WHEN EXECUTING ONLY SEGMENT 167, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** FSBRT - (168) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REFS C***** TO TEST SUBROUTINE SUBPROGRAM IN FORTRAN 8.4.1 C***** RESTRICTIONS OBSERVED C***** SYMBOLIC NAME OF A SUBROUTINE MAY NOT APPEAR IN ANY 8.4.1.1/56 C***** STATEMENT IN THIS SUBROUTINE EXCEPT IN THE C***** SUBROUTINE STATEMENT ITSELF. C***** * SYMBOLIC NAME OF DUMMY ARGUMENTS MAY NOT APPEAR 8.4.1.1/39 C***** IN EQUIVALENCE OR COMMON STATEMENTS IN THE SUBPROGRAM C***** * SUBROUTINES MAY NOT CONTAIN A FUNCTION STATEMENT, 8.4.1.1/45 C***** ANOTHER SUBROUTINE STATEMENT, OR ANY STATEMENT THAT C***** DIRECTLY OR INDIRECTLY REFERENCES THE SUBROUTINE C***** BEING DEFINED. C***** * AT LEAST ONE RETURN STATEMENT MUST BE IN A SUBROUTINE C***** 8.4.1.1/49 C***** GENERAL COMMENTS C***** THIS SEGMENT IS TO BE RUN WITH SEGMENT 408 , 418, 428 C***** C***** S P E C I F I C A T I O N S SEGMENT 168 C***** C***** WHEN EXECUTING ONLY SEGMENT 168, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION IAB1I(4), IAB2I(3,3), IAB3I(2,2,2), AB1S(4), AB2S(3,3), C= A AB3S(2,2,2) C= COMMON AXVS, CXVS, IXVI, IAX1I(4), IAX2I(3,3), IAX3I(2,2,2), C= A BXVS, AX1S(4), AX2S(3,3), AX3S(2,2,2), AXVD, AX1D(2), C= B AX2D(2,2), AX3D(2,2,2), AXVC, AX1C(2), AX2C(2,2), C= C AX3C(2,2,2), AXVB, AX1B(2), AX2B(2,2), AX3B(2,2,2) C= DOUBLE PRECISION AXVD, AX1D, AX2D, AX3D C= DOUBLE PRECISION AVD,A1D(4),A2D(2,2),A3D(2,2,2) C= COMPLEX AXVC, AX1C, AX2C, AX3C C= COMPLEX AVC,A1C(12),A2C(2,2),A3C(2,2,1) C= LOGICAL AXVB, AX1B, AX2B, AX3B C= LOGICAL A1B(2),A2B(2,2),A3B(2,2,2),AVB C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 168, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** SET INTEGER VARIABLES AND SOME ELEMENTS IN ARRAYS TO ZERO C***** WRITE HEADING WRITE (NUVI,1680) 1680 FORMAT (1H1,1X,36HFSBRT - (168) SUBROUTINE SUBPROGRAMS/ A/18H ASA REF. - 8.4.1//2X,7HRESULTS) IAVI = 0 IAB1I(1) = 0 IAB2I(1,2) = 0 IAB3I(1,1,2) = 0 IXVI = 0 IAX1I(1) = 0 IAX2I(1,2) = 0 IAX3I(1,1,2) = 0 C***** SET REAL VARIABLES AND SOME ELEMENTS IN ARRAYS TO ONE AVS = 1. AB1S(1) = 1. AB2S(1,2) = 1. AB3S(1,1,2) = 1. BXVS = 1. AX1S(2) = 1. AX2S(1,2) = 1. AX3S(1,1,2) = 1. C***** SET DP VARIABLES AND SOME ELEMENTS IN ARRAY TO TWO AVD = 2.0D0 A1D(1) = 2.0D0 A2D(1,2) = 2.0D0 A3D(1,1,2) = 2.0D0 AXVD = 2.0D0 AX1D(1) = 2.0D0 AX2D(1,2) = 2.D0 AX3D(1,1,2) = 2.0D0 C***** SET COMPLEX VARIABLES AND SOME ELEMENTS IN ARRAYS TO (3.0,3.0) AVC = (3.0,3.0) A1C(1) = (3.0,3.0) A2C(1,2) = (3.0,3.0) A3C(1,2,1) = (3.0,3.0) AXVC = (3.0,3.0) AX1C(1) = (3.0,3.0) AX2C(1,2) = (3.0,3.0) AX3C(1,1,2) = (3.0,3.0) C***** SET LOGICAL VARIABLES AND SOME ELEMENTS IN ARRAYS TO .FALSE. AVB = .FALSE. A1B(1) = .FALSE. A2B(1,2) = .FALSE. A3B(1,1,2) = .FALSE. AXVB = .FALSE. AX1B(1) = .FALSE. AX2B(1,2) = .FALSE. AX3B(1,1,2) = .FALSE. C***** SET INTEGER AND REAL VARIABLES FOR EXPRESSION USAGE IN C***** DUMMY ARGUMENT IAB1I(4) = 0 IAB1I(2) = 0 AB1S(4) = 0.0 AB1S(2) = 0.0 JAVI = 1 KAVI = 1 LAVI = 1 MAVI = 1 NAVI = 1 ABVS = 1. ACVS = 1. ADVS = 2. AEVS = 2. AFVS = 2. CALL ADQ(IAVI,IAB1I, IAB2I, IAB3I, AVS, AB1S, AB2S, AB3S, AVD, A A1D, A2D, A3D, AVC, A1C, A2C, A3C, AVB, A1B, A2B, A3B, B JAVI+KAVI*LAVI-MAVI/NAVI,1,ABVS+ACVS*ADVS-AEVS/AFVS,2.) WRITE (NUVI,1681) CALL AFQ 1681 FORMAT ( /28H TEST IS SUCCESSFUL IF EACH/ A28H GROUP CONTAINS SAME VALUES) WRITE (NUVI,1682) IAVI, IAB1I(1), IAB1I(2), IAB1I(4), IAB2I(1,2), A IAB3I(1,1,2), IXVI, IAX1I(1), IAX2I(1,2), B IAX3I(1,1,2), AVS, AB1S(1), AB2S(1,2), AB3S(1,1, C2),AB1S(2),AB1S(4), BXVS, AX1S(2), AX2S(1,2), AX3S(1,1,2), AVD, D A1D(1), A2D(1,2), A3D(1,1,2), AXVD, AX1D(1), E AX2D(1,2), AX3D(1,1,2), AVC, A1C(1), A2C(1,2), F A3C(1,2,1), AXVC, AX1C(1), AX2C(1,2), G AX3C(1,1,2), AVB, A1B(1), A2B(1,2), A3B(1,1,2), H AXVB, AX1B(1), AX2B(1,2), AX3B(1,1,2) 1682 FORMAT ( 10(I10/)/ 1 10(F11.1/)/ 2 8(1PD15.1/)/ 3 8(0PF5.1,F5.1/)/ 4 8(L10/) ) C***** END OF TEST SEGMENT 168 C***** WHEN EXECUTING ONLY SEGMENT 168, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= IN C***** COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** BLKDT - (169) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REFS C***** TO TEST BLOCK DATA SUBPROGRAM 8.5 C***** GENERAL COMMENTS C***** THIS SEGMENT IS TO BE RUN WITH SEGMENT 409. THIS C***** SEGMENT WRITES OUT THE DATA FORMED IN SEGMENT 409. C***** C***** S P E C I F I C A T I O N S SEGMENT 169 C***** C***** WHEN EXECUTING ONLY SEGMENT 169, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENTS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= COMMON /BLK1/JXVI, JAX1I(2), JAX2I(3,3) C= A /BLK2/DXVS, DX1S(2), DX2S(2,2) C= B /BLK3/DXVD, DX1D(2), DX2D(2,2) C= C /BLK4/DXVC, DX1C(2), DX2C(2,2) C= D /BLK5/DXVB, DX1B(2), DX2B(2,2) C= E /BLK6/JAX3I(2,2,2), DX3S(2,2,2), DX3D(2,2,2), C= F DZ3C(2,2,2), DX3B(2,2,2) C= DOUBLE PRECISION DXVD, DX1D, DX2D, DX3D C= COMPLEX DXVC, DX1C, DX2C, DZ3C C= LOGICAL DXVB, DX1B, DX2B, DX3B C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 169, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C***** WRITE HEADING FOR SEGMENT 169 WRITE (NUVI,1690) 1690 FORMAT (1H1,1X,35HBLKDT - (169) BLOCK DATA SUBPROGRAM// A16H ASA REF. - 8.5//2X,7HRESULTS) WRITE (NUVI,1691) 1691 FORMAT ( /28H TEST IS SUCCESSFUL IF EACH/ A28H GROUP CONTAINS SAME VALUES) WRITE (NUVI,1692) JAX2I(1,1), JAX1I(2), JAX2I(2,1), JAX3I(2,2,1) A ,DX3S(1,2,1), DX1S(1), DX2S(1,1), DX3S(2,2,1), DX2D(2,2) B ,DX1D(2), DX2D(2,1), DX3D(2,2,1), DX2C(2,2), DX1C(2) C ,DX2C(2,1), DZ3C(2,1,1), DX2B(2,2), DX1B(2), DX2B(2,1) D ,DX3B(2,2,1), JAX2I(3,1), E DX3B(2,1,2), DX2S(2,2) 1692 FORMAT (// 4(I10/)// A 4(F12.1/)// B 4(1PD16.1/)// C 4(0PF6.1,F6.1/)// D 4(L10/)// F 3(2H ,A2/)) C***** END OF TEST SEGMENT 169 C***** WHEN EXECUTING ONLY SEGMENT 169, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= IN C***** COLUMNS 1 AND 2 REMOVED. C= STOP C= END STOP END C*********************************************************************** C***** C***** AFD - (405) C***** C*********************************************************************** C*****DOUBLE PRECISION FUNCTION OF REAL ARGUMENT (TEST 1) DOUBLE PRECISION FUNCTION AFD(AWVS) AFD=AWVS RETURN END C*********************************************************************** C***** C***** BFD -(415) C***** C*********************************************************************** C*****DOUBLE PRECISION FUNCTION OF INTEGER ARGUMENT(TEST2) DOUBLE PRECISION FUNCTION BFD(IWVI) BFD=1.0D0**IWVI RETURN END C*********************************************************************** C***** C***** CFD - (425) C***** C*********************************************************************** C*****DOUBLE PRECISION FUNCTION OF DOUBLE PRECISION ARGUMENT(TEST 3) DOUBLE PRECISION FUNCTION CFD(AWVD) DOUBLE PRECISION AWVD CFD=AWVD RETURN END C*********************************************************************** C***** C***** DFD -(435) C***** C*********************************************************************** C*****DOUBLE PRECISION FUNCTION OF COMPLEX ARGUMENT(TEST 4) DOUBLE PRECISION FUNCTION DFD(AWVC,BWVC) COMPLEX AWVC,BWVC,CVC CVC =BWVC*AWVC DFD=AIMAG(CVC) RETURN END C*********************************************************************** C***** C***** EFD - (445) C***** C*********************************************************************** C*****DOUBLE PRECISION FUNCTION OF LOGICAL ARGUMENT(TEST 5,6) DOUBLE PRECISION FUNCTION EFD(AWVB) LOGICAL AWVB IF(AWVB) GO TO 4451 4450 IF(.NOT.AWVB) GO TO 4452 RETURN 4451 EFD = 1.0D0 GO TO 4450 4452 EFD = 0.0D0 RETURN END C*********************************************************************** C***** C***** FFD - (455) C***** C*********************************************************************** C*****DOUBLE PRECISION FUNCTION OF EXTERNAL PROCEDURE (TEST 7) DOUBLE PRECISION FUNCTION FFD(BWVS,BWFD) DOUBLE PRECISION BWFD FFD = BWFD (BWVS) RETURN END C*********************************************************************** C***** C***** GFD - (465) C***** C*********************************************************************** C*****DOUBLE PRECISION FUNCTION OF ARRAY NAME (TEST 8) DOUBLE PRECISION FUNCTION GFD(AW1D) DIMENSION AW1D(2) DOUBLE PRECISION AW1D GFD= AW1D(1)+AW1D(2) RETURN END C***** C***** C***** HFD - (475) C***** C*********************************************************************** C*****DOUBLE PRECISION FUNCTION OF DIFFERENT TYPES OF ARGUMENTS.USE CAN C*****BE MADE OF ADJUSTABLE DIMENSION.SOME ARGUMENTS CAN BE PASSED C*****THROUGH A COMMON STATEMENT. DOUBLE PRECISION FUNCTION HFD(AWVS,IWVI,AWVB,AWVC,AWVD,AW1S,AW2S, 1 AW3S,IW1I,IW2I,IW3I,AW1B,AW2B,AW3B,AW1C,AW2C,AW3C,AW1D,AW2D, 2 AW3D,CWFD) DIMENSION AW1S(IWVI),AW2S(IWVI,IWVI),AW3S(IWVI,IWVI,IWVI), 1 IW1I(IWVI),IW2I(IWVI,IWVI),IW3I(IWVI,IWVI,IWVI), 2 AW1C(IWVI),AW2C(IWVI,IWVI),AW3C(IWVI,IWVI,IWVI), 3 AW1D(IWVI),AW2D(IWVI,IWVI),AW3D(IWVI,IWVI,IWVI), 4 AW1B(IWVI),AW2B(IWVI,IWVI),AW3B(IWVI,IWVI,IWVI) DOUBLE PRECISION AWVD,AW1D,AW2D,AW3D, CWFD, X COMPLEX AWVC,AW1C,AW2C,AW3C REAL AW1S, AW2S, AW3S LOGICAL AWVB,AW1B,AW2B,AW3B COMMON BXVS X = AWVD - AW1D(IWVI)+AW2D(IWVI,IWVI)-AW3D(IWVI,IWVI,IWVI) HFD = X print *, 'TRACER X=',X ,AWVD , AW1D(IWVI),AW2D(IWVI,IWVI) 1 ,AW3D(IWVI,IWVI,IWVI) 1 + CWFD(AWVD) - 1.0D0 AWVC=AW1C(IWVI)+AW2C(IWVI,IWVI)-AW3C(IWVI,IWVI,IWVI)-(1.0,1.0) BXVS=AWVS**IWVI-AW1S(IWVI)**IW1I(IWVI)+AW2S(IWVI,IWVI)**IW2I 1 (IWVI,IWVI)-AW3S(IWVI,IWVI,IWVI)**IW3I(IWVI,IWVI,IWVI) AWVB=IWVI.EQ.1 AW1B(IWVI)=IWVI.EQ.1 AW2B(IWVI,IWVI)=IWVI.EQ.1 AW3B(IWVI,IWVI,IWVI)=IWVI.EQ.1 RETURN END C*********************************************************************** C***** C***** AFB - (406) C***** C*********************************************************************** C*****LOGICAL FUNCTION OF REAL ARGUMENT (TEST 1) LOGICAL FUNCTION AFB(AWVS) AFB= AWVS.GT.0.0 RETURN END C*********************************************************************** C***** C***** BFB - (416) C***** C*********************************************************************** C*****LOGICAL FUNCTION OF INTEGER ARGUMENT (TEST 2) LOGICAL FUNCTION BFB(IWVI) BFB= IWVI.GT.0 RETURN END C*********************************************************************** C***** C***** CFB - (426) C***** C*********************************************************************** C*****LOGICAL FUNCTION OF DOUBLE PRECISION ARGUMENT(TEST 3) LOGICAL FUNCTION CFB(AWVD) DOUBLE PRECISION AWVD CFB= AWVD.GT.0.0D0 RETURN END C*********************************************************************** C***** C***** DFB - (436) C***** C*********************************************************************** C*****LOGICAL FUNCTION OF LOGICAL ARGUMENT (TEST 4) LOGICAL FUNCTION DFB(AWVB) LOGICAL AWVB DFB=AWVB RETURN END C*********************************************************************** C***** C***** EFB - (446) C***** C*********************************************************************** C*****LOGICAL FUNCTION OF COMPLEX ARGUMENT (TEST 5) LOGICAL FUNCTION EFB(AWVC) COMPLEX AWVC AVS =AIMAG(AWVC) EFB = AVS .GT.0.0 RETURN END C*********************************************************************** C***** C***** FFB - (456) C***** C*********************************************************************** C*****LOGICAL FUNCTION OF ARRAY NAME (TEST 6) LOGICAL FUNCTION FFB(AW1S) DIMENSION AW1S(2) BVS =AW1S(1)+AW1S(2) FFB= BVS .GT.0.0 RETURN END C*********************************************************************** C***** C***** GFB - (466) C***** C*********************************************************************** C*****LOGICAL FUNCTION OF EXTERNAL PROCEDURE (TEST 7) LOGICAL FUNCTION GFB(AWFB,AWVS) LOGICAL AWFB GFB= AWFB(AWVS) RETURN END C*********************************************************************** C***** C***** HFB - (476) C***** C*********************************************************************** C*****LOGICAL FUNCTION OF DIFFERENT TYPES OF ARGUMENTS(TEST 8,9,10,11) LOGICAL FUNCTION HFB(AWVS,IWVI,AWVB,AWVD,AWVC,AW1S,AW2S,AW3S, 1IW1I,IW2I,IW3I,AW1B,AW2B,AW3B,AW1C,AW2C,AW3C,AW1D,AW2D,AW3D,AWFB) COMMON BXVS COMPLEX AWVC,AW1C,AW2C,AW3C DOUBLE PRECISION AWVD,AW1D,AW3D, AW2D LOGICAL AWVB,AW1B,AW2B,AW3B,AWFB DIMENSION AW1C(IWVI),AW2C(IWVI,2),AW3C(IWVI,2,2), 1 AW1B(IWVI),AW2B(IWVI,2),AW3B(IWVI,2,2) , 2 AW1S(IWVI),AW2S(IWVI,2),AW3S(IWVI,2,2) , 3 AW1D(IWVI),AW2D(IWVI,2),AW3D(IWVI,2,2) , 4 IW1I(IWVI),IW2I(IWVI,2),IW3I(IWVI,2,2) HFB = AWVB.AND.AW1B(IWVI).AND.AW2B(IWVI,IWVI).AND.AW3B(IWVI, 1 IWVI,IWVI).AND.AWFB(1.0) AWVC=AW1C(IWVI)+AW2C(IWVI,IWVI)+AW3C(IWVI,IWVI,IWVI) AWVD=AW1D(IWVI)+AW2D(IWVI,IWVI)+AW3D(IWVI,IWVI,IWVI) AWVS=BXVS+AW1S(IWVI)**IW1I(IWVI)-AW2S(IWVI,IWVI)**IW2I(IWVI,IWVI) 1 -AW3S(IWVI,IWVI,IWVI)**IW3I(IWVI,IWVI,IWVI) RETURN END C*********************************************************************** C***** C***** AAQ - (407) C***** C*********************************************************************** C***** THIS SUBROUTINE IS TO BE RUN WITH SEGMENT 167 SUBROUTINE AAQ (IWVI, AWVS, IAW1I, IAW2I, AW1S, AW2S, SQFI, 1MWVI, BWVS, CWVS) DIMENSION IAW1I(4), IAW2I(3,3), AW1S(4), 1 AW2S(3,3) IWVI = INT(SQFI(FLOAT(IWVI) + .5)) - 1 AWVS = AWVS + 1.0 IAVI = 5 IAW1I(1) = MWVI IAW1I(3) = IAW1I(3) + 1 IAW2I(3,3) = IAW2I(3,3) + 1 AW1S(1) = BWVS AW2S(1,3) = CWVS C***** C***** CALL A SUBROUTINE FROM ANOTHER SUBROUTINE CALL ABQ(IAW2I, AW1S, AW2S) RETURN END C*********************************************************************** C***** C***** ABQ - (417) C***** C*********************************************************************** SUBROUTINE ABQ(ICW2I, CW1S, CW2S) DIMENSION ICW2I(3,3), CW1S(4), CW2S(3,3) ICW2I(1,2) = ICW2I(1,2) + 1 C***** CW1S(4) = CW1S(4) + 1.0 CW2S(2,3) = CW2S(2,3) + 1.0 RETURN END C*********************************************************************** C***** C***** ACQ - (427) C***** C*********************************************************************** SUBROUTINE ACQ DIMENSION IDX1I(4), IDX2I(3,3), IDX3I(2,2,2) 1 ,AAX1S(4), AAX2S(3,3) COMMON ABXVS, ACXVS, IAXVI, IDX1I, IDX2I, IDX3I, 1 AAXVS, AAX1S, AAX2S IAXVI = IAXVI+1 AAXVS = AAXVS +1.0 IDX1I(2) = IDX1I(2) + 1 IDX2I(1,2) = IDX2I(1,2) + 1 C***** AAX1S(2) = AAX1S(2) * 2. + 1.0 AAX2S(1,2) = AAX2S(1,2) + 4.0 - 3.0 C***** RETURN C***** END OF TEST SEGMENT 427 END C*********************************************************************** C***** C***** ADQ - (408) C***** C*********************************************************************** C***** SUBROUTINE ADQ CALLED BY SEG. FSBRT(168) SUBROUTINE ADQ(IWVI,IAW1I,IAW2I,IAW3I,AWVS,AW1S,AW2S,AW3S, A AWVD,AW1D,AW2D,AW3D,AWVC,AW1C,AW2C,AW3C, B AWVB,AW1B,AW2B,AW3B,KWVI,MWVI,BWVS,CWVS) DIMENSION IAW1I(4), IAW2I(3,3), IAW3I(2,2,2), AW1S(4), AW2S(3,3), A AW3S(2,2,2), AW1D(2), AW2D(2,2), AW3D(2,2,2), AW1C(2), B AW2C(2,2), AW3C(2,2,1), AW1B(2), AW2B(2,2), C AW3B(2,2,2) DOUBLE PRECISION AWVD, AW1D, AW2D, AW3D COMPLEX AWVC, AW1C, AW2C, AW3C LOGICAL AWVB, AW1B, AW2B, AW3B C***** STORE INTEGER AND REAL EXPRESSIONS IAW1I(4) = KWVI IAW1I(2) = MWVI AW1S(4) = BWVS AW1S(2) = CWVS CALL AEQ (IWVI,IAW1I,IAW2I,IAW3I,AWVS,AW1S,AW2S,AW3S) C***** INCREMENT DOUBLE PRECISION AWVD = AWVD + AWVD AW1D(1) = AW1D(1) + AW1D(1) AW2D(1,2) = AW2D(1,2) + AW2D(1,2) AW3D(1,1,2) = AW3D(1,1,2) + AW3D(1,1,2) C***** INCREMENT COMPLEX AWVC = AWVC + AWVC AW1C(1) = AW1C(1) + AW1C(1) AW2C(1,2) = AW2C(1,2) + AW2C(1,2) AW3C(1,2,1) = AW3C(1,2,1) + AW3C(1,2,1) C***** CHANGE LOGICAL AWVB = .NOT. AWVB AW1B(1) = .NOT. AW1B(1) AW2B(1,2) = .NOT. AW2B(1,2) AW3B(1,1,2) = .NOT. AW3B(1,1,2) RETURN END C*********************************************************************** C***** C***** AEQ - (418) C***** C*********************************************************************** C***** SUBROUTINE AEQ CALLED BY SEG ADQ(408) WHICH IS C***** CALLED BY SEG. FSBRT(168) SUBROUTINE AEQ(KWVI, KAW1I, KAW2I, KAW3I, AAWVS, AAW1S, AAW2S, A AAW3S) DIMENSION KAW1I(4),KAW2I(3,3),KAW3I(2,2,2),AAW1S(4),AAW2S(3,3), A AAW3S(2,2,2) C***** INCREMENT INTEGERS KWVI = KWVI + 1 KAW1I(1) = KAW1I(1) + 1 KAW2I(1,2) = KAW2I(1,2) + 1 KAW3I(1,1,2) = KAW3I(1,1,2)+1 C***** INCREMENT REAL AAWVS = AAWVS + 1. AAW1S(1) = AAW1S(1) + 1. AAW2S(1,2) = AAW2S(1,2) + 1. AAW3S(1,1,2) = AAW3S(1,1,2) + 1. RETURN END C*********************************************************************** C***** C***** AFQ - (428) C***** C*********************************************************************** C***** SUBROUTINE AFQ CALLED BY SEG. FSBRT(168) SUBROUTINE AFQ COMMON ABXVS, ACXVS, IAXVI, IAX1I(4), IAX2I(3,3), IAX3I(2,2,2), A AXVS, AX1S(4), AX2S(3,3), AX3S(2,2,2), AXVD, AX1D(2), 2 AX2D(2,2), AX3D(2,2,2),AXVC, AX1C(2), AX2C(2,2), AX3C(2,2,2) 3 ,AXVB, AX1B(2), AX2B(2,2), AX3B(2,2,2) DOUBLE PRECISION AXVD, AX1D, AX2D, AX3D COMPLEX AXVC, AX1C, AX2C, AX3C LOGICAL AXVB, AX1B, AX2B, AX3B C***** SET INTEGERS TO 1 IAXVI = 1 IAX1I(1) = 1 IAX2I(1,2) = 1 IAX3I(1,1,2) = 1 C***** SET REAL TO 2 AXVS = 2. AX1S(2) = 2. AX2S(1,2) = 2. AX3S(1,1,2) = 2. C***** SET DP TO 4 AXVD = 4.0D0 AX1D(1) = 4.0D0 AX2D(1,2) = 4.0D0 AX3D(1,1,2) = 4.0D0 C***** SET COMPLEX TO 6 AXVC = (6.0,6.0) AX1C(1) = (6.0,6.0) AX2C(1,2) = (6.0,6.0) AX3C(1,1,2) = (6.0,6.0) C***** CHANGE LOGICAL AXVB = .TRUE. AX1B(1) = .TRUE. AX2B(1,2) = .TRUE. AX3B(1,1,2) = .TRUE. RETURN END C*********************************************************************** C***** C***** BLOKD - (409) C***** C*********************************************************************** C***** GENERAL PURPOSE C***** THIS SEGMENT CONTAINS ONE BLOCK DATA SUBPROGRAM. C***** IT IS TO BE RUN WITH SEGMENT 169 C***** GENERAL COMMENTS C***** THIS SEGMENT USES ALL THE PERMISSIBLE STATEMENTS IN A C***** BLOCK DATA SUBPROGRAM. THE DATA STATEMENT CONSISTS OF ALL C***** TYPES OF VARIABLES AND ARRAYS. A HOLLERITH CONSTANT C***** IS ASSIGNED TO INTEGER, REAL AND LOGICAL BLOCK DATA COMMON /BLK1/JXVI, JAX1I(2), JAX2I(3,3) A /BLK2/DXVS, DX1S(2), DX2S(2,2) B /BLK3/DXVD, DX1D(2), DX2D(2,2) C /BLK4/DXVC, DX1C(2), DX2C(2,2) D /BLK5/DXVB, DX1B(2), DX2B(2,2) E /BLK6/JAX3I(2,2,2), DX3S(2,2,2), DX3D(2,2,2), F DZ3C(2,2,2), DX3B(2,2,2) DIMENSION CY3C(2,2,2) DOUBLE PRECISION DXVD, DX1D, DX2D, DX3D COMPLEX DXVC, DX1C, DX2C, DZ3C, CY3C LOGICAL DXVB, DX1B, DX2B, DX3B INTEGER JXVI REAL DXVS EQUIVALENCE (DZ3C(1,1,1), CY3C(1,1,1)) DATA JAX2I(1,1), JAX1I(2), JAX2I(2,1), JAX3I(2,2,1),DX3S(1,2,1), A DX1S(1), DX2S(1,1), DX3S(2,2,1), DX2D(2,2), DX1D(2), B DX2D(2,1), DX3D(2,2,1), DX2C(2,2), DX1C(2), DX2C(2,1), C DZ3C(2,1,1), DX2B(2,2), DX1B(2), DX2B(2,1), DX3B(2,2,1), D JAX2I(3,1),DX3B(2,1,2),DX2S(2,2)/4*2,4*3.0,4*4.0D0,4*(4.,5.), E 4*.TRUE., 2HAB, 2HAB, 2HAB/ C***** END OF TEST SEGMENT 409 END nbs12.d 480890343 170 2 100666 299 ` SAMPLE COMPUTER, FORTRAN COMPILER LEVEL DO NOT READ OR WRITE RECORD 2 . DOUBLE SPACE ON OUTPUT. ID 2 OPERATING SYSTEM VERSION DO NOT READ OR WRITE RECORD 4 . DOUBLE SPACE ON OUTPUT ID 4 DATE, INSTALLATION NAME DO NOT READ OR WRITE RECORD 6 DOUBLE SPACE ON OUTPUT ID 6 nbs12.f 480890371 170 2 100666 53613 ` C***** PART12 **************************************************** C***** C***** ANSI FORTRAN (X3.9-1966) TEST PROGRAMS C***** C***** PREPARED BY THE NATIONAL BUREAU OF STANDARDS VERSION 3 C***** C***** JUNE 1973 C***** C***** PART 12 OF 14 PARTS C***** C***** SEGMENTS INCLUDED C***** C***** BLKDA - 179 BLOCK DATA TEST C***** C***** BLAKD - 419 BLOCK DATA SUBPROGRAM C***** C***** BLBKD - 429 BLOCK DATA SUBPROGRAM C***** C***** BLCKD - 439 BLOCK DATA SUBPROGRAM C***** C***** UNFRW - 180 UNFORMATTED READ AND WRITE C***** C***** BACUP - 182 BACKSPACE TAPE C***** C***** DOTRM - 190 DO LOOPS (TERMINAL STATEMENTS) C***** C***** DOLMT - 191 DO LOOPS (INTEGER VARIABLES - PARAMETERS) C***** C***** DONSC - 192 DO LOOPS (COMPLETELY NESTED NEST) C***** C***** DONSI - 193 DO LOOPS (INCOMPLETE) C***** C***** DONSX - 194 DO LOOPS (EXTENDED RANGE) C***** C***** DONML - 195 DO LOOPS (NESTED NEST) C***** C***** DONIO - 196 DO LOOPS (I/O TERMINAL STATEMENTS) C***** C***** MORDO - 197 DO LOOPS (I/O, INTRINSIC FUNCTION, CALL) C***** C***** BSFDF - 005 STATEMENT FUNCTIONS C***** C***** MDQ - 412 SUBROUTINE SUBPROGRAM C***** C***** SUBR1 - 200 SUBROUTINE CALLED C***** C***** SUBRQ - 410 SUBROUTINE SUBPROGRAM C***** C***** THE FOLLOWING SPECIFICATIONS ARE TO BE USED ONLY WHEN SEGMENTS C***** 179, 180, 182, 190, 191, 192, 193, 194, 195, 196, 197, 200 C***** ARE RUN AS ONE MAIN PROGRAM. C***** DIMENSION MCA1I(5) DIMENSION IV1I(1024), IAC1I(5), AC2S(5,6) DIMENSION CMA1S(5), CMB1S(5), AC1S(25) INTEGER MCA3I(2,3,3) , I3I(2,2,2) LOGICAL MCAVB, MCBVB, GH2B(1,2) DOUBLE PRECISION CC3D(7,2,2), DPAVD, DPBVD COMPLEX NUMVC, DENVC, LL1C(32) COMMON AXVS, CXVS DOUBLE PRECISION DXVD, DX1D, DX2D, DX3D COMPLEX DXVC, DX1C, DX2C, DZ3C COMMON /BLK1/JXVI, JAX1I(2), JAX2I(3,3) A /BLK2/DXVS, DX1S(2), DX2S(2,2) B /BLK3/DXVD, DX1D(2), DX2D(2,2) C /BLK4/DXVC, DX1C(2), DX2C(2,2) D /BLK5/DXVB, DX1B(2), DX2B(2,2) E /BLK6/JAX3I(2,2,2), DX3S(2,2,2), DX3D(2,2,2), F DZ3C(2,2,2), DX3B(2,2,2)// IXVI, IAX1I(4) LOGICAL DXVB, DX1B, DX2B, DX3B C***** C***** END OF SPECIFICATIONS FOR SEGMENTS C***** 179, 180, 182, 190, 191, 192, 193, 194, 195, 196, 197, 200 C*********************************************************************** C***** C***** BSFDF - (005) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** DEFINING STATEMENT FUNCTIONS THAT ARE TO BE TESTED C***** IN SEGMENT 197 8.1.1 C***** HEADER FOR SEGMENT 005 C***** DEFINING EXPRESSION CONTAINS CONSTANTS AND VARIABLES CMAFS(CAWVS,CBWVS) = CAWVS * 2. + CBWVS CMBFS(MAWVI,MBWVI,MCWVI) =(MAWVI + MBWVI + MCWVI)/3 MCAFI(MAWVI,MBWVI) = MAWVI ** MBWVI MCBFI(CAWVS,CBWVS,CCWVS) = (CAWVS + CBWVS + CCWVS) * 2.0 C***** DEFINING EXPRESSION CONTAINS CONSTANTS, VARIABLES AND C***** INTRINSIC FUNCTIONS CMCFS(CAWVS,CBWVS,CCWVS) = ABS(CAWVS**2 - (CBWVS+CCWVS)**2) CMDFS(MAWVI,MBWVI) = ISIGN((MAWVI+MBWVI),(MAWVI-MBWVI)) MCCFI(MAWVI,MBWVI,CAWVS) = MAWVI**2 + MBWVI**2 + IFIX(CAWVS)**2 MCDFI(CAWVS,CBWVS,CCWVS,CDWVS,CEWVS) = (CAWVS + CBWVS + CCWVS + 1CDWVS +CEWVS) ** (ABS(CAWVS)) C***** DEFINING EXPRESSION CONTAINS PREVIOUSLY DEFINED STATEMENT C***** FUNCTIONS AND/OR EXTERNAL FUNCTION REFERENCES CMEFS(CAWVS,CBWVS) = CMBFS(1,2,3) + SQRT((CAWVS + CBWVS)) CMFFS(MAWVI,MBWVI,MCWVI) = MCCFI(MAWVI,MBWVI,3.0) + MCWVI **2 MCEFI(MAWVI,MBWVI) = MCAFI(MAWVI,MBWVI) ** MCAFI(MAWVI,MBWVI) MCFFI(CAWVS,CBWVS,CCWVS) = SQRT(CAWVS) + SQRT(CBWVS) + EXP(CCWVS) C***** DEFINING EXPRESSION CONTAINS CONSTANTS, VARIABLES, INTRINSIC C***** OR EXTERNAL FUNCTION REFERENCES AND PREVIOUSLY DEFINED C***** STATEMENT FUNCTIONS. CMGFS(MAWVI,MBWVI,CAWVS,CBWVS) = FLOAT(MAWVI ** 2) - CMAFS(CAWVS, 1CBWVS) + SQRT((FLOAT(MAWVI + MBWVI))) MCGFI(MAWVI,MBWVI,MCWVI,CAWVS) = MCEFI(MAWVI,MBWVI) - MCEFI(MAWVI, 1MCWVI) + IFIX(EXP(CAWVS)) C***** END OF TEST SEGMENT 005 C*********************************************************************** C***** C***** BLKDA - (179) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST BLOCK DATA SUBPROGRAMS 8.5 C***** THIS SEGMENT IS TO BE RUN WITH SEGMENTS 419, 429, 439. THIS C***** SEGMENT WRITES OUT THE DATA FORMED IN SEGMENT 419, 429, 439 C***** C***** S P E C I F I C A T I O N S SEGMENT 179 C***** C***** WHEN EXECUTING ONLY SEGMENT 179, REMOVE THE PRECEDING C***** SPECIFICATIONS. THE FOLLOWING SPECIFICATIONS WHICH APPEAR C***** AS COMMENTS MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= DOUBLE PRECISION DXVD, DX1D, DX2D, DX3D C= COMPLEX DXVC, DX1C, DX2C, DZ3C C= COMMON /BLK1/JXVI, JAX1I(2), JAX2I(3,3) C= A /BLK2/DXVS, DX1S(2), DX2S(2,2) C= B /BLK3/DXVD, DX1D(2), DX2D(2,2) C= C /BLK4/DXVC, DX1C(2), DX2C(2,2) C= D /BLK5/DXVB, DX1B(2), DX2B(2,2) C= E /BLK6/JAX3I(2,2,2), DX3S(2,2,2), DX3D(2,2,2), C= F DZ3C(2,2,2), DX3B(2,2,2) C= LOGICAL DXVB, DX1B, DX2B, DX3B C***** C***** I N P U T - O U T P U T T A P E ASSIGNMENT STATEMENTS IRVI = 5 NUVI = 6 INVI = 9 C***** IDENTIFY THE SOURCE OF THE TEST PROGRAMS WRITE(NUVI,0071) 0071 FORMAT (41H1 F O R T R A N T E S T P R O G R A M S// 1 42H PREPARED BY NATIONAL BUREAU OF STANDARDS// 3 37H FOR USE ON LARGE FORTRAN PROCESSORS // 4 42H IN ACCORDANCE WITH ASA FORTRAN X3.9-1966// 5 23H VERSION 3 PART 12///) C***** 3 OF 6 INPUT CARDS IDENTIFY THE USERS SYSTEM AND COMPILER C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST READ(IRVI,0070) READ(IRVI,0072) READ(IRVI,0073) 0070 FORMAT(40H BASED ON ASA FORTRAN X3.9-1966 /) 0072 FORMAT(40H TEST PROGRAMS /) 0073 FORMAT(40H FORTRAN COMPILER /) WRITE(NUVI,0070) WRITE(NUVI,0072) WRITE(NUVI,0073) OPEN(UNIT=INVI,IOSTAT=IOS,ERR=4001,FILE="JUNK1",FORM="UN") WRITE(NUVI,"('OPEN RETURNS ',I4)" ) IOS GOTO 4002 4001 WRITE(NUVI,"('OPEN ERROR, ',I4)" ) IOS 4002 CONTINUE C***** C***** C***** WRITE HEADING FOR SEGMENT 179 WRITE (NUVI,1790) 1790 FORMAT (1H1,1X,32HBLKDA - (179) SEVERAL BLOCK DATA/ 16X, 1 11HSUBPROGRAMS/ 2X, 14HASA REF. - 8.5// 9H RESULTS) WRITE (NUVI,1791) 1791 FORMAT (//28H TEST IS SUCCESSFUL IF EACH/ A28H GROUP CONTAINS SAME VALUES) WRITE (NUVI,1792) JXVI, JAX1I(1), JAX2I(1,2), JAX3I(1,1,2), DXVS, A DX1S(2), DX2S(1,2), DX3S(1,1,2), DXVD, DX1D(1), B DX2D(1,2), DX3D(1,1,2), DXVC, DX1C(1),DX2C(1,2), C DZ3C(1,1,2), DXVB, DX1B(1), DX2B(1,2), D DX3B(1,1,2), JAX2I(1,3), E DX3B(2,2,2), DX2S(2,1) 1792 FORMAT (// 4(I10/)// A 4(F12.1/)// B 4(1PD16.1/)// C 4(0PF6.1,F6.1/)// D 4(L10/)// E 3(2H ,A2/)) C***** END OF TEST SEGMENT 179 C***** WHEN EXECUTING ONLY SEGMENT 179, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** UNFRW - (180) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST OF UNFORMATTED READ AND WRITE STATEMENTS 7.1.3.2.4 C***** 7.1.3.2.5 C***** S P E C I F I C A T I O N S SEGMENT 180 C***** C***** WHEN EXECUTING ONLY SEGMENT 180, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION CMA1S(5), CMB1S(5), AC1S(25) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENTS. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 180, THE FOLLOWING STATEMENTS C***** NUVI=6 AND INVI=9 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C= INVI = 9 C***** WRITE (NUVI,0180) 180 FORMAT(1H1,1X,30HUNFRW - (180) UNFORMATTED READ/ 14X, 122H AND WRITE STATEMENTS//36H ASA REFS - 7.1.3.2.4 AND 7.1.3.2.5 2//10H RESULTS ) C***** HEADER FOR SEGMENT 180 WRITTEN CMAVS = 1.5E01 CMBVS = -2.75E-0 MCAVI = 5 MCBVI = -10 DPAVS = 1.02E0 DPBVS = 9876.0E-2 CMA1S(1) = 1.0E0 CMA1S(2) = 2.0E0 CMA1S(3) = 3.0E0 CMA1S(4) = 4.0E0 CMA1S(5) = 5.0E0 C***** WRITE AND READ VARIABLES OF THE SAME TYPE REWIND INVI WRITE (INVI) CMAVS, CMBVS WRITE (INVI) MCAVI, MCBVI WRITE (INVI) DPAVS, DPBVS WRITE (INVI) CMA1S WRITE (INVI) (CMA1S(IVI), IVI = 1,5,1 ) REWIND INVI READ (INVI) CMCVS, CMDVS READ (INVI) MCCVI, MCDVI READ (INVI) DPCVS, DPDVS READ (INVI) CMB1S READ (INVI) (AC1S(IVI), IVI = 1,5,1 ) C***** CHECK RECORDS BY SUBTRACTING CORRESPONDING VALUES. CMEVS = CMAVS - CMCVS CMFVS = CMBVS - CMDVS MCEVI = MCAVI - MCCVI MCFVI = MCBVI - MCDVI DPEVS = DPAVS - DPCVS DPFVS = DPBVS - DPDVS ACVS = CMA1S(1) - CMB1S(1) BCVS = CMA1S(2) - CMB1S(2) CCVS = CMA1S(3) - CMB1S(3) DCVS = CMA1S(4) - CMB1S(4) FFCVS = CMA1S(5)- CMB1S(5) CMGVS = CMA1S(1) - AC1S(1) CMHVS = CMA1S(2) - AC1S(2) CMIVS = CMA1S(3) - AC1S(3) CMJVS = CMA1S(4) - AC1S(4) CMKVS = CMA1S(5) - AC1S(5) WRITE (NUVI,181) CMEVS, CMFVS, MCEVI, MCFVI, DPEVS, DPFVS, 1 ACVS, BCVS, CCVS, DCVS, FFCVS, CMGVS, CMHVS, CMIVS, CMJVS, 2 CMKVS 0181 FORMAT (//2(F20.10/),2(I19/),7(F20.10/)) C***** READ AND WRITE VARIABLES OF DIFFERENT TYPES REWIND INVI WRITE (INVI) CMAVS, MCAVI WRITE (INVI) CMA1S(1), CMA1S(2), CMBVS, MCBVI WRITE (INVI) CMA1S(3), CMA1S(4), CMA1S(5), DPAVS, DPBVS REWIND INVI READ (INVI) CMCVS, MCCVI READ (INVI) CMB1S(1), CMB1S(2), CMDVS, MCDVI READ (INVI) CMB1S(3), CMB1S(4), CMB1S(5), DPCVS, DPDVS CMEVS = CMAVS - CMCVS CMFVS = CMBVS - CMDVS MCEVI = MCAVI - MCCVI MCFVI = MCBVI - MCDVI DPEVS = DPAVS - DPCVS DPFVS = DPBVS - DPDVS CMGVS = CMA1S(1) - CMB1S(1) CMHVS = CMA1S(2) - CMB1S(2) CMIVS = CMA1S(3) - CMB1S(3) CMJVS = CMA1S(4) -CMB1S(4) CMKVS = CMA1S(5) - CMB1S(5) WRITE (NUVI,0182) CMEVS, CMFVS, MCEVI, MCFVI, DPEVS, DPFVS, CMGVS, 1 CMHVS, CMIVS, CMJVS, CMKVS 0182 FORMAT (//2(F20.10/),2(I19/),7(F20.10/)) C***** TEST UNFORMATTED READ WITH NO LIST REWIND INVI WRITE (INVI) CMAVS, MCAVI WRITE (INVI) CMA1S WRITE (INVI) CMBVS, MCBVI WRITE (INVI) CMA1S(5),CMA1S(4),CMA1S(3),CMA1S(2),CMA1S(1) C***** ENDFILE CAN NOT BE TESTED, BUT INCLUDED FOR ACCEPTANCE AS C***** A STATEMENT. ENDFILE INVI REWIND INVI C*****CHECK THAT A RECORD IS READ WHEN NO LIST IS SUPPLIED BY COMPARING C***** VALUES OF THE THIRD RECORD READ (INVI) CMCVS, MCCVI READ (INVI) READ (INVI) CMDVS, MCDVI CMEVS = CMAVS - CMCVS CMFVS = CMBVS - CMDVS MCEVI = MCAVI - MCCVI MCFVI = MCBVI - MCDVI WRITE (NUVI, 0183) CMEVS, CMFVS, MCEVI, MCFVI 183 FORMAT(//2(F20.10/),2(I19/)) WRITE (NUVI,0184) 184 FORMAT(37H0 ALL ABOVE ANSWERS SHOULD BE ZERO IF / 1 37H THE READ AND WRITE RECORDS COMPARE. ) REWIND INVI C***** END OF TEST SEGMENT 180 C***** WHEN EXECUTING ONLY SEGMENT 180, THE STOP AND END C***** CARDS WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** BACUP (182) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** WRITE A BLOCK, 1024 WORDS IN LENGTH, UNFORMATTED, 7.1.3.2.5 C***** TO TAPE,BACKSPACE, READ TO MEMORY 7.1.3.3.2 C***** 7.1.3.2.4 C***** S P E C I F I C A T I O N S SEGMENT 182 C***** C***** WHEN EXECUTING ONLY SEGMENT 182, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION IV1I(1024) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENTS. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 182, THE FOLLOWING STATEMENTS C***** NUVI=6 AND IRVI=9 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C= INVI = 9 C***** 1820 FORMAT(1H1,1X,28HBACUP - (182) BACKSPACE TAPE//2X,18HASA REF. 7.1. 33.3.2//9H RESULTS) WRITE(NUVI,1820) C***** HEADER FOR SEGMENT 182 WRITTEN C***** REWIND INVI C***** CREATE A LIST, 1024 WORDS IN LENGTH, CONTAINING C***** THE INTEGERS 1 TO 1024, ONE INTEGER PER WORD. ISVI = 0 MRRVI = 1 1821 ISVI = ISVI + 1 IV1I(ISVI) = ISVI IF (ISVI - 1024) 1821, 1822, 1823 C***** WRITE THE LIST TO AN INTERMEDIATE TAPE 1822 WRITE (INVI) IV1I WRITE(NUVI,1828) MRRVI, (IV1I(JCVI), JCVI=1,9), 1 (IV1I(KCVI),KCVI=1016,1024) C***** CHANGE MEMORY VALUES TO 5 TIMES THE ORIGINAL VALUES MRRVI = 2 ISVI = 0 1825 ISVI = ISVI + 1 IV1I(ISVI) = 5 * ISVI IF (ISVI - 1024) 1825,1826,1823 1826 BACKSPACE INVI C***** WRITE THE CHANGED VALUES WRITE(NUVI,1828) MRRVI, (IV1I(JCVI), JCVI=1,9), 1 (IV1I(KCVI),KCVI=1016,1024) MRRVI = 3 C***** READ INTERMEDIATE TAPE WHICH HAS BEEN BACKSPACED READ(INVI) IV1I REWIND INVI C***** WRITE INITIAL VALUES FROM BACKSPACED TAPE. WRITE(NUVI,1828) MRRVI,(IV1I(LVI), LVI=1,9),(IV1I(KVI),KVI= 1 1016, 1024) 1823 WRITE (NUVI,1829) 1828 FORMAT(//7H GROUP,I3,3(/2X,3(I6)), 3(/2X,3(I6))) 1829 FORMAT(//2X,33HGROUPS 1 AND 3 SHOULD BE THE SAME/ I 30H AND GROUP 2, 5 TIMES GROUP 1) C***** END OF TEST SEGMENT 182 C***** WHEN EXECUTING ONLY SEGMENT 182, THE STOP AND END C***** CARDS WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** DOTRM - (190) C***** C*********************************************************************** C***** C***** GENERAL PURPOSE ASA REF C***** DO LOOPS TESTED WITH ALL ALLOWABLE 7.1.2.8 C***** TERMINAL STATEMENTS (I/O TESTED SEPARATELY) C***** CONTINUE, ASSIGN, LOGICAL IF C***** RESTRICTIONS OBSERVED C***** * M1, M2 AND M3 ARE GREATER THAN ZERO 7.1.2.8/23 C***** * TERMINAL STATEMENT OF EACH DO PHYSICALLY FOLLOWS 7.1.2.8/08 C***** THE DO AND IS IN THE SAME PROGRAM UNIT C***** * TERMINAL STATEMENT IS EXECUTABLE BUT NOT A 7.1.2.8/07 C***** GO TO, ARITHMETIC IF, RETURN, STOP, PAUSE OR 7.1.2.8/10 C***** DO STATEMENT C***** * M1, M2 AND M3 ARE NOT REDEFINED WITHIN DO 7.1.2.8.2/54 C***** * BRANCHES TO TERMINAL STATEMENT FOR MORE THAN 7.1.2.8.2/01 C***** ONE DO ARE CONTAINED IN INNERMOST DO OF A NEST C***** * CONTROL IS NEVER PASSED INTO RANGE OF DO FROM 7.1.2.8.2/44 C***** OUTSIDE ITS RANGE C***** C***** S P E C I F I C A T I O N S SEGMENT 190 C***** C***** WHEN EXECUTING ONLY SEGMENT 190, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION IAC1I(5) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 190, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,8906) 8906 FORMAT (1H1,1X,25HDOTRM - (190) DO TERMINAL//2X, -17HASA REF - 7.1.2.8//2X,7HRESULTS) C***** HEADER FOR SEGMENT 190 C***** CONTINUE WITH EXPLICIT INCREMENT**********************7.1.2.8 WRITE (NUVI,8905) 8905 FORMAT (//2X,23HTEST1 CONTINUE EXPLICIT) C***** HEADER FOR CONTINUE EXPLICIT TEST DO 1901 JACVI = 1,4,1 IAC1I(JACVI) = JACVI 1901 CONTINUE IF (IAC1I(1)-1) 1909,1902,1909 1902 IF (IAC1I(2)-2) 1909,1903,1909 1903 IF (IAC1I(3)-3) 1909,1904,1909 1904 IF (IAC1I(4)-4) 1909,1905,1909 C***** WRITE OUT ERROR MESSAGE 1909 MRRVI=1 WRITE (NUVI,8904)MRRVI 8904 FORMAT (/2X,6H**TEST,I1,1X,17HINDICATES ERROR**) C***** ERROR FOR CONTINUE EXPLICIT TEST GO TO 8909 C***** NO ERROR C***** WRITE OUT CONTINUE EXPLICIT TEST IS SUCCESS 1905 MRRVI=1 WRITE (NUVI,8903)MRRVI 8903 FORMAT (/2X,6H**TEST,I1,1X,12HSUCCESSFUL**) C***** SUCCESS FOR CONTINUE EXPLICIT TEST C***** CONTINUE TERMINAL IMPLIED TEST************************7.1.2.8 WRITE (NUVI,8902) 8902 FORMAT (//2X,22HTEST2 CONTINUE IMPLIED) C***** HEADER FOR CONTINUE IMPLIED TEST 8909 LCCVI=2 DO 7900 KBCVI = LCCVI,4 7900 IAC1I(KBCVI) = KBCVI + 1 C***** CHECK VALUES IN IAC1I ARRAY IF (IAC1I(2)-3) 7909,8900,7909 8900 IF (IAC1I(3)-4) 7909,8901,7909 8901 IF (IAC1I(4)-5) 7909,7901,7909 7909 MRRVI=2 WRITE (NUVI,8904)MRRVI C***** ERROR IN CONTINUE IMPLIED TEST GO TO 8908 C***** WRITE OUT CONTINUE IMPLIED IS SUCCESS 7901 MRRVI=2 WRITE (NUVI,8903)MRRVI C***** SUCCESS IN CONTINUE IMPLIED TEST C***** ASSIGN TERMINAL TEST *********************************7.1.2.8 WRITE (NUVI,9908) 9908 FORMAT (//2X,12HTEST3 ASSIGN) C***** HEADER FOR ASSIGN TEST 8908 MDCVI = 0 ASSIGN 7904 TO JFCVI DO 7902 NECVI = 2,5,2 MDCVI = MDCVI +1 7902 ASSIGN 7903 TO JFCVI GO TO JFCVI, (7903,7904,7904) C***** AN ERROR IN ASSIGN TEST 7904 MRRVI=3 WRITE (NUVI,8904)MRRVI C***** ERROR FOR ASSIGN TEST GO TO 8907 7903 IF (MDCVI-2) 7904,7905,7904 C***** ASSIGN TEST IS SUCCESS 7905 MRRVI=3 WRITE (NUVI,8903)MRRVI C***** SUCCESS FOR ASSIGN TEST C***** LOGICAL IF TERMINAL TEST******************************7.1.2.8 WRITE (NUVI,9905) 9905 FORMAT (//2X,16HTEST4 LOGICAL IF) C***** HEADER FOR LOGICAL IF TEST 8907 KGCVI = 1 LHCVI = 3 ASSIGN 7908 TO KCVI DO 7906 JCVI = 1,3 KGCVI = KGCVI +1 7906 IF (KGCVI .EQ. LHCVI) ASSIGN 7907 TO KCVI GO TO KCVI, (7908,7907,7908) C***** TEST IS SUCCESS 7907 MRRVI=4 WRITE (NUVI,8903)MRRVI C***** SUCCESS FOR LOGICAL IF TEST GO TO 9902 C***** LOGICAL IF IS NOT SUCCESS 7908 MRRVI=4 WRITE (NUVI,8904)MRRVI C***** ERROR FOR LOGICAL IF TEST 9902 CONTINUE C***** END OF TEST SEGMENT 190 C***** WHEN EXECUTING ONLY SEGMENT 190, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** DOLMT - (191) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST DO LOOPS WHERE 7.1.2.8/18 C***** INITIAL C***** TERMINAL C***** INCREMENT VALUES C***** ARE COMPUTED AND SET AT OBJECT TIME C***** RESTRICTIONS OBSERVED C***** * M1, M2 AND M3 ARE GREATER THAN ZERO 7.1.2.8/21 C***** * TERMINAL STATEMENT OF EACH DO PHYSICALLY FOLLOWS 7.1.2.8/08 C***** THE DO AND IS IN THE SAME PROGRAM UNIT C***** * TERMINAL STATEMENT IS EXECUTABLE BUT NOT A 7.1.2.8/07 C***** GO TO, ARITHMETIC IF, RETURN, STOP, PAUSE OR 7.1.2.8/10 C***** DO STATEMENT C***** * M1, M2 AND M3 ARE NOT REDEFINED WITHIN DO 7.1.2.8.2/54 C***** * BRANCHES TO TERMINAL STATEMENT FOR MORE THAN 7.1.2.8.2/01 C***** ONE DO ARE CONTAINED IN INNERMOST DO OF A NEST C***** * CONTROL IS NEVER PASSED INTO RANGE OF DO FROM 7.1.2.8.2/44 C***** OUTSIDE ITS RANGE C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 191, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,1914) 1914 FORMAT (1H1,1X,27HDOLMT - (191) DO SET LIMITS//2X, - 18HASA REF. - 7.1.2.8//2X,7HRESULTS) C***** HEADER FOR SEGMENT 191 WRITTEN JACVI = 1 KBCVI = 3 LCCVI = 1 NECVI = 0 DO 1911 MDCVI = JACVI, KBCVI, LCCVI NECVI = NECVI + JACVI + KBCVI + MDCVI + LCCVI 1911 CONTINUE IF (NECVI-21) 1913,1912,1913 C***** ERROR 1913 WRITE (NUVI,1915) 1915 FORMAT (/2X,24H**TEST INDICATES ERROR**//2X,10H**********) C***** DOLMT TEST FAILS,LIMIT VALUE SET INCORRECTLY GO TO 1917 C***** CORRECT 1912 WRITE (NUVI,1916) 1916 FORMAT (/2X,19H**TEST SUCCESSFUL**) C***** DOLMT TEST IS SUCCESSFUL 1917 CONTINUE C***** END OF TEST SEGMENT 191 C***** WHEN EXECUTING ONLY SEGMENT 191, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** DONSC - (192) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST NESTED DO LOOPS 7.1.2.8/28 C***** WITH 2, 3, 4, 5 LEVELS C***** SPECIAL CONSIDERATION C***** 5 LEVELS ARBITRARILY ASSIGNED AS MINIMUM REQUIREMENT C***** RESTRICTIONS OBSERVED C***** * M1, M2 AND M3 ARE GREATER THAN ZERO 7.1.2.8/21 C***** * TERMINAL STATEMENT OF EACH DO PHYSICALLY FOLLOWS 7.1.2.8/08 C***** THE DO AND IS IN THE SAME PROGRAM UNIT C***** * TERMINAL STATEMENT IS EXECUTABLE BUT NOT A 7.1.2.8/07 C***** GO TO, ARITHMETIC IF, RETURN, STOP, PAUSE OR 7.1.2.8/10 C***** DO STATEMENT C***** * M1, M2 AND M3 ARE NOT REDEFINED WITHIN DO 7.1.2.8.2/54 C***** * BRANCHES TO TERMINAL STATEMENT FOR MORE THAN 7.1.2.8.2/01 C***** ONE DO ARE CONTAINED IN INNERMOST DO OF A NEST C***** C***** S P E C I F I C A T I O N S SEGMENT 192 C***** C***** WHEN EXECUTING ONLY SEGMENT 192, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= INTEGER MCA3I(2,3,3) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 192, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,8920) 8920 FORMAT (1H1,1X,26HDONSC - (192) NESTED LOOPS// 2X, -18HASA REF. - 7.1.2.8//2X,7HRESULTS) C***** HEADER FOR SEGMENT 192 WRITTEN C***** TWO LEVELS OF NESTING***************************************** MRRVI=2 WRITE (NUVI,8921)MRRVI 8921 FORMAT (//2X,I1,1X,17HLEVELS OF NESTING) C***** HEADER FOR TWO LEVELS JACVI = 0 DO 1922 KBCVI = 1, 2, 1 JACVI = KBCVI*3 + JACVI DO 1921 LCCVI = 1,5, 2 JACVI = JACVI + LCCVI 1921 CONTINUE 1922 CONTINUE C***** TEST JACVI FOR VALUE OF 27 IF (JACVI-27) 1924,1923,1924 C***** CORRECT 1923 WRITE (NUVI,8922) 8922 FORMAT (2X,19H**TEST SUCCESSFUL**) C***** TWO LEVELS OF NESTING IS CORRECT GO TO 7927 C***** ERROR 1924 WRITE (NUVI,8923) 8923 FORMAT (2X,24H**TEST INDICATES ERROR**) C***** TWO LEVELS OF NESTING IN ERROR C***** THREE LEVELS OF NESTING*************************************** 7927 MRRVI=3 WRITE (NUVI,8921)MRRVI C***** HEADER FOR THREE LEVELS MDCVI = 0 DO 1927 LCCVI = 6,7 DO 1926 KBCVI = 8,10,2 DO 1925 JACVI = 1,3,1 MDCVI = MDCVI + JACVI + KBCVI + LCCVI 1925 CONTINUE 1926 CONTINUE 1927 CONTINUE C***** TEST MDCVI FOR VALUE OF 210 IF (MDCVI - 210) 1928,1929,1928 C***** ERROR 1928 WRITE (NUVI,8923) C***** THREE LEVELS OF NESTING IN ERROR GO TO 7928 C***** CORRECT 1929 WRITE (NUVI,8922) C***** THREE LEVELS OF NESTING IS CORRECT C***** FOUR LEVELS OF NESTING**************************************** 7928 MRRVI=4 WRITE (NUVI,8921)MRRVI C***** HEADER FOR FOUR LEVELS IHDVI = 0 IGDVI = 0 IFDVI = 0 IEDVI = 0 ICVI = 1 DO 7920 MDCVI = 2,3 IHDVI = IHDVI + MDCVI + IEDVI DO 7920 LCCVI = 3,5,3 IGDVI = IGDVI + LCCVI + IHDVI DO 7920 KBCVI = 1,2,ICVI IFDVI = IFDVI + KBCVI + IGDVI DO 7920 JACVI = 4,5,2 IEDVI = IEDVI + JACVI + IFDVI 7920 CONTINUE C***** TEST IEDVI FOR VALUE OF 185 IF (IEDVI - 185) 7921,7922,7921 C***** ERROR 7921 WRITE (NUVI,8923) C***** FOUR LEVELS OF NESTING IN ERROR GO TO 7929 C***** CORRECT 7922 WRITE (NUVI,8922) C***** FOUR LEVELS OF NESTING IS CORRECT C***** FIVE LEVELS OF NESTING**************************************** 7929 MRRVI=5 WRITE (NUVI,8921)MRRVI C***** HEADER FOR FIVE LEVELS IGDVI = 0 DO 7923 NECVI = 10,11,1 DO 7923 MDCVI = 4,5,1 DO 7924 LCCVI = 1,2,3 DO 7924 KBCVI = 6, 8, 4 DO 7924 JACVI = 1,3,2 IGDVI=IGDVI+JACVI-KBCVI+LCCVI-MDCVI+NECVI 7924 CONTINUE 7923 CONTINUE C***** TEST IGDVI FOR VALUE OF 24 IF (IGDVI - 24) 7925, 7926,7925 C***** ERROR 7925 WRITE (NUVI,8923) C***** FIVE LEVELS IN ERROR GO TO 9923 7926 WRITE (NUVI,8922) C***** FIVE LEVELS CORRECT C***** CONTROL VARIABLES FOR 3 DO LOOPS USED IN SUBSCRIPT EXPRESSIONS C***** FOR A 3 DIMENSIONAL ARRAY 9923 WRITE(NUVI, 9920) 9920 FORMAT(//2X,34HCONTROL VARIABLE USED IN SUBSCRIPT ) IVI = 1 KVI = 0 8924 KVI = KVI + 1 JVI = 0 8925 JVI = JVI + 1 MCA3I(IVI,JVI,KVI) = IVI + 2*(JVI-1)+ 6*(KVI-1) MCA3I(IVI+1,JVI,KVI) = IVI+1 +2*(JVI-1)+6*(KVI-1) IF(JVI-3) 8925,8926,8929 8926 IF(KVI-3)8924,8927,8929 8927 IIVI = 1 DO 8928 KVI =1,3 DO 8928 JVI = 1,3 DO 8928 IVI = 1,2 IAVI =MCA3I(IVI,JVI,KVI) - IIVI IF (IAVI) 8929, 8928, 8929 8929 WRITE (NUVI, 8923) GO TO 9921 8928 IIVI = IIVI + 1 WRITE (NUVI, 8922) 9921 CONTINUE C***** END OF TEST SEGMENT 192 C***** WHEN EXECUTING ONLY SEGMENT 192, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** DONSI - (193) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TESTS INCOMPLETE DO LOOP 7.1.2.8.1/19 C***** RESTRICTIONS OBSERVED C***** * M1, M2 AND M3 ARE GREATER THAN ZERO 7.1.2.8/21 C***** * TERMINAL STATEMENT OF EACH DO PHYSICALLY FOLLOWS 7.1.2.8/08 C***** THE DO AND IS IN THE SAME PROGRAM UNIT C***** * TERMINAL STATEMENT IS EXECUTABLE BUT NOT A 7.1.2.8/07 C***** GO TO, ARITHMETIC IF, RETURN, STOP, PAUSE OR 7.1.2.8/10 C***** DO STATEMENT C***** * M1, M2 AND M3 ARE NOT REDEFINED WITHIN DO 7.1.2.8.1/54 C***** * BRANCHES TO TERMINAL STATEMENT FOR MORE THAN 7.1.2.8.1/01 C***** ONE DO ARE CONTAINED IN INNERMOST DO OF A NEST C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 193, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,1935) 1935 FORMAT (1H1,1X,27HDONSI - (193) INCOMPLETE DO//2X, - 18HASA REF. - 7.1.2.8//2X,7HRESULTS) C***** HEADER FOR SEGMENT 193 WRITTEN KBCVI = 0 DO 1931 JACVI = 1,5,1 KBCVI = KBCVI + JACVI IF(KBCVI - 6) 1931, 1930, 1931 1930 GO TO 1932 1931 CONTINUE C***** ERROR EXIT WRITE (NUVI,1936) 1936 FORMAT (1H0,2X,28H**INCOMPLETE LOOP IN ERROR**) C***** INCOMPLETE LOOP TEST IN ERROR GO TO 1937 C***** TEST JACVI FOR VALUE OF 3 7.1.2.8.1/21 1932 IF (JACVI - 3) 1933,1934,1933 C***** ERROR IN INDUCTION VARIABLE 1933 WRITE (NUVI,1938) 1938 FORMAT (1H0,2X,31H**INDUCTION VARIABLE IN ERROR**) C***** INDUCTION VARIABLE SET INCORRECTLY OUTSIDE LOOP GO TO 1937 1934 WRITE (NUVI,1939) 1939 FORMAT (1H0,1X,30H**INCOMPLETE LOOP SUCCESSFUL**) C***** INCOMPLETE LOOP TEST SUCCESS 1937 CONTINUE C***** END OF TEST SEGMENT 193 C***** WHEN EXECUTING ONLY SEGMENT 193, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** DONSX - (194) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TESTS EXTENDED RANGE OF DO LOOP VARIABLE 7.1.2.8.2 C***** RESTRICTIONS OBSERVED C***** * M1, M2 AND M3 ARE GREATER THAN ZERO 7.1.2.8/21 C***** * TERMINAL STATEMENT OF EACH DO PHYSICALLY FOLLOWS 7.1.2.8/08 C***** THE DO AND IS IN THE SAME PROGRAM UNIT C***** * TERMINAL STATEMENT IS EXECUTABLE BUT NOT A 7.1.2.8/07 C***** GO TO, ARITHMETIC IF, RETURN, STOP, PAUSE OR 7.1.2.8/10 C***** DO STATEMENT C***** * M1, M2 AND M3 ARE NOT REDEFINED WITHIN DO 7.1.2.8.2/54 C***** * BRANCHES TO TERMINAL STATEMENT FOR MORE THAN 7.1.2.8.2/01 C***** ONE DO ARE CONTAINED IN INNERMOST DO OF A NEST C***** * THE EXTENDED RANGE OF A DO DOES NOT CONTAIN A 7.1.2.8.2/48 C***** DO OF THE SAME PROGRAM UNIT THAT HAS AN C***** EXTENDED RANGE. C***** C***** S P E C I F I C A T I O N S SEGMENT 194 C***** C***** WHEN EXECUTING ONLY SEGMENT 194, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION IAC1I(5) C= INTEGER I3I(2,2,2) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 194, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,8944) 8944 FORMAT (1H1,1X,31HDONSX - (194) EXTENDED DO RANGE//2X, 120HASA REF. - 7.1.2.8.2//2X,7HRESULTS) C***** HEADER FOR SEGMENT 194 WRITTEN C***** EXTENDED RANGE FROM SINGLE LEVEL****************************** MRRVI=1 WRITE (NUVI,8942)MRRVI 8942 FORMAT (//2X,26HEXTENDED RANGE FROM LEVEL ,I1) C***** HEADER FOR SINGLE LEVEL WRITTEN DO 1941 JACVI = 1,4,2 IAC1I(JACVI) = JACVI GO TO 1942 1943 IF(JACVI-1) 1945,1941,1945 1941 CONTINUE GO TO 1949 C***** TEST JACVI FOR VALUE OF 1 1942 IF (JACVI - 1) 1946,1943,1946 C***** TEST IAC1I(1) AND IAC1I(3) FOR VALUES OF 1 AND 3 1946 IF (IAC1I(1)-1) 1947,7946,1947 7946 IF (IAC1I(3)-3) 1947,1943,1947 C***** ERROR 1947 WRITE (NUVI,7947) 7947 FORMAT (/2X,24H**TEST INDICATES ERROR**) C***** ERROR IN SETTING OF IAC1I ARRAY, LOOP NOT WORKING GO TO 8940 C***** TEST JACVI FOR VALUE OF 3 1945 IF (JACVI - 3) 1948,1941,1948 C***** ERROR 1948 WRITE (NUVI,7947) C***** ERROR IN SETTING OF INDUCTION VARIABLE GO TO 8940 1949 WRITE (NUVI,7949) 7949 FORMAT (/2X,19H**TEST SUCCESSFUL**) C***** EXTENDED RANGE SUCCESS FOR SINGLE LEVEL 8940 MRRVI=2 C***** EXTENDED RANGE FROM DOUBLE LEVEL****************************** WRITE (NUVI,8942)MRRVI C***** HEADER FOR DOUBLE LEVEL WRITTEN DO 7940 KBCVI = 3,4 DO 7940 JACVI = 1,2,3 GO TO 7941 8947 IGDVI= 1 7940 CONTINUE C***** TEST JACVI FOR VALUE OF 1 7941 IF (JACVI-1) 7942,7943,7942 C***** ERROR 7942 WRITE (NUVI,7947) C***** DOUBLE LEVEL NESTING IN ERROR GO TO 8946 C***** TEST KBCVI FOR VALUE OF 3 OR 4 7943 IF (KBCVI-3) 7942,8947,7944 7944 IF (KBCVI-4) 7942,7945,7942 C***** CORRECT 7945 WRITE (NUVI,7949) C***** DOUBLE LEVEL TEST CORRECT 8946 CONTINUE I3I(1,1,1) = 2 I3I(2,1,1) = 4 I3I(1,2,1) = 1 I3I(2,2,1) = 2 I3I(1,1,2)= -2 I3I(2,1,2) = 0 I3I(1,2,2) = -3 I3I(2,2,2) = -2 8952 FORMAT(//2X,40HEXTENDED RANGE CONTAINING A DO STATEMENT) WRITE(NUVI, 8952) DO 8948 IVI = 1,2 I3I(1,1,IVI) = I3I(1,1,IVI) + 1 DO 8948 JVI = 1,2 I3I(1,JVI,IVI) = I3I(1,JVI,IVI) + 2 GO TO 8949 8951 CONTINUE 8948 CONTINUE WRITE (NUVI, 8950) I3I 8950 FORMAT(8(/I5) /30H THE ABOVE 8 VALUES SHOULD BE/ 1 33H IN DESCENDING ORDER FROM 8 TO 1) GO TO 8953 8949 DO 8954 KVI = 1,2 I3I(KVI,JVI,IVI) = I3I(KVI,JVI,IVI) + 3 8954 CONTINUE GO TO 8951 8953 CONTINUE C***** END OF TEST SEGMENT 194 C***** WHEN EXECUTING ONLY SEGMENT 194, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** DONML - (195) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TESTS TWO INDEPENDENT LOOPS NESTED 7.1.2.8/28 C***** WITHIN LARGER ONE C***** RESTRICTIONS OBSERVED C***** * M1, M2 AND M3 ARE GREATER THAN ZERO 7.1.2.8/21 C***** * TERMINAL STATEMENT OF EACH DO PHYSICALLY FOLLOWS 7.1.2.8/08 C***** THE DO AND IS IN THE SAME PROGRAM UNIT C***** * TERMINAL STATEMENT IS EXECUTABLE BUT NOT A 7.1.2.8/07 C***** GO TO, ARITHMETIC IF, RETURN, STOP, PAUSE OR 7.1.2.8/10 C***** DO STATEMENT C***** * M1, M2 AND M3 ARE NOT REDEFINED WITHIN DO 7.1.2.8.1/54 C***** * BRANCHES TO TERMINAL STATEMENT FOR MORE THAN 7.1.2.8.1/01 C***** ONE DO ARE CONTAINED IN INNERMOST DO OF A NEST C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 195, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,1950) 1950 FORMAT (1H1,1X,30HDONML - (195) MULT-LEVEL LOOPS//2X, - 18HASA REF. - 7.1.2.8//2X,7HRESULTS) C***** HEADER FOR SEGMENT 195 WRITTEN IHDVI = 1 IGDVI = 2 IFDVI = 3 DO 1951 JACVI = 1,2 IFDVI = IFDVI + JACVI DO 1952 KBCVI = 2,4,1 IGDVI = IGDVI + 1 1952 CONTINUE IFDVI = IFDVI + IGDVI DO 1953 LCCVI = 6,7,3 IHDVI = 1 + IHDVI 1953 CONTINUE IFDVI = IFDVI + IHDVI 1951 CONTINUE C***** TEST IFDVI FOR VALUE OF 24 IF (IFDVI - 24) 1954,1955,1954 C***** ERROR 1954 WRITE (NUVI,1956) 1956 FORMAT (/2X,24H**TEST INDICATES ERROR**) C***** MULTI-LEVEL TEST IN ERROR GO TO 1958 C***** CORRECT 1955 WRITE (NUVI,1957) 1957 FORMAT (/2X,19H**TEST SUCCESSFUL**) C***** MULTI-LEVEL TEST CORRECT 1958 CONTINUE C***** END OF TEST SEGMENT 195 C***** WHEN EXECUTING ONLY SEGMENT 195, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** DON10 - (196) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST DO LOOPS WHICH HAVE I/O TERMINAL 7.1.2.8 C***** STATEMENTS (FORMATTED READ, FORMATTED WRITE 7.1.3.2.2 C***** AND REWIND ARE USED AS TERMINAL STATEMENTS) 7.1.3.2.3 C***** 7.1.3.3.1 C***** RESTRICTIONS OBSERVED C***** * M1, M2 AND M3 ARE GREATER THAN ZERO 7.1.2.8/21 C***** * TERMINAL STATEMENT OF EACH DO PHYSICALLY FOLLOWS 7.1.2.8/08 C***** THE DO AND IS IN THE SAME PROGRAM UNIT C***** * TERMINAL STATEMENT IS EXECUTABLE BUT NOT A 7.1.2.8/07 C***** GO TO, ARITHMETIC IF, RETURN, STOP, PAUSE OR 7.1.2.8/10 C***** DO STATEMENT C***** * M1, M2 AND M3 ARE NOT REDEFINED WITHIN DO 7.1.2.8.2/54 C***** * BRANCHES TO TERMINAL STATEMENT FOR MORE THAN 7.1.2.8.2/01 C***** ONE DO ARE CONTAINED IN INNERMOST DO OF A NEST C***** C***** S P E C I F I C A T I O N S SEGMENT 196 C***** C***** WHEN EXECUTING ONLY SEGMENT 196, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION IAC1I(5),AC2S(5,6) C= LOGICAL MCAVB,MCBVB,GH2B(1,2) C= DOUBLE PRECISION CC3D(7,2,2),DPAVD,DPBVD C= COMPLEX NUMVC,DENVC,LL1C(32) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENTS. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 196, THE FOLLOWING STATEMENTS C***** NUVI=6 AND INVI=9 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C= INVI = 9 C***** WRITE (NUVI,1960) 1960 FORMAT (1H1,1X,31HDONIO - (196) DO LOOPS WITH I/O/16X, 119HTERMINAL STATEMENTS/ 20H ASA REF. - 7.1.2.8/ 9H RESULTS) C***** HEADER FOR SEGMENT 196 WRITTEN KCAVI = 1 CKAVS = 1.0 DPBVD = 1.0D0 DENVC = (1.0,1.0) MCBVB = .TRUE. IAC1I(2) = 1 AC2S(4,3) = 1. CC3D(5,1,2) = 1.0D0 LL1C(2) = (1.0,1.0) GH2B(1,1) = .TRUE. OPEN(INVI,FILE="JUNK2",IOSTAT=IOX,ERR=5001) WRITE(NUVI,"('OPEN=',I4)") IOX GOTO 5002 5001 WRITE(NUVI,"('OPEN ERROR',I4)") IOX 5002 CONTINUE WRITE (INVI,1965) KCAVI, CKAVS, DPBVD, DENVC, MCBVB, IAC1I(2), 1 AC2S(4,3), CC3D(5,1,2), LL1C(2), GH2B(1,1) REWIND INVI DO 1964 JACVI = 1,3,1 C***** DO 1961 KBCVI = 1,1,1 1961 READ (INVI,1965) MCAVI,CMAVS,DPAVD,NUMVC,MCAVB,IAC1I(KBCVI), 1 AC2S(5,4), CC3D(6,1,2), LL1C(3), GH2B(KBCVI,2) C***** DO 1962 LCCVI = 1,2,1 1962 REWIND INVI C***** DO 1963 MDCVI = 1,1,1 1963 WRITE (NUVI,1966) MCAVI, IAC1I(1), CMAVS, AC2S(5,4), DPAVD, 1 CC3D(6,1,2), NUMVC, LL1C(3), MCAVB, 2 GH2B(MDCVI, MDCVI+1) 1964 CONTINUE WRITE (NUVI,1967) C***** FORMAT STATEMENTS FOR THIS SEGMENT 1965 FORMAT (2(I5,F5.1,D8.1,2(F5.1),L5)) 1966 FORMAT ( // 2(I10/),2(F11.1/),2(D15.1/),2(F5.1,F6.1/),2(L10/)) 1967 FORMAT (//30H THIS TEST IS SUCCESSFUL IF 3/38H IDENTICAL GROUP 1S OF OUTPUT HAVE BEEN/12H GENERATED.) C***** END OF SEGMENT 196 C***** WHEN EXECUTING ONLY SEGMENT 196, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** MORDO - (197) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** A MORE COMPLICATED SEGMENT TESTING THE DO STATEMENT 7.1.2.8 C***** C***** S P E C I F I C A T I O N S SEGMENT 197 C***** C***** WHEN EXECUTING ONLY SEGMENT 197 THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION IAC1I(5), MCA1I(5) C***** C***** WHEN EXECUTING ONLY SEGMENT 197, THE SEGMENT 005, WHICH C***** CONTAINS THE STATEMENT FUNCTIONS BEING USED HERE, MUST BE C***** INSERTED AFTER THE SPECIFICATION STATEMENTS OF SEGMENT 197. C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENTS. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 197, THE FOLLOWING STATEMENTS C***** NUVI=6 AND INVI=9 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C= INVI = 9 C***** WRITE (NUVI,1970) 1970 FORMAT (1H1, 1X,37HMORDO - (197) A MORE COMPLICATED SEG./16X, 1 16HOF DO STATEMENTS// 2 35H ASA REFS - 7.1.2.8 AND 7.1.2.8.1 // 9H RESULTS ) C***** HEADER FOR SEGMENT 197 WRITTEN C***** TEST OF DO WITH STATEMENT FUNCTIONS AND INTRINSIC FUNCTIONS C***** REFERENCED WITHIN ITS RANGE. TO BE RUN WITH SEG. 005 AND 412 OPEN(INVI,FILE="JUNK3",FORM="UNF",IOSTAT=IOX,ERR=6001) WRITE(NUVI,"('OPEN=',I4)") IOX GOTO 6002 6001 WRITE(NUVI,"('OPEN ERROR',I4)" ) IOX 6002 CONTINUE ASSIGN 9190 TO MVI MCBVI = 0 MCHVI = 1971 DO 1971 MCAVI = 4,8,4 CMAVS = CMAFS(1.0, FLOAT(MCAVI)) 1971 MCBVI = MCBVI + MCAFI(MCAVI,IFIX(CMAVS) - (MCAVI+2)) IF (MCBVI - 2) 9966, 9190, 9966 9190 MCHVI = 1973 C***** TEST OF DO WITH CALL STATEMENTS REFERENCED WITHIN ITS RANGE IVI = 0 ASSIGN 9968 TO MVI DO 1973 MCAVI = 1,3 1973 CALL MDQ( MCAVI, IVI) IF(IVI - 6) 9966, 9968, 9966 C***** TEST OF DO WITH THE FOLLOWING FEATURES COMBINED - C***** 1. AN EXIT FROM THE RANGE OF A DO BY THE EXECUTION OF A C***** GO-TO STATEMENT, THE CONTROL VARIABLE OF THE DO IS C***** DEFINED 7.1.2.8.1/19-23 C***** 2. A GO TO STATEMENT CAUSES CONTROL TO PASS FROM AN C***** INNER DO TO THE OUTER DO (WITHIN THE NESTED RANGE) 9968 MCHVI = 1976 ASSIGN 9191 TO MVI MCBVI = 0 DO 1976 MCAVI = 1,1,1 9192 MCBVI = MCBVI + 1 DO 1975 MCCVI = 1,3,1 MCBVI = MCBVI + 1 IF(MCBVI - 4) 9197, 9192, 1975 9197 GO TO (1975, 1975, 9966), MCCVI 1975 CONTINUE 1976 CONTINUE IF (MCBVI - 8) 9966, 9191, 9966 C***** TEST THAT THE STATEMENT LABEL OF THE TERMINAL STATEMENT C***** OF MORE THAN ONE DO CAN BE USED IN ANY GO TO OR ARITHMETIC C***** IF STATEMENT THAT OCCURS IN THE RANGE OF THE MOST DEEPLY C***** CONTAINED DO WITH THAT TERMINAL STATEMENT. 7.1.2.8.2/1-6 C***** ALSO THE CONTROL VARIABLE IS DEFINED WHEN EXIT IS MADE BY THE C***** EXECUTION OF AN ARITHMETIC IF STATEMENT. 9191 ASSIGN 9194 TO MVI MCHVI = 1977 MCEVI = -24 DO 1977 MCAVI = 1,2 MCEVI = MCEVI + 1 DO 1977 MCBVI = 1,2 MCEVI = MCEVI + 1 DO 1977 MCCVI = 1,5,1 MCEVI = MCEVI + 1 IF(MCEVI ) 1977, 1977, 1978 1977 CONTINUE C***** ERROR IF LOOP TERMINATES THRU CONTINUE GO TO 9966 C***** CONTROL VARIABLE DEFINED ON FIRST LEVEL ON ARITH. IF 1978 MCEVI = MCAVI + MCBVI + MCCVI MCHVI = 1978 IF(MCEVI -8) 9966,9194,9966 9194 MCHVI = 1974 MCEVI = 0 ASSIGN 9961 TO MVI DO 1974 MCAVI = 1,2 DO 1974 MCBVI = 1,2,1 DO 1974 MCCVI = 4,5,1 DO 1974 MCDVI = 2,3 GO TO 9193 9195 GO TO 1974 9193 MCEVI = MCAVI + MCBVI + MCCVI + MCDVI + MCEVI GO TO 9195 1974 CONTINUE IF(MCEVI - 160) 9966, 9961, 9966 C***** TEST OF DO WITH I/O STATEMENTS REFERENCED WITHIN ITS RANGE. C***** REWIND, UNFORMATTED READ AND WRITE ARE REFERENCED. THE C***** FOLLOWING 3 DOS MUST BE KEPT TOGETHER FOR SELF-CHECKING C***** PURPOSES 9961 MCHVI = 1972 ASSIGN 9196 TO MVI REWIND INVI DO 9963 MCAVI = 1,4 MCA1I(MCAVI) = MCAVI WRITE ( INVI) (MCA1I(MCBVI), MCBVI = 1,MCAVI, 1) 9963 CONTINUE DO 9964 MCCVI = 1,4 9964 REWIND INVI DO 1972 MCDVI = 1,4 READ (INVI) (IAC1I(MCEVI),MCEVI = 1,MCDVI) DO 1972 MCFVI = 1, MCDVI MCGVI = IAC1I(MCFVI) - MCA1I(MCFVI) IF (MCGVI) 9966, 1972, 9966 1972 CONTINUE 9196 WRITE(NUVI, 9969) GO TO 9198 C***** ERROR MESSAGES IF DO STATEMENT IS EXECUTED IN ERROR. 9966 WRITE (NUVI,9967) MCHVI 9967 FORMAT (// 36H DO RANGE ENDING AT STATEMENT LABEL,I5, 114H IS IN ERROR.) 9969 FORMAT(// 35H THIS SEGMENT SUCCESSFULLY TESTED / 222H IF NO ERROR MESSAGES) GO TO MVI,(9190,9968,9191,9194,9961,9196) 9198 REWIND INVI C***** END OF TEST SEGMENT 197 C***** WHEN EXECUTING ONLY SEGMENT 197, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** SUBR1 - (200) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF. C***** TO TEST SUBROUTINE SUBPROGRAM WITHOUT AN ARGUMENT LIST 8.4.1.1 C***** GENERAL COMMENTS C***** IT IS TO BE RUN WITH SEGMENT 410 C***** RESTRICTIONS OBSERVED C***** SYMBOLIC NAME OF A SUBROUTINE MAY NOT APPEAR IN ANY 8.4.1.1/56 C***** STATEMENT IN THIS SUBROUTINE EXCEPT IN THE C***** SUBROUTINE STATEMENT ITSELF C***** * SYMBOLIC NAMES OF DUMMY ARGUMENTS MAY NOT APPEAR 8.4.1.1/39 C***** IN EQUIVALENCE OR COMMON STATEMENTS IN THE SUBPROGRAM C***** * SUBROUTINES MAY NOT CONTAIN A FUNCTION STATEMENT, 8.4.1.1/45 C***** ANOTHER SUBROUTINE STATEMENT, OR ANY STATEMENT THAT C***** DIRECTLY OR INDIRECTLY REFERENCES THE SUBROUTINE C***** BEING DEFINED C***** * AT LEAST ONE RETURN STATEMENT MUST BE IN A SUBROUTINE C***** 8.4.1.1/49 C***** S P E C I F I C A T I O N S SEGMENT 200 C***** C***** WHEN EXECUTING ONLY SEGMENT 200, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= COMMON AXVS, CXVS, IXVI, IAX1I(4) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** WHEN EXECUTING ONLY SEGMENT 200, THE FOLLOWING STATEMENTS C***** NUVI=6 AND INVI=9 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C= INVI = 9 WRITE(NUVI, 0200) 200 FORMAT(39H1 SUBR1 - (200) SUBROUTINE SUBPROGRAM /15X, 124HWITHOUT AN ARGUMENT LIST //18H ASA REF. - 8.4.1//9H RESULTS) IXVI = NUVI IAX1I(1) = INVI CALL SUBRQ CONTINUE C***** END OF SEGMENT 200 C***** WHEN EXECUTING ONLY SEGMENT 200, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END STOP END C*********************************************************************** C***** C***** SUBRQ - (410) C***** C*********************************************************************** C***** THIS SEGMENT TESTS THAT A VARIETY OF FORTRAN STATEMENTS C***** CAN BE USED IN A SUBROUTINE. IT IS TO BE RUN WITH SEGMENT 200 SUBROUTINE SUBRQ DIMENSION KCA1I(5), KAC1I(5) COMMON BXVS, DXVS, NXVI, IXVI C***** DEFINE ARITHMETIC STATEMENT FUNCTION CKAFS(CEWVS,CFWVS) = CEWVS*2. + CFWVS 8868 FORMAT (//35H THIS SEGMENT SUCCESSFULLY TESTED / 1 23H IF NO ERROR MESSAGES.) 8867 FORMAT (//36H DO RANGE ENDING AT STATEMENT LABEL,I5,14H IS IN ER 1ROR.) KCAFI(KEWVI,KFWVI) = KEWVI**KFWVI C***** TEST OF DO WITH STATEMENT FUNCTIONS KCHVI = 4101 ASSIGN 4102 TO MVI KCBVI = 0 DO 4101 KCAVI = 4,8,4 CKAVS = CKAFS(1.0, FLOAT(KCAVI)) 4101 KCBVI = KCBVI + KCAFI(KCAVI,IFIX(CKAVS) - (KCAVI + 2)) IF(KCBVI - 2) 8866, 4102, 8866 C***** TEST OF DO WITH THE FOLLOWING FEATURES COMBINED - C***** 1. AN EXIT FROM THE RANGE OF A DO BY THE EXECUTION OF A C***** GO-TO STATEMENT, THE CONTROL VARIABLE OF THE DO IS C***** DEFINED C***** 2. A GO TO STATEMENT CAUSES CONTROL TO PASS FROM AN C***** INNER DO TO THE OUTER DO (WITHIN THE NESTED RANGE) 4102 KCHVI = 4106 ASSIGN 8870 TO MVI KCBVI = 0 DO 4106 KCAVI = 1,1,1 8872 KCBVI = KCBVI + 1 DO 4105 KCCVI = 1,3,1 KCBVI = KCBVI + 1 IF (KCBVI - 4) 8873, 8872, 4105 8873 GO TO (4105,4105,8866), KCCVI 4105 CONTINUE 4106 CONTINUE IF(KCBVI - 8) 8866, 8870, 8866 C***** TEST THAT THE STATEMENT LABEL OF THE TERMINAL STATEMENT C***** OF MORE THAN ONE DO CAN BE USED IN ANY GO TO OR ARITHMETIC C***** IF STATEMENT THAT OCCURS IN THE RANGE OF THE MOST DEEPLY C***** CONTAINED DO WITH THAT TERMINAL STATEMENT 8870 ASSIGN 8876 TO MVI KCHVI = 4107 KCEVI = -24 DO 4107 KCAVI = 1,2 KCEVI = KCEVI + 1 DO 4107 KCBVI = 1,2 KCEVI = KCEVI + 1 DO 4107 KCCVI = 1,5,1 KCEVI = KCEVI + 1 IF(KCEVI ) 4107,4107,4104 4107 CONTINUE C*****ERROR IF LOOP TERMINATES THRU CONTINUE GO TO 8866 C*****CONTROL VARIABLE DEFINED ON FIRST LEVEL ON ARITH. IF 4104 KCEVI = KCAVI + KCBVI + KCCVI KCHVI = 4104 IF(KCEVI - 8) 8866,8876,8866 8876 KCHVI = 4103 KCEVI = 0 ASSIGN 8871 TO MVI DO 4103 KCAVI =1,2 DO 4103 KCBVI = 1,2,1 DO 4103 KCCVI = 4,5,1 DO 4103 KCDVI = 2,3 GO TO 8878 8877 GO TO 4103 8878 KCEVI = KCAVI + KCBVI + KCCVI + KCDVI + KCEVI GO TO 8877 4103 CONTINUE IF(KCEVI - 160)8866,8871,8866 C***** TEST OF DO WITH I/O STATEMENTS 8871 ASSIGN 8860 TO MVI KCHVI = 4108 REWIND IXVI DO 8863 KCAVI = 1,4 KCA1I(KCAVI) = KCAVI WRITE(IXVI)(KCA1I(KCBVI),KCBVI = 1,KCAVI,1) 8863 CONTINUE DO 8864 KCCVI =1,4 8864 REWIND IXVI DO 4108 KCDVI = 1,4 READ(IXVI)(KAC1I(KCEVI),KCEVI = 1,KCDVI ) DO 4108 KCFVI = 1, KCDVI KCGVI = KAC1I(KCFVI)-KCA1I(KCFVI) IF(KCGVI) 8866,4108,8866 4108 CONTINUE 8860 WRITE(NXVI,8868) GO TO 8869 8866 WRITE(NXVI,8867) KCHVI GO TO MVI,(8860,4102,8870,8871,8876) 8869 REWIND IXVI RETURN C***** END OF TEST SEGMENT 410 END C*********************************************************************** C***** C***** MDQ - (412) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** THIS SUBROUTINE IS USED WITH SEGMENT 197 TO C***** SHOW THAT SUBROUTINES MAY BE CALLED FROM DO LOOPS SUBROUTINE MDQ(MWVI,IWVI) IWVI = MWVI + IWVI RETURN C***** END OF TEST SEGMENT 412 END C*********************************************************************** C***** C***** BLAKD - (419) C***** C*********************************************************************** C***** GENERAL PURPOSE C***** THIS SEGMENT CONTAINS THE FIRST OF THREE BLOCK DATA SUBPROGRAMS C***** TO BE RUN WITH SEGMENT 179 C***** THESE SEGMENTS USE ALL THE PERMISSIBLE STATEMENTS IN A C***** BLOCK DATA SUBPROGRAM. THE DATA STATEMENTS CONSIST OF ALL C***** TYPES OF VARIABLES AND ARRAYS. A HOLLERITH CONSTANT IS C***** ASSIGNED TO INTEGER , REAL, AND LOGICAL BLOCK DATA DOUBLE PRECISION DXVD, DX1D, DX2D COMMON /BLK1/JXVI, JAX1I(2), JAX2I(3,3) A /BLK2/ DXVS, DX1S(2), DX2S(2,2) B /BLK3/ DXVD, DX1D(2), DX2D(2,2) INTEGER JXVI REAL DXVS DATA JXVI, JAX1I(1), JAX2I(1,2), DXVS, DX1S(2) A ,DX2S(1,2), DXVD, DX1D(1), DX2D(1,2)/ 3 * 1 B ,3 * 2.0,3*4.0D0/, JAX2I(1,3),DX2S(2,1)/2HHP,2HHP/ C***** END OF TEST SEGMENT 419 END C*********************************************************************** C***** C***** BLBKD - (429) C***** C*********************************************************************** C***** TO BE RUN WITH SEGMENT 179 C***** THIS SEGMENT CONTAINS THE 2ND OF THREE BLOCK DATA SUBPROGRAMS C***** TO BE RUN WITH SEGMENT 179 BLOCK DATA COMPLEX DXVC, DX1C, DX2C COMMON /BLK4/ DXVC,DX1C(2), DX2C(2,2) C /BLK5/DXVB, DX1B(2), DX2B(2,2) LOGICAL DXVB, DX1B, DX2B DATA DXVC, DX1C(1), DX2C(1,2),DXVB, DX1B(1),DX2B(1,2)/ D 3 * (3.,4.), 3 *.FALSE./ C***** END OF TEST SEGMENT 429 END C*********************************************************************** C***** C***** BLCKD - (439) C***** C*********************************************************************** C***** THIS SEGMENT CONTAINS THE THIRD OF THREE BLOCK DATA SUBPROGRAMS C***** TO BE RUN WITH SEGMENT 179 BLOCK DATA COMMON /BLK6/JAX3I(2,2,2),DX3S(2,2,2),DX3D(2,2,2) E ,DZ3C(2,2,2), DX3B(2,2,2) DOUBLE PRECISION DX3D DIMENSION CY3C(2,2,2) COMPLEX DZ3C,CY3C LOGICAL DX3B EQUIVALENCE (DZ3C(1,1,1), CY3C(1,1,1)) DATA JAX3I(1,1,2),DX3S(1,1,2),DX3D(1,1,2),CY3C(1,1,2),DX3B(1,1,2)/ F 1, 2.0, 4.0D0, (3.,4.),.FALSE./ ,DX3B(2,2,2)/ G 2HHP/ C***** END OF TEST SEGMENT 439 END nbs13.d 480890375 170 2 100666 1364 ` SAMPLE COMPUTER, FORTRAN COMPILER LEVEL DO NOT READ OR WRITE RECORD 2. DOUBLE SPACE ON OUTPUT ID 2 OPERATING SYSTEM VERSION DO NOT READ OR WRITE RECORD 4. DOUBLE SPACE ON OUTPUT ID 4 DATE, INSTALLATION NAME DO NOT READ OR WRITE RECORD 6. DOUBLE SPACE ON OUTPUT ID 6 . . . 0. E+00 + + . E00 + + . D+00 . D0 1.23456987654. +1.234E-0 -98.7654E+0 + 2345.67891011+2 -.109876-4 12345 12345 12345 12345 12345 1.1 1.1 1.1 1.1 +0.339567E+02 + .339567+2 + 3.395670E1 0.96295134244D+04 .96295134244D04 0.96295134244+4 0.96295134244D+04 31.23+0.14E+04+0.2D+02 31.23 .14E+04 +.2+2 -0.13579E+054444 4444 4444 4444 4444 -333 5.555+0.4545E-04 -6.666 .9989E+12 7.77-0.747E-02 +0.549E022 +0.662E-00 0.468-1011 0.59542D+04-44.6666-0.1234567890D-03 54.9327-0.1395624534D+00 65432.1 +0.848E+03 .848E3 + .1290D7+0.129D+07 0.412D21 22222222222222222222222222222222222222222222222222 -.987E0-0.987E+00 +0.6D0 + 0.6D+00 .368D-5 5 5 5 5 987654 8647.86 987.654 (I5,6X, I4, 2(I3), I2) (E 9.2,3(E13.6)) ( L1 , 2(L2),L3) (2X,A2,5(A2)) (2X,F5.3, F4.0, 2(F7.2)) (2X , D 16.9,D9.2) 84756 -867224+39-6 23498.-77.27547.18 -.0076+11+08.93421E-13 893.421E-15+08.93421E-13 -0.357901246D+00 +0.52D-2 TTA FF9$ AB CDE+*=123 nbs13.f 480890387 170 2 100666 43591 ` C***** PART13 **************************************************** C***** C***** ANSI FORTRAN (X3.9-1966) TEST PROGRAMS C***** C***** PREPARED BY THE NATIONAL BUREAU OF STANDARDS VERSION 3 C***** C***** JUNE 1973 C***** C***** PART 13 OF 14 PARTS C***** C***** SEGMENTS INCLUDED C***** C***** LOGIF - 300 LOGICAL IF STATEMENTS C***** C***** SMCQ - 411 SUBROUTINE C***** C***** BARIF - 301 ARITHMETIC IF STATEMENTS C***** C***** FARIF - 302 ARITHMETIC IF STATEMENTS C***** C***** IOFMT - 310 FORMATTED READ, WRITE C***** C***** RDFMT - 312 FORMATS IN ARRAYS C***** C***** FMTQ - 462 SUBROUTINE C***** C***** THE FOLLOWING SPECIFICATIONS ARE TO BE USED ONLY WHEN SEGMENTS C***** 300, 301, 302, 310, 312 ARE RUN AS ONE MAIN PROGRAM. C***** REAL MVS DIMENSION L1I(10) DIMENSION IAC2I(2,7),ZU1S(13),ZU3S(3,2,2),ZU2S(4,2),ZT1S(4) DIMENSION A1S(5 ),A2S(2,2),A3S(3,3,3),YER1S(7),EP1S(33) DIMENSION IAC1I(5),MCA1I(5),AC1S(25),AC2S(5,6),CMA1S(5) INTEGER AVI,IU2I(4,2),IT3I(4,2,2),IU3I(2,3,3), MCA3I(2,3,3) LOGICAL MCAVB, MCBVB, MCA1B(7), AVB, BVB, CVB, GG1B(2), A1B(2) COMPLEX CHAVC,CHBVC DOUBLE PRECISION MCAVD, MCBVD, MCCVD, A1D(4), A2D(2,2), A3D(2,2,2) 1 ,DPAVD, DPBVD,DPCVD,DPEVD,DPFVD,DPHVD,DPDVD,AAAVD DATA IU2I(1,1),IU2I(2,1),IU2I(3,1),IU2I(4,1),IU2I(1,2),IU2I(2,2), 1 IU2I(3,2)/2H(A,2H2/,2H2X,2H,5,2H(A,2H2),1H) / DATA ZU1S(1),ZU1S(2),ZU1S(3),ZU1S(4),ZU1S(5),ZU1S(6),ZU1S(7), 1 ZU1S(8),ZU1S(9),ZU1S(10),ZU1S(11),ZU1S(12) / 2 2H( ,2H ,2HF3,2H.3,1H,,2HF3,2H.0,2H, ,2H2(,2HF6,2H.2,2H)) / DATA IU3I(1,1,1),IU3I(2,1,1),IU3I(1,2,1),IU3I(2,2,1),IU3I(1,3,1), 1 IU3I(2,3,1),IU3I(1,1,2),IU3I(2,1,2) / 2 2H( ,2H D,2H16,2H.9,2H, ,1HD,2H9.,2H2) / DATA IT3I(1,1,1),IT3I(2,1,1),IT3I(3,1,1),IT3I(4,1,1),IT3I(1,2,1), 1 IT3I(2,2,1),IT3I(3,2,1),IT3I(4,2,1),IT3I(1,1,2),IT3I(2,1,2), 2 IT3I(3,1,2),IT3I(4,1,2),IT3I(1,2,2) /2H(2,2HX,,2HI5,2H,1, 3 2HX,,2HI4,2H,I,2H4,,2H1X,2H,I,2H2,,2HI3,1H) / DATA ZT1S(1),ZT1S(2),ZT1S(3),ZT1S(4)/2H(E,2H11,2H.2,1H) / DATA ZU3S(1,1,1),ZU3S(2,1,1),ZU3S(3,1,1),ZU3S(1,2,1),ZU3S(2,2,1), 1 ZU3S(3,2,1) / 2H(4,2H(E,2H14,2H.6,2H/),1H) / DATA ZU2S(1,1),ZU2S(2,1),ZU2S(3,1),ZU2S(4,1),ZU2S(1,2),ZU2S(2,2), 2 ZU2S(3,2) / 2H(L,2H3,,2H2(,2HL2,2H),,2HL3,1H) / C***** C***** END OF SPECIFICATIONS FOR SEGMENTS 300, 301, 302, 310, 312 C*********************************************************************** C***** C***** LOGIF - (300) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST LOGICAL IF STATEMENT 7.1.2.3 C***** GENERAL COMMENT C***** ASSIGNED GO TO,INTRINSIC FUNCTION,ARITHMETIC IF,CALL, C***** COMPUTED GO TO AND I/O STATEMENTS ASSUMED WORKING. C***** C***** S P E C I F I C A T I O N S SEGMENT 300 C***** C***** WHEN EXECUTING ONLY SEGMENT 300, REMOVE THE PRECEDING C***** SPECIFICATIONS. THE FOLLOWING SPECIFICATIONS, WHICH APPEAR C***** AS COMMENT CARDS MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= LOGICAL MCAVB,MCBVB,MCA1B(7) C= DOUBLE PRECISION DPAVD, DPBVD,DPCVD,DPDVD,DPEVD,DPFVD C***** C***** I N P U T - O U T P U T T A P E ASSIGNMENT STATEMENTS. IRVI = 5 NUVI = 6 C***** IDENTIFY THE SOURCE OF THE TEST PROGRAMS WRITE(NUVI,0071) 0071 FORMAT (41H1 F O R T R A N T E S T P R O G R A M S// 1 42H PREPARED BY NATIONAL BUREAU OF STANDARDS// 3 37H FOR USE ON LARGE FORTRAN PROCESSORS // 4 42H IN ACCORDANCE WITH ASA FORTRAN X3.9-1966// 5 23H VERSION 3 PART 13///) C***** 3 OF 6 INPUT CARDS IDENTIFY THE USERS SYSTEM AND COMPILER C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST READ(IRVI,0070) READ(IRVI,0072) READ(IRVI,0073) 0070 FORMAT(40H BASED ON ASA FORTRAN X3.9-1966 /) 0072 FORMAT(40H TEST PROGRAMS /) 0073 FORMAT(40H FORTRAN COMPILER /) WRITE(NUVI,0070) WRITE(NUVI,0072) WRITE(NUVI,0073) WRITE (NUVI,3000) 3000 FORMAT (1H1, 1X,34HLOGIF - (300) LOGICAL IF STATEMENT// 120H ASA REF. - 7.1.2.3//10H RESULTS // 2/37H TEST EXPLICITLY WRITTEN SIGNED ZERO/2X) C***** HEADER FOR SEGMENT 300 WRITTEN MACVI = 0 MCAVB = .TRUE. MCBVB = .FALSE. MCA1B(1) = .TRUE. MCA1B(2) = .FALSE. C***** TEST THAT MINUS ZERO AND PLUS ZERO ARE TREATED 4.2/11 C***** AS EQUAL VALUES IVI = -8 IIVI = -8 JVI = +0 JJVI = -0 KVI = 8 KKVI = 8 AVS = -0.5 AAVS = -0.5 BVS = +0.0 BBVS = -0.0 CVS = 0.5 CCVS = 0.5 DPAVD = -0.5D0 DPBVD = -0.5D0 DPCVD = +0.0D0 DPDVD = -0.0D0 DPEVD = 0.5D0 DPFVD = 0.5D0 C***** TEST FOR EXPLICITLY WRITTEN -0 EQUAL TO +0 IF((JVI) .EQ. (JJVI))MACVI = MACVI + 1 IF((JJVI) .EQ. (JVI)) MACVI = MACVI + 1 IF((+0) .EQ. (-0)) MACVI = MACVI + 1 IF((-0) .EQ. (+0)) MACVI = MACVI + 1 IF (MACVI - 4) 9951, 9954, 9951 9951 WRITE (NUVI, 9953) GO TO 9955 9952 FORMAT(14H +0 EQUALS -0) 9953 FORMAT(17H +0 NOT EQUAL -0) 9954 WRITE (NUVI, 9952) 9955 MACVI = 0 C***** TEST EXPLICITLY WRITTEN +0.0 EQUALS -0.0 IF ((BVS) .EQ. (BBVS)) MACVI = MACVI + 1 IF ((BBVS) .EQ. (BVS)) MACVI = MACVI + 1 IF ((+0.0) .EQ. (-0.0)) MACVI = MACVI + 1 IF ((-0.0) .EQ. ( 0.0)) MACVI = MACVI + 1 IF (MACVI - 4) 9944, 9947, 9944 9944 WRITE (NUVI, 9946) GO TO 9948 9945 FORMAT (18H +0.0 EQUALS -0.0) 9946 FORMAT (21H +0.0 NOT EQUAL -0.0) 9947 WRITE (NUVI, 9945) C***** TEST EXPLICITLY WRITTEN +0.0D0 EQUALS -0.0D0 9948 MACVI = 0 IF ((DPCVD) .EQ. (DPDVD)) MACVI = MACVI +1 IF ((DPDVD).EQ. (DPCVD)) MACVI = MACVI + 1 C***** IF ((+0.0D0) .EQ. (-0.0D0)) MACVI = MACVI + 1 IF ((-0.0D0) .EQ. (0.0D0)) MACVI = MACVI + 1 IF (MACVI - 4) 9949, 9957, 9949 9949 WRITE (NUVI, 9960) GO TO 9958 9959 FORMAT (22H +0.0D0 EQUALS -0.0D0) 9960 FORMAT (25H +0.0D0 NOT EQUAL -0.0D0) 9957 WRITE (NUVI, 9959) 9958 MACVI = 0 WRITE (NUVI, 7950) 7950 FORMAT (33H0 TEST COMPUTATIONAL SIGN OF ZERO/2X) C***** TEST FOR COMPUTATIONALLY CREATED +0 AND -0 IF((IVI * JVI) .EQ. (JVI))MACVI = MACVI + 1 IF((JVI) .EQ. (JVI * IIVI))MACVI = MACVI + 1 IF((JVI / IVI) .EQ. (+0) )MACVI = MACVI + 1 IF((IVI + KVI) .EQ. (JVI))MACVI = MACVI + 1 IF((KKVI + IIVI) .EQ. (JVI))MACVI = MACVI + 1 IF((IIVI - IVI) .EQ. (JVI))MACVI = MACVI + 1 IF((KVI - KKVI) .EQ. (JVI))MACVI = MACVI + 1 IF (MACVI - 7) 9956, 9940, 9956 9956 WRITE (NUVI,9953) GO TO 7955 9940 WRITE (NUVI,9952) C***** TEST FOR COMPUTATIONALLY CREATED +0.0 AND -0.0 7955 MACVI = 0 IF ((AVS * BVS) .EQ. (BVS)) MACVI = MACVI + 1 IF ((BVS) .EQ. (BVS * AAVS)) MACVI = MACVI + 1 IF ((BVS / AVS) .EQ. ( 0.0)) MACVI = MACVI + 1 IF ((AVS + CVS) .EQ. (BVS)) MACVI = MACVI + 1 IF ((CCVS + AAVS) .EQ. (BVS)) MACVI = MACVI + 1 IF ((AAVS - AVS) .EQ. (BVS)) MACVI = MACVI + 1 IF ((CVS - CCVS) .EQ. (BVS)) MACVI = MACVI + 1 IF (MACVI - 7) 7951, 7952, 7951 7951 WRITE (NUVI, 9946) GO TO 7953 7952 WRITE (NUVI, 9945) C***** TEST FOR COMPUTATIONALLY CREATED +0.0D0 AND -0.0D0 7953 MACVI = 0 IF ((DPAVD * DPCVD) .EQ. (DPCVD)) MACVI = MACVI + 1 IF ((DPCVD) .EQ. (DPCVD * DPBVD)) MACVI = MACVI + 1 IF ((DPCVD / DPAVD) .EQ. (0.0D0)) MACVI = MACVI + 1 IF ((DPAVD + DPEVD) .EQ. (DPCVD)) MACVI = MACVI + 1 IF ((DPFVD + DPBVD) .EQ. (DPCVD)) MACVI = MACVI + 1 IF ((DPBVD - DPAVD) .EQ. (DPCVD)) MACVI = MACVI + 1 IF ((DPEVD - DPFVD) .EQ. (DPCVD)) MACVI = MACVI + 1 IF (MACVI - 7) 7954, 9939, 7954 7954 WRITE (NUVI, 9960) GO TO 9941 9939 WRITE (NUVI, 9959) 9941 MCAVI = 0 WRITE (NUVI, 9942) 9942 FORMAT(31H0 TEST -LOGICAL IF- FOLLOWED BY/ 131H DIFFERENT KINDS OF STATEMENTS ) C***** TEST 1 C***** LOGICAL IF FOLLOWED BY SIMPLE ASSIGNMENT STATEMENT C***** CORRECT RESULT = 0, OTHERWISE RESULT = 1 IF (MCA1B(2)) MCAVI = 1 WRITE (NUVI,3009) MCAVI C***** TEST 2 C***** LOGICAL IF FOLLOWED BY USE OF INTRINSIC FUNCTION C***** CORRECT RESULT =0, OTHERWISE RESULT =2 MCAVI = 2 IF (MCAVB) MCAVI = IFIX(5.0 - 4.0 - 1.0) WRITE (NUVI,3009) MCAVI MCAVI = 0 C***** TEST 3 C***** LOGICAL IF FOLLOWED BY ARITHMETIC STATEMENT C***** CORRECT RESULT =0, OTHERWISE RESULT =3 IF (MCAVB .AND. MCBVB) MCAVI = 3* 2 / 2 WRITE (NUVI,3009) MCAVI C***** TEST 4 C***** LOGICAL IF FOLLOWED BY GO TO STATEMENT C***** CORRECT RESULT =0, OTHERWISE RESULT =4 MCAVI = 0 IF (MCAVB .AND. MCBVB .OR. MCA1B(1)) GO TO 3001 MCAVI = 4 3001 WRITE (NUVI,3009) MCAVI C***** TEST 5 C***** LOGICAL IF FOLLOWED BY CALL STATEMENT C***** CORRECT RESULT =0, OTHERWISE RESULT =5 MCAVI =0 IF (MCBVB .OR. (1 .GE. 2) .AND..FALSE.) CALL SMCQ(MCAVI) WRITE (NUVI,3009) MCAVI C***** TEST 6 C***** LOGICAL IF FOLLOWED BY NESTED USE OF INTRINSIC FUNCTIONS C***** CORRECT RESULT =0, OTHERWISE RESULT =6 MCAVI = 6 IF (.TRUE. .OR. ((1. .LE. (0.1 + 1.5)) .AND. (MCA1B(1) .OR. .TRUE 1.)) .AND. MCBVB) MCAVI = IFIX(REAL((0.0,1.0))) WRITE (NUVI,3009) MCAVI C***** TEST 7 C***** LOGICAL IF FOLLOWED BY ASSIGNED GO TO STATEMENT C***** CORRECT RESULT =0, OTHERWISE RESULT =7 ASSIGN 3002 TO MCBVI MCAVI = 7 IF (.NOT. (MCAVB .AND. MCBVB .AND. .FALSE. .OR. (.NOT. .TRUE.))) 1GO TO MCBVI,(3001,3002,3003) GO TO 3003 3002 MCAVI = 0 3003 WRITE (NUVI,3009) MCAVI C***** TEST 8 C***** LOGICAL IF FOLLOWED BY ARITHMETIC IF STATEMENT C***** CORRECT RESULT =0, OTHERWISE RESULT =8 MCAVI = 0 IF (.NOT. (.NOT.(.TRUE. .OR. MCAVB .AND. (8. .NE. 7.)))) 1IF (MCAVI) 3004,3005,3004 3004 MCAVI = 8 3005 WRITE (NUVI,3009) MCAVI C***** TEST 9 C***** LOGICAL IF FOLLOWED BY I/O STATEMENT C***** CORRECT RESULT =0, OTHERWISE RESULT =9 MCAVI = 0 IF ((8.0D0 .EQ. (1. + 7.)) .AND. (.NOT. (3 .NE. 3))) 1WRITE (NUVI,3009) MCAVI C***** TEST 10 C***** LOGICAL IF FOLLOWED BY COMPUTED GO TO STATEMENT C***** CORRECT RESULT =0, OTHERWISE RESULT =10 MCAVI = 2 IF ( .TRUE. .AND. (8 .GE. 6) .OR. (.FALSE.)) GO TO (9950,3006), 1MCAVI 9950 MCAVI = 10 GO TO 3007 3006 MCAVI = 0 3007 WRITE (NUVI,3009) MCAVI WRITE (NUVI,3008) C***** TEST EXPRESSIONS IN LOGICAL IF STATEMENTS C***** TEST 11 .LT. EXPRESSION, RELATION, EXPRESSION (TRUE) MCAVI = 11 IF((SNGL(DABS(-DSIGN(DBLE(2.0),1.0D0)))).LT.AMIN1((FLOAT(IDIM 1 (1 + 2, 0))), (AIMAG(CMPLX(1.0,2.0)))) + 1.0) MCAVI = 0 WRITE (NUVI, 3009) MCAVI C***** TEST 12 .LT. EXPRESSION, RELATION, CONSTANT (TRUE) MACVI = 12 IF((AMIN1(FLOAT(IDIM(4 - 1,0)) , AIMAG(CMPLX(1.0,2.0)))).LT. 4.0) 1MACVI = 0 WRITE (NUVI, 3009) MACVI C***** TEST 13 .LT. CONSTANT(D.P.),RELATION, EXPRESSION (REAL)(TRUE) MACVI = 13 C*****IF (1.(D0).LT. (SNGL(DABS(DSIGN(DBLE(4.0),1.0D0))))) MACVI = 0 C*****WRITE (NUVI, 3009) MACVI C***** TEST 14 .LE. .AND. .LE. (SHOULD BE LESS AND EQUAL) (TRUE) MACVI = 14 IF((REAL(CONJG((1.0,-2.0))) + AIMAG((16.0,-4.0)) .LE. 1 AIMAG(CONJG((1.0,-2.0))) + REAL((-4.0,16.0)) + 1.0) .AND. 2 (AIMAG(CONJG((2.0,-4.0))) + REAL((-8.0,16.0)).LE. 3 REAL(CONJG((4.0,-2.0))) + AIMAG((16.0,-8.0))))MACVI = 0 WRITE (NUVI, 3009) MACVI C***** TEST I5 .LE. (FALSE) MACVI = 0 IF (MAX1((AMAX0(4,2,-(1 * 4))),16.0) .LE. 2 ** 3)MACVI = 15 WRITE (NUVI, 3009) MACVI C***** TEST 16 .NE. .AND. .EQ. (TRUE) MACVI = 16 IF(((AINT(AINT(AINT(1.4 + 2.9)+1.6)-8.1)).NE.(-8.0)).AND.(-1.0.EQ. 1AINT(AINT(AINT(2.6 + 4.8) + 1.4)-9.2)))MACVI = 0 WRITE (NUVI, 3009) MACVI C***** TEST 17 .GT. (TRUE) MACVI = 17 IF((FLOAT(IABS(IFIX(ABS(-5.0+ SIGN(-1.0,2.0)))))) .GT. 2.0D0) 1MACVI = 0 WRITE (NUVI, 3009) MACVI C***** TEST 18 .GE. EQUAL (TRUE) MACVI = 18 IF((8.0).GE.(FLOAT(IABS(IFIX(ABS(-4.0+SIGN(4.0,-2.0)))))))MACVI=0 WRITE (NUVI, 3009) MACVI C***** TEST 19 .GE. GREATER (TRUE) MACVI = 19 IF((MACVI).GE.(IABS(IFIX(ABS(-4.0 + SIGN(8.0,-4.0))))))MACVI = 0 WRITE (NUVI, 3009) MACVI C***** TEST 20 .GT. (FALSE) .OR. .EQ. (TRUE) MACVI = 20 IF((-MACVI) .GT. (MAX1 (AMAX0(8,-(2*4),4) ,16.0)).OR. .NOT.(IABS 1 (-20) .NE. MACVI))MACVI = 0 WRITE (NUVI, 3009) MACVI WRITE (NUVI, 9943) 9943 FORMAT(28H0 ALL VALUES SHOULD BE ZERO./ 137H A VALUE OTHER THAN ZERO WILL BE THE / 234H NUMBER OF THE TEST WHICH FAILED. ) 3008 FORMAT(34H0 THERE SHOULD BE 10 VALUES ABOVE, / 131H IF ONLY 9, TEST 9 HAS FAILED.) 3009 FORMAT(12X, I10) C***** END OF TEST SEGMENT 300 C***** WHEN EXECUTING ONLY SEGMENT 300, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** BARIF - (301) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST BASIC FORTRAN ARITHMETIC IF STATEMENT 7.1.2.2 C***** GENERAL COMMENTS C***** BASIC INTRINSIC FUNCTIONS ASSUMED WORKING C***** C***** S P E C I F I C A T I O N S SEGMENT 301 C***** C***** WHEN EXECUTING ONLY SEGMENT 301, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= DIMENSION L1I(10) C= DIMENSION MCA1I(5),CMA1S(5) C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 301, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,3010) 3010 FORMAT (1H1,1X,27HBARIF - (301) BASIC FORTRAN/15X, 24H 1 ARITHMETIC IF STATEMENT/2X,18HASA REF. - 7.1.2.2/2X,7HRESULTS) C***** HEADER FOR SEGMENT 301 WRITTEN MCA1I(1) = 5 MCAVI = 0 MCBVI = 21 JACVI = -0 CMA1S(1) = 10.5 CMAVS = -0.0 CMBVS = -15.E0 C***** TEST FOR SIGN OF ZERO - TYPE INTEGER 4.2/11 DO 8335 IVI = 1,9 8335 L1I(IVI) = 0 MVI = 1 KVI = 0 JVI = -0 BVS = -0.0 NVI = 1 WRITE (NUVI, 8300) IF (-0) 8311, 8314, 8317 8320 IF (0) 8312, 8315, 8318 8321 IF (+0) 8313, 8316, 8319 8322 NVI = 10 IF (JVI + (-0)) 8311, 8314, 8317 8323 IF (-IABS(JVI)) 8312, 8315, 8318 8324 IF (-JVI + (+0)) 8313, 8316, 8319 8325 WRITE (NUVI, 8303)(L1I(IVI), IVI = 1,9) C***** TEST FOR SIGN OF ZERO - TYPE REAL MVI = 2 KVI = 0 NVI = 1 DO 8336 IVI = 1,9 8336 L1I(IVI) = 0 WRITE (NUVI, 8304) IF (-0.0) 8311, 8314, 8317 8326 IF (0.0) 8312, 8315, 8318 8327 IF (+0.0) 8313, 8316, 8319 8328 NVI = 10 IF (BVS +(-0.0)) 8311, 8314, 8317 8329 IF (-ABS(BVS)) 8312, 8315, 8318 8330 IF (-BVS + (+0.0)) 8313, 8316, 8319 8331 WRITE (NUVI, 8303) (L1I(IVI), IVI = 1,9) WRITE (NUVI, 8337) GO TO 8305 C***** SWITCH FOR INTEGER AND REAL TESTS 8332 KVI = KVI + 1 GO TO (8333, 8334) , MVI C***** RETURNS FOR TEST SIGN OF INTEGER ZERO 8333 GO TO (8320, 8321, 8322, 8323, 8324, 8325), KVI C***** RETURNS FOR TEST SIGN OF REAL ZERO 8334 GO TO (8326, 8327, 8328, 8329, 8330, 8331), KVI C***** TALLY RESULTS OF CONTROL TRANSFERS 8311 L1I(1) = L1I(1) + NVI GO TO 8332 8312 L1I(2) = L1I(2) + NVI GO TO 8332 8313 L1I(3) = L1I(3) + NVI GO TO 8332 8314 L1I(4) = L1I(4) + NVI GO TO 8332 8315 L1I(5) = L1I(5) + NVI GO TO 8332 8316 L1I(6) = L1I(6) + NVI GO TO 8332 8317 L1I(7) = L1I(7) + NVI GO TO 8332 8318 L1I(8) = L1I(8) + NVI GO TO 8332 8319 L1I(9) = L1I(9) + NVI GO TO 8332 8300 FORMAT(/ 38H TEST FOR SIGN OF ZERO - TYPE INTEGER// 29H PATH * F 1ORM OF EXPRESSION */ 29H OF IF * -0 * 0 * +0 * ) 8303 FORMAT( 1H ,7(4H****)/ 1H ,4(6X,1H*)/ 8H NEG. *,3(I4,3H *)/1H ,4 1(6X,1H*)/8H ZERO *,3(I4,3H *)/1H ,4(6X,1H*)/8H POS. *,3(I4, 23H *)/1H , 4(6X,1H*)/1H ) 8304 FORMAT(//35H TEST FOR SIGN OF ZERO - TYPE REAL // 29H PATH * FO 1RM OF EXPRESSION */ 29H OF IF * -0.0 * 0.0 * +0.0 * ) 8337 FORMAT(/34H ALL ENTRIES SHOULD BE 0 EXCEPT /36H THE ZERO PATH, 1 WHICH SHOULD BE 11 /33H IN EACH COLUMN. OTHER TESTS MAY / 31H 2 FAIL IF THESE RESULTS DIFFER.///37H TEST EXPRESSIONS IN IF ST 3ATEMENTS /1H ) C***** ARITHMETIC IF WITH EXPRESSIONS OF TYPE INTEGER C***** TEST 1 - SHOULD TAKE ZERO BRANCH 8305 IF (MCA1I(1) - 5) 9981,3011,9981 C***** TEST 2 - SHOULD TAKE ZERO BRANCH 3011 IF (MCA1I(1) + 5 - IFIX(CMA1S(1))) 9982,3012,9982 C***** TEST 3 - SHOULD TAKE MINUS BRANCH 3012 IF ((MCBVI * 2 / 7) - IABS(IFIX(10.5 - 10.4)) - 7) 3013,9983,9983 C***** TEST 4 - SHOULD TAKE PLUS BRANCH 3013 IF ((MCA1I(1) - 4) ** 99 /(MCBVI - 4 * MCA1I(1))) 9984,9984,3014 C***** ARITHMETIC IF WITH EXPRESSION OF TYPE REAL C***** TEST 5 - SHOULD TAKE ZERO BRANCH 3014 IF (CMA1S(1) - 10.5) 9985,3015,9985 C***** TEST 6 - SHOULD TAKE MINUS BRANCH 3015 IF (CMA1S(1) * 2.0 -(FLOAT(MCBVI) **1) - 1.0) 3016,9986,9986 C***** TEST 7 - SHOULD TAKE PLUS BRANCH 3016 IF (CMBVS * (-2.0) ** (MCBVI - 4 * MCA1I(1)) - 29.0)9987,9987,3017 C***** TEST 8 - SHOULD TAKE ZERO BRANCH 3017 IF (MCAVI) 9988,3018,9980 3018 WRITE (NUVI,3019) GO TO 9980 3019 FORMAT ( 18H TESTS SUCCESSFUL ) 9981 MCAVI = 1 IF (IABS(MCA1I(1) - 5)) 8301,8302,8301 8301 WRITE (NUVI,9989) MCAVI GO TO 3011 8302 WRITE (NUVI,8306) MCAVI 8306 FORMAT (//2X,14HERROR IN TEST ,I2,23H BECAUSE MINUS ZERO WAS/ 1 30H TREATED AS A NEGATIVE NUMBER) GO TO 3011 9982 MCAVI = 2 IF (IABS(MCA1I(1) + 5 - IFIX(CMA1S(1)))) 8307,8308,8307 8307 WRITE (NUVI,9989) MCAVI GO TO 3012 8308 WRITE (NUVI,8306) MCAVI GO TO 3012 9983 MCAVI = 3 WRITE (NUVI,9989) MCAVI GO TO 3013 9984 MCAVI = 4 WRITE (NUVI,9989) MCAVI GO TO 3014 9985 MCAVI = 5 IF (ABS(CMA1S(1) - 10.5)) 8309,8310,8309 8309 WRITE (NUVI,9989) MCAVI GO TO 3015 8310 WRITE (NUVI,8306) MCAVI GO TO 3015 9986 MCAVI = 6 WRITE (NUVI,9989) MCAVI GO TO 3016 9987 MCAVI = 7 WRITE (NUVI,9989) MCAVI GO TO 3017 9988 MCAVI = 8 WRITE (NUVI,9989) MCAVI 9989 FORMAT ( 6H TEST,I2,7H FAILED) 9980 CONTINUE C***** END OF TEST SEGMENT 301 C***** WHEN EXECUTING ONLY SEGMENT 301, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** FARIF - (302) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TEST OF FULL FORTRAN ARITHMETIC IF STATEMENT 7.1.2.2 C***** GENERAL COMMENTS C***** INTRINSIC FUNCTIONS ASSUMED WORKING C***** C***** S P E C I F I C A T I O N S SEGMENT 302 C***** C***** WHEN EXECUTING ONLY SEGMENT 302, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION MCA1I(5),AC2S(5,6) C= DOUBLE PRECISION MCAVD,MCBVD C= COMPLEX CHAVC C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 302, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,3020) 3020 FORMAT (1H1,1X,26HFARIF - (302) FULL FORTRAN/ 16X,24HARITHMETIC I 1F STATEMENTS/ 220H ASA REF. - 7.1.2.2/2X,7HRESULTS) C***** HEADER FOR SEGMENT 302 WRITTEN MCA1I(1) = 5 MCAVI = 0 AC2S(1,1) = 10.5 MCAVD = -15.0D0 CHAVC = (1.0,2.0) MCBVD = -0.0D0 C***** ARITHMETIC IF WITH EXPRESSION OF TYPE DOUBLE PRECISION C***** TEST THAT MINUS ZERO IS TREATED AS ZERO 4.2/11 IF (MCBVD) 9301,9303,9301 9301 WRITE (NUVI,9302) 9302 FORMAT (//2X,37HERROR, MINUS ZERO TREATED AS NEGATIVE/ 1 36H NUMBER - OTHER TESTS MAY FAIL AS A/ 2 8H RESULT) MCAVI = 0 C***** TEST 1 - SHOULD TAKE ZERO BRANCH 9303 IF (MCAVD + 15.0D0) 3028,3021,3028 C***** TEST 2 - SHOULD TAKE MINUS BRANCH 3021 IF (MCAVD / DBLE(FLOAT(MCA1I(1))) * 2.D0) 3022,3029,3029 C***** TEST 3 - SHOULD TAKE MINUS BRANCH 3022 IF (MCAVD/(-15.0D0) + 6.0D0 - 2.0D0 ** 3) 3023,9971,9971 C***** TEST 4 - SHOULD TAKE PLUS BRANCH 3023 IF (DSIGN(1.0D0,DBLE(REAL(CHAVC)))) 9972,9972,3024 C***** TEST 5 - SHOULD TAKE ZERO BRANCH 3024 IF (2.0D0 ** 2 - 4.0D0/ 1.0D0) 9973, 3025, 9973 3025 IF (MCAVI) 9974,3026,9970 3026 WRITE (NUVI,3027) GO TO 9970 3027 FORMAT (//34H SEGMENT 302 TESTED SUCCESSFULLY.) 3028 MCAVI = 1 IF (DABS(MCAVD + 15.0D0))9304,9305,9304 9304 WRITE (NUVI,9975) MCAVI GO TO 3021 9305 WRITE (NUVI,9306) MCAVI 9306 FORMAT (//2X,14HERROR IN TEST ,I2,23H BECAUSE MINUS ZERO WAS/ 1 30H TREATED AS A NEGATIVE NUMBER) GO TO 3021 3029 MCAVI = 2 WRITE (NUVI,9975) MCAVI GO TO 3022 9971 MCAVI = 3 WRITE (NUVI,9975) MCAVI GO TO 3023 9972 MCAVI = 4 WRITE (NUVI,9975) MCAVI GO TO 3024 9973 MCAVI = 5 IF (DABS(2.0D0 ** 2 - 4.0D0 / 1.0D0)) 9307, 9308, 9307 9307 WRITE (NUVI,9975) MCAVI GO TO 3025 9308 WRITE (NUVI,9306) MCAVI GO TO 3025 9974 MCAVI = 6 WRITE (NUVI,9975) MCAVI 9975 FORMAT (//6H TEST,I3,8H FAILED.) 9970 CONTINUE C***** END OF TEST SEGMENT 302 C***** WHEN EXECUTING ONLY SEGMENT 302, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** IOFMT - (310) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REFS C***** TO TEST ADDITIONAL FEATURES OF FORMATTED READ 7.1.3.2.2 C***** AND WRITE STATEMENTS AND FORMAT STATEMENTS 7.1.3.2.3 C***** RESTRICTIONS OBSERVED C***** * ALL FORMAT STATEMENTS ARE LABELED 7.2.3 /57 C***** * H AND X DESCRIPTORS ARE NEVER REPEATED 7.2.3.3/54 C***** * FOR W.D DESCRIPTORS, D IS ALWAYS SPECIFIED AND 7.2.3.1/31 C***** W IS EQUAL TO OR GREATER THAN D 7.2.3.1/33 C***** * FIELD WIDTH IS NEVER ZERO 7.2.3 /18 C***** * IF THERE IS AN I/O LIST, THE FORMAT STATEMENT 7.2.3.4/22 C***** CONTAINS AT LEAST ONE FIELD DESCRIPTOR (OTHER C***** THAN H OR X) C***** * ITEMS IN I/O LIST CORRESPOND TO FORMAT DESCRIPTORS 7.2.3.4/36 C***** * NEGATIVE OUTPUT VALUES ARE SIGNED 7.2.3.6/56 C***** * FIELD WIDTH NEVER EXCEEDED BY OUTPUT 7.2.3.6/01 C***** * FOR I CONVERSION, EXTERNAL INPUT FIELDS ARE 7.2.3.6.1/07 C***** INTEGER CONSTANTS C INPUT DATA TO THIS SEGMENT CONSISTS OF 38 CARD IMAGES IN COL. 1 - 80 C COLS. 22 25 31 34-35 40-43 55 67 69 74-76 CARD 1 . . . 0. E+00 + + . E00 C COLS. 16 31 33 42-45 50 59-60 CARD 2 + + . D+00 . D0 C COLS. 1-----------14 18-----26 28-------38 42-------------58 CARD 3 1.23456987654. +1.234E-0 -98.7654E+0 + 2345.67891011+2 C COLS. 69-----78 CARD 3 -.109876-4 C COLS 1---5 CARDS 4,5,6,7,8 12345 C COLS. 1-3 CARDS 9,10,11,12 1.1 C COLS. 1------------------------------------------------------58 CARD 13 +0.339567E+02 CARD 14 + .339567+2 CARD 15 + 3.395670E1 CARD 16 0.96295134244D+04 CARD 17 .96295134244D04 CARD 18 0.96295134244+4 CARD 19 0.96295134244D+04 CARD 20 31.23+0.14E+04+0.2D+02 CARD 21 31.23 .14E+04 +.2+2 CARD 22 -0.13579E+054444 CARD 23 4444 CARD 24 4444 CARD 25 4444 CARD 26 4444 CARD 27 -333 5.555+0.4545E-04 CARD 28 -6.666 .9989E+12 CARD 29 7.77-0.747E-02 +0.549E022 CARD 30 +0.662E-00 0.468-1011 CARD 31 0.59542D+04-44.6666-0.1234567890D-03 CARD 32 54.9327-0.1395624534D+00 CARD 33 65432.1 CARD 34 +0.848E+03 .848E3 + .1290D7+0.129D+07 0.412D21 CARD 35 22222222222222222222222222222222222222222222222222 CARD 36 -.987E0-0.987E+00 +0.6D0 + 0.6D+00 .368D-5 CARD 37 5 5 5 5 CARD 38 987654 8647.86 987.654 CARD COLS. NOT MENTIONED ARE BLANK C***** C***** READ AND WRITE STATEMENTS FOR ENTIRE SEGMENT FOLLOW C***** C***** TEST THAT COMPLETELY BLANK FIELDS IN THE INPUT 7.2.3.6/45 C***** ARE TREATED AS ZEROS. (ALL VARIABLES AND ARRAY C***** ELEMENTS USED IN THIS TEST ARE FIRST SET TO C***** NON-ZERO VALUES. I, E, F AND D DESCRIPTORS C***** APPEAR IN THE CORRESPONDING FORMAT STATEMENT C***** C***** S P E C I F I C A T I O N S SEGMENT 310 C***** C***** WHEN EXECUTING ONLY SEGMENT 310, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION A1S(5),A2S(2,2),A3S(3,3,3),EP1S(33) C= DIMENSION IAC1I(5),IAC2I(2,7),AC1S(25),AC2S(5,6) C= INTEGER MCA3I(2,3,3) C= REAL MVS C= DOUBLE PRECISION MCAVD,MCBVD,MCCVD,A1D(4),A2D(2,2),A3D(2,2,2) C= DOUBLE PRECISION DPAVD,DPBVD,DPCVD,DPDVD,DPEVD,DPFVD,DPHVD,AAAVD C***** C***** I N P U T - O U T P U T TAPE ASSIGNMENT STATEMENTS C***** C***** WHEN EXECUTING ONLY SEGMENT 310, THE FOLLOWING STATEMENTS C***** NUVI = 6 , IRVI = 5 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C= NUVI = 6 C= IRVI = 5 C***** C***** HEADER FORMAT STATEMENT 3100 FORMAT (1H1,1X,38HIOFMT - (310) ADDITIONAL FORMATTED I/O 1 //2X,38HASA REFS - 7.1.3.2.2 7.1.3.2.3 7.2.3//2X,7HRESULTS) WRITE (NUVI,3100) JACVI = 11111 IAC1I(1) = -2345 IAC2I(1,1) = 99999 MCA3I(1,1,1) = 2 ACVS = 1.2 BCVS = -.34E-3 A1S(1) = 34.56 A1S(2) = 456.789E+02 A2S(1,1) = -7899.3 A2S(2,1) = +9876.543E-01 A3S(1,1,1) = .543 A3S(2,1,1) = 4.33E+1 AAAVD = +2.22D+01 A1D(1) = -.33456D-01 A2D(1,1) = 9987.76D+2 A3D(1,1,1) = 44.D-2 C***** FORMATS TO TEST THAT BLANK INPUT FIELDS ARE 7.2.3.6/45 C***** TREATED AS ZEROS. I, E, F AND D FIELDS ARE TESTED C***** CARDS 1 AND 2 3101 FORMAT (4(I5), 4(F3.1), 4(E11.4)/ 4(D15.8)) READ (IRVI,3101) JACVI, IAC1I(1), IAC2I(1,1), MCA3I(1,1,1), ACVS, 1 A1S(1), A2S(1,1), A3S(1,1,1), BCVS, A1S(2), A2S(2,1), 2 A3S(2,1,1), AAAVD, A1D(1), A2D(1,1), A3D(1,1,1) 3102 FORMAT ( /2X,16HTEST BLANK INPUT/2X,26HEACH ANSWER SHOULD BE ZERO, 1 4(/I6) / 4(/F8.1) / 4(/E12.1) / 4(/D12.1)) WRITE (NUVI,3102) JACVI, IAC1I(1), IAC2I(1,1), MCA3I(1,1,1), ACVS, 1 A1S(1), A2S(1,1), A3S(1,1,1), BCVS, A1S(2), A2S(2,1), 2 A3S(2,1,1), AAAVD, A1D(1), A2D(1,1), A3D(1,1,1) C***** TEST THAT DECIMAL POINTS APPEARING IN INPUT FIELDS 7.2.3.6/47 C***** OVERRIDE THE SPECIFICATIONS SUPPLIED BY E, F AND C***** D FIELD DESCRIPTORS 3103 FORMAT (/34H TEST DEC. PT. SPECIFIED BY INPUT/ 36H 3 LINES IN EA 1CH GROUP SHOULD MATCH / 26H * LINE IS HOLLERITH DATA ) WRITE (NUVI,3103) CMAVS = 1.23456 CMBVS = 987654. CMEVS = 0.1234E+01 CMFVS = -0.987654E+02 DPAVD = 0.234567891011D+06 DPBVD = -0.109876D-04 C***** CARD 3 3104 FORMAT (2(F7.3), 2(E12.5), 2(D20.11)) READ (IRVI,3104) ACVS, BCVS, FFCVS, GGCVS, MCAVD, MCBVD 3105 FORMAT (/12H * 1.23456,2(/F12.5)//13H * 987654.0,2(/F13.1) / 1 /15H * 0.1234E+01,2(/E15.4)//17H * -0.987654E+02,2(/E17.6) / 2 /23H * 0.234567891011D+06, 2(/D23.12)//17H * -0.109876D-04, 3 2(/D17.6) ) WRITE (NUVI,3105) CMAVS, ACVS, CMBVS, BCVS, CMEVS, FFCVS, CMFVS, 1 GGCVS, DPAVD, MCAVD, DPBVD, MCBVD C***** TEST SIMPLE REPETITION OF FORMAT DESCRIPTORS 7.2.3.4/ C***** WHEN ADDITIONAL ITEMS REMAIN IN AN I/O LIST 7.1.3.2.1/ C***** AND THE LAST RIGHT PARENTHESIS HAS BEEN REACHED C***** IN THE CORRESPONDING FORMAT STATEMENT 3106 FORMAT ( 35H1 TEST FORMAT DESCRIPTOR REPETITION/ 32H ALL LINES 1IN EACH GROUP SHOULD/ 14H BE IDENTICAL) WRITE (NUVI,3106) JACVI = +12345 KBCVI = 3 CMAVS = 1.1 CMBVS = 1.23 CMEVS = 33.9567 CMGVS = 1.4E+03 DPAVD = 962951342.44D-5 DPBVD = 2.0D1 C***** CARDS 4, 5, 6, 7, 8 3107 FORMAT (I5) READ (IRVI,3107) IAC1I C***** CARDS 9, 10, 11, 12 3108 FORMAT (F3.1) READ (IRVI,3108) A2S C***** CARDS 13, 14, 15 9320 FORMAT (E13.6) READ (IRVI,9320) A1S(1), HHCVS, A1S(2) C***** CARDS 16, 17, 18, 19 9321 FORMAT (D18.11) READ (IRVI,9321) A2D C***** CARDS 20, 21 9322 FORMAT (I1,F4.2,E9.2,D8.1) READ (IRVI,9322) LCCVI, DCVS, AC2S(5,6), A3D(1,2,2), MDCVI, FFCVS, 1 GGCVS, AAAVD 9323 FORMAT ( /10H * 12345) WRITE (NUVI,9323) 9324 FORMAT (I10) WRITE (NUVI,9324) JACVI, IAC1I 9325 FORMAT (/ 8H * 1.1) WRITE (NUVI,9325) 9326 FORMAT (F8.1) WRITE (NUVI,9326) CMAVS, A2S 9329 FORMAT (/17H * 0.339567E+02) WRITE (NUVI,9329) 9330 FORMAT (E17.6) WRITE (NUVI,9330) CMEVS, A1S(1), HHCVS, A1S(2) 9331 FORMAT (/22H * 0.96295134244D+04) WRITE (NUVI,9331) 9332 FORMAT (D22.11) WRITE (NUVI,9332) DPAVD, A2D 9333 FORMAT (/31H * 3 1.23 0.14E+04 0.2D+02) WRITE (NUVI,9333) 9334 FORMAT (I6,F6.2,E10.2,D9.1) WRITE (NUVI,9334) KBCVI, CMBVS, CMGVS, DPBVD, LCCVI, DCVS, 1 AC2S(5,6), A3D(1,2,2), MDCVI, FFCVS, GGCVS, AAAVD C***** TEST THAT FORMAT CONTROL PASSES TO THE GROUP 7.2.3.4/03 C***** ENCLOSED BY THE LAST PRECEDING RIGHT PAREN. 7.1.3.2.1/39 C***** WHEN THE I/O LIST CONTAINS MORE ELEMENTS THAN C***** THE NUMBER OF DESCRIPTORS IN THE FORMAT STMNT. JACVI = +4444 KBCVI = -333 LCCVI = 22 MDCVI = 11 ACVS = 5.555 BCVS = -6.666 CCVS = +7.77 DCVS = 65432.1 CMAVS = -0.13579E+5 CMBVS = 0.4545E-04 CMCVS = 0.9989E12 CMDVS = -0.747E-2 CMEVS = +0.549E+00 CMFVS = 0.662E-0 CMGVS = 0.468E-10 DPAVD = +59.542D02 DPBVD = -0.0123456789D-2 DPCVD = -1395624534.D-10 DPDVD = +129.D4 DPEVD = 4.12D+20 DPFVD = 36.8D-7 DPHVD = 0.6D00 FFCVS = -44.6666 GGCVS = +.549327E+2 HHCVS = 848. MVS = -.987 CMHVS = 1.23E-1 CMIVS = 646.E-2 C***** CARDS 22, 23, 24, 25, 26 9335 FORMAT ( E12.5, (I4)) READ (IRVI,9335) A1S(2), IAC1I C***** CARDS 27, 28 9336 FORMAT (I4, (F6.3), E11.4) READ (IRVI,9336) MRRVI, AC1S(1), EP1S(1), A3S(1,1,1), AC2S(2,2) C***** CARDS 29, 30 9337 FORMAT (F4.2, (2(E10.3)), I2) READ (IRVI,9337) A2S(2,2), A3S(2,1,1), EP1S(2), MCA3I(1,1,1), 1 BVS, AC2S(2,1), NECVI C***** CARDS 31, 32 9338 FORMAT (D12.5, (F8.4, D17.10)) READ (IRVI,9338) MCAVD, EP1S(3), A1D(1), A2S(1,2), A2D(2,1) C***** CARDS 33, 34, 35, 36 C***** THIS READ CAUSES AN INPUT DATA CARD TO BE SKIPPED 9339 FORMAT( F7.1, (/2(E10.3), 2(D10.3)), D10.3) READ (IRVI,9339) CVS, A2S(2,1), A3S(1,2,2), A3D(1,1,1), 1 A3D(1,2,1), A2D(2,2), A3S(1,2,1), EP1S(4), 2 A1D(2), MCBVD, MCCVD 9340 FORMAT (/16H * -0.13579E+05,2(/E16.5)//9H * 4444,6(/I9)) WRITE (NUVI,9340) CMAVS, A1S(2), JACVI, IAC1I 9341 FORMAT (/ 8H * -333, 2(/I8)/ 10H1 * 5.555, 2(/F10.3) // 115H * 0.4545E-04, 2(/E15.4)// 10H * -6.666, 2(/F10.3) // 215H * 0.9989E+12, 2(/E15.4)) WRITE (NUVI,9341) KBCVI, MRRVI, ACVS, AC1S(1), CMBVS, EP1S(1), 1 BCVS, A3S(1,1,1), CMCVS, AC2S(2,2) 9342 FORMAT (/9H * 7.77 ,2(/F9.2)//14H * -0.747E-02, 2(/E14.3) // 1 14H * 0.549E+00, 2(/E14.3) //7H * 22, 2(/I7) // 2 14H * 0.662E+00, 2(/E14.3) //14H * 0.468E-10, 2(/E14.3) // 3 7H * 11, 2(/I7) ) WRITE (NUVI,9342) CCVS, A2S(2,2), CMDVS, A3S(2,1,1), CMEVS, 1 EP1S(2), LCCVI, MCA3I(1,1,1), CMFVS, BVS, CMGVS, AC2S(2,1), 2 MDCVI, NECVI 9343 FORMAT (/16H * 0.59542D+04,2(/D16.5)//12H * -44.6666,2(/F12.4)/ 1/21H * -0.1234567890D-03,2(/D21.10)/12H1 * 54.9327,2(/F12.4)// 2 21H * -0.1395624534D+00,2(/D21.10) ) WRITE (NUVI,9343) DPAVD, MCAVD, FFCVS, EP1S(3), DPBVD, A1D(1), 1 GGCVS, A2S(1,2), DPCVD, A2D(2,1) 9344 FORMAT (/12H * 65432.1/ 2(F12.1/) / 14H * 0.848E+03/ 1 3(E14.3/) / 14H * 0.129D+07/ 3(D14.3/) / 14H * 0.412D+21/ 2 2(D14.3/) / 14H * -0.987E+00/ 3(E14.3/) / 12H * 0.6D+00/ 3 3(D12.1/) / 14H * 0.368D-05, 2(/D14.3) ) WRITE (NUVI,9344) DCVS, CVS, HHCVS, A2S(2,1), A3S(1,2,2), DPDVD, 1 A3D(1,1,1), A3D(1,2,1), DPEVD, A2D(2,2), 2 MVS, A3S(1,2,1), EP1S(4), DPHVD, A1D(2), MCBVD, 3 DPFVD, MCCVD 9345 FORMAT (/14H * 0.777E+01/ (E14.3)) WRITE (NUVI,9345) CCVS, A2S(2,2) 9346 FORMAT (/ 22H * -333 0.59542D+04/I8, D14.5 ) WRITE (NUVI,9346) KBCVI, DPAVD, MRRVI, MCAVD 9347 IF (MRRVI - 5) 9348, 9349, 9348 C***** CARD 37 9348 READ (IRVI, 9336) MRRVI GO TO 9347 C***** * ADDITIONAL SCALE FACTOR ON INPUT-OUTPUT C***** CARD 38 9349 READ(IRVI, 9327) A1S(3), A1S(4), A1D(4) 9327 FORMAT ( 1PE10.3, -1PE10.2, D10.3) WRITE(NUVI, 9328) A1S(3), A1S(4), A1D(4) 9328 FORMAT(//22H1 SCALE FACTOR ON READ/ 31H IN ORDER OF FORMAT OCCURR 2ENCE/28H NO EXPONENT ON INPUT DATA // 3 40H CARD 987654 8647.86 987.654/ 4 40H DESC 1PE10.3 -1PE10.2 D10.3/ 5 40H TO BE .988E+02 .8648E+05 .9877D+04/ 6 4H IS, E12.3, E12.4, D12.4) C***** END OF TEST SEGMENT 310 C***** WHEN EXECUTING ONLY SEGMENT 310, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** RDFMT - (312) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REFS C***** TO TEST FORMATTED READ AND WRITE STATEMENTS 7.2.3.10 C***** IN WHICH THE FORMAT STATEMENT IS CONTAINED IN C***** AN ARRAY C***** RESTRICTIONS OBSERVED C***** * AN H DESCRIPTOR MAY NOT BE PART OF A FORMAT 7.2.3.10/48 C***** STATEMENT IN AN ARRAY C***** * ALL FORMAT STATEMENTS ARE LABELED 7.2.3 /57 C***** * H AND X DESCRIPTORS ARE NEVER REPEATED 7.2.3.3/54 C***** * FOR W.D DESCRIPTORS, D IS ALWAYS SPECIFIED AND 7.2.3.1/31 C***** W IS EQUAL TO OR GREATER THAN D 7.2.3.1/33 C***** * FIELD WIDTH IS NEVER ZERO 7.2.3 /18 C***** * IF THERE IS AN I/O LIST, THE FORMAT STATEMENT 7.2.3.4/22 C***** CONTAINS AT LEAST ONE FIELD DESCRIPTOR (OTHER C***** THAN H OR X) C***** * ITEMS IN I/O LIST CORRESPOND TO FORMAT DESCRIPTORS 7.2.3.4/36 C***** * NEGATIVE OUTPUT VALUES ARE SIGNED 7.2.3.6/56 C***** * FIELD WIDTH NEVER EXCEEDED BY OUTPUT 7.2.3.6/01 C***** * FOR I CONVERSION, EXTERNAL INPUT FIELDS ARE 7.2.3.6.1/07 C***** INTEGER CONSTANTS C***** TEST HOLLERITH IN ARGUMENT OF A CALL C***** ARRAY NAME IN ARGUMENT LIST USED AS FORMAT SPECIFIER C***** SUBROUTINE FMTQ ALSO TESTS THE EMPTY FORMAT STATEMENT C***** THE FOLLOWING DATA STATEMENTS INITIALIZE SOME 7.2.3.10/50 C***** ARRAYS WITH FORMAT STATEMENTS TO BE USED FOR C***** READING WITH A, F AND D CONVERSION AND FOR C***** WRITING WITH I, E AND L CONVERSION C***** C INPUT DATA TO THIS SEG. CONSISTS OF 13 CARD IMAGES IN COLS. 1 - 80 C COLS. 1-----------------------------------------------50 CARD 1 (I5,6X, I4, 2(I3), I2) CARD 2 (E 9.2,3(E13.6)) CARD 3 ( L1 ,2(L2),L3) CARD 4 (2X,A2,5(A2)) CARD 5 (2X,F5.3, F4.0, 2(F7.2)) CARD 6 (2X , D 16.9,D9.2) CARD 7 84756 -867224+39-6 CARD 8 23498.-77.27547.18 CARD 9 -.0076+11+08.93421E-13 893.421E-15+08.93421E-13 CARD 10 -0.357901246D+00 +0.52D-2 CARD 11 TTA FF9$ CARD 12 AB CARD 13 CDE+*=123 CARD COLS. NOT MENTIONED ARE BLANK C***** C***** S P E C I F I C A T I O N S SEGMENT 312 C***** C***** WHEN EXECUTING ONLY SEGMENT 312, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION L1I(10),A3S(3,3,3),YER1S(7),IAC1I(5),AC1S(25) C= DIMENSION ZU3S(3,2,2),ZT1S(4),ZU1S(12),ZU2S(4,2),IAC2I(2,7) C= INTEGER AVI,IU2I(4,2),IT3I(4,2,2),IU3I(2,3,3),MCA3I(2,3,3) C= LOGICAL AVB,BVB,CVB,GG1B(2),A1B(2) C= DOUBLE PRECISION DPAVD,DPBVD,DPCVD,A1D(4) C= COMPLEX CHAVC,CHBVC C***** C***** I N P U T - O U T P U T TAPE ASSIGNMENT STATEMENTS C***** C***** WHEN EXECUTING ONLY SEGMENT 312, THE FOLLOWING STATEMENTS C***** NUVI=6 AND IRVI=5 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C= IRVI = 5 C***** C***** THE FOLLOWING READ STATEMENTS INITIALIZE SOME 7.2.3.10/51 C***** ARRAYS WITH FORMAT STATEMENTS TO BE USED FOR C***** READING WITH I, E AND L CONVERSIONS AND FOR C***** WRITING WITH A, F AND D CONVERSIONS C***** WRITE (NUVI,3120) C***** CARD 1 READ (IRVI,3121) AC1S(1), AC1S(2), AC1S(3), AC1S(4), AC1S(5), 1 AC1S(6),AC1S(7),AC1S(8),AC1S(9),AC1S(10),AC1S(11),AC1S(12) C***** CARD 2 READ (IRVI,3122) L1I C***** CARD 3 READ (IRVI,3121) A3S C***** CARD 4 READ (IRVI,3123) YER1S C***** CARD 5 READ (IRVI,3124) MCA3I C***** CARD 6 READ (IRVI,3124) IAC2I C***** C***** C***** THE FOLLOWING STATEMENTS MAKE USE OF THE FORMATS C***** CONTAINED IN THE ARRAYS C***** C***** READ AND WRITE WITH I CONVERSION USING FORMATS IN ARRAYS JACVI = 84756 KBCVI = -867 LCCVI = 224 MDCVI = +39 NECVI = -6 C***** CARD 7 WITH CARD 1 AS FORMAT READ (IRVI,AC1S) AVI, MRRVI, IAC1I(1), IAC1I(2), IAC1I(3) WRITE (NUVI,3125) WRITE(NUVI,IT3I)JACVI, KBCVI, LCCVI, MDCVI, NECVI, AVI, MRRVI, 1 IAC1I(1), IAC1I(2), IAC1I(3) C***** READ AND WRITE WITH F CONVERSION USING FORMATS IN ARRAYS AVS = .234 BVS = 98. CHAVC = (-77.27,+547.18E0) C***** CARD 8 FORMAT IS (F3.3,F3.0,2(F6.2)) READ (IRVI,ZU1S) CVS, DVS, CHBVC WRITE (NUVI,3127) WRITE (NUVI,MCA3I) AVS, BVS, CHAVC WRITE (NUVI,MCA3I) CVS, DVS, CHBVC C***** READ AND WRITE WITH E CONVERSION USING FORMATS IN ARRAYS AVS = -0.76E+9 BVS = +08.93421E-13 C***** CARD 9 WITH CARD 2 AS FORMAT READ (IRVI,L1I) ZU3S(2,2,2),CVS,DVS,ZU3S(1,2,2) WRITE (NUVI,3128) WRITE(NUVI,ZT1S) AVS, ZU3S(2,2,2) WRITE (NUVI,3129) WRITE (NUVI, ZU3S) BVS,ZU3S(1,2,2),CVS, DVS C***** READ AND WRITE WITH D CONVERSION USING FORMATS IN ARRAYS DPAVD = -0.357901246D+00 DPBVD = +.00052D+1 C***** CARD 10 FORMAT IS (D16.9,D9.2) READ (IRVI,IU3I) A1D(1), DPCVD WRITE (NUVI,9930) WRITE (NUVI,IAC2I) DPAVD,DPBVD,A1D(1),DPCVD C***** READ AND WRITE WITH L CONVERSION USING FORMATS IN ARRAYS AVB = .TRUE. BVB = .FALSE. C***** CARD 11 WITH CARD 3 AS FORMAT READ (IRVI,A3S) A1B(1), A1B(2), CVB, GG1B(2) WRITE (NUVI,9931) WRITE (NUVI, ZU2S) AVB, AVB, BVB, BVB WRITE (NUVI,ZU2S) A1B(1), A1B(2), CVB, GG1B(2) C***** READ AND WRITE WITH A CONVERSION USING FORMATS IN ARRAYS C***** CARDS 12 AND 13 FORMAT IS (A2/2X,5(A2)) READ (IRVI,IU2I) JACVI, AVS, IAC1I(1), GG1B, BVB WRITE (NUVI,3126) WRITE (NUVI,YER1S) JACVI, AVS, IAC1I(1), GG1B, BVB C***** CALL FMTQ (NUVI,ZT1S,0.9999,2HH0,2HLL,2HER,2HIT,2HH ,2HCO,2HNS, 1 2HTA,2HNT,2HS ,2HAS,2H C,2HAL,2HL ,2HAR,2HGU,2HME,2HNT,1HS) C***** C***** ADDITIONAL FORMAT STATEMENTS REQUIRED BY THIS SEGMENT C***** C***** THE FOLLOWING FORMAT STATEMENTS ARE USED TO 7.2.3.10/51 C***** READ FORMATS INTO ARRAYS 3121 FORMAT (27(A2)) 3122 FORMAT (10(A2)) 3123 FORMAT ( 7(A2)) 3124 FORMAT (18(A2)) C***** THE FOLLOWING ARRAYS ARE USED TO WRITE OUT ALL 7.2.3.10/48 C***** HOLLERITH INFORMATION, SINCE H FIELD DESCRIPTORS C***** MAY NOT BE PART OF A FORMAT WITHIN AN ARRAY 3120 FORMAT (1H1,1X,31HRDFMT - (312) FORMATS IN ARRAYS// 1 22H ASA REFS. - 7.2.3.10//34H EACH GROUP OF LINES SHOULD MATCH) 3125 FORMAT (/ 22H 84756 -867 224 39 -6) 3126 FORMAT (/ 13H ABCDE+*=123) 3127 FORMAT (/ 25H 0.234 98. -77.27 547.18) 3128 FORMAT (/11H -0.76E+09) 3129 FORMAT (/14H 0.893421E-12) 9930 FORMAT (/ 27H -0.357901246D+00 0.52D-02) 9931 FORMAT (/ 10H T T F F) C***** END OF TEST SEGMENT 312 C***** WHEN EXECUTING ONLY SEGMENT 312, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END STOP END C*********************************************************************** C***** C***** SMCQ - (411) C***** C*********************************************************************** C***** GENERAL PURPOSE C***** TO DEFINE SUBROUTINE SMCQ WHICH IS USED IN SEGMENT 300 SUBROUTINE SMCQ(MWVI) MWVI = MWVI + 5 RETURN C***** END OF TEST SEGMENT 411 END C*********************************************************************** C***** C***** FMTQ - (462) C***** C*********************************************************************** C***** GENERAL PURPOSE C***** TO DEFINE SUBROUTINE FMTQ WHICH IS USED IN SEGMENT 312 C***** TO TEST FORMAT IN AN ARRAY PASSED AS AN ARGUMENT, AN C***** EMPTY FORMAT STATEMENT, AND C***** HOLLERITH IN A CALL ARGUMENT SUBROUTINE FMTQ(NWVI,ZTW1S,AWVS,IWVH,JWVH,KWVH,LWVH,MWVH,NWVH, 1 IIWVH,JJWVH,KKWVH,LLWVH,MMWVH,NNWVH,IJWVH,IKWVH, 2 ILWVH,IMWVH,INWVH,JIWVH,JKWVH) DIMENSION ZTW1S(4) WRITE (NWVI, 4620) 4620 FORMAT(/11H +.10E+01 ) C*****FORMAT LABELED ZTW1S PASSED AS ARGUMENT IS (E11.2) WRITE (NWVI, ZTW1S) AWVS WRITE (NWVI, 4621) 4621 FORMAT(/39H HOLLERITH CONSTANTS AS CALL ARGUMENTS ) WRITE (NWVI,4622) IWVH, JWVH,KWVH,LWVH,MWVH,NWVH,IIWVH,JJWVH, 1 KKWVH, LLWVH,MMWVH,NNWVH,IJWVH,IKWVH,ILWVH, 2 IMWVH,INWVH,JIWVH,JKWVH 4622 FORMAT(2X, 19A2) WRITE (NWVI,4623) 4623 FORMAT(//29H TEST EMPTY FORMAT STATEMENT / 136H THE FOLLOWING LINE SHOULD BE BLANK ) WRITE(NWVI,4624) 4624 FORMAT( ) WRITE(NWVI,4625) 4625 FORMAT(23H END EMPTY FORMAT TEST //22H END SEGMENT 312 TEST ) RETURN END nbs14.d 480890389 170 2 100666 285 ` SAMPLE COMPUTER, FORTRAN COMPILER LEVEL DO NOT READ OR WRITE RECORD 2. DOUBLE SPACE ON OUTPUT. ID 2 OPERATING SYSTEM VERSION DO NOT READ OR WRITE RECORD 4. DOUBLE SPACE ON OUTPUT. ID 4 DATE, INSTALLATION NAME DO NOT READ OR WRITE RECORD 6. DOUBLE SPACE ON OUTPUT. ID 6 nbs14.f 480890397 170 2 100666 21295 ` C***** PART14 **************************************************** C***** C***** ANSI FORTRAN (X3.9-1966) TEST PROGRAMS C***** C***** PREPARED BY THE NATIONAL BUREAU OF STANDARDS VERSION 3 C***** C***** JUNE 1973 C***** C***** PART 14 OF 14 PARTS C***** C***** SEGMENTS INCLUDED C***** C***** MISC5 - 350 SPECIFICATIONS FOR PROGRAM FORM C***** C***** FUNMX - 351 BASIC EXTERNAL FUNCTIONS USING TRIG FORMULAS C***** C***** NAMES - 352 NAMES RESEMBLE FORTRAN VERBS AND FUNCTION NAMES C***** C***** MAQQ - 413 SUBROUTINE CALLED FROM NAMES C***** C***** MBQQ - 463 SUBROUTINE CALLED FROM NAMES C***** C***** AMQQ - 473 SUBROUTINE CALLED FROM NAMES C***** C***** BMQQ - 483 SUBROUTINE CALLED FROM NAMES C***** C***** SPEC2 - 360 COMMON, DIMENSION, EQUIVALENCE C***** C***** THE FOLLOWING SPECIFICATIONS ARE TO BE USED ONLY WHEN SEGMENTS C***** 350, 351, 352, 360 ARE RUN AS ONE MAIN PROGRAM. C***** DIMENSION J(2), JJ(1,1), JJJ(1,1,1), JJJJ(1,1), 1 JJJJJ(1), JJJJJJ(1) DIMENSION GOTO(2,2), IF(5) DIMENSION MX1I(3), TX1S(3) DIMENSION MMY1I(400),NNY3I(20,10,2) DIMENSION MX2I(2,3), TX2S(2,2), WAZ2S(3,2), RVY1S(2), RVY2S(1,2) DIMENSION JY2I(2,2), JY1I(5), NZ1I(4), NZ2I(4,2), WAZ1S(2) COMMON MX1I, MX2I, NZ1I, NZVI, NZ2I COMMON MXVI COMMON IAXVI COMMON WAZ1S COMMON TX1S, TX2S, JBZVI, WAZ2S EQUIVALENCE (MMY1I(1),NNY3I(1,1,1)),(NZ1I(1),NNY3I(1)) EQUIVALENCE (MYVI,NZVI), (IYVI,NZ1I(1)), (NZ2I(4,1), JYVI) EQUIVALENCE (NZ2I(3), KYVI), (AAYVS,JBZVI,JY2I(1), RVY1S(2)) EQUIVALENCE (RVY2S(1,1),WAZ1S(2)) EQUIVALENCE (JY1I(3),RVY1S(2)) EQUIVALENCE (WAZ2S(1),BBYVS,CCYVS), (WAZ2S(2,1),DDYVS) C***** END OF SPECIFICATIONS FOR SEGMENTS 350, 351, 352, 360 C*********************************************************************** C***** C***** MISC5 - (350) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST SPECIFICATIONS FOR PROGRAM FORM 3.2 C***** 3.2.1 C***** 3.4 C***** 3.5 C***** GENERAL COMMENTS C***** * AMONG OTHER THINGS, THIS SEGMENT TESTS THAT COMMENTS ARE C***** NOT EXECUTED AND, AS A RESULT OF THIS TEST, THE COMPILER C***** MAY GENERATE SOME WARNING MESSAGES. C***** * BECAUSE OF THE NATURE OF THE TESTS BEING PERFORMED, SOME C***** LABELS AND NAMES DO NOT FOLLOW THE CONVENTIONS C***** SPECIFIED IN THE USERS MANUAL. C***** C***** S P E C I F I C A T I O N S SEGMENT 350 C***** C***** WHEN EXECUTING ONLY SEGMENT 350, REMOVE THE PRECEDING C***** SPECIFICATIONS. THE FOLLOWING SPECIFICATIONS, WHICH APPEAR C***** AS COMMENT CARDS MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION J(2), JJ(1,1), JJJ(1,1,1), JJJJ(1,1),JJJJJ(1), JJJJJJ(1) C***** C***** I N P U T - O U T P U T T A P E ASSIGNMENT STATEMENTS. IRVI = 5 NUVI = 6 C***** IDENTIFY THE SOURCE OF THE TEST PROGRAMS WRITE(NUVI,0071) 0071 FORMAT (41H1 F O R T R A N T E S T P R O G R A M S// 1 42H PREPARED BY NATIONAL BUREAU OF STANDARDS// 3 37H FOR USE ON LARGE FORTRAN PROCESSORS // 4 42H IN ACCORDANCE WITH ASA FORTRAN X3.9-1966// 5 23H VERSION 3 PART 14///) C***** 3 OF 6 INPUT CARDS IDENTIFY THE USERS SYSTEM AND COMPILER C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST C PREPARED BY USER C READ, NO LIST READ(IRVI,0070) READ(IRVI,0072) READ(IRVI,0073) 0070 FORMAT(40H BASED ON ASA FORTRAN X3.9-1966 /) 0072 FORMAT(40H TEST PROGRAMS /) 0073 FORMAT(40H FORTRAN COMPILER /) WRITE(NUVI,0070) WRITE(NUVI,0072) WRITE(NUVI,0073) WRITE (NUVI,3500) 3500 FORMAT (1H1,1X,32HMISC5 - (350) SPECIFICATIONS FOR/ 16X, 12HPRO 1GRAM FORM//2X,32HASA REFS. - 3.2 3.2.1 3.4 3.5// 2 2X,35HTEST THAT COMMENTS ARE NOT EXECUTED) C***** HEADER FOR SEGMENT 350 WRITTEN C***** TEST THAT COMMENTS ARE NOT EXECUTED 3.2.1/36 C*****WRITE (NUVI,3501) 3501 FORMAT (2X,34HERROR - COMMENT STATEMENT EXECUTED) C*****GO TO 3504 3502 MRRVI = 0 C*****IF (MRRVI) 3504, 3504, 3504 3503 MRRVI = 1 C*****MRRVI = -1 IF (MRRVI) 3504,3504,3505 3504 WRITE (NUVI,3501) 3505 WRITE (NUVI,3506) 3506 FORMAT (2X,35HTEST SUCCESSFUL IF NO ERROR MESSAGE) GO TO 3509 C***** TEST THAT ALL 72 CHARACTERS IN A LINE MAY BE USED 3.2/24 3509 WRITE (NUVI,8100) 8100 FORMAT(///2X,22HTEST 72 CHARACTER LINE) WRITE (NUVI,8101) 8101 0FORMAT( /2X,29H12345678910111213141516171819/2X,29H123456789101112 113141516171819) WRITE (NUVI,8102) 8102 FORMAT ( /2X,36HTEST SUCCESSFUL IF 2 LINES ABOVE ARE/2X,19HDIGITS 11 THROUGH 19) C***** TEST THAT STATEMENT LABELS MAY BE 1, 2, 3, 4 OR 5 3.4/12 C***** DIGITS LONG WRITE (NUVI,8112) 8112 FORMAT (//2X,37HTEST 1,2,3,4,5 CHARACTER STMNT. LABEL/) GO TO 1 8113 GO TO 22 8114 GO TO 333 8115 GO TO 8099 8097 GO TO 22255 1 MRRVI = 1 WRITE (NUVI,8118) MRRVI GO TO 8113 22 MRRVI = 2 WRITE (NUVI,8118) MRRVI GO TO 8114 333 MRRVI = 3 WRITE (NUVI,8118) MRRVI GO TO 8115 8099 MRRVI = 4 WRITE(NUVI, 8118) MRRVI GO TO 8097 22255 MRRVI = 5 WRITE (NUVI,8118) MRRVI 8118 FORMAT ( 2X,I1,1X,24HCHARACTER LABEL ACCEPTED) C***** TEST THAT VARIABLE AND ARRAY NAMES MAY BE 3.5/21 C***** 1, 2, 3, 4 OR 5 CHARACTERS LONG WRITE (NUVI,8098) 8098 FORMAT (//2X,36HTEST 1,2,3,4,5,6 CHARACTER VARIABLES/2X, 115HAND ARRAY NAMES) M = 1 MM = 1 MMM = 1 MMMM = 1 MMMMM = 1 MMMMMM = 1 J(1) = 1 JJ(1,1) = 1 JJJ(1,1,1) = 1 JJJJ(1,1) = 1 JJJJJ(1) = 1 JJJJJJ(1) = 1 IF (M-1) 8119, 8103, 8119 8103 IF (MM-1) 8119,8104,8119 8104 IF (MMM-1) 8119,8105,8119 8105 IF (MMMM-1) 8119, 8106,8119 8106 IF (MMMMM-1) 8119,8096,8119 8096 IF (MMMMMM-1) 8119, 8107, 8119 8107 IF (J(1)-1) 8119,8108,8119 8108 IF (JJ(1,1)-1) 8119,8109,8119 8109 IF (JJJ(1,1,1)-1) 8119,8110,8119 8110 IF (JJJJ(1,1)-1) 8119,8111,8119 8111 IF (JJJJJ(1)-1) 8119,8095,8119 8095 IF (JJJJJJ(1)-1) 8119,8121,8119 8119 WRITE (NUVI,8120) 8120 FORMAT (/ 2X,21H**TEST UNSUCCESSFUL**) GO TO 8123 8121 WRITE (NUVI,8122) 8122 FORMAT (/ 2X,38H**TEST SUCCESSFUL-ALL NAMES ACCEPTED**) C***** TEST THAT STATEMENT LABELS MAY BE PLACED 3.4/13 C***** ANYWHERE IN COLUMNS 1 TO 5 AND THAT LEADING 3.4/17 C***** ZEROS ON STATEMENT LABELS ARE NOT SIGNIFICANT 8123 WRITE (NUVI,8116) 8116 FORMAT (//2X,34HTEST PLACEMENT OF STATEMENT LABELS/2X, 1 29HAND LABELS WITH LEADING ZEROS/) MRRVI = 1 GO TO 10 2 MRRVI = 2 GO TO 010 3 MRRVI = 3 GO TO 0010 4 MRRVI = 4 GO TO 0010 5 MRRVI = 5 GO TO 0010 06 MRRVI = 6 GO TO 0010 007 MRRVI = 7 GO TO 0010 0008 MRRVI = 8 GO TO 0010 0009 MRRVI = 9 0010 WRITE (NUVI,11) MRRVI 011 FORMAT ( I10) GO TO (02,3,004,0005,6,7,8,009,8117), MRRVI 8117 WRITE (NUVI,012) 12 FORMAT (//2X,28HTEST SUCCESSFUL IF 9 NUMBERS/2X, 1 31HIN SEQUENTIAL ORDER FROM 1 TO 9/2X, 2 17HARE WRITTEN ABOVE///2X,18HEND OF SEGMENT 350) C***** END OF TEST SEGMENT 350 C***** WHEN EXECUTING ONLY SEGMENT 350, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** FUNMX - (351) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** THIS SEGMENT FURTHER TESTS SOME 8.3.3 C***** BASIC EXTERNAL FUNCTIONS BY USING TRIGONOMETRIC C***** FORMULAE C***** C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 351, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,3510) 3510 FORMAT (1H1,2X,13HFUNMX - (351)//1X,22H THIS SEGMENT FURTHER , 1 5HTESTS /21H SOME BASIC EXTERNAL, 2 10H FUNCTIONS /33H BY USING TRIGONOMETRIC FORMULAE// 319H ASA REFS. - 8.3.3//2X,7HRESULTS) C***** HEADER FOR SEGMENT 351 WRITTEN C***** TEST STATEMENTS USING ORDINARY TRIGONOMETRIC FUNCTIONS CMAVS = 1.75 CMCVS = ALOG(EXP(CMAVS)) - 1.75 CMDVS = EXP(ALOG(CMAVS)) - 1.75 CMEVS = (SIN(2.0)) ** 2 + (COS(2.0)) ** 2 - 1.0 CMFVS = (1.0/COS(1.2)) ** 2 -((SIN(1.2) / COS(1.2)) ** 2) - 1.0 WRITE (NUVI,3511) CMCVS, CMDVS, CMEVS, CMFVS CMCVS = SIN(.78) - SQRT(1. - COS(0.78) ** 2) CMDVS = COS(1.57) - SQRT(1.0 - SIN(1.57) ** 2) CMEVS = SQRT((1.0/COS(0.5236))**2-1.0)-SIN(0.5236)/COS(0.5236) CMFVS = ATAN2(SIN(0.5),COS(0.5)) - 0.5 WRITE (NUVI,3511) CMCVS, CMDVS, CMEVS, CMFVS C***** TEST STATEMENTS USING HYPERBOLIC FUNCTIONS CMAVS = EXP(1.85) CMBVS = EXP(-1.85) CMCVS = TANH(1.85) - ((CMAVS - CMBVS) / (CMAVS + CMBVS)) CMEVS = 2./(EXP(1.05) + EXP(-1.05)) - SQRT(1.0-TANH(1.05)**2) CMFVS = TANH(2.01)/ (SQRT(1.0 - TANH(2.01)**2))-.5*(EXP(2.01) - 1 EXP(-2.01)) WRITE (NUVI,3512) CMCVS, CMEVS, CMFVS WRITE (NUVI,3513) 3511 FORMAT (//4(F15.5/)) 3512 FORMAT (//3(F15.5/)) 3513 FORMAT (//39H ALL ABOVE ANSWERS SHOULD BE 0 PLUS OR / 1 40H MINUS AN ERROR FACTOR OF NOT MORE THAN / 2 12H 10 ** (-4)) C***** END OF TEST SEGMENT 351 C***** WHEN EXECUTING ONLY SEGMENT 351, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** NAMES - (352) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REF C***** TO TEST THE CAPABILITY OF COMPILERS TO IDENTIFY DATA 10.1.7/54 C***** NAMES THAT RESEMBLE FORTRAN VERBS AND/OR PREDEFINED C***** FUNCTION NAMES. C***** GENERAL COMMENTS C***** BECAUSE OF THE NATURE OF THIS TEST SEGMENT, NAMING C***** CONVENTIONS THAT EXISTED IN OTHER SEGMENTS WILL NOT C***** BE OBSERVED. C***** C***** S P E C I F I C A T I O N S SEGMENT 352 C***** C***** WHEN EXECUTING ONLY SEGMENT 352, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION GOTO(2,2), IF(5) C***** C***** O U T P UT T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 352, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** WRITE (NUVI,3520) 3520 FORMAT (1H1 ,1X,13HNAMES - (352)//2X,36HTEST OF THE COMPILERS CAPA 1BILITY OF /2X,37HIDENTIFYING DATA NAMES THAT RESEMBLE /2X, 2 32HFORTRAN VERBS AND/OR PREDEFINED /2X,15HFUNCTION NAMES // 3 22H ASA REFS. - 10.1.7/4 //2X,7HRESULTS) C***** HEADER FOR SEGMENT 352 WRITTEN INTEG = 0 REAL = 2.0 GOTO5 = REAL - 2.0 GOTO(1,2) = 10.0 - 5.0 * 2.0 DO13I = INTEG 13 DO14J = INTEG +0 14 IF(2) = 5-5 CALL = 0 STOP7 = REAL - 2.0 PAUSE = REAL / 2.0 - 1.0 READ6 = 0.0 ** 5 WRITE = 7.0 - 7.0 WRITE (NUVI,3521) GOTO5, GOTO(1,2), DO13I, DO14J, IF(2), CALL, 1 STOP7, PAUSE, READ6, WRITE 3521 FORMAT (//10(F10.5/)) C***** TEST THAT THE SAME INTRINSIC FUNCTION NAMES OF C***** A PROGRAM UNIT OF AN EXECUTABLE PROGRAM CAN BE C***** USED TO IDENTIFY SOME OTHER ENTITY IN A DIFFERENT C***** PROGRAM UNIT OF THAT EXECUTABLE PROGRAM MCAVI = IABS(-5) CALL MAQQ(MCAVI,IVI) MCCVI = IVI MCBVI = ISIGN(1,-2) CALL MBQQ(MCBVI,IVI) MCDVI = IVI CMAVS = FLOAT(5 + 7) CALL AMQQ(CMAVS,AVS) CMCVS = AVS CMBVS = ABS(-10.0 - 8.00) CALL BMQQ(CMBVS,AVS) CMDVS = AVS WRITE (NUVI,3522) MCCVI, MCDVI, CMCVS, CMDVS 3522 FORMAT (/2(I10/)//2(F10.5/)//35H ALL ABOVE ANSWERS SHOULD BE 0 FO 1R/36H THIS TEST SEGMENT TO BE SUCCESSFUL) C***** END OF TEST SEGMENT 352 C***** WHEN EXECUTING ONLY SEGMENT 352, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END C*********************************************************************** C***** C***** SPEC2 - (360) C***** C*********************************************************************** C***** GENERAL PURPOSE ASA REFS C***** * TO TEST COMMON, DIMENSION AND EQUIVALENCE 7.2.1.2 C***** STATEMENTS 7.2.1.3 C***** * TO TEST THAT VARIABLES AND ARRAYS WHICH ARE 7.2.1.4 C***** EQUATED AND/OR IN COMMON MAY BE USED IN A C***** VARIETY OF FORTRAN STATEMENTS C***** RESTRICTIONS OBSERVED C***** * NO DUMMY ARGUMENTS APPEAR IN COMMON OR EQUIVALENCE 7.2.1.4/40 C***** STATEMENTS 8.4.1.1/23 C***** * NUMBER OF SUBSCRIPTS IN EQUIVALENCE STATEMENTS C***** CORRESPONDS TO ARRAY DIMENSIONALITY OR IS ONE 7.2.1.4/09 C***** * COMMON NEVER LENGTHENED BY EQUIVALENCE IN A 7.2.1.4/31 C***** BACKWARD DIRECTION C***** * ONLY ONE OF AN EQUATED PAIR OF ITEMS APPEARS 7.2.1.4/36 C***** IN COMMON C***** * VARIABLES ARE NEVER EQUATED TO MORE THAN ONE 7.2.1.4/42 C***** ELEMENT OF THE SAME ARRAY C***** GENERAL COMMENTS C***** THIS SEGMENT FOLLOWS THE ORDER OF SPECIFICATION STATEMENTS C***** REQUIRED IN BASIC FORTRAN (SEE 9.1.2/56 IN BASIC ASA BOOK) C***** C***** S P E C I F I C A T I O N S SEGMENT 360 C***** C***** WHEN EXECUTING ONLY SEGMENT 360, THE SPECIFICATION STATEMENTS C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C***** C= DIMENSION MX1I(3), TX1S(3) C= DIMENSION MX2I(2,3), TX2S(2,2), WAZ2S(3,2), RVY1S(2), RVY2S(1,2) C= DIMENSION JY2I(2,2), JY1I(5), NZ1I(4), NZ2I(4,2), WAZ1S(2) C= DIMENSION MMY1I(400),NNY3I(20,10,2) C= EQUIVALENCE (MMY1I(1),NNY3I(1,1,1)),(NZ1I(1),NNY3I(1)) C= COMMON MX1I, MX2I, NZ1I, NZVI, NZ2I C= COMMON MXVI C= COMMON IAXVI C= COMMON WAZ1S C= COMMON TX1S, TX2S, JBZVI, WAZ2S C= EQUIVALENCE (MYVI,NZVI), (IYVI,NZ1I(1)), (NZ2I(4,1), JYVI) C= EQUIVALENCE (NZ2I(3), KYVI), (AAYVS,JBZVI,JY2I(1), RVY1S(2)) C= EQUIVALENCE (RVY2S(1,1),WAZ1S(2)) C= EQUIVALENCE (JY1I(3),RVY1S(2)) C= EQUIVALENCE (WAZ2S(1),BBYVS,CCYVS), (WAZ2S(2,1),DDYVS) C***** C***** SOME OF THE ITEMS DEFINED ABOVE ARE USED IN A VARIETY C***** OF FORTRAN STATEMENTS C***** C***** DEFINE THE SYMBOLIC OUTPUT UNIT FOR USE IN THIS 7.1.3/22 C***** SEGMENT C***** O U T P U T - T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. C***** C***** WHEN EXECUTING ONLY SEGMENT 360, THE FOLLOWING STATEMENT C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. C***** C= NUVI = 6 C***** JY2I(1,1) = NUVI C***** WRITE HEADER FOR THIS SEGMENT WRITE (JBZVI,3600) 3600 FORMAT (1H1, 1X,36HSPEC2 - (360) COMMON AND EQUIVALENCE// 1 2X,36HASA REFS - 7.2.1.2 7.2.1.3 7.2.1.4// 2X,7HRESULTS) C***** C***** TEST THAT EQUIVALENCE WORKS - ASSOCIATED ITEM OF 10.2.2/51 C***** SAME TYPE BECOMES DEFINED WHEN EQUATED ITEM IS C***** DEFINED MYVI = 2 WAZ1S(2) = 2.0 WRITE (JBZVI,3601) NZVI, RVY2S(1,1) 3601 FORMAT(//27H LINE 1 BELOW IS HOLLERITH 1 // 11H 2 2.0/I6,F5.1) C***** USE DEFINED ITEMS IN ARITHMETIC STATEMENTS 7.1.1.1 JYVI = 4 MXVI = 5 NZVI = 3 JY1I(1) = 1 MX1I(2) = 0 NZ1I(4) = 2 JY2I(2,1) = -8 MX2I(1,3) = 9 NZ2I(3,2) = 7 MX1I(3) = MX2I(1,3) * (NZVI - JY1I(1)) - 18 MX2I(1,1) = MX2I(1,3) * (MYVI - JY1I(1))- 18 MX1I(1) = JYVI + JY2I(2,1) + NZVI - MX1I(2) + JY1I(1) IAXVI = NZ2I(4,1) + JY1I(4) + MYVI - MX1I(2) + JY1I(1) NZ2I(1,1) = MXVI ** NZ1I(4) - MXVI ** NZ1I(4) BBYVS = 2.0 TX1S(3) = 1.0E1 WAZ2S(1,2) = -3.0E00 RVY1S(1) = .04E+2 DDYVS = RVY1S(1) ** (WAZ2S(1,2)-5.0+TX1S(3)) -13.0 + WAZ2S(1,2) WAZ2S(2,1) = TX2S(2,2)**(WAZ2S(1,2)-5.0+TX1S(3))-13.0+WAZ2S(1,2) WRITE (JBZVI,3602) MX1I(3), MX1I(1), NZ2I(1,1), DDYVS WRITE(JBZVI,7367) MX2I(1,1), IAXVI , NZ2I(1,1), WAZ2S(2,1) 3602 FORMAT (//34H ANSWERS BELOW SHOULD BE 0 OR 0.0// 1 3(I6/) , F8.1) C***** USE ITEMS IN ARITHMETIC IF STATEMENTS 7.1.2.2 IF (WAZ2S(1,2)) 3603,3604,3604 3603 IF (MX1I(2)) 3604,3605,3604 3605 IF (TX2S(2,2) + CCYVS ** NZ1I(4) + TX1S(3)) 3604, 3604, 3606 3604 WRITE (JBZVI,3607) 3607 FORMAT (//22H ARITHMETIC IF FAILED) GO TO 3609 3606 WRITE (JBZVI,3608) 3608 FORMAT (//26H ARITHMETIC IF SUCCESSFUL) C***** USE ITEMS IN DO LOOP 7.1.2.8 3609 DO 7360 JYVI = 1,NZVI,1 TX1S(3) = TX1S(3) + 1.0 7360 CONTINUE WRITE (JBZVI,7361) TX1S(3) 7361 FORMAT (//29H ANSWER BELOW SHOULD BE 13.0// F8.1) C***** USE ITEM IN COMPUTED GO TO 7.1.2.1.3 GO TO (7362,7362,7364), NZVI 7362 WRITE (JBZVI,7363) 7363 FORMAT (//23H COMPUTED GO TO FAILED) GO TO 7366 7364 WRITE (JBZVI,7365) 7365 FORMAT (//27H COMPUTED GO TO SUCCESSFUL) 7367 FORMAT (3(I6/), F8.1) 7366 CONTINUE C***** TEST EQUIVALENCE EXTENDS COMMON C***** ARRAYS- NNY3I(20,10,2) EQUIVALENCED TO ARRAY MMY1I(400) WHICH IS C***** EQUIVALENCED TO THE 10TH STORAGE LOCATION IN BLANK 7.2.1.4/29 C***** COMMON (NZ1I(1)) WRITE (NUVI, 8366) 8366 FORMAT (34H0 TEST EQUIVALENCE EXTENDS COMMON ) DO 7368 IVI = 1, 400 7368 MMY1I(IVI) = IVI IVI = 0 DO 7369 LVI = 1, 2 DO 7369 KVI = 1, 10 DO 7369 JVI = 1, 20 IF(NNY3I(JVI,KVI,LVI)-(JVI+20*(KVI+10*LVI) - 220))7369,8360,7369 8360 IVI = IVI + 1 7369 CONTINUE IF (IVI - 400) 8363, 8361, 8363 8363 WRITE (NUVI, 8364) 8364 FORMAT(13H0 TEST FAILED ) GO TO 8365 8361 WRITE (NUVI, 8362) 8362 FORMAT(17H0 TEST SUCCESSFUL ) 8365 CONTINUE C***** END OF TEST SEGMENT 360 C***** WHEN EXECUTING ONLY SEGMENT 360, THE STOP AND END CARDS C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= C***** IN COLUMNS 1 AND 2 REMOVED. C= STOP C= END STOP 77777 END C*********************************************************************** C***** C***** MAQQ - (413) C***** C*********************************************************************** C***** GENERAL PURPOSE C***** THIS SEGMENT CONTAINS A SUBROUTINE WHICH IS CALLED C***** BY SEGMENT 352. C***** GENERAL COMMENTS C***** SUBROUTINE MAQQ BEING DEFINED SUBROUTINE MAQQ(MWVI,IWVI) IABS = MWVI IWVI = IABS + ISIGN(MWVI, -MWVI) RETURN END C*********************************************************************** C***** C***** MBQQ - (463) C***** C*********************************************************************** C***** GENERAL PURPOSE C***** THIS SEGMENT CONTAINS A SUBROUTINE WHICH IS CALLED C***** BY SEGMENT 352 C***** GENERAL COMMENTS C***** SUBROUTINE MBQQ BEING DEFINED SUBROUTINE MBQQ(MWVI, IWVI) ISIGN = -MWVI IWVI = ISIGN + MWVI RETURN END C*********************************************************************** C***** C***** AMQQ - (473) C***** C*********************************************************************** C***** GENERAL PURPOSE C***** THIS SEGMENT CONTAINS A SUBROUTINE WHICH IS CALLED C***** BY SEGMENT 352 C***** GENERAL COMMENTS C***** SUBROUTINE AMQQ BEING DEFINED C*****STATEMENT FUNCTION NAME IS THE SAME AS SUBROUTINE NAME CALLED BY C*****SEGMENT 352, STAT. FUNCTION DUMMY ARGUMENT NAME SAME AS SUBROUTINE C*****DUMMY ARGUMENT NAME, VARIABLE IS REFERENCED IN STAT. FUNCTION SUBROUTINE AMQQ(CWVS, AWVS) DATA AVS /1.0/ BMQQ(CWVS) = CWVS + BVS FLOAT = AVS BVS = CWVS AWVS = BMQQ(FLOAT) - (BVS + 1.0) RETURN END C*********************************************************************** C***** C***** BMQQ - (483) C***** C*********************************************************************** C***** GENERAL PURPOSE C***** THIS SEGMENT CONTAINS A SUBROUTINE WHICH IS CALLED C***** BY SEGMENT 352 C***** GENERAL COMMENTS C***** SUBROUTINE BMQQ BEING DEFINED SUBROUTINE BMQQ(CWVS, AWVS) ABS = CWVS AWVS = FLOAT(ISIGN(IFIX(ABS), - 2)) + 18.0 RETURN C***** END OF TEST SEGMENT 483 END