Skip to content

Commit f88e0a9

Browse files
author
Damian Rouson
committed
doc(README/ford): add doc-generation instructions
update submodules to work around FORD bug
1 parent 93a6a1e commit f88e0a9

File tree

3 files changed

+25
-4
lines changed

3 files changed

+25
-4
lines changed

README.md

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,14 @@ Utility functions
3535

3636
* Array functions
3737
* Assertions
38-
* Emulated intrinsic functions
38+
* Emulated intrinsic functions: `findloc`
39+
* Emulated collective subroutines: `co_sum`, `co_broadcast`
40+
* User-defined collective subroutines: `co_all`
3941
* String functions
4042

4143
Classes
4244
-------
45+
* Parallel data partitioning and gathering
4346
* (Co-)Object pattern abstract parent
4447

4548
Prerequisites
@@ -65,13 +68,19 @@ fpm test \
6568
--flag "-Wall" \
6669
--flag "-std=f2018" \
6770
--flag "-DCOMPILER_LACKS_COLLECTIVE_SUBROUTINES" \
68-
--flag "-DCOMPILER_LACKS_FINDLOC"
71+
--flag "-DCOMPILER_LACKS_FINDLOC"
6972
```
70-
where the `COMPILER_LACKS_*` flags exercise the Sourcery Library's
71-
emulated instrinsic procedures, which are intended for use with
73+
where the `COMPILER_LACKS_*` flags exercise the Sourcery Library's
74+
emulated instrinsic procedures, which are intended for use with
7275
compiler versions that lack support for the named features. Delete
7376
those flags with compilers that support these features.
7477

78+
Build documentation
79+
-------------------
80+
```zsh
81+
ford doc/ford-documentation.md
82+
```
83+
7584
[GNU Fortran]: https://gcc.gnu.org
7685
[OpenCoarrays]: https://github.com/sourceryinstitute/opencoarrays
7786
[fpm]: https://github.com/fortran-lang/fpm

src/data-partition-implementation.f90 renamed to src/data-partition-implementation.F90

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,21 @@
2626
end block
2727
end associate
2828

29+
#ifdef FORD
30+
end procedure
31+
#else
2932
contains
33+
#endif
3034

3135
pure function overflow(im, excess) result(extra_datum)
3236
integer, intent(in) :: im, excess
3337
integer extra_datum
3438
extra_datum= merge(1,0,im<=excess)
3539
end function
3640

41+
#ifndef FORD
3742
end procedure
43+
#endif
3844

3945
module procedure first
4046
if (assertions) call assert( allocated(first_datum), "allocated(first_datum)")

src/emulated_intrinsics_implementation.F90

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,19 @@
1212

1313
module procedure co_all
1414
call co_reduce(boolean, both)
15+
#ifdef FORD
16+
end procedure
17+
#else
1518
contains
19+
#endif
1620
pure function both(lhs,rhs) result(lhs_and_rhs)
1721
logical, intent(in) :: lhs,rhs
1822
logical lhs_and_rhs
1923
lhs_and_rhs = lhs .and. rhs
2024
end function
25+
#ifndef FORD
2126
end procedure
27+
#endif
2228

2329
#ifdef COMPILER_LACKS_COLLECTIVE_SUBROUTINES
2430
module procedure co_sum_integer

0 commit comments

Comments
 (0)