Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/site-packages/numpy/f2py/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/site-packages/numpy/f2py/__pycache__/func2subr.cpython-35.pyc



(��^�#�@s�dZddlmZmZmZddd�ZdZddlZddlm	Z	m
Z
mZmZm
Z
mZmZmZmZmZmZmZmZddd	d
�Zddd�Zdd
d�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||krjt||�td|�dS||d}|dkr�d||kr�d|||df}i}d}d||kr�||d}d	}n$d
||kr||d
}d}d|kr�|rL|ddkr2d|}q�d|||df}q�|ddkrsd||df}q�d||df}npd|kr�d||df}d	|kr�d||d	f}q�d|}n d	|kr�d||d	f}d||f}d||kr;d|dj||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�*�:�(*)z	%s(len=*)z	%s(%s=%s)z%s*(%s)z%s*%sz	%s(len=%sz%s,kind=%s)z%s)z%s(kind=%s)z%s %s�	dimension�,)rrr)rr)rr�join)�vars�a�fa�f90modeZvardef�selectorZlk�r&�G/opt/alt/python35/lib64/python3.5/site-packages/numpy/f2py/func2subr.py�var2fixfortransP
	

!r(cs�t|�st�g�|d}x�|dD]�}|d|}x�t|jdg��D]y\}}|dkrZd||f}tdddd	g�}d
||f|d<�j|�|||<||d|<qZWq-W|dj��t��}	dg}
|
d
d�}|d}t|�}
t	|�}d|}||krt||||<|g|ddd�}n|g|d}t
||||�}|dd�dkr|r�d|dd�}nd|dd�}||d}|jdd�dkrd|d<dj|�}|rb|d|d||f�|s�|d|d|
f�n6|d||f�|	s�|d|
�|d|
}|	r�x:|d jd!�D]%}|j
�jd"�r�||�q�W|dd�}g}x9|D]1}t||�r�|d|�|j|�q�WxS|D]K}||krIq4t||�r4|t
||d#|��|j|�q4WxS|D]K}||kr�q�t||�r�|t
||d#|��|j|�q�Wx6|D].}||kr�q�|t
||d#|��q�W||�|	rS|r+n(|d$�||d j
��|d%�dj�fd&d'�|D��}|s�t|�r�|d(||
|f�n|d)||
|f�|r�|d*|d|f�n
|d+�|
d,S)-Nr!�argsrrzf2py_%s_d%sr�integer�intent�hidez
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 interfacecs"g|]}|�kr|�qSr&r&)�.0r")�
extra_argsr&r'�
<listcomp>�s	z%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�
startswithrrrr
)�rout�	signaturer!r"�v�i�d�dn�dv�need_interfacer/r0r1�fortrannamer$Znewnamer)�lZ
charselect�sargsr.�dumped_argsr&)r9r'�createfuncwrapperOs�
%

	









"
rRcsot|�st�g�|d}x�|dD]�}|d|}x�t|jdg��D]y\}}|dkrZd||f}tdddd	g�}d
||f|d<�j|�|||<||d|<qZWq-W|dj��t��}	dg}
|
d
d�}|d}t|�}
t	|�}|d}dj
|�}|r�|d|d||f�|s�|d|d|
f�n(|d||f�|	s�|d|
�|	r�x:|djd�D]%}|j�j
d�r�||�q�Wg}x9|D]1}t||�r|d|�|j|�qWxS|D]K}||krVqAt||�rA|t||d|��|j|�qAWx6|D].}||kr�q�|t||d|��q�W|	r|r�n(|d�||dj��|d�dj
�fdd�|D��}|s<|d|
|f�|r]|d|d|f�n
|d �|
d!S)"Nr!r)rrzf2py_%s_d%srr*r+r,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 interfacecs"g|]}|�kr|�qSr&r&)r8r")r9r&r'r:�s	z%createsubrwrapper.<locals>.<listcomp>zcall %s(%s)zend subroutine f2pywrap_%s_%sr;r)rr<r=r>r?r@rArBrrr rCrDrErrr()rFrGr!r"rHrIrJrKrLrMr/r0r1rNr$r)rPr.rQr&)r9r'�createsubrwrapper�s|
%

	






"
rScCs�t|�r9t|�}|d}td||f�tj|�}|}|}d|kr}|d}|d||d|<|d|}t|�s
d|kr�g|d<|djd�d}x(|dD]}|jd�r�d	}Pq�W|r
|djd
|�|g|d|ddd�<|t|�fSt|�r�t|�}|d}td||f�tj|�}|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)
r
rr�copyrr@rErRrrS)rFrNr1�fname�rnameZfvar�flagrIr&r&r'�assubr	sB



rZ���)�__doc__�
__future__rrr�__version__Zf2py_versionrVZauxfuncsrrr	r
rrr
rrrrrrr(rRrSrZr&r&r&r'�<module>sX1jP