diff options
author | Alexander Heger <alexander.heger@monash.edu> | 2015-09-12 13:26:01 +1000 |
---|---|---|
committer | Charles Harris <charlesr.harris@gmail.com> | 2015-10-16 11:46:10 -0600 |
commit | f8edf9e397808bfa4db94dab12fd564080239d92 (patch) | |
tree | eed1ee30e26750baefd2f31882116b1bba85b8d8 /numpy/f2py | |
parent | 972dbd00152aaec53369fc82913286a0f93b5ca6 (diff) | |
download | numpy-f8edf9e397808bfa4db94dab12fd564080239d92.tar.gz |
BUG: Allow nested use of parameters for array dimensions in f2py.
Nested use of parameters in specifying dimensions caused problems.
For example
parameter (i=7)
common buf(nvar*(nvar+1) * (n + 1))
This fix was suggested by Pearu on github.
Closes #5877.
Diffstat (limited to 'numpy/f2py')
-rwxr-xr-x | numpy/f2py/crackfortran.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/numpy/f2py/crackfortran.py b/numpy/f2py/crackfortran.py index 8c0247342..f392f946c 100755 --- a/numpy/f2py/crackfortran.py +++ b/numpy/f2py/crackfortran.py @@ -2624,11 +2624,12 @@ def analyzevars(block): if d in params: d = str(params[d]) for p in list(params.keys()): - m = re.match( - r'(?P<before>.*?)\b' + p + r'\b(?P<after>.*)', d, re.I) - if m: + re_1 = re.compile(r'(?P<before>.*?)\b' + p + r'\b(?P<after>.*)', re.I) + m = re_1.match(d) + while m: d = m.group('before') + \ str(params[p]) + m.group('after') + m = re_1.match(d) if d == star: dl = [star] else: |