Fortran — чек-лист
Чек-лист самопроверки
Ответьте своими словами (без подглядывания в код):
- Зачем в каждой программе пишут
implicit none? - Чем
programотличается отsubroutineиfunction? - Что означает
print *,и чемwriteгибче? - Почему в Fortran индексация массивов часто начинается с 1?
- Что такое
allocatableи когда вызываютallocate/deallocate? - Чем free-form отличается от fixed-form?
- Какую роль играет
module? - Что такое
pureprocedure и зачем она нужна в HPC? - Какие флаги вы бы поставили для учебной сборки gfortran?
- Где в разделе искать coarray и OpenMP?
Практический мини-тест (без IDE-подсказок)
- Напишите файл
check.f90сprogram,implicit none, массивомreal :: a(5), присвойтеa = 1.0и выведитеsum(a). - Добавьте функцию
pure real function sqr(x)и примените ее к массиву. - Соберите с флагами
-Wall -std=f2018 -fcheck=allи устраните все предупреждения.
Если это получается без подсказок, базовый уровень по разделу уже уверенный.
Как интерпретировать результат
- 8-10 уверенных ответов: можно переходить к чтению чужих Fortran-проектов и к Справочник по языку Fortran.
- 5-7 ответов: база есть, но стоит повторить Основы языка Fortran, Типы данных в Fortran, Управляющие конструкции и операторы Fortran, Подпрограммы и функции в Fortran.
- 0-4 ответа: лучше заново пройти маршрут из intro, начиная с Первая программа на Fortran.
Если на половину вопросов ответ уверенный — переходите к справочнику 811 и к чтению чужого .f90 из репозитория.