Your IP : 216.73.216.213


Current Path : /opt/alt/python37/lib64/python3.7/site-packages/numpy/f2py/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib64/python3.7/site-packages/numpy/f2py/__pycache__/func2subr.cpython-37.pyc

B

��Fd�#�@s�dZddlmZmZmZddd�ZdZddlZdd	lm	Z	m
Z
mZmZm
Z
mZmZmZmZmZmZmZmZdd
d�Zddd
�Zddd�Zdd�ZdS)aW

Rules for building C/API module with f2py2e.

Copyright 1999,2000 Pearu Peterson all rights reserved,
Pearu Peterson <pearu@ioc.ee>
Permission to use, modify, and distribute this software is given under the
terms of the NumPy License.

NO WARRANTY IS EXPRESSED OR IMPLIED.  USE AT YOUR OWN RISK.
$Date: 2004/11/26 11:13:06 $
Pearu Peterson

�)�division�absolute_import�print_functionz$Revision: 1.16 $�
���z
See `f2py -v`N�)
�getfortranname�
isexternal�
isfunction�isfunction_wrap�isintent_in�isintent_out�islogicalfunction�ismoduleroutine�isscalar�issubroutine�issubroutine_wrap�outmess�showcCs�|dkr|}||kr,t|�td|�dSd||krTt||�td|�dS||d}|dkr�d||kr�d|||df}i}d}d||kr�||d}d	}nd
||kr�||d
}d}d|k�r6|�r|dd
kr�d|}nd|||df}n0|ddk�r$d||df}nd||df}nZd|k�rvd||df}d	|k�rld||d	f}nd|}nd	|k�r�d||d	f}d||f}d||k�r�d|d�||d�f}|S)Nz1var2fixfortran: No definition for argument "%s".
��typespecz/var2fixfortran: No typespec for argument "%s".
�type�typenamez%s(%s)Zkindselector�kind�charselector�len�*)r�:z(*)z	%s(len=*)z	%s(%s=%s))rrz%s*(%s)z%s*%sz	%s(len=%sz%s,kind=%s)z%s)z%s(kind=%s)z%s %s�	dimension�,)rr�join)�vars�a�fa�f90modeZvardef�selectorZlk�r&�G/opt/alt/python37/lib64/python3.7/site-packages/numpy/f2py/func2subr.py�var2fixfortransP





r(cs�t|�st�g�|d}x�|dD]~}|d|}xlt|�dg��D]X\}}|dkrDd||f}tddgd�}d	||f|d
<��|�|||<||d|<qDWq"W|d���t��}	dg}
|
fdd
�}|d}t|�}
t	|�}d|}||k�r||||<|g|ddd�}n|g|d}t
||||�}|dd�dk�r�|�r`d|dd�}nd|dd�}||d}|�dd�dk�r�d|d<d�|�}|�r�|d|d||f�|�s|d|d|
f�n.|d||f�|	�s|d|
�|d|
}|	�r>x0|d�d �D]}|�
��d!��r||��qW|dd�}g}x2|D]*}t||��rT|d|�|�|��qTWxF|D]>}||k�r��q�t||��r�|t
|||d"��|�|��q�WxF|D]>}||k�r�q�t||��r�|t
|||d"��|�|��q�Wx.|D]&}||k�r*�q|t
|||d"���qW||�|	�rx|�rXn |d#�||d�
��|d$�d��fd%d&�|D��}|�s�t|��r�|d'||
|f�n|d(||
|f�|�r�|d)|d|f�n|d*�|
d+S),Nr!�argsrrzf2py_%s_d%s�integer�hide)r�intentz
shape(%s, %s)�=rcSsd|d|f|d<dS)Nz%s
      %srr&)�line�retr&r&r'�addcszcreatefuncwrapper.<locals>.add�namez
%sf2pywrapr�
z
character*(*)zcharacter(len=10)zcharacter*10rrz(*)�10z, zsubroutine f2pywrap_%s_%s (%s)�
modulenamezuse %s, only : %szsubroutine f2pywrap%s (%s)zexternal %s�saved_interface�
zuse )r$�	interfacez
end interfacecsg|]}|�kr|�qSr&r&)�.0r")�
extra_argsr&r'�
<listcomp>�sz%createfuncwrapper.<locals>.<listcomp>z%s = .not.(.not.%s(%s))z%s = %s(%s)zend subroutine f2pywrap_%s_%s�endr)r
�AssertionError�	enumerate�get�dict�append�extend�boolrrr(r �split�lstrip�
startswithr	rrr)�rout�	signaturer!r"�v�i�d�dn�dv�need_interfacer/r0r1�fortrannamer$Znewnamer)�lZ
charselect�sargsr.�dumped_argsr&)r9r'�createfuncwrapperOs�










rRcs�t|�st�g�|d}x�|dD]~}|d|}xlt|�dg��D]X\}}|dkrDd||f}tddgd�}d	||f|d
<��|�|||<||d|<qDWq"W|d���t��}	dg}
|
fdd
�}|d}t|�}
t	|�}|d}d�
|�}|�r.|d|d||f�|�sP|d|d|
f�n"|d||f�|	�sP|d|
�|	�r�x0|d�d�D]}|���
d��rf||��qfWg}x2|D]*}t||��r�|d|�|�|��q�WxF|D]>}||k�rؐq�t||��r�|t|||d��|�|��q�Wx.|D]&}||k�r �q|t|||d���qW|	�rf|�rFn |d�||d���|d�d�
�fdd�|D��}|�s�|d|
|f�|�r�|d|d|f�n|d�|
d S)!Nr!r)rrzf2py_%s_d%sr*r+)rr,z
shape(%s, %s)r-rcSsd|d|f|d<dS)Nz%s
      %srr&)r.r/r&r&r'r0�szcreatesubrwrapper.<locals>.addr1z, zsubroutine f2pywrap_%s_%s (%s)r4zuse %s, only : %szsubroutine f2pywrap%s (%s)zexternal %sr5r6zuse )r$r7z
end interfacecsg|]}|�kr|�qSr&r&)r8r")r9r&r'r:�sz%createsubrwrapper.<locals>.<listcomp>zcall %s(%s)zend subroutine f2pywrap_%s_%sr;r)rr<r=r>r?r@rArBrrr rCrDrEr	rr()rFrGr!r"rHrIrJrKrLrMr/r0r1rNr$r)rPr.rQr&)r9r'�createsubrwrapper�s|






rScCs:t|�r�t|�}|d}td||f�t�|�}|}|}d|kr^|d}|d||d|<|d|}t|�s�d|kr�g|d<|d�d�d}x |dD]}|�d�r�d	}Pq�W|r�|d�d
|�|g|d|ddd�<|t|�fSt|��r2t|�}|d}td||f�t�|�}|t	|�fS|d
fS)Nr1z6		Creating wrapper for Fortran function "%s"("%s")...
�resultr!r,�outrzout=rzout=%sr)z8		Creating wrapper for Fortran subroutine "%s"("%s")...
r)
rrr�copyr
r@rErRrrS)rFrNr1�fname�rnameZfvar�flagrIr&r&r'�assubr	sB



rZ)NN)r)r)�__doc__�
__future__rrr�__version__Zf2py_versionrVZauxfuncsrr	r
rrr
rrrrrrrr(rRrSrZr&r&r&r'�<module>s<
1
j
P