
! executable-program		R201(a)
! program-unit			R202(c)
! module			1104(b)
! module-stmt			R1105

MODULE mod1

! specification-part		R204(d)
! declaration-construct		R207(c)
! type-declaration-stmt		R501(c)
! type-spec			R502(b)
! entity-decl-list		xyz-list(a)
! entity-decl			R504(h)

  INTEGER use1, use2

! end-module-stmt		R1106(b)

END MODULE

MODULE mod2

! entity-decl-list		xyz-list(b)

  INTEGER use3
END MODULE

! module			R1104(a)

MODULE mod3
  INTEGER use4
  INTEGER use5

! declaration-construct		R207(b)
! interface-block		R1201(b)
! interface-stmt		R1202(a)
! generic-spec			R1206(b)
! defined-operator		R311(c)
! extended-intrinsic-op		R312
! intrinsic-operator		R310(c)
! add-op			R710(a)

  INTERFACE OPERATOR (+)

! module-procedure-stmt		R1205
! procedure-name-list		xyz-list(b)

    MODULE PROCEDURE fun22

! end-interface-stmt		R1203

  END INTERFACE

! module-subprogram-part	R212(b)
! contains-stmt			R1225

CONTAINS

! module-subprogram		R213(a)
! function-subprogram		R1215(c)
! function-stmt			R1216(e)
! prefix			R1217(b)
! type-spec			R502(k)
! dummy-arg-name-list		xyz-list(a)

  LOGICAL FUNCTION fun22 (dum27, dum28)

! type-declaration-stmt		R501(a)
! attr-spec			R503(f)
! intent-spec			R511(a)

    LOGICAL, INTENT(IN) :: dum27, dum28

! execution-part		R208(b)
! executable-construct		R215(a)
! action-stmt			R216(b)
! assignment-stmt		R735
! variable			R601(a)
! expr				R723(b)
! level-5-expr			R718(b)
! equiv-operand			R717(b)
! or-operand			R716(a)
! or-operand			R716(b)
! and-operand			R715(b)
! level-4-expr			R713(b)
! level-3-expr			R711(b)
! level-2-expr			R707(c)
! add-operand			R706(b)
! mult-operand			R705(b)
! level-1-expr			R703(b)
! primary			R701(c)
! and-op			R720

    fun22 = dum27 .AND. dum28

! end-function-stmt		R1218(b)

  END FUNCTION
END MODULE

MODULE mod4
  INTEGER use6
END MODULE

MODULE mod5

! specification-part		R204(h)

END MODULE

MODULE mod6
END MODULE

MODULE mod7
END MODULE

MODULE mod8
END MODULE

MODULE mod9
END MODULE

MODULE mod13

! module-subprogram-part	R212(a)

CONTAINS

! dummy-arg-name-list		xyz-list(b)

  FUNCTION prc1 (dum37)
    INTEGER prc1
    INTEGER dum37

! primary			R701(a)
! constant			R305(a)
! literal-constant		R306(a)
! int-literal-constant		R404(b)
! digit-string			R402(b)

    prc1 = 0
  END FUNCTION
  FUNCTION prc2 (dum38)
    INTEGER prc2
    LOGICAL dum38
    prc2 = 0
  END FUNCTION
END MODULE

MODULE mod14
CONTAINS
  FUNCTION prc3 (dum39)
    INTEGER prc3
    INTEGER, INTENT(IN) :: dum39
    prc3 = 0
  END FUNCTION
END MODULE

MODULE mod15

! declaration-construct		R207(a)
! derived-type-def		R422(d)
! derived-type-stmt		R424(c)

  TYPE typ17

! component-def-stmt		R426(c)
! component-decl-list		xyz-list(b)
! component-decl		R429(d)

    INTEGER cmp25

! end-type-stmt			R425(b)

  END TYPE
END MODULE


! program-unit			R202(a)
! main-program			R1101(a)
! program-stmt			R1102

PROGRAM prg1

! specification-part		R204(a)
! use-stmt			R1107(a)
! rename-list			xyz-list(a)
! rename			R1108

  USE mod1, loc1 => use1, loc2 => use2

! rename-list			xyz-list(b)

  USE mod2, loc3 => use3

! use-stmt			R1107(b)
! only-list			xyz-list(a)
! only				R1109(a)
! only				R1109(b)
! only				R1109(c)
! access-id			R522(b)
! generic-spec			R1206(b)
! defined-operator		R311(c)
! extended-intrinsic-op		R312

  USE mod3, ONLY : loc4 => use4, use5, OPERATOR (+)

! only-list			xyz-list(b)

  USE mod4, ONLY : use6

! use-stmt			R1107(c)

  USE mod5, ONLY :

! use-stmt			R1107(d)

  USE mod6

  USE mod13
  USE mod14

! implicit-part			R205(a)
! implicit-part-stmt		R206(a)
! implicit-stmt			R540(a)
! type-spec			R502(b)
! implicit-spec-list		xyz-list(a)
! implicit-spec			R541
! letter-spec-list		xyz-list(a)
! letter-spec			R542(a)
! letter-spec			R542(b)
! letter-spec-list		xyz-list(b)

  IMPLICIT INTEGER (a-b, c), INTEGER (d)

! implicit-spec-list		xyz-list(b)

  IMPLICIT INTEGER (e)

! implicit-part-stmt		R206(b)
! parameter-stmt		R538
! named-constant-def-list	xyz-list(a)
! named-constant		R307
! initialization-expr		R730
! expr				R723(b)
! level-5-expr			R718(b)
! equiv-operand			R717(b)
! or-operand			R716(b)
! and-operand			R715(b)
! level-4-expr			R713(b)
! level-3-expr			R711(b)
! level-2-expr			R707(c)
! add-operand			R706(b)
! mult-operand			R705(b)
! level-1-expr			R703(b)
! primary			R701(a)
! constant			R305(a)
! literal-constant		R306(a)
! int-literal-constant		R404(b)
! digit-string			R402(b)

  PARAMETER(con1 = 0, con2 = 0)

! named-constant-def-list	xyz-list(b)

  PARAMETER(con3 = 0)

! implicit-part-stmt		R206(c)
! format-stmt			R1001
! format-specification		R1002(b)

  1360 FORMAT ()

  IMPLICIT INTEGER (f)

! declaration-construct		R207(a)
! derived-type-def		R422(a)
! derived-type-stmt		R424(b)

  TYPE :: typ1

! private-sequence-stmt		R423(b)

    SEQUENCE

! component-def-stmt		R426(a)
! type-spec			R502(i)
! component-attr-spec-list	xyz-list(a)
! component-attr-spec		R427(a)
! component-attr-spec		R427(b)
! component-array-spec		R428(b)
! deferred-shape-spec-list	xyz-list(b)
! deferred-shape-spec		R517
! component-decl-list		xyz-list(a)
! component-decl		R429(a)
! char-length			R508(b)
! component-decl		R429(c)
! component-decl		R429(d)
 
    CHARACTER, POINTER, DIMENSION (:) :: cmp3 * 2, cmp4

! component-attr-spec-list	xyz-list(b)
! component-decl-list		xyz-list(b)
! component-decl		R429(a)

    CHARACTER, POINTER :: cmp1 (:) * 2

! component-def-stmt		R426(b)
! component-decl		R429(b)
! component-array-spec		R428(a)
! explicit-shape-spec-list	xyz-list(b)
! explicit-shape-spec		R513(b)
! upper-bound			R515
! specification-expr		R734
! scalar-int-expr		scalar-xyz
! int-expr			R728

    INTEGER :: cmp2 (2)

! component-def-stmt		R426(c)

    INTEGER cmp7

! end-type-stmt			R425(a)

  END TYPE typ1

! derived-type-def		R422(b)
! derived-type-stmt		R424(c)

  TYPE typ2
    INTEGER cmp8
    INTEGER cmp9

! end-type-stmt			R425(b)

  END TYPE

! derived-type-stmt		R422(c)

  TYPE typ3
    SEQUENCE
    INTEGER cmp10
  END TYPE

! derived-type-stmt		R422(d)

  TYPE typ4
    INTEGER cmp11
  END TYPE

! declaration-construct		R207(b)
! interface-block		R1201(a)
! interface-stmt		R1202(a)
! generic-spec			R1206(a)

  INTERFACE gen1

