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,1,1))            H0016480
      EQUIVALENCE (MYVI,NZVI), (IYVI,NZ1I(1)), (NZ2I(4,1), JYVI)        H0016485
      EQUIVALENCE (NZ2I(3,1), KYVI), (AAYVS,JBZVI,JY2I(1,1), RVY1S(2))      H0016490
      EQUIVALENCE (RVY2S(1,1),WAZ1S(2))                                 H0016495
      EQUIVALENCE (JY1I(3),RVY1S(2))                                    H0016500
      EQUIVALENCE (WAZ2S(1,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 (//4(F10.5/),I10/,5(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


