(vars, a, fa=None, f90mode=None)
| 20 | from ._isocbind import isoc_kindmap |
| 21 | |
| 22 | def var2fixfortran(vars, a, fa=None, f90mode=None): |
| 23 | if fa is None: |
| 24 | fa = a |
| 25 | if a not in vars: |
| 26 | show(vars) |
| 27 | outmess('var2fixfortran: No definition for argument "%s".\n' % a) |
| 28 | return '' |
| 29 | if 'typespec' not in vars[a]: |
| 30 | show(vars[a]) |
| 31 | outmess('var2fixfortran: No typespec for argument "%s".\n' % a) |
| 32 | return '' |
| 33 | vardef = vars[a]['typespec'] |
| 34 | if vardef == 'type' and 'typename' in vars[a]: |
| 35 | vardef = '%s(%s)' % (vardef, vars[a]['typename']) |
| 36 | selector = {} |
| 37 | lk = '' |
| 38 | if 'kindselector' in vars[a]: |
| 39 | selector = vars[a]['kindselector'] |
| 40 | lk = 'kind' |
| 41 | elif 'charselector' in vars[a]: |
| 42 | selector = vars[a]['charselector'] |
| 43 | lk = 'len' |
| 44 | if '*' in selector: |
| 45 | if f90mode: |
| 46 | if selector['*'] in ['*', ':', '(*)']: |
| 47 | vardef = '%s(len=*)' % (vardef) |
| 48 | else: |
| 49 | vardef = '%s(%s=%s)' % (vardef, lk, selector['*']) |
| 50 | else: |
| 51 | if selector['*'] in ['*', ':']: |
| 52 | vardef = '%s*(%s)' % (vardef, selector['*']) |
| 53 | else: |
| 54 | vardef = '%s*%s' % (vardef, selector['*']) |
| 55 | else: |
| 56 | if 'len' in selector: |
| 57 | vardef = '%s(len=%s' % (vardef, selector['len']) |
| 58 | if 'kind' in selector: |
| 59 | vardef = '%s,kind=%s)' % (vardef, selector['kind']) |
| 60 | else: |
| 61 | vardef = '%s)' % (vardef) |
| 62 | elif 'kind' in selector: |
| 63 | vardef = '%s(kind=%s)' % (vardef, selector['kind']) |
| 64 | |
| 65 | vardef = '%s %s' % (vardef, fa) |
| 66 | if 'dimension' in vars[a]: |
| 67 | vardef = '%s(%s)' % (vardef, ','.join(vars[a]['dimension'])) |
| 68 | return vardef |
| 69 | |
| 70 | def useiso_c_binding(rout): |
| 71 | useisoc = False |
no test coverage detected