Joerg Henrichs
Joerg Henrichs
Some UM code contains declarations in OpenMP sentinels, e.g.: ``` !$ USE compute_chunk_size_mod, ONLY: compute_chunk_size ! Note OpenMP sentinel ``` Fparser skips these lines as comment lines, and as a...
fparser has limited support for preprocessor directives. Example: ``` MODULE lfric_abort_mod IMPLICIT NONE CONTAINS SUBROUTINE parallel_abort(ierr) #ifdef NO_MPI #else USE mpi, ONLY: mpi_abort, MPI_COMM_WORLD #endif ``` But the indentation causes...
The driver created as part of the PSyclone kernel extraction contains ('inlines') all required modules. While this is very convenient, it can be useful to have individual files (e.g. to...
The following code snippet from LFRic (taken from PSyclone's `tests/psyad/tl2ad_test.py` ``` real, dimension(npts) :: field call random_number(field) ``` does not recognise `random_number` as an intrinsic. FParser returns it as: ```...
When a `use` statement is encountered, fparser will try to find & parse the sources for this module: ``` readfortran.py: ================ def find_module_source_file(self, mod_name): ... fn = None for d...
Fixed #2578. Background: in VariablesAccessInfo each statement gets a location number, e.g.: ``` [0] a = 1 [1] b = a+1 [2] call xyz(b) [3] c=a+b ``` This is used...
When implementing #1288 , some functionality (automatically created unique region names) was moved from the Extract node into the transformation. But other transformations (at least profile) still need the same...
After #1991 the LFRic driver creation will have several features that are missing in GOcean, e.g. simplified building by inlining modules, and after #1990 handling variables used but declared in...
The original code to remove protected/private variables in inlined modules was very fragile. It relied only on regex to replace the terms, meaning if a code should contain a symbol...
When collecting access information, each statement should get a new location number (to help with detecting which access was previous etc). A call statement does not increase the location number.