MCPcopy Index your code
hub / github.com/numpy/numpy / var2fixfortran

Function var2fixfortran

numpy/f2py/func2subr.py:32–76  ·  view source on GitHub ↗
(vars, a, fa=None, f90mode=None)

Source from the content-addressed store, hash-verified

30
31
32def 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
78def useiso_c_binding(rout):
79 useisoc = False

Callers 2

createfuncwrapperFunction · 0.85
createsubrwrapperFunction · 0.85

Calls 2

joinMethod · 0.80
outmessFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…