This file naming convention may be specified in Backus-Naur form as:
<filename> ::= <name_part> <delim0> <type_part>
<name_part> ::= <quantity_field> [ <optional_field> ] { <delim1> <optional_field> }
<type_part> ::= <source_field>
<quantity_field> ::= <name_1> | <name_2> | <name_3> | <name_4>
<optional field> ::= <date_field> | <grid_field> | <forecast_field> | <sequence field> | <format_field> | <special field> | <time-field>
<date_field> ::= <ave_spec> <date_spec>
<grid_field> ::= "G" <grid_form>
<forecast_field> ::= "F" <forecast_form> <sequence_field> ::= "E" <upperalphanumeric> { <upperalphanumeric> } <format_field> ::= "X" { <format_form> } <special_field> ::= "S" <upperalphanumeric> { <upperalphanumeric> } <time_field> ::= "T" <time_form> <name_1> ::= <upperalphabetic> <delim1> <delim1> <delim1> <name_2> ::= <upperalphabetic> <upperalphanumeric> <delim1> <delim1> <name_3> ::= <upperalphabetic> <upperalphanumeric> <upperalphanumeric> <delim1> <name_4> ::= <upperalphabetic> <upperalphanumeric> <upperalphanumeric> <upperalphanumeric> <ave_spec> ::= "I" | "D" | "M" | "Y"
<date_spec> ::= <date_long> | <date_short>
<date_long> ::= <year_digit> <year_digit> <month_digit> <month_digit> <day_digit> <day digit> [ <hour_digit> <hour_digit> ]
<date_short> ::= <base_26_digit> <base_26_digit> <base_26_digit> <base_26_digit> ::= <upperalphabetic>
<grid_form> ::= <grid_spec_char> { <grid_spec_char> }
<grid_spec_char> :== <upperalphanumeric> | <delim2>
<forecast_form> ::= "H" <hour> | "D" <day> | <upperalphabetic> <digit> { <digit> } <hour> ::= <digit> { <digit> } <day> ::= <digit> { <digit> }
<format_form> ::= "P" | "C" <string_code> | "B" <binary_code>
<string_code> ::= "A" | "E"
<binary_code> ::= <floating_format> <byte_order> <word_order> <ftn_header> <disk_organize> <packing>
<floating_format> ::= "I" | "E" | "V" | "Y"
<byte_order> ::= "B" | "L" <word_order> ::= "B" | "L"
<ftn_header> ::= "C" | "F" <disk_organize> ::= "S" | "V" | "F"
<packing> ::= "P" | "U" <upperalphanumeric> ::= <upperalphabetic> | <digit> <upperalphabetic> ::= "A"-"Z" <digit> ::= "0"-"9"