簡體   English   中英

f2py觸發malloc錯誤

[英]f2py triggers malloc error

我目前包裝Fortran代碼與f2py 但是,即使是一些簡單的測試也會觸發malloc錯誤。 例如:

! file name is simple.F90
SUBROUTINE test(aout, ain, rank)
    INTEGER :: rank
    COMPLEX(kind=16) :: ain(rank, rank)
    COMPLEX(kind=16), INTENT(out) :: aout(rank, rank)
    print *, ain
    aout = ain
END SUBROUTINE test

我用f2py -m simple -c simple.F90封裝了這段代碼並使用了它:

import simple
import numpy as np
ain = np.array([[1,0],[0,1]],dtype="complex")
simple.test(ain,2)

輸出相當混亂:

(2.98323129689261721470924741607413318E-4947,0.00000000000000000000000000000000000) (0.00000000000000000000000000000000000,2.98323129689261721470924741607413318E-4947) (5.43913343041483495234482095052061699E-4937,1.19445898260724927749750105155089048E-4946) (2.03058027046167518900674768173335535E-4945,5.42471021397611822645684765587671432E-4937)
Python(9481,0x7fff7ad40000) malloc: \*** error for object 0x7fabcaa1adc8: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6

Fortran子例程未獲取正確的數組,並且內存有問題。

更多信息:

  • 作業系統:OS X
  • 的Python:3.5.1

由於所有的評論中指出的, kind是在這里指責什么。 之后我用下面的約定解決了所有的問題。

INTEGER, PARAMETER :: dp = kind(1.0d0)
REAL(kind=dp) :: a_real_number
COMPLEX(kind=dp) :: a_complex_number

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM