Skip to content

4141 remove f90 references from both docstrings and docs#4283

Open
chris-ashe wants to merge 5 commits into
mainfrom
4141-remove-f90-references-from-both-docstrings-and-docs
Open

4141 remove f90 references from both docstrings and docs#4283
chris-ashe wants to merge 5 commits into
mainfrom
4141-remove-f90-references-from-both-docstrings-and-docs

Conversation

@chris-ashe
Copy link
Copy Markdown
Collaborator

Description

Checklist

I confirm that I have completed the following checks:

  • My changes follow the PROCESS style guide
  • I have justified any large differences in the regression tests caused by this pull request in the comments.
  • I have added new tests where appropriate for the changes I have made.
  • If I have had to change any existing unit or integration tests, I have justified this change in the pull request comments.
  • If I have made documentation changes, I have checked they render correctly.
  • I have added documentation for my change, if appropriate.

Copilot AI review requested due to automatic review settings June 3, 2026 08:34
@chris-ashe chris-ashe requested a review from a team as a code owner June 3, 2026 08:34
@chris-ashe chris-ashe added the Documentation Improvements or additions to documentation label Jun 3, 2026
@chris-ashe chris-ashe linked an issue Jun 3, 2026 that may be closed by this pull request
@chris-ashe chris-ashe requested a review from timothy-nunn June 3, 2026 08:35
@chris-ashe
Copy link
Copy Markdown
Collaborator Author

@timothy-nunn Tagging you here is there is lots of Fortran talked about in the vmcon stuff and not sure if it should be touched

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request updates the codebase documentation and inline docstrings/comments to remove or replace legacy references to Fortran (.f90) with Python (.py), aligning wording with the current Python-centric implementation.

Changes:

  • Replace .f90 references in documentation pages with .py equivalents (solver, physics, stellarator, costs, development docs).
  • Remove/adjust Fortran-specific phrasing in docstrings and comments across models, core solver/input, and tests.
  • Minor cleanup of legacy explanatory comments tied to the former Fortran implementation.

Reviewed changes

Copilot reviewed 35 out of 35 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
tracking/tracking_data.py Removes Fortran-specific guidance from tracking-related docstrings/comments.
tests/unit/models/test_pfcoil.py Updates test docstrings/comments to remove “Fortran module variables” phrasing.
tests/unit/models/test_divertor.py Updates module-level test docstring from .f90 to .py.
tests/unit/models/test_availability.py Removes Fortran-specific comments around test isolation.
tests/unit/models/physics/test_plasma_geom.py Updates module-level test docstring from .f90 to .py.
tests/unit/models/physics/test_physics.py Updates module-level test docstring from .f90 to .py.
tests/unit/models/physics/test_impurity_radiation.py Fixes docstring referencing .f90.py to .py.
tests/integration/test_vmcon.py Updates fixture docstring to remove Fortran phrasing.
process/models/tfcoil/superconducting.py Removes legacy Fortran behavior notes from comments.
process/models/tfcoil/base.py Updates docstrings/comments to remove Fortran references.
process/models/stellarator/coils/coils.py Removes comment referencing .f90 provenance for constants.
process/models/power.py Removes “only used in costs.f90” note from comment.
process/models/physics/physics.py Removes Fortran-loop commentary and updates output-related docstring text.
process/models/pfcoil.py Updates model init docstrings and removes Fortran-specific TODO/commentary.
process/models/blankets/hcpb.py Removes “only used by old routines in … .f90” comment.
process/models/blankets/dcll.py Updates .f90 reference in docstring line to .py.
process/main.py Rewrites top-level module docstring away from Fortran runtime description; updates various method docstrings.
process/data_structure/tfcoil_variables.py Updates variable docstring references from initial.f90 to initial.py.
process/data_structure/numerics.py Removes Fortran-specific comments about iteration variables and dictionary generation.
process/core/solver/solver_handler.py Removes Fortran-specific initialization/output comments and adjusts docstring wording.
process/core/solver/iteration_variables.py Removes Fortran-specific doc/comment text in iteration variable metadata and loading logic.
process/core/scan.py Updates class docstring to remove “Fortran scan module” phrasing.
process/core/process_output.py Removes a “remove when Fortran is gone” TODO comment.
process/core/output.py Removes Fortran-specific parameter description in docstring.
process/core/io/vary_run/tools.py Removes Fortran numbering conversion comment.
process/core/io/in_dat/base.py Removes large block comments describing legacy Fortran init/indexing issues.
process/core/io/data_structure_dicts.py Updates docstrings to reference input.py rather than input.f90.
process/core/input.py Updates docstrings and error messages to remove “Fortran module” wording.
process/core/caller.py Removes Fortran-vs-Python distinction in caller docstring.
documentation/source/solver/solver-guide.md Updates solver guide reference from evaluators.f90 to evaluators.py.
documentation/source/physics-models/fusion_reactions/plasma_reactions.md Updates constants.f90 references to constants.py.
documentation/source/fusion-devices/stellarator.md Updates stellarator source reference from stellarator.f90 to stellarator.py.
documentation/source/development/standards.md Updates standards references/examples from Fortran to Python.
documentation/source/development/add-vars.md Updates variable/iteration-variable add instructions from .f90 to .py and replaces examples.
documentation/source/cost-models/cost-models.md Updates costs model source reference from costs.f90 to costs.py.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread process/main.py Outdated
Comment thread documentation/source/development/standards.md Outdated
Comment thread documentation/source/development/standards.md Outdated
Comment thread documentation/source/development/standards.md Outdated
Comment thread documentation/source/development/standards.md Outdated
Comment thread process/core/io/data_structure_dicts.py Outdated
Comment thread process/core/io/data_structure_dicts.py Outdated
Comment on lines 1695 to 1699
"""Subroutine to output the plasma physics information
self.outfile : input integer : Fortran output unit identifier
self.outfile : file to write to
This routine writes the plasma physics information
to a file, in a tidy format.
"""
Comment thread process/core/output.py
Comment on lines 16 to 20
models : process.main.Models
physics and engineering model objects
_outfile : int
Fortran output unit identifier

