Skip to content

Commit c89a1f5

Browse files
authored
Add documentation for toggling Fortran features (#98)
1 parent af5616c commit c89a1f5

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

pages/spec/manifest.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,13 @@ Every manifest file consists of the following sections:
3535
Link with external dependencies
3636
- [*external-modules*](#use-system-installed-modules):
3737
Specify modules used that are not within your fpm package
38+
- Fortran configuration:
39+
- [*implicit-typing*](#implicit-typing):
40+
Toggle default implicit typing
41+
- [*implicit-external*](#implicit-external):
42+
Toggle implicit external interfaces
43+
- [*source-form*](#source-form):
44+
Select source form for project
3845
- Target sections:
3946
- [*library*](#library-configuration)
4047
Configuration of the library target
@@ -426,6 +433,47 @@ auto-tests = false
426433
```
427434

428435

436+
## Fortran features
437+
438+
Allows to enable and disable specific language features
439+
440+
441+
### Implicit typing
442+
443+
Allows to toggle whether the default implicit typing should be used.
444+
The default option is ``false``.
445+
446+
```toml
447+
[fortran]
448+
implicit-typing = true # default: false
449+
```
450+
451+
452+
### Implicit external
453+
454+
Allows to toggle whether external interfaces can be declared implicitly.
455+
The default option is ``false``.
456+
457+
```toml
458+
[fortran]
459+
implicit-external = true # default: false
460+
```
461+
462+
463+
### Source form
464+
465+
Allows to specifiy the source form to be used for all files in the project.
466+
Possible choices are ``"free"`` to assume all files are free form source,
467+
``"fixed"`` to assume all files are fixed form source,
468+
and ``"default"`` to let the compiler decide based on its own heuristics.
469+
The default option is ``"free"``.
470+
471+
```toml
472+
[fortran]
473+
source-form = "fixed" # default: "free"
474+
```
475+
476+
429477
## Specifying dependencies
430478

431479
Dependencies can be declared in the *dependencies* table in the manifest root or the [*executable*](#executable-targets) or [*test*](#test-targets) sections.

0 commit comments

Comments
 (0)