-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbackup.ebnf
1223 lines (1223 loc) · 71.5 KB
/
backup.ebnf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
R401 <i>xyz-list</i> <b>is</b> <i>xyz</i> [ , <i>xyz</i> ] ...
R402 <i>xyz-name</i> <b>is</b> <i>name</i>
R403 <i>scalar-xyz</i> <b>is</b> <i>xyz</i>
R501 <i>program</i> <b>is</b> <i>program-unit</i>
[ <i>program-unit</i> ] ...
R502 <i>program-unit</i> <b>is</b> <i>main-program</i>
<b>or</b> <i>external-subprogram</i>
<b>or</b> <i>module</i>
<b>or</b> <i>submodule</i>
<b>or</b> <i>block-data</i>
R1401 <i>main-program</i> <b>is</b> [ <i>program-stmt</i> ]
[ <i>specification-part</i> ]
[ <i>execution-part</i> ]
[ <i>internal-subprogram-part</i> ]
<i>end-program-stmt</i>
R503 <i>external-subprogram</i> <b>is</b> <i>function-subprogram</i>
<b>or</b> <i>subroutine-subprogram</i>
R1532 <i>function-subprogram</i> <b>is</b> <i>function-stmt</i>
[ <i>specification-part</i> ]
[ <i>execution-part</i> ]
[ <i>internal-subprogram-part</i> ]
<i>end-function-stmt</i>
R1537 <i>subroutine-subprogram</i> <b>is</b> <i>subroutine-stmt</i>
[ <i>specification-part</i> ]
[ <i>execution-part</i> ]
[ <i>internal-subprogram-part</i> ]
<i>end-subroutine-stmt</i>
R1404 <i>module</i> <b>is</b> <i>module-stmt</i>
[ <i>specification-part</i> ]
[ <i>module-subprogram-part</i> ]
<i>end-module-stmt</i>
R1416 <i>submodule</i> <b>is</b> <i>submodule-stmt</i>
[ <i>specification-part</i> ]
[ <i>module-subprogram-part</i> ]
<i>end-submodule-stmt</i>
R1420 <i>block-data</i> <b>is</b> <i>block-data-stmt</i>
[ <i>specification-part</i> ]
<i>end-block-data-stmt</i>
R504 <i>specification-part</i> <b>is</b> [ <i>use-stmt</i> ] ...
[ <i>import-stmt</i> ] ...
[ <i>implicit-part</i> ]
[ <i>declaration-construct</i> ] ...
R505 <i>implicit-part</i> <b>is</b> [ <i>implicit-part-stmt</i> ] ...
<i>implicit-stmt</i>
R506 <i>implicit-part-stmt</i> <b>is</b> <i>implicit-stmt</i>
<b>or</b> <i>parameter-stmt</i>
<b>or</b> <i>format-stmt</i>
<b>or</b> <i>entry-stmt</i>
R507 <i>declaration-construct</i> <b>is</b> <i>specification-construct</i>
<b>or</b> <i>data-stmt</i>
<b>or</b> <i>format-stmt</i>
<b>or</b> <i>entry-stmt</i>
<b>or</b> <i>stmt-function-stmt</i>
R508 <i>specification-construct</i> <b>is</b> <i>derived-type-def</i>
<b>or</b> <i>enum-def</i>
<b>or</b> <i>enumeration-type-def</i>
<b>or</b> <i>generic-stmt</i>
<b>or</b> <i>interface-block</i>
<b>or</b> <i>parameter-stmt</i>
<b>or</b> <i>procedure-declaration-stmt</i>
<b>or</b> <i>other-specification-stmt</i>
<b>or</b> <i>type-declaration-stmt</i>
R509 <i>execution-part</i> <b>is</b> <i>executable-construct</i>
[ <i>execution-part-construct</i> ] ...
R510 <i>execution-part-construct</i> <b>is</b> <i>executable-construct</i>
<b>or</b> <i>format-stmt</i>
<b>or</b> <i>entry-stmt</i>
<b>or</b> <i>data-stmt</i>
R511 <i>internal-subprogram-part</i> <b>is</b> <i>contains-stmt</i>
[ <i>internal-subprogram</i> ] ...
R512 <i>internal-subprogram</i> <b>is</b> <i>function-subprogram</i>
<b>or</b> <i>subroutine-subprogram</i>
R1407 <i>module-subprogram-part</i> <b>is</b> <i>contains-stmt</i>
[ <i>module-subprogram</i> ] ...
R1408 <i>module-subprogram</i> <b>is</b> <i>function-subprogram</i>
<b>or</b> <i>subroutine-subprogram</i>
<b>or</b> <i>separate-module-subprogram</i>
R1541 <i>separate-module-subprogram</i> <b>is</b> <i>mp-subprogram-stmt</i>
[ <i>specification-part</i> ]
[ <i>execution-part</i> ]
[ <i>internal-subprogram-part</i> ]
<i>end-mp-subprogram-stmt</i>
R513 <i>other-specification-stmt</i> <b>is</b> <i>access-stmt</i>
<b>or</b> <i>allocatable-stmt</i>
<b>or</b> <i>asynchronous-stmt</i>
<b>or</b> <i>bind-stmt</i>
<b>or</b> <i>codimension-stmt</i>
<b>or</b> <i>contiguous-stmt</i>
<b>or</b> <i>dimension-stmt</i>
<b>or</b> <i>external-stmt</i>
<b>or</b> <i>intent-stmt</i>
<b>or</b> <i>intrinsic-stmt</i>
<b>or</b> <i>namelist-stmt</i>
<b>or</b> <i>optional-stmt</i>
<b>or</b> <i>pointer-stmt</i>
<b>or</b> <i>protected-stmt</i>
<b>or</b> <i>save-stmt</i>
<b>or</b> <i>target-stmt</i>
<b>or</b> <i>volatile-stmt</i>
<b>or</b> <i>value-stmt</i>
<b>or</b> <i>common-stmt</i>
<b>or</b> <i>equivalence-stmt</i>
R514 <i>executable-construct</i> <b>is</b> <i>action-stmt</i>
<b>or</b> <i>associate-construct</i>
<b>or</b> <i>block-construct</i>
<b>or</b> <i>case-construct</i>
<b>or</b> <i>change-team-construct</i>
<b>or</b> <i>critical-construct</i>
<b>or</b> <i>do-construct</i>
<b>or</b> <i>if-construct</i>
<b>or</b> <i>select-rank-construct</i>
<b>or</b> <i>select-type-construct</i>
<b>or</b> <i>where-construct</i>
<b>or</b> <i>forall-construct</i>
R515 <i>action-stmt</i> <b>is</b> <i>allocate-stmt</i>
<b>or</b> <i>assignment-stmt</i>
<b>or</b> <i>backspace-stmt</i>
<b>or</b> <i>call-stmt</i>
<b>or</b> <i>close-stmt</i>
<b>or</b> <i>continue-stmt</i>
<b>or</b> <i>cycle-stmt</i>
<b>or</b> <i>deallocate-stmt</i>
<b>or</b> <i>endfile-stmt</i>
<b>or</b> <i>error-stop-stmt</i>
<b>or</b> <i>event-post-stmt</i>
<b>or</b> <i>event-wait-stmt</i>
<b>or</b> <i>exit-stmt</i>
<b>or</b> <i>fail-image-stmt</i>
<b>or</b> <i>flush-stmt</i>
<b>or</b> <i>form-team-stmt</i>
<b>or</b> <i>goto-stmt</i>
<b>or</b> <i>if-stmt</i>
<b>or</b> <i>inquire-stmt</i>
<b>or</b> <i>lock-stmt</i>
<b>or</b> <i>notify-wait-stmt</i>
<b>or</b> <i>nullify-stmt</i>
<b>or</b> <i>open-stmt</i>
<b>or</b> <i>pointer-assignment-stmt</i>
<b>or</b> <i>print-stmt</i>
<b>or</b> <i>read-stmt</i>
<b>or</b> <i>return-stmt</i>
<b>or</b> <i>rewind-stmt</i>
<b>or</b> <i>stop-stmt</i>
<b>or</b> <i>sync-all-stmt</i>
<b>or</b> <i>sync-images-stmt</i>
<b>or</b> <i>sync-memory-stmt</i>
<b>or</b> <i>sync-team-stmt</i>
<b>or</b> <i>unlock-stmt</i>
<b>or</b> <i>wait-stmt</i>
<b>or</b> <i>where-stmt</i>
<b>or</b> <i>write-stmt</i>
<b>or</b> <i>computed-goto-stmt</i>
<b>or</b> <i>forall-stmt</i>
R516 <i>keyword</i> <b>is</b> <i>name</i>
R601 <i>alphanumeric-character</i> <b>is</b> <i>letter</i>
<b>or</b> <i>digit</i>
<b>or</b> <i>underscore</i>
R602 <i>underscore</i> <b>is</b> _
R603 <i>name</i> <b>is</b> <i>letter</i> [ <i>alphanumeric-character</i> ] ...
R604 <i>constant</i> <b>is</b> <i>literal-constant</i>
<b>or</b> <i>named-constant</i>
R605 <i>literal-constant</i> <b>is</b> <i>int-literal-constant</i>
<b>or</b> <i>real-literal-constant</i>
<b>or</b> <i>complex-literal-constant</i>
<b>or</b> <i>logical-literal-constant</i>
<b>or</b> <i>char-literal-constant</i>
<b>or</b> <i>boz-literal-constant</i>
R606 <i>named-constant</i> <b>is</b> <i>name</i>
R607 <i>int-constant</i> <b>is</b> <i>constant</i>
R608 <i>intrinsic-operator</i> <b>is</b> <i>power-op</i>
<b>or</b> <i>mult-op</i>
<b>or</b> <i>add-op</i>
<b>or</b> <i>concat-op</i>
<b>or</b> <i>rel-op</i>
<b>or</b> <i>not-op</i>
<b>or</b> <i>and-op</i>
<b>or</b> <i>or-op</i>
<b>or</b> <i>equiv-op</i>
R1008 <i>power-op</i> <b>is</b> **
R1009 <i>mult-op</i> <b>is</b> *
<b>or</b> /
R1010 <i>add-op</i> <b>is</b> +
<b>or</b> -
R1012 <i>concat-op</i> <b>is</b> //
R1014 <i>rel-op</i> <b>is</b> .EQ.
<b>or</b> .NE.
<b>or</b> .LT.
<b>or</b> .LE.
<b>or</b> .GT.
<b>or</b> .GE.
<b>or</b> ==
<b>or</b> /=
<b>or</b> <i><</i>
<b>or</b> <i><</i>=
<b>or</b> <i>></i>
<b>or</b> <i>></i>=
R1019 <i>not-op</i> <b>is</b> .NOT.
R1020 <i>and-op</i> <b>is</b> .AND.
R1021 <i>or-op</i> <b>is</b> .OR.
R1022 <i>equiv-op</i> <b>is</b> .EQV.
<b>or</b> .NEQV.
R609 <i>defined-operator</i> <b>is</b> <i>defined-unary-op</i>
<b>or</b> <i>defined-binary-op</i>
<b>or</b> <i>extended-intrinsic-op</i>
R1004 <i>defined-unary-op</i> <b>is</b> . <i>letter</i> [ <i>letter</i> ] ... .
R1024 <i>defined-binary-op</i> <b>is</b> . <i>letter</i> [ <i>letter</i> ] ... .
R610 <i>extended-intrinsic-op</i> <b>is</b> <i>intrinsic-operator</i>
R611 <i>label</i> <b>is</b> <i>digit</i> [ <i>digit</i> [ <i>digit</i> [ <i>digit</i> [ <i>digit</i> ] ] ] ]
R701 <i>type-param-value</i> <b>is</b> <i>scalar-int-expr</i>
<b>or</b> *
<b>or</b> :
R702 <i>type-spec</i> <b>is</b> <i>intrinsic-type-spec</i>
<b>or</b> <i>derived-type-spec</i>
<b>or</b> <i>enum-type-spec</i>
<b>or</b> <i>enumeration-type-spec</i>
R703 <i>declaration-type-spec</i> <b>is</b> <i>intrinsic-type-spec</i>
<b>or</b> TYPE ( <i>intrinsic-type-spec</i> )
<b>or</b> TYPE ( <i>derived-type-spec</i> )
<b>or</b> TYPE ( <i>enum-type-spec</i> )
<b>or</b> TYPE ( <i>enumeration-type-spec</i> )
<b>or</b> CLASS ( <i>derived-type-spec</i> )
<b>or</b> CLASS ( * )
<b>or</b> TYPE ( * )
<b>or</b> TYPEOF ( <i>data-ref</i> )
<b>or</b> CLASSOF ( <i>data-ref</i> )
R704 <i>intrinsic-type-spec</i> <b>is</b> <i>integer-type-spec</i>
<b>or</b> REAL [ <i>kind-selector</i> ]
<b>or</b> DOUBLE PRECISION
<b>or</b> COMPLEX [ <i>kind-selector</i> ]
<b>or</b> CHARACTER [ <i>char-selector</i> ]
<b>or</b> LOGICAL [ <i>kind-selector</i> ]
R705 <i>integer-type-spec</i> <b>is</b> INTEGER [ <i>kind-selector</i> ]
R706 <i>kind-selector</i> <b>is</b> ( [ KIND = ] <i>scalar-int-constant-expr</i> )
R707 <i>signed-int-literal-constant</i> <b>is</b> [ <i>sign</i> ] <i>int-literal-constant</i>
R708 <i>int-literal-constant</i> <b>is</b> <i>digit-string</i> [ _ <i>kind-param</i> ]
R709 <i>kind-param</i> <b>is</b> <i>digit-string</i>
<b>or</b> <i>scalar-int-constant-name</i>
R710 <i>signed-digit-string</i> <b>is</b> [ <i>sign</i> ] <i>digit-string</i>
R711 <i>digit-string</i> <b>is</b> <i>digit</i> [ <i>digit</i> ] ...
R712 <i>sign</i> <b>is</b> +
<b>or</b> -
R713 <i>signed-real-literal-constant</i> <b>is</b> [ <i>sign</i> ] <i>real-literal-constant</i>
R714 <i>real-literal-constant</i> <b>is</b> <i>significand</i> [ <i>exponent-letter</i> <i>exponent</i> ] [ _ <i>kind-param</i> ]
<b>or</b> <i>digit-string</i> <i>exponent-letter</i> <i>exponent</i> [ _ <i>kind-param</i> ]
R715 <i>significand</i> <b>is</b> <i>digit-string</i> . [ <i>digit-string</i> ]
<b>or</b> . <i>digit-string</i>
R716 <i>exponent-letter</i> <b>is</b> E
<b>or</b> D
R717 <i>exponent</i> <b>is</b> <i>signed-digit-string</i>
R718 <i>complex-literal-constant</i> <b>is</b> ( <i>real-part</i> , <i>imag-part</i> )
R719 <i>real-part</i> <b>is</b> <i>signed-int-literal-constant</i>
<b>or</b> <i>signed-real-literal-constant</i>
<b>or</b> <i>named-constant</i>
R720 <i>imag-part</i> <b>is</b> <i>signed-int-literal-constant</i>
<b>or</b> <i>signed-real-literal-constant</i>
<b>or</b> <i>named-constant</i>
R721 <i>char-selector</i> <b>is</b> <i>length-selector</i>
<b>or</b> ( LEN = <i>type-param-value</i> ,
KIND = <i>scalar-int-constant-expr</i> )
<b>or</b> ( <i>type-param-value</i> ,
[ KIND = ] <i>scalar-int-constant-expr</i> )
<b>or</b> ( KIND = <i>scalar-int-constant-expr</i>
[ , LEN =<i>type-param-value</i> ] )
R722 <i>length-selector</i> <b>is</b> ( [ LEN = ] <i>type-param-value</i> )
<b>or</b> * <i>char-length</i> [ , ]
R723 <i>char-length</i> <b>is</b> ( <i>type-param-value</i> )
<b>or</b> <i>int-literal-constant</i>
R724 <i>char-literal-constant</i> <b>is</b> [ <i>kind-param</i> _ ] <i>SQUOTE</i> [ <i>rep-char</i> ] ... <i>SQUOTE</i>
<b>or</b> [ <i>kind-param</i> _ ] <i>DQUOTE</i> [ <i>rep-char</i> ] ... <i>DQUOTE</i>
R725 <i>logical-literal-constant</i> <b>is</b> .TRUE. [ _ <i>kind-param</i> ]
<b>or</b> .FALSE. [ _ <i>kind-param</i> ]
R726 <i>derived-type-def</i> <b>is</b> <i>derived-type-stmt</i>
[ <i>type-param-def-stmt</i> ] ...
[ <i>private-or-sequence</i> ] ...
[ <i>component-part</i> ]
[ <i>type-bound-procedure-part</i> ]
<i>end-type-stmt</i>
R727 <i>derived-type-stmt</i> <b>is</b> TYPE [ [ , <i>type-attr-spec-list</i> ] :: ] <i>type-name</i>
[ ( <i>type-param-name-list</i> ) ]
R728 <i>type-attr-spec</i> <b>is</b> ABSTRACT
<b>or</b> <i>access-spec</i>
<b>or</b> BIND (C)
<b>or</b> EXTENDS ( <i>parent-type-name</i> )
R729 <i>private-or-sequence</i> <b>is</b> <i>private-components-stmt</i>
<b>or</b> <i>sequence-stmt</i>
R730 <i>end-type-stmt</i> <b>is</b> END TYPE [ <i>type-name</i> ]
R731 <i>sequence-stmt</i> <b>is</b> SEQUENCE
R732 <i>type-param-def-stmt</i> <b>is</b> <i>integer-type-spec</i>, <i>type-param-attr-spec</i> ::
<i>type-param-decl-list</i>
R733 <i>type-param-decl</i> <b>is</b> <i>type-param-name</i> [ = <i>scalar-int-constant-expr</i> ]
R734 <i>type-param-attr-spec</i> <b>is</b> KIND
<b>or</b> LEN
R735 <i>component-part</i> <b>is</b> [ <i>component-def-stmt</i> ] ...
R736 <i>component-def-stmt</i> <b>is</b> <i>data-component-def-stmt</i>
<b>or</b> <i>proc-component-def-stmt</i>
R737 <i>data-component-def-stmt</i> <b>is</b> <i>declaration-type-spec</i> [ [ , <i>component-attr-spec-list</i> ] :: ]
<i>component-decl-list</i>
R738 <i>component-attr-spec</i> <b>is</b> <i>access-spec</i>
<b>or</b> ALLOCATABLE
<b>or</b> CODIMENSION <i>lbracket</i> <i>coarray-spec</i> <i>rbracket</i>
<b>or</b> CONTIGUOUS
<b>or</b> DIMENSION ( <i>component-array-spec</i> )
<b>or</b> POINTER
R739 <i>component-decl</i> <b>is</b> <i>component-name</i> [ ( <i>component-array-spec</i> ) ]
[ <i>lbracket</i> <i>coarray-spec</i> <i>rbracket</i> ]
[ * <i>char-length</i> ] [ <i>component-initialization</i> ]
R740 <i>component-array-spec</i> <b>is</b> <i>explicit-shape-spec-list</i>
<b>or</b> <i>deferred-shape-spec-list</i>
R741 <i>proc-component-def-stmt</i> <b>is</b> PROCEDURE ( [ <i>proc-interface</i> ] ) ,
<i>proc-component-attr-spec-list</i> :: <i>proc-decl-list</i>
R742 <i>proc-component-attr-spec</i> <b>is</b> <i>access-spec</i>
<b>or</b> NOPASS
<b>or</b> PASS [ (<i>arg-name</i>) ]
<b>or</b> POINTER
R743 <i>component-initialization</i> <b>is</b> = <i>constant-expr</i>
<b>or</b> =<i>></i> <i>null-init</i>
<b>or</b> =<i>></i> <i>initial-data-target</i>
R744 <i>initial-data-target</i> <b>is</b> <i>designator</i>
R745 <i>private-components-stmt</i> <b>is</b> PRIVATE
R746 <i>type-bound-procedure-part</i> <b>is</b> <i>contains-stmt</i>
[ <i>binding-private-stmt</i> ]
[ <i>type-bound-proc-binding</i> ] ...
R747 <i>binding-private-stmt</i> <b>is</b> PRIVATE
R748 <i>type-bound-proc-binding</i> <b>is</b> <i>type-bound-procedure-stmt</i>
<b>or</b> <i>type-bound-generic-stmt</i>
<b>or</b> <i>final-procedure-stmt</i>
R749 <i>type-bound-procedure-stmt</i> <b>is</b> PROCEDURE [ [ , <i>binding-attr-list</i> ] :: ] <i>type-bound-proc-decl-list</i>
<b>or</b> PROCEDURE (<i>interface-name</i>), <i>binding-attr-list</i> :: <i>binding-name-list</i>
R750 <i>type-bound-proc-decl</i> <b>is</b> <i>binding-name</i> [ =<i>></i> <i>procedure-name</i> ]
R751 <i>type-bound-generic-stmt</i> <b>is</b> GENERIC [ , <i>access-spec</i> ] :: <i>generic-spec</i> =<i>></i> <i>binding-name-list</i>
R752 <i>binding-attr</i> <b>is</b> <i>access-spec</i>
<b>or</b> DEFERRED
<b>or</b> NON_OVERRIDABLE
<b>or</b> NOPASS
<b>or</b> PASS [ (<i>arg-name</i>) ]
R753 <i>final-procedure-stmt</i> <b>is</b> FINAL [ :: ] <i>final-subroutine-name-list</i>
R754 <i>derived-type-spec</i> <b>is</b> <i>type-name</i> [ ( <i>type-param-spec-list</i> ) ]
R755 <i>type-param-spec</i> <b>is</b> [ <i>keyword</i> = ] <i>type-param-value</i>
R756 <i>structure-constructor</i> <b>is</b> <i>derived-type-spec</i> ( [ <i>component-spec-list</i> ] )
R757 <i>component-spec</i> <b>is</b> [ <i>keyword</i> = ] <i>component-data-source</i>
R758 <i>component-data-source</i> <b>is</b> <i>expr</i>
<b>or</b> <i>data-target</i>
<b>or</b> <i>proc-target</i>
R759 <i>enum-def</i> <b>is</b> <i>enum-def-stmt</i>
<i>enumerator-def-stmt</i>
[ <i>enumerator-def-stmt</i> ] ...
<i>end-enum-stmt</i>
R760 <i>enum-def-stmt</i> <b>is</b> ENUM, BIND(C) [ :: <i>enum-type-name</i> ]
R761 <i>enumerator-def-stmt</i> <b>is</b> ENUMERATOR [ :: ] <i>enumerator-list</i>
R762 <i>enumerator</i> <b>is</b> <i>named-constant</i> [ = <i>scalar-int-constant-expr</i> ]
R763 <i>end-enum-stmt</i> <b>is</b> END ENUM
R764 <i>enum-type-spec</i> <b>is</b> <i>enum-type-name</i>
R765 <i>enum-constructor</i> <b>is</b> <i>enum-type-spec</i> ( <i>scalar-expr</i> )
R766 <i>enumeration-type-def</i> <b>is</b> <i>enumeration-type-stmt</i>
<i>enumeration-enumerator-stmt</i>
[ <i>enumeration-enumerator-stmt</i> ]...
<i>end-enumeration-type-stmt</i>
R767 <i>enumeration-type-stmt</i> <b>is</b> ENUMERATION TYPE [ [ , <i>access-spec</i> ] :: ] <i>enumeration-type-name</i>
R768 <i>enumeration-enumerator-stmt</i> <b>is</b> ENUMERATOR [ :: ] <i>enumerator-name-list</i>
R769 <i>end-enumeration-type-stmt</i> <b>is</b> END ENUMERATION TYPE [ <i>enumeration-type-name</i> ]
R770 <i>enumeration-type-spec</i> <b>is</b> <i>enumeration-type-name</i>
R771 <i>enumeration-constructor</i> <b>is</b> <i>enumeration-type-spec</i> ( <i>scalar-int-expr</i> )
R772 <i>boz-literal-constant</i> <b>is</b> <i>binary-constant</i>
<b>or</b> <i>octal-constant</i>
<b>or</b> <i>hex-constant</i>
R773 <i>binary-constant</i> <b>is</b> B ' <i>digit</i> [ <i>digit</i> ] ... <i>SQUOTE</i>
<b>or</b> B " <i>digit</i> [ <i>digit</i> ] ... <i>DQUOTE</i>
R774 <i>octal-constant</i> <b>is</b> O ' <i>digit</i> [ <i>digit</i> ] ... <i>SQUOTE</i>
<b>or</b> O " <i>digit</i> [ <i>digit</i> ] ... <i>DQUOTE</i>
R775 <i>hex-constant</i> <b>is</b> Z ' <i>hex-digit</i> [ <i>hex-digit</i> ] ... <i>SQUOTE</i>
<b>or</b> Z " <i>hex-digit</i> [ <i>hex-digit</i> ] ... <i>DQUOTE</i>
R776 <i>hex-digit</i> <b>is</b> <i>digit</i>
<b>or</b> A
<b>or</b> B
<b>or</b> C
<b>or</b> D
<b>or</b> E
<b>or</b> F
R777 <i>array-constructor</i> <b>is</b> (/ <i>ac-spec</i> /)
<b>or</b> <i>lbracket</i> <i>ac-spec</i> <i>rbracket</i>
R778 <i>ac-spec</i> <b>is</b> <i>type-spec</i> ::
<b>or</b> [<i>type-spec</i> ::] <i>ac-value-list</i>
R779 <i>lbracket</i> <b>is</b> '['
R780 <i>rbracket</i> <b>is</b> ']'
R781 <i>ac-value</i> <b>is</b> <i>expr</i>
<b>or</b> <i>ac-implied-do</i>
R782 <i>ac-implied-do</i> <b>is</b> ( <i>ac-value-list</i> , <i>ac-implied-do-control</i> )
R783 <i>ac-implied-do-control</i> <b>is</b> [ <i>integer-type-spec</i> :: ] <i>ac-do-variable</i> = <i>scalar-int-expr</i> ,
<i>scalar-int-expr</i> [ , <i>scalar-int-expr</i> ]
R784 <i>ac-do-variable</i> <b>is</b> <i>do-variable</i>
R801 <i>type-declaration-stmt</i> <b>is</b> <i>declaration-type-spec</i> [ [ , <i>attr-spec</i> ] ... :: ] <i>entity-decl-list</i>
R802 <i>attr-spec</i> <b>is</b> <i>access-spec</i>
<b>or</b> ALLOCATABLE
<b>or</b> ASYNCHRONOUS
<b>or</b> CODIMENSION <i>lbracket</i> <i>coarray-spec</i> <i>rbracket</i>
<b>or</b> CONTIGUOUS
<b>or</b> DIMENSION ( <i>array-spec</i> )
<b>or</b> EXTERNAL
<b>or</b> INTENT ( <i>intent-spec</i> )
<b>or</b> INTRINSIC
<b>or</b> <i>language-binding-spec</i>
<b>or</b> OPTIONAL
<b>or</b> PARAMETER
<b>or</b> POINTER
<b>or</b> PROTECTED
<b>or</b> <i>rank-clause</i>
<b>or</b> SAVE
<b>or</b> TARGET
<b>or</b> VALUE
<b>or</b> VOLATILE
R803 <i>entity-decl</i> <b>is</b> <i>object-name</i> [ ( <i>array-spec</i> ) ]
[ <i>lbracket</i> <i>coarray-spec</i> <i>rbracket</i> ]
[ * <i>char-length</i> ] [ <i>initialization</i> ]
<b>or</b> <i>function-name</i> [ * <i>char-length</i> ]
R804 <i>object-name</i> <b>is</b> <i>name</i>
R805 <i>initialization</i> <b>is</b> = <i>constant-expr</i>
<b>or</b> =<i>></i> <i>null-init</i>
<b>or</b> =<i>></i> <i>initial-data-target</i>
R806 <i>null-init</i> <b>is</b> <i>function-reference</i>
R807 <i>access-spec</i> <b>is</b> PUBLIC
<b>or</b> PRIVATE
R808 <i>language-binding-spec</i> <b>is</b> BIND (C [ , NAME = <i>scalar-default-char-constant-expr</i> ])
R809 <i>coarray-spec</i> <b>is</b> <i>deferred-coshape-spec-list</i>
<b>or</b> <i>explicit-coshape-spec</i>
R810 <i>deferred-coshape-spec</i> <b>is</b> :
R811 <i>explicit-coshape-spec</i> <b>is</b> [ [ <i>lower-cobound</i> : ] <i>upper-cobound</i>, ]...
[ <i>lower-cobound</i> : ] *
R812 <i>lower-cobound</i> <b>is</b> <i>specification-expr</i>
R813 <i>upper-cobound</i> <b>is</b> <i>specification-expr</i>
R814 <i>array-spec</i> <b>is</b> <i>explicit-shape-spec-list</i>
<b>or</b> <i>explicit-shape-bounds-spec</i>
<b>or</b> <i>assumed-shape-spec-list</i>
<b>or</b> <i>assumed-shape-bounds-spec</i>
<b>or</b> <i>deferred-shape-spec-list</i>
<b>or</b> <i>assumed-size-spec</i>
<b>or</b> <i>implied-shape-spec</i>
<b>or</b> <i>implied-shape-or-assumed-size-spec</i>
<b>or</b> <i>assumed-rank-spec</i>
R815 <i>explicit-shape-spec</i> <b>is</b> [ <i>lower-bound</i> : ] <i>upper-bound</i>
R816 <i>lower-bound</i> <b>is</b> <i>specification-expr</i>
R817 <i>upper-bound</i> <b>is</b> <i>specification-expr</i>
R818 <i>explicit-shape-bounds-spec</i> <b>is</b> [ <i>explicit-bounds-expr</i> : ] <i>explicit-bounds-expr</i>
<b>or</b> <i>lower-bound</i> : <i>explicit-bounds-expr</i>
<b>or</b> <i>explicit-bounds-expr</i> : <i>upper-bound</i>
R819 <i>explicit-bounds-expr</i> <b>is</b> <i>int-expr</i>
R820 <i>assumed-shape-spec</i> <b>is</b> [ <i>lower-bound</i> ] :
R821 <i>assumed-shape-bounds-spec</i> <b>is</b> <i>explicit-bounds-expr</i> :
R822 <i>deferred-shape-spec</i> <b>is</b> :
R823 <i>assumed-implied-spec</i> <b>is</b> [ <i>lower-bound</i> : ] *
R824 <i>assumed-size-spec</i> <b>is</b> <i>explicit-shape-spec-list</i>, <i>assumed-implied-spec</i>
R825 <i>implied-shape-or-assumed-size-spec</i> <b>is</b> <i>assumed-implied-spec</i>
R826 <i>implied-shape-spec</i> <b>is</b> <i>assumed-implied-spec</i>, <i>assumed-implied-spec-list</i>
R827 <i>assumed-rank-spec</i> <b>is</b> ..
R828 <i>intent-spec</i> <b>is</b> IN
<b>or</b> OUT
<b>or</b> INOUT
R829 <i>rank-clause</i> <b>is</b> RANK ( <i>scalar-int-constant-expr</i> )
R830 <i>access-stmt</i> <b>is</b> <i>access-spec</i> [ [ :: ] <i>access-id-list</i> ]
R831 <i>access-id</i> <b>is</b> <i>access-name</i>
<b>or</b> <i>generic-spec</i>
R832 <i>allocatable-stmt</i> <b>is</b> ALLOCATABLE [ :: ] <i>allocatable-decl-list</i>
R833 <i>allocatable-decl</i> <b>is</b> <i>object-name</i> [ ( <i>array-spec</i> ) ]
[ <i>lbracket</i> <i>coarray-spec</i> <i>rbracket</i> ]
R834 <i>asynchronous-stmt</i> <b>is</b> ASYNCHRONOUS [ :: ] <i>object-name-list</i>
R835 <i>bind-stmt</i> <b>is</b> <i>language-binding-spec</i> [ :: ] <i>bind-entity-list</i>
R836 <i>bind-entity</i> <b>is</b> <i>entity-name</i>
<b>or</b> / <i>common-block-name</i> /
R837 <i>codimension-stmt</i> <b>is</b> CODIMENSION [ :: ] <i>codimension-decl-list</i>
R838 <i>codimension-decl</i> <b>is</b> <i>coarray-name</i> <i>lbracket</i> <i>coarray-spec</i> <i>rbracket</i>
R839 <i>contiguous-stmt</i> <b>is</b> CONTIGUOUS [ :: ] <i>object-name-list</i>
R840 <i>data-stmt</i> <b>is</b> DATA <i>data-stmt-set</i> [ [ , ] <i>data-stmt-set</i> ] ...
R841 <i>data-stmt-set</i> <b>is</b> <i>data-stmt-object-list</i> / <i>data-stmt-value-list</i> /
R842 <i>data-stmt-object</i> <b>is</b> <i>variable</i>
<b>or</b> <i>data-implied-do</i>
R843 <i>data-implied-do</i> <b>is</b> ( <i>data-i-do-object-list</i> , [ <i>integer-type-spec</i> :: ] <i>data-i-do-variable</i> =
<i>scalar-int-constant-expr</i> ,
<i>scalar-int-constant-expr</i>
[ , <i>scalar-int-constant-expr</i> ] )
R844 <i>data-i-do-object</i> <b>is</b> <i>array-element</i>
<b>or</b> <i>scalar-structure-component</i>
<b>or</b> <i>data-implied-do</i>
R845 <i>data-i-do-variable</i> <b>is</b> <i>do-variable</i>
R846 <i>data-stmt-value</i> <b>is</b> [ <i>data-stmt-repeat</i> * ] <i>data-stmt-constant</i>
R847 <i>data-stmt-repeat</i> <b>is</b> <i>scalar-int-constant</i>
<b>or</b> <i>scalar-int-constant-subobject</i>
R848 <i>data-stmt-constant</i> <b>is</b> <i>scalar-constant</i>
<b>or</b> <i>scalar-constant-subobject</i>
<b>or</b> <i>signed-int-literal-constant</i>
<b>or</b> <i>signed-real-literal-constant</i>
<b>or</b> <i>null-init</i>
<b>or</b> <i>initial-data-target</i>
<b>or</b> <i>structure-constructor</i>
<b>or</b> <i>enum-constructor</i>
<b>or</b> <i>enumeration-constructor</i>
R849 <i>int-constant-subobject</i> <b>is</b> <i>constant-subobject</i>
R850 <i>constant-subobject</i> <b>is</b> <i>designator</i>
R851 <i>dimension-stmt</i> <b>is</b> DIMENSION [ :: ] <i>array-name</i> ( <i>array-spec</i> )
[ , <i>array-name</i> ( <i>array-spec</i> ) ] ...
R852 <i>intent-stmt</i> <b>is</b> INTENT ( <i>intent-spec</i> ) [ :: ] <i>dummy-arg-name-list</i>
R853 <i>optional-stmt</i> <b>is</b> OPTIONAL [ :: ] <i>dummy-arg-name-list</i>
R854 <i>parameter-stmt</i> <b>is</b> PARAMETER ( <i>named-constant-def-list</i> )
R855 <i>named-constant-def</i> <b>is</b> <i>named-constant</i> = <i>constant-expr</i>
R856 <i>pointer-stmt</i> <b>is</b> POINTER [ :: ] <i>pointer-decl-list</i>
R857 <i>pointer-decl</i> <b>is</b> <i>object-name</i> [ ( <i>deferred-shape-spec-list</i> ) ]
<b>or</b> <i>procptr-entity-name</i>
R858 <i>protected-stmt</i> <b>is</b> PROTECTED [ :: ] <i>entity-name-list</i>
R859 <i>save-stmt</i> <b>is</b> SAVE [ [ :: ] <i>saved-entity-list</i> ]
R860 <i>saved-entity</i> <b>is</b> <i>object-name</i>
<b>or</b> <i>proc-pointer-name</i>
<b>or</b> / <i>common-block-name</i> /
R861 <i>proc-pointer-name</i> <b>is</b> <i>name</i>
R862 <i>target-stmt</i> <b>is</b> TARGET [ :: ] <i>target-decl-list</i>
R863 <i>target-decl</i> <b>is</b> <i>object-name</i> [ ( <i>array-spec</i> ) ]
[ <i>lbracket</i> <i>coarray-spec</i> <i>rbracket</i> ]
R864 <i>value-stmt</i> <b>is</b> VALUE [ :: ] <i>dummy-arg-name-list</i>
R865 <i>volatile-stmt</i> <b>is</b> VOLATILE [ :: ] <i>object-name-list</i>
R866 <i>implicit-stmt</i> <b>is</b> IMPLICIT <i>implicit-spec-list</i>
<b>or</b> IMPLICIT NONE [ ( [ <i>implicit-none-spec-list</i> ] ) ]
R867 <i>implicit-spec</i> <b>is</b> <i>declaration-type-spec</i> ( <i>letter-spec-list</i> )
R868 <i>letter-spec</i> <b>is</b> <i>letter</i> [ - <i>letter</i> ]
R869 <i>implicit-none-spec</i> <b>is</b> EXTERNAL
<b>or</b> TYPE
R870 <i>import-stmt</i> <b>is</b> IMPORT [[ :: ] <i>import-name-list</i> ]
<b>or</b> IMPORT, ONLY : <i>import-name-list</i>
<b>or</b> IMPORT, NONE
<b>or</b> IMPORT, ALL
R871 <i>namelist-stmt</i> <b>is</b> NAMELIST
/ <i>namelist-group-name</i> / <i>namelist-group-object-list</i>
[ [ , ] / <i>namelist-group-name</i> /
<i>namelist-group-object-list</i> ] ...
R872 <i>namelist-group-object</i> <b>is</b> <i>variable-name</i>
R873 <i>equivalence-stmt</i> <b>is</b> EQUIVALENCE <i>equivalence-set-list</i>
R874 <i>equivalence-set</i> <b>is</b> ( <i>equivalence-object</i> , <i>equivalence-object-list</i> )
R875 <i>equivalence-object</i> <b>is</b> <i>variable-name</i>
<b>or</b> <i>array-element</i>
<b>or</b> <i>substring</i>
R876 <i>common-stmt</i> <b>is</b> COMMON
[ / [ <i>common-block-name</i> ] / ] <i>common-block-object-list</i>
[ [ , ] / [ <i>common-block-name</i> ] /
<i>common-block-object-list</i> ] ...
R877 <i>common-block-object</i> <b>is</b> <i>variable-name</i> [ ( <i>array-spec</i> ) ]
R901 <i>designator</i> <b>is</b> <i>object-name</i>
<b>or</b> <i>array-element</i>
<b>or</b> <i>array-section</i>
<b>or</b> <i>coindexed-named-object</i>
<b>or</b> <i>complex-part-designator</i>
<b>or</b> <i>structure-component</i>
<b>or</b> <i>substring</i>
R902 <i>variable</i> <b>is</b> <i>designator</i>
<b>or</b> <i>function-reference</i>
R903 <i>variable-name</i> <b>is</b> <i>name</i>
R904 <i>logical-variable</i> <b>is</b> <i>variable</i>
R905 <i>char-variable</i> <b>is</b> <i>variable</i>
R906 <i>default-char-variable</i> <b>is</b> <i>variable</i>
R907 <i>int-variable</i> <b>is</b> <i>variable</i>
R908 <i>substring</i> <b>is</b> <i>parent-string</i> ( <i>substring-range</i> )
R909 <i>parent-string</i> <b>is</b> <i>scalar-variable-name</i>
<b>or</b> <i>array-element</i>
<b>or</b> <i>coindexed-named-object</i>
<b>or</b> <i>scalar-structure-component</i>
<b>or</b> <i>scalar-constant</i>
R910 <i>substring-range</i> <b>is</b> [ <i>scalar-int-expr</i> ] : [ <i>scalar-int-expr</i> ]
R911 <i>data-ref</i> <b>is</b> <i>part-ref</i> [ % <i>part-ref</i> ] ...
R912 <i>part-ref</i> <b>is</b> <i>part-name</i> [ ( <i>section-subscript-list</i> ) ] [ <i>image-selector</i> ]
R913 <i>structure-component</i> <b>is</b> <i>data-ref</i>
R914 <i>coindexed-named-object</i> <b>is</b> <i>data-ref</i>
R915 <i>complex-part-designator</i> <b>is</b> <i>designator</i> % RE
<b>or</b> <i>designator</i> % IM
R916 <i>type-param-inquiry</i> <b>is</b> <i>designator</i> % <i>type-param-name</i>
R917 <i>array-element</i> <b>is</b> <i>data-ref</i>
R918 <i>array-section</i> <b>is</b> <i>data-ref</i> [ ( <i>substring-range</i> ) ]
<b>or</b> <i>complex-part-designator</i>
R919 <i>subscript</i> <b>is</b> <i>scalar-int-expr</i>
R920 <i>multiple-subscript</i> <b>is</b> @ <i>int-expr</i>
R921 <i>section-subscript</i> <b>is</b> <i>subscript</i>
<b>or</b> <i>multiple-subscript</i>
<b>or</b> <i>subscript-triplet</i>
<b>or</b> <i>multiple-subscript-triplet</i>
<b>or</b> <i>vector-subscript</i>
R922 <i>subscript-triplet</i> <b>is</b> [ <i>subscript</i> ] : [ <i>subscript</i> ] [ : <i>stride</i> ]
R923 <i>multiple-subscript-triplet</i> <b>is</b> @ [ <i>int-expr</i> ] : [ <i>int-expr</i> ] [ : <i>int-expr</i> ]
R924 <i>stride</i> <b>is</b> <i>scalar-int-expr</i>
R925 <i>vector-subscript</i> <b>is</b> <i>int-expr</i>
R926 <i>image-selector</i> <b>is</b> <i>lbracket</i> <i>cosubscript-list</i> [ , <i>image-selector-spec-list</i> ] <i>rbracket</i>
R927 <i>cosubscript</i> <b>is</b> <i>scalar-int-expr</i>
R928 <i>image-selector-spec</i> <b>is</b> NOTIFY = <i>notify-variable</i>
<b>or</b> STAT = <i>stat-variable</i>
<b>or</b> TEAM = <i>team-value</i>
<b>or</b> TEAM_NUMBER = <i>scalar-int-expr</i>
R929 <i>allocate-stmt</i> <b>is</b> ALLOCATE ( [ <i>type-spec</i> :: ] <i>allocation-list</i>
[ , <i>alloc-opt-list</i> ] )
R930 <i>alloc-opt</i> <b>is</b> ERRMSG = <i>errmsg-variable</i>
<b>or</b> MOLD = <i>source-expr</i>
<b>or</b> SOURCE = <i>source-expr</i>
<b>or</b> STAT = <i>stat-variable</i>
R931 <i>errmsg-variable</i> <b>is</b> <i>scalar-default-char-variable</i>
R932 <i>source-expr</i> <b>is</b> <i>expr</i>
R933 <i>allocation</i> <b>is</b> <i>allocate-object</i> [ ( <i>allocate-shape-spec-list</i> ) ]
[ <i>lbracket</i> <i>allocate-coarray-spec</i> <i>rbracket</i> ]
<b>or</b> ( [ <i>lower-bounds-expr</i> : ] <i>upper-bounds-expr</i> )
[ <i>lbracket</i> <i>allocate-coarray-spec</i> <i>rbracket</i> ]
R934 <i>allocate-object</i> <b>is</b> <i>variable-name</i>
<b>or</b> <i>structure-component</i>
R935 <i>allocate-shape-spec</i> <b>is</b> [ <i>lower-bound-expr</i> : ] <i>upper-bound-expr</i>
R936 <i>lower-bound-expr</i> <b>is</b> <i>scalar-int-expr</i>
R937 <i>lower-bounds-expr</i> <b>is</b> <i>int-expr</i>
R938 <i>upper-bound-expr</i> <b>is</b> <i>scalar-int-expr</i>
R939 <i>upper-bounds-expr</i> <b>is</b> <i>int-expr</i>
R940 <i>allocate-coarray-spec</i> <b>is</b> [ <i>allocate-coshape-spec-list</i> , ] [ <i>lower-bound-expr</i> : ] *
R941 <i>allocate-coshape-spec</i> <b>is</b> [ <i>lower-bound-expr</i> : ] <i>upper-bound-expr</i>
R942 <i>nullify-stmt</i> <b>is</b> NULLIFY ( <i>pointer-object-list</i> )
R943 <i>pointer-object</i> <b>is</b> <i>variable-name</i>
<b>or</b> <i>structure-component</i>
<b>or</b> <i>proc-pointer-name</i>
R944 <i>deallocate-stmt</i> <b>is</b> DEALLOCATE ( <i>allocate-object-list</i> [ , <i>dealloc-opt-list</i> ] )
R945 <i>dealloc-opt</i> <b>is</b> STAT = <i>stat-variable</i>
<b>or</b> ERRMSG = <i>errmsg-variable</i>
R946 <i>stat-variable</i> <b>is</b> <i>scalar-int-variable</i>
R1001 <i>primary</i> <b>is</b> <i>literal-constant</i>
<b>or</b> <i>designator</i>
<b>or</b> <i>array-constructor</i>
<b>or</b> <i>structure-constructor</i>
<b>or</b> <i>enum-constructor</i>
<b>or</b> <i>enumeration-constructor</i>
<b>or</b> <i>function-reference</i>
<b>or</b> <i>type-param-inquiry</i>
<b>or</b> <i>type-param-name</i>
<b>or</b> ( <i>expr</i> )
<b>or</b> <i>conditional-expr</i>
R1002 <i>conditional-expr</i> <b>is</b> ( <i>scalar-logical-expr</i> ? <i>expr</i> [ : <i>scalar-logical-expr</i> ? <i>expr</i> ]... : <i>expr</i> )
R1003 <i>level-1-expr</i> <b>is</b> [ <i>defined-unary-op</i> ] <i>primary</i>
R1004 <i>defined-unary-op</i> <b>is</b> . <i>letter</i> [ <i>letter</i> ] ... .
R1005 <i>mult-operand</i> <b>is</b> <i>level-1-expr</i> [ <i>power-op</i> <i>mult-operand</i> ]
R1006 <i>add-operand</i> <b>is</b> [ <i>add-operand</i> <i>mult-op</i> ] <i>mult-operand</i>
R1007 <i>level-2-expr</i> <b>is</b> [ [ <i>level-2-expr</i> ] <i>add-op</i> ] <i>add-operand</i>
R1008 <i>power-op</i> <b>is</b> **
R1009 <i>mult-op</i> <b>is</b> *
<b>or</b> /
R1010 <i>add-op</i> <b>is</b> +
<b>or</b> -
R1011 <i>level-3-expr</i> <b>is</b> [ <i>level-3-expr</i> <i>concat-op</i> ] <i>level-2-expr</i>
R1012 <i>concat-op</i> <b>is</b> //
R1013 <i>level-4-expr</i> <b>is</b> [ <i>level-3-expr</i> <i>rel-op</i> ] <i>level-3-expr</i>
R1014 <i>rel-op</i> <b>is</b> .EQ.
<b>or</b> .NE.
<b>or</b> .LT.
<b>or</b> .LE.
<b>or</b> .GT.
<b>or</b> .GE.
<b>or</b> ==
<b>or</b> /=
<b>or</b> <i><</i>
<b>or</b> <i><</i>=
<b>or</b> <i>></i>
<b>or</b> <i>></i>=
R1015 <i>and-operand</i> <b>is</b> [ <i>not-op</i> ] <i>level-4-expr</i>
R1016 <i>or-operand</i> <b>is</b> [ <i>or-operand</i> <i>and-op</i> ] <i>and-operand</i>
R1017 <i>equiv-operand</i> <b>is</b> [ <i>equiv-operand</i> <i>or-op</i> ] <i>or-operand</i>
R1018 <i>level-5-expr</i> <b>is</b> [ <i>level-5-expr</i> <i>equiv-op</i> ] <i>equiv-operand</i>
R1019 <i>not-op</i> <b>is</b> .NOT.
R1020 <i>and-op</i> <b>is</b> .AND.
R1021 <i>or-op</i> <b>is</b> .OR.
R1022 <i>equiv-op</i> <b>is</b> .EQV.
<b>or</b> .NEQV.
R1023 <i>expr</i> <b>is</b> [ <i>expr</i> <i>defined-binary-op</i> ] <i>level-5-expr</i>
R1024 <i>defined-binary-op</i> <b>is</b> . <i>letter</i> [ <i>letter</i> ] ... .
R1025 <i>logical-expr</i> <b>is</b> <i>expr</i>
R1026 <i>default-char-expr</i> <b>is</b> <i>expr</i>
R1027 <i>int-expr</i> <b>is</b> <i>expr</i>
R1028 <i>numeric-expr</i> <b>is</b> <i>expr</i>
R1029 <i>specification-expr</i> <b>is</b> <i>scalar-int-expr</i>
R1030 <i>constant-expr</i> <b>is</b> <i>expr</i>
R1031 <i>default-char-constant-expr</i> <b>is</b> <i>default-char-expr</i>
R1032 <i>int-constant-expr</i> <b>is</b> <i>int-expr</i>
R1033 <i>assignment-stmt</i> <b>is</b> <i>variable</i> = <i>expr</i>
R1034 <i>pointer-assignment-stmt</i> <b>is</b> <i>data-pointer-object</i> [ ( <i>bounds-spec-list</i> ) ] =<i>></i> <i>data-target</i>
<b>or</b> <i>data-pointer-object</i> ( <i>lower-bounds-expr</i> : ) =<i>></i> <i>data-target</i>
<b>or</b> <i>data-pointer-object</i> ( <i>bounds-remapping-list</i> ) =<i>></i> <i>data-target</i>
<b>or</b> <i>data-pointer-object</i> ( <i>lower-bounds-expr</i> : <i>upper-bounds-expr</i> )
=<i>></i> <i>data-target</i>
<b>or</b> <i>proc-pointer-object</i> =<i>></i> <i>proc-target</i>
R1035 <i>data-pointer-object</i> <b>is</b> <i>variable-name</i>
<b>or</b> <i>scalar-variable</i> % <i>data-pointer-component-name</i>
R1036 <i>bounds-spec</i> <b>is</b> <i>lower-bound-expr</i> :
R1037 <i>bounds-remapping</i> <b>is</b> <i>lower-bound-expr</i> : <i>upper-bound-expr</i>
R1038 <i>data-target</i> <b>is</b> <i>expr</i>
R1039 <i>proc-pointer-object</i> <b>is</b> <i>proc-pointer-name</i>
<b>or</b> <i>proc-component-ref</i>
R1040 <i>proc-component-ref</i> <b>is</b> <i>scalar-variable</i> % <i>procedure-component-name</i>
R1041 <i>proc-target</i> <b>is</b> <i>expr</i>
<b>or</b> <i>procedure-name</i>
<b>or</b> <i>proc-component-ref</i>
R1042 <i>where-stmt</i> <b>is</b> WHERE ( <i>mask-expr</i> ) <i>where-assignment-stmt</i>
R1043 <i>where-construct</i> <b>is</b> <i>where-construct-stmt</i>
[ <i>where-body-construct</i> ] ...
[ <i>masked-elsewhere-stmt</i>
[ <i>where-body-construct</i> ] ... ] ...
[ <i>elsewhere-stmt</i>
[ <i>where-body-construct</i> ] ... ]
<i>end-where-stmt</i>
R1044 <i>where-construct-stmt</i> <b>is</b> [<i>where-construct-name</i>:] WHERE ( <i>mask-expr</i> )
R1045 <i>where-body-construct</i> <b>is</b> <i>where-assignment-stmt</i>
<b>or</b> <i>where-stmt</i>
<b>or</b> <i>where-construct</i>
R1046 <i>where-assignment-stmt</i> <b>is</b> <i>assignment-stmt</i>
R1047 <i>mask-expr</i> <b>is</b> <i>logical-expr</i>
R1048 <i>masked-elsewhere-stmt</i> <b>is</b> ELSEWHERE (<i>mask-expr</i>) [<i>where-construct-name</i>]
R1049 <i>elsewhere-stmt</i> <b>is</b> ELSEWHERE [<i>where-construct-name</i>]
R1050 <i>end-where-stmt</i> <b>is</b> END WHERE [<i>where-construct-name</i>]
R1051 <i>forall-construct</i> <b>is</b> <i>forall-construct-stmt</i>
[<i>forall-body-construct</i> ] ...
<i>end-forall-stmt</i>
R1052 <i>forall-construct-stmt</i> <b>is</b> [<i>forall-construct-name</i> :] FORALL <i>concurrent-header</i>
R1053 <i>forall-body-construct</i> <b>is</b> <i>forall-assignment-stmt</i>
<b>or</b> <i>where-stmt</i>
<b>or</b> <i>where-construct</i>
<b>or</b> <i>forall-construct</i>
<b>or</b> <i>forall-stmt</i>
R1054 <i>forall-assignment-stmt</i> <b>is</b> <i>assignment-stmt</i>
<b>or</b> <i>pointer-assignment-stmt</i>
R1055 <i>end-forall-stmt</i> <b>is</b> END FORALL [<i>forall-construct-name</i> ]
R1056 <i>forall-stmt</i> <b>is</b> FORALL <i>concurrent-header</i> <i>forall-assignment-stmt</i>
R1101 <i>block</i> <b>is</b> [ <i>execution-part-construct</i> ] ...
R1102 <i>associate-construct</i> <b>is</b> <i>associate-stmt</i>
<i>block</i>
<i>end-associate-stmt</i>
R1103 <i>associate-stmt</i> <b>is</b> [ <i>associate-construct-name</i> : ] ASSOCIATE
(<i>association-list</i> )
R1104 <i>association</i> <b>is</b> <i>associate-name</i> =<i>></i> <i>selector</i>
R1105 <i>selector</i> <b>is</b> <i>expr</i>
<b>or</b> <i>variable</i>
R1106 <i>end-associate-stmt</i> <b>is</b> END ASSOCIATE [ <i>associate-construct-name</i> ]
R1107 <i>block-construct</i> <b>is</b> <i>block-stmt</i>
[ <i>block-specification-part</i> ]
<i>block</i>
<i>end-block-stmt</i>
R1108 <i>block-stmt</i> <b>is</b> [ <i>block-construct-name</i> : ] BLOCK
R1109 <i>block-specification-part</i> <b>is</b> [ <i>use-stmt</i> ] ...
[ <i>import-stmt</i> ] ...
[ <i>declaration-construct</i> ] ...
R1110 <i>end-block-stmt</i> <b>is</b> END BLOCK [ <i>block-construct-name</i> ]
R1111 <i>change-team-construct</i> <b>is</b> <i>change-team-stmt</i>
<i>block</i>
<i>end-change-team-stmt</i>
R1112 <i>change-team-stmt</i> <b>is</b> [ <i>team-construct-name</i> : ] CHANGE TEAM ( <i>team-value</i>
[ , <i>coarray-association-list</i> ] [ , <i>sync-stat-list</i> ] )
R1113 <i>coarray-association</i> <b>is</b> <i>codimension-decl</i> =<i>></i> <i>selector</i>
R1114 <i>end-change-team-stmt</i> <b>is</b> END TEAM [ ( [ <i>sync-stat-list</i> ] ) ] [ <i>team-construct-name</i> ]
R1115 <i>team-value</i> <b>is</b> <i>scalar-expr</i>
R1116 <i>critical-construct</i> <b>is</b> <i>critical-stmt</i>
<i>block</i>
<i>end-critical-stmt</i>
R1117 <i>critical-stmt</i> <b>is</b> [ <i>critical-construct-name</i> : ] CRITICAL [ ( [ <i>sync-stat-list</i> ] ) ]
R1118 <i>end-critical-stmt</i> <b>is</b> END CRITICAL [ <i>critical-construct-name</i> ]
R1119 <i>do-construct</i> <b>is</b> <i>do-stmt</i>
<i>block</i>
<i>end-do</i>
R1120 <i>do-stmt</i> <b>is</b> <i>nonlabel-do-stmt</i>
<b>or</b> <i>label-do-stmt</i>
R1121 <i>label-do-stmt</i> <b>is</b> [ <i>do-construct-name</i> : ] DO <i>label</i> [ <i>loop-control</i> ]
R1122 <i>nonlabel-do-stmt</i> <b>is</b> [ <i>do-construct-name</i> : ] DO [ <i>loop-control</i> ]
R1123 <i>loop-control</i> <b>is</b> [ , ] <i>do-variable</i> = <i>scalar-int-expr</i>, <i>scalar-int-expr</i>
[ , <i>scalar-int-expr</i> ]
<b>or</b> [ , ] WHILE ( <i>scalar-logical-expr</i> )
<b>or</b> [ , ] CONCURRENT <i>concurrent-header</i> <i>concurrent-locality</i>
R1124 <i>do-variable</i> <b>is</b> <i>scalar-int-variable-name</i>
R1125 <i>concurrent-header</i> <b>is</b> ( [ <i>integer-type-spec</i> :: ] <i>concurrent-control-list</i> [ , <i>scalar-mask-expr</i> ] )
R1126 <i>concurrent-control</i> <b>is</b> <i>index-name</i> = <i>concurrent-limit</i> : <i>concurrent-limit</i> [ : <i>concurrent-step</i> ]
R1127 <i>concurrent-limit</i> <b>is</b> <i>scalar-int-expr</i>
R1128 <i>concurrent-step</i> <b>is</b> <i>scalar-int-expr</i>
R1129 <i>concurrent-locality</i> <b>is</b> [ <i>locality-spec</i> ]...
R1130 <i>locality-spec</i> <b>is</b> LOCAL ( <i>variable-name-list</i> )
<b>or</b> LOCAL_INIT ( <i>variable-name-list</i> )
<b>or</b> REDUCE ( <i>reduce-operation</i> : <i>variable-name-list</i> )
<b>or</b> SHARED ( <i>variable-name-list</i> )
<b>or</b> DEFAULT ( NONE )
R1131 <i>reduce-operation</i> <b>is</b> <i>binary-reduce-op</i>
<b>or</b> <i>function-reduction-name</i>
R1132 <i>binary-reduce-op</i> <b>is</b> +
<b>or</b> *
<b>or</b> .AND.
<b>or</b> .OR.
<b>or</b> .EQV.
<b>or</b> .NEQV.
R1133 <i>end-do</i> <b>is</b> <i>end-do-stmt</i>
<b>or</b> <i>continue-stmt</i>
R1134 <i>end-do-stmt</i> <b>is</b> END DO [ <i>do-construct-name</i> ]
R1135 <i>cycle-stmt</i> <b>is</b> CYCLE [ <i>do-construct-name</i> ]
R1136 <i>if-construct</i> <b>is</b> <i>if-then-stmt</i>
<i>block</i>
[ <i>else-if-stmt</i>
<i>block</i> ] ...
[ <i>else-stmt</i>
<i>block</i> ]
<i>end-if-stmt</i>
R1137 <i>if-then-stmt</i> <b>is</b> [ <i>if-construct-name</i> : ] IF ( <i>scalar-logical-expr</i> ) THEN
R1138 <i>else-if-stmt</i> <b>is</b> ELSE IF ( <i>scalar-logical-expr</i> ) THEN [ <i>if-construct-name</i> ]
R1139 <i>else-stmt</i> <b>is</b> ELSE [ <i>if-construct-name</i> ]
R1140 <i>end-if-stmt</i> <b>is</b> END IF [ <i>if-construct-name</i> ]
R1141 <i>if-stmt</i> <b>is</b> IF ( <i>scalar-logical-expr</i> ) <i>action-stmt</i>
R1142 <i>case-construct</i> <b>is</b> <i>select-case-stmt</i>
[ <i>case-stmt</i>
<i>block</i> ] ...
<i>end-select-stmt</i>
R1143 <i>select-case-stmt</i> <b>is</b> [ <i>case-construct-name</i> : ] SELECT CASE ( <i>case-expr</i> )
R1144 <i>case-stmt</i> <b>is</b> CASE <i>case-selector</i> [<i>case-construct-name</i>]
R1145 <i>end-select-stmt</i> <b>is</b> END SELECT [ <i>case-construct-name</i> ]
R1146 <i>case-expr</i> <b>is</b> <i>scalar-expr</i>
R1147 <i>case-selector</i> <b>is</b> ( <i>case-value-range-list</i> )
<b>or</b> DEFAULT
R1148 <i>case-value-range</i> <b>is</b> <i>case-value</i>
<b>or</b> <i>case-value</i> :
<b>or</b> : <i>case-value</i>
<b>or</b> <i>case-value</i> : <i>case-value</i>
R1149 <i>case-value</i> <b>is</b> <i>scalar-constant-expr</i>
R1150 <i>select-rank-construct</i> <b>is</b> <i>select-rank-stmt</i>
[ <i>select-rank-case-stmt</i>
<i>block</i> ]...
<i>end-select-rank-stmt</i>
R1151 <i>select-rank-stmt</i> <b>is</b> [ <i>select-construct-name</i> : ] SELECT RANK
( [ <i>associate-name</i> =<i>></i> ] <i>selector</i> )
R1152 <i>select-rank-case-stmt</i> <b>is</b> RANK ( <i>scalar-int-constant-expr</i> ) [ <i>select-construct-name</i> ]
<b>or</b> RANK ( * ) [ <i>select-construct-name</i> ]
<b>or</b> RANK DEFAULT [ <i>select-construct-name</i> ]
R1153 <i>end-select-rank-stmt</i> <b>is</b> END SELECT [ <i>select-construct-name</i> ]
R1154 <i>select-type-construct</i> <b>is</b> <i>select-type-stmt</i>
[ <i>type-guard-stmt</i>
<i>block</i> ] ...
<i>end-select-type-stmt</i>
R1155 <i>select-type-stmt</i> <b>is</b> [ <i>select-construct-name</i> : ] SELECT TYPE
( [ <i>associate-name</i> =<i>></i> ] <i>selector</i> )
R1156 <i>type-guard-stmt</i> <b>is</b> TYPE IS ( <i>type-spec</i> ) [ <i>select-construct-name</i> ]
<b>or</b> CLASS IS ( <i>derived-type-spec</i> ) [ <i>select-construct-name</i> ]
<b>or</b> CLASS DEFAULT [ <i>select-construct-name</i> ]
R1157 <i>end-select-type-stmt</i> <b>is</b> END SELECT [ <i>select-construct-name</i> ]
R1158 <i>exit-stmt</i> <b>is</b> EXIT [ <i>construct-name</i> ]
R1159 <i>goto-stmt</i> <b>is</b> GO TO <i>label</i>
R1160 <i>computed-goto-stmt</i> <b>is</b> GO TO ( <i>label-list</i> ) [ , ] <i>scalar-int-expr</i>
R1161 <i>continue-stmt</i> <b>is</b> CONTINUE
R1162 <i>stop-stmt</i> <b>is</b> STOP [ <i>stop-code</i> ] [ , QUIET = <i>scalar-logical-expr</i>]
R1163 <i>error-stop-stmt</i> <b>is</b> ERROR STOP [ <i>stop-code</i> ] [ , QUIET = <i>scalar-logical-expr</i>]
R1164 <i>stop-code</i> <b>is</b> <i>scalar-default-char-expr</i>
<b>or</b> <i>scalar-int-expr</i>
R1165 <i>fail-image-stmt</i> <b>is</b> FAIL IMAGE
R1166 <i>notify-wait-stmt</i> <b>is</b> NOTIFY WAIT ( <i>notify-variable</i> [ , <i>event-wait-spec-list</i> ] )
R1167 <i>notify-variable</i> <b>is</b> <i>scalar-variable</i>
R1168 <i>sync-all-stmt</i> <b>is</b> SYNC ALL [ ( [ <i>sync-stat-list</i> ] ) ]
R1169 <i>sync-stat</i> <b>is</b> STAT = <i>stat-variable</i>
<b>or</b> ERRMSG = <i>errmsg-variable</i>
R1170 <i>sync-images-stmt</i> <b>is</b> SYNC IMAGES ( <i>image-set</i> [ , <i>sync-stat-list</i> ] )
R1171 <i>image-set</i> <b>is</b> <i>int-expr</i>
<b>or</b> *
R1172 <i>sync-memory-stmt</i> <b>is</b> SYNC MEMORY [ ( [ <i>sync-stat-list</i> ] ) ]
R1173 <i>sync-team-stmt</i> <b>is</b> SYNC TEAM ( <i>team-value</i> [ , <i>sync-stat-list</i> ] )
R1174 <i>event-post-stmt</i> <b>is</b> EVENT POST ( <i>event-variable</i> [ , <i>sync-stat-list</i> ] )
R1175 <i>event-variable</i> <b>is</b> <i>scalar-variable</i>
R1176 <i>event-wait-stmt</i> <b>is</b> EVENT WAIT ( <i>event-variable</i> [ , <i>event-wait-spec-list</i> ] )
R1177 <i>event-wait-spec</i> <b>is</b> <i>until-spec</i>
<b>or</b> <i>sync-stat</i>
R1178 <i>until-spec</i> <b>is</b> UNTIL_COUNT = <i>scalar-int-expr</i>
R1179 <i>form-team-stmt</i> <b>is</b> FORM TEAM ( <i>team-number</i>, <i>team-variable</i>
[ , <i>form-team-spec-list</i> ] )
R1180 <i>team-number</i> <b>is</b> <i>scalar-int-expr</i>
R1181 <i>team-variable</i> <b>is</b> <i>scalar-variable</i>
R1182 <i>form-team-spec</i> <b>is</b> NEW_INDEX = <i>scalar-int-expr</i>
<b>or</b> <i>sync-stat</i>
R1183 <i>lock-stmt</i> <b>is</b> LOCK ( <i>lock-variable</i> [ , <i>lock-stat-list</i> ] )
R1184 <i>lock-stat</i> <b>is</b> ACQUIRED_LOCK = <i>scalar-logical-variable</i>
<b>or</b> <i>sync-stat</i>
R1185 <i>unlock-stmt</i> <b>is</b> UNLOCK ( <i>lock-variable</i> [ , <i>sync-stat-list</i> ] )
R1186 <i>lock-variable</i> <b>is</b> <i>scalar-variable</i>
R1201 <i>io-unit</i> <b>is</b> <i>file-unit-number</i>
<b>or</b> *
<b>or</b> <i>internal-file-variable</i>
R1202 <i>file-unit-number</i> <b>is</b> <i>scalar-int-expr</i>
R1203 <i>internal-file-variable</i> <b>is</b> <i>char-variable</i>
R1204 <i>open-stmt</i> <b>is</b> OPEN ( <i>connect-spec-list</i> )
R1205 <i>connect-spec</i> <b>is</b> [ UNIT = ] <i>file-unit-number</i>
<b>or</b> ACCESS = <i>scalar-default-char-expr</i>
<b>or</b> ACTION = <i>scalar-default-char-expr</i>
<b>or</b> ASYNCHRONOUS = <i>scalar-default-char-expr</i>
<b>or</b> BLANK = <i>scalar-default-char-expr</i>
<b>or</b> DECIMAL = <i>scalar-default-char-expr</i>
<b>or</b> DELIM = <i>scalar-default-char-expr</i>
<b>or</b> ENCODING = <i>scalar-default-char-expr</i>
<b>or</b> ERR = <i>label</i>
<b>or</b> FILE = <i>file-name-expr</i>
<b>or</b> FORM = <i>scalar-default-char-expr</i>
<b>or</b> IOMSG = <i>iomsg-variable</i>
<b>or</b> IOSTAT = <i>stat-variable</i>
<b>or</b> LEADING_ZERO = <i>scalar-default-char-expr</i>
<b>or</b> NEWUNIT = <i>scalar-int-variable</i>
<b>or</b> PAD = <i>scalar-default-char-expr</i>
<b>or</b> POSITION = <i>scalar-default-char-expr</i>
<b>or</b> RECL = <i>scalar-int-expr</i>
<b>or</b> ROUND = <i>scalar-default-char-expr</i>
<b>or</b> SIGN = <i>scalar-default-char-expr</i>
<b>or</b> STATUS = <i>scalar-default-char-expr</i>
R1206 <i>file-name-expr</i> <b>is</b> <i>scalar-default-char-expr</i>
R1207 <i>iomsg-variable</i> <b>is</b> <i>scalar-default-char-variable</i>
R1208 <i>close-stmt</i> <b>is</b> CLOSE ( <i>close-spec-list</i> )
R1209 <i>close-spec</i> <b>is</b> [ UNIT = ] <i>file-unit-number</i>
<b>or</b> IOSTAT = <i>stat-variable</i>
<b>or</b> IOMSG = <i>iomsg-variable</i>
<b>or</b> ERR = <i>label</i>
<b>or</b> STATUS = <i>scalar-default-char-expr</i>
R1210 <i>read-stmt</i> <b>is</b> READ ( <i>io-control-spec-list</i> ) [ <i>input-item-list</i> ]
<b>or</b> READ <i>format</i> [ , <i>input-item-list</i> ]
R1211 <i>write-stmt</i> <b>is</b> WRITE ( <i>io-control-spec-list</i> ) [ <i>output-item-list</i> ]
R1212 <i>print-stmt</i> <b>is</b> PRINT <i>format</i> [ , <i>output-item-list</i> ]
R1213 <i>io-control-spec</i> <b>is</b> [ UNIT = ] <i>io-unit</i>
<b>or</b> [ FMT = ] <i>format</i>
<b>or</b> [ NML = ] <i>namelist-group-name</i>
<b>or</b> ADVANCE = <i>scalar-default-char-expr</i>
<b>or</b> ASYNCHRONOUS = <i>scalar-default-char-constant-expr</i>
<b>or</b> BLANK = <i>scalar-default-char-expr</i>
<b>or</b> DECIMAL = <i>scalar-default-char-expr</i>
<b>or</b> DELIM = <i>scalar-default-char-expr</i>
<b>or</b> END = <i>label</i>
<b>or</b> EOR = <i>label</i>
<b>or</b> ERR = <i>label</i>
<b>or</b> ID = <i>id-variable</i>
<b>or</b> IOMSG = <i>iomsg-variable</i>
<b>or</b> IOSTAT = <i>stat-variable</i>
<b>or</b> LEADING_ZERO = <i>scalar-default-char-expr</i>
<b>or</b> PAD = <i>scalar-default-char-expr</i>
<b>or</b> POS = <i>scalar-int-expr</i>
<b>or</b> REC = <i>scalar-int-expr</i>
<b>or</b> ROUND = <i>scalar-default-char-expr</i>
<b>or</b> SIGN = <i>scalar-default-char-expr</i>
<b>or</b> SIZE = <i>scalar-int-variable</i>
R1214 <i>id-variable</i> <b>is</b> <i>scalar-int-variable</i>
R1215 <i>format</i> <b>is</b> <i>default-char-expr</i>
<b>or</b> <i>label</i>
<b>or</b> *
R1216 <i>input-item</i> <b>is</b> <i>variable</i>
<b>or</b> <i>io-implied-do</i>
R1217 <i>output-item</i> <b>is</b> <i>expr</i>
<b>or</b> <i>io-implied-do</i>
R1218 <i>io-implied-do</i> <b>is</b> ( <i>io-implied-do-object-list</i> , <i>io-implied-do-control</i> )
R1219 <i>io-implied-do-object</i> <b>is</b> <i>input-item</i>
<b>or</b> <i>output-item</i>
R1220 <i>io-implied-do-control</i> <b>is</b> <i>do-variable</i> = <i>scalar-int-expr</i> ,
<i>scalar-int-expr</i> [ , <i>scalar-int-expr</i> ]
R1221 <i>dtv-type-spec</i> <b>is</b> TYPE( <i>derived-type-spec</i> )
<b>or</b> CLASS( <i>derived-type-spec</i> )
R1222 <i>wait-stmt</i> <b>is</b> WAIT (<i>wait-spec-list</i>)
R1223 <i>wait-spec</i> <b>is</b> [ UNIT = ] <i>file-unit-number</i>
<b>or</b> END = <i>label</i>
<b>or</b> EOR = <i>label</i>
<b>or</b> ERR = <i>label</i>
<b>or</b> ID = <i>scalar-int-expr</i>
<b>or</b> IOMSG = <i>iomsg-variable</i>
<b>or</b> IOSTAT = <i>stat-variable</i>
R1224 <i>backspace-stmt</i> <b>is</b> BACKSPACE <i>file-unit-number</i>
<b>or</b> BACKSPACE ( <i>position-spec-list</i> )
R1225 <i>endfile-stmt</i> <b>is</b> ENDFILE <i>file-unit-number</i>
<b>or</b> ENDFILE ( <i>position-spec-list</i> )
R1226 <i>rewind-stmt</i> <b>is</b> REWIND <i>file-unit-number</i>
<b>or</b> REWIND ( <i>position-spec-list</i> )
R1227 <i>position-spec</i> <b>is</b> [ UNIT = ] <i>file-unit-number</i>
<b>or</b> IOMSG = <i>iomsg-variable</i>
<b>or</b> IOSTAT = <i>stat-variable</i>
<b>or</b> ERR = <i>label</i>
R1228 <i>flush-stmt</i> <b>is</b> FLUSH <i>file-unit-number</i>
<b>or</b> FLUSH ( <i>flush-spec-list</i> )
R1229 <i>flush-spec</i> <b>is</b> [UNIT =] <i>file-unit-number</i>
<b>or</b> IOSTAT = <i>stat-variable</i>
<b>or</b> IOMSG = <i>iomsg-variable</i>
<b>or</b> ERR = <i>label</i>
R1230 <i>inquire-stmt</i> <b>is</b> INQUIRE ( <i>inquire-spec-list</i> )
<b>or</b> INQUIRE ( IOLENGTH = <i>scalar-int-variable</i> )
<i>output-item-list</i>
R1231 <i>inquire-spec</i> <b>is</b> [ UNIT = ] <i>file-unit-number</i>
<b>or</b> FILE = <i>file-name-expr</i>
<b>or</b> ACCESS = <i>scalar-default-char-variable</i>
<b>or</b> ACTION = <i>scalar-default-char-variable</i>
<b>or</b> ASYNCHRONOUS = <i>scalar-default-char-variable</i>
<b>or</b> BLANK = <i>scalar-default-char-variable</i>
<b>or</b> DECIMAL = <i>scalar-default-char-variable</i>
<b>or</b> DELIM = <i>scalar-default-char-variable</i>
<b>or</b> DIRECT = <i>scalar-default-char-variable</i>
<b>or</b> ENCODING = <i>scalar-default-char-variable</i>
<b>or</b> ERR = <i>label</i>
<b>or</b> EXIST = <i>scalar-logical-variable</i>
<b>or</b> FORM = <i>scalar-default-char-variable</i>
<b>or</b> FORMATTED = <i>scalar-default-char-variable</i>
<b>or</b> ID = <i>scalar-int-expr</i>
<b>or</b> IOMSG = <i>iomsg-variable</i>
<b>or</b> IOSTAT = <i>stat-variable</i>
<b>or</b> LEADING_ZERO = <i>scalar-default-char-variable</i>
<b>or</b> NAME = <i>scalar-default-char-variable</i>
<b>or</b> NAMED = <i>scalar-logical-variable</i>
<b>or</b> NEXTREC = <i>scalar-int-variable</i>
<b>or</b> NUMBER = <i>scalar-int-variable</i>
<b>or</b> OPENED = <i>scalar-logical-variable</i>
<b>or</b> PAD = <i>scalar-default-char-variable</i>
<b>or</b> PENDING = <i>scalar-logical-variable</i>
<b>or</b> POS = <i>scalar-int-variable</i>
<b>or</b> POSITION = <i>scalar-default-char-variable</i>