Skip to content

Adopt a Fortran formatter and static code analyzer for CCPP framework #703

@climbfuji

Description

@climbfuji

Description

At the CCPP framework meeting on 12/4/2025 it was decided to adopt a Fortran formatter and static code analyzer (the latter is required for operational implementation at NRL and NOAA, and likely other operational centers).

One suggestion was to use Codee (https://codee.com), which is currently being adopted by NRL for the NEPTUNE model (which uses CCPP framework and physics), and which NCAR/CISL is also looking into.

The Fortran free-form formatter from Codee is free to use; fixed-form formatting and static coda analysis require paid licenses.

Solution

@climbfuji will create a pull request that adds Codee as Fortran formatter (config file + github actions integration + command line usage + documentation). This will serve as a demonstrator for using Codee.

If accepted, the team will update the auto-generated caps from capgen to comply with the agreed-upon Codee Fortran style. This may go as far as reading the Codee format configuration (a YAML file) in capgen to produce the correct output (e.g. indentation).

Until the fully licensed version becomes available for use by NCAR, NRL and potentially other partners with a fully licensed version will do the static code analysis in its fork and feed back any changes required for operational implementation to the authoritative repository.

Alternatives (optional)

Do nothing or choose a different tool.

Related to (optional)

This is related to the adoption of a Python formatter and linter, described in #702

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions