K iR&dZdddZdZddlZddlmZmZdd ldd l m Z m Z iZ d Z d ejjzZd ZdZdZy)a2 Build F90 module support for 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. z$Revision: 1.27 $ z See `f2py -v`N) capi_maps func2subr)*)undo_rmbadnameundo_rmbadname1ct|r|gSt|sgSg}|dD]-}t|r|j| |t|z}/|S)Nbody)ismodulehasbodyappendfindf90modules)mretbs ]/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/numpy/f2py/f90mod_rules.pyrrs\{s 1: C vY* A; JJqMq))C * Ja external f2pysetdata logical ns integer r,i integer(%d) s(*) ns = .FALSE. if (allocated(d)) then do i=1,r if ((size(d,i).ne.s(i)).and.(s(i).ge.0)) then ns = .TRUE. end if end do if (ns) then deallocate(d) end if end if if ((.not.allocated(d)).and.(s(1).ge.1)) thenz end if if (allocated(d)) then do i=1,r s(i) = size(d,i) end do end if flag = 1 call f2pysetdata(d,allocated(d))z end if if (allocated(d)) then do i=1,r s(i) = size(d,i) end do !s(r) must be equal to len(d(1)) end if flag = 2 call f2pysetdata(d,allocated(d))cddlm}gggddgddddggd}d g}|fd }d g}|fd }t|}t|D]_}gggg|d ggf\} } } } } }g}g}g}t |r|d D]}| j |d |dj D]X}|d|}|| vst|sttt|r7|j ||j |Ztd|d dt|dk(r(t| dk(r|d | vrtd|d d|d |vrt|rtd|d d"|d |vrt|rtd|d dH|rtddj|dd g}|fd}d g}|fd}t!j"|}|d|d z|d|d zt%|r.|d}t'|t(rdj|}|||r|d|D]}|d|}| j |t!j*|}t j,|}t!j.||}|dj1dd j3}|j1d!d j3}|sd }t4}|d"t7|d#|d$d%|d&|d't!j8|d( |d)t!j:||zt%|r1|d}t'|t(rdj|}|d*|t=|r| j d+|d d,|| j | d-| j d.|d/|j d0|d1|d d2|d3|d4| d-d5|d6|d d7t7|d|d8|dt>z|d<tAdtC|d$dz}|d9d:j|D cgc]} d;| z c} z|d|z|d<|d<| d-N| j || j d=||j d>|d1|d d?|d3|r|d@t |r|d D]}tE|stdA|dBd|d d(| j |d dC|d |dD<|jG|\}!}"tI|rO|d|"z|d<| j dE|d dF|d |j tKjL|dGny|"rO|d|"z|d<| j dE|d dF|d |j tKjN|dGn(| j |d |j | d-g|!dH<tQ|!|}#g|#dI<g|#dJ<tS||#}|d"|d dK|d dF|d dL|d dF|d d( | j d=|d |j d=|d1|d d?|d d3|dM|dNdO|d dPd:j| dQ|d|d<dF|d vrdR}$nd}$|dS|$dT|d dU|d jUdVd:j|dW |dX|d z|dY|$dT|d dU|d jUdZ|d d[ |d\|d]|z|z|d]<d^|d d_|d d`|d dWg|daz|da<|d |db|d dc|r!tW|D]}%|d6|d dd|%|r#|djdeg|z|df|dg| rtW| D] }%|dh|%|did:jtW| dj|dk|d d|dj|dlj1dmdng|dl<|dIj do|d dpd:jtW| dqbd |dr<g|ds<g|dJ<|d|dl<t|dIdkrd |dI<||dfScc} w)tNr)rulesF_FUNCz arrayobject.h ) includes0includesz"Fortran 90/95 modules:\n") f90modhooksinitf90modhooksr need separatorsfordocslatexdocc|dd||d<y)Nrz liness rfaddzbuildhooks..fadd[sA$xv&!rc|dd||d<yNrrr$r%s rdaddzbuildhooks..dadd_sA$r$ !rnamer varsz' Constructing F90 module support for "z"... rz Skipping z7 since there are no public vars/func in this module... z5 since it is in 'use' and contains a common block... z5 since it is in 'use' and contains a derived type... z Variables:  c|dd||d<yr*r$r%s rcaddzbuildhooks..cadddV2dV$AaDrc|dd||d<yr*r$r%s riaddzbuildhooks..iaddr1rz'static FortranDataDef f2py_%s_def[] = {z.\subsection{Fortran 90/95 module \texttt{%s}} notez\begin{description}dimsrz-1:z {"z",rankz,{{z}},z, z},z\item[]{{}\verb@%s@{}}z--- f2py_ _getdims_rzvoid (*z/)(int*,npy_intp*,void(*)(char*,npy_intp*),int*)z6void (*)(int*,npy_intp*,void(*)(char*,npy_intp*),int*)z f2py_z_def[i_f2py++].func = ;z subroutine z(r,s,f2pysetdata,flag)zuse z , only: d => z integer flag z allocate(d(%s)) ,zs(%s)zend subroutine zchar *zchar*z_def[i_f2py++].data = z\end{description}z"f90mod_rules.buildhooks: skipping blockz() modulename f2pywrap__) signatureexternroutinesr docshortz4",-1,{{-1}},0,0,NULL,(void *)f2py_rout_#modulename#_z,doc_f2py_rout_#modulename#_z {NULL} }; }zstatic void f2py_setup_(z) { int i_f2py=0; F_FUNC_USz extern void z (f2pyinitz ,F2PYINITz )(void (*)(z));z static void f2py_init_%s(void) { z )(f2py_setup_z);z} rz PyDict_SetItemString(d, "z", PyFortranObject_New(f2py_z_def,f2py_init_rzsubroutine f2pyinitz(f2pysetupfunc)z , only : interfacez end interfacezexternal f2pysetupfuncz external zcall f2pysetupfunc()zend subroutine f2pyinitr!z \subsection{z\subsubsection{z" z --- " routine_defsdoc),r"r getuseblocksrrrkeys isvariablel_or isintent_hide isprivateoutmesslencontainscommoncontainsderivedtypesjoinr modsign2maphasnote isinstancelistgetctype c2capi_map getarrdimsreplacestrip fgetdims2r get_elsize getarrdocsign isallocatable fgetdims1rangeint isroutinebuildapi isfunctionrcreatefuncwrappercreatesubrwrapper applyrules dictappendupperr )&pymodrrfhooksr(rKr+usenamesrsargsfargsefargsmodobjsnotvarsonlyvarssargspifargsmfargsrnvarchooksr0ihooksr3vrdr4ctatdmdms use_fgetdims2iapiwraparras& r buildhooksrRs Ro.*.DA12  C TF' $C!E"H E "bY;=r2r fIL<8ufgw 1:vY *qy) *6! !AF)A,C Z_?]tMS\?]^a?b" a  !  ? % %##A& 6!F) DE @AfI NO 1:V9D$%yy J  ' () FAF)A,C NN1 ##C(B%%b)B%%a-BV*$$S$/557C++c4(..0C%M !!$bj#r&&s+- . +))!S13 4s|6{dD)99T?DtD6]#S! uQvYKy<= eBi( aS OPR VWwqyk)?s!DE{59+-CDEtAfI;mOA4F3GrJK%&"1I 1q As2f:23)hhS9! 9:<="1I 5q uRyk23 Q vaS\* g&wqyk)?s!DES) FT  % & 1:vY N |))*7 Aai[DE!F)B/0"#F),!NN1- Ta= &q D 0F1ILL9QvYKq6 !DEMM)"="=a1"MN &q D 0F1ILL9QvYKq6 !DEMM!33ACELL6+MM%),(*$%S)6 !#: b)& 1V9ai6AfIOP vai[12 h'wqyk)?& {!LM? N@  S fIsxxq 3q !F)  FF & 1V9??#4chhv6FH I /1V9 => & 1V9??#4aiA B U  /&86AM fIqy!F)#-".034E0F"G  R "1V9+_ => #F+ 5tAfI;is34 5  ;-&01 2  ! %& #F+ &y_% & "388N5,A#B"C1 EF &qyk 45 TYYs: ' / / /1 2J F T!F)E#((>';R2S1TTVWXEbYHCCJC O!fC O 3v;1F q >o :s c)__doc__ __version__ f2py_versionnumpynpr"rrauxfuncs crackfortranr r optionsrintpitemsizerdr` fgetdims2_sarr$rrrsj ""R(  " 9   7 :A9K9K! L $ *  * {r