Это довольно старый вопрос, но я решил добавить свой ответ на случай, если кто-нибудь придет позже (как и я), чтобы найти ответ на этот вопрос.
У меня была такая же проблема, как и у вас, когда я пытался заставить работать escape-последовательности. Я закончил тем, что пошел на справочную страницу для gfortran . поиск 'escape' привел меня к опции компилятора '-fbackslash'. Со страницы руководства:
Измените интерпретацию обратной косой черты в строковых литералах с
одиночный символ обратной косой черты для escape-символов "C-style".
следующие комбинации раскрываются "\ a", "\ b", "\ f", "\ n", "\ r",
«\ t», «\ v», «\» и «\ 0» для оповещения символов ASCII, возврата на одну позицию,
подача формы, перевод строки, возврат каретки, горизонтальная вкладка, вертикальная вкладка,
обратная косая черта и NUL соответственно. Кроме того, "\ x" nn, "\ u" nnnn и
«\ U» nnnnnnnn (где каждый n - шестнадцатеричная цифра) переводятся в
символы Юникода, соответствующие указанным кодовым точкам. Все
другие комбинации символов, которым предшествует \, не расширяются.
Итак, чтобы заставить escape-последовательности работать в Фортране, все, что нам нужно сделать, это скомпилировать эту опцию. Единственное, что отличается, это то, что мы должны использовать шестнадцатеричные числа вместе с x вместо восьмеричных чисел. В данном конкретном случае вместо \033
мы используем \x1B
. Например, PRINT *, "\x1B[31mThis text is red.\x1B[0m
напечатает текст красным цветом.
Я думаю, что этот метод определенно предпочтительнее, чем объединение нескольких индивидуально определенных символов каждый раз, когда мы хотим использовать цвет.