
    ~Od                     &   d Z ddlmZ ej        ZddlZddlZddlZddlm	Z	 ddlm
Z
 ddlT g dZd	Zg Zi ai Zi d
dddddddddddddddddddddddddddddddddZi d
ddddddddd dd!dd"dd#dd$dd%dd&dd&dd'dd(dd(dddd)Zer:i d
ddddd*dd!dd dd!dd"dd#dd$dd%dd&d+d,dd-d.d/dd'dd(dd(ddd0Zi d
d1dd2dd1dd3dd3dd4dd5dd6dd7dd8dd9dd:dd;dd<dd<dd=dd=Zer:i d
d1dd2dd>dd4dd?dd4dd@ddAdd7ddBdd9d+d:ddCd.dDdd;dd<ddEdFd=d0Zd1d2d4d4d@d7d9d:dGdGdGdHd=dIZddd
dddJddddddddd.dK	ddddddLddddddJddddddMdNdidNd
idNdidOa ej        t*                    Zg ZdP Zi d
dQddQddRddSddSddTddUddVddSddWddXd+dYddXddZddZdd[dd\dd]iZd^ Zd_ Zd` ZdldaZdb Zdc Z dd Z!de Z"df Z#dg Z$dh Z%dmdiZ&dj Z'dk Z(dS )na)  

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: 2005/05/06 10:57:33 $
Pearu Peterson

   )__version__    N)markoutercomma)cb_rules)*)getctypegetstrlength
getarrdimsgetpydocsigngetarrdocsigngetinitsign2maproutsign2mapmodsign2mapcb_sign2mapcb_routsign2mapcommon_sign2mapTdoublefloatlong_doublecharintsigned_charunsigned_charshortunsigned_shortlong	long_longunsignedcomplex_floatcomplexcomplex_doublecomplex_long_doublestring	characterbytes
NPY_DOUBLE	NPY_FLOAT
NPY_STRING	NPY_UBYTENPY_BYTE	NPY_SHORT
NPY_USHORTNPY_INTNPY_UINTNPY_LONG
NPY_CFLOATNPY_CDOUBLENPY_CHARNPY_LONGDOUBLEunsigned_long	NPY_ULONGNPY_LONGLONGunsigned_long_longNPY_ULONGLONG)r$   r%   df1bswiulLFDcgBhHIqQGSNy)r   r   r   r   r   r   r   r   r    r"   r#   r$   r%   ) 481216)	rR   r<   2rS   rT   -1z-2z-4z-8)rR   rT   rV   2432)rR   r<   rW   rS   rT   rR   )realintegerr!   complexkindlogicalzdouble complexzdouble precisionbytec                    t          j        t                    a| #d} t          j                            |           sd S 	 t          d                    |                      t          | d          5 }t          |                                                                i i           }d d d            n# 1 swxY w Y   |                                D ]V\  }}|                                D ]}||         ||                                <    ||         ||                                <   W|                                D ]U}|t          vr
i t          |<   ||                                         D ]#}||         |         t          v r|t          |         v r9t          d|d|dt          |         |         d||         |         d	           ||         |         t          |         |<   t          d	|d
|d||         |         d           t                               ||         |                    t%          d|d|d||         |         d||         |         dt'          t                                                    d           %Wt          d           d S # t(          $ r}t%          d|z             Y d }~d S d }~ww xY w)Nz.f2py_f2cmapzReading f2cmap from {!r} ...
rz	Warning: redefinition of {'z':{'z':'z'->'z'}}
z
	Mapping "(kind=z)" to "z"
z	Ignoring map {'z'}}: 'z' must be in 
z1Successfully applied user defined f2cmap changes
z;Failed to apply user defined f2cmap changes: %s. Skipping.
)copydeepcopyf2cmap_default
f2cmap_allospathisfileoutmessformatopenevalreadloweritemskeysc2py_mapf2cmap_mappedappenderrmesslist	Exception)f2cmap_filer;   r:   kd1k1msgs          4lib/python3.11/site-packages/numpy/f2py/capi_maps.pyload_f2cmap_filer      sQ    ~..J$w~~k** 	FT077DDEEE+s## 	/qQVVXX^^%%r2..A	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/WWYY 	  	 EArggii ( (!#B288::Q4AaggiiLL 	K 	KA
"" "
1diikk K KQ48x''Z]**WXWXWXZ\Z\Z\^hij^kln^o^o^oqrstquvxqyqyqyz| | |()!RJqM"%GQQAaDHHH. / / /!((1b2222G222qtBxxx1b43H3H3H3HJ K K K KK 	DEEEEE T T TJcR	T 	T 	T 	T 	T 	T 	T 	T 	TTs=    2J& 26B4(J& 4B88J& ;B8<G(J& &
K0KKz%gz%Lgz%dz%hhuz%hdz%huz%uz%ldz%luz(%g,%g)z	(%Lg,%Lg)z\"%s\"z'%c'c                    d}t          |           rNd| v r	| d         }n| d         }|| d         v rt          | d         |                   S t          d|z             nt          |           r|S t	          |           rdS t          |           rdS d| v r| d                                         t          v rr| d                                         }t          |         }|d	         }d
| v r=d| d
         v rS	 || d
         d                  }n># t          $ r/ t          d| d         ddd| d
         d         d           Y nw xY wd| d
         v r|dz   t          v rt          |dz            }	 || d
         d                  }n# t          $ r |t          v rt          |         }	 |t          | d
         d                            }n[# t          $ rN t          d|d| d
         d         d|d|d| d
         d         dt          j                    d           Y nw xY wY n&w xY wn!t          |           st          d| z             |S )z
    Determines C type
    voidresultnamevars,getctype: function %s has no return value?!
r%   r$   typespecrR   kindselectorr   zgetctype: " z" not supported.
kindrb   z)" is mapped to C "z" (to override define dict(z = dict(z="<C typespec>")) in z/.f2py_f2cmap file).
z2getctype: No C-type found in "%s", assuming void.
)
isfunctionr   rv   issubroutineischaracter_or_characterarrayisstring_or_stringarrayrp   rg   KeyErrorstrrh   getcwd
isexternal)varctypear   f2cmaps        r~   r   r      s     E# *Qs??HAAFAFCKN+++CaGHHHH	c		 !Q	&s	+	+ Q{	 	%	% Qx	s		s:4466*DDz?((**H%r
S  c.)))N"3~#6s#;<EE N N NG ___ccc3~3Fs3K3K3KM N N N N NN 3~...f$
22'6(9:F
X"3~#6v#>?EE X X X:--!+H!5X &s3~+>v+F'G'G H# X X X#+88S-@-H-H-H%%%#+88S-@-H-H-H")++++!W X X X X XXX # 	QICOPPPLsI   9D 5EE2F  H((!G
	H(
AH"H(!H""H('H(c                 2    t          j        dd|           } | S )a^  Rewrite Fortran expression as f2py supported C expression.

    Due to the lack of a proper expression parser in f2py, this
    function uses a heuristic approach that assumes that Fortran
    arithmetic expressions are valid C arithmetic expressions when
    mapping Fortran function calls to the corresponding C function/CPP
    macros calls.

    z\blen\b	f2py_slen)resub)exprs    r~   f2cexprr   +  s     6*k400DK    c                 4   t          |           rLd| v r	| d         }n| d         }|| d         v rt          | d         |                   S t          d|z             t          |           st          dt	          |           z             d}d| v r.| d         }d|v r	|d         }nd	|v rt          |d	                   }t          j        d
|          st          j        d|          r0t          |           rt          dt	          |           z             d}|S )Nr   r   r   z0getstrlength: function %s has no return value?!
z;getstrlength: expected a signature of a string but got: %s
r<   charselectorr   lenz\(\s*(\*|:)\s*\)z(\*|:)zMgetstrlength:intent(hide): expected a string with defined length but got: %s
rX   )	isstringfunctionr	   rv   isstringreprr   r   matchisintent_hide)r   r   r   s      r~   r	   r	   :  sI    Ms??HAAFAFFA///G!KLLLC== ZJdSViiX	Z 	Z 	Z
C!88C&CCaZZ!E(##C	x#S)) RXi-E-E  	dS		   Jr   c           	         i }t          |          r-t          |          st          |          |d<   d|d<   d|d<   nt          |          rd|d<   d|d<   d|d<   nt          |          rtt	          j        |d                   }d                    |          |d<   	 t          t          |d                             |d<   n# t          $ r Y nw xY wd	                    |          |d<   t          t          |                    |d<   t          t          |          d
gz            dd
         |d<   t          t          |                    D ]}g }||         t          v r
||         g}n=t          D ]5}t          j        d|z  ||                   r|                    |           6|D ]?}t                              |          t                              |           k    rd||<    n@d\  |d<   }|D ]}|dz   }|dvrd|d         ||fz  |d<   |d         r|d         d d
         |d<   d\  |d<   }|d         D ]}|dz   }|dvrd|d         ||fz  |d<   t!          |          r$t#          d|z             d|d         |dfz  |d<   P|r0t%          dt          |           dt          |          d           |d         r|d         d d
         |d<   |S )Nsize0rankrR   dimsr<   	dimensionr   ,r   z	rank*[-1]z.*?\b%s\b.*)rR   r   setdims)r   :z(*)z(:)z%s#varname#_Dims[%d]=%s,	cbsetdimsz?getarrdims:warning: assumed shape array, using 0 instead of %r
r   z5getarrdims: If in call-back function: array argument z# must have bounded dimensions: got rc   )r   isarrayr	   isscalarrd   joinr   rn   rx   r   rangedepargsr   r   ru   indexisintent_inrk   rv   )	r   r   verboseretdimr@   vvar:   s	            r~   r
   r
   V  s   
C}} 55WS\\ 55"3''FFF	# 15FFF	 -5iK())hhsmmF	tCK0011CKK 	 	 	D	hhsmmF3s88nnFCB40026Ks3xx 	 	AA1v  VH! % %Bx 3SV<< %  ==$$w}}Q'7'777 CFE 8 #I 	* 	*AAA000!;	NAq?* "*Iy> 	1 ^CRC0C	N$K![! 	K 	KAAA000#=$aA, $,K  S!! KZ   #=$aA, $,K   Kx|}~xxxx  BF  GH  BI  BI  BI  BI  JK K K{ 	5";/4C Js   "%C 
CCc                 V   t          |          rOd|v r	|d         }n|d         }||d         v rt          ||d         |                   S t          d|z             dS | | }}d}t          |          rd}nt	          |          rd}| }t          |          r%|d	         D ]}|d d
         dk    r|d
d          } nd}t          |          }	t          |          rt          | |          \  }}
d|
z  }t          |          rat	          |          r'| d|dt          |	         dt          |	         d|	}n| d|dt          |	         |}|dt          |	         }nt          |          r[t	          |          r| d|dt          |          d|}n| d|dt          |          d|}|dt          |          d}nWt          |          r|d         }t          t!          |                    }| d|d|dt          |	         dd                    |          d|}| |k    r-| d|dt          |	         dd                    |          d}n|d|dt          |	         dd                    |          d| d
}nt%          |          rod}| t&          v rZt&          |          t(          v rFdt(          t&          |                   v r,t(          t&          |                   d         }|| k    sd |z  }nd}| d!|}|}nt          d"| z             ||fS )#Nr   r   r   r   rR   rR   rR   inputz	in/outputintent   out=z, optional\n    Default: %sz : z rank-0 array(,'')r   z rank-0 array(string(len=),'c')z string(len=)z : string(len=r   z rank- array('') with bounds (r    : rank-z) and z storageargnamez => %sz : call-back functionz7getpydocsign: Could not resolve docsignature for "%s".
)r   r   rv   r   isintent_inoutisintent_outr   hasinitvaluer   r   rs   c2pycode_mapr   r	   r   r   r   r   r   lcb_maplcb2_map)r   r   afsigsigoutoptout_arz   initr   showinitr   r   uas                 r~   r   r     s   # 	s??XBBVBVCKO444CbHIIIvQC
C3 			 EC X 	 	A!u!""  DSMMEC 9 Ch-8}} (L# 	C9:CCC%9Ee9L9L9LddTCC %&AAsssHUOOTTBC#eeXe__5	# !L# 	1333S))))441CC 333S))))441C*/%%c1B1B1B1BC	 L+CHH~~DEAAsssDDDDPHMEO EO EODGHHSMMMMSWSWY ::11dddL///#@FF 55$$$U 3 3 3SXXc]]]]AAAGFF	C L<<GAJ(22yHWUVZDX7X7X'!*%i0B77]-.QQ3FJ	L 	L 	L;r   c           	         t          |          }t          |          r%t          |          s| dt          |          d}nt	          |          r"| dt
          |         dt          |         d}n_t          |          rP|d         }t          t          |                    }| d|dt          |         d	d
	                    |          d}|S )Nz : rank-0 array(string(len=r   z : rank-0 array(r   r   r   r   r   r   r   r   )
r   r   r   r	   r   rs   r   r   r   r   )r   r   r   r   r   r   s         r~   r   r     s    SMME}} Ngcll N;<11;G;L;L;L;LN	# 	N018E???0<U0C0C0CF	 N+CHH~~?@qq$$$?KCH@J @J @J?Bxx}}}}N Jr   c                     t          |          rd\  }}nd\  }}t          |          rQ|d         }|}t          |          st          |          ri }	 |d         }d|v r4t	          |dd                                       d          \  |d<   |d	<   n@t          |i i           }t          |j                  t          |j	                  c|d<   |d	<   n$# t          $ r t          d
|d| d          w xY wt          |          rd|d         d|d	         d}n\t          |          rM|sd\  }}|d         dk    r!d|dd                             dd          z  }|d         dk    rd|dd         z  }||fS )N)z""z''r   =r   r   r   @,@init.rinit.iz2getinit: expected complex number `(r,i)' but got `z' as initial value of .z
(capi_c.r=z
,capi_c.i=z,capi_c)r   'z"%s""z\"z'%s')r   r   	iscomplexiscomplexarrayr   splitrn   r   r[   imagrx   
ValueErrorr   replace)r   r   r   r   r   r   s         r~   r   r     s   }}  #hhhC 13xS>> 	1^C00 	1C
sH!883A!B$4! 4!!&u 1CM3x== QBA36qv;;AF0CM3x= s s s jimimimopopopqs s ss s|| 2 2MMM3x===2c]] 	1 ,!+hAw#~~ad!3!3C!?!?@Aw#~~!T!B$Z0>s   B C !C8c                     t          |           st          |           r-t          |           }| d                             d|          }|S t	          |           st          |           rdS dS )Nr   f2py_lenr<   )r   isstringarrayr	   getischaracterischaracterarray)r   elsizes     r~   
get_elsizer     sw    }} c** c""^$((V<<3 +C00 s 3r   c           
      F   | }t          |          r%|d         D ]}|dd         dk    r|dd         } n| |t          |          d}g }t                                          D ](\  }} ||          r|                    d|z             )|rd                    |          |d<   nd|d<   t          |          rd	|d
