
    d.&                     l    d Z ddlZddlmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZ d	dZd
dZd
dZd ZdS )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

    N   )getfortranname
isexternal
isfunctionisfunction_wrapisintent_inisintent_outislogicalfunctionismoduleroutineisscalarissubroutineissubroutine_wrapoutmessshowc                    ||}|| vr#t          |            t          d|z             dS d| |         vr)t          | |                    t          d|z             dS | |         d         }|dk    rd| |         v r|d| |         d         d}i }d}d	| |         v r| |         d	         }d
}nd| |         v r| |         d         }d}d|v rK|r"|d         dv rd|z  }nu|d|d|d         d}nc|d         dv r|d|d         d}nJ|d|d         }n<d|v r&|d|d         }d
|v r|d|d
         d}nd|z  }nd
|v r|d|d
         d}|d|}d| |         v r'|dd                    | |         d                   d}|S )Nz1var2fixfortran: No definition for argument "%s".
 typespecz/var2fixfortran: No typespec for argument "%s".
typetypename()kindselectorkindcharselectorlen*)r   :(*)z	%s(len=*)=)r   r   z*(z(len=z,kind=z%s)z(kind= 	dimension,)r   r   join)varsafaf90modevardefselectorlks          P/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/numpy/f2py/func2subr.pyvar2fixfortranr,      sN   	z}}T


DqHIIIra  T!WBQFGGGr!WZ FJ$q'11#VVT!WZ%8%8%89H	Ba  7>*	47	"	"7>*
h 		;} 111$/(.HSMMMB}
**&,ffhsmmm<$*FFHSMM:H$*FFHUOO<F!!*0&&(62B2B2BC&)x&,ffhv.>.>.>?F#Fd1g#VVSXXd1gk.B%C%C%C%CDM    c           	      l	   t          |           sJ g | d         }| d         D ]}| d         |         }t          |                    dg                     D ]V\  }}|dk    rKd|d|}t          ddg	          }d
|d|d|d<                       |           |||<   ||d         |<   W| d                                        t                    }	dg}
|
fd}| d         t          |           }t          |           }dz  }||vr |         ||<   |g| d         dd          z   }n|g| d         z   }t          |d|          }|d d         dk    rJ|rd|dd          z   }nd|dd          z   }|         d         }|                    dd          dk    rd|d<   |
                    d|          }d }d                    |          }|ra|
                     dd          }fd|D             }|| d<    |d| d         dd |d           |s |d!| d         d"|           n> |d#d |d           |	s* |d$|z             |
                    dd          d%z   |z   }|	rT| d&                             d'          D ]8}|                                                    d!          rd(|vr ||           9|dd          }g }|D ]:}t          ||                   r# |d$|z             |                    |           ;|D ]L}||v rt!          ||                   r0 |t          |||)                     |                    |           M|D ]L}||v rt#          ||                   r0 |t          |||)                     |                    |           M|D ]"}||v r |t          |||)                     # ||           | ||           |	r<|rn9 |d*            || d&                                                     |d+           d                    fd,|D                       }|s8t%          |           r ||d-|d.|d/           n ||d0|d.|d           |r |d1| d         d           n |d2           |
