К основному содержанию
правило

fortran — правило для Cursor: что делает и как установить

Правило задаёт стиль для современного Fortran: модули, типы, массивы, тесты и сборка. Оно пригодится при разработке научного кода в Cursor.

Установить в Cursor · Вручную: положить файлы Все способы и платформы ↓
.cursor/rules/fortran.mdc
Открыть на GitHub

Что делает fortran

Правило направляет Cursor к современному Fortran 2003, 2008 или новее. Оно требует implicit none, явных интерфейсов через модули, отдельных kind-параметров для чисел и понятных имён. Устаревшие COMMON, числовые метки и управление через GOTO предлагается не использовать.

Для процедур задаются intent(in), intent(out) или intent(inout), а импорты ограничиваются через use, only:. Для массивов предпочтительны allocatable, с проверкой состояния выделения и размеров. Правило также охватывает тесты публичных процедур, граничные случаи, численные допуски и сборку через CMake, fpm или Make.

Оно применяется к Fortran-файлам, CMakeLists.txt, *.cmake и Makefile, но alwaysApply имеет значение false. Код в файлах вне этих шаблонов автоматически под это правило не попадёт.

Какие задачи решает

  • структурировать Fortran-код через модули
  • задать kind-параметры для чисел
  • проверить intent и интерфейсы процедур
  • избежать ошибок с allocatable-массивами
  • добавить тесты для численных случаев

Примеры запросов агенту

  • Перепиши эту процедуру в стиле современного Fortran и добавь явные intent для аргументов.
  • Проверь модуль solver.f90: найди проблемы с типами, массивами и импортами.
  • Добавь тесты для граничных условий и проверь численные допуски в сборке через CMakeLists.txt.

Как установить fortran

Вручную: положить файлы

.cursor/rules/fortran.mdc

Во frontmatter: description, globs, alwaysApply

По шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules

Вопросы о fortran

Как установить fortran в Cursor?

Сохраните правило в файле .cursor/rules/fortran.mdc в проекте Cursor.

Что делает правило fortran?

Оно задаёт рекомендации для модулей, явных интерфейсов, kind-параметров, памяти, тестов и сборки в Fortran-проекте.

Какие файлы обрабатывает правило fortran?

Правило применяется к файлам с расширениями .f, .f90, .f95, .f03, .f08, .for, .ftn, а также к CMakeLists.txt, *.cmake и Makefile.

Исходный текст

fortran.mdc · CC0-1.0
---
description: Modern Fortran rules for scientific computing, modules, explicit interfaces, kind parameters, memory safety, and testing
globs: ["**/*.f", "**/*.f90", "**/*.f95", "**/*.f03", "**/*.f08", "**/*.for", "**/*.ftn", "CMakeLists.txt", "*.cmake", "Makefile"]
alwaysApply: false
---

# Fortran Programming Guidelines

## Basic Principles

- Use modern Fortran standards such as Fortran 2003, 2008, or newer.
- Use `implicit none` in every program unit.
- Put procedures in modules to provide explicit interfaces.
- Keep modules focused and place each major module in its own file.
- Prefer clear, structured code over clever language tricks.
- Avoid obsolete features such as COMMON blocks, GOTO-heavy control flow, and numeric labels.

## Kinds and Types

- Define numeric kind parameters in one shared module, such as `kind_mod`.
- Use `real(kind=dp)` or the project-approved real kind for floating point values.
- Use `integer(kind=i4)` or the project-approved integer kind for integer values.
- Define constants such as pi explicitly.
- Include units in comments for physical quantities.
- Use derived types to group related data instead of passing many primitive arguments.

## Naming and Style

- Use lowercase for language keywords and most identifiers.
- Use underscores for multi-word names.
- Avoid names that differ only by case.
- Use descriptive names for procedures and state.
- Repeat the procedure or module name after `end` statements.
- Keep indentation consistent in `do`, `if`, `select case`, and module blocks.

## Procedures

- Keep subroutines and functions short and single-purpose.
- Use `intent(in)`, `intent(out)`, or `intent(inout)` for every dummy argument.
- Keep functions free of side effects whenever possible.
- Prefer early validation and clear returns over deep nesting.
- Use `use, only:` when importing from modules.

## Memory and Arrays

