1 | !The Full Polymorphic Package |
---|
2 | !Copyright (C) Etienne Forest |
---|
3 | |
---|
4 | module complex_taylor |
---|
5 | use tpsalie_analysis |
---|
6 | implicit none |
---|
7 | public |
---|
8 | private mul,cscmul,cmulsc,dscmul,dmulsc,mulsc,scmul,imulsc,iscmul |
---|
9 | private ctmul, cmult,ctadd,caddt,ctsub,csubt,ctdiv,cdivt |
---|
10 | private add,cscadd,dscadd,caddsc,daddsc,unaryADD,addsc,scadd,iaddsc,iscadd |
---|
11 | private tadd,addt,tmul,mult,tsub,subt,tdiv,divt |
---|
12 | private inv,div,dscdiv,cscdiv,cdivsc,ddivsc,divsc,scdiv,idivsc,iscdiv |
---|
13 | private subs,cscsub,dscsub,csubsc,dsubsc,iscsub,isubsc,scsub,subsc,unarySUB |
---|
14 | private EQUAL,cequaldacon,Dequaldacon,equaldacon,Iequaldacon,ctEQUAL,tcEQUAL |
---|
15 | private pow,powr,POWR8 !,DAABSEQUAL,AABSEQUAL 2002.10.17 |
---|
16 | private alloccomplex,A_OPT,K_OPT !,printcomplex ,killcomplex |
---|
17 | private logtpsat,exptpsat,abstpsat,dcost,dsint,datant,tant,dasint,dacost |
---|
18 | private dcosht,dsinht,dtanht,dsqrtt |
---|
19 | private getdiff,getdATRA,GETORDER,CUTORDER,getchar ,dputchar,dputint |
---|
20 | private set_in_complex !, assc !check, |
---|
21 | private dimagt,drealt,dcmplxt,CEQUAL,DEQUAL,REQUAL |
---|
22 | private GETCHARnd2,GETintnd2,GETint,getcharnd2s,GETintnd2s,GETintk |
---|
23 | private CFUC,CFURES,varco,varco1 |
---|
24 | ! completing tpsa.f90 |
---|
25 | private datantt,dasintt,dacostt,full_abstpsat |
---|
26 | integer,private::NO,ND,ND2,NP,NDPT,NV !,lastmaster 2002.12.13 |
---|
27 | logical(lp),private::old |
---|
28 | logical :: debug_flag =.false. |
---|
29 | logical :: debug_acos=.false. |
---|
30 | |
---|
31 | INTERFACE assignment (=) |
---|
32 | MODULE PROCEDURE EQUAL |
---|
33 | MODULE PROCEDURE ctEQUAL |
---|
34 | MODULE PROCEDURE tcEQUAL |
---|
35 | MODULE PROCEDURE CEQUAL |
---|
36 | MODULE PROCEDURE DEQUAL |
---|
37 | MODULE PROCEDURE REQUAL |
---|
38 | ! MODULE PROCEDURE DAABSEQUAL ! remove 2002.10.17 |
---|
39 | ! MODULE PROCEDURE AABSEQUAL ! remove 2002.10.17 |
---|
40 | MODULE PROCEDURE cequaldacon |
---|
41 | MODULE PROCEDURE Dequaldacon |
---|
42 | MODULE PROCEDURE equaldacon |
---|
43 | MODULE PROCEDURE Iequaldacon |
---|
44 | end INTERFACE |
---|
45 | |
---|
46 | !@ <table border="4" cellspacing="1" bordercolor="#000000" id="AutoNumber1" width="684" height="445"> |
---|
47 | !@ <tr> |
---|
48 | !@ <td width="78" height="84" align="center" rowspan="2" colspan="2"> |
---|
49 | !@ <span style="text-transform: uppercase"> |
---|
50 | !@ <font face="Times New Roman" size="4"><b> +</b> </font></span></td> |
---|
51 | !@ <td width="193" height="40" align="center" colspan="2"> |
---|
52 | !@ <font size="2">COMPLEX</font></td> |
---|
53 | !@ <td width="288" height="40" align="center" colspan="3"> |
---|
54 | !@ <font size="2">REAL</font></td> |
---|
55 | !@ <td width="95" height="82" align="center" rowspan="2"> |
---|
56 | !@ <span style="text-transform: uppercase"> |
---|
57 | !@ <font face="Times New Roman" size="2">Integer</font></span></td> |
---|
58 | !@ </tr> |
---|
59 | !@ <tr> |
---|
60 | !@ <td width="88" height="39" align="center"> |
---|
61 | !@ <p> |
---|
62 | !@ <span style="text-transform: uppercase"> |
---|
63 | !@ <font face="Times New Roman" size="2">COMPLEX TAYLOR</font></span></p> |
---|
64 | !@ </td> |
---|
65 | !@ <td width="105" height="42" align="center"> |
---|
66 | !@ <span style="text-transform: uppercase"> |
---|
67 | !@ <font face="Times New Roman" size="2">COMPLEX(dp)</font></span></td> |
---|
68 | !@ <td width="88" height="39" align="center"> |
---|
69 | !@ <span style="text-transform: uppercase"> |
---|
70 | !@ <font face="Times New Roman" size="2">TAYLOR</font></span></td> |
---|
71 | !@ <td width="101" height="39" align="center"> |
---|
72 | !@ <span style="text-transform: uppercase"> |
---|
73 | !@ <font face="Times New Roman" size="2">rEAL(DP)</font></span></td> |
---|
74 | !@ <td width="100" height="39" align="center"> |
---|
75 | !@ <span style="text-transform: uppercase"> |
---|
76 | !@ <font face="Times New Roman" size="2">REAL(SP)</font></span></td> |
---|
77 | !@ </tr> |
---|
78 | !@ <tr> |
---|
79 | !@ <td width="39" height="109" align="center" rowspan="2"> |
---|
80 | !@ <font size="2">COMPLEX</font></td> |
---|
81 | !@ <td width="39" height="54" align="center"> |
---|
82 | !@ <span style="text-transform: uppercase"> |
---|
83 | !@ <font face="Times New Roman" size="2">COMPLEX TAYLOR</font></span></td> |
---|
84 | !@ <td width="84" height="53" align="center"> |
---|
85 | !@ <font size="2"> |
---|
86 | !@ <a href="l_complex_taylor.htm#ADD" style="text-decoration: none; font-weight: 700">ADD</a></font></td> |
---|
87 | !@ <td width="105" height="53" align="center"> |
---|
88 | !@ <font size="2"> |
---|
89 | !@ <a href="l_complex_taylor.htm#CADDSC" style="text-decoration: none; font-weight: 700">CADDSC</a></font></td> |
---|
90 | !@ <td width="92" height="53" align="center"> |
---|
91 | !@ <font size="2"> |
---|
92 | !@ <a href="l_complex_taylor.htm#ADDT" style="text-decoration: none; font-weight: 700"> |
---|
93 | !@ ADDT</a></font></td> |
---|
94 | !@ <td width="102" height="53" align="center"> |
---|
95 | !@ <font size="2"> |
---|
96 | !@ <a href="l_complex_taylor.htm#DADDSC" style="text-decoration: none; font-weight: 700">DADDSC</a></font></td> |
---|
97 | !@ <td width="99" height="53" align="center"> |
---|
98 | !@ <font size="2"> |
---|
99 | !@ <a href="l_complex_taylor.htm#ADDSC" style="text-decoration: none; font-weight: 700">ADDSC</a></font></td> |
---|
100 | !@ <td width="94" height="53" align="center"><font size="2"> |
---|
101 | !@ <a href="l_complex_taylor.htm#IADDSC" style="text-decoration: none; font-weight: 700"> |
---|
102 | !@ IADDSC</a></font></td> |
---|
103 | !@ </tr> |
---|
104 | !@ <tr> |
---|
105 | !@ <td width="39" height="55" align="center"> |
---|
106 | !@ <span style="text-transform: uppercase"> |
---|
107 | !@ <font face="Times New Roman" size="2">COMPLEX(DP)</font></span></td> |
---|
108 | !@ <td width="84" height="55" align="center"> |
---|
109 | !@ <font size="2"> |
---|
110 | !@ <a href="l_complex_taylor.htm#CSCADD" style="text-decoration: none; font-weight: 700">CSCADD</a></font></td> |
---|
111 | !@ <td width="105" height="55" align="center"> |
---|
112 | !@ <b>F90</b></td> |
---|
113 | !@ <td width="92" height="55" align="center"> |
---|
114 | !@ <font size="2"> |
---|
115 | !@ <a href="l_complex_taylor.htm#CADDT" style="text-decoration: none; font-weight: 700"> |
---|
116 | !@ CADDT</a></font></td> |
---|
117 | !@ <td width="102" height="55" align="center"> |
---|
118 | !@ <b>F90</b></td> |
---|
119 | !@ <td width="99" height="55" align="center"> |
---|
120 | !@ <b>F90</b></td> |
---|
121 | !@ <td width="94" height="55" align="center"><b>F90</b></td> |
---|
122 | !@ </tr> |
---|
123 | !@ <tr> |
---|
124 | !@ <td width="39" height="171" align="center" rowspan="3"> |
---|
125 | !@ <font size="2">REAL</font></td> |
---|
126 | !@ <td width="39" height="54" align="center"> |
---|
127 | !@ <span style="text-transform: uppercase"> |
---|
128 | !@ <font face="Times New Roman" size="2">TAYLOR</font></span></td> |
---|
129 | !@ <td width="84" height="50" align="center"> |
---|
130 | !@ <font size="2"> |
---|
131 | !@ <a href="l_complex_taylor.htm#TADD" style="text-decoration: none; font-weight: 700">TADD</a></font></td> |
---|
132 | !@ <td width="105" height="50" align="center"> |
---|
133 | !@ <font size="2"> |
---|
134 | !@ <a href="l_complex_taylor.htm#CTADD" style="text-decoration: none; font-weight: 700">CTADD</a></font></td> |
---|
135 | !@ <td width="92" height="50" align="center"> |
---|
136 | !@ <span style="text-transform: uppercase; "> |
---|
137 | !@ <font face="Times New Roman" size="2"> |
---|
138 | !@ <a href="i_tpsa.htm#ADD" style="text-decoration: none; font-style:italic"> |
---|
139 | !@ <font color="#FF0000">add</font></a></font></span></td> |
---|
140 | !@ <td width="77" height="20" align="center"> |
---|
141 | !@ <span style="text-transform: uppercase; "> |
---|
142 | !@ <font face="Times New Roman" size="2"> |
---|
143 | !@ <a href="i_tpsa.htm#DADDSC" style="text-decoration: none; font-style:italic"> |
---|
144 | !@ <font color="#FF0000">daddsc</font></a></font></span></td> |
---|
145 | !@ <td width="78" height="20" align="center"> |
---|
146 | !@ <font size="2" face="Times New Roman"> |
---|
147 | !@ <a href="i_tpsa.htm#ADDSC" style="text-decoration: none; font-style:italic"> |
---|
148 | !@ <font color="#FF0000">ADDSC</font></a></font></td> |
---|
149 | !@ <td width="56" height="20" align="center"> |
---|
150 | !@ <font size="2" face="Times New Roman"> |
---|
151 | !@ <font color="#FF0000"> </font> |
---|
152 | !@ <a href="i_tpsa.htm#IADDSC" style="text-decoration: none; font-style:italic"> |
---|
153 | !@ <font color="#FF0000">IADDSC</font></a></font></td> |
---|
154 | !@ </tr> |
---|
155 | !@ <tr> |
---|
156 | !@ <td width="39" height="56" align="center"> |
---|
157 | !@ <span style="text-transform: uppercase"> |
---|
158 | !@ <font face="Times New Roman" size="2">REAL(DP)</font></span></td> |
---|
159 | !@ <td width="84" height="55" align="center"> |
---|
160 | !@ <font size="2"> |
---|
161 | !@ <a href="l_complex_taylor.htm#DSCADD" style="text-decoration: none; font-weight: 700">DSCADD</a></font></td> |
---|
162 | !@ <td width="105" height="55" align="center"> |
---|
163 | !@ <b>F90</b></td> |
---|
164 | !@ <td width="77" height="20" align="center"> |
---|
165 | !@ <span style="text-transform: uppercase; "> |
---|
166 | !@ <font face="Times New Roman" size="2"> |
---|
167 | !@ <a href="i_tpsa.htm#DSCADD" style="text-decoration: none; font-style:italic"> |
---|
168 | !@ <font color="#FF0000">dscadd</font></a></font></span></td> |
---|
169 | !@ <td width="102" height="55" align="center"><b>F90</b></td> |
---|
170 | !@ <td width="99" height="55" align="center"><b>F90</b></td> |
---|
171 | !@ <td width="94" height="55" align="center"><b>F90</b></td> |
---|
172 | !@ </tr> |
---|
173 | !@ <tr> |
---|
174 | !@ <td width="39" height="56" align="center"> |
---|
175 | !@ <span style="text-transform: uppercase"> |
---|
176 | !@ <font face="Times New Roman" size="2">REAL(SP)</font></span></td> |
---|
177 | !@ <td width="84" height="52" align="center"> |
---|
178 | !@ <font size="2"> |
---|
179 | !@ <a href="l_complex_taylor.htm#SCADD" style="text-decoration: none; font-weight: 700"> |
---|
180 | !@ SCADD</a></font></td> |
---|
181 | !@ <td width="105" height="52" align="center"> |
---|
182 | !@ <b>F90</b></td> |
---|
183 | !@ <td width="77" height="20" align="center"> |
---|
184 | !@ <font size="2" face="Times New Roman"> |
---|
185 | !@ <a href="i_tpsa.htm#SCADD" style="text-decoration: none; font-style:italic"> |
---|
186 | !@ <font color="#FF0000">SCADD</font></a></font></td> |
---|
187 | !@ <td width="102" height="52" align="center"><b>F90</b></td> |
---|
188 | !@ <td width="99" height="52" align="center"><b>F90</b></td> |
---|
189 | !@ <td width="94" height="52" align="center"><b>F90</b></td> |
---|
190 | !@ </tr> |
---|
191 | !@ <tr> |
---|
192 | !@ <td width="78" height="56" align="center" colspan="2"> |
---|
193 | !@ <span style="text-transform: uppercase"> |
---|
194 | !@ <font face="Times New Roman" size="2">Integer</font></span></td> |
---|
195 | !@ <td width="84" height="61" align="center"><font size="2"> |
---|
196 | !@ <a href="l_complex_taylor.htm#ISCADD" style="text-decoration: none; font-weight: 700">ISCADD</a></font></td> |
---|
197 | !@ <td width="105" height="61" align="center"><b>F90</b></td> |
---|
198 | !@ <td width="77" height="20" align="center"> |
---|
199 | !@ <font size="2" face="Times New Roman"> |
---|
200 | !@ <a href="i_tpsa.htm#ISCADD" style="text-decoration: none; font-style:italic"> |
---|
201 | !@ <font color="#FF0000">ISCADD</font></a></font></td> |
---|
202 | !@ <td width="102" height="61" align="center"><b>F90</b></td> |
---|
203 | !@ <td width="99" height="61" align="center"><b>F90</b></td> |
---|
204 | !@ <td width="94" height="61" align="center"><b>F90</b></td> |
---|
205 | !@ </tr> |
---|
206 | !@ </table> |
---|
207 | !@ |
---|
208 | |
---|
209 | INTERFACE OPERATOR (+) |
---|
210 | MODULE PROCEDURE add |
---|
211 | MODULE PROCEDURE tadd |
---|
212 | MODULE PROCEDURE addt |
---|
213 | MODULE PROCEDURE cscadd |
---|
214 | MODULE PROCEDURE dscadd |
---|
215 | MODULE PROCEDURE ctadd |
---|
216 | MODULE PROCEDURE caddt |
---|
217 | MODULE PROCEDURE caddsc |
---|
218 | MODULE PROCEDURE daddsc |
---|
219 | MODULE PROCEDURE unaryADD |
---|
220 | MODULE PROCEDURE addsc |
---|
221 | MODULE PROCEDURE scadd |
---|
222 | MODULE PROCEDURE iaddsc |
---|
223 | MODULE PROCEDURE iscadd |
---|
224 | END INTERFACE |
---|
225 | |
---|
226 | !@ <table border="4" cellspacing="1" bordercolor="#000000" id="AutoNumber2" width="684" height="445"> |
---|
227 | !@ <tr> |
---|
228 | !@ <td width="78" height="84" align="center" rowspan="2" colspan="2"> |
---|
229 | !@ <span style="text-transform: uppercase"> |
---|
230 | !@ <font face="Times New Roman" size="4"><b> |
---|
231 | !@ -</b> </font></span></td> |
---|
232 | !@ <td width="193" height="40" align="center" colspan="2"> |
---|
233 | !@ <font size="2">COMPLEX</font></td> |
---|
234 | !@ <td width="288" height="40" align="center" colspan="3"> |
---|
235 | !@ <font size="2">REAL</font></td> |
---|
236 | !@ <td width="95" height="82" align="center" rowspan="2"> |
---|
237 | !@ <span style="text-transform: uppercase"> |
---|
238 | !@ <font face="Times New Roman" size="2">Integer</font></span></td> |
---|
239 | !@ </tr> |
---|
240 | !@ <tr> |
---|
241 | !@ <td width="88" height="39" align="center"> |
---|
242 | !@ <p> |
---|
243 | !@ <span style="text-transform: uppercase"> |
---|
244 | !@ <font face="Times New Roman" size="2">COMPLEX TAYLOR</font></span></p> |
---|
245 | !@ </td> |
---|
246 | !@ <td width="105" height="42" align="center"> |
---|
247 | !@ <span style="text-transform: uppercase"> |
---|
248 | !@ <font face="Times New Roman" size="2">COMPLEX(dp)</font></span></td> |
---|
249 | !@ <td width="88" height="39" align="center"> |
---|
250 | !@ <span style="text-transform: uppercase"> |
---|
251 | !@ <font face="Times New Roman" size="2">TAYLOR</font></span></td> |
---|
252 | !@ <td width="101" height="39" align="center"> |
---|
253 | !@ <span style="text-transform: uppercase"> |
---|
254 | !@ <font face="Times New Roman" size="2">rEAL(DP)</font></span></td> |
---|
255 | !@ <td width="100" height="39" align="center"> |
---|
256 | !@ <span style="text-transform: uppercase"> |
---|
257 | !@ <font face="Times New Roman" size="2">REAL(SP)</font></span></td> |
---|
258 | !@ </tr> |
---|
259 | !@ <tr> |
---|
260 | !@ <td width="39" height="109" align="center" rowspan="2"> |
---|
261 | !@ <font size="2">COMPLEX</font></td> |
---|
262 | !@ <td width="39" height="54" align="center"> |
---|
263 | !@ <span style="text-transform: uppercase"> |
---|
264 | !@ <font face="Times New Roman" size="2">COMPLEX TAYLOR</font></span></td> |
---|
265 | !@ <td width="84" height="53" align="center"> |
---|
266 | !@ <font size="2"> |
---|
267 | !@ <a style="text-decoration: none; font-weight: 700" href="l_complex_taylor.htm#SUBS">SUBS</a></font></td> |
---|
268 | !@ <td width="105" height="53" align="center"> |
---|
269 | !@ <font size="2"> |
---|
270 | !@ <a style="text-decoration: none; font-weight: 700" href="l_complex_taylor.htm#CSUBSC">CSUBSC</a></font></td> |
---|
271 | !@ <td width="92" height="53" align="center"> |
---|
272 | !@ <font size="2"> |
---|
273 | !@ <a style="text-decoration: none; font-weight: 700" href="l_complex_taylor.htm#SUBT">SUBT</a></font></td> |
---|
274 | !@ <td width="102" height="53" align="center"> |
---|
275 | !@ <font size="2"> |
---|
276 | !@ <a href="l_complex_taylor.htm#DSUBSC" style="text-decoration: none; font-weight:700">DSUBSC</a></font></td> |
---|
277 | !@ <td width="99" height="53" align="center"> |
---|
278 | !@ <font size="2"> |
---|
279 | !@ <a href="l_complex_taylor.htm#SUBSC" style="text-decoration: none; font-weight:700">SUBSC</a></font></td> |
---|
280 | !@ <td width="94" height="53" align="center"><font size="2"> |
---|
281 | !@ <a href="l_complex_taylor.htm#ISUBSC" style="text-decoration: none; font-weight:700">ISUBSC</a></font></td> |
---|
282 | !@ </tr> |
---|
283 | !@ <tr> |
---|
284 | !@ <td width="39" height="55" align="center"> |
---|
285 | !@ <span style="text-transform: uppercase"> |
---|
286 | !@ <font face="Times New Roman" size="2">COMPLEX(DP)</font></span></td> |
---|
287 | !@ <td width="84" height="55" align="center"> |
---|
288 | !@ <ahref="l_complex_taylor.htm#CSCSUB" style="text-decoration: none; font-weight:700"> |
---|
289 | !@ <font size="2"> |
---|
290 | !@ <a href="l_complex_taylor.htm#CSCSUB" style="text-decoration: none; font-weight: 700">CSCSUB</a></font></td> |
---|
291 | !@ <td width="105" height="55" align="center"> |
---|
292 | !@ <b>F90</b></td> |
---|
293 | !@ <td width="92" height="55" align="center"> |
---|
294 | !@ <ahref="l_complex_taylor.htm#CSUBT" style="text-decoration: none"> |
---|
295 | !@ <font size="2"> |
---|
296 | !@ <a href="l_complex_taylor.htm#CSUBT" style="text-decoration: none"><b>CSUBT</b></a></a></font></td> |
---|
297 | !@ <td width="102" height="55" align="center"> |
---|
298 | !@ <b>F90</b></td> |
---|
299 | !@ <td width="99" height="55" align="center"> |
---|
300 | !@ <b>F90</b></td> |
---|
301 | !@ <td width="94" height="55" align="center"><b>F90</b></td> |
---|
302 | !@ </tr> |
---|
303 | !@ <tr> |
---|
304 | !@ <td width="39" height="171" align="center" rowspan="3"> |
---|
305 | !@ <font size="2">REAL</font></td> |
---|
306 | !@ <td width="39" height="54" align="center"> |
---|
307 | !@ <span style="text-transform: uppercase"> |
---|
308 | !@ <font face="Times New Roman" size="2">TAYLOR</font></span></td> |
---|
309 | !@ <td width="84" height="50" align="center"> |
---|
310 | !@ <font size="2"> |
---|
311 | !@ <a href="l_complex_taylor.htm#TSUB" style="text-decoration: none; font-weight:700">TSUB</a></font></td> |
---|
312 | !@ <td width="105" height="50" align="center"> |
---|
313 | !@ <font size="2"> |
---|
314 | !@ <a style="text-decoration: none; font-weight: 700" href="l_complex_taylor.htm#CTSUB"> |
---|
315 | !@ CTSUB</a></font></td> |
---|
316 | !@ <td width="92" height="50" align="center"> |
---|
317 | !@ <span style="text-transform: uppercase"> |
---|
318 | !@ <font face="Times New Roman" size="2"> |
---|
319 | !@ <a style="text-decoration: none; font-style:italic" href="i_tpsa.htm#SUBS"> |
---|
320 | !@ <font color="#FF0000">SUBS</font></a></font></span></td> |
---|
321 | !@ <td width="77" height="20" align="center"> |
---|
322 | !@ <span style="text-transform: uppercase"> |
---|
323 | !@ <font face="Times New Roman" size="2"> |
---|
324 | !@ <a style="text-decoration: none; font-style:italic" href="i_tpsa.htm#DSUBSC"> |
---|
325 | !@ <font color="#FF0000">dSUBsc</font></a></font></span></td> |
---|
326 | !@ <td width="78" height="20" align="center"> |
---|
327 | !@ <font size="2" face="Times New Roman"> |
---|
328 | !@ <a style="text-decoration: none; font-style:italic" href="i_tpsa.htm#SUBSC"> |
---|
329 | !@ <font color="#FF0000">SUBSC</font></a></font></td> |
---|
330 | !@ <td width="56" height="20" align="center"> |
---|
331 | !@ <font size="2" face="Times New Roman"> |
---|
332 | !@ <font color="#FF0000"> |
---|
333 | !@ <a style="text-decoration: none; font-style:italic" href="i_tpsa.htm#ISUBSC"> </a></font><a style="text-decoration: none; font-style:italic" href="i_tpsa.htm#ISUBSC"><font color=" |
---|
334 | !@ </tr> |
---|
335 | !@ <tr> |
---|
336 | !@ <td width="39" height="56" align="center"> |
---|
337 | !@ <span style="text-transform: uppercase"> |
---|
338 | !@ <font face="Times New Roman" size="2">REAL(DP)</font></span></td> |
---|
339 | !@ <td width="84" height="55" align="center"> |
---|
340 | !@ <ahref="l_complex_taylor.htm#DSCSUB" style="text-decoration: none; font-weight:700"> |
---|
341 | !@ <font size="2"> |
---|
342 | !@ <a href="l_complex_taylor.htm#DSCSUB" style="text-decoration: none; font-weight: 700">DSCSUB</a></a></font></td> |
---|
343 | !@ <td width="105" height="55" align="center"> |
---|
344 | !@ <b>F90</b></td> |
---|
345 | !@ <td width="77" height="20" align="center"> |
---|
346 | !@ <span style="text-transform: uppercase"> |
---|
347 | !@ <font face="Times New Roman" size="2"> |
---|
348 | !@ <a style="text-decoration: none; font-style:italic" href="i_tpsa.htm#DSCSUB"> |
---|
349 | !@ <font color="#FF0000">dscSUB</font></a></font></span></td> |
---|
350 | !@ <td width="102" height="55" align="center"><b>F90</b></td> |
---|
351 | !@ <td width="99" height="55" align="center"><b>F90</b></td> |
---|
352 | !@ <td width="94" height="55" align="center"><b>F90</b></td> |
---|
353 | !@ </tr> |
---|
354 | !@ <tr> |
---|
355 | !@ <td width="39" height="56" align="center"> |
---|
356 | !@ <span style="text-transform: uppercase"> |
---|
357 | !@ <font face="Times New Roman" size="2">REAL(SP)</font></span></td> |
---|
358 | !@ <td width="84" height="52" align="center"> |
---|
359 | !@ <ahref="l_complex_taylor.htm#SCSUB" style="text-decoration: none; font-weight:700"> |
---|
360 | !@ <font size="2"> |
---|
361 | !@ <a href="l_complex_taylor.htm#SCSUB" style="text-decoration: none; font-weight: 700">SCSUB</a></a></font></td> |
---|
362 | !@ <td width="105" height="52" align="center"> |
---|
363 | !@ <b>F90</b></td> |
---|
364 | !@ <td width="77" height="20" align="center"> |
---|
365 | !@ <font size="2" face="Times New Roman"> |
---|
366 | !@ <a style="text-decoration: none; font-style:italic" href="i_tpsa.htm#SCSUB"> |
---|
367 | !@ <font color="#FF0000">SCSUB</font></a></font></td> |
---|
368 | !@ <td width="102" height="52" align="center"><b>F90</b></td> |
---|
369 | !@ <td width="99" height="52" align="center"><b>F90</b></td> |
---|
370 | !@ <td width="94" height="52" align="center"><b>F90</b></td> |
---|
371 | !@ </tr> |
---|
372 | !@ <tr> |
---|
373 | !@ <td width="78" height="56" align="center" colspan="2"> |
---|
374 | !@ <span style="text-transform: uppercase"> |
---|
375 | !@ <font face="Times New Roman" size="2">Integer</font></span></td> |
---|
376 | !@ <td width="84" height="61" align="center"> |
---|
377 | !@ <ahref="l_complex_taylor.htm#ISCSUB" style="text-decoration: none; font-weight:700"><font size="2"> |
---|
378 | !@ <a href="l_complex_taylor.htm#ISCSUB" style="text-decoration: none; font-weight: 700">ISCSUB</a></font></td> |
---|
379 | !@ <td width="105" height="61" align="center"><b>F90</b></td> |
---|
380 | !@ <td width="77" height="20" align="center"> |
---|
381 | !@ <font size="2" face="Times New Roman"> |
---|
382 | !@ <a href="i_tpsa.htm#ISCSUB" style="text-decoration: none; font-style:italic"> |
---|
383 | !@ <font color="#FF0000">ISCSUB</font></a></font></td> |
---|
384 | !@ <td width="102" height="61" align="center"><b>F90</b></td> |
---|
385 | !@ <td width="99" height="61" align="center"><b>F90</b></td> |
---|
386 | !@ <td width="94" height="61" align="center"><b>F90</b></td> |
---|
387 | !@ </tr> |
---|
388 | !@ </table> |
---|
389 | |
---|
390 | |
---|
391 | INTERFACE OPERATOR (-) |
---|
392 | MODULE PROCEDURE unarySUB |
---|
393 | MODULE PROCEDURE subs |
---|
394 | MODULE PROCEDURE ctsub |
---|
395 | MODULE PROCEDURE csubt |
---|
396 | MODULE PROCEDURE tsub |
---|
397 | MODULE PROCEDURE subt |
---|
398 | MODULE PROCEDURE cscsub |
---|
399 | MODULE PROCEDURE dscsub |
---|
400 | MODULE PROCEDURE csubsc |
---|
401 | MODULE PROCEDURE dsubsc |
---|
402 | MODULE PROCEDURE subsc |
---|
403 | MODULE PROCEDURE scsub |
---|
404 | MODULE PROCEDURE isubsc |
---|
405 | MODULE PROCEDURE iscsub |
---|
406 | END INTERFACE |
---|
407 | |
---|
408 | !@ <table border="4" cellspacing="1" bordercolor="#000000" id="AutoNumber3" width="684" height="445"> |
---|
409 | !@ <tr> |
---|
410 | !@ <td width="78" height="84" align="center" rowspan="2" colspan="2"> |
---|
411 | !@ <span style="text-transform: uppercase"> |
---|
412 | !@ <font face="Times New Roman" size="4"><b> </b> |
---|
413 | !@ * </font></span></td> |
---|
414 | !@ <td width="193" height="40" align="center" colspan="2"> |
---|
415 | !@ <font size="2">COMPLEX</font></td> |
---|
416 | !@ <td width="288" height="40" align="center" colspan="3"> |
---|
417 | !@ <font size="2">REAL</font></td> |
---|
418 | !@ <td width="95" height="82" align="center" rowspan="2"> |
---|
419 | !@ <span style="text-transform: uppercase"> |
---|
420 | !@ <font face="Times New Roman" size="2">Integer</font></span></td> |
---|
421 | !@ </tr> |
---|
422 | !@ <tr> |
---|
423 | !@ <td width="88" height="39" align="center"> |
---|
424 | !@ <p> |
---|
425 | !@ <span style="text-transform: uppercase"> |
---|
426 | !@ <font face="Times New Roman" size="2">COMPLEX TAYLOR</font></span></p> |
---|
427 | !@ </td> |
---|
428 | !@ <td width="105" height="42" align="center"> |
---|
429 | !@ <span style="text-transform: uppercase"> |
---|
430 | !@ <font face="Times New Roman" size="2">COMPLEX(dp)</font></span></td> |
---|
431 | !@ <td width="88" height="39" align="center"> |
---|
432 | !@ <span style="text-transform: uppercase"> |
---|
433 | !@ <font face="Times New Roman" size="2">TAYLOR</font></span></td> |
---|
434 | !@ <td width="101" height="39" align="center"> |
---|
435 | !@ <span style="text-transform: uppercase"> |
---|
436 | !@ <font face="Times New Roman" size="2">rEAL(DP)</font></span></td> |
---|
437 | !@ <td width="100" height="39" align="center"> |
---|
438 | !@ <span style="text-transform: uppercase"> |
---|
439 | !@ <font face="Times New Roman" size="2">REAL(SP)</font></span></td> |
---|
440 | !@ </tr> |
---|
441 | !@ <tr> |
---|
442 | !@ <td width="39" height="109" align="center" rowspan="2"> |
---|
443 | !@ <font size="2">COMPLEX</font></td> |
---|
444 | !@ <td width="39" height="54" align="center"> |
---|
445 | !@ <span style="text-transform: uppercase"> |
---|
446 | !@ <font face="Times New Roman" size="2">COMPLEX TAYLOR</font></span></td> |
---|
447 | !@ <td width="84" height="53" align="center"> |
---|
448 | !@ <b> |
---|
449 | !@ <font size="2"><a href="l_complex_taylor.htm#MUL" style="text-decoration: none">MUL</a></font></b></td> |
---|
450 | !@ <td width="105" height="53" align="center"> |
---|
451 | !@ <b> |
---|
452 | !@ <font size="2"><a href="l_complex_taylor.htm#CMULSC" style="text-decoration: none">CMULSC</a></font></b></td> |
---|
453 | !@ <td width="92" height="53" align="center"> |
---|
454 | !@ <b> |
---|
455 | !@ <font size="2"><a href="l_complex_taylor.htm#MULT" style="text-decoration: none">MULT</a></font></b></td> |
---|
456 | !@ <td width="102" height="53" align="center"> |
---|
457 | !@ <b> |
---|
458 | !@ <font size="2"><a href="l_complex_taylor.htm#DMULSC" style="text-decoration: none">DMULSC</a></font></b></td> |
---|
459 | !@ <td width="99" height="53" align="center"> |
---|
460 | !@ <b> |
---|
461 | !@ <font size="2"><a href="l_complex_taylor.htm#MULSC" style="text-decoration: none">MULSC</a></font></b></td> |
---|
462 | !@ <td width="94" height="53" align="center"><b><font size="2"> |
---|
463 | !@ <a href="l_complex_taylor.htm#IMULSC" style="text-decoration: none">IMULSC</a></font></b></td> |
---|
464 | !@ </tr> |
---|
465 | !@ <tr> |
---|
466 | !@ <td width="39" height="55" align="center"> |
---|
467 | !@ <span style="text-transform: uppercase"> |
---|
468 | !@ <font face="Times New Roman" size="2">COMPLEX(DP)</font></span></td> |
---|
469 | !@ <td width="84" height="55" align="center"> |
---|
470 | !@ <b> |
---|
471 | !@ <font size="2"><a href="l_complex_taylor.htm#CSCMUL" style="text-decoration: none">CSCMUL</a></font></b></td> |
---|
472 | !@ <td width="105" height="55" align="center"> |
---|
473 | !@ <b>F90</b></td> |
---|
474 | !@ <td width="92" height="55" align="center"> |
---|
475 | !@ <b> |
---|
476 | !@ <font size="2"><a href="l_complex_taylor.htm#CMULT" style="text-decoration: none">CMULT</a></font></b></td> |
---|
477 | !@ <td width="102" height="55" align="center"> |
---|
478 | !@ <b>F90</b></td> |
---|
479 | !@ <td width="99" height="55" align="center"> |
---|
480 | !@ <b>F90</b></td> |
---|
481 | !@ <td width="94" height="55" align="center"><b>F90</b></td> |
---|
482 | !@ </tr> |
---|
483 | !@ <tr> |
---|
484 | !@ <td width="39" height="171" align="center" rowspan="3"> |
---|
485 | !@ <font size="2">REAL</font></td> |
---|
486 | !@ <td width="39" height="54" align="center"> |
---|
487 | !@ <span style="text-transform: uppercase"> |
---|
488 | !@ <font face="Times New Roman" size="2">TAYLOR</font></span></td> |
---|
489 | !@ <td width="84" height="50" align="center"> |
---|
490 | !@ <b> |
---|
491 | !@ <font size="2"><a href="l_complex_taylor.htm#TMUL" style="text-decoration: none">TMUL</a></font></b></td> |
---|
492 | !@ <td width="105" height="50" align="center"> |
---|
493 | !@ <b> |
---|
494 | !@ <font size="2"><a href="l_complex_taylor.htm#CTMUL" style="text-decoration: none">CTMUL</a></font></b></td> |
---|
495 | !@ <td width="92" height="50" align="center"> |
---|
496 | !@ <span style="text-transform: uppercase"> |
---|
497 | !@ <font face="Times New Roman" size="2"> |
---|
498 | !@ <a href="i_tpsa.htm#MUL" style="text-decoration: none; font-style:italic"> |
---|
499 | !@ <font color="#FF0000">MUL</font></a></font></span></td> |
---|
500 | !@ <td width="77" height="20" align="center"> |
---|
501 | !@ <span style="text-transform: uppercase"> |
---|
502 | !@ <font face="Times New Roman" size="2"> |
---|
503 | !@ <a href="i_tpsa.htm#DMULSC" style="text-decoration: none; font-style:italic"> |
---|
504 | !@ <font color="#FF0000">dMULsc</font></a></font></span></td> |
---|
505 | !@ <td width="78" height="20" align="center"> |
---|
506 | !@ <font size="2" face="Times New Roman"> |
---|
507 | !@ <a href="i_tpsa.htm#MULSC" style="text-decoration: none; font-style:italic"> |
---|
508 | !@ <font color="#FF0000">MULSC</font></a></font></td> |
---|
509 | !@ <td width="56" height="20" align="center"> |
---|
510 | !@ <font size="2" face="Times New Roman"> |
---|
511 | !@ <font color="#FF0000"> </font> |
---|
512 | !@ <a href="i_tpsa.htm#IMULSC" style="text-decoration: none; font-style:italic"> |
---|
513 | !@ <font color="#FF0000">IMULSC</font></a></font></td> |
---|
514 | !@ </tr> |
---|
515 | !@ <tr> |
---|
516 | !@ <td width="39" height="56" align="center"> |
---|
517 | !@ <span style="text-transform: uppercase"> |
---|
518 | !@ <font face="Times New Roman" size="2">REAL(DP)</font></span></td> |
---|
519 | !@ <td width="84" height="55" align="center"> |
---|
520 | !@ <b> |
---|
521 | !@ <font size="2"><a href="l_complex_taylor.htm#DSCMUL" style="text-decoration: none">DSCMUL</a></font></b></td> |
---|
522 | !@ <td width="105" height="55" align="center"> |
---|
523 | !@ <b>F90</b></td> |
---|
524 | !@ <td width="77" height="20" align="center"> |
---|
525 | !@ <span style="text-transform: uppercase"> |
---|
526 | !@ <font face="Times New Roman" size="2"> |
---|
527 | !@ <a href="i_tpsa.htm#DSCMUL" style="text-decoration: none; font-style:italic"> |
---|
528 | !@ <font color="#FF0000">dscMUL</font></a></font></span></td> |
---|
529 | !@ <td width="102" height="55" align="center"><b>F90</b></td> |
---|
530 | !@ <td width="99" height="55" align="center"><b>F90</b></td> |
---|
531 | !@ <td width="94" height="55" align="center"><b>F90</b></td> |
---|
532 | !@ </tr> |
---|
533 | !@ <tr> |
---|
534 | !@ <td width="39" height="56" align="center"> |
---|
535 | !@ <span style="text-transform: uppercase"> |
---|
536 | !@ <font face="Times New Roman" size="2">REAL(SP)</font></span></td> |
---|
537 | !@ <td width="84" height="52" align="center"> |
---|
538 | !@ <b> |
---|
539 | !@ <font size="2"><a href="l_complex_taylor.htm#SCMUL" style="text-decoration: none">SCMUL</a></font></b></td> |
---|
540 | !@ <td width="105" height="52" align="center"> |
---|
541 | !@ <b>F90</b></td> |
---|
542 | !@ <td width="77" height="20" align="center"> |
---|
543 | !@ <font size="2" face="Times New Roman"> |
---|
544 | !@ <a href="i_tpsa.htm#SCMUL" style="text-decoration: none; font-style:italic"> |
---|
545 | !@ <font color="#FF0000">SCMUL</font></a></font></td> |
---|
546 | !@ <td width="102" height="52" align="center"><b>F90</b></td> |
---|
547 | !@ <td width="99" height="52" align="center"><b>F90</b></td> |
---|
548 | !@ <td width="94" height="52" align="center"><b>F90</b></td> |
---|
549 | !@ </tr> |
---|
550 | !@ <tr> |
---|
551 | !@ <td width="78" height="56" align="center" colspan="2"> |
---|
552 | !@ <span style="text-transform: uppercase"> |
---|
553 | !@ <font face="Times New Roman" size="2">Integer</font></span></td> |
---|
554 | !@ <td width="84" height="61" align="center"><b><font size="2"> |
---|
555 | !@ <a href="l_complex_taylor.htm#ISCMUL" style="text-decoration: none">ISCMUL</a></font></b></td> |
---|
556 | !@ <td width="105" height="61" align="center"><b>F90</b></td> |
---|
557 | !@ <td width="77" height="20" align="center"> |
---|
558 | !@ <font size="2" face="Times New Roman"> |
---|
559 | !@ <a href="i_tpsa.htm#ISCMUL" style="text-decoration: none; font-style:italic"> |
---|
560 | !@ <font color="#FF0000">ISCMUL</font></a></font></td> |
---|
561 | !@ <td width="102" height="61" align="center"><b>F90</b></td> |
---|
562 | !@ <td width="99" height="61" align="center"><b>F90</b></td> |
---|
563 | !@ <td width="94" height="61" align="center"><b>F90</b></td> |
---|
564 | !@ </tr> |
---|
565 | !@ </table> |
---|
566 | |
---|
567 | |
---|
568 | INTERFACE OPERATOR (*) |
---|
569 | MODULE PROCEDURE mul |
---|
570 | MODULE PROCEDURE tmul |
---|
571 | MODULE PROCEDURE mult |
---|
572 | MODULE PROCEDURE cscmul |
---|
573 | MODULE PROCEDURE ctmul |
---|
574 | MODULE PROCEDURE dscmul |
---|
575 | MODULE PROCEDURE cmulsc |
---|
576 | MODULE PROCEDURE cmult |
---|
577 | MODULE PROCEDURE dmulsc |
---|
578 | MODULE PROCEDURE mulsc |
---|
579 | MODULE PROCEDURE scmul |
---|
580 | MODULE PROCEDURE imulsc |
---|
581 | MODULE PROCEDURE iscmul |
---|
582 | END INTERFACE |
---|
583 | |
---|
584 | !@ <table border="4" cellspacing="1" bordercolor="#000000" id="AutoNumber4" width="684" height="445"> |
---|
585 | !@ <tr> |
---|
586 | !@ <td width="78" height="84" align="center" rowspan="2" colspan="2"> |
---|
587 | !@ <span style="text-transform: uppercase"> |
---|
588 | !@ <font face="Times New Roman" size="4"><b> </b> |
---|
589 | !@ / </font></span></td> |
---|
590 | !@ <td width="193" height="40" align="center" colspan="2"> |
---|
591 | !@ <font size="2">COMPLEX</font></td> |
---|
592 | !@ <td width="288" height="40" align="center" colspan="3"> |
---|
593 | !@ <font size="2">REAL</font></td> |
---|
594 | !@ <td width="95" height="82" align="center" rowspan="2"> |
---|
595 | !@ <span style="text-transform: uppercase"> |
---|
596 | !@ <font face="Times New Roman" size="2">Integer</font></span></td> |
---|
597 | !@ </tr> |
---|
598 | !@ <tr> |
---|
599 | !@ <td width="88" height="39" align="center"> |
---|
600 | !@ <p> |
---|
601 | !@ <span style="text-transform: uppercase"> |
---|
602 | !@ <font face="Times New Roman" size="2">COMPLEX TAYLOR</font></span></p> |
---|
603 | !@ </td> |
---|
604 | !@ <td width="105" height="42" align="center"> |
---|
605 | !@ <span style="text-transform: uppercase"> |
---|
606 | !@ <font face="Times New Roman" size="2">COMPLEX(dp)</font></span></td> |
---|
607 | !@ <td width="88" height="39" align="center"> |
---|
608 | !@ <span style="text-transform: uppercase"> |
---|
609 | !@ <font face="Times New Roman" size="2">TAYLOR</font></span></td> |
---|
610 | !@ <td width="101" height="39" align="center"> |
---|
611 | !@ <span style="text-transform: uppercase"> |
---|
612 | !@ <font face="Times New Roman" size="2">rEAL(DP)</font></span></td> |
---|
613 | !@ <td width="100" height="39" align="center"> |
---|
614 | !@ <span style="text-transform: uppercase"> |
---|
615 | !@ <font face="Times New Roman" size="2">REAL(SP)</font></span></td> |
---|
616 | !@ </tr> |
---|
617 | !@ <tr> |
---|
618 | !@ <td width="39" height="109" align="center" rowspan="2"> |
---|
619 | !@ <font size="2">COMPLEX</font></td> |
---|
620 | !@ <td width="39" height="54" align="center"> |
---|
621 | !@ <span style="text-transform: uppercase"> |
---|
622 | !@ <font face="Times New Roman" size="2">COMPLEX TAYLOR</font></span></td> |
---|
623 | !@ <td width="84" height="53" align="center"> |
---|
624 | !@ <font size="2"> |
---|
625 | !@ <a href="l_complex_taylor.htm#DIV" style="text-decoration: none; font-weight:700">DIV</a></font></td> |
---|
626 | !@ <td width="105" height="53" align="center"> |
---|
627 | !@ <font size="2"> |
---|
628 | !@ <a href="l_complex_taylor.htm#CDIVSC" style="text-decoration: none; font-weight:700">CDIVSC</a></font></td> |
---|
629 | !@ <td width="92" height="53" align="center"> |
---|
630 | !@ <font size="2"> |
---|
631 | !@ <a href="l_complex_taylor.htm#DIVT" style="text-decoration: none; font-weight:700">DIVT</a></font></td> |
---|
632 | !@ <td width="102" height="53" align="center"> |
---|
633 | !@ <font size="2"> |
---|
634 | !@ <a href="l_complex_taylor.htm#DDIVSC" style="text-decoration: none; font-weight:700">DDIVSC</a></font></td> |
---|
635 | !@ <td width="99" height="53" align="center"> |
---|
636 | !@ <font size="2"> |
---|
637 | !@ <a href="l_complex_taylor.htm#DIVSC" style="text-decoration: none; font-weight:700">DIVSC</a></font></td> |
---|
638 | !@ <td width="94" height="53" align="center"><font size="2"> |
---|
639 | !@ <a href="l_complex_taylor.htm#IDIVSC" style="text-decoration: none; font-weight:700">IDIVSC</a></font></td> |
---|
640 | !@ </tr> |
---|
641 | !@ <tr> |
---|
642 | !@ <td width="39" height="55" align="center"> |
---|
643 | !@ <span style="text-transform: uppercase"> |
---|
644 | !@ <font face="Times New Roman" size="2">COMPLEX(DP)</font></span></td> |
---|
645 | !@ <td width="84" height="55" align="center"> |
---|
646 | !@ <font size="2"> |
---|
647 | !@ <a href="l_complex_taylor.htm#CSCDIV" style="text-decoration: none; font-weight:700">CSCDIV</a></font></td> |
---|
648 | !@ <td width="105" height="55" align="center"> |
---|
649 | !@ <b>F90</b></td> |
---|
650 | !@ <td width="92" height="55" align="center"> |
---|
651 | !@ <font size="2"> |
---|
652 | !@ <a href="l_complex_taylor.htm#CDIVT" style="text-decoration: none; font-weight:700">CDIVT</a></font></td> |
---|
653 | !@ <td width="102" height="55" align="center"> |
---|
654 | !@ <b>F90</b></td> |
---|
655 | !@ <td width="99" height="55" align="center"> |
---|
656 | !@ <b>F90</b></td> |
---|
657 | !@ <td width="94" height="55" align="center"><b>F90</b></td> |
---|
658 | !@ </tr> |
---|
659 | !@ <tr> |
---|
660 | !@ <td width="39" height="171" align="center" rowspan="3"> |
---|
661 | !@ <font size="2">REAL</font></td> |
---|
662 | !@ <td width="39" height="54" align="center"> |
---|
663 | !@ <span style="text-transform: uppercase"> |
---|
664 | !@ <font face="Times New Roman" size="2">TAYLOR</font></span></td> |
---|
665 | !@ <td width="84" height="50" align="center"> |
---|
666 | !@ <font size="2"> |
---|
667 | !@ <a href="l_complex_taylor.htm#TDIV" style="text-decoration: none; font-weight:700">TDIV</a></font></td> |
---|
668 | !@ <td width="105" height="50" align="center"> |
---|
669 | !@ <font size="2"> |
---|
670 | !@ <a href="l_complex_taylor.htm#CTDIV" style="text-decoration: none; font-weight:700">CTDIV</a></font></td> |
---|
671 | !@ <td width="92" height="50" align="center"> |
---|
672 | !@ <span style="text-transform: uppercase"> |
---|
673 | !@ <font face="Times New Roman" size="2"> |
---|
674 | !@ <a href="i_tpsa.htm#DIV" style="text-decoration: none; font-style:italic"> |
---|
675 | !@ <font color="#FF0000">div</font></a></font></span></td> |
---|
676 | !@ <td width="77" height="20" align="center"> |
---|
677 | !@ <span style="text-transform: uppercase"> |
---|
678 | !@ <font face="Times New Roman" size="2"> |
---|
679 | !@ <a href="i_tpsa.htm#DDIVSC" style="text-decoration: none; font-style:italic"> |
---|
680 | !@ <font color="#FF0000">dDIVsc</font></a></font></span></td> |
---|
681 | !@ <td width="78" height="20" align="center"> |
---|
682 | !@ <font size="2"> |
---|
683 | !@ <a href="i_tpsa.htm#DIVSC" style="text-decoration: none; font-style:italic"> |
---|
684 | !@ <font color="#FF0000">DIVSC</font></a></font></td> |
---|
685 | !@ <td width="56" height="20" align="center"> |
---|
686 | !@ <font size="2"> |
---|
687 | !@ <font color="#FF0000"> </font> |
---|
688 | !@ <a href="i_tpsa.htm#IDIVSC" style="text-decoration: none; font-style:italic"> |
---|
689 | !@ <font color="#FF0000">IDIVSC</font></a></font></td> |
---|
690 | !@ </tr> |
---|
691 | !@ <tr> |
---|
692 | !@ <td width="39" height="56" align="center"> |
---|
693 | !@ <span style="text-transform: uppercase"> |
---|
694 | !@ <font face="Times New Roman" size="2">REAL(DP)</font></span></td> |
---|
695 | !@ <td width="84" height="55" align="center"> |
---|
696 | !@ <font size="2"> |
---|
697 | !@ <a href="l_complex_taylor.htm#DSCDIV" style="text-decoration: none; font-weight:700">DSCDIV</a></font></td> |
---|
698 | !@ <td width="105" height="55" align="center"> |
---|
699 | !@ <b>F90</b></td> |
---|
700 | !@ <td width="77" height="20" align="center"> |
---|
701 | !@ <span style="text-transform: uppercase"> |
---|
702 | !@ <font face="Times New Roman" size="2"> |
---|
703 | !@ <a href="i_tpsa.htm#DSCDIV" style="text-decoration: none; font-style:italic"> |
---|
704 | !@ <font color="#FF0000">dscDIV</font></a></font></span></td> |
---|
705 | !@ <td width="102" height="55" align="center"><b>F90</b></td> |
---|
706 | !@ <td width="99" height="55" align="center"><b>F90</b></td> |
---|
707 | !@ <td width="94" height="55" align="center"><b>F90</b></td> |
---|
708 | !@ </tr> |
---|
709 | !@ <tr> |
---|
710 | !@ <td width="39" height="56" align="center"> |
---|
711 | !@ <span style="text-transform: uppercase"> |
---|
712 | !@ <font face="Times New Roman" size="2">REAL(SP)</font></span></td> |
---|
713 | !@ <td width="84" height="52" align="center"> |
---|
714 | !@ <font size="2"> |
---|
715 | !@ <a href="l_complex_taylor.htm#SCDIV" style="text-decoration: none; font-weight:700">SCDIV</a></font></td> |
---|
716 | !@ <td width="105" height="52" align="center"> |
---|
717 | !@ <b>F90</b></td> |
---|
718 | !@ <td width="77" height="20" align="center"> |
---|
719 | !@ <font size="2"> |
---|
720 | !@ <a href="i_tpsa.htm#SCDIV" style="text-decoration: none; font-style:italic"> |
---|
721 | !@ <font color="#FF0000">SCDIV</font></a></font></td> |
---|
722 | !@ <td width="102" height="52" align="center"><b>F90</b></td> |
---|
723 | !@ <td width="99" height="52" align="center"><b>F90</b></td> |
---|
724 | !@ <td width="94" height="52" align="center"><b>F90</b></td> |
---|
725 | !@ </tr> |
---|
726 | !@ <tr> |
---|
727 | !@ <td width="78" height="56" align="center" colspan="2"> |
---|
728 | !@ <span style="text-transform: uppercase"> |
---|
729 | !@ <font face="Times New Roman" size="2">Integer</font></span></td> |
---|
730 | !@ <td width="84" height="61" align="center"><font size="2"> |
---|
731 | !@ <a href="l_complex_taylor.htm#ISCDIV" style="text-decoration: none; font-weight:700"> |
---|
732 | !@ ISCDIV</a></font></td> |
---|
733 | !@ <td width="105" height="61" align="center"><b>F90</b></td> |
---|
734 | !@ <td width="77" height="20" align="center"> |
---|
735 | !@ <font size="2"> |
---|
736 | !@ <a href="i_tpsa.htm#ISCDIV" style="text-decoration: none; font-style:italic"> |
---|
737 | !@ <font color="#FF0000">ISCDIV</font></a></font></td> |
---|
738 | !@ <td width="102" height="61" align="center"><b>F90</b></td> |
---|
739 | !@ <td width="99" height="61" align="center"><b>F90</b></td> |
---|
740 | !@ <td width="94" height="61" align="center"><b>F90</b></td> |
---|
741 | !@ </tr> |
---|
742 | !@ </table> |
---|
743 | |
---|
744 | |
---|
745 | INTERFACE OPERATOR (/) |
---|
746 | MODULE PROCEDURE div |
---|
747 | MODULE PROCEDURE divt |
---|
748 | MODULE PROCEDURE tdiv |
---|
749 | MODULE PROCEDURE ctdiv |
---|
750 | MODULE PROCEDURE cdivt |
---|
751 | MODULE PROCEDURE ddivsc |
---|
752 | MODULE PROCEDURE cdivsc |
---|
753 | MODULE PROCEDURE dscdiv |
---|
754 | MODULE PROCEDURE cscdiv |
---|
755 | MODULE PROCEDURE divsc |
---|
756 | MODULE PROCEDURE scdiv |
---|
757 | MODULE PROCEDURE idivsc |
---|
758 | MODULE PROCEDURE iscdiv |
---|
759 | END INTERFACE |
---|
760 | |
---|
761 | |
---|
762 | INTERFACE OPERATOR (**) |
---|
763 | MODULE PROCEDURE POW |
---|
764 | MODULE PROCEDURE POWR |
---|
765 | MODULE PROCEDURE POWR8 |
---|
766 | END INTERFACE |
---|
767 | |
---|
768 | ! New Operators |
---|
769 | |
---|
770 | INTERFACE OPERATOR (.var.) |
---|
771 | MODULE PROCEDURE varco |
---|
772 | MODULE PROCEDURE varco1 |
---|
773 | END INTERFACE |
---|
774 | |
---|
775 | INTERFACE OPERATOR (.mono.) |
---|
776 | MODULE PROCEDURE dputint !@1 Accepts J(nv) </br> |
---|
777 | MODULE PROCEDURE dputchar !@1 Accepts String such as '12 </br> |
---|
778 | END INTERFACE |
---|
779 | |
---|
780 | INTERFACE OPERATOR (.d.) |
---|
781 | MODULE PROCEDURE getdiff |
---|
782 | END INTERFACE |
---|
783 | |
---|
784 | INTERFACE OPERATOR (.K.) |
---|
785 | MODULE PROCEDURE getdATRA |
---|
786 | END INTERFACE |
---|
787 | |
---|
788 | INTERFACE OPERATOR (.SUB.) |
---|
789 | MODULE PROCEDURE GETORDER |
---|
790 | MODULE PROCEDURE getchar |
---|
791 | MODULE PROCEDURE GETint |
---|
792 | END INTERFACE |
---|
793 | |
---|
794 | INTERFACE OPERATOR (.CUT.) |
---|
795 | MODULE PROCEDURE CUTORDER |
---|
796 | END INTERFACE |
---|
797 | |
---|
798 | |
---|
799 | INTERFACE OPERATOR (.PAR.) |
---|
800 | MODULE PROCEDURE getcharnd2 |
---|
801 | MODULE PROCEDURE GETintnd2 |
---|
802 | END INTERFACE |
---|
803 | |
---|
804 | INTERFACE OPERATOR (<=) |
---|
805 | MODULE PROCEDURE getcharnd2s |
---|
806 | MODULE PROCEDURE GETintnd2s |
---|
807 | MODULE PROCEDURE GETintk |
---|
808 | END INTERFACE |
---|
809 | |
---|
810 | ! Intrinsic Routines |
---|
811 | |
---|
812 | INTERFACE aimag |
---|
813 | MODULE PROCEDURE dimagt |
---|
814 | END INTERFACE |
---|
815 | INTERFACE dimag |
---|
816 | MODULE PROCEDURE dimagt |
---|
817 | END INTERFACE |
---|
818 | |
---|
819 | INTERFACE dble |
---|
820 | MODULE PROCEDURE drealt |
---|
821 | END INTERFACE |
---|
822 | INTERFACE dreal |
---|
823 | MODULE PROCEDURE drealt |
---|
824 | END INTERFACE |
---|
825 | |
---|
826 | INTERFACE cmplx |
---|
827 | MODULE PROCEDURE dcmplxt |
---|
828 | END INTERFACE |
---|
829 | INTERFACE dcmplx |
---|
830 | MODULE PROCEDURE dcmplxt |
---|
831 | END INTERFACE |
---|
832 | |
---|
833 | |
---|
834 | |
---|
835 | INTERFACE abs |
---|
836 | MODULE PROCEDURE abstpsat |
---|
837 | END INTERFACE |
---|
838 | INTERFACE dabs |
---|
839 | MODULE PROCEDURE abstpsat |
---|
840 | END INTERFACE |
---|
841 | |
---|
842 | INTERFACE log |
---|
843 | MODULE PROCEDURE logtpsat |
---|
844 | END INTERFACE |
---|
845 | INTERFACE dlog |
---|
846 | MODULE PROCEDURE logtpsat |
---|
847 | END INTERFACE |
---|
848 | INTERFACE clog |
---|
849 | MODULE PROCEDURE logtpsat |
---|
850 | END INTERFACE |
---|
851 | INTERFACE cdlog |
---|
852 | MODULE PROCEDURE logtpsat |
---|
853 | END INTERFACE |
---|
854 | |
---|
855 | |
---|
856 | INTERFACE atan |
---|
857 | MODULE PROCEDURE datant |
---|
858 | MODULE PROCEDURE datantt |
---|
859 | END INTERFACE |
---|
860 | INTERFACE datan |
---|
861 | MODULE PROCEDURE datant |
---|
862 | MODULE PROCEDURE datantt |
---|
863 | END INTERFACE |
---|
864 | |
---|
865 | INTERFACE asin |
---|
866 | MODULE PROCEDURE dasint |
---|
867 | MODULE PROCEDURE dasintt |
---|
868 | END INTERFACE |
---|
869 | INTERFACE dasin |
---|
870 | MODULE PROCEDURE dasint |
---|
871 | MODULE PROCEDURE dasintt |
---|
872 | END INTERFACE |
---|
873 | |
---|
874 | INTERFACE acos |
---|
875 | MODULE PROCEDURE dacost |
---|
876 | MODULE PROCEDURE dacostt |
---|
877 | END INTERFACE |
---|
878 | INTERFACE dacos |
---|
879 | MODULE PROCEDURE dacost |
---|
880 | MODULE PROCEDURE dacostt |
---|
881 | END INTERFACE |
---|
882 | |
---|
883 | INTERFACE tan |
---|
884 | MODULE PROCEDURE tant |
---|
885 | END INTERFACE |
---|
886 | INTERFACE dtan |
---|
887 | MODULE PROCEDURE tant |
---|
888 | END INTERFACE |
---|
889 | |
---|
890 | |
---|
891 | |
---|
892 | INTERFACE cos |
---|
893 | MODULE PROCEDURE dcost |
---|
894 | END INTERFACE |
---|
895 | INTERFACE cdcos |
---|
896 | MODULE PROCEDURE dcost |
---|
897 | END INTERFACE |
---|
898 | INTERFACE ccos |
---|
899 | MODULE PROCEDURE dcost |
---|
900 | END INTERFACE |
---|
901 | INTERFACE dcos |
---|
902 | MODULE PROCEDURE dcost |
---|
903 | END INTERFACE |
---|
904 | |
---|
905 | |
---|
906 | INTERFACE sin |
---|
907 | MODULE PROCEDURE dsint |
---|
908 | END INTERFACE |
---|
909 | INTERFACE cdsin |
---|
910 | MODULE PROCEDURE dsint |
---|
911 | END INTERFACE |
---|
912 | INTERFACE csin |
---|
913 | MODULE PROCEDURE dsint |
---|
914 | END INTERFACE |
---|
915 | INTERFACE dsin |
---|
916 | MODULE PROCEDURE dsint |
---|
917 | END INTERFACE |
---|
918 | |
---|
919 | |
---|
920 | INTERFACE exp |
---|
921 | MODULE PROCEDURE exptpsat |
---|
922 | END INTERFACE |
---|
923 | INTERFACE dexp |
---|
924 | MODULE PROCEDURE exptpsat |
---|
925 | END INTERFACE |
---|
926 | INTERFACE cexp |
---|
927 | MODULE PROCEDURE exptpsat |
---|
928 | END INTERFACE |
---|
929 | INTERFACE cdexp |
---|
930 | MODULE PROCEDURE exptpsat |
---|
931 | END INTERFACE |
---|
932 | |
---|
933 | |
---|
934 | INTERFACE cosh |
---|
935 | MODULE PROCEDURE dcosht |
---|
936 | END INTERFACE |
---|
937 | INTERFACE dcosh |
---|
938 | MODULE PROCEDURE dcosht |
---|
939 | END INTERFACE |
---|
940 | |
---|
941 | INTERFACE sinh |
---|
942 | MODULE PROCEDURE dsinht |
---|
943 | END INTERFACE |
---|
944 | INTERFACE dsinh |
---|
945 | MODULE PROCEDURE dsinht |
---|
946 | END INTERFACE |
---|
947 | |
---|
948 | INTERFACE tanh |
---|
949 | MODULE PROCEDURE dtanht |
---|
950 | END INTERFACE |
---|
951 | INTERFACE dtanh |
---|
952 | MODULE PROCEDURE dtanht |
---|
953 | END INTERFACE |
---|
954 | |
---|
955 | INTERFACE sqrt |
---|
956 | MODULE PROCEDURE dsqrtt |
---|
957 | END INTERFACE |
---|
958 | INTERFACE dsqrt |
---|
959 | MODULE PROCEDURE dsqrtt |
---|
960 | END INTERFACE |
---|
961 | INTERFACE cdsqrt |
---|
962 | MODULE PROCEDURE dsqrtt |
---|
963 | END INTERFACE |
---|
964 | |
---|
965 | ! End Intrinsic Routines |
---|
966 | |
---|
967 | ! Non-intrisic Functions |
---|
968 | |
---|
969 | ! INTERFACE var |
---|
970 | ! MODULE PROCEDURE varc |
---|
971 | ! MODULE PROCEDURE varcC |
---|
972 | ! END INTERFACE |
---|
973 | ! |
---|
974 | ! INTERFACE shiftda |
---|
975 | ! MODULE PROCEDURE shiftc |
---|
976 | ! END INTERFACE |
---|
977 | |
---|
978 | INTERFACE pok |
---|
979 | MODULE PROCEDURE pokc |
---|
980 | END INTERFACE |
---|
981 | |
---|
982 | INTERFACE pek |
---|
983 | MODULE PROCEDURE pekc |
---|
984 | END INTERFACE |
---|
985 | |
---|
986 | INTERFACE CFU |
---|
987 | MODULE PROCEDURE CFUC |
---|
988 | MODULE PROCEDURE CFURES |
---|
989 | END INTERFACE |
---|
990 | |
---|
991 | INTERFACE full_abs |
---|
992 | MODULE PROCEDURE full_abstpsat |
---|
993 | END INTERFACE |
---|
994 | |
---|
995 | |
---|
996 | ! i/o |
---|
997 | |
---|
998 | INTERFACE daprint |
---|
999 | MODULE PROCEDURE printcomplex |
---|
1000 | END INTERFACE |
---|
1001 | |
---|
1002 | INTERFACE print |
---|
1003 | MODULE PROCEDURE printcomplex |
---|
1004 | END INTERFACE |
---|
1005 | |
---|
1006 | INTERFACE read |
---|
1007 | MODULE PROCEDURE inputcomplex |
---|
1008 | END INTERFACE |
---|
1009 | |
---|
1010 | INTERFACE dainput |
---|
1011 | MODULE PROCEDURE inputcomplex |
---|
1012 | END INTERFACE |
---|
1013 | |
---|
1014 | ! end of /o |
---|
1015 | |
---|
1016 | ! Constructors and Destructors |
---|
1017 | |
---|
1018 | INTERFACE alloc |
---|
1019 | MODULE PROCEDURE alloccomplex |
---|
1020 | MODULE PROCEDURE a_opt |
---|
1021 | MODULE PROCEDURE alloccomplexn |
---|
1022 | END INTERFACE |
---|
1023 | |
---|
1024 | |
---|
1025 | INTERFACE kill |
---|
1026 | MODULE PROCEDURE killcomplex |
---|
1027 | MODULE PROCEDURE k_opt |
---|
1028 | MODULE PROCEDURE killcomplexn |
---|
1029 | END INTERFACE |
---|
1030 | |
---|
1031 | ! end Constructors and Destructors |
---|
1032 | |
---|
1033 | ! managing |
---|
1034 | |
---|
1035 | INTERFACE ass |
---|
1036 | MODULE PROCEDURE assc |
---|
1037 | END INTERFACE |
---|
1038 | |
---|
1039 | ! end managing |
---|
1040 | |
---|
1041 | |
---|
1042 | contains |
---|
1043 | |
---|
1044 | FUNCTION dimagt( S1 ) |
---|
1045 | implicit none |
---|
1046 | TYPE (taylor) dimagt |
---|
1047 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1048 | integer localmaster |
---|
1049 | localmaster=master |
---|
1050 | |
---|
1051 | |
---|
1052 | call ass(dimagt) !2002.12.25 |
---|
1053 | |
---|
1054 | dimagt=s1%i |
---|
1055 | |
---|
1056 | master=localmaster |
---|
1057 | END FUNCTION dimagt |
---|
1058 | |
---|
1059 | FUNCTION drealt( S1 ) |
---|
1060 | implicit none |
---|
1061 | TYPE (taylor) drealt |
---|
1062 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1063 | integer localmaster |
---|
1064 | localmaster=master |
---|
1065 | |
---|
1066 | |
---|
1067 | call ass(drealt) !2002.12.25 |
---|
1068 | |
---|
1069 | drealt=s1%r |
---|
1070 | |
---|
1071 | master=localmaster |
---|
1072 | END FUNCTION drealt |
---|
1073 | |
---|
1074 | FUNCTION GETCHARnd2( S1, S2 ) |
---|
1075 | implicit none |
---|
1076 | TYPE (complextaylor) GETCHARnd2 |
---|
1077 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1078 | CHARACTER(*) , INTENT (IN) :: S2 |
---|
1079 | |
---|
1080 | integer localmaster |
---|
1081 | localmaster=master |
---|
1082 | |
---|
1083 | call ass(GETCHARnd2) |
---|
1084 | |
---|
1085 | |
---|
1086 | GETCHARnd2%r=s1%r.par.s2 |
---|
1087 | GETCHARnd2%i=s1%i.par.s2 |
---|
1088 | |
---|
1089 | master=localmaster |
---|
1090 | |
---|
1091 | |
---|
1092 | END FUNCTION GETCHARnd2 |
---|
1093 | |
---|
1094 | FUNCTION GETintnd2( S1, S2 ) |
---|
1095 | implicit none |
---|
1096 | TYPE (complextaylor) GETintnd2 |
---|
1097 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1098 | integer , INTENT (IN) :: S2(:) |
---|
1099 | |
---|
1100 | integer localmaster |
---|
1101 | localmaster=master |
---|
1102 | |
---|
1103 | call ass(GETintnd2) |
---|
1104 | |
---|
1105 | |
---|
1106 | GETintnd2%r=s1%r.par.s2 |
---|
1107 | GETintnd2%i=s1%i.par.s2 |
---|
1108 | |
---|
1109 | master=localmaster |
---|
1110 | |
---|
1111 | |
---|
1112 | END FUNCTION GETintnd2 |
---|
1113 | |
---|
1114 | |
---|
1115 | FUNCTION GETCHARnd2s( S1, S2 ) |
---|
1116 | implicit none |
---|
1117 | TYPE (complextaylor) GETCHARnd2s |
---|
1118 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1119 | CHARACTER(*) , INTENT (IN) :: S2 |
---|
1120 | |
---|
1121 | integer localmaster |
---|
1122 | localmaster=master |
---|
1123 | |
---|
1124 | call ass(GETCHARnd2s) |
---|
1125 | |
---|
1126 | |
---|
1127 | GETCHARnd2s%r=s1%r<=s2 |
---|
1128 | GETCHARnd2s%i=s1%i<=s2 |
---|
1129 | |
---|
1130 | master=localmaster |
---|
1131 | |
---|
1132 | |
---|
1133 | END FUNCTION GETCHARnd2s |
---|
1134 | |
---|
1135 | FUNCTION GETintnd2s( S1, S2 ) |
---|
1136 | implicit none |
---|
1137 | TYPE (complextaylor) GETintnd2s |
---|
1138 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1139 | integer , INTENT (IN) :: S2(:) |
---|
1140 | |
---|
1141 | integer localmaster |
---|
1142 | localmaster=master |
---|
1143 | |
---|
1144 | call ass(GETintnd2s) |
---|
1145 | |
---|
1146 | |
---|
1147 | GETintnd2s%r= s1%r<=s2 |
---|
1148 | GETintnd2s%i= s1%i<=s2 |
---|
1149 | |
---|
1150 | master=localmaster |
---|
1151 | |
---|
1152 | |
---|
1153 | END FUNCTION GETintnd2s |
---|
1154 | |
---|
1155 | FUNCTION dputchar( S1, S2 ) |
---|
1156 | implicit none |
---|
1157 | TYPE (complextaylor) dputchar |
---|
1158 | complex(dp) , INTENT (IN) :: S1 |
---|
1159 | CHARACTER(*) , INTENT (IN) :: S2 |
---|
1160 | ! CHARACTER (LEN = LNV) resul |
---|
1161 | ! integer j(lnv),i,nd2par |
---|
1162 | |
---|
1163 | integer localmaster |
---|
1164 | localmaster=master |
---|
1165 | |
---|
1166 | call ass(dputchar) |
---|
1167 | |
---|
1168 | ! resul = trim(ADJUSTL (s2)) |
---|
1169 | ! |
---|
1170 | ! do i=1,lnv |
---|
1171 | ! j(i)=0 |
---|
1172 | ! enddo |
---|
1173 | ! |
---|
1174 | ! nd2par= len(trim(ADJUSTL (s2))) |
---|
1175 | ! !frs do i=1,len(trim(ADJUSTL (s2))) |
---|
1176 | ! do i=1,nd2par |
---|
1177 | ! CALL CHARINT(RESUL(I:I),J(I)) |
---|
1178 | ! if(i>nv) then |
---|
1179 | ! if(j(i)>0) then |
---|
1180 | ! call var(dputchar,cmplx(zero,zero,kind=dp),0,0) |
---|
1181 | ! return |
---|
1182 | ! endif |
---|
1183 | ! endif |
---|
1184 | ! enddo |
---|
1185 | ! |
---|
1186 | ! |
---|
1187 | ! call var(dputchar,cmplx(zero,zero,kind=dp),0,0) |
---|
1188 | ! call pok(dputchar,j,s1) |
---|
1189 | ! |
---|
1190 | dputchar%r= real(S1,kind=dp).mono.S2 |
---|
1191 | dputchar%i= aimag(S1).mono.S2 |
---|
1192 | |
---|
1193 | |
---|
1194 | master=localmaster |
---|
1195 | |
---|
1196 | END FUNCTION dputchar |
---|
1197 | |
---|
1198 | FUNCTION dputint( S1, S2 ) |
---|
1199 | implicit none |
---|
1200 | TYPE (complextaylor) dputint |
---|
1201 | complex(dp) , INTENT (IN) :: S1 |
---|
1202 | integer , INTENT (IN) :: S2(:) |
---|
1203 | ! integer j(lnv),i,nd2par |
---|
1204 | |
---|
1205 | integer localmaster |
---|
1206 | localmaster=master |
---|
1207 | |
---|
1208 | call ass(dputint) |
---|
1209 | |
---|
1210 | ! do i=1,lnv |
---|
1211 | ! j(i)=0 |
---|
1212 | ! enddo! |
---|
1213 | ! |
---|
1214 | ! nd2par=size(s2) |
---|
1215 | ! do i=1,nd2par |
---|
1216 | ! J(I)=s2(i) |
---|
1217 | ! enddo |
---|
1218 | |
---|
1219 | !frs do i=1,len(trim(ADJUSTL (s2))) |
---|
1220 | ! do i=1,nd2par |
---|
1221 | ! if(i>nv) then |
---|
1222 | ! if(j(i)>0) then |
---|
1223 | ! call var(dputint,cmplx(zero,zero,kind=dp),0,0) |
---|
1224 | ! return |
---|
1225 | ! endif |
---|
1226 | !! endif |
---|
1227 | ! enddo |
---|
1228 | ! |
---|
1229 | |
---|
1230 | |
---|
1231 | ! call var(dputint,cmplx(zero,zero,kind=dp),0,0) |
---|
1232 | ! call pok(dputint,j,s1) |
---|
1233 | |
---|
1234 | |
---|
1235 | dputint%r= real(S1,kind=dp).mono.S2 |
---|
1236 | dputint%i= aimag(S1).mono.S2 |
---|
1237 | |
---|
1238 | |
---|
1239 | master=localmaster |
---|
1240 | |
---|
1241 | END FUNCTION dputint |
---|
1242 | |
---|
1243 | |
---|
1244 | |
---|
1245 | FUNCTION varco(s1,s2) |
---|
1246 | implicit none |
---|
1247 | TYPE (complextaylor) varco |
---|
1248 | complex(dp) , INTENT (IN) :: S1 |
---|
1249 | integer , INTENT (IN) :: S2(2) |
---|
1250 | |
---|
1251 | integer localmaster |
---|
1252 | localmaster=master |
---|
1253 | |
---|
1254 | call ass(varco) |
---|
1255 | |
---|
1256 | varco%r=REAL(s1,kind=DP) + (1.0_dp.mono.s2(1)) |
---|
1257 | varco%i=aimag(s1) + (1.0_dp.mono.s2(2)) |
---|
1258 | |
---|
1259 | |
---|
1260 | !varco%r=REAL(s1,kind=DP).var.s2(1) |
---|
1261 | !varco%i=aimag(s1).var.s2(2) |
---|
1262 | |
---|
1263 | master=localmaster |
---|
1264 | |
---|
1265 | END FUNCTION varco |
---|
1266 | |
---|
1267 | |
---|
1268 | FUNCTION varco1(s1,s2) |
---|
1269 | implicit none |
---|
1270 | TYPE (complextaylor) varco1 |
---|
1271 | complex(dp) , INTENT (IN) :: S1(2) |
---|
1272 | integer , INTENT (IN) :: S2(2) |
---|
1273 | |
---|
1274 | integer localmaster |
---|
1275 | localmaster=master |
---|
1276 | |
---|
1277 | call ass(varco1) |
---|
1278 | |
---|
1279 | |
---|
1280 | |
---|
1281 | varco1=s1(1)+s1(2)*((1.0_dp.mono.s2(1))+i_*(1.0_dp.mono.s2(2))) |
---|
1282 | |
---|
1283 | master=localmaster |
---|
1284 | |
---|
1285 | END FUNCTION varco1 |
---|
1286 | |
---|
1287 | |
---|
1288 | |
---|
1289 | |
---|
1290 | FUNCTION GETORDER( S1, S2 ) |
---|
1291 | implicit none |
---|
1292 | TYPE (complextaylor) GETORDER |
---|
1293 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1294 | INTEGER, INTENT (IN) :: S2 |
---|
1295 | |
---|
1296 | integer localmaster |
---|
1297 | localmaster=master |
---|
1298 | call ass(GETORDER) |
---|
1299 | |
---|
1300 | GETORDER%r=S1%r.sub.s2 |
---|
1301 | GETORDER%i=S1%i.sub.s2 |
---|
1302 | |
---|
1303 | |
---|
1304 | master=localmaster |
---|
1305 | |
---|
1306 | END FUNCTION GETORDER |
---|
1307 | |
---|
1308 | FUNCTION CUTORDER( S1, S2 ) |
---|
1309 | implicit none |
---|
1310 | TYPE (complextaylor) CUTORDER |
---|
1311 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1312 | INTEGER, INTENT (IN) :: S2 |
---|
1313 | |
---|
1314 | integer localmaster |
---|
1315 | localmaster=master |
---|
1316 | call ass(CUTORDER) |
---|
1317 | |
---|
1318 | CUTORDER%r=S1%r.CUT.s2 |
---|
1319 | CUTORDER%i=S1%i.CUT.s2 |
---|
1320 | |
---|
1321 | |
---|
1322 | master=localmaster |
---|
1323 | |
---|
1324 | END FUNCTION CUTORDER |
---|
1325 | |
---|
1326 | FUNCTION GETchar( S1, S2 ) |
---|
1327 | implicit none |
---|
1328 | complex(dp) GETchar |
---|
1329 | real(dp) r1,r2 |
---|
1330 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1331 | CHARACTER(*) , INTENT (IN) :: S2 |
---|
1332 | |
---|
1333 | integer localmaster |
---|
1334 | localmaster=master |
---|
1335 | |
---|
1336 | r1=S1%r.sub.s2 |
---|
1337 | r2=S1%i.sub.s2 |
---|
1338 | |
---|
1339 | GETchar=cmplx(r1,r2,kind=dp) |
---|
1340 | |
---|
1341 | master=localmaster |
---|
1342 | END FUNCTION GETchar |
---|
1343 | |
---|
1344 | FUNCTION GETint( S1, S2 ) ! 2002.12.20 |
---|
1345 | implicit none |
---|
1346 | complex(dp) GETint |
---|
1347 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1348 | integer , INTENT (IN) :: S2(:) |
---|
1349 | real(dp) r1,r2 |
---|
1350 | |
---|
1351 | |
---|
1352 | r1=S1%r.sub.s2 |
---|
1353 | r2=S1%i.sub.s2 |
---|
1354 | |
---|
1355 | GETint=cmplx(r1,r2,kind=dp) |
---|
1356 | |
---|
1357 | |
---|
1358 | END FUNCTION GETint |
---|
1359 | |
---|
1360 | |
---|
1361 | FUNCTION POW( S1, R2 ) |
---|
1362 | implicit none |
---|
1363 | TYPE (complextaylor) POW,temp |
---|
1364 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1365 | INTEGER, INTENT (IN) :: R2 |
---|
1366 | INTEGER I,R22 |
---|
1367 | |
---|
1368 | integer localmaster |
---|
1369 | localmaster=master |
---|
1370 | call ass(pow) |
---|
1371 | |
---|
1372 | call alloc(temp) |
---|
1373 | |
---|
1374 | TEMP=1.0_dp |
---|
1375 | |
---|
1376 | |
---|
1377 | R22=IABS(R2) |
---|
1378 | DO I=1,R22 |
---|
1379 | temp=temp*s1 |
---|
1380 | ENDDO |
---|
1381 | IF(R2.LT.0) THEN |
---|
1382 | temp=1.0_dp/temp |
---|
1383 | ENDIF |
---|
1384 | |
---|
1385 | POW=temp |
---|
1386 | |
---|
1387 | call kill(temp) |
---|
1388 | master=localmaster |
---|
1389 | |
---|
1390 | |
---|
1391 | END FUNCTION POW |
---|
1392 | |
---|
1393 | FUNCTION POWR( S1, R2 ) |
---|
1394 | implicit none |
---|
1395 | TYPE (complextaylor) POWR,temp |
---|
1396 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1397 | REAL(SP), INTENT (IN) :: R2 |
---|
1398 | integer localmaster |
---|
1399 | |
---|
1400 | if(real_warning) call real_stop |
---|
1401 | localmaster=master |
---|
1402 | call ass(POWR) |
---|
1403 | call alloc(temp) |
---|
1404 | |
---|
1405 | temp=log(s1) |
---|
1406 | temp=temp*(r2) |
---|
1407 | temp=exp(temp) |
---|
1408 | POWR=temp |
---|
1409 | |
---|
1410 | call kill(temp) |
---|
1411 | master=localmaster |
---|
1412 | |
---|
1413 | END FUNCTION POWR |
---|
1414 | |
---|
1415 | FUNCTION POWR8( S1, R2 ) |
---|
1416 | implicit none |
---|
1417 | TYPE (complextaylor) POWR8,temp |
---|
1418 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1419 | real(dp), INTENT (IN) :: R2 |
---|
1420 | |
---|
1421 | integer localmaster |
---|
1422 | localmaster=master |
---|
1423 | call ass(powr8) |
---|
1424 | call alloc(temp) |
---|
1425 | |
---|
1426 | temp=log(s1) |
---|
1427 | temp=temp*r2 |
---|
1428 | temp=exp(temp) |
---|
1429 | POWR8=temp |
---|
1430 | |
---|
1431 | call kill(temp) |
---|
1432 | master=localmaster |
---|
1433 | |
---|
1434 | END FUNCTION POWR8 |
---|
1435 | |
---|
1436 | FUNCTION GETdiff( S1, S2 ) |
---|
1437 | implicit none |
---|
1438 | TYPE (complextaylor) GETdiff |
---|
1439 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1440 | INTEGER, INTENT (IN) :: S2 |
---|
1441 | |
---|
1442 | integer localmaster |
---|
1443 | localmaster=master |
---|
1444 | call ass(GETdiff) |
---|
1445 | |
---|
1446 | getdiff%r=s1%r.d.s2 |
---|
1447 | getdiff%i=s1%i.d.s2 |
---|
1448 | |
---|
1449 | master=localmaster |
---|
1450 | END FUNCTION GETdiff |
---|
1451 | |
---|
1452 | FUNCTION GETdatra( S1, S2 ) |
---|
1453 | implicit none |
---|
1454 | TYPE (complextaylor) GETdatra |
---|
1455 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1456 | INTEGER, INTENT (IN) :: S2 |
---|
1457 | |
---|
1458 | integer localmaster |
---|
1459 | localmaster=master |
---|
1460 | call ass(GETdatra) |
---|
1461 | |
---|
1462 | GETdatra%r=s1%r.k.s2 |
---|
1463 | GETdatra%i=s1%i.k.s2 |
---|
1464 | |
---|
1465 | master=localmaster |
---|
1466 | END FUNCTION GETdatra |
---|
1467 | |
---|
1468 | SUBROUTINE alloccomplex(S2) |
---|
1469 | implicit none |
---|
1470 | type (complextaylor),INTENT(INOUT)::S2 |
---|
1471 | call alloctpsa(s2%r) |
---|
1472 | call alloctpsa(s2%i) |
---|
1473 | END SUBROUTINE alloccomplex |
---|
1474 | |
---|
1475 | SUBROUTINE alloccomplexn(S2,K) |
---|
1476 | implicit none |
---|
1477 | type (complextaylor),INTENT(INOUT),dimension(:)::S2 |
---|
1478 | INTEGER,optional,INTENT(IN)::k |
---|
1479 | INTEGER J,i,N |
---|
1480 | |
---|
1481 | if(present(k)) then |
---|
1482 | I=LBOUND(S2,DIM=1) |
---|
1483 | N=LBOUND(S2,DIM=1)+K-1 |
---|
1484 | else |
---|
1485 | I=LBOUND(S2,DIM=1) |
---|
1486 | N=UBOUND(S2,DIM=1) |
---|
1487 | endif |
---|
1488 | |
---|
1489 | DO J=I,N |
---|
1490 | call alloctpsa(s2(j)%r) |
---|
1491 | call alloctpsa(s2(j)%i) |
---|
1492 | enddo |
---|
1493 | |
---|
1494 | END SUBROUTINE alloccomplexn |
---|
1495 | |
---|
1496 | SUBROUTINE A_OPT(S1,S2,s3,s4,s5,s6,s7,s8,s9,s10) |
---|
1497 | implicit none |
---|
1498 | type (complextaylor),INTENT(INout)::S1,S2 |
---|
1499 | type (complextaylor),optional, INTENT(INout):: s3,s4,s5,s6,s7,s8,s9,s10 |
---|
1500 | call alloc(s1) |
---|
1501 | call alloc(s2) |
---|
1502 | if(present(s3)) call alloc(s3) |
---|
1503 | if(present(s4)) call alloc(s4) |
---|
1504 | if(present(s5)) call alloc(s5) |
---|
1505 | if(present(s6)) call alloc(s6) |
---|
1506 | if(present(s7)) call alloc(s7) |
---|
1507 | if(present(s8)) call alloc(s8) |
---|
1508 | if(present(s9)) call alloc(s9) |
---|
1509 | if(present(s10))call alloc(s10) |
---|
1510 | END SUBROUTINE A_opt |
---|
1511 | |
---|
1512 | SUBROUTINE K_OPT(S1,S2,s3,s4,s5,s6,s7,s8,s9,s10) |
---|
1513 | implicit none |
---|
1514 | type (complextaylor),INTENT(INout)::S1,S2 |
---|
1515 | type (complextaylor),optional, INTENT(INout):: s3,s4,s5,s6,s7,s8,s9,s10 |
---|
1516 | call KILL(s1) |
---|
1517 | call KILL(s2) |
---|
1518 | if(present(s3)) call KILL(s3) |
---|
1519 | if(present(s4)) call KILL(s4) |
---|
1520 | if(present(s5)) call KILL(s5) |
---|
1521 | if(present(s6)) call KILL(s6) |
---|
1522 | if(present(s7)) call KILL(s7) |
---|
1523 | if(present(s8)) call KILL(s8) |
---|
1524 | if(present(s9)) call KILL(s9) |
---|
1525 | if(present(s10))call KILL(s10) |
---|
1526 | END SUBROUTINE K_opt |
---|
1527 | |
---|
1528 | SUBROUTINE printcomplex(S2,i,deps) |
---|
1529 | implicit none |
---|
1530 | type (complextaylor),INTENT(INOUT)::S2 |
---|
1531 | integer i |
---|
1532 | REAL(DP),OPTIONAL,INTENT(INOUT)::DEPS |
---|
1533 | |
---|
1534 | call daprint(s2%r,i,deps) |
---|
1535 | call daprint(s2%i,i,deps) |
---|
1536 | END SUBROUTINE printcomplex |
---|
1537 | |
---|
1538 | SUBROUTINE inputcomplex(S2,i) |
---|
1539 | implicit none |
---|
1540 | type (complextaylor),INTENT(INOUT)::S2 |
---|
1541 | integer i |
---|
1542 | call dainput(s2%r,i) |
---|
1543 | call dainput(s2%i,i) |
---|
1544 | END SUBROUTINE inputcomplex |
---|
1545 | |
---|
1546 | |
---|
1547 | SUBROUTINE killcomplex(S2) |
---|
1548 | implicit none |
---|
1549 | type (complextaylor),INTENT(INOUT)::S2 |
---|
1550 | call killTPSA(s2%r) |
---|
1551 | call killTPSA(s2%i) |
---|
1552 | END SUBROUTINE killcomplex |
---|
1553 | |
---|
1554 | SUBROUTINE killcomplexn(S2,K) |
---|
1555 | implicit none |
---|
1556 | type (complextaylor),INTENT(INOUT),dimension(:)::S2 |
---|
1557 | INTEGER,optional,INTENT(IN)::k |
---|
1558 | INTEGER J,i,N |
---|
1559 | |
---|
1560 | if(present(k)) then |
---|
1561 | I=LBOUND(S2,DIM=1) |
---|
1562 | N=LBOUND(S2,DIM=1)+K-1 |
---|
1563 | else |
---|
1564 | I=LBOUND(S2,DIM=1) |
---|
1565 | N=UBOUND(S2,DIM=1) |
---|
1566 | endif |
---|
1567 | |
---|
1568 | DO J=I,N |
---|
1569 | call killtpsa(s2(j)%r) |
---|
1570 | call killtpsa(s2(j)%i) |
---|
1571 | enddo |
---|
1572 | |
---|
1573 | END SUBROUTINE killcomplexn |
---|
1574 | |
---|
1575 | FUNCTION mul( S1, S2 ) |
---|
1576 | implicit none |
---|
1577 | TYPE (complextaylor) mul |
---|
1578 | TYPE (complextaylor), INTENT (IN) :: S1, S2 |
---|
1579 | integer localmaster |
---|
1580 | localmaster=master |
---|
1581 | call ass(mul) |
---|
1582 | mul%r=s1%r*s2%r-s1%i*s2%i |
---|
1583 | mul%i=s1%r*s2%i+s1%i*s2%r |
---|
1584 | master=localmaster |
---|
1585 | END FUNCTION mul |
---|
1586 | |
---|
1587 | FUNCTION div( S1, S2 ) |
---|
1588 | implicit none |
---|
1589 | TYPE (complextaylor) div ,t |
---|
1590 | TYPE (complextaylor), INTENT (IN) :: S1, S2 |
---|
1591 | integer localmaster |
---|
1592 | localmaster=master |
---|
1593 | |
---|
1594 | call ass(div) |
---|
1595 | |
---|
1596 | call alloc(t) |
---|
1597 | call inv(s2,t) |
---|
1598 | div%r=s1%r*t%r-s1%i*t%i |
---|
1599 | div%i=s1%r*t%i+s1%i*t%r |
---|
1600 | call kill(t) |
---|
1601 | master=localmaster |
---|
1602 | END FUNCTION div |
---|
1603 | |
---|
1604 | FUNCTION cscdiv( S1, S2 ) |
---|
1605 | implicit none |
---|
1606 | TYPE (complextaylor) cscdiv ,t |
---|
1607 | TYPE (complextaylor), INTENT (IN) :: S2 |
---|
1608 | complex(dp), INTENT (IN) :: S1 |
---|
1609 | integer localmaster |
---|
1610 | localmaster=master |
---|
1611 | call ass(cscdiv) |
---|
1612 | call alloc(t) |
---|
1613 | call inv(s2,t) |
---|
1614 | cscdiv%r=REAL(s1,kind=DP)*t%r-aimag(s1)*t%i |
---|
1615 | cscdiv%i=REAL(s1,kind=DP)*t%i+aimag(s1)*t%r |
---|
1616 | call kill(t) |
---|
1617 | master=localmaster |
---|
1618 | END FUNCTION cscdiv |
---|
1619 | |
---|
1620 | FUNCTION dscdiv( S1, S2 ) |
---|
1621 | implicit none |
---|
1622 | TYPE (complextaylor) dscdiv ,t |
---|
1623 | TYPE (complextaylor), INTENT (IN) :: S2 |
---|
1624 | real(dp), INTENT (IN) :: S1 |
---|
1625 | integer localmaster |
---|
1626 | localmaster=master |
---|
1627 | call ass(dscdiv) |
---|
1628 | call alloc(t) |
---|
1629 | call inv(s2,t) |
---|
1630 | dscdiv%r=s1*t%r |
---|
1631 | dscdiv%i=s1*t%i |
---|
1632 | call kill(t) |
---|
1633 | master=localmaster |
---|
1634 | END FUNCTION dscdiv |
---|
1635 | |
---|
1636 | FUNCTION scdiv( S1, S2 ) |
---|
1637 | implicit none |
---|
1638 | TYPE (complextaylor) scdiv ,t |
---|
1639 | TYPE (complextaylor), INTENT (IN) :: S2 |
---|
1640 | real(sp), INTENT (IN) :: S1 |
---|
1641 | integer localmaster |
---|
1642 | if(real_warning) call real_stop |
---|
1643 | localmaster=master |
---|
1644 | call ass(scdiv) |
---|
1645 | call alloc(t) |
---|
1646 | call inv(s2,t) |
---|
1647 | scdiv%r=s1*t%r |
---|
1648 | scdiv%i=s1*t%i |
---|
1649 | call kill(t) |
---|
1650 | master=localmaster |
---|
1651 | END FUNCTION scdiv |
---|
1652 | |
---|
1653 | FUNCTION iscdiv( S1, S2 ) |
---|
1654 | implicit none |
---|
1655 | TYPE (complextaylor) iscdiv ,t |
---|
1656 | TYPE (complextaylor), INTENT (IN) :: S2 |
---|
1657 | integer, INTENT (IN) :: S1 |
---|
1658 | integer localmaster |
---|
1659 | localmaster=master |
---|
1660 | call ass(iscdiv) |
---|
1661 | call alloc(t) |
---|
1662 | call inv(s2,t) |
---|
1663 | iscdiv%r=s1*t%r |
---|
1664 | iscdiv%i=s1*t%i |
---|
1665 | call kill(t) |
---|
1666 | master=localmaster |
---|
1667 | END FUNCTION iscdiv |
---|
1668 | |
---|
1669 | FUNCTION idivsc( S2,S1 ) |
---|
1670 | implicit none |
---|
1671 | TYPE (complextaylor) idivsc |
---|
1672 | TYPE (complextaylor), INTENT (IN) :: S2 |
---|
1673 | integer, INTENT (IN) :: S1 |
---|
1674 | integer localmaster |
---|
1675 | localmaster=master |
---|
1676 | call ass(idivsc) |
---|
1677 | idivsc%r=(1.0_dp/s1)*s2%r |
---|
1678 | idivsc%i=(1.0_dp/s1)*s2%i |
---|
1679 | master=localmaster |
---|
1680 | END FUNCTION idivsc |
---|
1681 | |
---|
1682 | |
---|
1683 | FUNCTION divsc( S2,S1 ) |
---|
1684 | implicit none |
---|
1685 | TYPE (complextaylor) divsc |
---|
1686 | TYPE (complextaylor), INTENT (IN) :: S2 |
---|
1687 | real(sp), INTENT (IN) :: S1 |
---|
1688 | integer localmaster |
---|
1689 | if(real_warning) call real_stop |
---|
1690 | localmaster=master |
---|
1691 | call ass(divsc) |
---|
1692 | divsc%r=(1.0_dp/s1)*s2%r |
---|
1693 | divsc%i=(1.0_dp/s1)*s2%i |
---|
1694 | master=localmaster |
---|
1695 | END FUNCTION divsc |
---|
1696 | |
---|
1697 | |
---|
1698 | FUNCTION ddivsc( S2,S1 ) |
---|
1699 | implicit none |
---|
1700 | TYPE (complextaylor) ddivsc |
---|
1701 | TYPE (complextaylor), INTENT (IN) :: S2 |
---|
1702 | real(dp), INTENT (IN) :: S1 |
---|
1703 | integer localmaster |
---|
1704 | localmaster=master |
---|
1705 | call ass(ddivsc) |
---|
1706 | ddivsc%r=(1.0_dp/s1)*s2%r |
---|
1707 | ddivsc%i=(1.0_dp/s1)*s2%i |
---|
1708 | master=localmaster |
---|
1709 | END FUNCTION ddivsc |
---|
1710 | |
---|
1711 | FUNCTION cdivsc( S2,S1 ) |
---|
1712 | implicit none |
---|
1713 | TYPE (complextaylor) cdivsc |
---|
1714 | TYPE (complextaylor), INTENT (IN) :: S2 |
---|
1715 | complex(dp), INTENT (IN) :: S1 |
---|
1716 | integer localmaster |
---|
1717 | localmaster=master |
---|
1718 | call ass(cdivsc) |
---|
1719 | cdivsc%r=REAL((1.0_dp/s1),kind=DP)*s2%r-aimag((1.0_dp/s1))*s2%i |
---|
1720 | cdivsc%i=REAL((1.0_dp/s1),kind=DP)*s2%i+aimag((1.0_dp/s1))*s2%r |
---|
1721 | master=localmaster |
---|
1722 | END FUNCTION cdivsc |
---|
1723 | |
---|
1724 | FUNCTION cscmul( sc,S1 ) |
---|
1725 | implicit none |
---|
1726 | TYPE (complextaylor) cscmul |
---|
1727 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1728 | complex(dp), INTENT (IN) :: sc |
---|
1729 | integer localmaster |
---|
1730 | localmaster=master |
---|
1731 | call ass(cscmul) |
---|
1732 | |
---|
1733 | cscmul%r=REAL(sc,kind=DP)*s1%r-aimag(sc)*s1%i |
---|
1734 | cscmul%i=REAL(sc,kind=DP)*s1%i+aimag(sc)*s1%r |
---|
1735 | master=localmaster |
---|
1736 | END FUNCTION cscmul |
---|
1737 | |
---|
1738 | FUNCTION ctmul( S1,sc ) |
---|
1739 | implicit none |
---|
1740 | TYPE (complextaylor) ctmul |
---|
1741 | TYPE (taylor), INTENT (IN) :: S1 |
---|
1742 | complex(dp), INTENT (IN) :: sc |
---|
1743 | integer localmaster |
---|
1744 | localmaster=master |
---|
1745 | call ass(ctmul) |
---|
1746 | |
---|
1747 | ctmul%r=REAL(sc,kind=DP)*s1 |
---|
1748 | ctmul%i=aimag(sc)*s1 |
---|
1749 | master=localmaster |
---|
1750 | END FUNCTION ctmul |
---|
1751 | |
---|
1752 | FUNCTION cmult( sc,S1 ) |
---|
1753 | implicit none |
---|
1754 | TYPE (complextaylor) cmult |
---|
1755 | TYPE (taylor), INTENT (IN) :: S1 |
---|
1756 | complex(dp), INTENT (IN) :: sc |
---|
1757 | integer localmaster |
---|
1758 | localmaster=master |
---|
1759 | call ass(cmult) |
---|
1760 | |
---|
1761 | cmult%r=REAL(sc,kind=DP)*s1 |
---|
1762 | cmult%i=aimag(sc)*s1 |
---|
1763 | master=localmaster |
---|
1764 | END FUNCTION cmult |
---|
1765 | |
---|
1766 | FUNCTION caddt( sc,S1 ) |
---|
1767 | implicit none |
---|
1768 | TYPE (complextaylor) caddt |
---|
1769 | TYPE (taylor), INTENT (IN) :: S1 |
---|
1770 | complex(dp), INTENT (IN) :: sc |
---|
1771 | integer localmaster |
---|
1772 | localmaster=master |
---|
1773 | call ass(caddt) |
---|
1774 | |
---|
1775 | caddt%r=REAL(sc,kind=DP)+s1 |
---|
1776 | caddt%i=aimag(sc) |
---|
1777 | master=localmaster |
---|
1778 | END FUNCTION caddt |
---|
1779 | |
---|
1780 | FUNCTION ctadd(S1, sc ) |
---|
1781 | implicit none |
---|
1782 | TYPE (complextaylor) ctadd |
---|
1783 | TYPE (taylor), INTENT (IN) :: S1 |
---|
1784 | complex(dp), INTENT (IN) :: sc |
---|
1785 | integer localmaster |
---|
1786 | localmaster=master |
---|
1787 | call ass(ctadd) |
---|
1788 | |
---|
1789 | ctadd%r=REAL(sc,kind=DP)+s1 |
---|
1790 | ctadd%i=aimag(sc) |
---|
1791 | master=localmaster |
---|
1792 | END FUNCTION ctadd |
---|
1793 | |
---|
1794 | FUNCTION csubt( sc,S1 ) |
---|
1795 | implicit none |
---|
1796 | TYPE (complextaylor) csubt |
---|
1797 | TYPE (taylor), INTENT (IN) :: S1 |
---|
1798 | complex(dp), INTENT (IN) :: sc |
---|
1799 | integer localmaster |
---|
1800 | localmaster=master |
---|
1801 | call ass(csubt) |
---|
1802 | |
---|
1803 | csubt%r=REAL(sc,kind=DP)-s1 |
---|
1804 | csubt%i=aimag(sc) |
---|
1805 | master=localmaster |
---|
1806 | END FUNCTION csubt |
---|
1807 | |
---|
1808 | FUNCTION ctsub( S1,sc ) |
---|
1809 | implicit none |
---|
1810 | TYPE (complextaylor) ctsub |
---|
1811 | TYPE (taylor), INTENT (IN) :: S1 |
---|
1812 | complex(dp), INTENT (IN) :: sc |
---|
1813 | integer localmaster |
---|
1814 | localmaster=master |
---|
1815 | call ass(ctsub) |
---|
1816 | |
---|
1817 | ctsub%r=s1-REAL(sc,kind=DP) |
---|
1818 | ctsub%i=-aimag(sc) |
---|
1819 | master=localmaster |
---|
1820 | END FUNCTION ctsub |
---|
1821 | |
---|
1822 | FUNCTION cdivt( sc,S1 ) |
---|
1823 | implicit none |
---|
1824 | TYPE (complextaylor) cdivt |
---|
1825 | TYPE (taylor), INTENT (IN) :: S1 |
---|
1826 | complex(dp), INTENT (IN) :: sc |
---|
1827 | integer localmaster |
---|
1828 | localmaster=master |
---|
1829 | call ass(cdivt) |
---|
1830 | |
---|
1831 | cdivt%r=REAL(sc,kind=DP)/s1 |
---|
1832 | cdivt%i=aimag(sc)/s1 |
---|
1833 | master=localmaster |
---|
1834 | END FUNCTION cdivt |
---|
1835 | |
---|
1836 | FUNCTION ctdiv( S1,sc ) |
---|
1837 | implicit none |
---|
1838 | TYPE (complextaylor) ctdiv |
---|
1839 | TYPE (taylor), INTENT (IN) :: S1 |
---|
1840 | complex(dp), INTENT (IN) :: sc |
---|
1841 | complex(dp) w |
---|
1842 | integer localmaster |
---|
1843 | localmaster=master |
---|
1844 | call ass(ctdiv) |
---|
1845 | w=1.0_dp/sc |
---|
1846 | ctdiv%r=s1*REAL(w,kind=DP) |
---|
1847 | ctdiv%i=s1*aimag(w) |
---|
1848 | master=localmaster |
---|
1849 | END FUNCTION ctdiv |
---|
1850 | |
---|
1851 | FUNCTION dscmul( sc,S1 ) |
---|
1852 | implicit none |
---|
1853 | TYPE (complextaylor) dscmul |
---|
1854 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1855 | real(dp), INTENT (IN) :: sc |
---|
1856 | integer localmaster |
---|
1857 | localmaster=master |
---|
1858 | call ass(dscmul) |
---|
1859 | |
---|
1860 | dscmul%r=sc*s1%r |
---|
1861 | dscmul%i=sc*s1%i |
---|
1862 | master=localmaster |
---|
1863 | |
---|
1864 | END FUNCTION dscmul |
---|
1865 | |
---|
1866 | FUNCTION scmul( sc,S1 ) |
---|
1867 | implicit none |
---|
1868 | TYPE (complextaylor) scmul |
---|
1869 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1870 | real(sp), INTENT (IN) :: sc |
---|
1871 | integer localmaster |
---|
1872 | if(real_warning) call real_stop |
---|
1873 | localmaster=master |
---|
1874 | call ass(scmul) |
---|
1875 | |
---|
1876 | scmul%r=sc*s1%r |
---|
1877 | scmul%i=sc*s1%i |
---|
1878 | master=localmaster |
---|
1879 | |
---|
1880 | END FUNCTION scmul |
---|
1881 | |
---|
1882 | FUNCTION iscmul( sc,S1 ) |
---|
1883 | implicit none |
---|
1884 | TYPE (complextaylor) iscmul |
---|
1885 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1886 | integer, INTENT (IN) :: sc |
---|
1887 | integer localmaster |
---|
1888 | localmaster=master |
---|
1889 | call ass(iscmul) |
---|
1890 | |
---|
1891 | iscmul%r=sc*s1%r |
---|
1892 | iscmul%i=sc*s1%i |
---|
1893 | master=localmaster |
---|
1894 | |
---|
1895 | END FUNCTION iscmul |
---|
1896 | |
---|
1897 | |
---|
1898 | FUNCTION cmulsc( S1,sc ) |
---|
1899 | implicit none |
---|
1900 | TYPE (complextaylor) cmulsc |
---|
1901 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1902 | complex(dp), INTENT (IN) :: sc |
---|
1903 | integer localmaster |
---|
1904 | localmaster=master |
---|
1905 | call ass(cmulsc) |
---|
1906 | |
---|
1907 | cmulsc%r=REAL(sc,kind=DP)*s1%r-aimag(sc)*s1%i |
---|
1908 | cmulsc%i=REAL(sc,kind=DP)*s1%i+aimag(sc)*s1%r |
---|
1909 | master=localmaster |
---|
1910 | END FUNCTION cmulsc |
---|
1911 | |
---|
1912 | |
---|
1913 | |
---|
1914 | FUNCTION dmulsc( S1, sc) |
---|
1915 | implicit none |
---|
1916 | TYPE (complextaylor) dmulsc |
---|
1917 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1918 | real(dp), INTENT (IN) :: sc |
---|
1919 | integer localmaster |
---|
1920 | localmaster=master |
---|
1921 | call ass(dmulsc) |
---|
1922 | |
---|
1923 | dmulsc%r=sc*s1%r |
---|
1924 | dmulsc%i=sc*s1%i |
---|
1925 | master=localmaster |
---|
1926 | |
---|
1927 | END FUNCTION dmulsc |
---|
1928 | |
---|
1929 | FUNCTION mulsc( S1, sc) |
---|
1930 | implicit none |
---|
1931 | TYPE (complextaylor) mulsc |
---|
1932 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1933 | real(sp), INTENT (IN) :: sc |
---|
1934 | integer localmaster |
---|
1935 | if(real_warning) call real_stop |
---|
1936 | localmaster=master |
---|
1937 | call ass(mulsc) |
---|
1938 | |
---|
1939 | mulsc%r=sc*s1%r |
---|
1940 | mulsc%i=sc*s1%i |
---|
1941 | master=localmaster |
---|
1942 | |
---|
1943 | END FUNCTION mulsc |
---|
1944 | |
---|
1945 | FUNCTION imulsc( S1, sc) |
---|
1946 | implicit none |
---|
1947 | TYPE (complextaylor) imulsc |
---|
1948 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
1949 | integer, INTENT (IN) :: sc |
---|
1950 | integer localmaster |
---|
1951 | localmaster=master |
---|
1952 | call ass(imulsc) |
---|
1953 | |
---|
1954 | imulsc%r=sc*s1%r |
---|
1955 | imulsc%i=sc*s1%i |
---|
1956 | master=localmaster |
---|
1957 | |
---|
1958 | END FUNCTION imulsc |
---|
1959 | |
---|
1960 | SUBROUTINE EQUAL(S2,S1) |
---|
1961 | implicit none |
---|
1962 | type (complextaylor),INTENT(inOUT)::S2 |
---|
1963 | type (complextaylor),INTENT(IN)::S1 |
---|
1964 | call check_snake |
---|
1965 | ! master=0 |
---|
1966 | S2%R=S1%R |
---|
1967 | S2%I=S1%I |
---|
1968 | |
---|
1969 | END SUBROUTINE EQUAL |
---|
1970 | |
---|
1971 | SUBROUTINE ctEQUAL(S2,S1) |
---|
1972 | implicit none |
---|
1973 | type (complextaylor),INTENT(inOUT)::S2 |
---|
1974 | type (taylor),INTENT(IN)::S1 |
---|
1975 | call check_snake |
---|
1976 | |
---|
1977 | S2%R=S1 |
---|
1978 | S2%I=0.0_dp |
---|
1979 | |
---|
1980 | END SUBROUTINE ctEQUAL |
---|
1981 | |
---|
1982 | SUBROUTINE tcEQUAL(S1,S2) |
---|
1983 | implicit none |
---|
1984 | type (complextaylor),INTENT(in)::S2 |
---|
1985 | type (taylor),INTENT(inout)::S1 |
---|
1986 | call check_snake |
---|
1987 | ! master=0 |
---|
1988 | S1=S2%R |
---|
1989 | |
---|
1990 | END SUBROUTINE tcEQUAL |
---|
1991 | |
---|
1992 | |
---|
1993 | SUBROUTINE CEQUAL(R1,S2) ! 2002.12.22 |
---|
1994 | implicit none |
---|
1995 | type (complextaylor),INTENT(IN)::S2 |
---|
1996 | COMPLEX(dp), INTENT(inOUT)::R1 |
---|
1997 | call check_snake |
---|
1998 | |
---|
1999 | R1=S2.SUB.'0' |
---|
2000 | END SUBROUTINE CEQUAL |
---|
2001 | |
---|
2002 | SUBROUTINE DEQUAL(R1,S2) ! 2002.12.22 |
---|
2003 | implicit none |
---|
2004 | type (complextaylor),INTENT(IN)::S2 |
---|
2005 | real(dp), INTENT(inOUT)::R1 |
---|
2006 | call check_snake |
---|
2007 | |
---|
2008 | R1=S2.SUB.'0' |
---|
2009 | END SUBROUTINE DEQUAL |
---|
2010 | |
---|
2011 | SUBROUTINE REQUAL(R1,S2) ! 2002.12.22 |
---|
2012 | implicit none |
---|
2013 | type (complextaylor),INTENT(IN)::S2 |
---|
2014 | REAL(SP), INTENT(inOUT)::R1 |
---|
2015 | |
---|
2016 | if(real_warning) call real_stop |
---|
2017 | call check_snake |
---|
2018 | |
---|
2019 | R1=S2.SUB.'0' |
---|
2020 | |
---|
2021 | END SUBROUTINE REQUAL |
---|
2022 | |
---|
2023 | |
---|
2024 | SUBROUTINE CEQUALDACON(S2,R1) |
---|
2025 | implicit none |
---|
2026 | type (complextaylor),INTENT(inout)::S2 |
---|
2027 | complex(dp), INTENT(IN)::R1 |
---|
2028 | call check_snake |
---|
2029 | |
---|
2030 | ! master=0 |
---|
2031 | |
---|
2032 | S2%R=REAL(R1,kind=DP) |
---|
2033 | S2%I=aimag(R1) |
---|
2034 | |
---|
2035 | END SUBROUTINE CEQUALDACON |
---|
2036 | |
---|
2037 | SUBROUTINE dEQUALDACON(S2,R1) |
---|
2038 | implicit none |
---|
2039 | type (complextaylor),INTENT(inout)::S2 |
---|
2040 | real(dp) , INTENT(IN)::R1 |
---|
2041 | call check_snake |
---|
2042 | |
---|
2043 | |
---|
2044 | S2%R=R1 |
---|
2045 | S2%I=0.0_dp |
---|
2046 | |
---|
2047 | END SUBROUTINE dEQUALDACON |
---|
2048 | |
---|
2049 | SUBROUTINE EQUALDACON(S2,R1) |
---|
2050 | implicit none |
---|
2051 | type (complextaylor),INTENT(inout)::S2 |
---|
2052 | real(sp) , INTENT(IN)::R1 |
---|
2053 | if(real_warning) call real_stop |
---|
2054 | |
---|
2055 | call check_snake |
---|
2056 | |
---|
2057 | S2%R=REAL(R1,kind=DP) |
---|
2058 | S2%I=0.0_dp |
---|
2059 | |
---|
2060 | END SUBROUTINE EQUALDACON |
---|
2061 | |
---|
2062 | SUBROUTINE iEQUALDACON(S2,R1) |
---|
2063 | implicit none |
---|
2064 | type (complextaylor),INTENT(inout)::S2 |
---|
2065 | integer , INTENT(IN)::R1 |
---|
2066 | call check_snake |
---|
2067 | |
---|
2068 | |
---|
2069 | S2%R=REAL(R1,kind=DP) |
---|
2070 | S2%I=0.0_dp |
---|
2071 | |
---|
2072 | END SUBROUTINE iEQUALDACON |
---|
2073 | |
---|
2074 | FUNCTION add( S1, S2 ) |
---|
2075 | implicit none |
---|
2076 | TYPE (complextaylor) add |
---|
2077 | TYPE (complextaylor), INTENT (IN) :: S1, S2 |
---|
2078 | integer localmaster |
---|
2079 | localmaster=master |
---|
2080 | call ass(add) |
---|
2081 | add%r=s1%r+s2%r |
---|
2082 | add%i=s1%i+s2%i |
---|
2083 | master=localmaster |
---|
2084 | END FUNCTION add |
---|
2085 | |
---|
2086 | FUNCTION tadd( S1, S2 ) |
---|
2087 | implicit none |
---|
2088 | TYPE (complextaylor) tadd |
---|
2089 | TYPE (complextaylor), INTENT (IN) :: S2 |
---|
2090 | TYPE (taylor), INTENT (IN) :: S1 |
---|
2091 | integer localmaster |
---|
2092 | localmaster=master |
---|
2093 | call ass(tadd) |
---|
2094 | tadd%r=s1+s2%r |
---|
2095 | tadd%i=s2%i |
---|
2096 | master=localmaster |
---|
2097 | END FUNCTION tadd |
---|
2098 | |
---|
2099 | FUNCTION addt( S2,S1 ) |
---|
2100 | implicit none |
---|
2101 | TYPE (complextaylor) addt |
---|
2102 | TYPE (complextaylor), INTENT (IN) :: S2 |
---|
2103 | TYPE (taylor), INTENT (IN) :: S1 |
---|
2104 | integer localmaster |
---|
2105 | localmaster=master |
---|
2106 | call ass(addt) |
---|
2107 | addt%r=s1+s2%r |
---|
2108 | addt%i=s2%i |
---|
2109 | master=localmaster |
---|
2110 | END FUNCTION addt |
---|
2111 | |
---|
2112 | FUNCTION tsub( S1, S2 ) |
---|
2113 | implicit none |
---|
2114 | TYPE (complextaylor) tsub |
---|
2115 | TYPE (complextaylor), INTENT (IN) :: S2 |
---|
2116 | TYPE (taylor), INTENT (IN) :: S1 |
---|
2117 | integer localmaster |
---|
2118 | localmaster=master |
---|
2119 | call ass(tsub) |
---|
2120 | tsub%r=s1-s2%r |
---|
2121 | tsub%i=-s2%i |
---|
2122 | master=localmaster |
---|
2123 | END FUNCTION tsub |
---|
2124 | |
---|
2125 | FUNCTION subt( S2,S1 ) |
---|
2126 | implicit none |
---|
2127 | TYPE (complextaylor) subt |
---|
2128 | TYPE (complextaylor), INTENT (IN) :: S2 |
---|
2129 | TYPE (taylor), INTENT (IN) :: S1 |
---|
2130 | integer localmaster |
---|
2131 | localmaster=master |
---|
2132 | call ass(subt) |
---|
2133 | subt%r=s2%r-s1 |
---|
2134 | subt%i=s2%i |
---|
2135 | master=localmaster |
---|
2136 | END FUNCTION subt |
---|
2137 | |
---|
2138 | FUNCTION tmul( S1, S2 ) |
---|
2139 | implicit none |
---|
2140 | TYPE (complextaylor) tmul |
---|
2141 | TYPE (complextaylor), INTENT (IN) :: S2 |
---|
2142 | TYPE (taylor), INTENT (IN) :: S1 |
---|
2143 | integer localmaster |
---|
2144 | localmaster=master |
---|
2145 | call ass(tmul) |
---|
2146 | tmul%r=s1*s2%r |
---|
2147 | tmul%i=s1*s2%i |
---|
2148 | master=localmaster |
---|
2149 | END FUNCTION tmul |
---|
2150 | |
---|
2151 | FUNCTION mult( S2,S1 ) |
---|
2152 | implicit none |
---|
2153 | TYPE (complextaylor) mult |
---|
2154 | TYPE (complextaylor), INTENT (IN) :: S2 |
---|
2155 | TYPE (taylor), INTENT (IN) :: S1 |
---|
2156 | integer localmaster |
---|
2157 | localmaster=master |
---|
2158 | call ass(mult) |
---|
2159 | mult%r=s1*s2%r |
---|
2160 | mult%i=s1*s2%i |
---|
2161 | master=localmaster |
---|
2162 | END FUNCTION mult |
---|
2163 | |
---|
2164 | FUNCTION tdiv( S1, S2 ) |
---|
2165 | implicit none |
---|
2166 | TYPE (complextaylor) tdiv,temp |
---|
2167 | TYPE (complextaylor), INTENT (IN) :: S2 |
---|
2168 | TYPE (taylor), INTENT (IN) :: S1 |
---|
2169 | integer localmaster |
---|
2170 | localmaster=master |
---|
2171 | call ass(tdiv) |
---|
2172 | call alloc(temp) |
---|
2173 | temp=1.0_dp/s2 |
---|
2174 | tdiv%r=s1*temp%r |
---|
2175 | tdiv%i=s1*temp%i |
---|
2176 | master=localmaster |
---|
2177 | call kill(temp) |
---|
2178 | END FUNCTION tdiv |
---|
2179 | |
---|
2180 | FUNCTION divt(S2 , S1 ) |
---|
2181 | implicit none |
---|
2182 | TYPE (complextaylor) divt |
---|
2183 | type (taylor) temp |
---|
2184 | TYPE (complextaylor), INTENT (IN) :: S2 |
---|
2185 | TYPE (taylor), INTENT (IN) :: S1 |
---|
2186 | integer localmaster |
---|
2187 | localmaster=master |
---|
2188 | call ass(divt) |
---|
2189 | call alloc(temp) |
---|
2190 | temp=1.0_dp/s1 |
---|
2191 | divt%r=temp*s2%r |
---|
2192 | divt%i=temp*s2%i |
---|
2193 | master=localmaster |
---|
2194 | call kill(temp) |
---|
2195 | END FUNCTION divt |
---|
2196 | |
---|
2197 | FUNCTION csubSC( S1,sc ) |
---|
2198 | implicit none |
---|
2199 | TYPE (complextaylor) csubSC |
---|
2200 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2201 | complex(dp), INTENT (IN) :: sc |
---|
2202 | integer localmaster |
---|
2203 | localmaster=master |
---|
2204 | |
---|
2205 | call ass(csubSC) |
---|
2206 | |
---|
2207 | csubSC%r=-REAL(sc,kind=DP)+s1%r |
---|
2208 | csubSC%i=-aimag(sc)+s1%i |
---|
2209 | master=localmaster |
---|
2210 | END FUNCTION csubSC |
---|
2211 | |
---|
2212 | FUNCTION DsubSC(S1,sc) |
---|
2213 | implicit none |
---|
2214 | TYPE (complextaylor) DsubSC |
---|
2215 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2216 | real(dp) , INTENT (IN) :: sc |
---|
2217 | integer localmaster |
---|
2218 | localmaster=master |
---|
2219 | call ass(DsubSC) |
---|
2220 | DsubSC%r=s1%r-sc |
---|
2221 | DsubSC%i=s1%i |
---|
2222 | master=localmaster |
---|
2223 | END FUNCTION DsubSC |
---|
2224 | |
---|
2225 | FUNCTION subSC(S1,sc) |
---|
2226 | implicit none |
---|
2227 | TYPE (complextaylor) subSC |
---|
2228 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2229 | real(sp) , INTENT (IN) :: sc |
---|
2230 | integer localmaster |
---|
2231 | if(real_warning) call real_stop |
---|
2232 | localmaster=master |
---|
2233 | call ass(subSC) |
---|
2234 | subSC%r=s1%r-sc |
---|
2235 | subSC%i=s1%i |
---|
2236 | master=localmaster |
---|
2237 | END FUNCTION subSC |
---|
2238 | |
---|
2239 | FUNCTION isubSC(S1,sc) |
---|
2240 | implicit none |
---|
2241 | TYPE (complextaylor) isubSC |
---|
2242 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2243 | integer , INTENT (IN) :: sc |
---|
2244 | integer localmaster |
---|
2245 | localmaster=master |
---|
2246 | call ass(isubSC) |
---|
2247 | isubSC%r=s1%r-sc |
---|
2248 | isubSC%i=s1%i |
---|
2249 | master=localmaster |
---|
2250 | END FUNCTION isubSC |
---|
2251 | |
---|
2252 | FUNCTION cSCsub( sc,S1 ) |
---|
2253 | implicit none |
---|
2254 | TYPE (complextaylor) cSCsub |
---|
2255 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2256 | complex(dp), INTENT (IN) :: sc |
---|
2257 | integer localmaster |
---|
2258 | localmaster=master |
---|
2259 | call ass(cSCsub) |
---|
2260 | |
---|
2261 | cSCsub%r=REAL(sc,kind=DP)-s1%r |
---|
2262 | cSCsub%i=aimag(sc)-s1%i |
---|
2263 | master=localmaster |
---|
2264 | END FUNCTION cSCsub |
---|
2265 | |
---|
2266 | |
---|
2267 | FUNCTION DSCsub( sc,S1 ) |
---|
2268 | implicit none |
---|
2269 | TYPE (complextaylor) DSCsub |
---|
2270 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2271 | real(dp) , INTENT (IN) :: sc |
---|
2272 | integer localmaster |
---|
2273 | localmaster=master |
---|
2274 | call ass(DSCsub) |
---|
2275 | DSCsub%r=sc-s1%r |
---|
2276 | DSCsub%i=-s1%i |
---|
2277 | master=localmaster |
---|
2278 | END FUNCTION DSCsub |
---|
2279 | |
---|
2280 | FUNCTION SCsub( sc,S1 ) |
---|
2281 | implicit none |
---|
2282 | TYPE (complextaylor) SCsub |
---|
2283 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2284 | real(sp) , INTENT (IN) :: sc |
---|
2285 | integer localmaster |
---|
2286 | if(real_warning) call real_stop |
---|
2287 | localmaster=master |
---|
2288 | call ass(SCsub) |
---|
2289 | SCsub%r=sc-s1%r |
---|
2290 | SCsub%i=-s1%i |
---|
2291 | master=localmaster |
---|
2292 | END FUNCTION SCsub |
---|
2293 | |
---|
2294 | FUNCTION iSCsub( sc,S1 ) |
---|
2295 | implicit none |
---|
2296 | TYPE (complextaylor) iSCsub |
---|
2297 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2298 | integer , INTENT (IN) :: sc |
---|
2299 | integer localmaster |
---|
2300 | localmaster=master |
---|
2301 | call ass(iSCsub) |
---|
2302 | iSCsub%r=sc-s1%r |
---|
2303 | iSCsub%i=-s1%i |
---|
2304 | master=localmaster |
---|
2305 | END FUNCTION iSCsub |
---|
2306 | |
---|
2307 | FUNCTION unarysub( S1 ) |
---|
2308 | implicit none |
---|
2309 | TYPE (complextaylor) unarysub |
---|
2310 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2311 | |
---|
2312 | integer localmaster |
---|
2313 | localmaster=master |
---|
2314 | call ass(unarysub) |
---|
2315 | unarysub%r=-s1%r |
---|
2316 | unarysub%i=-s1%i |
---|
2317 | master=localmaster |
---|
2318 | END FUNCTION unarysub |
---|
2319 | |
---|
2320 | FUNCTION subs( S1, S2 ) |
---|
2321 | implicit none |
---|
2322 | TYPE (complextaylor) subs |
---|
2323 | TYPE (complextaylor), INTENT (IN) :: S1, S2 |
---|
2324 | integer localmaster |
---|
2325 | localmaster=master |
---|
2326 | call ass(subs) |
---|
2327 | subs%r=s1%r-s2%r |
---|
2328 | subs%i=s1%i-s2%i |
---|
2329 | master=localmaster |
---|
2330 | END FUNCTION subs |
---|
2331 | |
---|
2332 | FUNCTION cSCADD( sc,S1 ) |
---|
2333 | implicit none |
---|
2334 | TYPE (complextaylor) cSCADD |
---|
2335 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2336 | complex(dp), INTENT (IN) :: sc |
---|
2337 | integer localmaster |
---|
2338 | localmaster=master |
---|
2339 | call ass(cSCADD) |
---|
2340 | |
---|
2341 | cSCADD%r=REAL(sc,kind=DP)+s1%r |
---|
2342 | cSCADD%i=aimag(sc)+s1%i |
---|
2343 | master=localmaster |
---|
2344 | END FUNCTION cSCADD |
---|
2345 | |
---|
2346 | FUNCTION cADDSC( S1,sc ) |
---|
2347 | implicit none |
---|
2348 | TYPE (complextaylor) cADDSC |
---|
2349 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2350 | complex(dp), INTENT (IN) :: sc |
---|
2351 | integer localmaster |
---|
2352 | localmaster=master |
---|
2353 | |
---|
2354 | call ass(cADDSC) |
---|
2355 | |
---|
2356 | cADDSC%r=REAL(sc,kind=DP)+s1%r |
---|
2357 | cADDSC%i=aimag(sc)+s1%i |
---|
2358 | master=localmaster |
---|
2359 | END FUNCTION cADDSC |
---|
2360 | |
---|
2361 | FUNCTION DADDSC( S1, sc ) |
---|
2362 | implicit none |
---|
2363 | TYPE (complextaylor) DADDSC |
---|
2364 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2365 | real(dp) , INTENT (IN) :: sc |
---|
2366 | integer localmaster |
---|
2367 | localmaster=master |
---|
2368 | call ass(DADDSC) |
---|
2369 | DADDSC%r=sc+s1%r |
---|
2370 | DADDSC%i=s1%i |
---|
2371 | master=localmaster |
---|
2372 | END FUNCTION DADDSC |
---|
2373 | |
---|
2374 | FUNCTION ADDSC( S1, sc ) |
---|
2375 | implicit none |
---|
2376 | TYPE (complextaylor) ADDSC |
---|
2377 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2378 | real(sp) , INTENT (IN) :: sc |
---|
2379 | integer localmaster |
---|
2380 | if(real_warning) call real_stop |
---|
2381 | localmaster=master |
---|
2382 | call ass(ADDSC) |
---|
2383 | ADDSC%r=sc+s1%r |
---|
2384 | ADDSC%i=s1%i |
---|
2385 | master=localmaster |
---|
2386 | END FUNCTION ADDSC |
---|
2387 | |
---|
2388 | FUNCTION iADDSC( S1, sc ) |
---|
2389 | implicit none |
---|
2390 | TYPE (complextaylor) iADDSC |
---|
2391 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2392 | integer , INTENT (IN) :: sc |
---|
2393 | integer localmaster |
---|
2394 | localmaster=master |
---|
2395 | call ass(iADDSC) |
---|
2396 | iADDSC%r=sc+s1%r |
---|
2397 | iADDSC%i=s1%i |
---|
2398 | master=localmaster |
---|
2399 | END FUNCTION iADDSC |
---|
2400 | |
---|
2401 | FUNCTION DSCADD( sc,S1 ) |
---|
2402 | implicit none |
---|
2403 | TYPE (complextaylor) DSCADD |
---|
2404 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2405 | real(dp) , INTENT (IN) :: sc |
---|
2406 | integer localmaster |
---|
2407 | localmaster=master |
---|
2408 | call ass(DSCADD) |
---|
2409 | DSCADD%r=sc+s1%r |
---|
2410 | DSCADD%i=s1%i |
---|
2411 | master=localmaster |
---|
2412 | END FUNCTION DSCADD |
---|
2413 | |
---|
2414 | FUNCTION SCADD( sc,S1 ) |
---|
2415 | implicit none |
---|
2416 | TYPE (complextaylor) SCADD |
---|
2417 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2418 | real(sp) , INTENT (IN) :: sc |
---|
2419 | integer localmaster |
---|
2420 | if(real_warning) call real_stop |
---|
2421 | localmaster=master |
---|
2422 | call ass(SCADD) |
---|
2423 | SCADD%r=sc+s1%r |
---|
2424 | SCADD%i=s1%i |
---|
2425 | master=localmaster |
---|
2426 | END FUNCTION SCADD |
---|
2427 | |
---|
2428 | FUNCTION iSCADD( sc,S1 ) |
---|
2429 | implicit none |
---|
2430 | TYPE (complextaylor) iSCADD |
---|
2431 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2432 | integer , INTENT (IN) :: sc |
---|
2433 | integer localmaster |
---|
2434 | localmaster=master |
---|
2435 | call ass(iSCADD) |
---|
2436 | iSCADD%r=sc+s1%r |
---|
2437 | iSCADD%i=s1%i |
---|
2438 | master=localmaster |
---|
2439 | END FUNCTION iSCADD |
---|
2440 | |
---|
2441 | FUNCTION unaryADD( S1 ) |
---|
2442 | implicit none |
---|
2443 | TYPE (complextaylor) unaryADD |
---|
2444 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2445 | integer localmaster |
---|
2446 | localmaster=master |
---|
2447 | call ass(unaryADD) |
---|
2448 | unaryADD%r=s1%r |
---|
2449 | unaryADD%i=s1%i |
---|
2450 | master=localmaster |
---|
2451 | END FUNCTION unaryADD |
---|
2452 | |
---|
2453 | subroutine inv( S1, s2 ) |
---|
2454 | implicit none |
---|
2455 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2456 | TYPE (complextaylor), INTENT (inout) :: S2 |
---|
2457 | TYPE (complextaylor) s,ss |
---|
2458 | complex(dp) d1 |
---|
2459 | real(dp) r1 ,i1 |
---|
2460 | integer i |
---|
2461 | |
---|
2462 | call alloc(s) |
---|
2463 | call alloc(ss) |
---|
2464 | |
---|
2465 | |
---|
2466 | r1=s1%r.sub.'0' |
---|
2467 | i1=s1%i.sub.'0' |
---|
2468 | s=s1 |
---|
2469 | d1=cmplx(r1,i1,kind=dp) |
---|
2470 | d1=1.0_dp/d1 |
---|
2471 | |
---|
2472 | s=d1*s1 |
---|
2473 | |
---|
2474 | s=s-1.0_dp |
---|
2475 | s=(-1.0_dp)*s |
---|
2476 | |
---|
2477 | ss=cmplx(1.0_dp,0.0_dp,kind=dp) |
---|
2478 | s2=cmplx(1.0_dp,0.0_dp,kind=dp) |
---|
2479 | |
---|
2480 | do i=1,no |
---|
2481 | ss=ss*s |
---|
2482 | s2=s2+ss |
---|
2483 | enddo |
---|
2484 | |
---|
2485 | s2=d1*s2 |
---|
2486 | |
---|
2487 | call kill(s) |
---|
2488 | call kill(ss) |
---|
2489 | END subroutine inv |
---|
2490 | |
---|
2491 | FUNCTION logtpsat( S1 ) |
---|
2492 | implicit none |
---|
2493 | TYPE (complextaylor) logtpsat |
---|
2494 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2495 | integer localmaster |
---|
2496 | localmaster=master |
---|
2497 | |
---|
2498 | call ass(logtpsat) |
---|
2499 | |
---|
2500 | call logtpsa(s1,logtpsat) |
---|
2501 | master=localmaster |
---|
2502 | END FUNCTION logtpsat |
---|
2503 | |
---|
2504 | subroutine logtpsa( S1, s2 ) |
---|
2505 | implicit none |
---|
2506 | TYPE (complextaylor) S1 |
---|
2507 | TYPE (complextaylor) S2 |
---|
2508 | TYPE (complextaylor) s,ss |
---|
2509 | complex(dp) d1 |
---|
2510 | real(dp) r1 ,i1 |
---|
2511 | integer i |
---|
2512 | |
---|
2513 | |
---|
2514 | call alloc(s) |
---|
2515 | call alloc(ss) |
---|
2516 | |
---|
2517 | r1=s1%r.sub.'0' |
---|
2518 | i1=s1%i.sub.'0' |
---|
2519 | |
---|
2520 | d1=cmplx(r1,i1,kind=dp) |
---|
2521 | s=(1.0_dp/d1)*s1-1.0_dp |
---|
2522 | |
---|
2523 | s2=s |
---|
2524 | |
---|
2525 | |
---|
2526 | ss=s |
---|
2527 | |
---|
2528 | do i=2,no |
---|
2529 | ss=cmplx(-1.0_dp,0.0_dp,kind=dp)*ss*s |
---|
2530 | s2=s2+ss/REAL(i,kind=DP) |
---|
2531 | enddo |
---|
2532 | |
---|
2533 | s2=log(d1)+s2 |
---|
2534 | |
---|
2535 | call kill(s) |
---|
2536 | call kill(ss) |
---|
2537 | END subroutine logtpsa |
---|
2538 | |
---|
2539 | FUNCTION full_abstpsat( S1 ) |
---|
2540 | implicit none |
---|
2541 | real(dp) full_abstpsat ,r1,r2 |
---|
2542 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2543 | |
---|
2544 | |
---|
2545 | r1=full_abs(s1%r) ! 2002.10.17 |
---|
2546 | r2=full_abs(s1%i) |
---|
2547 | full_abstpsat=r1+r2 |
---|
2548 | !abstpsat=SQRT((s1%r.sub.'0')**2+(s1%i.sub.'0')**2) |
---|
2549 | |
---|
2550 | END FUNCTION full_abstpsat |
---|
2551 | |
---|
2552 | FUNCTION abstpsat( S1 ) |
---|
2553 | implicit none |
---|
2554 | real(dp) abstpsat ,r1,r2 |
---|
2555 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2556 | |
---|
2557 | r1=abs(s1%r) ! 2002.10.17 etienne crap |
---|
2558 | r2=abs(s1%i) |
---|
2559 | abstpsat=SQRT(r1**2+r2**2) |
---|
2560 | |
---|
2561 | END FUNCTION abstpsat |
---|
2562 | |
---|
2563 | FUNCTION dcmplxt( S1,s2 ) |
---|
2564 | implicit none |
---|
2565 | TYPE (complextaylor) dcmplxt |
---|
2566 | TYPE (taylor), INTENT (IN) :: S1,s2 |
---|
2567 | integer localmaster |
---|
2568 | localmaster=master |
---|
2569 | |
---|
2570 | call ass(dcmplxt) |
---|
2571 | |
---|
2572 | dcmplxt%r=s1 |
---|
2573 | dcmplxt%i=s2 |
---|
2574 | |
---|
2575 | master=localmaster |
---|
2576 | END FUNCTION dcmplxt |
---|
2577 | |
---|
2578 | FUNCTION datant( S1 ) |
---|
2579 | implicit none |
---|
2580 | TYPE (complextaylor) datant,temp |
---|
2581 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2582 | integer localmaster |
---|
2583 | localmaster=master |
---|
2584 | |
---|
2585 | call ass(datant) |
---|
2586 | call alloc(temp) |
---|
2587 | |
---|
2588 | temp=(1.0_dp+s1*i_) |
---|
2589 | |
---|
2590 | temp=temp/(1.0_dp-s1*i_) |
---|
2591 | |
---|
2592 | temp=log(temp) |
---|
2593 | datant=temp/2.0_dp/i_ |
---|
2594 | |
---|
2595 | call kill(temp) |
---|
2596 | |
---|
2597 | master=localmaster |
---|
2598 | END FUNCTION datant |
---|
2599 | |
---|
2600 | FUNCTION datantt( S1 ) |
---|
2601 | implicit none |
---|
2602 | TYPE (taylor) datantt |
---|
2603 | TYPE (complextaylor) temp |
---|
2604 | TYPE (taylor), INTENT (IN) :: S1 |
---|
2605 | integer localmaster |
---|
2606 | localmaster=master |
---|
2607 | |
---|
2608 | call ass(datantt) |
---|
2609 | call alloc(temp) |
---|
2610 | |
---|
2611 | temp%r=s1 |
---|
2612 | temp=atan(temp) |
---|
2613 | datantt=temp%r |
---|
2614 | call kill(temp) |
---|
2615 | |
---|
2616 | master=localmaster |
---|
2617 | END FUNCTION datantt |
---|
2618 | |
---|
2619 | FUNCTION dasintt( S1 ) |
---|
2620 | implicit none |
---|
2621 | TYPE (taylor) dasintt |
---|
2622 | TYPE (complextaylor) temp |
---|
2623 | TYPE (taylor), INTENT (IN) :: S1 |
---|
2624 | integer localmaster |
---|
2625 | real(dp) a0 |
---|
2626 | localmaster=master |
---|
2627 | call ass(dasintt) |
---|
2628 | call alloc(temp) |
---|
2629 | |
---|
2630 | temp%r=s1 |
---|
2631 | a0=abs(temp%r) |
---|
2632 | if(a0>1.0_dp) then |
---|
2633 | check_stable=.false. |
---|
2634 | stable_da=.false. |
---|
2635 | messagelost= " Not defined in dasintt of complex_taylor " |
---|
2636 | endif |
---|
2637 | |
---|
2638 | temp=asin(temp) |
---|
2639 | dasintt=temp%r |
---|
2640 | call kill(temp) |
---|
2641 | |
---|
2642 | master=localmaster |
---|
2643 | END FUNCTION dasintt |
---|
2644 | |
---|
2645 | FUNCTION dasint( S1 ) |
---|
2646 | implicit none |
---|
2647 | TYPE (complextaylor) dasint,temp |
---|
2648 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2649 | integer localmaster |
---|
2650 | localmaster=master |
---|
2651 | |
---|
2652 | call ass(dasint) |
---|
2653 | call alloc(temp) |
---|
2654 | |
---|
2655 | temp=(1.0_dp-s1**2) |
---|
2656 | temp=temp**(0.5_dp) |
---|
2657 | |
---|
2658 | temp=i_*s1+ temp |
---|
2659 | dasint=-i_*log(temp) |
---|
2660 | |
---|
2661 | call kill(temp) |
---|
2662 | |
---|
2663 | master=localmaster |
---|
2664 | END FUNCTION dasint |
---|
2665 | |
---|
2666 | |
---|
2667 | |
---|
2668 | |
---|
2669 | FUNCTION dacostt( S1 ) |
---|
2670 | implicit none |
---|
2671 | TYPE (taylor) dacostt |
---|
2672 | TYPE (complextaylor) temp |
---|
2673 | TYPE (taylor), INTENT (IN) :: S1 |
---|
2674 | TYPE (taylor) t |
---|
2675 | integer localmaster |
---|
2676 | real(dp) a0 |
---|
2677 | localmaster=master |
---|
2678 | |
---|
2679 | call ass(dacostt) |
---|
2680 | call alloc(temp) |
---|
2681 | call alloc(t) |
---|
2682 | |
---|
2683 | a0=abs(s1) |
---|
2684 | if(a0>1.0_dp) then |
---|
2685 | check_stable=.false. |
---|
2686 | stable_da=.false. |
---|
2687 | messagelost= " Not defined in dacostt of complex_taylor " |
---|
2688 | endif |
---|
2689 | |
---|
2690 | ! if(debug_flag) then |
---|
2691 | ! if(debug_acos) then |
---|
2692 | temp%r=s1 |
---|
2693 | temp=acos(temp) |
---|
2694 | ! else |
---|
2695 | ! temp=-one+s1**2 |
---|
2696 | ! temp=temp**(half) |
---|
2697 | |
---|
2698 | ! temp=(s1+ temp) |
---|
2699 | ! temp=-i_*log(temp) |
---|
2700 | ! endif |
---|
2701 | ! else |
---|
2702 | ! t=sqrt(one-s1**2) |
---|
2703 | |
---|
2704 | ! temp=(s1+ i_*t) |
---|
2705 | ! temp=-i_*log(temp) |
---|
2706 | ! endif |
---|
2707 | ! call print(temp%r,10) |
---|
2708 | dacostt=temp%r |
---|
2709 | |
---|
2710 | call kill(t) |
---|
2711 | call kill(temp) |
---|
2712 | |
---|
2713 | master=localmaster |
---|
2714 | END FUNCTION dacostt |
---|
2715 | |
---|
2716 | |
---|
2717 | |
---|
2718 | FUNCTION dacost( S1 ) |
---|
2719 | implicit none |
---|
2720 | TYPE (complextaylor) dacost,temp |
---|
2721 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2722 | integer localmaster |
---|
2723 | localmaster=master |
---|
2724 | |
---|
2725 | call ass(dacost) |
---|
2726 | call alloc(temp) |
---|
2727 | |
---|
2728 | temp=1.0_dp-s1**2 |
---|
2729 | temp=temp**(0.5_dp) |
---|
2730 | |
---|
2731 | temp=(s1+ i_*temp) |
---|
2732 | dacost=-i_*log(temp) |
---|
2733 | |
---|
2734 | call kill(temp) |
---|
2735 | |
---|
2736 | master=localmaster |
---|
2737 | END FUNCTION dacost |
---|
2738 | |
---|
2739 | |
---|
2740 | |
---|
2741 | |
---|
2742 | FUNCTION tant( S1 ) |
---|
2743 | implicit none |
---|
2744 | TYPE (complextaylor) tant, temp |
---|
2745 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2746 | integer localmaster |
---|
2747 | localmaster=master |
---|
2748 | |
---|
2749 | |
---|
2750 | call ass(tant) |
---|
2751 | |
---|
2752 | call alloc(temp) |
---|
2753 | |
---|
2754 | temp=exp(i_*s1) |
---|
2755 | temp=temp-exp(-i_*s1) |
---|
2756 | tant=exp(i_*s1) |
---|
2757 | tant=tant+exp(-i_*s1) |
---|
2758 | tant=temp/tant/i_ |
---|
2759 | |
---|
2760 | call kill(temp) |
---|
2761 | |
---|
2762 | master=localmaster |
---|
2763 | END FUNCTION tant |
---|
2764 | |
---|
2765 | FUNCTION dtanht( S1 ) |
---|
2766 | implicit none |
---|
2767 | TYPE (complextaylor) dtanht, temp |
---|
2768 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2769 | integer localmaster |
---|
2770 | localmaster=master |
---|
2771 | |
---|
2772 | |
---|
2773 | call ass(dtanht) |
---|
2774 | |
---|
2775 | call alloc(temp) |
---|
2776 | |
---|
2777 | temp=exp(s1) |
---|
2778 | temp=temp-exp(-s1) |
---|
2779 | dtanht=exp(s1) |
---|
2780 | dtanht=dtanht+exp(-s1) |
---|
2781 | dtanht=temp/dtanht |
---|
2782 | |
---|
2783 | call kill(temp) |
---|
2784 | |
---|
2785 | master=localmaster |
---|
2786 | END FUNCTION dtanht |
---|
2787 | |
---|
2788 | FUNCTION dcost( S1 ) |
---|
2789 | implicit none |
---|
2790 | TYPE (complextaylor) dcost |
---|
2791 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2792 | integer localmaster |
---|
2793 | localmaster=master |
---|
2794 | |
---|
2795 | |
---|
2796 | call ass(dcost) |
---|
2797 | |
---|
2798 | dcost=exp(i_*s1) |
---|
2799 | dcost=dcost+exp(-i_*s1) |
---|
2800 | dcost=dcost/2.0_dp |
---|
2801 | |
---|
2802 | master=localmaster |
---|
2803 | END FUNCTION dcost |
---|
2804 | |
---|
2805 | FUNCTION dcosht( S1 ) |
---|
2806 | implicit none |
---|
2807 | TYPE (complextaylor) dcosht |
---|
2808 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2809 | integer localmaster |
---|
2810 | localmaster=master |
---|
2811 | |
---|
2812 | |
---|
2813 | call ass(dcosht) |
---|
2814 | |
---|
2815 | dcosht=exp(s1) |
---|
2816 | dcosht=dcosht+exp(-s1) |
---|
2817 | dcosht=dcosht/2.0_dp |
---|
2818 | |
---|
2819 | master=localmaster |
---|
2820 | END FUNCTION dcosht |
---|
2821 | |
---|
2822 | |
---|
2823 | FUNCTION dsint( S1 ) |
---|
2824 | implicit none |
---|
2825 | TYPE (complextaylor) dsint |
---|
2826 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2827 | integer localmaster |
---|
2828 | localmaster=master |
---|
2829 | |
---|
2830 | |
---|
2831 | call ass(dsint) |
---|
2832 | |
---|
2833 | dsint=exp(i_*s1) |
---|
2834 | dsint=dsint-exp(-i_*s1) |
---|
2835 | dsint=dsint/2.0_dp/i_ |
---|
2836 | |
---|
2837 | master=localmaster |
---|
2838 | END FUNCTION dsint |
---|
2839 | |
---|
2840 | FUNCTION dsinht( S1 ) |
---|
2841 | implicit none |
---|
2842 | TYPE (complextaylor) dsinht |
---|
2843 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2844 | integer localmaster |
---|
2845 | localmaster=master |
---|
2846 | |
---|
2847 | |
---|
2848 | call ass(dsinht) |
---|
2849 | |
---|
2850 | dsinht=exp(s1) |
---|
2851 | dsinht=dsinht-exp(-s1) |
---|
2852 | dsinht=dsinht/2.0_dp |
---|
2853 | |
---|
2854 | master=localmaster |
---|
2855 | END FUNCTION dsinht |
---|
2856 | |
---|
2857 | |
---|
2858 | FUNCTION exptpsat( S1 ) |
---|
2859 | implicit none |
---|
2860 | TYPE (complextaylor) exptpsat |
---|
2861 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2862 | integer localmaster |
---|
2863 | localmaster=master |
---|
2864 | |
---|
2865 | |
---|
2866 | call ass(exptpsat) |
---|
2867 | call exptpsa(s1,exptpsat) |
---|
2868 | master=localmaster |
---|
2869 | END FUNCTION exptpsat |
---|
2870 | |
---|
2871 | FUNCTION dsqrtt( S1 ) |
---|
2872 | implicit none |
---|
2873 | TYPE (complextaylor) dsqrtt |
---|
2874 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2875 | integer localmaster |
---|
2876 | localmaster=master |
---|
2877 | |
---|
2878 | |
---|
2879 | call ass(dsqrtt) |
---|
2880 | dsqrtt= S1**0.5_dp |
---|
2881 | |
---|
2882 | master=localmaster |
---|
2883 | END FUNCTION dsqrtt |
---|
2884 | |
---|
2885 | subroutine exptpsa( S1, s2 ) |
---|
2886 | implicit none |
---|
2887 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
2888 | TYPE (complextaylor), INTENT (inout) :: S2 |
---|
2889 | TYPE (complextaylor) s,ss |
---|
2890 | complex(dp) d1 |
---|
2891 | real(dp) r1 ,i1 |
---|
2892 | integer i |
---|
2893 | call alloc(s) |
---|
2894 | call alloc(ss) |
---|
2895 | |
---|
2896 | |
---|
2897 | r1=s1%r.sub.'0' |
---|
2898 | i1=s1%i.sub.'0' |
---|
2899 | |
---|
2900 | d1=cmplx(r1,i1,kind=dp) |
---|
2901 | s=s1 |
---|
2902 | |
---|
2903 | s=s1-d1 |
---|
2904 | |
---|
2905 | |
---|
2906 | ss=cmplx(1.0_dp,0.0_dp,kind=dp) |
---|
2907 | s2=cmplx(1.0_dp,0.0_dp,kind=dp) |
---|
2908 | |
---|
2909 | do i=1,no |
---|
2910 | ss=ss*s |
---|
2911 | ss=ss/REAL(i,kind=DP) |
---|
2912 | s2=s2+ss |
---|
2913 | enddo |
---|
2914 | |
---|
2915 | s2=exp(d1)*s2 |
---|
2916 | |
---|
2917 | call kill(s) |
---|
2918 | call kill(ss) |
---|
2919 | |
---|
2920 | END subroutine exptpsa |
---|
2921 | |
---|
2922 | subroutine assc(s1) |
---|
2923 | implicit none |
---|
2924 | TYPE (complextaylor) s1 |
---|
2925 | ! lastmaster=master ! 2002.12.13 |
---|
2926 | |
---|
2927 | select case(master) |
---|
2928 | case(0:ndumt-1) |
---|
2929 | master=master+1 |
---|
2930 | case(ndumt) |
---|
2931 | w_p=0 |
---|
2932 | w_p%nc=1 |
---|
2933 | w_p=(/" cannot indent anymore "/) |
---|
2934 | w_p%fc='(1((1X,A72),/))' |
---|
2935 | ! call !write_e(100) |
---|
2936 | end select |
---|
2937 | ! write(26,*) " complex taylor ",master |
---|
2938 | |
---|
2939 | call ass0(s1%r) |
---|
2940 | call ass0(s1%i) |
---|
2941 | |
---|
2942 | |
---|
2943 | end subroutine ASSc |
---|
2944 | |
---|
2945 | |
---|
2946 | |
---|
2947 | subroutine KILL_TPSA() |
---|
2948 | IMPLICIT NONE |
---|
2949 | logical present_tpsa |
---|
2950 | |
---|
2951 | present_tpsa=lingyun_yang |
---|
2952 | ! if(.not.first_time) then |
---|
2953 | if(last_tpsa==1) then |
---|
2954 | lingyun_yang=.true. |
---|
2955 | call KILL(varc1) |
---|
2956 | call KILL(varc2) |
---|
2957 | CALL KILL_fpp ! IN TPSALIE_ANALISYS |
---|
2958 | elseif(last_tpsa==2) then |
---|
2959 | lingyun_yang=.false. |
---|
2960 | call KILL(varc1) |
---|
2961 | call KILL(varc2) |
---|
2962 | CALL KILL_fpp ! IN TPSALIE_ANALISYS |
---|
2963 | endif |
---|
2964 | lingyun_yang=default_tpsa |
---|
2965 | last_tpsa=0 |
---|
2966 | ! endif |
---|
2967 | ! first_time=.true. |
---|
2968 | |
---|
2969 | END subroutine KILL_TPSA |
---|
2970 | |
---|
2971 | subroutine init_map_c(NO1,ND1,NP1,NDPT1,log) |
---|
2972 | implicit none |
---|
2973 | integer NO1,ND1,NP1,NDPT1 |
---|
2974 | LOGICAL(lp) log,present_tpsa |
---|
2975 | present_tpsa=lingyun_yang |
---|
2976 | ! if(.not.first_time) then |
---|
2977 | if(last_tpsa==1) then |
---|
2978 | lingyun_yang=.true. |
---|
2979 | call kill(varc1) |
---|
2980 | call kill(varc2) |
---|
2981 | elseif(last_tpsa==2) then |
---|
2982 | lingyun_yang=.false. |
---|
2983 | call kill(varc1) |
---|
2984 | call kill(varc2) |
---|
2985 | endif |
---|
2986 | lingyun_yang=present_tpsa |
---|
2987 | ! endif |
---|
2988 | |
---|
2989 | call init_map(NO1,ND1,NP1,NDPT1,log) |
---|
2990 | call set_in_complex(log) |
---|
2991 | call alloc(varc1) |
---|
2992 | call alloc(varc2) |
---|
2993 | |
---|
2994 | end subroutine init_map_c |
---|
2995 | |
---|
2996 | subroutine init_tpsa_c(NO1,NP1,log) |
---|
2997 | implicit none |
---|
2998 | integer NO1,NP1 |
---|
2999 | LOGICAL(lp) log,present_tpsa |
---|
3000 | present_tpsa=lingyun_yang |
---|
3001 | ! if(.not.first_time) then |
---|
3002 | if(last_tpsa==1) then |
---|
3003 | lingyun_yang=.true. |
---|
3004 | call kill(varc1) |
---|
3005 | call kill(varc2) |
---|
3006 | elseif(last_tpsa==2) then |
---|
3007 | lingyun_yang=.false. |
---|
3008 | call kill(varc1) |
---|
3009 | call kill(varc2) |
---|
3010 | endif |
---|
3011 | lingyun_yang=present_tpsa |
---|
3012 | ! endif |
---|
3013 | call init_tpsa(NO1,NP1,log) |
---|
3014 | call set_in_complex(log) |
---|
3015 | call alloc(varc1) |
---|
3016 | call alloc(varc2) |
---|
3017 | |
---|
3018 | end subroutine init_tpsa_c |
---|
3019 | |
---|
3020 | |
---|
3021 | subroutine set_in_complex(log) |
---|
3022 | implicit none |
---|
3023 | logical(lp) log |
---|
3024 | integer iia(4),icoast(4) |
---|
3025 | call liepeek(iia,icoast) |
---|
3026 | old=log |
---|
3027 | NO=iia(1) |
---|
3028 | ND=iia(3) |
---|
3029 | ND2=iia(3)*2 |
---|
3030 | NP=iia(2)-nd2 |
---|
3031 | NDPT=icoast(4) |
---|
3032 | NV=iia(2) |
---|
3033 | ! i_ =cmplx(zero,one,kind=dp) |
---|
3034 | end subroutine set_in_complex |
---|
3035 | |
---|
3036 | ! SUBROUTINE VARcC(S1,R1,R2,I1,I2) |
---|
3037 | ! implicit none |
---|
3038 | ! INTEGER,INTENT(IN)::I1,I2 |
---|
3039 | ! complex(dp),INTENT(IN)::R1 |
---|
3040 | ! complex(dp),INTENT(IN)::R2 ! big change |
---|
3041 | ! type (complextaylor),INTENT(INOUT)::S1 |
---|
3042 | ! integer localmaster |
---|
3043 | ! localmaster=master |
---|
3044 | ! |
---|
3045 | ! s1=r1+r2*((one.mono.i1) + i_* (one.mono.i2) ) |
---|
3046 | !! s1%r=(/REAL(R1,kind=DP),R2/).var.i1 |
---|
3047 | !! s1%i=(/aimag(R1),R2/).var.i2 |
---|
3048 | !! call var001(s1%r,REAL(R1,kind=DP),R2,i1) |
---|
3049 | !! call var001(s1%i,aimag(R1),R2,i2) |
---|
3050 | ! master=localmaster |
---|
3051 | ! |
---|
3052 | ! |
---|
3053 | ! |
---|
3054 | ! END SUBROUTINE VARcC |
---|
3055 | ! |
---|
3056 | ! SUBROUTINE VARc(S1,R1,I1,I2) |
---|
3057 | ! implicit none |
---|
3058 | ! INTEGER,INTENT(IN)::I1,I2 |
---|
3059 | ! complex(dp),INTENT(IN)::R1 |
---|
3060 | ! type (complextaylor),INTENT(INOUT)::S1 |
---|
3061 | ! |
---|
3062 | ! integer localmaster |
---|
3063 | ! localmaster=master |
---|
3064 | ! |
---|
3065 | ! s1%r=REAL(R1,kind=DP).var.i1 |
---|
3066 | ! s1%i=aimag(R1).var.i2 |
---|
3067 | !! call var000(s1%r,REAL(R1,kind=DP),i1) |
---|
3068 | !! call var000(s1%i,aimag(R1),i2) |
---|
3069 | ! master=localmaster |
---|
3070 | ! |
---|
3071 | ! |
---|
3072 | ! END SUBROUTINE VARc |
---|
3073 | |
---|
3074 | |
---|
3075 | ! SUBROUTINE shiftc(S1,S2,s) |
---|
3076 | ! implicit none |
---|
3077 | ! INTEGER,INTENT(IN)::s |
---|
3078 | ! type (complextaylor),INTENT(IN)::S1 |
---|
3079 | ! type (complextaylor),INTENT(inout)::S2 |
---|
3080 | ! |
---|
3081 | ! call shift000(S1%r,S2%r,s) |
---|
3082 | ! call shift000(S1%i,S2%i,s) |
---|
3083 | |
---|
3084 | ! END SUBROUTINE shiftc |
---|
3085 | |
---|
3086 | FUNCTION GETintk( S1, S2 ) |
---|
3087 | implicit none |
---|
3088 | TYPE (complextaylor) GETintk |
---|
3089 | TYPE (complextaylor), INTENT (IN) :: S1 |
---|
3090 | integer , INTENT (IN) :: S2 |
---|
3091 | |
---|
3092 | integer localmaster |
---|
3093 | localmaster=master |
---|
3094 | |
---|
3095 | call ass(GETintk) |
---|
3096 | |
---|
3097 | GETintk%r=S1%r<=s2 |
---|
3098 | GETintk%i=S1%i<=s2 |
---|
3099 | |
---|
3100 | ! call shiftda(GETintk,GETintk, s2 ) |
---|
3101 | |
---|
3102 | master=localmaster |
---|
3103 | |
---|
3104 | |
---|
3105 | END FUNCTION GETintk |
---|
3106 | |
---|
3107 | |
---|
3108 | |
---|
3109 | SUBROUTINE pekc(S1,J,R1) |
---|
3110 | implicit none |
---|
3111 | INTEGER,INTENT(IN),dimension(:)::j |
---|
3112 | complex(dp),INTENT(inout)::R1 |
---|
3113 | type (complextaylor),INTENT(IN)::S1 |
---|
3114 | real(dp) xr,xi |
---|
3115 | |
---|
3116 | call pek000(s1%r,j,xr) |
---|
3117 | call pek000(s1%i,j,xi) |
---|
3118 | |
---|
3119 | r1=cmplx(xr,xi,kind=dp) |
---|
3120 | |
---|
3121 | END SUBROUTINE pekc |
---|
3122 | |
---|
3123 | |
---|
3124 | SUBROUTINE pokc(S1,J,R1) |
---|
3125 | implicit none |
---|
3126 | INTEGER,INTENT(in),dimension(:)::j |
---|
3127 | complex(dp),INTENT(in)::R1 |
---|
3128 | type (complextaylor),INTENT(inout)::S1 |
---|
3129 | |
---|
3130 | call pok000(s1%r,J,REAL(r1,kind=DP)) |
---|
3131 | call pok000(s1%i,J,aimag(r1)) |
---|
3132 | END SUBROUTINE pokc |
---|
3133 | |
---|
3134 | SUBROUTINE CFUC(S2,FUN,S1)! |
---|
3135 | implicit none |
---|
3136 | type (complextaylor),INTENT(INOUT)::S1 |
---|
3137 | type (complextaylor),INTENT(IN)::S2 |
---|
3138 | type (complextaylor) T |
---|
3139 | type (taylor) W |
---|
3140 | complex(dp) FUN |
---|
3141 | EXTERNAL FUN |
---|
3142 | CALL ALLOC(T) |
---|
3143 | CALL ALLOC(W) |
---|
3144 | |
---|
3145 | CALL CFUR(S2%R,FUN,W) |
---|
3146 | T%R=W |
---|
3147 | CALL CFUI(S2%I,FUN,W) |
---|
3148 | T%R=T%R-W |
---|
3149 | CALL CFUR(S2%I,FUN,W) |
---|
3150 | T%I=W |
---|
3151 | CALL CFUI(S2%R,FUN,W) |
---|
3152 | T%I=T%I+W |
---|
3153 | S1=T |
---|
3154 | CALL KILL(T) |
---|
3155 | CALL KILL(W) |
---|
3156 | |
---|
3157 | END SUBROUTINE CFUC |
---|
3158 | |
---|
3159 | SUBROUTINE CFURES(S2,FUN,S1)! |
---|
3160 | implicit none |
---|
3161 | type (pbresonance),INTENT(INOUT)::S1 |
---|
3162 | type (pbresonance),INTENT(IN)::S2 |
---|
3163 | type (complextaylor) T |
---|
3164 | type (taylor) W |
---|
3165 | complex(dp) FUN |
---|
3166 | EXTERNAL FUN |
---|
3167 | CALL ALLOC(T) |
---|
3168 | CALL ALLOC(W) |
---|
3169 | |
---|
3170 | CALL CFUR(S2%COS%H,FUN,W) |
---|
3171 | T%R=W |
---|
3172 | CALL CFUI(S2%SIN%H,FUN,W) |
---|
3173 | T%R=T%R-W |
---|
3174 | CALL CFUR(S2%SIN%H,FUN,W) |
---|
3175 | T%I=W |
---|
3176 | CALL CFUI(S2%COS%H,FUN,W) |
---|
3177 | T%I=T%I+W |
---|
3178 | S1%COS%H=T%R |
---|
3179 | S1%SIN%H=T%I |
---|
3180 | CALL KILL(T) |
---|
3181 | CALL KILL(W) |
---|
3182 | |
---|
3183 | END SUBROUTINE CFURES |
---|
3184 | |
---|
3185 | |
---|
3186 | end module complex_taylor |
---|