<   n+|d         t          v rt          |d                  |d
<   nd|d
<   t          | |          \  |d<   |d<   t          |          rWt          |          rHt          |          s9t          |d         dd                                       d          \  |d<   |d<   t          |          r| |d<   | t          v rt          |          |d<   t          t          |                   d         |d<   t          t          |                   d         |d<   t          t          |                   d         |d<   t          t          |                   d         |d<   n?| |d<   t!          d| dt#          t                                                    d           t'          |          rt)          |          |d<   t          |          r8t+          |t-          | |                    }t/          j        |d                    }|d         t0          v r(t0          |d                  |d!<   t3          |          |d"<   t5          |          rg t6          d#t           d$t8          d%t:          d&t<          d't>          d(t          d)tA          tB          tE          t                              d*t&          d+t          d,tF          d-tH          d.tJ          d/tA          tL          tE          tJ                              d0t          d1tN          d1tP          d2}	g }
tS          d3tU          |	          d4          D ]1} |	|         |          r|
                    |	|dz                       2t'          |          r!|
                    d5| d6|d                    t          |          rCd7                    tW          d8 |d          |                    }|
                    d9|z             t          |          r(d:| d;|d         d<d7                    |
          |d=<   n0d:|d         d>| d?|d         d<d7                    |
          |d=<   tC          |          r+|d         tX          v rd:| d?tX          |d                  |d@<   t'          |          rdA| dB| dC|d@<   t          |          rdD| z  |d@<   |d         tX          v r5dE| d?tX          |d                  |dF<   dGtX          |d                  z  |dH<   t'          |          rdI| dB| dC|dF<   t[          | |          \  |dJ<   |dK<   t]          |          r|dL         |dL<   |S )Mz
    varname,ctype,atype
    init,init.r,init.i,pytype
    vardebuginfo,vardebugshowvalue,varshowvalue
    varrformat

    intent
    r   Nr   r   )varname
