Uc3@sdZddd!ZddlZejaddlZddlZddlZddlZddlZddl Z ddl Z ddl Tda da dadad d Zd Zd adadZdagZdaigt6adadadagaiadad ad a gZ!ga"ga#ga$e%a&dd Z'ej(j)Z*dd Z+de_,iZ-xdD]Z.idd6e-e.d?d@dAdBdCdDdEdFg3D]"Z1e1dGe/e1ej7dQej8j9Z?dRZ@e'ddSZAdTdUdVZBdWZCej7eBd eCeCdXfej8dEfZDej7eBd eCdYeCdYdXfej8ZEej7eBdZd[d[dXfej8d\fZFej7eBd]d^d^dXfej8d\fZGd_ZHej7eBd eHeHdXfej8d\fZIeHd`ZJej7eBd eJeJdXfej8d\fZKdaZLej7eBd eLeLdbfej8dcfZMddZNej7eBdeeNeNdbfej8dffZOej7eBd dgdgdXfej8dgfZPej7eBd dhdhdXfej8difZQej7eBd djdjdXfej8djfZRej7eBd dkdkdXfej8dkfZSej7eBd dldldXfej8dlfZTej7eBd dmdmdXfej8dmfZUej7eBd dndndXfej8dnfZVej7eBd dododXfej8dofZWej7eBd dpdpdqfej8drfZXej7eBd dsdsdtfej8dsfZYej7eBd dududXfej8dufZZej7eBd dvdvdXfej8dvfZ[ej7eBd dwdwdXfej8dwfZ\ej7eBd dxdxdXfej8dxfZ]ej7eBd dydydXfej8dyfZ^ej7eBd dzdzdXfej8dzfZ_ej7eBd d{d{d fej8d{fZ`ej7eBd d|d|dXfej8d|fZaej7eBd d}d}dXfej8ejbBd~fZcej7dejbdfZddZeej7dej8ZfddZgdZhddZidZjddZkej7dej8Zlej7dej8Zmej7dej8Znej7dZoej7dZpej7dej8ZqdZrdZsdZtdZudZvej7dej8Zwej7dej8Zxej7dej8Zyej7dej8Zzej7dej8Z{dZ|dZ}dZ~dZddZddZddZddZdZdZe%dZd e%dZe%d dZdZdZd dZdZe%e%dZej7dej8ZdZej7dj9ZddZej7dej8ZdZdZdZdZdZidZdZej7dj9ZdZdZej7dej8ZdZej7dej8Zej7dej8Zej7dej8Zej7dej8Zej7dej8ZdZidZddZd dZd dZdZd dZdZdZedkrgZgZdZdZdZdZxejdD]Zed kr& neddkr? dZnedkrZ dadanedkru dadanedkr t r e+ddndada nRedkr dan=edkr dZn(edkr da da n edkr da da danedkr! dZnedkr6 dZnedkrK dZneddkrm e*de ner dZeZnver dZeanaer y!eejejeWn'ek r Ze*deenXn ejeq Wt o to t r e+ddneeeZer|e+de deeZeedZej)eejnere'enndS(s crackfortran --- read fortran (77,90) code and extract declaration information. Usage is explained in the comment block below. Copyright 1999-2004 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/09/27 07:13:49 $ Pearu Peterson s$Revision: 1.177 $i iN(t*itfixiit tcCstj|dS(N(tpprint(totf((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pytshowscCs@ts dSts<|r)tjjtntjj|ndS(N(tverbosetquiettsyststdouttwritetfilepositiontext(tlinetflag((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pytoutmesss i2sabcdefghopqrstuvwxyz$_trealttypespectijklmntintegertinttdoubletfloattchartshorttlongtvoidtcasetwhiletreturntsignedtunsignedtiftforttypedeftsizeoftuniontstructtstatictregistertnewtbreaktdotgototswitchtcontinuetelsetinlinetexterntdeletetconsttautotlentranktshapetindextslentsizet_itmaxtmintflentfshapetstringtcomplex_doublet float_doubletstdintstderrR ttypetdefaultt_bncCs0|tkr,td|t|ft|S|S(Ns&rmbadname1: Replacing "%s" with "%s". (tbadnamesterrmess(tname((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyt rmbadname1s cCs tt|S(N(tmapRK(tnames((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyt rmbadnamescCs0|tkr,td|t|ft|S|S(Ns+undo_rmbadname1: Replacing "%s" with "%s". (t invbadnamesRI(RJ((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pytundo_rmbadname1s  cCs tt|S(N(RLRP(RM((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pytundo_rmbadnamescCsS|jd}|dkrdSd||kr3dSd||krGdS||dS(Nt.iRs\t/i(trfind(RJti((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyt getextensions s.*[.](for|ftn|f77|f)\Zs-[*]-\s*fortran\s*-[*]-s-[*]-\s*f90\s*-[*]-s-[*]-\s*fix\s*-[*]-s[^c*]\s*[^\s\d\t]cCsd}t|d}|j}d}t|r<d}nt|rWd}d}nx|dkr|r|ddkr|jr|d8}|ddkrt|d s|dd !d krd}Pqn|j}qZW|j|S( s(Check if file is in free format Fortran.itriit!s iiit&(topentreadlinet _has_f_headert_has_f90_headertstript_free_f90_starttclose(tfiletresultRRtn((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pytis_free_formats$      3 c Cs-|s*tttttttttf }n|gkr:dSt}d}d}d}t j d}t j dt j } t j d} t j d} t j d} |r|dd nd*\}} d gt t td }datj|}x|j}|sPn|jrda|jad a|} dad atjjtd }ttrt|p|t| rd an"ttrt| rdantrtantatdt ttrdpdfn|jjdd }x.|dks/|d dkr"Pn|d }qWts|j |}|r|j!dd }|j!d}|d j"dkr|d+}|j |d}|r||j!d}q||d}qqn|j#dkrd}qntd kr|dd,krC|d d!j"dkr7d|d}qkd}qn(trkt$|dkrk|d }qkn|d|krt%d| n| strt$|dkr|dd k r||d }d}d}qts~| j |}|r |j!d}n|r:|| j |j!d}d}d}n5d|d}|r]|j"}n|}|}|}|dk }qd|d}|r|j"}n|}|}|}n&tdkr| r@|d!kr@| j |r@|d"}x@|j}|st'd#Pn||}| j |rPqq|j(}n| j |}|rg|j!d}n|r|| j |j!d}d}d}n'|r|j"}n|}|}|}|dk }nt)d$t d%|j*d t| fa| j |}|r|j!d&}tjj+|rHt,|d'|d(dqtjj-tgt.}d}xU|D]M}tjj/||}tjj+|rnd }t,|d'|d(dPqnqnW|std)| qn |||} q|r|j"}n|}|}d%|j*d t| fa| j |}|r|j!d&}tjj/tjj-t|}tjj+|rt,|d'|d(dqtjj+|rt,|d'|d(dqtd)| n ||da|j0|r|dd n!|\ aaaaaaaaadS(-s Read fortran codes from files and 1) Get rid of comments, line continuations, and empty lines; lower cases. 2) Call dowithline(line) on every line. 3) Recursively call itself when statement "include ''" is met. NiRsL(?P([^"]*"[^"]*"[^"!]*|[^\']*\'[^\']*\'[^\'!]*|[^!]*))!{1}(?P.*)s*\s*include\s*(\'|")(?P[^\'"]*)(\'|")s(?P.*)&\s*\Zs(\s*&|)(?P.*)s.*?'''iRi iRtfrees Reading file %s (format:%s%s) s,strictss Rtrestitf2pyRtcRXtCt#is iHsxreadfortrancode: Found non-(space,digit) char in the first column. Are you sure that this code is in fix form? line=%sis.pyfs s.Unexpected end of file when reading multiline s6Flag sourcecodeform must be either 'fix' or 'free': %ssLine #%d in %s:"%s" RJt dowithlinetistops;readfortrancode: could not find include file %s. Ignoring. (RRs (RRhRXRiRj(1t gotnextfileR tcurrentfilenametsourcecodeformt strictf77t beginpatternR Rt dolowercasetretcompiletIRLtstrtranget fileinputt FileInputR[t isfirstlinetfilenametostpathtsplitextt is_f_fileR]t_has_fix_headerRdtbeginpattern77tbeginpattern90Rt expandtabstreplacetmatchtgrouptlowerR^R5t ExceptiontNoneRItrstript ValueErrort filelinenotisfiletreadfortrancodetdirnamet include_pathstjoinR`(tffileRkRlt saveglobalstlocaldolowercasetcontt finallinetllt commentlinet includelinetcont1tcont2t mline_marktl1t spacedigitstfintltextRWtrlt origfinallinetlctmtfnt include_dirst foundfiletinc_dirtfn1((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyR sF            0    "        !  s"\s*(?P%s(?=\s*(\b(%s)\b)))s\s*(?P(\b(%s)\b))s\s*(?P%s)\s*\Zsqcharacter|logical|integer|real|complex|double\s*(precision\s*(complex|)|complex)|type(?=\s*\([\w\s,=(*)]*\))|bytes.*s|static|automatic|undefineds([a-z]+[\w\s(=*+-/)]*?|)tfunctiontbegins [a-z\s]*?t subroutinesprogram|block\s*datas?|module(?!\s*procedure)|python\s*module|interface|type(?!\s*\()sBend|endprogram|endblockdata|endmodule|endpythonmodule|endinterfaces[\w\s]*tends>(end\s*(if|do|where|select|while|forall))|(module\s*procedure)s[\w]*?tendiftimplicitsdimension|virtualt dimensiontexternaltoptionaltrequiredtpublictprivatetintrisicsintent|depend|note|checks \s*\(.*?\).*tintentt parameters\s*\(.*tdatatcalltentrytcallfuntcommontusetcontainstformatsKthreadsafe|fortranname|callstatement|callprotoargument|usercode|pymethoddeftf2pyenhancementss2\s*(?P''')(?P.*?)(?P''')\s*\Zt multilinecCscg}xMt|jdD]6}x dD]}|j|d}q)W|j|qWdj|S(Ns@,@s(),t_t,(tmarkoutercommatsplitRtappendR(targslinetaRcRW((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyt _simplifyargss  s&\s*(?P\b[a-z]+[\w]*\b)\s*[=].*c Csd|krwtdj|p/tdj| rwx=|jdD],}|dksbt| t||qCWdS|dkrdaidt6aiit6aigt6a gttd[^"]*)\b%s\b\s*@\(@(?P[^@]*)@\)@.*\Ztbeforetargsscallfun %s(%s) result (%s)Rbscallfun %s(%s)s8crackline: could not resolve function call for line=%s. Rs"crackline:%d: No pattern for line Rs>crackline: groupcounter(=%s) is nonpositive. Check the blocks.tthissGcrackline: End group %s does not match with previous Begin group %s %sRRR(8tf2pyenhancementspatternRtmultilinepatternRtAssertionErrort cracklinet groupcountert groupnamet groupcachet grouplistt neededmoduletskipblocksuntilt f77modulenameRRtdimensionpatterntexternalpatternt intentpatterntoptionalpatterntrequiredpatterntparameterpatternt datapatternt publicpatterntprivatepatterntintrisicpatternt endifpatternt endpatternt formatpatternRqtfunctionpatterntsubroutinepatterntimplicitpatternt typespatternt commonpatternt callpatternt usepatterntcontainspatternt entrypatterntcrackline_re_1RORstmarkouterparenRuRRtcallfunpatternt analyzelineRRtprevious_contextRR t skipemptyendst expectbeginRmtignorecontains( RtresetRtflRtpatRtre_1RJtm1tm2R((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyRs                   $"              cCsd}d}x|D]z}|dkrN|d}|dkr|d}qqn5|dkr|d}|dkr|d}qqn||}qW|S(NRit(is@(@t)s@)@((RRRRh((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyR|s       RcCsd}d}d}x|D]}| s2|dkrQ|dkrQ|d}d}n| r|dkr| s{|ddkr|d}d}n^||kr|d}|dkrd}qn0||kr|dkr|d |d }qn||}qW| st||||f |S( NRiRRis'is\t@(R(RtcommaRRtccRh((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyRs(   *       cCs"|jddjdd}|S(Ns@(@Rs@)@R(R(RRW((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pytunmarkouterparenscCsj|si}n|s|S||kr)|Sx:|jD],}|dkrn|sZ||krb||||(@\(@.*?@\)@|[*][\d*]+|[*]\s*@\(@.*?@\)@|))(?P.*)\Zsx\s*(?P\b[\w$]+\b)\s*(@\(@\s*(?P[\w\s,]*)\s*@\)@|)\s*(result(\s*@\(@\s*(?P\b[\w$]+\b)\s*@\)@|))*\s*\Zs9\s*(?P\b[\w$]+\b)\s*@\(@\s*(?P.*)\s*@\)@\s*\Zs4([-+]?(?:\d+(?:\.\d*)?|\d*\.\d+))[dD]((?:[-+]?\d+)?)sA([-+]?((?:\d+(?:\.\d*)?|\d*\.\d+))[eE]((?:[-+]?\d+)?)|(\d+\.\d*))sintent\s*\(.*?\bcallback\bcCs4x-|jdgD]}tj|rdSqWdS(NR ii(tgett_intentcallbackpatternR(tvdeclR((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyt_is_intent_callbackscCst|}tj|}|rI|jd|jd|jdfStj|}|r}|jd|jddfSdgdfS(NRJRRb(RtnameargspatternRRtcallnameargspatternR(RR((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyt_resolvenameargspatterns (c< Cs&|jd}|dkr$dantr|dwkrt rtdkrtjjt j dd }t d |d a tdad t tt ttdj)ttd}q n|d kr& d }d}n|| j}||d"}t|j d}t*|dkr |d }t d?d>j)|dnd}xygt|j dD]}|j^q D]I}t+j|}|s |dkr d} q3 |j,GHt d@|| fq nt|jd} | |krL i|| dP}qPnyt8|i|}Wn3t9t:t;fk r}t.dQ||fqnXt<||| dH||\}"}#}$|| dK<|"| dX<|#| dY<|$| dZr$|)dj})n|j|)|*g|.})d}*d }+q?q?W|+d"kr|)j})|)jBd>r|)dj})n|j|)|*gni}/d ttkrttd }/nd}x|D] }0g|0D]}|j^q}0|0d d d>kr"|0d d|0d k r(|0d|d_kr|, },n|d}qW|d}||/krLi|/|D]}|j^q }i}9x|D]}0dH|0krtjdn|0tj}!|!r|!jdij|9|!jdoj.*?)\s*(\(\s*(?P[a-z-, ]+)\s*\)\s*|)\ZsDanalyzeline: could not extract info of implicit statement part "%s" sManalyzeline: could not extract types pattern of implicit statement part "%s" R R Rt-sZanalyzeline: expected "-" instead of "%s" in range list of implicit statement s^analyzeline: expected "-" instead of "%s" in range list of implicit statement (2) Rt'RSRRs>analyzeline: implied-DO list "%s" is not supported. Skipping. s=analyzeline: changing init expression of "%s" ("%s") to "%s" Rs//t_BLNK_sDanalyzeline: previously defined common block encountered. Skipping. RsT\A\s*(?P\b[\w]+\b)\s*((,(\s*\bonly\b\s*:|(?P))\s*(?P.*))|)\s*\Ztlisttnotonlytonlys;\A\s*(?P\b[\w]+\b)\s*=\s*>\s*(?P\b[\w]+\b)\s*\Ztlocals0analyzeline: Not local=>use pattern found in %s RLs0analyzeline: Could not crack the use statement. Rtusercodes-analyzeline: No context for multiline block. s+analyzeline: No code implemented for line. (sbeginscallscallfunstype(sbeginscallscallfun(s interfaces block data(scallscallfun(scallscallfun(sfunctionR(scallscallfun(s dimensionsintentsoptionalsrequiredRRsprivateR(Rsprivate(soptionalsrequiredRRsprivateR(sf2pyenhancements(ERRRRRRR|R}tbasenameRnRRRmRRRRRsRRuR RNRR^tremoveRRRRKRRtcopytdeepcopyR8RRtcracktypespec0t updatevarsRtfindRRR5t namepatternt groupdictRRItget_parameterstdetermineexprtypeRR5t real16patterntfinditertstartRRtevalt SyntaxErrort NameErrort TypeErrortreprttypespattern4implicitt cracktypespecRwtordtchrt startswithREtappendmultiline(<RRRRtnewnameRJRRbtxt needmodulet needinterfacetitRttRtselectortattrtedeclt last_nameRRUtpltchR/RtaptinitexprtparamsttttvtmsgtimplRRt kindselectt charselectRRWtbegctendcRtdltilRtfctinpRhRRtjtllentcltbntolt commonkeytmmtisonlyRR.tgc((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyRs               7               0      '0  #0 ;  < $-    7 $   !!   5               2    %" E   !   %-     % 2 (&             ?*    41               9  !  ,  +    !      cCsQd|kri|dcracktypespec0: no kind/char_selector pattern found for line. R0RtlogicalRt characterRERR$s::ii(scomplexRRzsrealR{stype( RRsRRuR^Rt selectpatternRRRBRR R@(RRRYRZRR.RRU((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyR>s,        s+\s*(?P\b[\w]+\b)\s*(?P.*)\s*\ZsC\s*(\(\s*(kind\s*=)?\s*(?P.*)\s*\)|[*]\s*(?P.*?))\s*\Zs3\s*(\((?P.*)\)|[*]\s*(?P.*))\s*\Zs\s*(kind\s*=\s*(?P.*?)\s*(@,@\s*len\s*=\s*(?P.*)|)|(len\s*=\s*|)(?P.*?)\s*(@,@\s*(kind\s*=\s*|)(?P.*)|))\s*\Zs\s*(@\(@\s*(?!/)\s*(?P.*?)\s*@\)@\s*[*]\s*(?P.*?)|([*]\s*(?P.*?)|)\s*(@\(@\s*(?!/)\s*(?P.*?)\s*@\)@|))\s*(=\s*(?P.*?)|(@\(@|)/\s*(?P.*?)\s*/(@\)@|)|)\s*\ZcCs|j}t|dkr"|S|d}xmtdt|dD]R}||dkr||ddksF||ddkrqFn|||}qFW||d}|S(NiiRs ()[]{}=+-/* i(R^R5Rw(texprtexpr2RU((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyt removespacess   (cCsd}d}d}d}d}x|D]}|dkrY|d krY||}|}q%n|dkr|d kr|}idd6dd6|}n||kr|d}nA||kr|d}n(|dkr|dkr|d}q%n||}|}q%W|S( NRis't"s\iRs@_@(s\s'R(s'R((RRRRtcc1tcbRh((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pytmarkinnerspacess.      c Csd}t||\}}}|rgt|jdD]}|j^q:}g} tjd} x\|D]T} | j| } | r| jdj } | | t | } n| j | qnW| }ngt|jdD]}|j^q}g}x{|D]s}xjgtt t |ddjdD]}|j^q;D](}|rQ|j |jddqQqQWq Wx|D]}tj|} | std| qnt| jd }i}|ttd kr|ttd |j}d |k}|r||d |r>|r'||d[a-zA-Z]+)RGRRs@ @s@_@s;updatevars: no name pattern found for entity=%s. Skipping. RJRRsIupdatevars: attempt to change the type of "%s" ("%s") to "%s". Ignoring. R sVupdatevars: attempt to change the kindselector "%s" of "%s" ("%s") to "%s". Ignoring. R sEupdatevars:%s: attempt to change empty charselector to %r. Ignoring. sVupdatevars: attempt to change the charselector "%s" of "%s" ("%s") to "%s". Ignoring. RsMupdatevars: attempt to change the typename of "%s" ("%s") to "%s". Ignoring. R R$R5tarraytinitt2RRs-updatevars: "%s %s" is mapped to "%s %s(%s)" s dimension(%s)i Ris5updatevars:%s: attempt to change %r to %r. Ignoring. R0RRzRRR{R sTupdatevars: attempt to change the init expression of "%s" ("%s") to "%s". Ignoring. s?updatevars: could not crack entity declaration "%s". Ignoring. R+(scomplexsintegerslogicalsreal(RRNRRR^RsRtRRRR5RRRRRARRKRRR<RRItlenarraypatternRRBR (RRYR t entitydeclR\RfRgRRTRRhRRtsteltel1R/te1tenameR[tnot_has_typespecRRtd1tlktdmtdm1((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyR?s.  . G$    ))" ))"        $         !"  c Csud}d}d}|rh|dkrtj|}|sLtd| dS|j}|d|d<|d=x(|jD]}||sz||=qzqzWx|jD]\}}t|||\w+)\s*\)RJs'cracktypespec: no typename found in %s s'cracktypespec: no selector used for %s (scomplexsintegerslogicalsreal(RR RRRBRtitemsRKR tlenkindpatternRRsRuR( RRYRfRgRRRURR((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyRNNs\         cCs9|si}n|s|Sd|kr6|g|d<|S|rP|dj|n||dkrd|S|dkrd|dkr|dj|n|dkrd|dkr|dj|nq|dkrd|dkr|dj|nA|dkr$d|dkr$|dj|n|dj||S(NR R't automaticRR(R(RRZR((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyR|s*   cCsy|si}n|s|Sd|kr3||d<|Sx?|jD]1}|s\||dkr@|||d|tddj|d||}Pq>qs|j||d}t|}d}qsW|S(NtdependiisTsortvarnames: failed to compute dependencies because of cyclic dependencies between s, s (RRR5RIR(RtindeptdepRcRcRURtw((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyR\s8          c Cst|s|Sg}x|djD]}g}x|d|D]|}tjd|tj}|rg}|jdrgt|jdjdD]}|j^q}n|jdj}||dkr<d|d|kr|d|dj dd j |qxdd j |g|d|d.*?)\b\s*(\((?P.*?)\)|)\s*\Ztdimss@,@RJRR s dimension(%s)RsNanalyzecommon: failed to extract "[()]" from "%s" in common /%s/. t commonvars( t hascommonRRsRRuRRRR^RRRI( RRRtcomvarsR/RRRTRc((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyR~s: :)%(   cCsQt|g}x:|dD].}||d<|ddkr|dk r]|d|kr]qn |d}|dtkr}qntr|dtkrqqn|}t||d|d }|dd kr|d rd |krqqn|djd d dkrtj|q|ddkr<|dt|d|r$d|j dd|j d f}|j|}qWt|ii} |j|}x>|rd|j dd|j d f}|j|}qIWt|ii| } |j|}x>|rd|j dd |j d f}|j|}qWt|ii}|j|}x>|rNd|j dd |j d f}|j|}qWt|ii} | d | |kr| d | | kr| | |fSWnnXPqbqbWd S( Niis\w\s*\([^)]*\bs\bs(?P.*?)\bs\b(?P.*)s%s(%s)%sRR$g?g?(NNN( RRRtgetlincoef_re_1RR5RstsearchRtRuR( R/txsetRhtlen_eRTRRRteeRRtc2((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyt getlincoefsV    % % % %(s \A[a-z]\w*\ZRc CsB g}y!|jt|diiWn|j|dnXy!|jt|diiWn|j|dnXt|dtdkrd|d}|dkrt|d}qx|dkrd|d| f}qxd|d|f}nvt|dtdkr`d|d}|dkrId|d}qxd||df}nd|d|df}yt|ii ddfSWnnXt|d|t|d|}}d|d|dgkr5 |d|dfdkr|d|dd ddfS|d|dd}|dd|df}|d||df}|ddkr'|d|kr'|dkrd |d|d| f|dd | |dffS|rd |d|d|f|dd ||dffSd |d|df|dd|dfSn|ddkr|d|kr|dkrd |d |d| f|dd | |d ffS|rd |d |d|f|dd ||d ffSd |d |df|dd|d fSn|d|dkr|d|kr|d|d} | sA| ddfS|dkr{d | |d| f|dd | | ffS|rd | |d|f|dd || ffSd | |df|dd| fSn|d|dkodknrt|d} | |kr=t| r0td| nd| } n|dkr`d|d| f}q2 |dkrd|d| | f}q2 d|d| |f}q5 |ddkrt|d} | |krt| rtd| nd| } n|ddkr n1|ddkr'd| } nd|d| f} |dkrP| }q2 |dkrpd| | f}q2 d| |f}q5 |ddkrt|d} | |krt| rtd| nd| } n|ddkrd| } nY|ddkrd| } n<|ddkr;d|d | f} nd|d| f} |dkrd| }q2 |dkrd| | f}q2 d| |f}q5 t|d} | |krt| rtd| nd| } n|ddkrd| } nY|ddkrd| } n<|ddkr?d|d | f} nd|d| f} t|d} | |krt| rtd| nd| } n|ddkrn1|ddkrd| } nd|d| f} |dkrd| | f}q5 |dkr d| | | f}q5 d| | |f}n|ddfS(Niis%s-%ss%s+%ss-(%s)s%s-(%s)s %s-(%s)+1is %s * %s - %ss +%s)/(%s)s %s * %s + %ss -%s)/(%s)s%s * %ss)/(%s)s# getarrlen:variable "%s" undefined s(%s)s%s-%s-%ss%s-%s+%sis-%ss%s*%ss+%ss+%s*%ss-%s*%ss%s%ss%s%s-%ss%s%s+%s(ii(RRRERvRRt_varname_matchR( RjRtstartedltp1R.Rtd2RRRhRtc1((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyt getarrlens!!   '  64.  860$ .,&$                             s\b[a-z][\w$]*\bcCs||kr||jdg}d||krt|| rxJtj||dD].}||kr[||kr[|j|q[q[Wnxr|D]Q}xH|j|gpt|||D]"}||kr|j|qqWqWntd| g}|||<|S(NRR s,_get_depend_dict: no dependence info for %s (Rtisstringt word_patterntfindallRt_get_depend_dictR(RJRtdepstwordstwordR((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyRgs !  cCs7|j}i}x|D]}t|||qW|S(N(RR(RRMt depend_dictRc((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyt_calc_depend_dictzs   cCst|}g}x5|jD]'}||s|j|||=qqWxs|rxf|jD]X\}}g|D]}||krs|^qs}|s|j|||=q`|||.*)\s*\)s-\bselected_int_kind\s*\(\s*(?P.*)\s*\)R s.false.tFalses.true.tTrues kind("\1")sselected_int_kind(\1)RiR.R/RRiRis@,@sget_parameters: got "%s" on %s s2get_parameters:parameter %s does not have value?! (s.false.sFalse(s.true.sTrue(R<RRRRRsRtRut islogicalRRtsubt isintegerRRtisdoubleR5RERFRGRRt iscomplexRRHRRRRERP(Rt global_paramsRatg_paramsRJtfunct param_namesRctkind_retselected_int_kind_reRctreplRbRRRdtnl((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyRCs`  $     E  ,   cCs|dkrdSt||S(Ns(:)s(*)R(s(:)s(*)R(t _eval_scalar(tlengthRa((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyt _eval_lengths s\d+_cCst|r"|jdd}nytt|i|}WnGttfk rX|Stk r}td|||jfnX|S(NRis,"%s" in evaluating %r (available names: %s) ( t_is_kind_numberRRvRHRJRIRRIR(tvalueRaRd((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyRs c5 Cst|t|\}}tj|d}|ddkr`|d|kr`i||dg||d||dkrnd?||dkrn||djd>qnq) |dPkr) | rn||krN||#krh||dj|qhqk||d|#||d||dkrd?||dkr||djd>nd||krqg||d|jD]0}||dkrd||kr||d|d.*?)\bs\b(?P.*)RR$s@:@it1s1 * is/(1)R7soanalyzevars: character array "character*%s %s(%s)" is considered as "character %s(%s)"; "intent(c)" is forced. RRhs'analyzevars: charselector=%r unhandled.Rs.*?\bs\bR s %s%s(%s,%s)%ss %slen(%s)%ss%s%s(%s,%i)%s==%ss%slen(%s)%s>=%sRRRbR*tpuret recursiveRRs'analyzevars: prefix (%s) were not used R'Rs python modules block dataRRRRE(NNNNN(RR (smodules pythonmodules python modules block data(s subroutinesfunction(1RRR<RRRtKeyErrorRCRRsRtRRGRRuRRRvRHtreverseRR^RRRRNRR5Rt isintent_ct isstringarrayRIRtl_ort isintent_intisintent_inouttisintent_inplaceRRRtisscalarRRRR>RNtisintent_callbackt isintent_auxtextend(5RRRRtgenRcRtsvarsRRRat dep_matchest name_matchRcRtln0Rt savelindimsRZtdimRRRRRTRhR.RtpRjtdit shape_macroRRUtnitddepstadtpdRWtaaRtprtispuretisrectpr1RRYR[RfRgRt neededvarsRJ((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyRsj   (       + "$  %"  5   ;  5 ;    1    #"     & ,     . $ $ '$   '  )"    -        s\A[a-z]+[\w$]*\Zc Cst|t|\}}d|kr5g|d\} } x/| D]'}||dkri|d|[\w]+)|)\Zs+\A[+-]?[\d.]+[\d+-de.]*(_(P[\w]+)|)\Zs \A\(.*\)\Zs\A(?P\w+)\s*\(.*?\)\s*\ZcCst|tdkr#idd6St|tdkrFidd6St|tdkriidd6St|tikst| |S(NiRRgRyR0(RER(RW((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyt_ensure_exprdictd s   %c Csc||krt||S|j}tj|r@idd6Stj|}|rd|jkr|jdrtd| nidd6Stj|}|rd|jkr|jdrtd| nidd6Sx{ddd d gD]g}x^gt |d |j d |d D]}|j^q&D] }||kr<t||Sq<WqWi}t j|rt |d d!||}nt j|}|r|jd}t |jd||}|rd|kr|d=n|s|d|krt||dSqn|ddkrGidd6id d 6d6S|s_td| n|S(NR0RRJs:determineexprtype: selected kind types not supported (%s) RRt+R2RRSRRiiR is'"R{R s>determineexprtype: could not determine expressions (%s) type. (R8R^tdetermineexprtype_re_1Rtdetermineexprtype_re_2RBRRtdetermineexprtype_re_3RRtdetermineexprtype_re_4RDtdetermineexprtype_re_5( R}RtrulesRtopRTR/RXtrn((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyRDn sH   ! ! C  s cCst|d}t|trxl|D]d}|rw|ddkrw|dtkrXq&ntrw|dtkrwq&qwn|t||}q&W|Sd}d}d}|d}|dkrdSg}d|kr|d}nd|krO|d} g|dD]} t| | s| ^q}|ddks6|rOd d j|}qOnd} d |krx=|d jD](} d | |t | |d | f} qrWn|j d g} |dkrd| kr| j dn| rd| |t d j| |f} nd}d|kr4t |d|t }nd}d|kr`t |d|t }n|dkrud}nd}d|krd|d}|d|kr|j|dqnt|d|t }t||d||t } d}d|krd|d}nd|krvd}xA|djD]/\} }d||t | d j|f}q6W||}n|dkr|dkrd}nd|||||||| || |||||f}|S(NRRRRRJR!RRs(%s)RRs %s%s%s %sRtcallbacks%s%sintent(%s) %sRRR(Rbs result (%s)RR#s! in %sRs%s%sentry %s(%s)s block dataR%s%%s%s%s %s%s%s %s%s%s%s%s%s%send %s %s(sfunctions subroutine(Rt isinstanceR5RRtcrack2fortrangenRRRttabcharRR;t use2fortrantcommon2fortranRt vars2fortranR(RRRRR*RJRRtalRRRRt intent_lstRRRbRtmesst entry_stmtsRU((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyRD s         - )       $  7cCssd}xf|jD]X}|dkrHd||dj||f}qd|||dj||f}qW|S(NRR4s %s%scommon %sRs%s%scommon /%s/ %s(RR(RRRR((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyRG s  #'cCs]d}xP|jD]B}d|||f}||ikre|r|ddkr|d }qqnd||kr||drd|}nd||kr2||dr2d}x{||djD]b}|||d|krd |||f}d}qd |||||d|f}d}qWn|r|ddkr|d }qqW|S( NRs %s%suse %s,iRR7s%s,only:RLRs%s%s%ss %s%s%s=>%s(R(RRRRRhR((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyRF s(   " cBse|d}g}xN|D]F}yd|dUWnek rFd}nX|r|j|qqW|S(NRsc = isintent_%s(var)i(RJR(RRRRRh((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyttrue_intent_list s    cCst|d}g}x.|D]&}||dkr|j|qqWd|krxN|dD]?}||kr||kr|j|qq^td|q^Wnd|kr|j|dnx0|jD]"}||kr|j|qqWx|D]}d||krwx`||dD]M}||kr#d||kr#|||dkr#td||fq#q#Wnd|krh||dkrht||rd |||f}nd |||f}t||rd |||f}n||krd ||krqnd }x<|dD]0} || dkr%| ddkr%d}Pq%q%W|rhqqhn||krt|td|qn||dkr|ddk rqnd ||kr7d||krd||dkr||krd |||f}qqnt||td|qn||d } | dkr|d||kr|d| ||df} ni} d||kr||d} n!d||kr||d} nd| kr| dd7krd| | df} qd| | df} nsd | kr^d!| | d f} d"| krQd#| | d"f} qd$| } n#d"| krd%| | d"f} nd&} d||krg} x2||dD]"}|d8kr| j|qqW| rd'| d(j | f} d(} qnd)||kr:d*| | d(j ||d)f} d(} nd+||krt ||}|rd,| | d(j |f} nd(} nd-||krd.| | d(j ||d-f} d(} nd||krd/| | d(j ||df} d(} nd0||kr}||d0}||d d9krgy&t |}d3|j |j f}WqgqgXnd4| ||f} nd5| |f} d6||| f}qW|S(:s& TODO: public sub ... RRRs7vars2fortran: Confused?!: "%s" is not defined in vars. R+RsHvars2fortran: Warning: cross-dependence between variables "%s" and "%s" Rs%s%sintent(callback) %ss%s%sexternal %ss%s%soptional %sRiRRJRRis/vars2fortran: No definition for argument "%s". R Rs-vars2fortran: No typespec for argument "%s". RERs%s(%s)R R RR s%s*(%s)s%s*%sR5s %s(len=%sRs %s,kind=%s)s%s)s %s(kind=%s)Rs%s %sRRs%s%sdimension(%s)Rs%s%sintent(%s)Rs %s%scheck(%s)s%s%sdepend(%s)R R0sdouble complexs(%s,%s)s %s :: %s=%ss%s :: %ss%s%s%s(RR (sexternal(scomplexsdouble complex(RRRIRRRt isoptionalRRRRMRHRtimag(RRRRRtnoutRR.RRtvardefRYRhRZRRRc((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyRH s        0    !$        $  $ $  cCs^tddt|ttddgattd}tddt|}t|S(NsReading fortran codes... isPost-processing... sPost-processing (stage 2)... (RRRRRRR(tfilestpostlist((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyt crackfortranx s     cCs,t|d}d}dt}|||S(Ns sE! -*- f90 -*- ! Note: the context of this file is case sensitive. sb ! This file was auto-generated with f2py (version:%s). ! See http://cens.ioc.ee/projects/f2py2e/ (RDt f2py_version(Rtpyftheadertfooter((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyt crack2fortran s t__main__R s-quiets-verboseis-fixs?Use option -f90 before -fix if Fortran 90 code is in fix form. s-skipemptyendss--ignore-containss-f77s-f90Res-hs-shows-mR2sUnknown option %s s IOError: %s s Warning: You have specifyied module name for non Fortran 77 code that should not need one (expect if you are scanning F90 code for non module blocks but then you should use flag -skipemptyends and also be sure that the files do not contain programs without program statement). s Writing fortran code to file %s R(t__doc__t __version__tversionRUR R@RxRsRR|R<tauxfuncsRpRoR RREt pyffilenameRRRRrtdebugRRRRRRRRmR Rnt skipfunctionsRRRRRRRDR RIRt _MAXCACHERRhRHRORcRKRNRPRQRVRtRuRRRR\R]RR_RdRtbeforethisaftert fortrantypesRRMRRt groupbegins77Rt groupbegins90Rt groupendsRtendifsRRRRRRRRRRRRRRRRRRRtSRRRRRRRR RR|RRRERRRR RRRR>RAR R RRRRR?RNRRRRRRRRRRRRRRRRRRRRRRRRRCRR RRR2RR:R;R<R=R>R8RDRDRGRFRMRHRTRYt__name__RRtfuncsRtf2tf3t showblocklisttargvRRZR`RtIOErrortdetailRvRSRV(((s;/usr/lib/python2.7/site-packages/numpy/f2py/crackfortran.pyts                        +-+++ +++++++++++++++++++++2         } .     "_ " !   , e    7  A + ( C  w