PROGRAM FM201
C
C
C        THIS ROUTINE VERIFIES THAT
C
C        (1)  THE VALUE OF A SIGNED ZERO IS THE SAME AS THE VALUE OF
C             AN UNSIGNED ZERO FOR INTEGER AND REAL VARIABLES.
C
C        (2)  A BASIC REAL CONSTANT MAY BE WRITTEN WITH MORE DIGITS
C             THAN A PROCESSOR WILL USE TO APPROXIMATE THE VALUE OF
C             THE CONSTANT.
C
C        (3)  AN IMPLICIT STATEMENT CAN BE USED TO CHANGE THE DEFAULT
C             IMPLICIT INTEGER AND REAL TYPING.
C
C        (4)  THE IMPLICIT INTEGER AND REAL TYPING OF AN IMPLICIT
C             STATEMENT MAY BE OVERRIDDEN BY THE APPEARANCE OF A
C             VARIABLE NAME IN A TYPE-STATEMENT.
C
C     REFERENCES
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,
C              X3.9-1978
C
C        SECTION 4.1.3, DATA TYPE PROPERTIES
C        SECTION 4.4.1, BASIC REAL CONSTANT
C        SECTION 6.1.5, INTEGER DIVISION
C        SECTION 8.4,   TYPE-STATEMENTS
C        SECTION 8.5,   IMPLICIT STATEMENT
C
C
C     ******************************************************************
C         A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE
C     BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN
C     X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY.  THE
C     FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT
C     ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM.  EACH AUDIT
C     ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS
C     OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING
C     THE RESULT OF EXECUTING THESE TESTS.
C
C     THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES
C     FOUND IN THE SUBSET LEVEL OF THE STANDARD.
C
C           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO
C                    DEPARTMENT OF THE NAVY
C                    FEDERAL COBOL COMPILER TESTING SERVICE
C                    WASHINGTON, D.C.   20376
C
C     ******************************************************************
C
C
      IMPLICIT LOGICAL (L)
      IMPLICIT CHARACTER*14 (C)
C
      IMPLICIT INTEGER (Y, V-X), REAL (M)
      REAL RVTN01, RVTN02, RVTN03, YVTN02
      INTEGER IVTN01, IVTN02, MVTN02
C        THE ABOVE THREE STATEMENTS ARE REFERENCED IN TESTS 29 THRU 35.
C
C
C
C     INITIALIZATION SECTION.
C
C     INITIALIZE CONSTANTS
C     ********************
C     I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER
      I01 = 5
C     I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER
      I02 = 6
C     SYSTEM ENVIRONMENT SECTION
C
CX010     THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD.
C     THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5
C     (UNIT NUMBER FOR CARD READER).
CX011      THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD
C     THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL
C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE.
C
CX020     THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD.
C     THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6
C     (UNIT NUMBER FOR PRINTER).
CX021     THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.
C     THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL
C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE.
C
      IVPASS = 0
      IVFAIL = 0
      IVDELE = 0
      ICZERO = 0
C
C     WRITE OUT PAGE HEADERS
C
      WRITE (I02,90002)
      WRITE (I02,90006)
      WRITE (I02,90008)
      WRITE (I02,90004)
      WRITE (I02,90010)
      WRITE (I02,90004)
      WRITE (I02,90016)
      WRITE (I02,90001)
      WRITE (I02,90004)
      WRITE (I02,90012)
      WRITE (I02,90014)
      WRITE (I02,90004)
C
C
C        TEST 14 THROUGH TEST 17 COMPARE INTEGER VARIABLES WHICH ARE
C     SET TO SIGNED ZERO AND UNSIGNED ZERO VALUES BY THE FOLLOWING
C     STATEMENTS
C
         IVON01 = 0
         IVON02 = -0
         IVON03 = +0
C
C     REFERENCE   X3.9-1978, SECTION 4.1.3, DATA TYPE PROPERTIES
C
C     ****  FCVS PROGRAM 201  -  TEST 014  ****
C
C        COMPARE 0 TO -0
C
      IVTNUM =  14
      IF (ICZERO) 30140, 0140, 30140
 0140 CONTINUE
      IVCOMP = 1
      IVCORR = 0
      IF (IVON01 .EQ. IVON02) IVCOMP = 0
