MCPcopy Create free account
hub / github.com/numpy/numpy / var2fixfortran

Function var2fixfortran

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

Source from the content-addressed store, hash-verified

20from ._isocbind import isoc_kindmap
21
22def 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
70def useiso_c_binding(rout):
71 useisoc = False

Callers 2

createfuncwrapperFunction · 0.85
createsubrwrapperFunction · 0.85

Calls 2

outmessFunction · 0.70
joinMethod · 0.45

Tested by

no test coverage detected