Uc@sdZddd!ZddlZejZddlZddlZddlZddlZejj Z ejZ iZ gZ dZdZdZdZd Zd Zd Zd Zd ZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(d Z)d!Z*d"Z+d#Z,d$Z-d%Z.d&Z/d'Z0d(Z1d)Z2d*Z3d+Z4d,Z5d-Z6d.Z7d/Z8d0Z9d1Z:d2Z;d3Z<d4Z=d5Z>d6Z?d7Z@d8ZAd9ZBd:ZCd;ZDd<ZEd=ZFd>ZGd?ZHd@ZIdAZJdBZKdCZLdDZMdEZNdFZOdGZPdHZQi dIeC6dJeD6dKeE6dLeF6dMeI6dNeH6dOe@6dPeM6dQeO6dReP6dSeQ6ZRdTZSdUZTdVZUdWZVdXZWdYZXdZZYd[ZZd\Z[d]Z\d^Z]d_Z^d`e_fdaYZ`dbdzdcYZaddZbdeZcdfZddgZedhZfddidjZgdkZhidlZidmZjdnZkdoZldpZmdqZndrZodsZpdtZqduZrdvdwZsdxZtidyZudS({sV Auxiliary functions for f2py2e. Copyright 1999,2000 Pearu Peterson all rights reserved, Pearu Peterson Permission to use, modify, and distribute this software is given under the terms of the NumPy (BSD style) LICENSE. NO WARRANTY IS EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. $Date: 2005/07/24 19:01:55 $ Pearu Peterson s$Revision: 1.65 $i iNicCs)tjddr%tjj|ndS(Ntverbosei(toptionstgettsyststdouttwrite(tt((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytoutmess#scCs dtkS(Ntcapi(t debugoptions(tvar((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt debugcapi'scCs'd|ko&|ddko&t| S(Nttypespect character(t isexternal(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt _isstring*scCst|ot| S(N(Rtisarray(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisstring-scCst|od|kS(Nt charselector(R(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt ischaracter0scCst|ot|S(N(RR(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt isstringarray3scCst|o|dddkS(Nt dimensionis(*)(R(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisarrayofstrings6scCsd|kot| S(NR(R(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyR<scCs#t|p!t|p!t| S(N(RRR(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisscalar?scCst|o|jddkS(NR tcomplexsdouble complex(scomplexsdouble complex(RR(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt iscomplexBscCst|o|jddkS(NR tlogical(RR(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt islogicalEscCst|o|jddkS(NR tinteger(RR(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt isintegerHscCst|o|jddkS(NR treal(RR(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisrealKscCsLy|ddSWn5tk rGy|ddSWqHtk rCqHXnXdS(Nt kindselectort*tkind(tKeyError(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytget_kindNs  cCs9t|sdS|jddkr)dSt|dkS(NiR RRt8(sintegerslogical(RRR$(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt islong_longWs  cCs9t|sdS|jddkr)dSt|dkS(NiR Rs-1(RRR$(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisunsigned_char^s  cCs9t|sdS|jddkr)dSt|dkS(NiR Rs-2(RRR$(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisunsigned_shortes  cCs9t|sdS|jddkr)dSt|dkS(NiR Rs-4(RRR$(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt isunsignedls  cCs9t|sdS|jddkr)dSt|dkS(NiR Rs-8(RRR$(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisunsigned_long_longss  cCs9t|sdS|jddks)dSt|dkS(NiR RR%(RRR$(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisdoublezs  cCs9t|sdS|jddks)dSt|dkS(NiR Rt16(RRR$(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt islong_doubles  cCs t|sdSt|dkS(Nit32(RR$(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytislong_complexs cCst|o|jddkS(NR Rsdouble complex(scomplexsdouble complex(RR(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytiscomplexarrayscCs1t|o0|jddko0t|dkS(NR Rt1(RRR$(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt isint1arrays!cCs1t|o0|jddko0t|dkS(NR RRs-1(sintegerslogical(RRR$(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisunsigned_chararrays!cCs1t|o0|jddko0t|dkS(NR RRs-2(sintegerslogical(RRR$(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisunsigned_shortarrays!cCs1t|o0|jddko0t|dkS(NR RRs-4(sintegerslogical(RRR$(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisunsignedarrays!cCs1t|o0|jddko0t|dkS(NR RRs-8(sintegerslogical(RRR$(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisunsigned_long_longarrays!cCs1t|o0|jddko0t|dkS(NR RRR1(sintegerslogical(RRR$(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytissigned_chararrays!cCs1t|o0|jddko0t|dkS(NR RRt2(sintegerslogical(RRR$(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytissigned_shortarrays!cCs1t|o0|jddko0t|dkS(NR RRt4(sintegerslogical(RRR$(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytissigned_arrays!cCs1t|o0|jddko0t|dkS(NR RRR%(sintegerslogical(RRR$(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytissigned_long_longarrays!cCsd|kod|dkS(Ntattrspect allocatable((R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt isallocatablescCsd|kpt| S(NR(R(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt ismutablescCs d|kS(Nt modulename((trout((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytismoduleroutinescCsd|kod|dkS(Ntblocktmodule((RB((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytismodulescCsd|kod|dkS(NRDtfunction((RB((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt isfunctionscCs-t|rdSto,t|o,t| S(Ni(t isintent_ct wrapfuncsRHR(RB((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisfunction_wraps cCsd|kod|dkS(NRDt subroutine((RB((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt issubroutinescCst|pt|S(N(RHRM(RB((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt isroutinescCsYt|sdSd|kr)|d}n |d}||dkrUt|d|SdS(Nitresulttnametvars(RHR(RBta((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytislogicalfunctions    cCsYt|sdSd|kr)|d}n |d}||dkrUt|d|SdS(NiRORPRQ(RHR&(RBRR((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytislong_longfunctions    cCsYt|sdSd|kr)|d}n |d}||dkrUt|d|SdS(NiRORPRQ(RHR-(RBRR((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytislong_doublefunctions    cCsYt|sdSd|kr)|d}n |d}||dkrUt|d|SdS(NiRORPRQ(RHR(RBRR((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytiscomplexfunctions    cCst|rtddSdS(Ns ************************************************************** Warning: code with a function returning complex value may not work correctly with your Fortran compiler. Run the following test before using it in your applications: $(f2py install dir)/test-site/{b/runme_scalar,e/runme} When using GNU gcc/g77 compilers, codes should work correctly. ************************************************************** ii(RVR(RB((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytiscomplexfunction_warns  cCsYt|sdSd|kr)|d}n |d}||dkrUt|d|SdS(NiRORPRQ(RHR(RBRR((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisstringfunction s    cCsd|ko|dS(Nt externals((RB((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt hasexternalsscCsd|kod|dkS(Ntf2pyenhancementst threadsafe((RB((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt isthreadsafescCsd|ko|dS(NRQ((RB((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt hasvariablesscCs6d|ko5d|dko5d|dko5t|S(NR=toptionaltrequired(tisintent_nothide(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt isoptionalscCsd|kod|dkS(NR=texternal((R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyR!scCst| ot|S(N(RbRa(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt isrequired$scCsd|krdSd|dkr$dSd|dkr8dSd|dkrLdSd|dkr`dSd|dkrtdSd |dkrdSdS( Ntintentithideitinplacetintouttinouttoutin((R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt isintent_in's cCsZd|koYd|dks,d|dkoYd|dkoYd|dkoYd|dkS(NReRjRkRhRfRg((R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisintent_inout8scCsd|jdgkS(NRiRe(R(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt isintent_out;scCsPd|koOd|dkpOd|dkoOd|dkoOttt| S(NReRfRiRh(tl_orRmtisintent_inplace(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt isintent_hide>scCs t| S(N(Rq(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyRaAscCsd|jdgkS(NtcRe(R(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyRIDscCsd|jdgkS(NtcacheRe(R(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisintent_cacheJscCsd|jdgkS(NtcopyRe(R(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt isintent_copyMscCsd|jdgkS(Nt overwriteRe(R(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisintent_overwritePscCsd|jdgkS(NtcallbackRe(R(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisintent_callbackSscCsd|jdgkS(NRgRe(R(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyRpVscCsd|jdgkS(NtauxRe(R(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt isintent_auxYscCsd|jdgkS(Ntaligned4Re(R(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisintent_aligned4\scCsd|jdgkS(Ntaligned8Re(R(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisintent_aligned8^scCsd|jdgkS(Nt aligned16Re(R(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisintent_aligned16`st INTENT_INt INTENT_INOUTt INTENT_OUTt INTENT_HIDEt INTENT_CACHEtINTENT_CtOPTIONALtINTENT_INPLACEtINTENT_ALIGNED4tINTENT_ALIGNED8tINTENT_ALIGNED16cCsd|kod|dkS(NR=tprivate((R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt isprivatemscCs d|kS(Nt=((R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt hasinitvaluepscCs"t|sdS|dddkS(NiRt"t'(RR(R(R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pythasinitvalueasstringss cCs d|kS(Ntnote((R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pythasnotexscCsYt|sdSd|kr)|d}n |d}||dkrUt|d|SdS(NiRORPRQ(RHR(RBRR((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt hasresultnote{s    cCs d|kS(Ntcommon((RB((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt hascommonscCsHt|rdSt|rDx%|dD]}t|r'dSq'WndS(Nitbodyi(Rthasbodytcontainscommon(RBtb((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyRs    cCsIt|rdSt|s dSx"|dD]}t|r+dSq+WdS(NiiR(RFRtcontainsmodule(RDR((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyRs   cCs d|kS(NR((RB((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyRscCst|dk S(N(tgetcallstatementtNone(RB((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pythascallstatementscCsdS(Ni((R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytistruescCsdS(Ni((R ((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisfalsest F2PYErrorcBseZRS((t__name__t __module__(((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyRst throw_errorcBseZdZdZRS(cCs ||_dS(N(tmess(tselfR((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt__init__scCs d||jf}t|dS(Ns var = %s Message: %s (RR(RR R((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt__call__s(RRRR(((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyRs cGskdg}}x>tt|D]*}d|||f}|jd|q Wtd|dj|fS(Nslambda vs %s,f%d=f[%d]sf%d(v)s%s:%ss and (trangetlentappendtevaltjoin(tftltl2ti((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytl_ands  cGskdg}}x>tt|D]*}d|||f}|jd|q Wtd|dj|fS(Nslambda vs %s,f%d=f[%d]sf%d(v)s%s:%ss or (RRRRR(RRRR((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyRos  cCs tdS(Nslambda v,f=f:not f(v)(R(R((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytl_notscCs/y|dddkSWntk r*dSXdS(NR[t fortrannameti(R#(RB((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytisdummyroutines cCsjyH|dd}|dkr&tn|sGtd|dtnWntk re|d}nX|S(NR[RRs"Failed to use fortranname from %s RP(R#terrmess(RBRP((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytgetfortrannames    icCs9y|dj|}Wntk r+dSX|s6dS|dkr^t|tdkr^dSt|tgkr|t|krdS||}n|d dkr5|rd|d| d|d}n |d}|d dkr|r |d d | d }q2|d }q5td |t|fn|S( NR[iRis'''s /* start s multiline (s) */ is /* end multiline (s)*/s-%s multiline block should end with `'''`: %s (RR#ttypeRRtrepr(RBt blocknametcommenttcountertr((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytgetmultilineblocks. $ "  cCs t|dS(Nt callstatement(R(RB((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyRsc Cszt|ddd}|r|St|r9tddSddlm}gg}}tttt|r|j ddgnx|d D]}|d |}t |rqn||kr||d }nn||}tt t t t|rnt|rn |d }t|s3t|rC|jdn|j|qWd j||} | svd} n| S(NtcallprotoargumentRis<warning: callstatement is defined without callprotoargument i(tgetctypeschar*tsize_ttargsRQt_typedefR!t,tvoid(RRRt capi_mapsRRRXRRKtextendRzRIRoRRRRRR( RBtcb_mapRRt arg_typest arg_types2tnR tctypet proto_args((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytgetcallprotoarguments:         cCs t|dS(Ntusercode(R(RB((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt getusercodescCst|dddS(NRRi(R(RB((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt getusercode1scCs t|dS(Nt pymethoddef(R(RB((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytgetpymethoddefscCsgg}}d|kr|d}d|krx.|dD]"}||kr:|j|q:q:Wx7|D]"}||krg|j|qgqgWq|d}n||fS(NRtsortvars(R(RBtsortargsRRR((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytgetargss        cCsg|jdg}}g|djD],}t|d|r*||kr*|^q*}||}d|krx.|dD]"}||kr}|j|q}q}Wx;|D]"}||kr|j|qqWn||d}||fS(NRRQR(RtkeysR|R(RBRRRRtauxvars((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytgetargs2+s+     cCsQd|krdSd}|ddkr=|d|df}n|dj|dS(Ntf2pymultilinesRDs python moduleRP(RR(RBtk((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt getrestdoc9s  cCs1dt|dd}d|d||dfS(NiPiis /*%s %s %s*/R!(R(RPR((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytgentitleAscCs2t|tjkr+ttd|gS|gS(NcSs|||S(N((txtyR((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pytGs(RttypestListTypetreducetflatlist(R((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyREscCs"|r|ddkr|d S|S(NiR((ts((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyt stripcommaJsRcCst|tjkr.tt||d|St|tjkr\tt||d|Sxd|jD]}|dkrqmnd|kr||dkr|d|}n|}t||tjkr|jd||jt||}qm|jd|||}qmW|S(NcSs||||S(N((tdRtsepR((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyRPscSs||||S(N((RRRR((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyRRsit separatorsfors#%s#(RRRtmaptreplaceRRR(tstrtdictt defaultsepRR((s7/usr/lib/python2.7/site-packages/numpy/f2py/auxfuncs.pyRNs ,cCst|tjkr9x|D]}t||}qW|Sx}|jD]o}|ddkrbqFn||krt||tjkr||g||s                                                                                      #