40140 IF (IVCOMP) 20140, 10140, 20140
30140 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10140, 0151, 20140
10140 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0151
20140 IVFAIL = IVFAIL + 1
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR
 0151 CONTINUE
C
C     ****  FCVS PROGRAM 201  -  TEST 015  ****
C
C        COMPARE 0 TO +0
C
      IVTNUM =  15
      IF (ICZERO) 30150, 0150, 30150
 0150 CONTINUE
      IVCOMP = 1
      IVCORR = 0
      IF (IVON01 .EQ. IVON03) IVCOMP = 0
40150 IF (IVCOMP) 20150, 10150, 20150
30150 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10150, 0161, 20150
10150 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0161
20150 IVFAIL = IVFAIL + 1
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR
 0161 CONTINUE
C
C     ****  FCVS PROGRAM 201  -  TEST 016  ****
C
C        COMPARE -0 TO +0
C
      IVTNUM =  16
      IF (ICZERO) 30160, 0160, 30160
 0160 CONTINUE
      IVCOMP = 1
      IVCORR = 0
      IF (IVON02 .EQ. IVON03) IVCOMP = 0
40160 IF (IVCOMP) 20160, 10160, 20160
30160 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10160, 0171, 20160
10160 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0171
20160 IVFAIL = IVFAIL + 1
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR
 0171 CONTINUE
C
C     ****  FCVS PROGRAM 201  -  TEST 017  ****
C
C        MINUS ZERO (-0) SHOULD NOT BE LESS THAN PLUS ZERO (+0)
C
      IVTNUM =  17
      IF (ICZERO) 30170, 0170, 30170
 0170 CONTINUE
      IVCOMP = 1
      IVCORR = 0
      IF (IVON02 .LT. IVON03) GO TO 20170
      IVCOMP = 0
      GO TO 10170
30170 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10170, 0181, 20170
10170 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0181
20170 IVFAIL = IVFAIL + 1
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR
 0181 CONTINUE
C
C        TEST 18 THROUGH TEST 24 COMPARE REAL VARIABLES WHICH ARE SET
C     TO SIGNED ZERO AND UNSIGNED ZERO VALUES BY THE FOLLOWING
C     STATEMENTS
C
         RVON01 = 0.0
         RVON02 = -0.0
         RVON03 = +0.0
         RVON04 = -0.0E+01
         RVON05 = -0E+10
C
C     REFERENCE   X3.9-1978, SECTION 4.1.3, DATA TYPE PROPERTIES
C
C     ****  FCVS PROGRAM 201  -  TEST 018  ****
C
C        COMPARE 0.0 TO -0.0
C
      IVTNUM =  18
      IF (ICZERO) 30180, 0180, 30180
 0180 CONTINUE
      IVCOMP = 1
      IVCORR = 0
      IF (RVON01 .EQ. RVON02) IVCOMP = 0
40180 IF (IVCOMP) 20180, 10180, 20180
30180 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10180, 0191, 20180
10180 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0191
20180 IVFAIL = IVFAIL + 1
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR
 0191 CONTINUE
C
C     ****  FCVS PROGRAM 201  -  TEST 019  ****
C
C        COMPARE 0.0 TO +0.0
C
      IVTNUM =  19
      IF (ICZERO) 30190, 0190, 30190
 0190 CONTINUE
      IVCOMP = 1
      IVCORR = 0
      IF (RVON01 .EQ. RVON03)  IVCOMP = 0
40190 IF (IVCOMP) 20190, 10190, 20190
30190 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10190, 0201, 20190
10190 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0201
20190 IVFAIL = IVFAIL + 1
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR
 0201 CONTINUE
C
C     ****  FCVS PROGRAM 201  -  TEST 020  ****
C
C        COMPARE -0.0 TO +0.0
C
      IVTNUM =  20
      IF (ICZERO) 30200, 0200, 30200
 0200 CONTINUE
      IVCOMP = 1
      IVCORR = 0
      IF (RVON02 .EQ. RVON03) IVCOMP = 0
40200 IF (IVCOMP) 20200, 10200, 20200
30200 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10200, 0211, 20200
10200 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0211
20200 IVFAIL = IVFAIL + 1
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR
 0211 CONTINUE