- Prefer allocatable arrays over pointers unless pointer semantics are required.
- Check allocation state and array sizes before use.
- Deallocate allocatable arrays when their lifetime is not naturally scoped.
- Specify array bounds clearly when they matter.
- Avoid unnecessary dynamic allocation in hot loops.

## Testing and Build

- Use CMake, fpm, Make, or the project-standard build system consistently.
- Compile with warnings enabled and treat important warnings as failures in CI.
- Add unit tests for public procedures and integration tests for numerical workflows.
- Test boundary conditions, invalid inputs, and representative scientific cases.
- Verify numerical tolerances explicitly rather than relying on exact floating point equality.

## Common Mistakes

- Do not declare variables after executable code unless using a block construct.
- Do not assume `random_number` is a function; it is a subroutine.
- Do not write to stdout from pure procedures.
- Do not declare the same variable twice in the same scope.
- Do not assume pi, dp, or project kinds already exist without importing or defining them.

© PatrickJS · CC0-1.0 · PatrickJS/awesome-cursorrules

Похожие правила IDE

Все правила IDE по теме «Языки программирования» →
winui3 официальный github Правило задаёт рекомендации для WinUI 3 и Windows App SDK: от XAML и потоков до окон и MVVM. Пригодится, чтобы Copilot учитывал особенности настольных приложений Windows. ★ 40 451звёзд репо vue официальный github Правило задаёт Copilot стандарты Vue 3: Composition API, <script setup>, реактивность, Pinia и Vue Router. Пригодится, когда агент пишет компоненты в вашем стиле. ★ 40 451звёзд репо vsixtoolkit официальный github Направляет GitHub Copilot при создании расширений VSIX через библиотеку Community.VisualStudio.Toolkit. Задаёт совместимость с .NET Framework 4.8 и правила потоков. ★ 40 451звёзд репо tanstack-start-shadcn-tailwind официальный github Правило задаёт Copilot стек TanStack Start, Shadcn/ui и Tailwind CSS и требует валидировать внешние данные через Zod. ★ 40 451звёзд репо swift-mcp-server официальный github Правило задаёт Copilot шаблоны для сборки MCP-серверов на Swift через официальный SDK: инструменты, ресурсы, промпты и транспорты. ★ 40 451звёзд репо svelte официальный github Направляет GitHub Copilot на стандарты Svelte 5 и SvelteKit 2: руны вместо старых сторов, типизация компонентов и безопасная работа с SSR. ★ 40 451звёзд репо

Из того же набора140

gitflow Задаёт правила ветвления Gitflow, формат коммитов Conventional Commits и порядок релизов для ИИ-ассистента в Cursor. ★ 41 024звёзд репо git-conventional-commit-messages Правило задаёт формат Conventional Commits для сообщений Git. Пригодится, когда агент готовит коммиты по типу изменения и области кода. ★ 41 024звёзд репо gherkin-style-testing-cursorrules-prompt-file Правило превращает технические тест-скрипты и ручные кейсы в Gherkin-сценарии на языке, понятном бизнесу и юристам. ★ 41 024звёзд репо gamemaker-gml Задаёт стандарты архитектуры и стиля GameMaker Language для проектов на GML. Помогает Cursor писать чистый игровой код без утечек памяти. ★ 41 024звёзд репо flutter-development-guidelines-cursorrules-prompt-file Задаёт структуру проекта, нейминг и стиль Dart для Flutter-приложений на MVVM с Riverpod. Пригодится, когда агент в Cursor разносит код по папкам как попало. ★ 41 024звёзд репо flutter-app-expert-cursorrules-prompt-file Настраивает Cursor на разработку мобильных приложений на Flutter 3.x с чистой архитектурой, BLoC и Material 3. Помогает держать единообразную структуру фич и тестов. ★ 41 024звёзд репо fastapi Правило задаёт практики для FastAPI-проектов на Python: структура, API, модели, база данных, безопасность и тесты. Подключается к файлам по glob-шаблонам. ★ 41 024звёзд репо es-module-nodejs-guidelines-cursorrules-prompt-fil Правило настраивает Cursor на работу с современным Node.js и синтаксисом ES-модулей. Оно требует коротких ответов и запрещает пустые извинения за баги. ★ 41 024звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой