Ñò
ôØÏIc        
   @   s¬   d  Z  d d d !Z d d k Z e i Z d d k Z d d k Z e i i Z e i	 i Z
 e i Z d d k Td d k Z d d k Z d d k l Z d d „ Z d	 „  Z d S(
   sL  

Build common block mechanism for f2py2e.

Copyright 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
s   $Revision: 1.19 $i
   iÿÿÿÿN(   t   *(   t	   rmbadnamei   c   
      C   s  g  } t  |  ƒ on x¤ |  d i ƒ  D]U } h  } x( |  d | D] } |  d | | | <q? W| i | |  d | | f ƒ q$ Wn: t |  ƒ o, x) |  d D] } | t | d ƒ } q™ Wn | oU g  } g  } xA | D]9 }	 |	 d | j o" | i |	 d ƒ | i |	 ƒ qÔ qÔ W| S| S(   Nt   commont   varst   bodyi    (   t	   hascommont   keyst   appendt   hasbodyt   findcommonblocks(
   t   blockt   topt   rett   nR   t   vt   bt   trett   namest   t(    (    sG   C:\graphics\Tools\Python26\Lib\site-packages\numpy\f2py\common_rules.pyR	   !   s.      &  c         C   s  h g  d 6g  d 6d g d 6} d g } | d „ } d g } | d „ } d g } | d „ } d g } | d	 „ }	 xJt  |  ƒ D]<\ }
 } } |
 i ƒ  } g  g  } } x= | D]5 } t | | ƒ o | i | ƒ q® | i | ƒ q® W| o- t d
 |
 d i | ƒ d i | ƒ f ƒ n t d |
 d i | ƒ f ƒ | d |
 ƒ | d ƒ x$ | D] } | t i | | ƒ ƒ qWW|
 d j o | d d i | ƒ ƒ n | d |
 d i | ƒ f ƒ | d d i | ƒ ƒ | d ƒ | d |
 ƒ g  } x´ | D]¬ } t i	 | | ƒ } t i
 | } t i | | | ƒ } | d o | i d | d ƒ n | i d ƒ | d i ƒ  } | p
 d } n | d | | d | | f ƒ qøW| d ƒ t | ƒ } d i t d „  | ƒ ƒ } | d |
 | f ƒ | d ƒ x" | D] } | d |
 | f ƒ qþW| d ƒ d  | j o
 d! } n d" } | d# | | |
 i ƒ  d i d$ g t | ƒ ƒ f ƒ | d% |
 ƒ | d& | | |
 i ƒ  |
 f ƒ | d' ƒ | d( |
 |
 |
 f ƒ |
 i d  d) ƒ } |	 d* | ƒ |	 d+ ƒ x‰ | D] } |	 d, t i | | | ƒ ƒ t | | ƒ oL | | d- } t | ƒ t g  ƒ j o d. i | ƒ } n |	 d/ | ƒ qùqùW|	 d0 ƒ | d i d1 |
 d i t d2 „  | | ƒ ƒ f ƒ q W| | d <| | d <| d3 | d4 <t | d ƒ d5 j o d | d <n | | d3 f S(6   Nt   commonhookst   initcommonhookss   "COMMON blocks:\n"t   docst    c         S   s   d | d |  f | d <d  S(   Ns   %s
      %si    (    (   t   linet   s(    (    sG   C:\graphics\Tools\Python26\Lib\site-packages\numpy\f2py\common_rules.pyt   fadd9   s    c         S   s   d | d |  f | d <d  S(   Ns   %s
%si    (    (   R   R   (    (    sG   C:\graphics\Tools\Python26\Lib\site-packages\numpy\f2py\common_rules.pyt   cadd;   s    c         S   s   d | d |  f | d <d  S(   Ns   %s
%si    (    (   R   R   (    (    sG   C:\graphics\Tools\Python26\Lib\site-packages\numpy\f2py\common_rules.pyt   iadd=   s    c         S   s   d | d |  f | d <d  S(   Ns   %s
%si    (    (   R   R   (    (    sG   C:\graphics\Tools\Python26\Lib\site-packages\numpy\f2py\common_rules.pyt   dadd?   s    sF   		Constructing COMMON block support for "%s"...
		  %s
		  Hidden: %s
t   ,s7   		Constructing COMMON block support for "%s"...
		  %s
s    subroutine f2pyinit%s(setupfunc)s   external setupfunct   _BLNK_s	   common %ss   common /%s/ %ss   call setupfunc(%s)s   end
s'   static FortranDataDef f2py_%s_def[] = {t   dimss   (%s)s   -1s   	{"%s",%s,{{%s}},%s},t   ranks
   	{NULL}
};c         S   s   d  |  S(   s   char *(    (   R   (    (    sG   C:\graphics\Tools\Python26\Lib\site-packages\numpy\f2py\common_rules.pyt   <lambda>a   s    s   static void f2py_setup_%s(%s) {s   	int i_f2py=0;s!   	f2py_%s_def[i_f2py++].data = %s;t   }t   _t	   F_FUNC_USt   F_FUNCs3   extern void %s(f2pyinit%s,F2PYINIT%s)(void(*)(%s));s   char*s    static void f2py_init_%s(void) {s*   	%s(f2pyinit%s,F2PYINIT%s)(f2py_setup_%s);s   }
sP   	F2PyDict_SetItemString(d, "%s", PyFortranObject_New(f2py_%s_def,f2py_init_%s));s   \_s&   \subsection{Common block \texttt{%s}}
s   \begin{description}s   \item[]{{}\verb@%s@{}}t   notes   
s   --- %ss   \end{description}s   "	/%s/ %s\n"c         S   s   |  | S(    (    (   R   t   d(    (    sG   C:\graphics\Tools\Python26\Lib\site-packages\numpy\f2py\common_rules.pyR!   }   s    i    t   latexdoci   (   R	   t   lowert   isintent_hideR   t   outmesst   joint	   func2subrt   var2fixfortrant	   capi_mapst   getctypet
   c2capi_mapt
   getarrdimst   stripR   t   mapt   uppert   lent   replacet   getarrdocsignt   hasnotet   type(   t   mR   t   fwrapR   t   chooksR   t   ihooksR   t   docR   t   namet   vnamesR   t
   lower_namet   hnamest   inamesR   t   idimst   ctt   att   dmt   dmst   inames1t   inames1_tpsR%   t   tnameR&   (    (    sG   C:\graphics\Tools\Python26\Lib\site-packages\numpy\f2py\common_rules.pyt
   buildhooks6   s¨    				   -
 
   
"

 

!

  
7

 (   t   __doc__t   __version__t   versiont   f2py_versiont   pprintt   syst   stderrt   writet   errmesst   stdoutR+   t   showt   auxfuncsR/   R-   t   crackfortranR   R	   RM   (    (    (    sG   C:\graphics\Tools\Python26\Lib\site-packages\numpy\f2py\common_rules.pyt   <module>   s   		
