bg$dZdddZdZddlZddlmZdd lmZdd lm Z m Z dd l TiZ d Z d ejjzZdZdZdZdS)aJ Build F90 module support for f2py2e. Copyright 2000 Pearu Peterson all rights reserved, Pearu Peterson 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/02/03 19:30:23 $ Pearu Peterson z$Revision: 1.27 $ z See `f2py -v`N) capi_maps) func2subr)undo_rmbadnameundo_rmbadname1)*ct|r|gSt|sgSg}|dD]9}t|r||'|t|z}:|S)Nbody)ismodulehasbodyappendfindf90modules)mretbs j/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib64/python3.11/site-packages/numpy/f2py/f90mod_rules.pyrr"sz{{s 1:: C vY** A;; * JJqMMMMq)))CC 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|D ]}gggg|d ggf\}} } } } } g}g}g}t|r&|d D]}| |d |dD]a}|d|}|| vrMt tt|s*| |||btd|d z| r%tdd | zd g}|fd}d g}|fd}tj |}|d|d z|d|d zt|r=|d}t|trd |}||| r |d| D])}|d|}| |tj|}tj|}tj||}|ddd}|dd}|sd}t*}|dt-|d|dd|d |d!tj|d" |d#tj||zt|r@|d}t|trd |}|d$|zt3|rM| d%|d d&|| | d'|d(|z|d)|d*|d d+|d,|d-| d'z|d.|d d/t-|d|d0|d1t4z|d1<t7dt9|ddz}|d2d3 d4|Dz|d1|z|d1<|d5| d'z| ||d6|z|d7|d*|d d8|d,+| r |d9t|r>|d D]4}t;|s#td:|d;d|d d5| d<|d z|d |d=<||\}} t?|r_|d1| z|d1<| d>|d d?|d |tAj!|d@n| r_|d1| z|d1<| d>|d d?|d |tAj"|d@n6| |d || d'g|dA<tG||}!g|!dB<g|!dC<tI||!}|d|d dD|d d?|d dE|d d?|d d" |d6|d z|dF|d*|d d8|d d,6|dG|dHdI|d dJd3 |dK|d1|d1<d?|d vrdL}"nd}"|dM|"dN|d dO|d %dPd3 |dQ |dR|d z|dS|"dN|d dO|d %dT|d dU |dV|dW|z|z|dW<dX|d dY|d dZ|d dQg|d[z|d[<|d |d\|d z|r)tM|D]}#|d.|d d]|#|r-|d d^g|z|d_|d`| r tM| D]}#|da|#z|dbd3 tM| z|dc|d z|d |dddedfg|dd<|dBdg|d dhd3 tM| di d |dj<g|dk<g|dC<|d1|dd<tO|dBdkrd |dB<||d1fS)lNr)rulesF_FUNCz arrayobject.h ) includes0includesz"Fortran 90/95 modules:\n") f90modhooksinitf90modhooksr need separatorsfordocslatexdocc&|dd||d<dS)Nrz liness rfaddzbuildhooks..fadd`s!"1tt,!rc&|dd||d<dSNrrr$r%s rdaddzbuildhooks..dadddsQ444&!rnamer varsz. Constructing F90 module support for "%s"... z Variables: %s  c&|dd||d<dSr*r$r%s rcaddzbuildhooks..caddz tttTT*AaDDDrc&|dd||d<dSr*r$r%s riaddzbuildhooks..iadd~r1rz'static FortranDataDef f2py_%s_def[] = {z.\subsection{Fortran 90/95 module \texttt{%s}} notez\begin{description}dimsr z-1:z {"z",rankz,{{z}},z, z},z\item[]{{}\verb@%s@{}}z--- %sf2py_ _getdims_rz.void (*%s)(int*,int*,void(*)(char*,int*),int*)z,void (*)(int*,int*,void(*)(char*,int*),int*)z f2py_z_def[i_f2py++].func = ;z#subroutine %s(r,s,f2pysetdata,flag)zuse z , only: d => z integer flag rz allocate(d(%s)) ,cg|]}d|zS)zs(%s)r$).0is r zbuildhooks..s999! 999rzend subroutine %szchar *%szchar*z_def[i_f2py++].data = z\end{description}z"f90mod_rules.buildhooks: skipping blockz%s() modulename f2pywrap__) signatureexternroutinesr docshortz4",-1,{{-1}},0,0,NULL,(void *)f2py_rout_#modulename#_z,doc_f2py_rout_#modulename#_zchar *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_rz$subroutine f2pyinit%s(f2pysetupfunc)z , only : interfacez end interfacezexternal f2pysetupfuncz external %szcall f2pysetupfunc(%s)zend subroutine f2pyinit%s r!z \subsection{z\subsubsection{z" z --- " routine_defsdoc)(r"rrrrkeysl_or isintent_hide isprivateoutmessjoinr modsign2maphasnote isinstancelistgetctype c2capi_map getarrdimsreplacestrip fgetdims2r get_elsize getarrdocsign isallocatable fgetdims1rangeint isroutinebuildapi isfunctionrcreatefuncwrappercreatesubrwrapper applyrules dictappendupperrlen)$pymodrrfhooksr(rNr+rsargsfargsefargsmodobjsnotvarsonlyvarssargspifargsmfargsrnvarchooksr0ihooksr3vrdr4ctatdmdms use_fgetdims2apiwraparras$ r buildhooksrWs Ro.*.DAA12   C TF---- $C'''' E " "ZRZR;=r2r fIL<8ufgw 1:: *vY * *qy))))6!! ! !AF)A,C  +I4 y+I+I#+N+N """ a   C6     D +sxx/A/AB C C C + + + + + + + +#A&&  6!F) DEEE  @AfI NOOO 1:: V9D$%% 'yy DJJJ  ) D' ( ( (* L* LAF)A,C NN1   #C((B%b)B%a--BV*$$S$//5577C++c4((..00C %M DD!!$$$$bjjj###rrr&s++++- . . . D+)!S113 4 4 4s|| (6{dD))+99T??DX&'''S!! L QvYYYBCCC eBi((( DJLLL LMMMQvYYYJKKK:eBiHIIIiii!3!3!3!35666%&&&"1I 1q As2f:233)hh99S999::<==="1I 5q (E"I67777 Q Z1-... g&&&QvYYYJKKKK  ' D% & & & 1::" -vY! -! - ||D)*7DD67iDDDEEEv63444"#F),!NN1-- Ta== 1 &q D 0F1ILLLQvYYY& !JKKKMM)"=a1"M"M"MNNNN1$*1I$4q  6AfII%NOOO %7QGGGIIII QvY/// eBi000(*$%S))6 !#: b))& 1V999aiii6AfIIIOPPP Z1V95666 h'''iii6,----   S fIIIsxxq 3q !F)   FFF & 1V9??#4#4#4#4chhv6F6F6F6FH I I I  /1V9 =>>> & 1V9??#4#4#4#4aiiiA B B B U  /&86AM fIIIqyyy!F)))#-".034E0F"G  R  3qy ABBB  ;#F++ ; ;AfIIIqq9::::  " D;-&011 2 2 2 D ! ! !  %&&&  *#F++ * *]a())))  %.2G2G)H)H IJJJ  *ai 8999 TYYs: ' ' / / /11 2 2 2J F aiii.1hh~g7N7N.O.O.O.OQ R R R RCCJC O!fC O 3v;1F q >r)__doc__ __version__ f2py_versionnumpynpr"rr crackfortranrr auxfuncsoptionsrintpitemsizerbr^ fgetdims2_sarr$rrrs  ""R%(  99999999      7 :A9K! L $ *  * qqqqqr