C
C     ****  FCVS PROGRAM 201  -  TEST 021  ****
C
C        MINUS ZERO (-0.0) SHOULD NOT BE LESS THAN PLUS ZERO (+0.0)
C
      IVTNUM =  21
      IF (ICZERO) 30210, 0210, 30210
 0210 CONTINUE
      IVCOMP = 1
      IVCORR = 0
      IF (RVON02 .LT. RVON03) GO TO 20210
      IVCOMP = 0
      GO TO 10210
30210 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10210, 0221, 20210
10210 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0221
20210 IVFAIL = IVFAIL + 1
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR
 0221 CONTINUE
C
C     ****  FCVS PROGRAM 201  -  TEST 022  ****
C
C        COMPARE -0.0E+01 TO 0.0
C
      IVTNUM =  22
      IF (ICZERO) 30220, 0220, 30220
 0220 CONTINUE
      IVCOMP = 1
      IVCORR = 0
      IF (RVON04 .EQ. RVON01) IVCOMP = 0
40220 IF (IVCOMP) 20220, 10220, 20220
30220 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10220, 0231, 20220
10220 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0231
20220 IVFAIL = IVFAIL + 1
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR
 0231 CONTINUE
C
C     ****  FCVS PROGRAM 201  -  TEST 023  ****
C
C        COMPARE -0E+10 TO 0.0
C
      IVTNUM =  23
      IF (ICZERO) 30230, 0230, 30230
 0230 CONTINUE
      IVCOMP = 1
      IVCORR = 0
      IF (RVON05 .EQ. RVON01) IVCOMP = 0
40230 IF (IVCOMP) 20230, 10230, 20230
30230 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10230, 0241, 20230
10230 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0241
20230 IVFAIL = IVFAIL + 1
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR
 0241 CONTINUE
C
C     ****  FCVS PROGRAM 201  -  TEST 024  ****
C
C        COMPARE -0E+10 TO +0.0
C
      IVTNUM =  24
      IF (ICZERO) 30240, 0240, 30240
 0240 CONTINUE
      IVCOMP = 1
      IVCORR = 0
      IF (RVON05 .NE. RVON03) GO TO 20240
      IVCOMP = 0
      GO TO 10240
30240 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10240, 0251, 20240
10240 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0251
20240 IVFAIL = IVFAIL + 1
      WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR
 0251 CONTINUE
C
C        TEST 25 THROUGH TEST 28 VERIFY THAT A BASIC REAL CONSTANT MAY
C     BE WRITTEN WITH MORE DIGITS THAN A PROCESSOR WILL USE TO APPROXI-
C     MATE THE VALUE OF THE CONSTANT.
C
C     REFERENCE   X3.9-1978, SECTION 4.4.1, BASIC REAL CONSTANT
C
C
C     ****  FCVS PROGRAM 201  -  TEST 025  ****
C
C        EIGHT DIGITS IN BASIC REAL CONSTANT
C
      IVTNUM =  25
      IF (ICZERO) 30250, 0250, 30250
 0250 CONTINUE
      RVON06 = 0.0
      RVCOMP = 0.0
      RVON06 = 3.1561234
      RVCOMP = RVON06
      RVCORR = 3.1561
40250 IF (RVCOMP - 3.1556) 20250, 10250, 40251
40251 IF (RVCOMP - 3.1566) 10250, 10250, 20250
30250 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10250, 0261, 20250
10250 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0261
20250 IVFAIL = IVFAIL + 1
      WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR
 0261 CONTINUE
C
C     ****  FCVS PROGRAM 201  -  TEST 026  ****
C
C        EIGHT DIGITS IN BASIC REAL CONSTANT PLUS A REAL EXPONENT.
C
      IVTNUM =  26
      IF (ICZERO) 30260, 0260, 30260
 0260 CONTINUE
      RVON06 = 0.0
      RVCOMP = 0.0
      RVON06 = .31561234E+01
      RVCOMP = RVON06
      RVCORR = 3.1561
40260 IF (RVCOMP - 3.1556) 20260, 10260, 40261
40261 IF (RVCOMP - 3.1566) 10260, 10260, 20260
30260 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10260, 0271, 20260
10260 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0271
20260 IVFAIL = IVFAIL + 1
      WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR
 0271 CONTINUE
