§
    Ëãßcî$  ã                   ól   — d Z ddlZddlmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZ d	d„Zd
d„Zd
d„Zd„ ZdS )aW  

Rules for building C/API module with f2py2e.

Copyright 1999,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: 2004/11/26 11:13:06 $
Pearu Peterson

é    Né   )ÚgetfortrannameÚ
isexternalÚ
isfunctionÚisfunction_wrapÚisintent_inÚisintent_outÚislogicalfunctionÚismoduleroutineÚisscalarÚissubroutineÚissubroutine_wrapÚoutmessÚshowc                 ó  — |€|}|| vr#t          | ¦  «         t          d|z  ¦  «         dS d| |         vr)t          | |         ¦  «         t          d|z  ¦  «         dS | |         d         }|dk    rd| |         v r|›d| |         d         ›d�}i }d}d	| |         v r| |         d	         }d
}nd| |         v r| |         d         }d}d|v rK|r"|d         dv rd|z  }nu|›d|›d|d         ›d�}nc|d         dv r|›d|d         ›d�}nJ|›d|d         ›�}n<d|v r&|›d|d         ›�}d
|v r|›d|d
         ›d�}nd|z  }nd
|v r|›d|d
         ›d�}|›d|›�}d| |         v r'|›dd                     | |         d         ¦  «        ›d�}|S )Nz1var2fixfortran: No definition for argument "%s".
Ú Útypespecz/var2fixfortran: No typespec for argument "%s".
ÚtypeÚtypenameú(ú)ÚkindselectorÚkindÚcharselectorÚlenÚ*)r   ú:ú(*)z	%s(len=*)ú=)r   r   z*(z(len=z,kind=z%s)z(kind=ú Ú	dimensionú,)r   r   Újoin)ÚvarsÚaÚfaÚf90modeÚvardefÚselectorÚlks          ú6/usr/lib/python3/dist-packages/numpy/f2py/func2subr.pyÚvar2fixfortranr,      sN  € Ø	€zØˆØ�€}€}ÝˆT‰
Œ
ˆ
ÝÐDÀqÑHÑIÔIÐIØˆrØ˜˜aœÐ Ð ÝˆT�!ŒW‰ŒˆÝÐBÀQÑFÑGÔGÐGØˆrØ�!ŒW�ZÔ €FØ�ÒÐ˜J¨$¨q¬'Ð1Ð1Ø#˜V˜V T¨!¤W¨ZÔ%8Ð%8Ð%8Ð9ˆØ€HØ	€BØ˜˜aœÐ Ð Ø˜”7˜>Ô*ˆØˆˆØ	˜4 œ7Ð	"Ð	"Ø˜”7˜>Ô*ˆØˆØ
ˆh€€Øð 		;Ø˜Œ}Ð 1Ð1Ð1Ø$¨Ñ/��à(.¨¨°°°°H¸S´M°M°MÐB��à˜Œ} 
Ð*Ð*Ø&, f f¨h°s¬m¨m¨mÐ<��à$* F F¨H°S¬M¨MÐ:��à�HÐÐØ$* F F¨H°U¬O¨OÐ<ˆFØ˜Ð!Ð!Ø*0¨&¨&°(¸6Ô2BÐ2BÐ2BÐC��à &Ñ)��Ø�xÐÐØ&, f f¨h°vÔ.>Ð.>Ð.>Ð?ˆFà˜˜  Ð#€FØ�d˜1”gÐÐØ#˜V˜V S§X¢X¨d°1¬g°kÔ.BÑ%CÔ%CÐ%CÐ%CÐDˆØ€Mó    c           	      ó	  ‡— t          | ¦  «        sJ ‚g Š| d         }| d         D ]Š}| d         |         }t          |                     dg ¦  «        ¦  «        D ]V\  }}|dk    rKd|›d|›�}t          ddg¬	¦  «        }d
|›d|›d�|d<   ‰                     |¦  «         |||<   ||d         |<   ŒWŒ‹| d                              ‰¦  «         t          ‰¦  «        }	dg}
|
fd„}| d         }t          | ¦  «        }t          | ¦  «        }d|z  }||vr ||         ||<   |g| d         dd …         z   }n|g| d         z   }t          ||d|¦  «        }|d d…         dk    rJ|rd|dd …         z   }nd|dd …         z   }||         d         }|                     dd¦  «        dk    rd|d<   | 
                    d|¦  «        }d }d                     |¦  «        }|r5 |d| d         ›d|›d|›d�¦  «         |s |d | d         ›d!|›�¦  «         n> |d"|›d|›d�¦  «         |	s* |d#|z  ¦  «         | 
                    dd¦  «        d$z   |z   }|	rT| d%                              d&¦  «        D ]8}|                     ¦   «                              d ¦  «        rd'|vr ||¦  «         Œ9|dd …         }g }|D ]:}t          ||         ¦  «        r# |d#|z  ¦  «         |                     |¦  «         Œ;|D ]L}||v rŒt!          ||         ¦  «        r0 |t          |||¬(¦  «        ¦  «         |                     |¦  «         ŒM|D ]L}||v rŒt#          ||         ¦  «        r0 |t          |||¬(¦  «        ¦  «         |                     |¦  «         ŒM|D ]"}||v rŒ |t          |||¬(¦  «        ¦  «         Œ# ||¦  «         |� ||¦  «         |	r<|rn9 |d)¦  «          || d%                              ¦   «         ¦  «          |d*¦  «         d                     ˆfd+„|D ¦   «         ¦  «        }|s8t%          | ¦  «        r ||›d,|›d-|›d.�¦  «         n ||›d/|›d-|›d�¦  «         |r |d0| d         ›d|›�¦  «         n |d1¦  «         |
