(vars, a, fa=None, f90mode=None)
| 30 | |
| 31 | |
| 32 | def var2fixfortran(vars, a, fa=None, f90mode=None): |
| 33 | if fa is None: |
| 34 | fa = a |
| 35 | if a not in vars: |
| 36 | show(vars) |
| 37 | outmess(f'var2fixfortran: No definition for argument "{a}".\n') |
| 38 | return '' |
| 39 | if 'typespec' not in vars[a]: |
| 40 | show(vars[a]) |
| 41 | outmess(f'var2fixfortran: No typespec for argument "{a}".\n') |
| 42 | return '' |
| 43 | vardef = vars[a]['typespec'] |
| 44 | if vardef == 'type' and 'typename' in vars[a]: |
| 45 | vardef = f"{vardef}({vars[a]['typename']})" |
| 46 | selector = {} |
| 47 | lk = '' |
| 48 | if 'kindselector' in vars[a]: |
| 49 | selector = vars[a]['kindselector'] |
| 50 | lk = 'kind' |
| 51 | elif 'charselector' in vars[a]: |
| 52 | selector = vars[a]['charselector'] |
| 53 | lk = 'len' |
| 54 | if '*' in selector: |
| 55 | if f90mode: |
| 56 | if selector['*'] in ['*', ':', '(*)']: |
| 57 | vardef = f'{vardef}(len=*)' |
| 58 | else: |
| 59 | vardef = f"{vardef}({lk}={selector['*']})" |
| 60 | elif selector['*'] in ['*', ':']: |
| 61 | vardef = f"{vardef}*({selector['*']})" |
| 62 | else: |
| 63 | vardef = f"{vardef}*{selector['*']}" |
| 64 | elif 'len' in selector: |
| 65 | vardef = f"{vardef}(len={selector['len']}" |
| 66 | if 'kind' in selector: |
| 67 | vardef = f"{vardef},kind={selector['kind']})" |
| 68 | else: |
| 69 | vardef = f'{vardef})' |
| 70 | elif 'kind' in selector: |
| 71 | vardef = f"{vardef}(kind={selector['kind']})" |
| 72 | |
| 73 | vardef = f'{vardef} {fa}' |
| 74 | if 'dimension' in vars[a]: |
| 75 | vardef = f"{vardef}({','.join(vars[a]['dimension'])})" |
| 76 | return vardef |
| 77 | |
| 78 | def useiso_c_binding(rout): |
| 79 | useisoc = False |
no test coverage detected
searching dependent graphs…