zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
U
P±dvã@sldZddlmZejZddlmZmZmZm    Z    m
Z
ddlm Z ddlm Z ddl mZd dd„Zd    d
„Zd S) aM
 
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
 
é)Ú __version__)ÚhasbodyÚ    hascommonÚhasnoteÚ isintent_hideÚoutmess)Ú    capi_maps)Ú    func2subr)Ú    rmbadnamec
s¬g}tˆƒrFˆd ¡D]*\}}‡fdd„|Dƒ}| |||f¡qn$tˆƒrjˆdD]}|t|dƒ}qV|r¨g}g}|D](}    |    d|krz| |    d¡| |    ¡qz|S|S)NÚcommoncsi|]}|ˆd|“qS)Úvars©)Ú.0Úv©Úblockr úNd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/f2py/common_rules.pyÚ
<dictcomp>sz$findcommonblocks.<locals>.<dictcomp>Úbodyé)rÚitemsÚappendrÚfindcommonblocks)
rÚtopÚretÚkeyÚvalueZvars_ÚbZtretÚnamesÚtr rrrs"   rc Csðggdgdœ}dg}|fdd„}dg}|fdd„}dg}|fdd    „}dg}|fd
d „}    t|ƒD]L\}
} } |
 ¡} gg}}| D]&}t| |ƒrœ| |¡q€| |¡q€|rÌtd |
d  |¡d  |¡fƒntd|
d  |¡fƒ|d|
ƒ|dƒ| D]}|t | |¡ƒqú|
dkr.|dd  | ¡ƒn|d|
d  | ¡fƒ|dd  |¡ƒ|dƒ|d|
ƒg}|D]”}t     | |¡}t 
| |¡}tj |}t  || |¡}|drÊ| d|d¡n
| d¡|d  ¡}|sêd}|d||d|||fƒqr|dƒt|ƒ}d  dd„|Dƒ¡}|d|
|fƒ|d ƒ|D]}|d!|
|fƒqH|d"ƒd#| krxd$}nd%}|d&|| |
 ¡d  d'gt|ƒ¡fƒ|d(|
ƒ|d)|| |
 ¡|
fƒ|d*ƒ|d+|
|
fƒ|d,ƒ|d-|
ƒ|d.ƒ|
 d#d/¡}|    d0|ƒ|    d1ƒ|D]Z}|    d2t || |¡ƒt| |ƒr | |d3}t|tƒrld4 |¡}|    d5|ƒq |    d6ƒ|d7 d8|
d  td9d:„||ƒ¡f¡q^||d;<||d<<|d=|d><t|d7ƒd?kräd|d7<||d=fS)@Nz"COMMON blocks:\n")Ú commonhooksÚinitcommonhooksÚdocsÚcSsd|d|f|d<dS)Nz %s
      %srr ©ÚlineÚsr r rÚfadd4szbuildhooks.<locals>.faddcSsd|d|f|d<dS©Nz%s
%srr r$r r rÚcadd8szbuildhooks.<locals>.caddcSsd|d|f|d<dSr(r r$r r rÚiadd<szbuildhooks.<locals>.iaddcSsd|d|f|d<dSr(r r$r r rÚdadd@szbuildhooks.<locals>.daddzF        Constructing COMMON block support for "%s"...
          %s
          Hidden: %s
ú,z7        Constructing COMMON block support for "%s"...
          %s
z subroutine f2pyinit%s(setupfunc)zexternal setupfuncZ_BLNK_z    common %szcommon /%s/ %szcall setupfunc(%s)zend
z'static FortranDataDef f2py_%s_def[] = {Zdimsz(%s)z-1z    {"%s",%s,{{%s}},%s, %s},Zrankz
    {NULL}
};cSsg|] }d|‘qS)zchar *r )rr&r r rÚ
<listcomp>lszbuildhooks.<locals>.<listcomp>zstatic void f2py_setup_%s(%s) {z    int i_f2py=0;z!    f2py_%s_def[i_f2py++].data = %s;Ú}Ú_Z    F_FUNC_USÚF_FUNCz3extern void %s(f2pyinit%s,F2PYINIT%s)(void(*)(%s));zchar*z static void f2py_init_%s(void) {z*    %s(f2pyinit%s,F2PYINIT%s)(f2py_setup_%s);z}
z5    tmp = PyFortranObject_New(f2py_%s_def,f2py_init_%s);z    if (tmp == NULL) return NULL;z=    if (F2PyDict_SetItemString(d, "%s", tmp) == -1) return NULL;z    Py_DECREF(tmp);z\_z&\subsection{Common block \texttt{%s}}
z\begin{description}z\item[]{{}\verb@%s@{}}ÚnoteÚ
z--- %sz\end{description}r"z "    /%s/ %s\n"cSs||S)Nr )rÚdr r rÚ<lambda>ózbuildhooks.<locals>.<lambda>r r!rZlatexdocr)rÚlowerrrrÚjoinr    Zvar2fixfortranrZgetctypeZ
get_elsizeZ
c2capi_mapZ
getarrdimsÚstripr
ÚupperÚlenÚreplaceZ getarrdocsignrÚ
isinstanceÚlistÚmap)ÚmrZfwrapr'Zchooksr)Zihooksr*Údocr+ÚnameZvnamesr Z
lower_nameZhnamesZinamesÚnZidimsÚctZelsizeÚatÚdmZdmsZinames1Z inames1_tpsr0Ztnamer1r r rÚ
buildhooks/sÌÿ    
   ÿ
ÿ 
 
 
 
 ÿ
 
 
ÿÿ ÿÿ  ÿ  
ÿ rFN)r)Ú__doc__r#rÚversionZ f2py_versionZauxfuncsrrrrrrr    Z crackfortranr
rrFr r r rÚ<module>s