outvarnamer   zF2PY_%s|F2PY_INTENT_INrP   
varrformatr   Or   r   r   r   r   r   r   	cbnamekeycbname
maxnofargs
nofoptargsdocstrcbdocstrlatexdocstrcblatexdocstrzsign2map: Confused: external z is not in lcb_mapz.
lengthr   atyper   r   outputinoutputrequiredoptionalhiddenzcomplex scalarscalarr$   arrayzcomplex arrayzstring arrayzcomplex functionfunctioncallback	auxiliaryr      zslen(z)=r   c                     | d|S )Nr    )xrQ   s     r~   <lambda>zsign2map.<locals>.<lambda>n  s    AAAqq!1 r   zdims(%s)debug-capi:z=>r   vardebuginfor   r   vardebugshowvaluedebug-capi:slen()=%d =\"%s\"zdebug-capi:%s=%%pz#name#:varshowvalue%sshowvalueformatz#name#:slen(	pydocsignpydocsignoutnote)/r   r   isintent_dictrq   ru   r   r   c2buildvalue_mapr   r   r   r   r   r   r   r   rv   rw   rr   r   r	   
dictappendr
   rd   
c2capi_mapr   	debugcapir   r   
isrequired
isoptionalr   l_andr   l_notr   r   iscomplexfunctionr   isintent_callbackisintent_auxr   r   mapcformat_mapr   hasnote)r   r   r   rz   r   intent_flagsr;   r>   r   ilrlr@   ddims                r~   r   r      s    EC X 	 	A!u!""  ux}}
E
ECL##%% / /11S66 	/	A... )..H(Hs||  L	W)	)	),S\:LL#*1c?? CKZC ,Ys^^ ,GCLL ,'5K"( ($uU|| 	%Hs8}# *K<<#AJCM ( 4\ BC ( 4\ BC&wqz28<C
O#+GAJ#7#FC  CMG4'''') * * *}} *$S))Hs|| *jC0011iK())
7|z!!!#g,/G"3H~~ &Ak 7 L ( (*46@$&35=  * HeI..//	 2:	
 
 !
 #*
 ,3  . 0= ?M   "4 J&7 8 899 <F  %   ",  ( q#b''1%% 	% 	%Ar!uSzz %		"QU)$$$C== 	:IIIqqq#h--89993<< 	)88113{3CSIIK KDIIj4'(((c?? 	@ 	@3x===#((2,,,#0C	@
 GaaaZ#((2,,,#@CC== 	27|{***AA{3w<00,2'(C== 	 	111(C#$c?? 	A':a'@C#$
7|{"""01;s7|3L3LMN!%S\)B!C}} J JDEAAqqqIN,8C,@,@)Cc.)s|| "&kFJr   c                 `   | d         }t          |           }||                    dd          |                                |                                t	          |          t	          d|z            ||                                t          |           pdt          |           pdt          |           pdd}d|v rd|d<   nd|d<   d|v rd	|d
<   nd
|d
<   i ad| v r| d         	                                D ]}|t          j        v rt          j        |         D ]{}|d         }d| d         |         v rQ| d         |         d         	                                D ]*}| d         |         d         |         |d         k    r|} n+|d         t          |<   |n;d| v r7| d         r/t          d|d         dt          | d                   d           t          | t                    pd|d<   t          |           rd| v r	| d         }n| d         }||d<   t!          ||           \  |d<   |d<   t#          | d         |                   |d<   t%          |           r)| d         |         d         |d<   dg| d         |         d<   |d         t&          v rt&          |d                  |d<   n*d|d<   t          dt          |d                   z             t)          |           rF|d         t*          v rd |d!t*          |d                  |d"<   t-          |           rd#|d$|d%|d"<   t-          |           rTt/          | d         |                   |d&<   |d&         d'k    r*t          d(t          | d                   z             d)|d&<   t1          |           r| d         |d<   dg| d<   |S )*zV
    name,NAME,begintitle,endtitle
    rname,ctype,rformat
    routdebugshowvalue
    r   _\_	end of %srR   )r   texname
name_lowerNAME
begintitleendtitlefortrannameFORTRANNAMEcallstatementusercode	usercode1	F_FUNC_USF_FUNCF_WRAPPEDFUNC_USF_WRAPPEDFUNCuser   r'  r   	externalsz!routsign2map: Confused: function z has externals z but no "use" statement.
callprotoargumentr   rnamer  r  r   r   r  
resultnoteSee elsewhere.rformatr   z.routsign2map: no c2buildvalue key for type %s
r  r   routdebugshowvaluer  r  r  rlengthrX   zzroutsign2map: expected explicit specification of the length of the string returned by the fortran function %s; taking 10.
10)getfortrannamer   rp   uppergentitlegetcallstatementgetusercodegetusercode1r   rr   r   cb_maprv   r   getcallprotoargumentr   r   r   hasresultnoter  r  r(  r   r	   r)  )	routr   fnamer   rA   unlnrz   r   s	            r~   r   r     s7    <D4  Ell3..::<<!$d 233++--,T228b"4((.B$T**0b C e||#H H
d{{1O.OG}}e!!## 		( 		(AHO##"/!, ( (BABUA..!%eQ!6!;!;!=!= & &A#E{1~e4Q72a5@@%& %  A #%Q%GBKK		( 
		k!2	KKKd;/00002 	3 	3 	33D'BBHbC$ &tXAAVAG0<Q0E0E-K#n-VQ00G 	9 $VQ 7C'7&8DLOF#w<+++-c'l;C	NN C	NE#g,'') * * *T?? 	7|{***AA{3w<00-2()%%  AAqqq-()D!! 	&)$v,q/::C	N9~%%  Vf&&( ) ) )!%It}} *6lF()VJr   c                    t          |           r?| d         | d                                         | d                             dd          d}n>| d         | d                                         | d                             dd          d}t          |           pg |d<   t	          |           r| d         |d<   t          |           pd|d	<   t          |           pd|d
<   | d         r!t          | d         d                   pd|d<   nd|d<   t          |           pd|d<   d| v r| d         |d<   d| v r| d         |d<   |S )z
    modulename
    r   r/  r0  )f90modulenameF90MODULENAMEtexf90modulename)
modulename
MODULENAMEtexmodulenamerestdocr  rR   r:  r;  bodyr   interface_usercodepymethoddefcoutputf2py_wrapper_output)ismodulerK  r   
getrestdocr)  rN  rO  getpymethoddef)mr   s     r~   r   r     sp    {{ ? !&	 !&	 1 1#$V9#4#4S%#@#@B B vYvY__.. !&	 1 1#u = =? ?  ]](bC	Nqzz  iF!!nn*C
O#A,"Cy '$/&	!$=$=$C !!$& !'**0bCA~~9I!!%&'<%=!"Jr   c                    d| i}|d         |d<   t          |          |d<   |d         t          v r(t          |d                  |d<   t          |          |d<   |d         t          v rdt          |d                  z  |d<   t	          |          rt          |t          | |                    }t          | |          \  |d<   |d	<   t          |          r|d
         |d
<   dg|d
<   |S )Nr   	varname_ir   r   r   r  r  r  r  r  rE  )	r   r  r   r(  r   r  r
   r   r)  )r   r   r   r   s       r~   r   r     s    a.C9~CC==CL
7|z!!!#g,/G"3H
7|{""!%S\)B!Cs|| 2jC0011,8C,@,@)Cc.)s|| )&kF'(FJr   c                    d| d         d|dd}t          |           rSd| d         v rd}nd}|d	| d                                         d
| d                                         d|d<   d|d<   n|d         |d<   d|d<   | d         |d<   t          |d                   |d<   t          d|d         z            |d<   t	          |           |d<   d|d<   |d         dk    rd|d<   n|d         |d<   |d         dk    rt          |           rd|d<   nd|d<   |d         t          v rdt          |d                  z  |d<   t          |           rt          |           |d<   t          |           rd| v r	| d         }n| d         }t          | d         |                   r)| d         |         d         |d<   d g| d         |         d<   ||d!<   t          ||           \  |d"<   |d#<   t          |           rd$|d<   n t          |           r| d         |d<   d g| d<   d%}d%}d&| v rYd| v rU| d&         D ]L}| d         |         } t          t          t                    |          r|d'z   }t          |          r|d'z   }Mt!          |          |d(<   t!          |          |d)<   t          |           r$t          |           rd| v r| d         |d*<   d g| d<   |S )+z\
    name,begintitle,endtitle,argname
    ctype,rctype,maxnofargs,nofoptargs,returncptr
    cb_r   _in_rR   )r   
returncptrr/  r<  r=  (r   r   callbacknameexternstaticr   r5  r1  r6  r   r   rctyper$   z3
#ifdef F2PY_CB_RETURNCOMPLEX
return_value=
#endif
rm  zreturn_value=r  r  	strlengthr   r   r  rE  rC  r  r  z8
#ifdef F2PY_CB_RETURNCOMPLEX
#ctype#
#else
void
#endif
r   argsr   r   r   routnote)r%  rp   rK  rL  r   r$  r(  r   r	   r   r)  r   l_orr   r   r!  r   )rS  umr   r=  r   nofargsr   r   s           r~   r   r   
  sx    
 %)LLL""5 C !$v, FFF!'!%f!3!3!5!5!5!5!%f!3!3!5!5!5!5#N
 !H!&kN H&\C	N V--C{S[899C
OD>>CLCM
7|xHGH
8}T"" 	0!C !0C
7|{""!%S\)B!C .'--K$ .tXAAVA4<?## 	9v,q/&1CK'7&8DLOF#G0<Q0E0E-K#n-T"" 	CM 4== 	.v,CK,-DLGJ~~&D..f 	0 	0Av,q/C0tK0055 0!A+c?? 0!+aJWCZ((Ct}} *D)) *h$.>.>v,J()VJr   c                 P   | t          |          d}t          |          rd|d<   |d         t          v r(t          |d                  |d<   t          |          |d<   |d         t          v rdt          |d                  z  |d<   t          |          rt          |t          | |                    }n&t          |          rt          |          |d<   d	|d
<   t          | |          \  |d<   |d<   t          |          r|d         |d<   dg|d<   t          | |          |d<   |S )N)r   r   r   r   r   r   r  r  r   r<   r   r  r  r  rE  	arrdocstr)r   r   r  r   r(  r   r  r
   r   r	   r   r)  r   )r   r   r   s      r~   r   r   \  s5   (3--
0
0CS G
7|z!!!#g,/G"3H
7|{""!%S\)B!Cs|| jC0011	# "3''FF,8C,@,@)Cc.)s|| )&kF'(F$Q,,CJr   )r   )N))__doc__rR   r   versionf2py_versionrd   r   rh   crackfortranr   r   auxfuncs__all__using_newcorer   r   r   rs   r  r   r  rg   re   rf   rt   r   r(  r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r  r   r~   <module>r     s         "  				 				 ( ( ( ( ( (      
       

Hg W7 E 5	
 U U e 5 E   Y i "9 h  !$'h '{'\' l' {	'
 Z' {' ' Y' *' j' :' |' ' $]' '  :!'
(  --(L -;-!1- *- ";	-
  - ;- #L- - j- *- ";- ~- '- "<- #M-  (!-" )+%- - -J(# s  s	
    !# s C  S   !# &s #  S!&  &&Hc &S&!3& C& $S	&
 "3& S& %c& 3& & C& $S&  & )#& $S& %c&  *3!&" "!$%& & &L, " #& !$%(&)+.!!$& &  #x*-A A#-g$; /7G *2FH H .O 08M 57 7 #2#3;P$9; ; $&wU*, ,!#%5 6#%x.6l! 
& z***T *T *TXx e t d	
     d 4 u  E 	   %k  !" F# .0 0 0f    8: : : :zG G GT  $     F  g g gTN N Nb  :   $O O Od    r   