Как напечатать значения перечисления в виде строк в фортране? - PullRequest
0 голосов
/ 18 сентября 2018

Я определил перечисление UNIT, как показано ниже, на Фортране и хочу напечатать значения в виде строк вместо цифр.

public :: UNIT,E_TIME_STEP,E_DAY,E_WEEK,E_MONTH,E_YEAR
ENUM , BIND(C)
ENUMERATOR :: UNIT=0
ENUMERATOR :: E_TIME_STEP
ENUMERATOR :: E_DAY
ENUMERATOR :: E_WEEK
ENUMERATOR :: E_MONTH
ENUMERATOR :: E_YEAR
END ENUM

У меня есть функция, которая читает строковое значение ("TIME_STEP", "DAY""и т. д.) из файла и возвращает соответствующее значение перечисления (E_TIME_STEP, E_DAY и т. д.).

Это работает правильно, без проблем во время чтения.Однако я не храню строковое значение во время чтения, а после чтения у меня есть только значение enum (E_TIME_STEP, E_DAY и т. Д.).При печати на консоли мне нужно печатать строку вместо числа.Можно ли получить строку, не сохраняя ее в первом месте ??1006*

Я добавил две функции, одна из которых принимает входную строку ("TIME_STEP," DAY и т. Д.) И возвращает имя перечисления (UNIT) и вторая функция, которая принимает имя enum и значение enum (UNIT, от 1 до 5) и возвращает строку enum («TIME_STEP», «DAY» и т. д.), что не имеет смысла, поскольку я снова сохраняю имя enum влокальная переменная.Можно ли получить строку, не сохраняя ее даже локально?

...