Pythonによって呼び出されるサブルーチンの次の開始があります。
以下を使用して Python から呼び出されます。libomp.cic(pos,mpart,boxsize,dim,npart)
subroutine cic(pos,mpart,boxsize,dim,npart,mesh)
use omp_lib
implicit none
real*8 mpart
!f2py intent(in) :: mpart
real*8 boxsize
!f2py intent(in) :: boxsize
integer dim
!f2py intent(in) :: dim
integer*8 npart
!f2py intent(in) :: npart
real*8, dimension(0:dim-1,0:dim-1,0:dim-1) :: mesh
!f2py intent(out) :: mesh
real*8, dimension(npart,3) :: pos
!f2py intent(in) :: pos
Python スクリプト実行時のエラー:
error: (shape(pos,0)==npart) failed for 1st keyword npart: cic:npart=47099622
WARNING: Failure executing file: <test.py>
何らかの理由でnpart
、整数として設定すると機能npart
しますが、Pythonから受信してその場で配列を作成することはできませんpos
。mesh
を使用しても機能しdim
ませんがpos
、なぜですか? それらが呼び出される順序と関係がありますか?