d3         S )4Nr$   argsr!   r   f2py__dintegerhider   intentshape(, r   r   r   c                 &    |d         d| |d<   d S Nr   z
       linerets     r+   addzcreatefuncwrapper.<locals>.add^       #&q666440Ar-   namez
%sf2pywrapr   z
@@@NAME@@@   zcharacter*(*)zcharacter(len=10)zcharacter*10r   r   r   10c                      g | ]
}|k    |S r:   r:   ).0argr@   s     r+   
<listcomp>z%createfuncwrapper.<locals>.<listcomp>~   s    333sd{{{{{r-   subroutine f2pywrap_
modulename_ (use 	, only : subroutine f2pywrapexternal %sr    saved_interface
__user__r'   	interfaceend interfacec                     g | ]}|v|	S r:   r:   rD   r%   
extra_argss     r+   rF   z%createfuncwrapper.<locals>.<listcomp>   #    >>>Q!:*=*=q*=*=*=r-   z = .not.(.not.r   z))z = end subroutine f2pywrap_endr   )r   	enumerategetdictappendextendboolr   r   r,   replacer#   splitlstrip
startswithr   r   r   r
   )rout	signaturer$   r%   viddndvneed_interfacer=   r>   fortrannamer'   newnamer/   l_tmpl
charselectl1rlsargsr<   dumped_argsrW   r@   s                          @@r+   createfuncwrapperru   J   sS   dJ<D&\ 	' 	'LOaeeK4455 	' 	'DAqCxxx&'aa+9fX>>>-.QQ23!!"%%%R$&+q!	' 	L
###*%%N$C 1 1 1 1<D &&Kd##Gd#GdT
Wy4<++y4<'D$g>>Fcrc{o%% 	2(6"##;6FF#fRSSk1F$Z/
>>#r""e++"JsO	g	.	.B	BIIdOOE F kkk2..3333t333V,uuu. 	/ 	/ 	/ 	ICCtL'9'9'9;;GHHHDDD%%%8999 	FC-...b11C7+EB *+11$77 	 	D{{}}''// Jd4J4JD			8DK " "d1g 	"C#$$$q!!! " "DG 	"CtQ888999q!!! " "tAw 	"CtQ888999q!!! 6 6N4G4445555CGGG	~B ! 	!CC&'..00111C   II>>>>$>>>??E ?T"" 	?CWWWkkk555IJJJJC+++uuu=>>> tL/A/A/A44HIIIIE


q6Mr-   c           	         t          |           sJ g | d         }| d         D ]}| d         |         }t          |                    dg                     D ]V\  }}|dk    rKd|d|}t          ddg	          }d
|d|d|d<                       |           |||<   ||d         |<   W| d                                        t                    }	dg}
|
fd}| d         }t          |           }t          |           }| d         }d	                    |          }|r5 |d| d         d|d|d           |s |d| d         d|           n" |d|d|d           |	s |d|z             |	rT| d         
                    d          D ]8}|                                                    d          rd|vr ||           9g }|D ]:}t          ||                   r# |d|z             |                    |           ;|D ]L}||v rt          ||                   r0 |t          |||                     |                    |           M|D ]"}||v r |t          |||                     #|	rn|rnk |d           | d         
                    d          D ]9}|                                                    d          rd|v r. ||           : |d           d	                    fd|D                       }|s |d |d!|d           |r |d"| d         d|           n |d#           |
d$         S )%Nr$   r/   r!   r   r0   r1   r2   r3   r4   r6   r7   r   r   r   c                 &    |d         d| |d<   d S r9   r:   r;   s     r+   r>   zcreatesubrwrapper.<locals>.add   r?   r-   r@   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   c                     g | ]}|v|	S r:   r:   rV   s     r+   rF   z%createsubrwrapper.<locals>.<listcomp>	  rX   r-   zcall r   rY   rZ   r   )r   r[   r\   r]   r^   r_   r`   r   r   r#   rb   rc   rd   r   r   r,   )re   rf   r$   r%   rg   rh   ri   rj   rk   rl   r=   r>   r@   rm   r'   r/   rs   r<   rt   rW   s                      @r+   createsubrwrapperry      s   J<D&\ 	' 	'LOaeeK4455 	' 	'DAqCxxx&'aa+9fX>>>-.QQ23!!"%%%R$&+q!	' 	L
###*%%N$C 1 1 1 1<D &&Kd##G<DIIdOOE /,uuu. 	/ 	/ 	/ 	ICCtL'9'9'9;;GHHHDDD%%%8999 	/C-... *+11$77 	 	D{{}}''// Jd4J4JD			K " "d1g 	"C#$$$q!!! " "DG 	"CtQ888999q!!! 6 6N4G4445555 
! 		!C./55d;;  ;;==++F33 
d8J8JD				C   II>>>>$>>>??E 2[[[%%%0111 tL/A/A/A44HIIIIE


q6Mr-   c                    t          |           rt          |           }| d         }t          d|d|d           t          j        |           } |}|}d| v r| d         }| d         |         | d         |<   | d         |         }t	          |          sjd|vrg |d<   |d                             d           d	}|d         D ]}|                    d
          rd} n|r|d                             d|z             |g| d         z   | d         d d <   | t          |           fS t          |           rRt          |           }| d         }t          d|d|d           t          j        |           } | t          |           fS | dfS )Nr@   z)		Creating wrapper for Fortran function "z"("z")...
resultr$   r5   outr   zout=r   zout=%sr/   z+		Creating wrapper for Fortran subroutine "r   )
r   r   r   copyr	   r^   rd   ru   r   ry   )re   rm   r@   fnamernamefvarflagrh   s           r+   assubrr     s   t -$T**F|DD+++ 	  	  	 ytNE"&v,u"5DLF|E"D!! 
	:t##!#XN!!%(((D(^  <<'' DE  :X%%h%&8999 'DL0VQQQ&t,,,, -$T**F|44& 	' 	' 	'y&t,,,,8Or-   )NN)r   )__doc__r}   auxfuncsr   r   r   r   r   r	   r
   r   r   r   r   r   r   r,   ru   ry   r   r:   r-   r+   <module>r      s                                 . . . .bt t t tnP P P Pf! ! ! ! !r-   