Как напечатать значения перечисления в виде строк в фортране?
Я определил enum 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 и т. Д.). При печати на консоли мне нужно печатать строку вместо числа. Возможно ли получить строку, не храня ее в первом месте?
Я добавил две функции, одна из которых принимает входную строку ("TIME_STEP", "DAY" и т. Д.) И возвращает имя enum (UNIT), а вторая функция принимает имя enum и значение enum (UNIT, 1–5) и возвращает Строка enum ("TIME_STEP", "DAY" и т. д.), которая не имеет смысла, так как я снова сохраняю имя enum в локальной переменной. Можно ли получить строку, не сохраняя ее даже локально?