! interface-body		R1204(a)
! function-stmt			R1216(h)

    FUNCTION fun1 ()

! declaration-construct		R207(c)
! type-declaration-stmt		R501(c)
! entity-decl-list		xyz-list(b)
! entity-decl			R504(l)

      INTEGER fun1

! end-function-stmt		R1218(b)

    END FUNCTION

! module-procedure-stmt		R1205
! procedure-name-list		xyz-list(a)

    MODULE PROCEDURE prc1, prc2

! end-interface-stmt		R1203

  END INTERFACE

! interface-block		R1201(b)
! defined-operator		R311(a)

  INTERFACE OPERATOR (.dopa.)

! procedure-name-list		xyz-list(b)

    MODULE PROCEDURE prc3
  END INTERFACE

! interface-block		R1201(c)
! generic-spec			R1206(c)

  INTERFACE ASSIGNMENT (=)

! interface-body		R1204(b)
! subroutine-stmt		R1220(b)
! dummy-arg-list		xyz-list(a)
! dummy-arg			R1221(a)

    SUBROUTINE sub18 (dum1, dum2)
      USE mod15

! type-declaration-stmt		R501(a)
! type-spec			R502(l)
! attr-spec			R503(f)
! intent-spec			R511(b)
! entity-decl			R504(h)

      TYPE (typ17), INTENT(OUT) :: dum1

! intent-spec			R511(a)

      TYPE (typ17), INTENT(IN) :: dum2

! end-subroutine-stmt		R1222(b)

    END SUBROUTINE
  END INTERFACE

! interface-block		R1201(d)
! interface-stmt		R1202(b)

  INTERFACE
  END INTERFACE

! type-declaration-stmt		R501(a)
! type-spec			R502(a)
! kind-selector			R505(a)
! scalar-int-initialization-expr	scalar-xyz
! int-initialization-expr	R732
! attr-spec			R503(a)
! attr-spec			R503(d)
! array-spec                    R512(a)
! explicit-shape-spec-list	xyz-list(a)
! explicit-shape-spec		R513(a)
! lower-bound			R514
! entity-decl-list		xyz-list(a)
! entity-decl			R504(d)

  INTEGER (KIND = 4), PARAMETER, DIMENSION (0 : 1, 2) :: obj2 = 0, obj3 = 0

! kind-selector			R505(b)
! attr-spec			R503(c)
! attr-spec			R503(k)
! entity-decl			R504(g)
! array-spec			R512(c)
! deferred-shape-spec-list	xyz-list(a)
! deferred-shape-spec		R517

  INTEGER (4), ALLOCATABLE, TARGET :: obj4 (:, :)

! type-spec			R502(a)
! attr-spec			R503(e)
! entity-decl			R504(l)

  INTEGER, EXTERNAL :: fun3

! type-declaration-stmt		R501(b)
! type-spec			R502(c)
! entity-decl			R504(c)

  REAL (4) :: obj5 (2)

! type-spec			R502(d)
! attr-spec			R503(g)

  REAL, INTRINSIC :: sqrt

! type-spec			R502(e)

  DOUBLE PRECISION obj1

! type-spec			R502(f)

  COMPLEX (8) obj6

! type-spec			R502(g)

  COMPLEX obj7

! type-spec			R502(h)
! char-selector			R506(a)
! length-selector		R507(a)
! type-param-value		R509(a)

  CHARACTER (LEN = 2) obj8

! length-selector		R507(b)

  CHARACTER (2) obj9

! length-selector		R507(c)
! char-length			R508(a)

  CHARACTER * (2), obj10

! length-selector		R507(d)

  CHARACTER * 2 obj11

! char-selector			R506(b)

  CHARACTER (LEN = 2, KIND = 1) obj12

! char-selector			R506(c)

  CHARACTER (2, KIND = 1) obj13

! char-selector			R506(d)

  CHARACTER (2, 1) obj14

! char-selector			R506(e)

  CHARACTER (KIND = 1, LEN = 2) obj15

! char-selector			R506(f)
! attr-spec			R503(i)
! entity-decl			R504(e)
! entity-decl			R504(f)

  CHARACTER (KIND = 1), POINTER :: obj16 (:) * 2, obj17 * 2

! entity-decl			R504(a)
! entity-decl			R504(b)
! literal-constant		R306(e)
! char-literal-constant		R420(b)

  CHARACTER :: obj18 (2) * 2 = 'xx', obj19 * 2 = 'xx'

  EXTERNAL fun6

! entity-decl			R504(j)

  CHARACTER fun6 * 2

! type-spec			R502(j)

  LOGICAL (1) obj20

! type-spec			R502(k)

  LOGICAL obj21

  TYPE typ5
    INTEGER cmp20
  END TYPE

  TYPE typ10
    INTEGER cmp12
  END TYPE

  TYPE typ6
    INTEGER cmp21
  END TYPE

  TYPE typ11
    INTEGER, POINTER :: cmp13 (:)
  END TYPE

  TYPE typ12
    CHARACTER * 2 cmp14 (4, 2, 2, 2, 0 : 1, 2, 2)
  END TYPE

  TYPE typ13
    INTEGER cmp15
  END TYPE

  TYPE typ14
    INTEGER cmp16
  END TYPE

  TYPE typ15
    CHARACTER * 2 cmp17
  END TYPE

  TYPE typ7
    INTEGER cmp22, cmp23
  END TYPE

  TYPE typ8
    INTEGER cmp24
  END TYPE

  TYPE typ16
    INTEGER, POINTER :: cmp18 (:)
  END TYPE