C
C     ****  FCVS PROGRAM 201  -  TEST 027  ****
C
C        TWELVE DIGITS IN BASIC REAL CONSTANT.
C
      IVTNUM =  27
      IF (ICZERO) 30270, 0270, 30270
 0270 CONTINUE
      RVON06 = 0.0
      RVCOMP = 0.0
      RVON06 = 315612347833 E-11
      RVCOMP = RVON06
      RVCORR = 3.1561
40270 IF (RVCOMP - 3.1556) 20270, 10270, 40271
40271 IF (RVCOMP - 3.1566) 10270, 10270, 20270
30270 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10270, 0281, 20270
10270 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0281
20270 IVFAIL = IVFAIL + 1
      WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR
 0281 CONTINUE
C
C     ****  FCVS PROGRAM 201  -  TEST 028  ****
C
C        TWENTY-FIVE DIGITS IN BASIC REAL CONSTANT.
C
      IVTNUM =  28
      IF (ICZERO) 30280, 0280, 30280
 0280 CONTINUE
      RVON06 = 0.0
      RVCOMP = 0.0
      RVON06 = 31.56123478334867532834672E-1
      RVCOMP = RVON06
      RVCORR = 3.1561
40280 IF (RVCOMP - 3.1556) 20280, 10280, 40281
40281 IF (RVCOMP - 3.1566) 10280, 10280, 20280
30280 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10280, 0291, 20280
10280 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0291
20280 IVFAIL = IVFAIL + 1
      WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR
 0291 CONTINUE
C
C        TEST 29 THROUGH TEST 33 REFERENCE VARIABLES WHOSE TYPE WAS
C     SPECIFIED BY AN IMPLICIT STATEMENT.  DIVISION IS USED TO VERIFY
C     THAT THE TYPE IS INTEGER OR REAL.
C
C     REFERENCE   X3.9-1978, SECTION 8.5, IMPLICIT STATEMENT
C
C
C     ****  FCVS PROGRAM 201  -  TEST 029  ****
C
C        VERIFY YVIN01 IS AN INTEGER VARIABLE.
C
      IVTNUM =  29
      IF (ICZERO) 30290, 0290, 30290
 0290 CONTINUE
      RVCOMP = 10.0
      YVIN01 = 4.0
      RVCOMP = YVIN01/5
      RVCORR = 0.0
40290 IF (RVCOMP) 20290, 10290, 20290
30290 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10290, 0301, 20290
10290 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0301
20290 IVFAIL = IVFAIL + 1
      WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR
 0301 CONTINUE
C
C     ****  FCVS PROGRAM 201  -  TEST 030  ****
C
C        VERIFY VVIN01 IS AN INTEGER VARIABLE
C
      IVTNUM =  30
      IF (ICZERO) 30300, 0300, 30300
 0300 CONTINUE
      RVCOMP = 10.0
      VVIN01 = 4.0
      RVCOMP = VVIN01/5
      RVCORR = 0.0
40300 IF (RVCOMP) 20300, 10300, 20300
30300 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10300, 0311, 20300
10300 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0311
20300 IVFAIL = IVFAIL + 1
      WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR
 0311 CONTINUE
C
C     ****  FCVS PROGRAM 201  -  TEST 031  ****
C
C        VERIFY WVIN01 IS AN INTEGER VARIABLE.
C
      IVTNUM =  31
      IF (ICZERO) 30310, 0310, 30310
 0310 CONTINUE
      RVCOMP = 10.0
      WVIN01 = 4.0
      RVCOMP = WVIN01/5
      RVCORR = 0.0
40310 IF (RVCOMP) 20310, 10310, 20310
30310 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10310, 0321, 20310
10310 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0321
20310 IVFAIL = IVFAIL + 1
      WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR
 0321 CONTINUE
C
C     ****  FCVS PROGRAM 201  -  TEST 032  ****
C
C        VERIFY XVIN01 IS AN INTEGER VARIABLE.
C
      IVTNUM =  32
      IF (ICZERO) 30320, 0320, 30320
 0320 CONTINUE
      XVIN01 = 4
      RVCOMP = 10.0
      RVCOMP = XVIN01/5
      RVCORR = 0.0
40320 IF (RVCOMP) 20320, 10320, 20320
30320 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10320, 0331, 20320
10320 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0331
20320 IVFAIL = IVFAIL + 1
      WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR
 0331 CONTINUE
