C***** PART14 ****************************************************H0006400 C***** H0006405 C***** ANSI FORTRAN (X3.9-1966) TEST PROGRAMS H0006410 C***** H0006415 C***** PREPARED BY THE NATIONAL BUREAU OF STANDARDS VERSION 3 H0006420 C***** H0006425 C***** JUNE 1973 H0006430 C***** H0006435 C***** PART 14 OF 14 PARTS H0006440 C***** H0006445 C***** SEGMENTS INCLUDED H0006450 C***** H0006455 C***** MISC5 - 350 SPECIFICATIONS FOR PROGRAM FORM H0006460 C***** H0006465 C***** FUNMX - 351 BASIC EXTERNAL FUNCTIONS USING TRIG FORMULAS H0006470 C***** H0006475 C***** NAMES - 352 NAMES RESEMBLE FORTRAN VERBS AND FUNCTION NAMES H0006480 C***** H0006485 C***** MAQQ - 413 SUBROUTINE CALLED FROM NAMES H0006490 C***** H0006495 C***** MBQQ - 463 SUBROUTINE CALLED FROM NAMES H0006500 C***** H0006505 C***** AMQQ - 473 SUBROUTINE CALLED FROM NAMES H0006510 C***** H0006515 C***** BMQQ - 483 SUBROUTINE CALLED FROM NAMES H0006520 C***** H0006525 C***** SPEC2 - 360 COMMON, DIMENSION, EQUIVALENCE H0006530 C***** H0016400 C***** THE FOLLOWING SPECIFICATIONS ARE TO BE USED ONLY WHEN SEGMENTS H0016405 C***** 350, 351, 352, 360 ARE RUN AS ONE MAIN PROGRAM. H0016410 C***** H0016415 DIMENSION J(2), JJ(1,1), JJJ(1,1,1), JJJJ(1,1), H0016420 1 JJJJJ(1), JJJJJJ(1) H0016425 DIMENSION GOTO(2,2), IF(5) H0016430 DIMENSION MX1I(3), TX1S(3) H0016435 DIMENSION MMY1I(400),NNY3I(20,10,2) H0016440 DIMENSION MX2I(2,3), TX2S(2,2), WAZ2S(3,2), RVY1S(2), RVY2S(1,2) H0016445 DIMENSION JY2I(2,2), JY1I(5), NZ1I(4), NZ2I(4,2), WAZ1S(2) H0016450 COMMON MX1I, MX2I, NZ1I, NZVI, NZ2I H0016455 COMMON MXVI H0016460 COMMON IAXVI H0016465 COMMON WAZ1S H0016470 COMMON TX1S, TX2S, JBZVI, WAZ2S H0016475 EQUIVALENCE (MMY1I(1),NNY3I(1,1,1)),(NZ1I(1),NNY3I(1)) H0016480 EQUIVALENCE (MYVI,NZVI), (IYVI,NZ1I(1)), (NZ2I(4,1), JYVI) H0016485 EQUIVALENCE (NZ2I(3), KYVI), (AAYVS,JBZVI,JY2I(1), RVY1S(2)) H0016490 EQUIVALENCE (RVY2S(1,1),WAZ1S(2)) H0016495 EQUIVALENCE (JY1I(3),RVY1S(2)) H0016500 EQUIVALENCE (WAZ2S(1),BBYVS,CCYVS), (WAZ2S(2,1),DDYVS) H0016505 C***** END OF SPECIFICATIONS FOR SEGMENTS 350, 351, 352, 360 H0016510 C***********************************************************************H3500010 C***** H3500020 C***** MISC5 - (350) H3500030 C***** H3500040 C***********************************************************************H3500050 C***** GENERAL PURPOSE ASA REFH3500060 C***** TO TEST SPECIFICATIONS FOR PROGRAM FORM 3.2 H3500070 C***** 3.2.1 H3500080 C***** 3.4 H3500090 C***** 3.5 H3500100 C***** GENERAL COMMENTS H3500110 C***** * AMONG OTHER THINGS, THIS SEGMENT TESTS THAT COMMENTS ARE H3500120 C***** NOT EXECUTED AND, AS A RESULT OF THIS TEST, THE COMPILER H3500130 C***** MAY GENERATE SOME WARNING MESSAGES. H3500140 C***** * BECAUSE OF THE NATURE OF THE TESTS BEING PERFORMED, SOME H3500150 C***** LABELS AND NAMES DO NOT FOLLOW THE CONVENTIONS H3500160 C***** SPECIFIED IN THE USERS MANUAL. H3500170 C***** H3500180 C***** S P E C I F I C A T I O N S SEGMENT 350 H3500190 C***** H0016515 C***** WHEN EXECUTING ONLY SEGMENT 350, REMOVE THE PRECEDING H0016520 C***** SPECIFICATIONS. THE FOLLOWING SPECIFICATIONS, WHICH APPEAR H0016525 C***** AS COMMENT CARDS MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. H0016530 C***** H0016535 C= DIMENSION J(2), JJ(1,1), JJJ(1,1,1), JJJJ(1,1),JJJJJ(1), JJJJJJ(1)H0016540 C***** H0016545 C***** I N P U T - O U T P U T T A P E ASSIGNMENT STATEMENTS. H3500200 IRVI = 5 H0076400 NUVI = 6 H0076405 C***** IDENTIFY THE SOURCE OF THE TEST PROGRAMS H0076410 WRITE(NUVI,0071) H0076415 0071 FORMAT (41H1 F O R T R A N T E S T P R O G R A M S// H0076420 1 42H PREPARED BY NATIONAL BUREAU OF STANDARDS// H0076425 3 37H FOR USE ON LARGE FORTRAN PROCESSORS // H0076430 4 42H IN ACCORDANCE WITH ASA FORTRAN X3.9-1966// H0076435 5 23H VERSION 3 PART 14///) H0076440 C***** 3 OF 6 INPUT CARDS IDENTIFY THE USERS SYSTEM AND COMPILER H0076445 C PREPARED BY USER H0076450 C READ, NO LIST H0076455 C PREPARED BY USER H0076460 C READ, NO LIST H0076465 C PREPARED BY USER H0076470 C READ, NO LIST H0076475 C READ(IRVI,0070) H0076480 C READ(IRVI,0072) H0076485 C READ(IRVI,0073) H0076490 0070 FORMAT(40H BASED ON ASA FORTRAN X3.9-1966 /) H0076495 0072 FORMAT(40H TEST PROGRAMS /) H0076500 0073 FORMAT(40H FORTRAN COMPILER /) H0076505 WRITE(NUVI,0070) H0076510 WRITE(NUVI,0072) H0076515 WRITE(NUVI,0073) H0076520 WRITE (NUVI,3500) H3500210 3500 FORMAT (1H1,1X,32HMISC5 - (350) SPECIFICATIONS FOR/ 16X, 12HPROH3500220 1GRAM FORM//2X,32HASA REFS. - 3.2 3.2.1 3.4 3.5// H3500230 2 2X,35HTEST THAT COMMENTS ARE NOT EXECUTED) H3500240 C***** HEADER FOR SEGMENT 350 WRITTEN H3500250 C***** TEST THAT COMMENTS ARE NOT EXECUTED 3.2.1/36H3500260 C*****WRITE (NUVI,3501) H3500270 3501 FORMAT (2X,34HERROR - COMMENT STATEMENT EXECUTED) H3500280 C*****GO TO 3504 H3500290 3502 MRRVI = 0 H3500300 C*****IF (MRRVI) 3504, 3504, 3504 H3500310 3503 MRRVI = 1 H3500320 C*****MRRVI = -1 H3500330 IF (MRRVI) 3504,3504,3505 H3500340 3504 WRITE (NUVI,3501) H3500350 3505 WRITE (NUVI,3506) H3500360 3506 FORMAT (2X,35HTEST SUCCESSFUL IF NO ERROR MESSAGE) H3500370 GO TO 3509 H3500380 C***** TEST THAT ALL 72 CHARACTERS IN A LINE MAY BE USED 3.2/24H3500390 3509 WRITE (NUVI,8100) H3500400 8100 FORMAT(///2X,22HTEST 72 CHARACTER LINE) H3500410 WRITE (NUVI,8101) H3500420 8101 0FORMAT( /2X,29H12345678910111213141516171819/2X,29H123456789101112H3500430 113141516171819) H3500440 WRITE (NUVI,8102) H3500450 8102 FORMAT ( /2X,36HTEST SUCCESSFUL IF 2 LINES ABOVE ARE/2X,19HDIGITS H3500460 11 THROUGH 19) H3500470 C***** TEST THAT STATEMENT LABELS MAY BE 1, 2, 3, 4 OR 5 3.4/12H3500480 C***** DIGITS LONG H3500490 WRITE (NUVI,8112) H3500500 8112 FORMAT (//2X,37HTEST 1,2,3,4,5 CHARACTER STMNT. LABEL/) H3500510 GO TO 1 H3500520 8113 GO TO 22 H3500530 8114 GO TO 333 H3500540 8115 GO TO 8099 H3500550 8097 GO TO 22255 H3500560 1 MRRVI = 1 H3500570 WRITE (NUVI,8118) MRRVI H3500580 GO TO 8113 H3500590 22 MRRVI = 2 H3500600 WRITE (NUVI,8118) MRRVI H3500610 GO TO 8114 H3500620 333 MRRVI = 3 H3500630 WRITE (NUVI,8118) MRRVI H3500640 GO TO 8115 H3500650 8099 MRRVI = 4 H3500660 WRITE(NUVI, 8118) MRRVI H3500670 GO TO 8097 H3500680 22255 MRRVI = 5 H3500690 WRITE (NUVI,8118) MRRVI H3500700 8118 FORMAT ( 2X,I1,1X,24HCHARACTER LABEL ACCEPTED) H3500710 C***** TEST THAT VARIABLE AND ARRAY NAMES MAY BE 3.5/21H3500720 C***** 1, 2, 3, 4 OR 5 CHARACTERS LONG H3500730 WRITE (NUVI,8098) H3500740 8098 FORMAT (//2X,36HTEST 1,2,3,4,5,6 CHARACTER VARIABLES/2X, H3500750 115HAND ARRAY NAMES) H3500760 M = 1 H3500770 MM = 1 H3500780 MMM = 1 H3500790 MMMM = 1 H3500800 MMMMM = 1 H3500810 MMMMMM = 1 H3500820 J(1) = 1 H3500830 JJ(1,1) = 1 H3500840 JJJ(1,1,1) = 1 H3500850 JJJJ(1,1) = 1 H3500860 JJJJJ(1) = 1 H3500870 JJJJJJ(1) = 1 H3500880 IF (M-1) 8119, 8103, 8119 H3500890 8103 IF (MM-1) 8119,8104,8119 H3500900 8104 IF (MMM-1) 8119,8105,8119 H3500910 8105 IF (MMMM-1) 8119, 8106,8119 H3500920 8106 IF (MMMMM-1) 8119,8096,8119 H3500930 8096 IF (MMMMMM-1) 8119, 8107, 8119 H3500940 8107 IF (J(1)-1) 8119,8108,8119 H3500950 8108 IF (JJ(1,1)-1) 8119,8109,8119 H3500960 8109 IF (JJJ(1,1,1)-1) 8119,8110,8119 H3500970 8110 IF (JJJJ(1,1)-1) 8119,8111,8119 H3500980 8111 IF (JJJJJ(1)-1) 8119,8095,8119 H3500990 8095 IF (JJJJJJ(1)-1) 8119,8121,8119 H3501000 8119 WRITE (NUVI,8120) H3501010 8120 FORMAT (/ 2X,21H**TEST UNSUCCESSFUL**) H3501020 GO TO 8123 H3501030 8121 WRITE (NUVI,8122) H3501040 8122 FORMAT (/ 2X,38H**TEST SUCCESSFUL-ALL NAMES ACCEPTED**) H3501050 C***** TEST THAT STATEMENT LABELS MAY BE PLACED 3.4/13H3501060 C***** ANYWHERE IN COLUMNS 1 TO 5 AND THAT LEADING 3.4/17H3501070 C***** ZEROS ON STATEMENT LABELS ARE NOT SIGNIFICANT H3501080 8123 WRITE (NUVI,8116) H3501090 8116 FORMAT (//2X,34HTEST PLACEMENT OF STATEMENT LABELS/2X, H3501100 1 29HAND LABELS WITH LEADING ZEROS/) H3501110 MRRVI = 1 H3501120 GO TO 10 H3501130 2 MRRVI = 2 H3501140 GO TO 010 H3501150 3 MRRVI = 3 H3501160 GO TO 0010 H3501170 4 MRRVI = 4 H3501180 GO TO 0010 H3501190 5 MRRVI = 5 H3501200 GO TO 0010 H3501210 06 MRRVI = 6 H3501220 GO TO 0010 H3501230 007 MRRVI = 7 H3501240 GO TO 0010 H3501250 0008 MRRVI = 8 H3501260 GO TO 0010 H3501270 0009 MRRVI = 9 H3501280 0010 WRITE (NUVI,11) MRRVI H3501290 011 FORMAT ( I10) H3501300 GO TO (02,3,004,0005,6,7,8,009,8117), MRRVI H3501310 8117 WRITE (NUVI,012) H3501320 12 FORMAT (//2X,28HTEST SUCCESSFUL IF 9 NUMBERS/2X, H3501330 1 31HIN SEQUENTIAL ORDER FROM 1 TO 9/2X, H3501340 2 17HARE WRITTEN ABOVE///2X,18HEND OF SEGMENT 350) H3501350 C***** END OF TEST SEGMENT 350 H3501360 C***** WHEN EXECUTING ONLY SEGMENT 350, THE STOP AND END CARDS H3501370 C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= H3501380 C***** IN COLUMNS 1 AND 2 REMOVED. H3501390 C= STOP H3501400 C= END H3501410 C***********************************************************************H3510010 C***** H3510020 C***** FUNMX - (351) H3510030 C***** H3510040 C***********************************************************************H3510050 C***** GENERAL PURPOSE ASA REF H3510060 C***** THIS SEGMENT FURTHER TESTS SOME 8.3.3 H3510070 C***** BASIC EXTERNAL FUNCTIONS BY USING TRIGONOMETRIC H3510080 C***** FORMULAE H3510090 C***** H3510100 C***** O U T P U T T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. H3510110 C***** H0076525 C***** WHEN EXECUTING ONLY SEGMENT 351, THE FOLLOWING STATEMENT H0076530 C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. H0076535 C***** H0076540 C= NUVI = 6 H0076545 C***** H0076550 WRITE (NUVI,3510) H3510120 3510 FORMAT (1H1,2X,13HFUNMX - (351)//1X,22H THIS SEGMENT FURTHER , H3510130 1 5HTESTS /21H SOME BASIC EXTERNAL, H3510140 2 10H FUNCTIONS /33H BY USING TRIGONOMETRIC FORMULAE// H3510150 319H ASA REFS. - 8.3.3//2X,7HRESULTS) H3510160 C***** HEADER FOR SEGMENT 351 WRITTEN H3510170 C***** TEST STATEMENTS USING ORDINARY TRIGONOMETRIC FUNCTIONS H3510180 CMAVS = 1.75 H3510190 CMCVS = ALOG(EXP(CMAVS)) - 1.75 H3510200 CMDVS = EXP(ALOG(CMAVS)) - 1.75 H3510210 CMEVS = (SIN(2.0)) ** 2 + (COS(2.0)) ** 2 - 1.0 H3510220 CMFVS = (1.0/COS(1.2)) ** 2 -((SIN(1.2) / COS(1.2)) ** 2) - 1.0 H3510230 WRITE (NUVI,3511) CMCVS, CMDVS, CMEVS, CMFVS H3510240 CMCVS = SIN(.78) - SQRT(1. - COS(0.78) ** 2) H3510250 CMDVS = COS(1.57) - SQRT(1.0 - SIN(1.57) ** 2) H3510260 CMEVS = SQRT((1.0/COS(0.5236))**2-1.0)-SIN(0.5236)/COS(0.5236) H3510270 CMFVS = ATAN2(SIN(0.5),COS(0.5)) - 0.5 H3510280 WRITE (NUVI,3511) CMCVS, CMDVS, CMEVS, CMFVS H3510290 C***** TEST STATEMENTS USING HYPERBOLIC FUNCTIONS H3510300 CMAVS = EXP(1.85) H3510310 CMBVS = EXP(-1.85) H3510320 CMCVS = TANH(1.85) - ((CMAVS - CMBVS) / (CMAVS + CMBVS)) H3510330 CMEVS = 2./(EXP(1.05) + EXP(-1.05)) - SQRT(1.0-TANH(1.05)**2) H3510340 CMFVS = TANH(2.01)/ (SQRT(1.0 - TANH(2.01)**2))-.5*(EXP(2.01) - H3510350 1 EXP(-2.01)) H3510360 WRITE (NUVI,3512) CMCVS, CMEVS, CMFVS H3510370 WRITE (NUVI,3513) H3510380 3511 FORMAT (//4(F15.5/)) H3510390 3512 FORMAT (//3(F15.5/)) H3510400 3513 FORMAT (//39H ALL ABOVE ANSWERS SHOULD BE 0 PLUS OR / H3510410 1 40H MINUS AN ERROR FACTOR OF NOT MORE THAN / H3510420 2 12H 10 ** (-4)) H3510430 C***** END OF TEST SEGMENT 351 H3510440 C***** WHEN EXECUTING ONLY SEGMENT 351, THE STOP AND END CARDS H3510450 C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= H3510460 C***** IN COLUMNS 1 AND 2 REMOVED. H3510470 C= STOP H3510480 C= END H3510490 C***********************************************************************H3520010 C***** H3520020 C***** NAMES - (352) H3520030 C***** H3520040 C***********************************************************************H3520050 C***** GENERAL PURPOSE ASA REF H3520060 C***** TO TEST THE CAPABILITY OF COMPILERS TO IDENTIFY DATA 10.1.7/54H3520070 C***** NAMES THAT RESEMBLE FORTRAN VERBS AND/OR PREDEFINED H3520080 C***** FUNCTION NAMES. H3520090 C***** GENERAL COMMENTS H3520100 C***** BECAUSE OF THE NATURE OF THIS TEST SEGMENT, NAMING H3520110 C***** CONVENTIONS THAT EXISTED IN OTHER SEGMENTS WILL NOT H3520120 C***** BE OBSERVED. H3520130 C***** H3520140 C***** S P E C I F I C A T I O N S SEGMENT 352 H3520150 C***** H0016550 C***** WHEN EXECUTING ONLY SEGMENT 352, THE SPECIFICATION STATEMENTS H0016555 C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= H0016560 C***** IN COLUMNS 1 AND 2 REMOVED. H0016565 C***** H0016570 C= DIMENSION GOTO(2,2), IF(5) H0016575 C***** H0016580 C***** O U T P UT T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. H3520160 C***** H0076555 C***** WHEN EXECUTING ONLY SEGMENT 352, THE FOLLOWING STATEMENT H0076560 C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. H0076565 C***** H0076570 C= NUVI = 6 H0076575 C***** H0076580 WRITE (NUVI,3520) H3520170 3520 FORMAT (1H1 ,1X,13HNAMES - (352)//2X,36HTEST OF THE COMPILERS CAPAH3520180 1BILITY OF /2X,37HIDENTIFYING DATA NAMES THAT RESEMBLE /2X, H3520190 2 32HFORTRAN VERBS AND/OR PREDEFINED /2X,15HFUNCTION NAMES // H3520200 3 22H ASA REFS. - 10.1.7/4 //2X,7HRESULTS) H3520210 C***** HEADER FOR SEGMENT 352 WRITTEN H3520220 INTEG = 0 H3520230 REAL = 2.0 H3520240 GOTO5 = REAL - 2.0 H3520250 GOTO(1,2) = 10.0 - 5.0 * 2.0 H3520260 DO13I = INTEG H3520270 13 DO14J = INTEG +0 H3520280 14 IF(2) = 5-5 H3520290 CALL = 0 H3520300 STOP7 = REAL - 2.0 H3520310 PAUSE = REAL / 2.0 - 1.0 H3520320 READ6 = 0.0 ** 5 H3520330 WRITE = 7.0 - 7.0 H3520340 WRITE (NUVI,3521) GOTO5, GOTO(1,2), DO13I, DO14J, IF(2), CALL, H3520350 1 STOP7, PAUSE, READ6, WRITE H3520360 3521 FORMAT (//10(F10.5/)) H3520370 C***** TEST THAT THE SAME INTRINSIC FUNCTION NAMES OF H3520380 C***** A PROGRAM UNIT OF AN EXECUTABLE PROGRAM CAN BE H3520390 C***** USED TO IDENTIFY SOME OTHER ENTITY IN A DIFFERENT H3520400 C***** PROGRAM UNIT OF THAT EXECUTABLE PROGRAM H3520410 MCAVI = IABS(-5) H3520420 CALL MAQQ(MCAVI,IVI) H3520430 MCCVI = IVI H3520440 MCBVI = ISIGN(1,-2) H3520450 CALL MBQQ(MCBVI,IVI) H3520460 MCDVI = IVI H3520470 CMAVS = FLOAT(5 + 7) H3520480 CALL AMQQ(CMAVS,AVS) H3520490 CMCVS = AVS H3520500 CMBVS = ABS(-10.0 - 8.00) H3520510 CALL BMQQ(CMBVS,AVS) H3520520 CMDVS = AVS H3520530 WRITE (NUVI,3522) MCCVI, MCDVI, CMCVS, CMDVS H3520540 3522 FORMAT (/2(I10/)//2(F10.5/)//35H ALL ABOVE ANSWERS SHOULD BE 0 FOH3520550 1R/36H THIS TEST SEGMENT TO BE SUCCESSFUL) H3520560 C***** END OF TEST SEGMENT 352 H3520570 C***** WHEN EXECUTING ONLY SEGMENT 352, THE STOP AND END CARDS H3520580 C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= H3520590 C***** IN COLUMNS 1 AND 2 REMOVED. H3520600 C= STOP H3520610 C= END H3520620 C***********************************************************************H3600010 C***** H3600020 C***** SPEC2 - (360) H3600030 C***** H3600040 C***********************************************************************H3600050 C***** GENERAL PURPOSE ASA REFS H3600060 C***** * TO TEST COMMON, DIMENSION AND EQUIVALENCE 7.2.1.2H3600070 C***** STATEMENTS 7.2.1.3H3600080 C***** * TO TEST THAT VARIABLES AND ARRAYS WHICH ARE 7.2.1.4H3600090 C***** EQUATED AND/OR IN COMMON MAY BE USED IN A H3600100 C***** VARIETY OF FORTRAN STATEMENTS H3600110 C***** RESTRICTIONS OBSERVED H3600120 C***** * NO DUMMY ARGUMENTS APPEAR IN COMMON OR EQUIVALENCE 7.2.1.4/40H3600130 C***** STATEMENTS 8.4.1.1/23H3600140 C***** * NUMBER OF SUBSCRIPTS IN EQUIVALENCE STATEMENTS H3600150 C***** CORRESPONDS TO ARRAY DIMENSIONALITY OR IS ONE 7.2.1.4/09H3600160 C***** * COMMON NEVER LENGTHENED BY EQUIVALENCE IN A 7.2.1.4/31H3600170 C***** BACKWARD DIRECTION H3600180 C***** * ONLY ONE OF AN EQUATED PAIR OF ITEMS APPEARS 7.2.1.4/36H3600190 C***** IN COMMON H3600200 C***** * VARIABLES ARE NEVER EQUATED TO MORE THAN ONE 7.2.1.4/42H3600210 C***** ELEMENT OF THE SAME ARRAY H3600220 C***** GENERAL COMMENTS H3600230 C***** THIS SEGMENT FOLLOWS THE ORDER OF SPECIFICATION STATEMENTS H3600240 C***** REQUIRED IN BASIC FORTRAN (SEE 9.1.2/56 IN BASIC ASA BOOK) H3600250 C***** H3600260 C***** S P E C I F I C A T I O N S SEGMENT 360 H3600270 C***** H0016585 C***** WHEN EXECUTING ONLY SEGMENT 360, THE SPECIFICATION STATEMENTS H0016590 C***** WHICH APPEAR AS COMMENT CARDS, MUST HAVE THE C= H0016595 C***** IN COLUMNS 1 AND 2 REMOVED. H0016600 C***** H0016605 C= DIMENSION MX1I(3), TX1S(3) H0016610 C= DIMENSION MX2I(2,3), TX2S(2,2), WAZ2S(3,2), RVY1S(2), RVY2S(1,2) H0016615 C= DIMENSION JY2I(2,2), JY1I(5), NZ1I(4), NZ2I(4,2), WAZ1S(2) H0016620 C= DIMENSION MMY1I(400),NNY3I(20,10,2) H0016625 C= EQUIVALENCE (MMY1I(1),NNY3I(1,1,1)),(NZ1I(1),NNY3I(1)) H0016630 C= COMMON MX1I, MX2I, NZ1I, NZVI, NZ2I H0016635 C= COMMON MXVI H0016640 C= COMMON IAXVI H0016645 C= COMMON WAZ1S H0016650 C= COMMON TX1S, TX2S, JBZVI, WAZ2S H0016655 C= EQUIVALENCE (MYVI,NZVI), (IYVI,NZ1I(1)), (NZ2I(4,1), JYVI) H0016660 C= EQUIVALENCE (NZ2I(3), KYVI), (AAYVS,JBZVI,JY2I(1), RVY1S(2)) H0016665 C= EQUIVALENCE (RVY2S(1,1),WAZ1S(2)) H0016670 C= EQUIVALENCE (JY1I(3),RVY1S(2)) H0016675 C= EQUIVALENCE (WAZ2S(1),BBYVS,CCYVS), (WAZ2S(2,1),DDYVS) H0016680 C***** H3600280 C***** SOME OF THE ITEMS DEFINED ABOVE ARE USED IN A VARIETY H3600290 C***** OF FORTRAN STATEMENTS H3600300 C***** H3600310 C***** DEFINE THE SYMBOLIC OUTPUT UNIT FOR USE IN THIS 7.1.3/22H3600320 C***** SEGMENT H3600330 C***** O U T P U T - T A P E ASSIGNMENT STATEMENT. NO INPUT TAPE. H3600340 C***** H3600350 C***** WHEN EXECUTING ONLY SEGMENT 360, THE FOLLOWING STATEMENT H0076585 C***** NUVI = 6 MUST HAVE THE C= IN COLUMNS 1 AND 2 REMOVED. H0076590 C***** H0076595 C= NUVI = 6 H0076600 C***** H0076605 JY2I(1,1) = NUVI H3600360 C***** WRITE HEADER FOR THIS SEGMENT H3600370 WRITE (JBZVI,3600) H3600380 3600 FORMAT (1H1, 1X,36HSPEC2 - (360) COMMON AND EQUIVALENCE// H3600390 1 2X,36HASA REFS - 7.2.1.2 7.2.1.3 7.2.1.4// 2X,7HRESULTS) H3600400 C***** H3600410 C***** TEST THAT EQUIVALENCE WORKS - ASSOCIATED ITEM OF 10.2.2/51H3600420 C***** SAME TYPE BECOMES DEFINED WHEN EQUATED ITEM IS H3600430 C***** DEFINED H3600440 MYVI = 2 H3600450 WAZ1S(2) = 2.0 H3600460 WRITE (JBZVI,3601) NZVI, RVY2S(1,1) H3600470 3601 FORMAT(//27H LINE 1 BELOW IS HOLLERITH H3600480 1 // 11H 2 2.0/I6,F5.1) H3600490 C***** USE DEFINED ITEMS IN ARITHMETIC STATEMENTS 7.1.1.1H3600500 JYVI = 4 H3600510 MXVI = 5 H3600520 NZVI = 3 H3600530 JY1I(1) = 1 H3600540 MX1I(2) = 0 H3600550 NZ1I(4) = 2 H3600560 JY2I(2,1) = -8 H3600570 MX2I(1,3) = 9 H3600580 NZ2I(3,2) = 7 H3600590 MX1I(3) = MX2I(1,3) * (NZVI - JY1I(1)) - 18 H3600600 MX2I(1,1) = MX2I(1,3) * (MYVI - JY1I(1))- 18 H3600610 MX1I(1) = JYVI + JY2I(2,1) + NZVI - MX1I(2) + JY1I(1) H3600620 IAXVI = NZ2I(4,1) + JY1I(4) + MYVI - MX1I(2) + JY1I(1) H3600630 NZ2I(1,1) = MXVI ** NZ1I(4) - MXVI ** NZ1I(4) H3600640 BBYVS = 2.0 H3600650 TX1S(3) = 1.0E1 H3600660 WAZ2S(1,2) = -3.0E00 H3600670 RVY1S(1) = .04E+2 H3600680 DDYVS = RVY1S(1) ** (WAZ2S(1,2)-5.0+TX1S(3)) -13.0 + WAZ2S(1,2) H3600690 WAZ2S(2,1) = TX2S(2,2)**(WAZ2S(1,2)-5.0+TX1S(3))-13.0+WAZ2S(1,2) H3600700 WRITE (JBZVI,3602) MX1I(3), MX1I(1), NZ2I(1,1), DDYVS H3600710 WRITE(JBZVI,7367) MX2I(1,1), IAXVI , NZ2I(1,1), WAZ2S(2,1) H3600720 3602 FORMAT (//34H ANSWERS BELOW SHOULD BE 0 OR 0.0// H3600730 1 3(I6/) , F8.1) H3600740 C***** USE ITEMS IN ARITHMETIC IF STATEMENTS 7.1.2.2H3600750 IF (WAZ2S(1,2)) 3603,3604,3604 H3600760 3603 IF (MX1I(2)) 3604,3605,3604 H3600770 3605 IF (TX2S(2,2) + CCYVS ** NZ1I(4) + TX1S(3)) 3604, 3604, 3606 H3600780 3604 WRITE (JBZVI,3607) H3600790 3607 FORMAT (//22H ARITHMETIC IF FAILED) H3600800 GO TO 3609 H3600810 3606 WRITE (JBZVI,3608) H3600820 3608 FORMAT (//26H ARITHMETIC IF SUCCESSFUL) H3600830 C***** USE ITEMS IN DO LOOP 7.1.2.8H3600840 3609 DO 7360 JYVI = 1,NZVI,1 H3600850 TX1S(3) = TX1S(3) + 1.0 H3600860 7360 CONTINUE H3600870 WRITE (JBZVI,7361) TX1S(3) H3600880 7361 FORMAT (//29H ANSWER BELOW SHOULD BE 13.0// F8.1) H3600890 C***** USE ITEM IN COMPUTED GO TO 7.1.2.1.3H3600900 GO TO (7362,7362,7364), NZVI H3600910 7362 WRITE (JBZVI,7363) H3600920 7363 FORMAT (//23H COMPUTED GO TO FAILED) H3600930 GO TO 7366 H3600940 7364 WRITE (JBZVI,7365) H3600950 7365 FORMAT (//27H COMPUTED GO TO SUCCESSFUL) H3600960 7367 FORMAT (3(I6/), F8.1) H3600970 7366 CONTINUE H3600980 C***** TEST EQUIVALENCE EXTENDS COMMON H3600990 C***** ARRAYS- NNY3I(20,10,2) EQUIVALENCED TO ARRAY MMY1I(400) WHICH ISH3601000 C***** EQUIVALENCED TO THE 10TH STORAGE LOCATION IN BLANK 7.2.1.4/29H3601010 C***** COMMON (NZ1I(1)) H3601020 WRITE (NUVI, 8366) H3601030 8366 FORMAT (34H0 TEST EQUIVALENCE EXTENDS COMMON ) H3601040 DO 7368 IVI = 1, 400 H3601050 7368 MMY1I(IVI) = IVI H3601060 IVI = 0 H3601070 DO 7369 LVI = 1, 2 H3601080 DO 7369 KVI = 1, 10 H3601090 DO 7369 JVI = 1, 20 H3601100 IF(NNY3I(JVI,KVI,LVI)-(JVI+20*(KVI+10*LVI) - 220))7369,8360,7369 H3601110 8360 IVI = IVI + 1 H3601120 7369 CONTINUE H3601130 IF (IVI - 400) 8363, 8361, 8363 H3601140 8363 WRITE (NUVI, 8364) H3601150 8364 FORMAT(13H0 TEST FAILED ) H3601160 GO TO 8365 H3601170 8361 WRITE (NUVI, 8362) H3601180 8362 FORMAT(17H0 TEST SUCCESSFUL ) H3601190 8365 CONTINUE H3601200 C***** END OF TEST SEGMENT 360 H3601210 C***** WHEN EXECUTING ONLY SEGMENT 360, THE STOP AND END CARDS H3601220 C***** WHICH APPEAR AS COMMENT CARDS MUST HAVE THE C= H3601230 C***** IN COLUMNS 1 AND 2 REMOVED. H3601240 C= STOP H3601250 C= END H3601260 STOP 77777 H9999995 END H9999999 C***********************************************************************H4130010 C***** H4130020 C***** MAQQ - (413) H4130030 C***** H4130040 C***********************************************************************H4130050 C***** GENERAL PURPOSE H4130060 C***** THIS SEGMENT CONTAINS A SUBROUTINE WHICH IS CALLED H4130070 C***** BY SEGMENT 352. H4130080 C***** GENERAL COMMENTS H4130090 C***** SUBROUTINE MAQQ BEING DEFINED H4130100 SUBROUTINE MAQQ(MWVI,IWVI) H4130110 IABS = MWVI H4130120 IWVI = IABS + ISIGN(MWVI, -MWVI) H4130130 RETURN H4130140 END H4130150 C***********************************************************************H4630010 C***** H4630020 C***** MBQQ - (463) H4630030 C***** H4630040 C***********************************************************************H4630050 C***** GENERAL PURPOSE H4630060 C***** THIS SEGMENT CONTAINS A SUBROUTINE WHICH IS CALLED H4630070 C***** BY SEGMENT 352 H4630080 C***** GENERAL COMMENTS H4630090 C***** SUBROUTINE MBQQ BEING DEFINED H4630100 SUBROUTINE MBQQ(MWVI, IWVI) H4630110 ISIGN = -MWVI H4630120 IWVI = ISIGN + MWVI H4630130 RETURN H4630140 END H4630150 C***********************************************************************H4730010 C***** H4730020 C***** AMQQ - (473) H4730030 C***** H4730040 C***********************************************************************H4730050 C***** GENERAL PURPOSE H4730060 C***** THIS SEGMENT CONTAINS A SUBROUTINE WHICH IS CALLED H4730070 C***** BY SEGMENT 352 H4730080 C***** GENERAL COMMENTS H4730090 C***** SUBROUTINE AMQQ BEING DEFINED H4730100 C*****STATEMENT FUNCTION NAME IS THE SAME AS SUBROUTINE NAME CALLED BY H4730110 C*****SEGMENT 352, STAT. FUNCTION DUMMY ARGUMENT NAME SAME AS SUBROUTINEH4730120 C*****DUMMY ARGUMENT NAME, VARIABLE IS REFERENCED IN STAT. FUNCTION H4730130 SUBROUTINE AMQQ(CWVS, AWVS) H4730140 BMQQ(CWVS) = CWVS + BVS H4730150 FLOAT = AVS H4730160 BVS = CWVS H4730170 AWVS = BMQQ(FLOAT) - (BVS + 1.0) H4730180 DATA AVS /1.0/ H4730190 RETURN H4730200 END H4730210 C***********************************************************************H4830010 C***** H4830020 C***** BMQQ - (483) H4830030 C***** H4830040 C***********************************************************************H4830050 C***** GENERAL PURPOSE H4830060 C***** THIS SEGMENT CONTAINS A SUBROUTINE WHICH IS CALLED H4830070 C***** BY SEGMENT 352 H4830080 C***** GENERAL COMMENTS H4830090 C***** SUBROUTINE BMQQ BEING DEFINED H4830100 SUBROUTINE BMQQ(CWVS, AWVS) H4830110 ABS = CWVS H4830120 AWVS = FLOAT(ISIGN(IFIX(ABS), - 2)) + 18.0 H4830130 RETURN H4830140 C***** END OF TEST SEGMENT 483 H4830150 END H4830160