! type-spec			R502(l)

  TYPE (typ5) obj22

  INTERFACE OPERATOR (.dopb.)
    INTEGER FUNCTION fun23 (dum29)
      INTEGER, INTENT(IN) :: dum29
    END FUNCTION
  END INTERFACE

  INTERFACE OPERATOR (//)
    INTEGER FUNCTION fun24 (dum30, dum31)
      INTEGER, INTENT(IN) :: dum30, dum31
    END FUNCTION
  END INTERFACE

! defined-binary-op		R311(b)

  INTERFACE OPERATOR (.dopc.)
    LOGICAL FUNCTION fun25 (dum32, dum33)
      LOGICAL, INTENT(IN) :: dum32, dum33
    END FUNCTION
  END INTERFACE

! extended-intrinsic-op         R312
! intrinsic-operator            R310(c)
! add-op                        R710(a)

  INTERFACE
    INTEGER FUNCTION fun10 (dum34)
      INTEGER dum34
    END FUNCTION
    INTEGER FUNCTION fun11 ()
    END FUNCTION
  END INTERFACE

  INTERFACE
    SUBROUTINE sub1 (dum35, dum8, dum9)
      INTEGER dum35, dum8
      INTERFACE
	SUBROUTINE dum9 ()
	END SUBROUTINE
      END INTERFACE
    END SUBROUTINE
  END INTERFACE

  INTERFACE
    SUBROUTINE prc4 ()
    END SUBROUTINE
  END INTERFACE

  INTERFACE
    SUBROUTINE sub2 (*)
    END SUBROUTINE
  END INTERFACE

  INTERFACE
    SUBROUTINE sub3 ()
    END SUBROUTINE
  END INTERFACE

  INTERFACE
    SUBROUTINE sub4
    END SUBROUTINE
  END INTERFACE

  INTERFACE
    FUNCTION fun12 ()
      INTEGER, POINTER :: fun12
    END FUNCTION
  END INTERFACE

  INTEGER arr1, arr2, arr3, arr9, arr10

  INTEGER, DIMENSION (:) :: arr4, arr5, arr6, arr7, arr8, arr11, arr12

  INTEGER var1, var2, var3, var4, var5, var7, var8, var9, var10, var11, &
        & var12, var13, var14

  INTEGER var15, var16 (2), var18 (2, 2), var19, var20

  TYPE (typ10) var17 (2)

  INTEGER, PARAMETER :: con4 = 1

  REAL var21

  TYPE (typ6) var22

  INTEGER var23, var24, var25, var26, var28, var29, var30, var31, var32, &
        & var33, var34

  INTEGER arr13, arr14, arr15, arr16, arr17, arr18

  CHARACTER * 2 var35, var36 (2), var37

  INTEGER var38, var39, var40, var41

  INTEGER var42, var43, var44, var45, var46

  INTEGER obj23, obj24, obj25, obj26, obj27, obj28, obj46, obj47, obj29, &
        & obj30, obj31, obj32

  INTEGER obj33, obj34, obj35, obj36, obj37, obj38, obj39, obj40, obj41, &
        & obj42, obj43, obj44

  INTEGER fun7, dum5, dum6, fun8, dum7, fun9

  INTEGER, ALLOCATABLE :: var47 (:, :), var50 (:)

  TYPE (typ11) var48

  INTEGER var49

  LOGICAL var51

  INTEGER, PARAMETER :: con6 (2) = 1

  INTEGER, PARAMETER :: con8 = 1

! logical-literal-constant	R421(a)

  LOGICAL :: var53 = .TRUE., var54 = .TRUE.

  LOGICAL var55 (5)

  INTEGER :: var56 = 1

  INTEGER var58, var57

  TYPE (typ12) var59

  TYPE (typ13) var60 (2, 2)

! primary			R701(d)
! array-constructor		R431
! ac-value-list			xyz-list(a)
! ac-value			R432(a)

  INTEGER :: var61 (2) = (/1, 2/)

  TYPE (typ14) var62

  CHARACTER * 2 var63

  CHARACTER * 2 var64 (2)

  TYPE (typ15) var65

  CHARACTER * 2, PARAMETER :: con7 = 'xx'

  TYPE (typ7) var66

  TYPE (typ8) var67

  LOGICAL var68

  INTEGER var69

  INTEGER var70

  INTEGER var71

  INTEGER, ALLOCATABLE :: var72 (:), var73 (:)

  INTEGER var74

  INTEGER, POINTER :: var75

  INTEGER var76

  LOGICAL var77, var78, var80

  INTEGER var79, var88, var89

! digit-string			R402(a)

  CHARACTER * 16 var81, var82, var83, var84, var85, var86, var87, var90, &
               & var91, var92, var93, var94, var95, var96, var97

  INTEGER var98

  INTEGER, POINTER :: var99 (:), var101 (:)

  TYPE (typ16) var100

  INTEGER var102

  INTEGER, POINTER :: var103, var105
  INTEGER, TARGET :: var104

  INTEGER var142

  INTEGER var106

  INTEGER var107, var108, var109
  INTEGER var110, var111 (2), var112

  INTEGER var143

  INTEGER var113

  INTEGER var141

  LOGICAL :: var114 (2) = .TRUE.
  INTEGER var115 (2)

  CHARACTER * 8 var116

  INTEGER :: var144 = 1

  INTEGER var117

  INTEGER var118, var119, var120

  INTEGER var121, var122, var123, var124, var126, var127
  INTEGER :: var125 = 1, var128 = 1

  LOGICAL :: var129 (2) = .TRUE., var132 (2) = .TRUE., var134 (2) = .TRUE., &
           & var136 (2) = .TRUE., var137 (2), var139 (2)
  INTEGER var130 (2), var131 (2), var133 (2), var135 (2), var138 (2)

  INTEGER var140

  INTEGER con5

  INTEGER, PARAMETER :: con11 = 4

! int_literal-constant		R404(a)
! kind-param			R405(a)
! kind-param			R405(b)

  INTEGER, PARAMETER :: con9 = 0_4, con10 = 0_con11

! literal-constant		R306(b)
! real-literal-constant		R413(a)
! significand			R414(a)
! exponent-letter		R415(a)
! signed-digit-string		R401(a)
! sign				R406(a)
! real-literal-constant		R413(b)
! significand			R414(b)
! real-literal-constant		R413(c)
! significand			R414(c)
! sign				R406(b)
! real-literal-constant		R413(d)
! real-literal-constant		R413(e)
! signed-digit-string		R401(b)
! real-literal-constant		R413(f)

  REAL, PARAMETER :: con12 = 1.0E+1_4, con13 = 1._4, con14 = .1D-4, &
                   & con15 = 1.0, con16 = 1E0_4, con17 = 1E0

! literal-constant		R306(c)
! complex-literal-constant	R417
! real-part			R418(a)
! signed-int-literal-constant	R403(a)
! imag-part			R419(a)
! signed-int-literal-constant	R403(b)
! real-part			R418(b)
! signed-real-literal-constant	R403(a)
! imag-part			R419(b)
! signed-real-literal-constant	R403(b)

  COMPLEX, PARAMETER :: con18 = (+1, 0), con19 = (+1.0, 0.0)

! literal-constant		R306(e)
! char-literal-constant		R420(a)
! char-literal-constant		R420(b)
! char-literal-constant		R420(c)
! char-literal-constant		R420(d)
! char-literal-constant		R420(e)
! char-literal-constant		R420(f)
! char-literal-constant		R420(g)
! char-literal-constant		R420(h)

  CHARACTER, PARAMETER :: con20 = 1_'xx', con21 = 'xx', con22 = 1_'', &
                        & con23 = '', con24 = 1_"xx", con25 = "xx",   &
                        & con26 = 1_"", con27 = ""

! declaration-construct		R207(d)
! specification-stmt		R214(b)
! allocatable-stmt		R526(a)
! allocatable-stmt'		R526(i)

  ALLOCATABLE :: arr1 (:), arr2 (:)

! allocatable-stmt		R526(b)
! allocatable-stmt'		R526(j)

  ALLOCATABLE arr3 (:), arr4

! allocatable-stmt		R526(c)

  ALLOCATABLE :: arr5, arr6

! allocatable-stmt		R526(d)

  ALLOCATABLE arr7, arr8

! allocatable-stmt		R526(e)

  ALLOCATABLE :: arr9 (:)

! allocatable-stmt		R526(f)

  ALLOCATABLE arr10 (:)

! allocatable-stmt		R526(g)

  ALLOCATABLE :: arr11

! allocatable-stmt		R526(h)

  ALLOCATABLE arr12

! specification-stmt		R214(c)
! common-stmt			R548(a)
! common-block-object-list	xyz-list(a)
! common-block-object		R549(a)
! common-block-object		R549(b)
! common-stmt'			R548(g)
! common-block-object-list	xyz-list(b)

  COMMON /com1/ var1 (2), var2, /com2/ var3

! common-stmt			R548(b)

  COMMON // var4 /com3/ var5

! common-stmt			R548(c)

  COMMON var6 /com4/ var7

! common-stmt'			R548(i)

  COMMON /com5/ var8, // var9

! common-stmt'			R548(j)

  COMMON /com6/ var10 // var11

! common-stmt			R548(d)

  COMMON /com7/ var12

! common-stmt			R548(e)

  COMMON // var13

! common-stmt			R548(f)

  COMMON var14

! specification-stmt		R214(d)
! data-stmt			R529(a)
! data-stmt'			R529(c)
! data-stmt'			R529(d)
! data-stmt-set			R530
! data-stmt-object-list		xyz-list(a)
! data-stmt-object		R531(a)
! variable			R601(a)
! data-stmt-object		R531(b)
! structure-component		R614
! data-ref			R612(a)
! part-ref			R613(b)
! data-implied-do		R535(a)
! data-i-do-object-list		xyz-list(a)
! data-i-do-object		R536(a)
! array-element			R615
! data-ref			R612(b)
! part-ref			R613(a)
! section-subscript-list	xyz-list(b)
! section-subscript		R618(a)
! subscript			R617
! primary			R701(c)
! section-subscript-list	xyz-list(a)
! data-i-do-object		R536(b)
! data-i-do-object		R536(c)
! data-implied-do		R535(b)
! data-i-do-object-list		xyz-list(b)
! data-i-do-variable		R537
! scalar-int-variable		scalar-xyz
! int-variable			R607
! data-stmt-value-list		xyz-list(a)
! data-stmt-value		R532(a)
! data-stmt-value		R532(b)
! data-stmt-repeat		R534
! data-stmt-constant		R533(a)
! data-stmt-constant		R533(b)
! signed-int-literal-constant	R403(b)
! data-stmt-object-list		xyz-list(b)
! data-stmt-value-list		xyz-list(b)
! data-stmt-constant		R533(c)
! signed-real-literal-constant	R412(b)
! real-literal-constant		R413(d)
! significand			R414(a)
! data-stmt-constant		R533(d)
! structure-constructor		R430
! expr-list			xyz-list(b)

  DATA var15, (var16 (var20), var17 (var20) % cmp12, &
             & (var18 (var19, var20), var19 = 1, 2), &
             &  var20 = 1, 2, 1) /8 * con4, 0/, var21 /0.0/ var22 /typ6 (0)/

! data-stmt			R529(b)
! data-stmt-constant		R533(e)
! boz-literal-constant		R407(a)
! binary-constant		R408(a)

  DATA var23 /B'10'/

! binary-constant		R408(b)

  DATA var24 /B'0'/

! binary-constant		R408(c)

  DATA var25 /B"10"/

! binary-constant		R408(d)

  DATA var26 /B"0"/

! boz-literal-constant		R407(b)
! octal-constant		R409(a)

  DATA var27 /O'10'/

! octal-constant		R409(b)

  DATA var28 /O'0'/

! octal-constant		R409(c)

  DATA var29 /O"10"/

! octal-constant		R409(d)

  DATA var30 /O"0"/

! boz-literal-constant		R407(c)
! hex-constant			R410(a)
! hex-digit			R411(a)
! hex-digit			R411(b)
! hex-digit			R411(c)
! hex-digit			R411(d)
! hex-digit			R411(e)
! hex-digit			R411(f)
! hex-digit			R411(g)

  DATA var31 /Z'1ABCDEF'/

! hex-constant			R410(b)

  DATA var32 /Z'0'/

! hex-constant			R410(c)

  DATA var33 /Z"10"/

! hex-constant			R410(d)

  DATA var34 /Z"0"/

! specification-stmt		R214(e)
! dimension-stmt		R525(a)

  DIMENSION :: arr13 (2), arr14 (2)

! dimension-stmt		R525(b)

  DIMENSION arr15 (2), arr16 (2)

! dimension-stmt		R525(c)

  DIMENSION :: arr17 (2)

! dimension-stmt		R525(d)

  DIMENSION arr18 (2)

! specification-stmt		R214(f)
! equivalence-stmt		R545
! equivalence-set-list		xyz-list(a)
! equivalence-set		R546
! equivalence-object		R547(a)
! equivalence-object-list	xyz-list(a)
! equivalence-object		R547(b)
! equivalence-object		R547(c)
! substring			R609
! parent-string			R610(a)
! substring-range		R611(a)
! equivalence-object-list	xyz-list(b)

  EQUIVALENCE (var35, var36 (1), var37 (1 : 2)), (var38, var39)

! equivalence-set-list		xyz-list(b)

  EQUIVALENCE (var40, var41)

! specification-stmt		R214(g)
! external-stmt			R1207
! external-name-list		xyz-list(a)

  EXTERNAL ext1, ext2

! external-name-list		xyz-list(b)

  EXTERNAL ext3

! specification-stmt		R214(i)
! intrinsic-stmt		R1207
! intrinsic-procedure-name-list	xyz-list(a)

  INTRINSIC sin, cos

! intrinsic-procedure-name-list	xyz-list(b)

  INTRINSIC tan

! specification-stmt		R214(j)
! namelist-stmt			R543(a)
! namelist-group-object-list	xyzlist(a)
! namelist-group-object		R544
! namelist-stmt'		R543(c)
! namelist-group-object-list	xyzlist(b)
! namelist-stmt'		R543(d)

  NAMELIST /nml1/ var42, var43 /nml2/ var44 /nml3/ var45

! namelist-stmt			R543(b)

  NAMELIST /nml4/ var46

  NAMELIST /nml5/ var143

  NAMELIST /nml6/ var144

! specification-stmt		R214(j)
! pointer-stmt			R527(a)
! pointer-stmt'			R527(i)

  POINTER :: obj23 (:), obj24 (:)

! pointer-stmt			R527(b)
! pointer-stmt'			R527(j)

  POINTER obj25 (:), obj26

! pointer-stmt			R527(c)

  POINTER :: obj27, obj28

! pointer-stmt			R527(d)

  POINTER obj46, obj47

! pointer-stmt			R527(e)

  POINTER :: obj29 (:)

! pointer-stmt			R527(f)

  POINTER obj30 (:)

! pointer-stmt			R527(g)

  POINTER :: obj31

! pointer-stmt			R527(h)

  POINTER obj32

! specification-stmt		R214(n)
! target-stmt			R528(a)
! target-stmt'			R528(i)

  TARGET :: obj33 (2), obj34 (2)

! target-stmt			R528(b)
! target-stmt'			R528(j)

  TARGET obj35 (2), obj36

! target-stmt			R528(c)

  TARGET :: obj37, obj38

! target-stmt			R528(d)

  TARGET obj39, obj40

! target-stmt			R528(e)

  TARGET :: obj41 (2)

! target-stmt			R528(f)

  TARGET obj42 (2)

! target-stmt			R528(g)

  TARGET :: obj43

! target-stmt			R528(h)

  TARGET obj44

! declaration-construct		R207(e)

  PARAMETER(con5 = 0)

! declaration-construct		R207(f)
! format-stmt			R1001
! format-specification		R1002(a)
! format-item-list		xyz-list(a)
! format-item			R1003(a)
! r				R1004
! data-edit-desc		R1005(a)
! w				R1006
! m				R1007
! format-item			R1003(b)
! data-edit-desc		R1005(b)
! data-edit-desc		R1005(c)
! data-edit-desc		R1005(d)
! data-edit-desc		R1005(e)
! data-edit-desc		R1005(f)
! data-edit-desc		R1005(g)
! data-edit-desc		R1005(h)
! data-edit-desc		R1005(i)
! data-edit-desc		R1005(j)
! d				R1008
! e				R1009
! data-edit-desc		R1005(k)
! data-edit-desc		R1005(l)
! data-edit-desc		R1005(m)
! data-edit-desc		R1005(n)
! data-edit-desc		R1005(o)
! data-edit-desc		R1005(p)
! data-edit-desc		R1005(q)
! data-edit-desc		R1005(r)
! data-edit-desc		R1005(s)
! data-edit-desc		R1005(t)
! data-edit-desc		R1005(u)
! format-item			R1003(c)
! control-edit-desc		R1010(a)
! position-edit-desc		R1012(a)
! n				R1013
! position-edit-desc		R1012(b)
! position-edit-desc		R1012(c)
! position-edit-desc		R1012(d)
! control-edit-desc		R1010(b)
! control-edit-desc		R1010(c)
! control-edit-desc		R1010(d)
! control-edit-desc		R1010(e)
! sign-edit-desc		R1014(a)
! k				R1011
! format-item			R1003(d)
! char-string-edit-desc		R1016(a)
! char-string-edit-desc		R1016(b)
! c				R1017
! format-item			R1003(e)
! format-item-list		xyz-list(b)
! format-item			R1003(f)

  1260 FORMAT (2I2.1, I2, B2.1, B2, O2.1, O2, Z2.1, Z2, F4.1, E8.2E2, E8.2, &
             & EN8.2E2, EN8.2, ES8.2E2, ES8.2, G8.2E2, G8.2, L2, A2, A, D8.2, &
             & T8, TL8, TR8, 2X, 2/, /, :, S, 'xx', 2Hxx, 2(I2), (I2, I2))

! control-edit-desc		R1010(g)
! blank-interp-edit-desc	R1015(a)

  1270 FORMAT (BN, I2)

! blank-interp-edit-desc	R1015(b)

  1280 FORMAT (BZ, I2)

! sign-edit-desc		R1014(b)

  1290 FORMAT (SP, I2)

! sign-edit-desc		R1014(c)

  1300 FORMAT (SS, I2)

! control-edit-desc		R1010(f)

  1310 FORMAT (8P, F4.1)

! format-specification		R1002(b)

  1320 FORMAT ()

! declaration-construct		R207(h)
! stmt-function-stmt		R1226(a)
! dummy-arg-name-list		xyz-list(a)

  fun7 (dum5, dum6) = 0

! dummy-arg-name-list		xyz-list(a)

  fun8 (dum7) = dum7

! stmt-function-stmt		R1226(b)

  fun9 () = 0

! execution-part		R208
! executable-construct		R215(a)
! action-stmt			R216(a)
! allocate-stmt			R622(a)
! allocation-list		xyz-list(a)
! allocation			R624(a)
! allocate-object		R625(a)
! allocate-shape-spec-list	xyz-list(a)
! allocate-shape-spec		R626(a)
! allocate-lower-bound		R627
! allocate-upper-bound		R628
! allocate-shape-spec		R626(b)
! allocate-object		R625(b)
! allocate-shape-spec-list	xyz-list(b)
! stat-variable			R623

  ALLOCATE (var47 (0 : 1, 2), var48 % cmp13 (2), STAT = var49)

! execution-part-construct	R209(a)
! allocate-stmt			R622(b)
! allocation-list		xyz-list(b)
! allocation			R624(b)

  ALLOCATE(var50 (2))

! action-stmt			R216(b)
! assignment-stmt		R735
! expr				R723(a)
! level-5-expr			R718(a)
! equiv-operand			R717(a)
! or-operand			R716(a)
! and-operand			R715(a)
! not-op			R719
! level-4-expr			R713(a)
! level-3-expr			R711(a)
! level-2-expr			R707(a)
! level-2-expr			R707(b)
! add-op			R710(a)
! add-operand			R706(a)
! mult-operand			R705(a)
! level-1-expr			R703(a)
! power-op			R708
! constant-subobject		R702
! subobject			R602(a)
! mult-op			R709(a)
! add-op			R710(b)
! constant			R305(b)
! concat-op			R712
! rel-op			R710(a)
! and-op			R720
! or-op				R721
! equiv-op			R722(a)
! literal-constant		R306(d)
! logical-literal-constant	R421(a)
! logical-literal-constant	R421(b)

  var51 = .NOT. + .dopb. 2 ** con6 (1) * 2 - 1 // con8 .EQ. 0 .AND. &
        & var53 .OR. var54 .EQV. .TRUE. .dopc. .FALSE.

! variable			R601(b)
! rel-op			R714(b)
! primary			R701(d)
! array-constructor		R431
! ac-value-list			xyz-list(a)
! ac-value			R432(a)
! ac-value			R432(b)
! ac-implied-do			R433
! ac-value-list			xyz-list(b)
! ac-implied-do-control		R434(a)
! ac-do-variable		R435
! ac-implied-do-control		R434(b)
! equiv-op			R722(b)
! primary			R701(f)
! function-reference		R1209(a)
! actual-arg-spec-list		xyz-list(b)
! actual-arg-spec		R1211(b)
! actual-arg			R1213(a)
! rel-op			R714(c)
! primary			R701(g)
! function-referece		R1209(b)
! mult-op			R709(b)

  var55 = var56 .NE. (/0, ((2 * var57 + var58, var58 = 1, 2, 1), &
        & var57 = 0, 1)/) .NEQV. fun10 (0) .LT. (fun11 () / 2)

! variable			R601(c)
! subobject			R602(b)
! array-section			R616(a)
! section-subscript		R618(b)
! subscript-triplet		R619(a)
! subscript-triplet		R619(b)
! subscript-triplet		R619(c)
! subscript-triplet		R619(d)
! subscript-triplet		R619(e)
! subscript-triplet		R619(f)
! subscript-triplet		R619(g)
! stride			R620

  var59 % cmp14 (1 : 3 : 2, : 2 : 1, 2 : : 1, : : 2, 0 : 1, : 2, 2 :) (1 : 2) &
    & = 'xx'

! array-section			R616(b)
! subscript-triplet		R619(h)
! vector-subscript		R621

  var60 (:, var61) % cmp15 = 0

! subobject			R602(c)

  var62 % cmp16 = 0

! subobject			R602(d)
! substring-range		R611(b)

  var63 (: 2) = 'xx'

! parent-string			R610(b)
! substring-range		R611(c)

  var64 (1) (2 :) = 'xx'

! parent-string			R610(c)
! substring-range		R611(d)
! parent-string			R610(d)

  var65 % cmp17 (:) = con7 (:)

! primary			R701(e)
! expr-list			xyz-list(a)

  var66 = typ7 (0, 0)

  var67 = typ8 (0)

! rel-op			R714(d)
! rel-op			R714(e)
! rel-op			R714(f)
! rel-op			R714(g)
! rel-op			R714(h)
! rel-op			R714(i)
! rel-op			R714(j)
! rel-op			R714(k)
! rel-op			R714(j)

  var68 = 0 .LE. 1 .AND. 1 .GT. 0 .AND. 1 .GE. 0 .AND. 1 == 1 .AND. &
        & 1 /= 0 .AND. 0 < 1 .AND. 0 <= 1 .AND. 1 > 0 .AND. 1 >= 0

! action-stmt			R216(c)
! backspace-stmt		R919(a)
! external-file-unit		R902

  BACKSPACE 2

! backspace-stmt		R919(b)
! position-spec-list		xyz-list(a)
! position-spec			R922(a)
! position-spec			R922(c)
! scalar-default-int-variable	scalar-xyz
! default-int-variable		R608

  BACKSPACE (UNIT = 2, IOSTAT = var69)

! position-spec			R922(b)
! position-spec			R922(d)

  BACKSPACE (2, ERR = 1000)

! continue-stmt			R841

  1000 CONTINUE

! position-spec-list		xyz-list(b)

  BACKSPACE (2)

! action-stmt			R216(d)
! call-stmt			R1210(a)
! actual-arg-spec-list		xyz-list(a)
! actual-arg-spec		R1211(a)
! keyword			R1212
! actual-arg			R1213(b)
! actual-arg			R1213(c)

  CALL sub1 (0, dum8 = var70, dum9 = prc4)

! actual-arg			R1213(d)
! alt-return-spec		R1214

  CALL sub2 (* 1010)
  1010 CONTINUE

! call-stmt			R1210(b)

  CALL sub3 ()

! call-stmt			R1210(c)

  CALL sub4

! action-stmt			R216(e)
! close-stmt			R907
! close-spec-list		xyz-list(a)
! close-spec			R908(a)
! close-spec			R908(c)
! close-spec			R908(e)
! scalar-default-char-expr	scalar-xyz
! default-char-expr		R727

  CLOSE (UNIT = 2, IOSTAT = var71, STATUS = 'KEEP')

! close-spec			R908(b)
! close-spec			R908(d)

  CLOSE (2, ERR = 1020)
  1020 CONTINUE

! close-spec-list		xyz-list(b)

  CLOSE (2)

! action-stmt			R216(f)
! computed-goto-stmt		R837(a)
! label-list			xyz-list(a)

  GO TO (1030, 1040), 1
  1030 CONTINUE
  1040 CONTINUE

! computed-goto-stmt		R837(b)
! label-list			xyz-list(b)

  GO TO (1050) 1
  1050 CONTINUE

! action-stmt			R216(g)
! continue-stmt			R841

  CONTINUE

! action-stmt			R216(i)
! deallocate-stmt		R631(a)
! allocate-object-list		xyz-list(a)

  DEALLOCATE (var72, var73, STAT = var74)

! deallocate-stmt		R631(b)
! allocate-object-list		xyz-list(b)

  DEALLOCATE (var75)

! action-stmt			R216(j)
! endfile-stmt			R920(a)

  ENDFILE 2

! endfile-stmt			R920(b)

  ENDFILE (2)

! action-stmt			R216(o)
! goto-stmt			R836

  GO TO 1060
  1060 CONTINUE

! action-stmt			R216(p)
! if-stmt			R807
! scalar-logical-expr		scalar-xyz
! logical-expr			R725

  IF (.TRUE.) CONTINUE

! action-stmt			R216(q)
! inquire-stmt			R923(a)
! inquire-spec-list		xyz-list(a)
! inquire-spec			R924(a)
! inquire-spec			R924(d)

  INQUIRE (UNIT = 2, IOSTAT = var76)

! inquire-spec			R924(b)
! inquire-spec			R924(e)

  INQUIRE (2, ERR = 1070)
  1070 CONTINUE

! inquire-spec			R924(c)
! inquire-spec			R924(f)
! scalar-default-logical-variable	scalar-xyz
! default-logical-variable	R604
! file-name-expr		R906

  INQUIRE (FILE = 'xx', EXIST = var77)

! inquire-spec			R924(g)

  INQUIRE (2, OPENED = var78)

! inquire-spec			R924(h)

  INQUIRE (2, NUMBER = var79)

! inquire-spec			R924(i)

  INQUIRE (2, NAMED = var80)

! inquire-spec			R924(j)
! scalar-default-char-variable	scalar-xyz
! default-char-variable		R606

  INQUIRE (2, NAME = var81)

! inquire-spec			R924(k)

  INQUIRE (2, ACCESS = var82)

! inquire-spec			R924(l)

  INQUIRE (2, SEQUENTIAL = var83)

! inquire-spec			R924(m)

  INQUIRE (2, DIRECT = var84)

! inquire-spec			R924(n)

  INQUIRE (2, FORM = var85)

! inquire-spec			R924(o)

  INQUIRE (2, FORMATTED = var86)

! inquire-spec			R924(p)

  INQUIRE (2, UNFORMATTED = var87)

! inquire-spec			R924(q)

  INQUIRE (2, RECL = var88)

! inquire-spec			R924(r)

  INQUIRE (2, NEXTREC = var89)

! inquire-spec			R924(s)

  INQUIRE (2, BLANK = var90)

! inquire-spec			R924(t)

  INQUIRE (2, POSITION = var91)

! inquire-spec			R924(u)

  INQUIRE (2, ACTION = var92)

! inquire-spec			R924(v)

  INQUIRE (2, READ = var93)

! inquire-spec			R924(w)

  INQUIRE (2, WRITE = var94)

! inquire-spec			R924(x)

  INQUIRE (2, READWRITE = var95)

! inquire-spec			R924(y)

  INQUIRE (2, DELIM = var96)

! inquire-spec			R924(z)

  INQUIRE (2, PAD = var97)

! inquire-spec-list		xyz-list(b)

  INQUIRE (2)

! inquire-stmt			R923(b)
! output-item-list		xyz-list(b)
! output-item			R915(a)

  INQUIRE (IOLENGTH = var98) 0

! action-stmt			R216(r)
! nullify-stmt			R629
! pointer-object-list		xyz-list(a)
! pointer-object		R630(a)
! pointer-object		R630(b)

  NULLIFY (var99, var100 % cmp18)

! pointer-object-list		xyz-list(b)

  NULLIFY (var101)

! action-stmt			R216(s)
! open-stmt			R904
! connect-spec-list		xyz-list(a)
! connect-spec			R905(a)
! connect-spec			R905(c)
! connect-spec			R905(e)
! connect-spec			R905(f)
! connect-spec			R905(g)
! connect-spec			R905(h)
! connect-spec			R905(i)
! connect-spec			R905(j)
! connect-spec			R905(k)
! connect-spec			R905(l)
! connect-spec			R905(n)

  OPEN (UNIT = 2, IOSTAT = var102, FILE = 'xx', STATUS = 'UNKNOWN', &
      & ACCESS = 'SEQUENTIAL', FORM = 'FORMATTED', RECL = 64, &
      & BLANK = 'NULL', POSITION = 'ASIS', ACTION = 'READ', PAD = 'YES')

! connect-spec			R905(b)
! connect-spec			R905(d)
! connect-spec			R905(m)

  OPEN (2, ERR = 1080, DELIM = 'NONE')
  1080 CONTINUE

! connect-spec-list		xyz-list(b)

  OPEN (2)

! action-stmt			R216(t)
! pointer-assignment-stmt	R736
! target			R737(a)

  var103 => var104

! target			R737(b)

  var105 => fun12 ()

! action-stmt			R216(u)
! print-stmt			R911(a)
! format			R913(a)
! output-item-list		xyz-list(a)
! output-item			R915(b)
! io-implied-do			R916
! io-implied-do-object-list	xyz-list(a)
! io-implied-do-object		R917(b)
! io-implied-do-control		R918(a)

  PRINT '(5I2)', 0, (var142, var142 + 1, var142 = 1, 3, 2)

! format			R913(b)
! io-implied-do-object-list	xyz-list(b)
! io-implied-do-control		R918(b)
! scalar-numeric-expr		scalar-xyz
! numeric-expr			R729

  PRINT 1090, (var106, var106 = 0, 1)
  1090 FORMAT (2I2)

! print-stmt			R911(b)
! format			R913(c)

  PRINT *

! action-stmt			R216(c)
! assign-stmt			R838

  ASSIGN 1340 TO var107
  1340 FORMAT (3I2)

! action-stmt			R216(v)
! read-stmt			R909(a)
! io-control-spec-list		xyz-list(a)
! io-control-spec		R912(a)
! io-unit			R901(a)
! io-control-spec		R912(c)
! format			R913(d)
! io-control-spec		R912(h)
! io-control-spec		R912(k)
! io-control-spec		R912(l)
! io-control-spec		R912(m)
! input-item-list		xyz-list(a)
! input-item			R914(a)
! input-item			R914(b)
! io-implied-do-object		R917(a)

  READ (UNIT = 5, FMT = var107, IOSTAT = var108, ADVANCE = 'NO', &
      & SIZE = var109, EOR = 1100) var110, (var111 (var112), var112 = 1, 2)
  1100 CONTINUE

! read-stmt			R909(b)
! io-control-spec		R912(b)
! io-unit			R901(b)
! io-control-spec		R912(e)
! io-control-spec		R912(i)
! io-control-spec		R912(j)

  READ (*, NML = nml5, ERR = 1110, END = 1120)
  1110 CONTINUE
  1120 CONTINUE

! read-stmt			R909(c)
! input-item-list		xyz-list(b)

  READ '(I1)', var113

! read-stmt			R909(c)

  READ '()'

! io-control-spec		R912(g)

  READ (2, REC = 4) var141

! action-stmt			R216(x)
! rewind-stmt			R921(a)

  REWIND 2

! rewind-stmt			R921(b)

  REWIND (2)

! action-stmt			R216(y)
! stop-stmt			R842(a)
! stop-code			R843(a)

  STOP 'xx'

! stop-code			R843(b)

  STOP 12345

! stop-code			R843(c)

  STOP 1234

! stop-code			R843(d)

  STOP 123

! stop-code			R843(e)

  STOP 12

! stop-code			R843(f)

  STOP 1

! stop-stmt			R842(b)

  STOP

! action-stmt			R216(z)
! where-stmt			R738
! mask-expr			R741

  WHERE (var114) var115 = 0

! action-stmt			R216(a)
! write-stmt			R910(a)
! io-control-spec		R912(d)
! io-unit			R901(c)
! internal-file-unit		R903

  WRITE (var116, '(I1)') 0

! write-stmt			R910(b)
! io-control-spec		R912(f)

  WRITE (6, nml6)

! io-control-spec-list		xyz-list(b)

  WRITE (6)

! action-stmt			R216(b)
! arithmetic-if-stmt		R840

  IF (1) 1130, 1140, 1150
  1130 CONTINUE
  1140 CONTINUE
  1150 CONTINUE

! action-stmt			R216(c)
! assign-stmt			R838

  ASSIGN 1160 TO var117
  1160 CONTINUE

  ASSIGN 1170 TO var118
  1170 CONTINUE

! action-stmt			R216(d)
! assigned-goto-stmt		R839(a)

  GO TO var118, (1170)

  ASSIGN 1180 TO var119
  1180 CONTINUE

! assigned-goto-stmt		R839(b)

  GO TO var119 (1180)

  ASSIGN 1350 TO var120
  1350 CONTINUE

! assigned-goto-stmt		R839(c)

  GO TO var120

! action-stmt			R216(e)
! pause-stmt			R844(a)

  PAUSE 'xx'

! pause-stmt			R844(b)

  PAUSE

! executable-construct		R215(b)
! case-construct		R808(a)
! select-case-stmt		R809(a)
! case-expr			R812(a)

  cas1 : SELECT CASE (1)

! case-construct'		R808(c)
! case-stmt			R810(a)
! case-selector			R813(a)
! case-value-range-list		xyz-list(a)
! case-value-range		R814(a)
! case-value			R815(a)
! case-value-range		R814(b)
! case-value-range		R814(c)
! case-value-range		R814(d)

    CASE (1, 4 :, : 0, 2 : 3) cas1

! block				R801(a)

      CONTINUE

! case-stmt			R810(b)
! case-selector			R813(b)

    CASE DEFAULT

! block				R801(b)

! end-select-stmt		R811(a)

  END SELECT cas1

! select-case-stmt		R809(b)
! case-expr			R812(b)
! scalar-char-expr		scalar-xyz
! char-expr			R726

  SELECT CASE ('xx')

! case-value-range-list		xyz-list(b)
! case-value			R815(b)
! scalar-char-initialization-expr	scalar-xyz
! char-initializationexpr	R726

    CASE ('xx')
      CONTINUE

! end-select-stmt		R811(b)

  END SELECT

! case-expr			R812(c)

  SELECT CASE (.TRUE.)

! case-value			R815(c)
! scalar-logical-initialization-expr	scalar-xyz
! logical-initialization-expr	R733

    CASE (.TRUE.)
      CONTINUE

  END SELECT

! case-construct		R808(b)

  SELECT CASE (1)
  END SELECT

! executable-construct		R215(c)
! do-construct			R816(a)
! block-do-construct		R817
! do-stmt			R818(a)
! label-do-stmt			R819(a)
! loop-control			R821(a)
! do-variable			6822

  doc1 : DO 1190, var121 = 1, 3, 2

! do-block			R823
! action-stmt			R216(h)
! cycle-stmt			R834(a)

    CYCLE doc1

! end-do			R824(a)
! end-do-stmt			R825(a)

  1190 END DO doc1

! label-do-stmt			R819(b)
! loop-control			R821(b)

  DO 1200 var122 = 1, 3, 2

! cycle-stmt			R834(b)

    CYCLE

! end-do-stmt			R825(b)

  1200 END DO

! label-do-stmt			R819(c)

  doc2 : DO 1210

! action-stmt			R216(n)
! exit-stmt			R835(a)

    EXIT doc2
  1210 END DO doc2

! label-do-stmt			R819(d)

  DO 1220

! exit-stmt			R835(b)

    EXIT

! end-do			R824(b)

  1220 CONTINUE

! do-stmt			R818(b)
! nonlabel-do-stmt		R820(a)
! loop-control			R821(c)

  doc3 : DO, var123 = 1, 2
    CONTINUE
  END DO doc3

! nonlabel-do-stmt		R820(b)
! loop-control			R821(d)

  DO var124 = 1, 2
    CONTINUE
  END DO

! nonlabel-do-stmt		R820(c)

  doc4 : DO
    EXIT
  END DO doc4

! nonlabel-do-stmt		R820(d)

  DO
    EXIT
  END DO

! do-construct			R816(b)
! nonblock-do-construct		R826(a)
! action-term-do-construct	R827
! loop-control			R821(e)

  DO 1230, WHILE (var125 .NE. 0)

! do-body			R828(a)

    CONTINUE

! do-term-action-stmt		R829

  1230 var125 = 0

! nonblock-do-construct		R826(b)
! outer-shared-do-construct	R830
! loop-control			R821(f)

  DO 1240 WHILE (var128 .NE. 0)

! do-body			R828(b)

! shared-term-do-construct	R831(a)

    DO 1240 var126 = 1, 2
      CONTINUE

! shared-term-do-construct	R831(b)
! inner-shared-do-construct	R832

      DO 1240 var127 = 1, 2
        CONTINUE

! do-term-shared-stmt		R833

  1240 var128 = 0

! executable-construct		R215(d)
! if-construct			R802(a)
! if-then-stmt			R803(a)

  ifc1 : IF (.TRUE.) THEN
    CONTINUE

! if-construct'			R802(e)
! else-if-stmt			R804(a)

  ELSE IF (.TRUE.) THEN ifc1
    CONTINUE

! else-stmt			R805(a)

  ELSE ifc1
    CONTINUE

! end-if-stmt			R806(a)

  END IF ifc1

! if-construct			R802(b)
! if-then-stmt			R803(b)

  IF (.TRUE.) THEN
    CONTINUE

! else-stmt			R805(b)

  ELSE
    CONTINUE

! end-if-stmt			R806(b)

  END IF

! if-construct			R802(c)

  IF (.TRUE.) THEN
    CONTINUE

! else-if-stmt			R804(b)

  ELSE IF (.TRUE.) THEN
    CONTINUE
  END IF

! if-construct			R802(d)

  IF (.TRUE.) THEN
    CONTINUE
  END IF

! executable-construct		R215(e)
! where-construct		R739(a)
! where-construct-stmt		R740

  WHERE (var129)
    var130 = 0

! elsewhere-stmt		R742

  ELSEWHERE
    var131 = 0

! end-where-stmt		R743

  END WHERE

! where-construct		R739(b)

  WHERE (var132)
  ELSEWHERE
    var133 = 0
  END WHERE

! where-construct		R739(c)

  WHERE (var134)
    var135 = 0
  END WHERE

! where-construct		R739(d)

  WHERE (var136)
  END WHERE

! where-construct		R739(e)

  WHERE (var137)
    var138 = 0
  ELSEWHERE
  END WHERE

! where-construct		R739(f)

  WHERE (var139)
  ELSEWHERE
  END WHERE

! execution-part-construct	R209(b)

  1330 FORMAT ()

! execution-part-construct	R209(c)

  DATA var140 /0/

! label				R313(a)

  11111 CONTINUE

! label				R313(b)

  1111 CONTINUE

! label				R313(c)

  111 CONTINUE

! label				R313(d)

  11 CONTINUE

! label				R313(e)

  1 CONTINUE

! internal-subprogram-part	R210(a)
! contains-stmt			R1225

CONTAINS

! internal-subprogram		R211(a)
! function-subprogram		R1215(c)
! function-stmt			R1216(g)

  INTEGER FUNCTION fun13 ()

! specification-part		R204(h)

    fun13 = 0
  END FUNCTION

! internal-subprogram		R211(b)
! subroutine-subprogram		R1219(d)
! subroutine-stmt		R1220(d)

  SUBROUTINE sub5 ()
  END SUBROUTINE

! end-program-stmt		R1103(a)

END PROGRAM prg1

! program-unit			R202(b)
! external-subprogram		R203(a)
! function-subprogram		R1215(a)
! function-stmt			R1216(a)
! prefix			R1217(d)
! dummy-arg-name-list		xyz-list(a)

RECURSIVE FUNCTION fun14 (dum10, dum11, dum12, dum13, dum14, dum15, &
                        & dum16, dum17, dum18, dum19, dum39) RESULT (res1)

! specification-part		R204(b)
! implicit-part			R205(b)
! implicit-stmt			R540(b)

  IMPLICIT NONE

  INTEGER res1

! array-spec			R512(b)
! assumed-shape-spec-list	xyz-list(a)
! assumed-shape-spec		R516(a)
! assumed-shape-spec		R516(b)
! attr-spec			R503(f)
! intent-spec			R511(a)
! attr-spec			R503(h)

  INTEGER, DIMENSION (0 :, :), INTENT (IN), OPTIONAL :: dum10

! assumed-shape-spec-list	xyz-list(b)

  INTEGER, DIMENSION (:) :: dum11

! array-spec			R512(d)
! assumed-size-spec		R518(a)

  INTEGER, DIMENSION (2, 0 : *) :: dum12

! assumed-size-spec		R518(b)

  INTEGER, DIMENSION (0 : *) :: dum13

! assumed-size-spec		R518(c)

  INTEGER, DIMENSION (2, *) :: dum14

! assumed-size-spec		R518(d)

  INTEGER, DIMENSION(*) :: dum15

! attr-spec			R503(j)

  INTEGER, SAVE :: obj48

  INTEGER dum16

! specification-stmt		R214(h)
! intent-stmt			R519(a)
! intent-spec			R511(b)
! dummy-arg-name-list		xyz-list(b)

  INTENT (OUT) :: dum16

  INTEGER dum17

! intent-stmt			R519(b)
! intent-spec			R511(c)

  INTENT (INOUT) dum17

  INTEGER dum18

! specification-stmt		R214(k)
! optional-stmt			R520(a)

  OPTIONAL :: dum18

  INTEGER dum19

! optional-stmt			R520(b)

  OPTIONAL dum19

! type-param-value		R509(b)

  CHARACTER * (*) dum39

  INTEGER obj49, obj50
  INTEGER var145
  COMMON /com8/ var145

! specification-stmt		R214(m)
! save-stmt			R523(a)
! saved-entity-list		xyz-list(a)
! saved-entity			R524(a)
! saved-entity			R524(b)

  SAVE :: obj49, /com8/

! save-stmt			R523(b)
! saved-entity-list		xyz-list(b)

  SAVE obj50

  INTEGER dum20, dum21, res7

! declaration-construct		R207(g)
! entry-stmt			R1223(a)

  ENTRY ent1 (dum20, dum21) RESULT (res7)

! execution-part		R208(b)

  res1 = 0
  res7 = 0
  dum16 = 0

! action-stmt			R216(x)
! return-stmt			R1224(b)

  RETURN

! internal-subprogram-part	R210(b)

CONTAINS
  SUBROUTINE sub6 ()
  END SUBROUTINE

! end-function-stmt		R1218(a)

END FUNCTION fun14

! function-subprogram		R1215(c)
! function-stmt			R1216(b)

FUNCTION fun15 (dum22) RESULT (res2)

! specification-part		R204(c)

  USE mod7
  INTEGER dum22
  INTEGER res2

! save-stmt			R523(c)

  SAVE
  res2 = 0
END FUNCTION

! function-stmt			R1216(c)

RECURSIVE FUNCTION fun26 () RESULT (res3)

! specification-part		R204(d)

  INTEGER res3
  INTEGER res4
  INTEGER ent4
  INTEGER dum25

! entry-stmt			R1223(b)

  ENTRY ent2 () RESULT (res4)
  res3 = 0
  res4 = 0

! execution-part-construct	R209(d)
! entry-stmt			R1223(d)

  ENTRY ent4 (dum25)
  ent4 = 0

! end-function-stmt		R1218(c)

END

! function-stmt			R1216(d)

FUNCTION fun16 () RESULT (res6)
  INTEGER res6
  res6 = 0
END FUNCTION

! function-stmt			R1216(e)
! prefix			R1217(c)

RECURSIVE INTEGER FUNCTION fun17 (dum23)
  INTEGER dum23
  fun17 = 0
END FUNCTION

! function-stmt			R1216(f)

FUNCTION fun18 (dum24)
  INTEGER dum24

! entity-decl			R504(k)

  INTEGER fun18 (2)
  fun18 = 0
END FUNCTION

! function-stmt			R1216(g)
! prefix			R1217(b)

INTEGER FUNCTION fun19 ()
  fun19 = 0
END FUNCTION

FUNCTION fun20 ()

! entity-decl			R504(i)

  CHARACTER fun20 (2) * 2
  fun20 = 'xx'
END FUNCTION

! prefix			R1217(a)

INTEGER RECURSIVE FUNCTION fun27 ()
  fun27 = 0
END FUNCTION

! external-subprogram		R203(b)
! subroutine-subprogram		R1219(a)
! subroutine-stmt		R1220(a)
! dummy-arg-list		xyz-list(b)
! dummy-arg			R1221(b)

RECURSIVE SUBROUTINE sub8 (*)

! specification-part		R204(e)

  USE mod8

  IMPLICIT NONE

! return-stmt			R1224(a)

  RETURN 1

! entry-stmt			R1223(e)

  ENTRY ent5 ()
CONTAINS
  SUBROUTINE sub9 ()
  END SUBROUTINE

! end-subroutine-stmt		R1222(a)

END SUBROUTINE sub8

! subroutine-subprogram		R1219(b)
! subroutine-stmt		R1220(b)

SUBROUTINE sub10 (dum26)

! specification-part		R204(f)
! implicit-part-stmt		R206(d)

  ENTRY ent7 ()
  IMPLICIT INTEGER (a)
CONTAINS
  SUBROUTINE sub11 ()
  END SUBROUTINE
END SUBROUTINE

! subroutine-subprogram		R1219(c)
! subroutine-stmt		R1220(c)

RECURSIVE SUBROUTINE sub12 ()

! specification-part		R204(g)

  USE mod9
  CONTINUE

! entry-stmt			R1223(f)

  ENTRY ent6

! end-subroutine-stmt		R1222(c)

END

SUBROUTINE sub13 ()
END SUBROUTINE

! subroutine-stmt		R1220(e)

RECURSIVE SUBROUTINE sub14
END SUBROUTINE

! subroutine-stmt		R1220(f)

SUBROUTINE sub15
END SUBROUTINE

! program-unit			R202(c)
! module			R1104(a)
! module-stmt			R1105

MODULE mod10

! derived-type-stmt		R424(a)
! access-spec			R510(a)

  TYPE, PUBLIC :: typ9

! private-sequence-stmt		R423(b)

    PRIVATE
    INTEGER cmp19
  END TYPE

! attr-spec			R503(b)
! access-spec			R510(b)

  INTEGER, PRIVATE :: obj45

  INTEGER use7, use8

  INTERFACE gen2
    MODULE PROCEDURE sub20
  END INTERFACE

! specification-stmt		R214(a)
! access-stmt			R521(a)
! access-id-list		xyz-list(a)
! access-id			R522(a)

  PUBLIC :: use7, gen2

! access-stmt			R521(b)
! access-id-list		xyz-list(b)

  PUBLIC use8

! access-stmt			R521(c)

  PUBLIC

! module-subprogram-part	R212(a)

CONTAINS

! module-subprogram		R213(a)

  FUNCTION fun21 ()
    INTEGER fun21
    fun21 = 0
  END FUNCTION

! module-subprogram		R213(b)

  SUBROUTINE sub16 ()
  END SUBROUTINE

  SUBROUTINE sub20 ()
  END SUBROUTINE

! end-module-stmt		R1106(a)

END MODULE mod10

MODULE mod11

! module-subprogram-part	R213(b)

CONTAINS
  SUBROUTINE sub17 ()
  END SUBROUTINE

! end-module-stmt		R1106(b)

END MODULE

! module			R1104(b)

MODULE mod12

! end-module-stmt		R1106(b)

END

! program-unit			R202(d)
! block-data			R1110
! block-data-stmt		R1111(a)

BLOCK DATA bld1

! end-block-data-stmt		R1112(a)

END BLOCK DATA bld1

! block-data-stmt		R1111(b)

BLOCK DATA

! end-block-data-stmt		R1112(b)

END BLOCK DATA

BLOCK DATA

! end-block-data-stmt		R1112(c)

END

MODULE mod16

! intrinsic-operator		R310(a)

  INTERFACE OPERATOR (**)
    MODULE PROCEDURE fun28
  END INTERFACE

! intrinsic-operator		R310(b)

  INTERFACE OPERATOR (*)
    MODULE PROCEDURE fun28
  END INTERFACE

! intrinsic-operator		R310(c)

  INTERFACE OPERATOR (+)
    MODULE PROCEDURE fun28
  END INTERFACE

! intrinsic-operator		R310(d)

  INTERFACE OPERATOR (//)
    MODULE PROCEDURE fun28
  END INTERFACE

! intrinsic-operator		R310(e)

  INTERFACE OPERATOR (.EQ.)
    MODULE PROCEDURE fun28
  END INTERFACE

! intrinsic-operator		R310(f)

  INTERFACE OPERATOR (.NOT.)
    MODULE PROCEDURE fun29
  END INTERFACE

! intrinsic-operator		R310(g)

  INTERFACE OPERATOR (.AND.)
    MODULE PROCEDURE fun30
  END INTERFACE

! intrinsic-operator		R310(h)

  INTERFACE OPERATOR (.OR.)
    MODULE PROCEDURE fun30
  END INTERFACE

! intrinsic-operator		R310(g)

  INTERFACE OPERATOR (.EQV.)
    MODULE PROCEDURE fun30
  END INTERFACE

! defined-unary-op		R704(a)

  INTERFACE OPERATOR (.aa.)
    MODULE PROCEDURE fun29
  END INTERFACE

! defined-unary-op		R704(b)

  INTERFACE OPERATOR (.a.)
    MODULE PROCEDURE fun29
  END INTERFACE

! defined-binary-op		R724(a)

  INTERFACE OPERATOR (.ab.)
    MODULE PROCEDURE fun28
  END INTERFACE

! defined-binary-op		R724(b)

  INTERFACE OPERATOR (.b.)
    MODULE PROCEDURE fun28
  END INTERFACE
CONTAINS
  LOGICAL FUNCTION fun28 (dum40, dum41)
    LOGICAL, INTENT(IN) :: dum40, dum41
    fun28 = dum40 .AND. dum41
  END FUNCTION

  INTEGER FUNCTION fun29 (dum42)
    INTEGER, INTENT(IN) :: dum42
    fun29 = - dum42
  END FUNCTION

  INTEGER FUNCTION fun30 (dum43, dum44)
    INTEGER, INTENT(IN) :: dum43, dum44
    fun30 = dum43 + dum44
  END FUNCTION
END MODULE