C
C     ****  FCVS PROGRAM 201  -  TEST 033  ****
C
C        VERIFY MVIN01 IS A REAL VARIABLE.
C
      IVTNUM =  33
      IF (ICZERO) 30330, 0330, 30330
 0330 CONTINUE
      RVCOMP = 10.0
      MVIN01 = 4
      RVCOMP = MVIN01/5
      RVCORR = 0.8
40330 IF (RVCOMP - 0.79995) 20330, 10330, 40331
40331 IF (RVCOMP - 0.80005) 10330, 10330, 20330
30330 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10330, 0341, 20330
10330 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0341
20330 IVFAIL = IVFAIL + 1
      WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR
 0341 CONTINUE
C
C        TEST 34 AND TEST 35 VERIFY THAT THE IMPLICIT TYPE SPECIFICA-
C     TION FOR A VARIABLE IS OVERRIDDEN BY THE APPEARANCE OF THAT
C     VARIABLE NAME IN A TYPE-STATEMENT.
C
C     REFERENCE   X3.9-1977, SECTION 8.4, TYPE-STATEMENTS
C                            SECTION 8.5, IMPLICIT STATEMENT
C
C
C     ****  FCVS PROGRAM 201  -  TEST 034  ****
C
C        VERIFY YVTN02 IS A REAL VARIABLE.
C
      IVTNUM =  34
      IF (ICZERO) 30340, 0340, 30340
 0340 CONTINUE
      RVCOMP = 10.0
      YVTN02 = 4
      RVCOMP = YVTN02/5
      RVCORR = 0.8
40340 IF (RVCOMP - 0.79995) 20340, 10340, 40341
40341 IF (RVCOMP - 0.80005) 10340, 10340, 20340
30340 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10340, 0351, 20340
10340 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0351
20340 IVFAIL = IVFAIL + 1
      WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR
 0351 CONTINUE
C
C     ****  FCVS PROGRAM 201  -  TEST 035  ****
C
C        VERIFY MVTN02 IS AN INTEGER VARIABLE.
C
      IVTNUM =  35
      IF (ICZERO) 30350, 0350, 30350
 0350 CONTINUE
      RVCOMP = 10.0
      MVTN02 = 4.0
      RVCOMP = MVTN02/5
      RVCORR = 0.0
40350 IF (RVCOMP) 20350, 10350, 20350
30350 IVDELE = IVDELE + 1
      WRITE (I02,80000) IVTNUM
      IF (ICZERO) 10350, 0361, 20350
10350 IVPASS = IVPASS + 1
      WRITE (I02,80002) IVTNUM
      GO TO 0361
20350 IVFAIL = IVFAIL + 1
      WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR
 0361 CONTINUE
C
C
C     WRITE OUT TEST SUMMARY
C
      WRITE (I02,90004)
      WRITE (I02,90014)
      WRITE (I02,90004)
      WRITE (I02,90000)
      WRITE (I02,90004)
      WRITE (I02,90020) IVFAIL
      WRITE (I02,90022) IVPASS
      WRITE (I02,90024) IVDELE
      STOP
90001 FORMAT (1H ,24X,5HFM201)
90000 FORMAT (1H ,20X,20HEND OF PROGRAM FM201)
C
C     FORMATS FOR TEST DETAIL LINES
C
80000 FORMAT (1H ,4X,I5,6X,7HDELETED)
80002 FORMAT (1H ,4X,I5,7X,4HPASS)
80010 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6)
80012 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5)
80018 FORMAT (1H ,4X,I5,7X,4HFAIL,2X,A14,1X,A14)
C
C     FORMAT STATEMENTS FOR PAGE HEADERS
C
90002 FORMAT (1H1)
90004 FORMAT (1H )
90006 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM)
90008 FORMAT (1H ,21X,11HVERSION 1.0)
90010 FORMAT (1H ,8X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978)
90012 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL,5X,8HCOMPUTED,8X,7HCORRECT)
90014 FORMAT (1H ,5X,46H----------------------------------------------)
90016 FORMAT (1H ,18X,17HSUBSET LEVEL TEST)
C
C     FORMAT STATEMENTS FOR RUN SUMMARY
C
90020 FORMAT (1H ,19X,I5,13H TESTS FAILED)
90022 FORMAT (1H ,19X,I5,13H TESTS PASSED)
90024 FORMAT (1H ,19X,I5,14H TESTS DELETED)
      END