d2         S )3Nr$   Úargsr!   r   Úf2py_Ú_dÚintegerÚhide©r   Úintentúshape(ú, r   r   r   c                 ó&   — |d         ›d| ›�|d<   d S ©Nr   z
      © ©ÚlineÚrets     r+   Úaddzcreatefuncwrapper.<locals>.add^   ó   € Ø#& q¤6 6 6¨4¨4Ð0ˆˆA‰ˆˆr-   Únamez
%sf2pywrapr   z
@@@NAME@@@é   zcharacter*(*)zcharacter(len=10)zcharacter*10r   r   r   Ú10úsubroutine f2pywrap_Ú
modulenameÚ_ú (úuse ú	, only : úsubroutine f2pywrapúexternal %sr    Úsaved_interfaceú
Ú__user__©r'   Ú	interfaceúend interfacec                 ó   •— g | ]}|‰v¯|‘Œ	S r:   r:   ©Ú.0r%   Ú
extra_argss     €r+   ú
<listcomp>z%createfuncwrapper.<locals>.<listcomp>­   ó#   ø€ Ð>Ð>Ð>˜Q¨!°:Ð*=Ð*=�qÐ*=Ð*=Ð*=r-   z = .not.(.not.r   z))z = úend subroutine f2pywrap_Úendr   )r   Ú	enumerateÚgetÚdictÚappendÚextendÚboolr   r   r,   Úreplacer#   ÚsplitÚlstripÚ
startswithr   r   r   r
   )ÚroutÚ	signaturer$   r%   ÚvÚiÚdÚdnÚdvÚneed_interfacer=   r>   r@   Úfortrannamer'   Únewnamer/   Úl_tmplÚ
charselectÚl1ÚrlÚsargsr<   Údumped_argsrT   s                           @r+   Úcreatefuncwrapperrs   J   s  ø€ Ý�dÑÔÐÐÐà€JØ�Œ<€DØ�&Œ\ð 	'ð 	'ˆØ�ŒL˜ŒOˆÝ˜aŸeše K°Ñ4Ô4Ñ5Ô5ð 	'ð 	'‰DˆAˆqØ�CŠxˆxˆxØ&' a a¨¨Ð+�Ý 9°f°XÐ>Ñ>Ô>��Ø-.¨Q¨Q°°°Ð2��3‘Ø×!Ò! "Ñ%Ô%Ð%Ø��R‘Ø$&��+”˜qÑ!øð	'ð 	ˆ„L×Ò˜
Ñ#Ô#Ð#Ý˜*Ñ%Ô%€Nàˆ$€Càð 1ð 1ð 1ð 1à�Œ<€DÝ  Ñ&Ô&€KÝ˜dÑ#Ô#€GØ˜dÑ#€Gà�dÐÐØ˜Tœ
ˆˆW‰Øˆy˜4 œ<¨¨¨Ô+Ñ+ˆˆàˆy˜4 œ<Ñ'ˆå˜D $¨°gÑ>Ô>€FØˆcˆrˆc„{�oÒ%Ð%Øð 	2Ø(¨6°"°#°#¬;Ñ6ˆFˆFà# f¨R¨S¨S¤kÑ1ˆFØ˜$”Z Ô/ˆ
Ø�>Š>˜#˜rÑ"Ô" eÒ+Ð+Ø"ˆJ�s‰Oà	�Š˜ gÑ	.Ô	.€BØ	€Bà�IŠI�d‰OŒO€EØð 	FØˆˆØ�,ÔÐÐ    u u uð.ñ 	/ô 	/ð 	/àð 	IØˆCˆC t¨LÔ'9Ð'9Ð'9¸;¸;ÐGÑHÔHÐHøàˆˆ¨D¨D¨D°%°%°%Ð8Ñ9Ô9Ð9Øð 	FØˆC� Ñ-Ñ.Ô.Ð.Ø—’ ¨bÑ1Ô1°CÑ7¸+ÑEˆBàð ØÐ*Ô+×1Ò1°$Ñ7Ô7ð 	ð 	ˆDØ�{Š{‰}Œ}×'Ò'¨Ñ/Ô/ð °JÀdÐ4JÐ4JØ��D‘	”	�	øà���Œ8€DØ€KØð "ð "ˆÝ�d˜1”gÑÔð 	"ØˆC� Ñ#Ñ$Ô$Ð$Ø×Ò˜qÑ!Ô!Ð!øØð "ð "ˆØ�ÐÐØÝ�D˜”GÑÔð 	"ØˆC•˜t Q°Ð8Ñ8Ô8Ñ9Ô9Ð9Ø×Ò˜qÑ!Ô!Ð!øØð "ð "ˆØ�ÐÐØÝ�t˜A”wÑÔð 	"ØˆC•˜t Q°Ð8Ñ8Ô8Ñ9Ô9Ð9Ø×Ò˜qÑ!Ô!Ð!øØð 6ð 6ˆØ�ÐÐØØˆ�N˜4 ¨GÐ4Ñ4Ô4Ñ5Ô5Ð5Ð5à€Cˆ�G„G€GØ	€~ØˆˆB‰Œˆàð !Øð 	!ààˆC�ÑÔÐØˆC�Ð&Ô'×.Ò.Ñ0Ô0Ñ1Ô1Ð1ØˆC�Ñ Ô Ð à�IŠIÐ>Ð>Ð>Ð> $Ð>Ñ>Ô>Ñ?Ô?€Eàð ?Ý˜TÑ"Ô"ð 	?ØˆC¨W¨W¨W°k°k°kÀ5À5À5ÐIÑJÔJÐJÐJàˆC   ¨+¨+¨+°u°u°uÐ=Ñ>Ô>Ð>Øð Øˆˆ¨t°LÔ/AÐ/AÐ/AÀ4À4ÐHÑIÔIÐIÐIàˆˆE‰
Œ
ˆ
ØˆqŒ6€Mr-   c           	      ó²  ‡— t          | ¦  «        sJ ‚g Š| d         }| d         D ]Š}| d         |         }t          |                     dg ¦  «        ¦  «        D ]V\  }}|dk    rKd|›d|›�}t          ddg¬	¦  «        }d
|›d|›d�|d<   ‰                     |¦  «         |||<   ||d         |<   ŒWŒ‹| d                              ‰¦  «         t          ‰¦  «        }	dg}
|
fd„}| d         }t          | ¦  «        }t          | ¦  «        }| d         }d 	                    |¦  «        }|r5 |d| d         ›d|›d|›d�¦  «         |s |d| d         ›d|›�¦  «         n" |d|›d|›d�¦  «         |	s |d|z  ¦  «         |	rT| d          
                    d¦  «        D ]8}|                     ¦   «                              d¦  «        rd|vr ||¦  «         Œ9g }|D ]:}t          ||         ¦  «        r# |d|z  ¦  «         |                     |¦  «         Œ;|D ]L}||v rŒt          ||         ¦  «        r0 |t          |||¬¦  «        ¦  «         |                     |¦  «         ŒM|D ]"}||v rŒ |t          |||¬¦  «        ¦  «         Œ#|	rn|rnk |d¦  «         | d          
                    d¦  «        D ]9}|                     ¦   «                              d¦  «        rd|v rŒ. ||¦  «         Œ: |d¦  «         d 	                    ˆfd„|D ¦   «         ¦  «        }|s |d |›d!|›d�¦  «         |r |d"| d         ›d|›�¦  «         n |d#¦  «         |