"""
Comment thread process/models/blankets/dcll.py Outdated
@timothy-nunn timothy-nunn self-assigned this Jun 3, 2026
chris-ashe and others added 2 commits June 3, 2026 09:49
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@codecov-commenter
Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 50.00000% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 48.81%. Comparing base (906cf7d) to head (a6d3c4c).

Files with missing lines Patch % Lines
process/core/input.py 50.00% 1 Missing ⚠️
process/models/stellarator/coils/coils.py 0.00% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main    #4283   +/-   ##
=======================================
  Coverage   48.81%   48.81%           
=======================================
  Files         151      151           
  Lines       29097    29097           
=======================================
  Hits        14203    14203           
  Misses      14894    14894           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@clmould clmould self-requested a review June 3, 2026 13:54
Copy link
Copy Markdown
Collaborator

@clmould clmould left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a few things from me

Can this comment be deleted:
Image

Can this comment also be deleted please:
Image

3. Specify a sensible default value in the `init_XX_variables()` function within the corresponding model `.py` main file
2. Add a description of the input variable below the declaration, using the formatting described in the standards section specifying the units.

3. Assign a sensible initial value as the default type.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
3. Assign a sensible initial value as the default type.
3. Assign a sensible default initial value, and a type.

...
Bc2_0K: ScanVariable("Bc2(0K)", "GL_NbTi Bc2(0K)", 54),
dr_shld_inboard : ScanVariable("dr_shld_inboard", "Inboard neutronic shield", 55),
@classmethod
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure if the _missing_ method needs to be in this docs page?

Comment thread process/core/input.py
"""
current_value = getattr(config.module, name, ...)

# use ... sentinel because None is probably a valid return from Fortran
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could this be reworded instead of being deleted? As some variables have initial values set as None , and keeping a comment here would explain why we are using ... ?

load_iteration_variables(self.data)
load_scaled_bounds()

# Initialise iteration variables and bounds in Python: relies on Fortran
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could this be reworded instead of being deleted? As some variables have initial values set as None , and keeping a comment here would explain why we are using ... ?

if isinstance(value, np.ndarray):
value = value.item()
if isinstance(value, bytes):
# TODO: remove when Fortran is gone
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does the line below need removing, or has this TODO already been done?

n_tf_stress_layers: int = 0
"""Number of layers considered for the inboard TF stress calculations
set in initial.f90 from i_tf_bucking and n_tf_graded_layers
set in initial.py from i_tf_bucking and n_tf_graded_layers
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure this file exists?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remove F90 references from both docstrings and docs

5 participants