HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/.local/lib/python3.10/site-packages/numpy/f2py/__pycache__/func2subr.cpython-310.pyc
o

���g:(�@s�dZddlZddlmZmZmZmZmZmZm	Z	m
Z
mZmZm
Z
mZmZddlmZddd�Zdd	�Zdd
d�Zddd
�Zdd�ZdS)a;

Rules for building C/API module with f2py2e.

Copyright 1999 -- 2011 Pearu Peterson all rights reserved.
Copyright 2011 -- present NumPy Developers.
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.
�N�)
�getfortranname�
isexternal�
isfunction�isfunction_wrap�isintent_in�isintent_out�islogicalfunction�ismoduleroutine�isscalar�issubroutine�issubroutine_wrap�outmess�show)�isoc_kindmapcCs�|dur|}||vrt|�td|�dSd||vr*t||�td|�dS||d}|dkrDd||vrDd|||df}i}d}d||vrW||d}d	}nd
||vre||d
}d}d|vr�|r�|dd
vrvd|}nLd|||df}nB|ddvr�d||df}n3d||df}n*d|vr�d||df}d	|vr�d||d	f}nd|}nd	|vr�d||d	f}d||f}d||vr�d|d�||d�f}|S)Nz1var2fixfortran: No definition for argument "%s".
��typespecz/var2fixfortran: No typespec for argument "%s".
�type�typenamez%s(%s)�kindselector�kind�charselector�len�*)r�:�(*)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�f90mode�vardef�selector�lk�r&�G/home/arjun/.local/lib/python3.10/site-packages/numpy/f2py/func2subr.py�var2fixfortransP

r(cCs>d}|d��D]\}}|�di��d�}|tvrdSq|S)NFrrrT)�items�getr)�rout�useisoc�key�value�
kind_valuer&r&r'�useiso_c_bindingFs�r0csXt|�sJ�g�|d}|dD]=}|d|}t|�dg��D],\}}|dkrLd||f}tddgd�}d	||f|d
<��|�|||<||d|<q q|d���t��}	dg}
|
fdd
�}|d�t|�}t|�}
d�}||vr�|�||<|g|ddd�}n|g|d}t	|�d|
�}|dd�dkr�|
r�d|dd�}nd|dd�}|�d}|�dd�dkr�d|d<|�
d|�}d}t|�}d�|�}|
�r
|�
��d�d�}�fdd�|D�}||d<|d|d�|f�|�s|d|d|f�|�r|d �n"|d!�|f�|�r|d �|	�s/|d"|�|�
dd�d#|}|	�rN|d$�
d%�D]}|���d&��rLd'|v�rL||��q9|dd�}g}|D]}t||��rl|d"|�|�|��qX|D]}||v�ry�qpt||��r�|t	|||
d(��|�|��qp|D]}||v�r��q�t||��r�|t	|||
d(��|�|��q�|D]}||v�r��q�|t	|||
d(���q�||�|du�r�||�|	�r�|
�r�n|d)�||d$���|d*�d��fd+d�|D��}|�st|��r
|d,|||f�n	|d-|||f�|
�r$|d.|d�f�|
d0S|d/�|
d0S)1Nr�argsrr�f2py_%s_d%s�integer�hide�r�intent�
shape(%s, %s)�=rcS�d|d|f|d<dS�Nz%s
      %srr&��line�retr&r&r'�addb�zcreatefuncwrapper.<locals>.add�namez
%sf2pywraprz
@@@NAME@@@�
z
character*(*)zcharacter(len=10)zcharacter*10rrr�10�, csg|]}|�kr|�qSr&r&)�.0�arg)r@r&r'�
<listcomp>��z%createfuncwrapper.<locals>.<listcomp>�subroutine f2pywrap_%s_%s (%s)�
modulename�use %s, only : %s�use iso_c_binding�subroutine f2pywrap%s (%s)�external %s� �saved_interface�
�use �__user__�r"�	interface�
end interfacec�g|]}|�vr|�qSr&r&�rDr ��
extra_argsr&r'rF�rGz%s = .not.(.not.%s(%s))z%s = %s(%s)�end subroutine f2pywrap_%s_%s�endr)r�	enumerater*�dict�append�extend�boolrr
r(�replacer0r�split�lstrip�
startswithrrrr	)r+�	signaturerr �v�i�d�dn�dv�need_interfacer=r>�fortrannamer"�newnamer1�l_tmpl�
charselect�l1�rlr,�sargsr<�dumped_argsr&)rYr@r'�createfuncwrapperNs�
��
���
�

�

�


�rtcs�t|�sJ�g�|d}|dD]=}|d|}t|�dg��D],\}}|dkrLd||f}tddgd�}d	||f|d
<��|�|||<||d|<q q|d���t��}	dg}
|
fdd
�}|d}t|�}
t|�}|d}t	|�}d�
|�}|r�|d|d||f�|r�|d�|s�|d|d|
f�n|d||f�|r�|d�|	s�|d|
�|	r�|d�d�D]}|���
d�r�d|vr�||�q�g}|D]}t||�r�|d|�|�|�q�|D]}||vr�q�t||��r|t|||d��|�|�q�|D]}||v�r�q|t|||d���q|	�rF|�r n&|d�|d�d�D]}|���
d��r<d|v�r<�q+||��q+|d�d�
�fdd�|D��}|�s]|d|
|f�|�rn|d |d|f�|
d"S|d!�|
d"S)#Nrr1rrr2r3r4r5r7r8rcSr9r:r&r;r&r&r'r>�r?zcreatesubrwrapper.<locals>.addr@rCrHrIrKrJrLrMrOrPrQrRrSrTrUcrVr&r&rWrXr&r'rFrGz%createsubrwrapper.<locals>.<listcomp>zcall %s(%s)rZr[r)rr\r*r]r^r_r`rr
r0rrbrcrdrrr()r+rerr rfrgrhrirjrkr=r>r@rlr"r1r,rrr<rsr&rXr'�createsubrwrapper�s�
��
���
�
�
�rucCs6t|�rxt|�}|d}td||f�t�|�}|}|}d|vr/|d}|d||d|<|d|}t|�sed|vrAg|d<|d�d�d}|dD]}|�d�rYd	}nqN|re|d�d
|�|g|d|ddd�<|t|�fSt|�r�t|�}|d}td||f�t�|�}|t	|�fS|d
fS)Nr@z6		Creating wrapper for Fortran function "%s"("%s")...
�resultrr6�outrzout=rzout=%sr1z8		Creating wrapper for Fortran subroutine "%s"("%s")...
r)
rrr�copyrr^rdrtr
ru)r+rlr@�fname�rname�fvar�flagrgr&r&r'�assubr"sH�

��
r})NN)r)�__doc__rx�auxfuncsrrrrrrr	r
rrr
rr�	_isocbindrr(r0rtrur}r&r&r&r'�<module>s<
0

|X