d$         S )%Nr$   r/   r!   r   r0   r1   r2   r3   r4   r6   r7   r   r   r   c                 ó&   — |d         ›d| ›�|d<   d S r9   r:   r;   s     r+   r>   zcreatesubrwrapper.<locals>.addÏ   r?   r-   r@   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   c                 ó   •— g | ]}|‰v¯|‘Œ	S r:   r:   rR   s     €r+   rU   z%createsubrwrapper.<locals>.<listcomp>  rV   r-   zcall r   rW   rX   r   )r   rY   rZ   r[   r\   r]   r^   r   r   r#   r`   ra   rb   r   r   r,   )rc   rd   r$   r%   re   rf   rg   rh   ri   rj   r=   r>   r@   rk   r'   r/   rq   r<   rr   rT   s                      @r+   Úcreatesubrwrapperrw   »   s†  ø€ Ý˜ÑÔÐÐÐà€JØ�Œ<€DØ�&Œ\ð 	'ð 	'ˆØ�ŒL˜ŒOˆÝ˜aŸeše K°Ñ4Ô4Ñ5Ô5ð 	'ð 	'‰DˆAˆqØ�CŠxˆxˆxØ&' a a¨¨Ð+�Ý 9°f°XÐ>Ñ>Ô>��Ø-.¨Q¨Q°°°Ð2��3‘Ø×!Ò! "Ñ%Ô%Ð%Ø��R‘Ø$&��+”˜qÑ!øð	'ð 	ˆ„L×Ò˜
Ñ#Ô#Ð#Ý˜*Ñ%Ô%€Nàˆ$€Càð 1ð 1ð 1ð 1à�Œ<€DÝ  Ñ&Ô&€KÝ˜dÑ#Ô#€Gà�Œ<€Dà�IŠI�d‰OŒO€EØð /ØˆˆØ�,ÔÐÐ    u u uð.ñ 	/ô 	/ð 	/àð 	IØˆCˆC t¨LÔ'9Ð'9Ð'9¸;¸;ÐGÑHÔHÐHøàˆˆ¨D¨D¨D°%°%°%Ð8Ñ9Ô9Ð9Øð 	/ØˆC� Ñ-Ñ.Ô.Ð.àð ØÐ*Ô+×1Ò1°$Ñ7Ô7ð 	ð 	ˆDØ�{Š{‰}Œ}×'Ò'¨Ñ/Ô/ð °JÀdÐ4JÐ4JØ��D‘	”	�	øà€KØð "ð "ˆÝ�d˜1”gÑÔð 	"ØˆC� Ñ#Ñ$Ô$Ð$Ø×Ò˜qÑ!Ô!Ð!øØð "ð "ˆØ�ÐÐØÝ�D˜”GÑÔð 	"ØˆC•˜t Q°Ð8Ñ8Ô8Ñ9Ô9Ð9Ø×Ò˜qÑ!Ô!Ð!øØð 6ð 6ˆØ�ÐÐØØˆ�N˜4 ¨GÐ4Ñ4Ô4Ñ5Ô5Ð5Ð5àð 
!Øð 		!ààˆC�ÑÔÐØÐ.Ô/×5Ò5°dÑ;Ô;ð ð �Ø—;’;‘=”=×+Ò+¨FÑ3Ô3ð ¸
ÀdÐ8JÐ8JØØ��D‘	”	�	�	ØˆC�Ñ Ô Ð à�IŠIÐ>Ð>Ð>Ð> $Ð>Ñ>Ô>Ñ?Ô?€Eàð 2Øˆˆ˜[˜[˜[¨%¨%¨%Ð0Ñ1Ô1Ð1Øð Øˆˆ¨t°LÔ/AÐ/AÐ/AÀ4À4ÐHÑIÔIÐIÐIàˆˆE‰
Œ
ˆ
ØˆqŒ6€Mr-   c                 ó  — t          | ¦  «        �rt          | ¦  «        }| d         }t          d|›d|›d�¦  «         t          j        | ¦  «        } |}|}d| v r| d         }| d         |         | d         |<   | d         |         }t	          |¦  «        sjd|vrg |d<   |d                              d¦  «         d	}|d         D ]}|                     d
¦  «        rd} nŒ|r|d                              d|z  ¦  «         |g| d         z   | d         d d …<   | t          | ¦  «        fS t          | ¦  «        rRt          | ¦  «        }| d         }t          d|›d|›d�¦  «         t          j        | ¦  «        } | t          | ¦  «        fS | dfS )Nr@   z)		Creating wrapper for Fortran function "z"("z")...
Úresultr$   r5   Úoutr   zout=r   zout=%sr/   z+		Creating wrapper for Fortran subroutine "r   )
r   r   r   Úcopyr	   r\   rb   rs   r   rw   )rc   rk   r@   ÚfnameÚrnameÚfvarÚflagrf   s           r+   Úassubrr€     sâ  € Ý�tÑÔñ -Ý$ TÑ*Ô*ˆØ�FŒ|ˆÝˆØˆDˆD�+�+�+ðñ 	 ô 	 ð 	 åŒy˜‰ŒˆØˆØˆØ�tÐÐØ˜”NˆEØ"& v¤,¨uÔ"5ˆD�ŒL˜ÑØ�FŒ|˜EÔ"ˆÝ˜DÑ!Ô!ð 
	:Ø˜tÐ#Ð#Ø!#��X‘Ø�ŒN×!Ò! %Ñ(Ô(Ð(ØˆDØ˜(”^ð ð �Ø—<’< Ñ'Ô'ð Ø�DØ�Eðð ð :Ø�X”×%Ò% h°%Ñ&8Ñ9Ô9Ð9Ø ˜' D¨¤LÑ0ˆˆVŒ�Q�Q�Q‰ØÕ& tÑ,Ô,Ð,Ð,Ý˜ÑÔð -Ý$ TÑ*Ô*ˆØ�FŒ|ˆÝˆØ�4�4˜˜˜ð&ñ 	'ô 	'ð 	'åŒy˜‰ŒˆØÕ& tÑ,Ô,Ð,Ð,Ø�ˆ8€Or-   )NN)r   )Ú__doc__r{   Úauxfuncsr   r   r   r   r   r	   r
   r   r   r   r   r   r   r,   rs   rw   r€   r:   r-   r+   ú<module>rƒ      s  ððð ð €€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð.ð .ð .ð .ðbnð nð nð nðbPð Pð Pð Pðf!ð !ð !ð !ð !r-   