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
77
78
79
80
U
P±d&ã@srdZddlZddlmZmZmZmZmZmZm    Z    m
Z
m Z m Z m Z mZmZd dd„Zddd„Zdd    d
„Zd d „ZdS)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ÚshowcCsÈ|dkr |}||kr,t|ƒtd|ƒdSd||krTt||ƒtd|ƒdS||d}|dkrˆd||krˆd|||df}i}d}d||kr®||d}d    }nd
||krÊ||d
}d }d |kr6|r|d d krðd|}nd|||d f}n0|d dkr$d||d f}nd||d f}nZd |krvd||d f}d    |krld||d    f}nd|}nd    |krd||d    f}d||f}d||krÄd|d ||d¡f}|S)Nz1var2fixfortran: No definition for argument "%s".
ÚÚtypespecz/var2fixfortran: No typespec for argument "%s".
ÚtypeÚtypenamez%s(%s)Z kindselectorÚkindÚ charselectorÚlenÚ*)rú:ú(*)z    %s(len=*)z    %s(%s=%s))rrz%s*(%s)z%s*%sz    %s(len=%sz %s,kind=%s)z%s)z %s(kind=%s)z%s %sÚ    dimensionú,)rrÚjoin)ÚvarsÚaÚfaÚf90modeZvardefÚselectorZlk©r"úKd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/f2py/func2subr.pyÚvar2fixfortransP         
 
 
 
 
 
 r$cs
t|ƒs t‚g‰|d}|dD]z}|d|}t| dg¡ƒD]X\}}|dkr@d||f}tddgd}d    ||f|d
<ˆ |¡|||<||d|<q@q |d ˆ¡tˆƒ}    d g}
|
fd d „} |d} t|ƒ} t    |ƒ}d| }||kr|| ||<|g|ddd…}n|g|d}t
|| d|ƒ}|dd…dkrŽ|rXd|dd…}nd|dd…}|| d}| dd ¡dkrŽd|d<|  d|¡}d}d  |¡}|rà| d|d| |fƒ|s| d|d| fƒn6| d| |fƒ|    s| d| ƒ|  dd ¡d | }|    rT|d!  d"¡D](}| ¡ d#¡r*d$|kr*| |ƒq*|dd…}g}|D]*}t||ƒrh| d|ƒ| |¡qh|D]>}||krªq˜t||ƒr˜| t
|||d%ƒ| |¡q˜|D]>}||krîqÜt||ƒrÜ| t
|||d%ƒ| |¡qÜ|D]&}||kr2q | t
|||d%ƒq | |ƒ|dk    rb| |ƒ|    r|rpn | d&ƒ| |d! ¡ƒ| d'ƒd  ‡fd(d)„|Dƒ¡}|sÞt|ƒrÌ| d*|| |fƒn| d+|| |fƒ|rú| d,|d| fƒn| d-ƒ|
d.S)/NrÚargsrrú f2py_%s_d%sÚintegerÚhide©rÚintentú shape(%s, %s)ú=rcSsd|d|f|d<dS©Nz %s
      %srr"©ÚlineÚretr"r"r#Úadd^szcreatefuncwrapper.<locals>.addÚnamez
%sf2pywraprz
@@@NAME@@@é z character*(*)zcharacter(len=10)z character*10rrrÚ10ú, úsubroutine f2pywrap_%s_%s (%s)Ú
modulenameúuse %s, only : %súsubroutine f2pywrap%s (%s)ú external %sú Úsaved_interfaceÚ
úuse Ú__user__©r Ú    interfaceú end interfacecsg|]}|ˆkr|‘qSr"r"©Ú.0r©Ú
extra_argsr"r#Ú
<listcomp>­sz%createfuncwrapper.<locals>.<listcomp>z%s = .not.(.not.%s(%s))z %s = %s(%s)úend subroutine f2pywrap_%s_%sÚendr)rÚAssertionErrorÚ    enumerateÚgetÚdictÚappendÚextendÚboolrr
r$ÚreplacerÚsplitÚlstripÚ
startswithrr rr    )ÚroutÚ    signaturerrÚvÚiÚdÚdnÚdvÚneed_interfacer0r1r2Ú fortrannamer Znewnamer%Zl_tmplZ
charselectÚl1ZrlÚsargsr/Ú dumped_argsr"rEr#ÚcreatefuncwrapperJs´    
 
 
 ÿ    
 
 
 
 
racsÞt|ƒs t‚g‰|d}|dD]z}|d|}t| dg¡ƒD]X\}}|dkr@d||f}tddgd}d    ||f|d
<ˆ |¡|||<||d|<q@q |d ˆ¡tˆƒ}    d g}
|
fd d „} |d} t|ƒ} t    |ƒ}|d}d 
|¡}|r&| d|d| |fƒ|sH| d|d| fƒn"| d| |fƒ|    sH| d| ƒ|    r†|d  d¡D](}|  ¡  d¡r\d|kr\| |ƒq\g}|D]*}t||ƒrŽ| d|ƒ| |¡qŽ|D]>}||krАq¾t||ƒr¾| t|||dƒ| |¡q¾|D]&}||krq| t|||dƒq|    r„|r8nL| dƒ|d  d¡D],}|  ¡  d¡rpd|krpqN| |ƒqN| dƒd 
‡fdd„|Dƒ¡}|s²| d| |fƒ|rÎ| d|d| fƒn| d ƒ|
d!S)"Nrr%rrr&r'r(r)r+r,rcSsd|d|f|d<dSr-r"r.r"r"r#r1Ïszcreatesubrwrapper.<locals>.addr2r5r6r7r8r9r:r<r=r>r?r@rArBcsg|]}|ˆkr|‘qSr"r"rCrEr"r#rGsz%createsubrwrapper.<locals>.<listcomp>z call %s(%s)rHrIr)r rJrKrLrMrNrOrPrr
rrRrSrTrr r$)rUrVrrrWrXrYrZr[r\r0r1r2r]r r%r_r/r`r"rEr#Úcreatesubrwrapper»s„    
 
 ÿ   
 
 rbcCs8t|ƒrðt|ƒ}|d}td||fƒt |¡}|}|}d|kr^|d}|d||d|<|d|}t|ƒsÊd|kr‚g|d<|d d¡d}|dD]}| d¡rœd    }q´qœ|rÊ|d d
|¡|g|d |d dd…<|t|ƒfSt|ƒr0t|ƒ}|d}td ||fƒt |¡}|t    |ƒfS|d fS)Nr2z6        Creating wrapper for Fortran function "%s"("%s")...
Úresultrr*Úoutrzout=rzout=%sr%z8        Creating wrapper for Fortran subroutine "%s"("%s")...
r)
rrrÚcopyrrNrTrar rb)rUr]r2ÚfnameÚrnameZfvarÚflagrXr"r"r#ÚassubrsHÿ
 
 
ÿ
 ri)NN)r)r)Ú__doc__reZauxfuncsrrrrrrr    r
r r r rrr$rarbrir"r"r"r#Ú<module>s <
1
q
S