ГОСТ Р ИСО 13584-101—2010
установлены значения атрибутов экземпляра сущности program_protocol. которую используют для
описания структуры и формата.
5.1 Имя подпрограммы на языке программирования FORTRAN
Программный блок (модуль) на языке FORTRAN должен быть
по
д
п
р
ог
рамм
ой
.
П р и м е ч а н и е — Программный блок на языке FORTRAN может не быть ПРОГРАММОЙ или ФУНКЦИЕЙ.
Имя программного блока на языке FORTRAN должно иметь следующую структуру.
’F’ + encoded_supplier_code ♦ + <program_name>
Код encoded_supplier_code должен быть кодом поставщика данных библиотеки согласно
ИСО 13584-26. к которому применяютфункцию кодирования. Функция encode предназначенадля заме
ны каждого знака, который не разрешается использовать в именах на языке
программирования FORTRAN, соответствующим кодированным знаком, который соответствует знаку
«_» последователь ности. за которым следует код знака (состоящий из двух знаков), в
соответствии с набором знаков ИСО/МЭК10646-1. Крометого, есликодируемымзнакомявляетсязнак
«_». тоив результатебудет«_».
encoded_supplier_code кодируется с использованием следующейфункции кодирования:
*)
FUNCTION encode(s: STRING): STRING;
LOCAL
strtmp: STRING:
lower_cases: LIST OF STRING :=
[’a’. ’b\ ’c\ ’d\ ’e\ T. ’g\ rh\ T. J /k\ T. ’m\ ’n\ ’o’, ’p’, ’q\ Y, ’s’. ’t*.’u’. V, V , V , ’ z ’ ] ;
upper_cases: LISTOF STRING :=
(’А1. Б 1.’C1.’D\ ’E’. ’F’,’G’. ’H’. T, ’J’ ,’K\ *L\ ’M’. ’N’. ’O’.’P’. ’Q’, *R\ ’S’, T , ’U\ V . W . X . T . ’Z’];
numerals: LIST OF STRING :=
ro y r. ’2’, ’3’,’4’,
T .
’8’. ’9’];
underscore: STRING :=
allowed_characters: LIST OF STRING :=
lower_cases ♦ upper_cases + numerals +underscore;
result: STRING :=
END_LOCAL;
REPEAT i := 1TO LENGTH(s);
IF NOT(s[i] IN allowed_characters)
THEN
strtmp := FORMAT(icode(s[i]). ’02Г);
result := result +’ ’ +strtmp:
ELSE
IF (s[i] =
THEN
result := result + + s[i]:
ELSE
result :=result ♦ sfll;
END IF;
END IF;
END_REPEAT;
RETURN (result):
END FUNCTION:
Г
1 — Функция tcode возвращает код знаков по ИСО 10646-1, интерпретируемых как целое
П р и м е ч а н и е
значение.
П р и м е ч а н и е
2 — Функция icode не установлена в языке EXPRESS, поскольку ограничения языка
EXPRESS могут привести к тому, что такая функция будет очень длинной.
Пример — Код поставщ ика 0112/1///13584_101_1 кодируют как 0112_2F1_2F_2F_2F13S84_101_1. "2F\
и он соответствует коду знака Т е наборе знаков по ИСО/МЭК 10646-1.
9