Writing fortran
Use when writing, reading, updating, building, or reviewing Fortran code in the RISC OS build environment, especially when compiling with riscos64-fortran, linking with C, passing _kernel_swi_regs, handling C/control-terminated strings, or generating Fortran modules from RISC OS header constants.From its SKILL.md
npx -y skills add gerph/riscos-agent-skills --skill writing-fortranAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
1.7 KB, 360 tokens by cl100k_base, as published. Nobody here has run it
Writing Fortran for RISC OS
Use this skill for Fortran work in the RISC OS build environment.
Read only the reference files needed for the task:
- Build, source layout, modules, and command lines:
references/building.md - C/Fortran interworking, C strings, and
_kernel_swi_regs:references/c-interop.md - Generated constants and Fortran modules from RISC OS headers:
references/generated-constants.md - Common RISC OS build pitfalls and review checks:
references/pitfalls.md
Core Rules
Fortran source files live in f90/ and do not have a .f90 suffix in the
host filesystem. Use RISC OS-style names with the wrappers, for example:
riscos64-fortran -c -o o.name f90.name
riscos64-link o.name -lgfortran -o name,ff8
Always link -lgfortran when any Fortran object is present.
Always use implicit none in every program, module, function, and
subroutine.
Use modules for shared constants and library code. Fortran module names are
flat; there is no use riscos/WimpSpace path syntax. Prefer namespaced module
names such as riscos_wimpspace.
For C-facing interfaces, use iso_c_binding and bind(C, name="...").
Use value in Fortran for scalar arguments passed by value from C.
For _kernel_swi_regs, C regs.r[0] maps to Fortran regs(1).
Do not read or write generated .rotransform files.
What ships with it: 5 files
8.7 KB alongside SKILL.md
agents/
- openai.yaml217 B
references/
- building.md2.0 KB
- c-interop.md3.5 KB
- generated-constants.md1.2 KB
- pitfalls.md1.7 KB
Gives 0 of the 12 instructions most docs writing skills give in 360 tokens
Counted across 1,637 of the 3,044 authors here whose files we hold, read 2026-08-07
- Announce the skill at startin 54 of 1637, across 26 files
- Convert legacy doc files before editingin 45 of 1637, across 7 files
- Predict questions readers might askin 42 of 1637, across 4 files
- Generate clarifying questions for initial contextin 42 of 1637, across 3 files
- Create document scaffold with placeholder textin 42 of 1637, across 3 files
- Brainstorm content options for each sectionin 42 of 1637, across 3 files
- Test the document with a fresh context-less instancein 42 of 1637, across 3 files
- Include exact file paths in every taskin 42 of 1637, across 15 files
- Ask interview questions one at a timein 42 of 1637, across 27 files
- Apply surgical edits during refinementin 41 of 1637, across 2 files
- Offer structured workflow or freeformin 40 of 1637, across 1 file
- Ask for document meta-contextin 40 of 1637, across 2 files
Said here and by no other author read
- use RISC OS-style filenames without a suffix
- link with -lgfortran for Fortran objects
- use implicit none in all program units
- use modules for shared constants and library code
- use flat namespaced module names
- use iso_c_binding for C-facing interfaces
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.