numpy / numpy/numpy

f2py: Quadrupel Precision - SystemError: NULL object passed to Py_BuildValue

Abierto
#9,727 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

00 - Bug component: numpy.f2py
Lenguaje dominante
Python
Estrellas
32.8k
Forks
12.8k
Merge medio
1 d 7 h
PR fusionados (30 d)
197

Descripción

Hi,

I fail to use a simple fortran routine, which makes use of quadrupel precision real values (real(kind=16) or real*16).
I am using fortran-magic with jupyter notebook to show this example:

%%fortran
subroutine f_get_pi(pi)
    real(KIND=16), intent(out) :: pi
    pi = 4._16*ATAN(1._16)
end subroutine

Compiling works. However, if I run f_get_pi() now in Python, I receive the following error:

SystemError: NULL object passed to Py_BuildValue

Apparently, if I use the subroutine in another function it get's even worse:

%%fortran
subroutine f_get_pi(pi)
    real(KIND=16), intent(out) :: pi
    pi = 4._16*ATAN(1._16)
end subroutine
subroutine f_deg2rad(deg, rad)
    real*16, intent(in) :: deg
    real*16, intent(out) :: rad
    !
    real*16 :: pi
    !
    CALL f_get_pi(pi)
    rad = pi/180._16 * deg
end subroutine

Calling f_deg2rad(181.) in python results in no output, just a crash of the python kernel.

This is truly not the expected behavior. Using double precision (real(KIND=8)) for all real above instead, the function just run fine. I am not sure if quadruple precision is supported (although I see no reason why not), but even if not, this should not be the result.

OS:

uname -a
Linux sv31 4.1.36-41-default #1 SMP PREEMPT Fri Dec 9 08:26:33 UTC 2016 (29aafea) x86_64 x86_64 x86_64 GNU/Linux

Python version(s):

Python 2.7.12 |Continuum Analytics, Inc.| (default, Jul  2 2016, 17:42:40) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2

Conda packages:

anaconda-client           1.4.0                    py27_0  
backports                 1.0                      py27_0  
basemap                   1.1.0                    py27_2    conda-forge
bitstring                 3.1.3                    py27_0    auto
cairo                     1.12.18                       6  
certifi                   2016.2.28                py27_0    conda-forge
certifi                   2017.4.17                 <pip>
cffi                      1.9.1                    py27_0  
cloog                     0.18.0                        0  
clyent                    1.2.2                    py27_0  
colorspacious             1.1.0                     <pip>
conda                     4.3.25                   py27_0  
conda-env                 2.6.0                         0  
configparser              3.5.0b2                  py27_0    conda-forge
cryptography              1.7.1                    py27_0  
curl                      7.45.0                        0  
cycler                    0.10.0                   py27_0  
decorator                 4.0.10                   py27_0  
entrypoints               0.2.2                    py27_0    conda-forge
enum34                    1.1.6                    py27_0  
expat                     2.2.1                         0    conda-forge
fontconfig                2.11.1                        6  
fortran-magic             0.7                      py27_1    conda-forge
freetype                  2.5.5                         1  
freexl                    1.0.2                         2    conda-forge
functools32               3.2.3.2                  py27_1    conda-forge
futures                   3.0.5                    py27_0  
gcc                       4.8.5                         7  
gdal                      2.2.1               np111py27_0    conda-forge
geos                      3.5.1                         1    conda-forge
get_terminal_size         1.0.0                    py27_0  
giflib                    5.1.4                         0    conda-forge
gmp                       6.1.0                         0  
h5py                      2.7.1                    py27_1    conda-forge
hdf4                      4.2.11                        4    conda-forge
hdf5                      1.8.18                        1    conda-forge
icu                       58.1                          1    conda-forge
idna                      2.2                      py27_0  
ipaddress                 1.0.18                   py27_0  
ipykernel                 4.6.1                    py27_0  
ipyparallel               5.1.0                    py27_0  
ipython                   4.2.0                    py27_0  
ipython_genutils          0.1.0                    py27_0  
ipyvolume                 0.4.0                    py27_1    conda-forge
ipywebrtc                 0.3.0                    py27_0    conda-forge
ipywidgets                7.0.1                      py_2    conda-forge
isl                       0.12.2                        0  
jinja2                    2.8                      py27_0    conda-forge
jpeg                      9b                            0    conda-forge
json-c                    0.12.1                        0    conda-forge
jsonschema                2.5.1                    py27_0    conda-forge
jupyter_client            4.3.0                    py27_0    conda-forge
jupyter_core              4.1.0                    py27_0    conda-forge
kealib                    1.4.7                         2    conda-forge
krb5                      1.14.2                        0    conda-forge
libdap4                   3.18.3                        2    conda-forge
libffi                    3.2.1                         1  
libgcc                    5.2.0                         0  
libgdal                   2.2.1                         0    conda-forge
libgfortran               3.0.0                         1  
libiconv                  1.14                          4    conda-forge
libnetcdf                 4.4.1.1                       6    conda-forge
libpng                    1.6.28                        1    conda-forge
libpq                     9.6.3                         0    conda-forge
libsodium                 1.0.10                        0    conda-forge
libspatialite             4.3.0a                       15    conda-forge
libtiff                   4.0.6                         5    conda-forge
libxml2                   2.9.2                         0  
markupsafe                0.23                     py27_0    conda-forge
matplotlib                1.5.1               np111py27_0  
mistune                   0.7.3                    py27_0    conda-forge
mkl                       11.3.3                        0  
mpc                       1.0.3                         0  
mpfr                      3.1.5                         0  
nbconvert                 4.2.0                    py27_0    conda-forge
nbformat                  4.4.0                    py27_0    conda-forge
netcdf4                   1.2.9                    py27_1    conda-forge
networkx                  1.11                     py27_0    conda-forge
notebook                  5.0.0                    py27_0  
numpy                     1.11.1                   py27_0  
openjpeg                  2.1.0                         5    conda-forge
openssl                   1.0.2g                        0  
pandas                    0.20.3                   py27_1    conda-forge
path.py                   8.2.1                    py27_0  
pathlib2                  2.1.0                    py27_0  
pexpect                   4.0.1                    py27_0  
pickleshare               0.7.2                    py27_0  
pillow                    3.2.0                    py27_1    conda-forge
pip                       8.1.1                    py27_1  
pixman                    0.32.6                        0  
postgresql                9.1.4                         1  
proj.4                    4.9.2                         0    conda-forge
proj4                     4.9.3                         4    conda-forge
ptyprocess                0.5.1                    py27_0  
pyart                     1.6.0                    py27_0    jjhelmus
pyasn1                    0.1.9                    py27_0  
pycairo                   1.10.0                   py27_0  
pycosat                   0.6.1                    py27_0  
pycparser                 2.17                     py27_0  
pycrypto                  2.6.1                    py27_0  
pygments                  1.6                      py27_0    conda-forge
pyopenssl                 16.2.0                   py27_0  
pyparsing                 2.1.4                    py27_0  
pypdf2                    1.26.0                   py27_0    BjornFJohansson
pyproj                    1.9.5.1                  py27_0    conda-forge
pyqt                      4.11.4                   py27_3  
pyshp                     1.2.12                     py_0    conda-forge
python                    2.7.12                        1  
python-dateutil           2.5.3                    py27_0  
pytmatrix                 0.3.0               np111py27_1    conda-forge
pytz                      2016.4                   py27_0  
pywavelets                0.5.2               np111py27_0    conda-forge
pyyaml                    3.11                     py27_1  
pyzmq                     14.7.0                   py27_0    conda-forge
qt                        4.8.7                         3  
readline                  6.2                           2  
requests                  2.12.4                   py27_0  
ruamel_yaml               0.11.14                  py27_0  
scikit-image              0.13.0              np111py27_0  
scipy                     0.17.1              np111py27_1  
setuptools                20.3                     py27_0  
simplegeneric             0.8.1                    py27_1  
sip                       4.16.9                   py27_0  
six                       1.10.0                   py27_0  
sqlite                    3.13.0                        0  
ssl_match_hostname        3.5.0.1                  py27_0    conda-forge
terminado                 0.6                      py27_0    conda-forge
tk                        8.5.18                        0  
tornado                   4.2.1                    py27_0    conda-forge
traitlets                 4.3.2                    py27_0  
traittypes                0.0.6                    py27_0    conda-forge
util-linux                2.21                          0  
viscm                     0.7                       <pip>
wheel                     0.29.0                   py27_0  
widgetsnbextension        3.0.2                    py27_0  
wradlib                   0.10.1                   py27_0    conda-forge
xerces-c                  3.1.4                         3    conda-forge
xz                        5.0.5                         1    conda-forge
yaml                      0.1.6                         0  
zeromq                    4.1.5                         0    conda-forge
zlib                      1.2.8                         0  

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza reproduciendo los ejemplos f_get_pi y f_deg2rad mediante fortran-magic en el entorno de Python 2.7 indicado, comparando real(KIND=16) con real(KIND=8). Determina si f2py admite esta precisión; se considera terminado cuando el error y el fallo del kernel estén corregidos, o cuando el comportamiento no compatible se informe claramente con un fallo seguro.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
fortran, jupyter-notebook, python
Área
tooling
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
30/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.