summaryrefslogtreecommitdiff
path: root/numpy/f2py
diff options
context:
space:
mode:
authorPearu Peterson <pearu.peterson@gmail.com>2008-04-09 11:53:02 +0000
committerPearu Peterson <pearu.peterson@gmail.com>2008-04-09 11:53:02 +0000
commite50fa8e71482160e31d99a3561a433d06217f4c7 (patch)
treeede33bd9ecdc6644ece136cbd28e2cc3b9bd084f /numpy/f2py
parentbda689eb9b31e7b8b9c852d2a4c9ea261fa4810e (diff)
downloadnumpy-e50fa8e71482160e31d99a3561a433d06217f4c7.tar.gz
Fix issue 587
Diffstat (limited to 'numpy/f2py')
-rw-r--r--numpy/f2py/auxfuncs.py28
-rw-r--r--numpy/f2py/rules.py17
2 files changed, 35 insertions, 10 deletions
diff --git a/numpy/f2py/auxfuncs.py b/numpy/f2py/auxfuncs.py
index e033e5630..fb82c28df 100644
--- a/numpy/f2py/auxfuncs.py
+++ b/numpy/f2py/auxfuncs.py
@@ -148,16 +148,36 @@ def isint1array(var):
and get_kind(var)=='1'
def isunsigned_chararray(var):
- return isarray(var) and var.get('typespec')=='integer' and get_kind(var)=='-1'
+ return isarray(var) and var.get('typespec') in ['integer', 'logical']\
+ and get_kind(var)=='-1'
def isunsigned_shortarray(var):
- return isarray(var) and var.get('typespec')=='integer' and get_kind(var)=='-2'
+ return isarray(var) and var.get('typespec') in ['integer', 'logical']\
+ and get_kind(var)=='-2'
def isunsignedarray(var):
- return isarray(var) and var.get('typespec')=='integer' and get_kind(var)=='-4'
+ return isarray(var) and var.get('typespec') in ['integer', 'logical']\
+ and get_kind(var)=='-4'
def isunsigned_long_longarray(var):
- return isarray(var) and var.get('typespec')=='integer' and get_kind(var)=='-8'
+ return isarray(var) and var.get('typespec') in ['integer', 'logical']\
+ and get_kind(var)=='-8'
+
+def issigned_chararray(var):
+ return isarray(var) and var.get('typespec') in ['integer', 'logical']\
+ and get_kind(var)=='1'
+
+def issigned_shortarray(var):
+ return isarray(var) and var.get('typespec') in ['integer', 'logical']\
+ and get_kind(var)=='2'
+
+def issigned_array(var):
+ return isarray(var) and var.get('typespec') in ['integer', 'logical']\
+ and get_kind(var)=='4'
+
+def issigned_long_longarray(var):
+ return isarray(var) and var.get('typespec') in ['integer', 'logical']\
+ and get_kind(var)=='8'
def isallocatable(var):
return 'attrspec' in var and 'allocatable' in var['attrspec']
diff --git a/numpy/f2py/rules.py b/numpy/f2py/rules.py
index f9bf5dcd9..825b13b23 100644
--- a/numpy/f2py/rules.py
+++ b/numpy/f2py/rules.py
@@ -517,12 +517,17 @@ rout_rules=[
################ Rules for arguments ##################
typedef_need_dict = {islong_long:'long_long',
- islong_double:'long_double',
- islong_complex:'complex_long_double',
- isunsigned_char:'unsigned_char',
- isunsigned_short:'unsigned_short',
- isunsigned:'unsigned',
- isunsigned_long_long:'unsigned_long_long'}
+ islong_double:'long_double',
+ islong_complex:'complex_long_double',
+ isunsigned_char:'unsigned_char',
+ isunsigned_short:'unsigned_short',
+ isunsigned:'unsigned',
+ isunsigned_long_long:'unsigned_long_long',
+ isunsigned_chararray:'unsigned_char',
+ isunsigned_shortarray:'unsigned_short',
+ isunsigned_long_longarray:'unsigned_long_long',
+ issigned_long_longarray:'long_long',
+ }
aux_rules=[
{