OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i20buce_crit.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| i20buce_crit ../engine/source/interfaces/intsort/i20buce_crit.F
25!||--- called by ------------------------------------------------------
26!|| i20main_crit_tri ../engine/source/interfaces/intsort/i20main_crit_tri.F
27!||--- calls -----------------------------------------------------
28!|| spmd_get_penis20 ../engine/source/mpi/interfaces/send_cand.F
29!||--- uses -----------------------------------------------------
30!|| anim_mod ../common_source/modules/output/anim_mod.F
31!|| h3d_mod ../engine/share/modules/h3d_mod.F
32!||====================================================================
33 SUBROUTINE i20buce_crit(
34 1 ITASK ,X ,V ,MS ,
35 2 NTY ,NIN ,INACTI ,NSN ,
36 3 NMN ,NSV ,MSR ,XSAV ,
37 4 STFA ,XSLV_G ,XMSR_G ,VSLV_G ,
38 5 VMSR_G ,DAANC6 ,DXANC ,DVANC ,
39 6 NSNE ,NMNE ,NLINSA ,NLINMA ,
40 7 NSVE ,MSRE ,XSAVE ,PENISE ,
41 8 PENIME ,STFES ,XA ,VA ,
42 9 NLN ,NLG ,PENIS ,PENIM ,
43 A PENIA ,NRTM ,IXLINS ,DXANCG ,
44 B IKINE ,DIAG_SMS,ALPHAK ,DAANC ,
45 C STFAC ,H3D_DATA)
46C-----------------------------------------------
47C M o d u l e s
48C-----------------------------------------------
49 USE h3d_mod
50 USE anim_mod
51C-----------------------------------------------
52C I m p l i c i t T y p e s
53C-----------------------------------------------
54#include "implicit_f.inc"
55#include "comlock.inc"
56C-----------------------------------------------
57C C o m m o n B l o c k s
58C-----------------------------------------------
59#include "com01_c.inc"
60#include "com04_c.inc"
61#include "com06_c.inc"
62#include "com08_c.inc"
63#include "scr07_c.inc"
64#include "scr14_c.inc"
65#include "scr16_c.inc"
66#include "task_c.inc"
67#include "sms_c.inc"
68C-----------------------------------------------
69C D u m m y A r g u m e n t s
70C-----------------------------------------------
71 INTEGER NSN,NMN,ITASK,NSV(NSN),MSR(NMN), NIN ,NTY ,INACTI,
72 . NLINSA,NLINMA,NLN,NLG(NLN),NRTM
73 INTEGER NSNE,NMNE,NSVE(NSNE),MSRE(NMNE),IXLINS(2,*),IKINE(NUMNOD)
74 my_real
75 . X(3,*), V(3,*), XSAV(3,*), STFA(*),
76 . XSLV_G(*),XMSR_G(*), VSLV_G(*), VMSR_G(*), MS(*), DIAG_SMS(*),
77 . XSAVE(3,*), STFES(*),PENISE(2,NLINSA),PENIME(2,NLINMA),
78 . PENIS(2,NSN),PENIM(2,NRTM),PENIA(5,NLN),STFAC
79 my_real
80 . DVANC(3,*) ,DXANC(3,*),DAANC(3,*) ,DXANCG(3,*)
81 my_real
82 . VA(3,NSN) ,XA(3,NSN),ALPHAK(3,NLN)
83 DOUBLE PRECISION
84 . DAANC6(3,6,*)
85 TYPE (H3D_DATABASE) :: H3D_DATA
86C-----------------------------------------------
87C L o c a l V a r i a b l e s
88C-----------------------------------------------
89 INTEGER NSNF,NMNF,NSNL,NMNL,I, II, N,NLNF,NLNL,IL,IG,NRTMF,NRTML
90 INTEGER NSNEF,NMNEF,NSNEL,NMNEL,NLINSAF,NLINSAL,NLINMAF,NLINMAL
91 INTEGER IRBY
92 my_real
93 . aaa,da(3), xslv(6), xmsr(6), vslv(6), vmsr(6) ,amass
94C-----------------------------------------------
95C S o u r c e L i n e s
96C-----------------------------------------------
97C
98C 0- CALCUL DU CRITERE POUR SAVOIR SI ON DOIT TRIER OU NON
99C
100 xslv(1) = -ep30
101 xslv(2) = -ep30
102 xslv(3) = -ep30
103 xslv(4) = ep30
104 xslv(5) = ep30
105 xslv(6) = ep30
106 xmsr(1) = -ep30
107 xmsr(2) = -ep30
108 xmsr(3) = -ep30
109 xmsr(4) = ep30
110 xmsr(5) = ep30
111 xmsr(6) = ep30
112 vslv(1) = -ep30
113 vslv(2) = -ep30
114 vslv(3) = -ep30
115 vslv(4) = ep30
116 vslv(5) = ep30
117 vslv(6) = ep30
118 vmsr(1) = -ep30
119 vmsr(2) = -ep30
120 vmsr(3) = -ep30
121 vmsr(4) = ep30
122 vmsr(5) = ep30
123 vmsr(6) = ep30
124
125 nlnf = 1 + itask*nln / nthread
126 nlnl = (itask+1)*nln / nthread
127 nsnf = 1 + itask*nsn / nthread
128 nsnl = (itask+1)*nsn / nthread
129 nmnf = 1 + itask*nmn / nthread
130 nmnl = (itask+1)*nmn / nthread
131
132 nrtmf = 1 + itask*nrtm / nthread
133 nrtml = (itask+1)*nrtm / nthread
134
135 nsnef = 1 + itask*nsne / nthread
136 nsnel = (itask+1)*nsne / nthread
137 nmnef = 1 + itask*nmne / nthread
138 nmnel = (itask+1)*nmne / nthread
139
140 nlinsaf = 1 + itask * nlinsa / nthread
141 nlinsal = (itask+1) * nlinsa / nthread
142 nlinmaf = 1 + itask * nlinma / nthread
143 nlinmal = (itask+1) * nlinma / nthread
144C=======================================================================
145C POINTS D'ANCRAGE INTEGRATION dA dV dX
146C=======================================================================
147C=======================================================================
148C NOUVELLE FORMULATION
149C=======================================================================
150 IF(stfac > zero)THEN
151 amass = max(two,stfac+sqrt(two*stfac))
152 ELSE
153 amass = two
154 ENDIF
155 IF(idtmins==0.AND.idtmins_int==0)THEN
156 DO i=nlnf,nlnl
157 ig=nlg(i)
158 irby = ikine(ig) - (ikine(ig)/2)*2
159 IF(ms(ig) > zero .and. irby /= 1)THEN
160
161c essai viscosite critique
162c AAA = DT12/(TWO*MS(IG))
163 aaa = dt12/(amass*ms(ig))
164c delta A parith on
165 da(1) = daanc(1,i)
166 da(2) = daanc(2,i)
167 da(3) = daanc(3,i)
168 IF(alphak(2,i)<zero)THEN
169 da(1) = daanc6(1,1,i) + daanc6(1,2,i) + daanc6(1,3,i)
170 . + daanc6(1,4,i) + daanc6(1,5,i) + daanc6(1,6,i)
171 . + da(1)
172 da(2) = daanc6(2,1,i) + daanc6(2,2,i) + daanc6(2,3,i)
173 . + daanc6(2,4,i) + daanc6(2,5,i) + daanc6(2,6,i)
174 . + da(2)
175 da(3) = daanc6(3,1,i) + daanc6(3,2,i) + daanc6(3,3,i)
176 . + daanc6(3,4,i) + daanc6(3,5,i) + daanc6(3,6,i)
177 . + da(3)
178
179 daanc6(1,1,i) = zero
180 daanc6(1,2,i) = zero
181 daanc6(1,3,i) = zero
182 daanc6(1,4,i) = zero
183 daanc6(1,5,i) = zero
184 daanc6(1,6,i) = zero
185
186 daanc6(2,1,i) = zero
187 daanc6(2,2,i) = zero
188 daanc6(2,3,i) = zero
189 daanc6(2,4,i) = zero
190 daanc6(2,5,i) = zero
191 daanc6(2,6,i) = zero
192
193 daanc6(3,1,i) = zero
194 daanc6(3,2,i) = zero
195 daanc6(3,3,i) = zero
196 daanc6(3,4,i) = zero
197 daanc6(3,5,i) = zero
198 daanc6(3,6,i) = zero
199
200 ENDIF
201
202 dvanc(1,i) = dvanc(1,i) + da(1)*aaa
203 dvanc(2,i) = dvanc(2,i) + da(2)*aaa
204 dvanc(3,i) = dvanc(3,i) + da(3)*aaa
205 dxanc(1,i) = dxanc(1,i) + dvanc(1,i)*dt1
206 dxanc(2,i) = dxanc(2,i) + dvanc(2,i)*dt1
207 dxanc(3,i) = dxanc(3,i) + dvanc(3,i)*dt1
208
209 ELSE
210
211 dvanc(1,i) = zero
212 dvanc(2,i) = zero
213 dvanc(3,i) = zero
214 dxanc(1,i) = zero
215 dxanc(2,i) = zero
216 dxanc(3,i) = zero
217
218 ENDIF
219
220 va(1,i) = v(1,ig) + dvanc(1,i)
221 va(2,i) = v(2,ig) + dvanc(2,i)
222 va(3,i) = v(3,ig) + dvanc(3,i)
223 xa(1,i) = x(1,ig) + dxanc(1,i)
224 xa(2,i) = x(2,ig) + dxanc(2,i)
225 xa(3,i) = x(3,ig) + dxanc(3,i)
226
227 END DO
228 ELSE
229C-- AMS
230 DO i=nlnf,nlnl
231 ig=nlg(i)
232 irby = ikine(ig) - (ikine(ig)/2)*2
233 IF(diag_sms(ig) > zero .and. irby /= 1)THEN
234
235 aaa = dt12/(amass*diag_sms(ig))
236c delta A parith on
237 da(1) = daanc(1,i)
238 da(2) = daanc(2,i)
239 da(3) = daanc(3,i)
240 IF(alphak(2,i)<zero)THEN
241 da(1) = daanc6(1,1,i) + daanc6(1,2,i) + daanc6(1,3,i)
242 . + daanc6(1,4,i) + daanc6(1,5,i) + daanc6(1,6,i)
243 . + da(1)
244 da(2) = daanc6(2,1,i) + daanc6(2,2,i) + daanc6(2,3,i)
245 . + daanc6(2,4,i) + daanc6(2,5,i) + daanc6(2,6,i)
246 . + da(2)
247 da(3) = daanc6(3,1,i) + daanc6(3,2,i) + daanc6(3,3,i)
248 . + daanc6(3,4,i) + daanc6(3,5,i) + daanc6(3,6,i)
249 . + da(3)
250 daanc6(1,1,i) = zero
251 daanc6(1,2,i) = zero
252 daanc6(1,3,i) = zero
253 daanc6(1,4,i) = zero
254 daanc6(1,5,i) = zero
255 daanc6(1,6,i) = zero
256
257 daanc6(2,1,i) = zero
258 daanc6(2,2,i) = zero
259 daanc6(2,3,i) = zero
260 daanc6(2,4,i) = zero
261 daanc6(2,5,i) = zero
262 daanc6(2,6,i) = zero
263
264 daanc6(3,1,i) = zero
265 daanc6(3,2,i) = zero
266 daanc6(3,3,i) = zero
267 daanc6(3,4,i) = zero
268 daanc6(3,5,i) = zero
269 daanc6(3,6,i) = zero
270 ENDIF
271
272 dvanc(1,i) = dvanc(1,i) + da(1)*aaa
273 dvanc(2,i) = dvanc(2,i) + da(2)*aaa
274 dvanc(3,i) = dvanc(3,i) + da(3)*aaa
275 dxanc(1,i) = dxanc(1,i) + dvanc(1,i)*dt1
276 dxanc(2,i) = dxanc(2,i) + dvanc(2,i)*dt1
277 dxanc(3,i) = dxanc(3,i) + dvanc(3,i)*dt1
278
279 ELSE
280
281 dvanc(1,i) = zero
282 dvanc(2,i) = zero
283 dvanc(3,i) = zero
284 dxanc(1,i) = zero
285 dxanc(2,i) = zero
286 dxanc(3,i) = zero
287
288 ENDIF
289
290 va(1,i) = v(1,ig) + dvanc(1,i)
291 va(2,i) = v(2,ig) + dvanc(2,i)
292 va(3,i) = v(3,ig) + dvanc(3,i)
293 xa(1,i) = x(1,ig) + dxanc(1,i)
294 xa(2,i) = x(2,ig) + dxanc(2,i)
295 xa(3,i) = x(3,ig) + dxanc(3,i)
296
297 END DO
298 END IF
299
300 IF(anim_v(15)+outp_v(15)+h3d_data%N_VECT_DXANC >0.AND.
301 . ((tt>=tanim .AND. tt<=tanim_stop).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP).OR.
302 . (manim>=4.AND.manim<=15).OR.h3d_data%MH3D/=0))THEN
303 DO i=nlnf,nlnl
304 ig=nlg(i)
305 dxancg(1,ig) = dxanc(1,i)
306 dxancg(2,ig) = dxanc(2,i)
307 dxancg(3,ig) = dxanc(3,i)
308 END DO
309 ENDIF
310C=======================================================================
311C maj pene a verifier !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
312C=======================================================================
313 IF(inacti==5.OR.inacti==6)THEN
314 IF(nspmd > 1 .AND. tt > zero) THEN ! a tt=0. les frontieres ne sont que partiellement baties
315C
316C Partie non parallele smt
317C
318!$OMP SINGLE
319 CALL spmd_get_penis20(nsv,ixlins,penis,penise,penia,nin)
320C Fin Partie non parallele smt
321!$OMP END SINGLE
322 ENDIF
323c a faire ici ou dans I20BUCE_CRIT IF(PENIA(5,I)+... /= ZERO)NACTI=NACTI+1
324 DO i=nlnf,nlnl
325 penia(4,i) = min(penia(4,i),penia(5,i))
326 penia(5,i) = zero
327 ENDDO
328
329 DO i=nsnf,nsnl
330 penis(1,i)=min(penis(1,i),penis(2,i))
331 penis(2,i)=zero
332 ENDDO
333 DO i=nrtmf,nrtml
334 penim(1,i)=min(penim(1,i),penim(2,i))
335 penim(2,i)=zero
336 ENDDO
337
338 DO i=nlinsaf,nlinsal
339 penise(1,i)=min(penise(1,i),penise(2,i))
340 penise(2,i)=zero
341 ENDDO
342 DO i=nlinmaf,nlinmal
343 penime(1,i)=min(penime(1,i),penime(2,i))
344 penime(2,i)=zero
345 ENDDO
346 ENDIF
347C=======================================================================
348C maj pene edges !!!!! deplace
349C=======================================================================
350c IF(INACTI==5.OR.INACTI==6)THEN
351cC
352cC maj PENIS sur partie non locale
353cC
354c IF(NSPMD > 1) THEN
355cC
356cC Partie non parallele smt
357cC
358c!$OMP SINGLE
359c
360c CALL SPMD_GET_PENIS20E(NLINSA,PENIS,NIN)
361c
362cC Fin Partie non parallele smt
363c!$OMP END SINGLE
364c
365c END IF
366c ENDIF
367C=======================================================================
368C maj pene edges fin !!!!! deplace
369C=======================================================================
370C=======================================================================
371C CALCUL CRITERE TRI
372C=======================================================================
373#include "vectorize.inc"
374 DO i=nsnf,nsnl
375 il = nsv(i)
376 IF(stfa(il)/=zero) THEN
377
378 xslv(1)=max(xslv(1),xa(1,il)-xsav(1,i))
379 xslv(2)=max(xslv(2),xa(2,il)-xsav(2,i))
380 xslv(3)=max(xslv(3),xa(3,il)-xsav(3,i))
381 xslv(4)=min(xslv(4),xa(1,il)-xsav(1,i))
382 xslv(5)=min(xslv(5),xa(2,il)-xsav(2,i))
383 xslv(6)=min(xslv(6),xa(3,il)-xsav(3,i))
384C
385 vslv(1)=max(vslv(1),va(1,il))
386 vslv(2)=max(vslv(2),va(2,il))
387 vslv(3)=max(vslv(3),va(3,il))
388 vslv(4)=min(vslv(4),va(1,il))
389 vslv(5)=min(vslv(5),va(2,il))
390 vslv(6)=min(vslv(6),va(3,il))
391
392 ENDIF
393C
394 END DO
395#include "vectorize.inc"
396 DO i=nmnf,nmnl
397 ii = i+nsn
398 il=msr(i)
399 IF(il>0) THEN
400 xmsr(1)=max(xmsr(1),xa(1,il)-xsav(1,ii))
401 xmsr(2)=max(xmsr(2),xa(2,il)-xsav(2,ii))
402 xmsr(3)=max(xmsr(3),xa(3,il)-xsav(3,ii))
403 xmsr(4)=min(xmsr(4),xa(1,il)-xsav(1,ii))
404 xmsr(5)=min(xmsr(5),xa(2,il)-xsav(2,ii))
405 xmsr(6)=min(xmsr(6),xa(3,il)-xsav(3,ii))
406C
407 vmsr(1)=max(vmsr(1),va(1,il))
408 vmsr(2)=max(vmsr(2),va(2,il))
409 vmsr(3)=max(vmsr(3),va(3,il))
410 vmsr(4)=min(vmsr(4),va(1,il))
411 vmsr(5)=min(vmsr(5),va(2,il))
412 vmsr(6)=min(vmsr(6),va(3,il))
413 ENDIF
414 END DO
415C dist calcule une fois pour toutes les interfaces dans SMP_CRIT (ci-dessous) ou SPMD_CRIT
416C
417C EDGES
418C
419 DO i=nsnef,nsnel
420 il=nsve(i)
421C shooting nodes
422 IF(il>0) THEN
423 xslv(1)=max(xslv(1),xa(1,il)-xsave(1,i))
424 xslv(2)=max(xslv(2),xa(2,il)-xsave(2,i))
425 xslv(3)=max(xslv(3),xa(3,il)-xsave(3,i))
426 xslv(4)=min(xslv(4),xa(1,il)-xsave(1,i))
427 xslv(5)=min(xslv(5),xa(2,il)-xsave(2,i))
428 xslv(6)=min(xslv(6),xa(3,il)-xsave(3,i))
429C
430 vslv(1)=max(vslv(1),va(1,il))
431 vslv(2)=max(vslv(2),va(2,il))
432 vslv(3)=max(vslv(3),va(3,il))
433 vslv(4)=min(vslv(4),va(1,il))
434 vslv(5)=min(vslv(5),va(2,il))
435 vslv(6)=min(vslv(6),va(3,il))
436 ENDIF
437 END DO
438 DO i=nmnef,nmnel
439 ii = i+nsne
440 il=msre(i)
441C shooting nodes
442 IF(il>0) THEN
443 xmsr(1)=max(xmsr(1),xa(1,il)-xsave(1,ii))
444 xmsr(2)=max(xmsr(2),xa(2,il)-xsave(2,ii))
445 xmsr(3)=max(xmsr(3),xa(3,il)-xsave(3,ii))
446 xmsr(4)=min(xmsr(4),xa(1,il)-xsave(1,ii))
447 xmsr(5)=min(xmsr(5),xa(2,il)-xsave(2,ii))
448 xmsr(6)=min(xmsr(6),xa(3,il)-xsave(3,ii))
449C
450 vmsr(1)=max(vmsr(1),va(1,il))
451 vmsr(2)=max(vmsr(2),va(2,il))
452 vmsr(3)=max(vmsr(3),va(3,il))
453 vmsr(4)=min(vmsr(4),va(1,il))
454 vmsr(5)=min(vmsr(5),va(2,il))
455 vmsr(6)=min(vmsr(6),va(3,il))
456CDAANC6
457 ENDIF
458 END DO
459
460C
461#include "lockon.inc"
462 xslv_g(1)=max(xslv_g(1),xslv(1))
463 xslv_g(2)=max(xslv_g(2),xslv(2))
464 xslv_g(3)=max(xslv_g(3),xslv(3))
465 xslv_g(4)=min(xslv_g(4),xslv(4))
466 xslv_g(5)=min(xslv_g(5),xslv(5))
467 xslv_g(6)=min(xslv_g(6),xslv(6))
468 xmsr_g(1)=max(xmsr_g(1),xmsr(1))
469 xmsr_g(2)=max(xmsr_g(2),xmsr(2))
470 xmsr_g(3)=max(xmsr_g(3),xmsr(3))
471 xmsr_g(4)=min(xmsr_g(4),xmsr(4))
472 xmsr_g(5)=min(xmsr_g(5),xmsr(5))
473 xmsr_g(6)=min(xmsr_g(6),xmsr(6))
474C
475 vslv_g(1)=max(vslv_g(1),vslv(1))
476 vslv_g(2)=max(vslv_g(2),vslv(2))
477 vslv_g(3)=max(vslv_g(3),vslv(3))
478 vslv_g(4)=min(vslv_g(4),vslv(4))
479 vslv_g(5)=min(vslv_g(5),vslv(5))
480 vslv_g(6)=min(vslv_g(6),vslv(6))
481 vmsr_g(1)=max(vmsr_g(1),vmsr(1))
482 vmsr_g(2)=max(vmsr_g(2),vmsr(2))
483 vmsr_g(3)=max(vmsr_g(3),vmsr(3))
484 vmsr_g(4)=min(vmsr_g(4),vmsr(4))
485 vmsr_g(5)=min(vmsr_g(5),vmsr(5))
486 vmsr_g(6)=min(vmsr_g(6),vmsr(6))
487#include "lockoff.inc"
488
489C
490C=======================================================================
491C STIF
492C=======================================================================
493 IF(nspmd==1) THEN
494C traitement deplace dans SPMD_GET_STIF en SPMD
495 DO i=nlnf,nlnl
496 stfa(i)=max(stfa(i),zero)
497 ENDDO
498C
499 DO i=nlinsaf,nlinsal
500 stfes(i)=max(stfes(i),zero)
501 ENDDO
502 END IF
503C=======================================================================
504C maj pene edges !!!!! deplace
505C=======================================================================
506c IF(INACTI==5.OR.INACTI==6)THEN
507cC
508cC maj PENIS sur partie non locale
509cC
510c IF(NSPMD > 1) THEN
511cC
512cC Partie non parallele smt
513cC
514c!$OMP SINGLE
515c
516c CALL SPMD_GET_PENIS20E(NLINSA,PENIS,NIN)
517c
518cC Fin Partie non parallele smt
519c!$OMP END SINGLE
520c
521c END IF
522c DO I=NLINSAF,NLINSAL
523c PENIS(1,I)=MIN(PENIS(1,I),PENIS(2,I))
524c PENIS(2,I)=ZERO
525c ENDDO
526c DO I=NLINMAF,NLINMAL
527c PENIM(1,I)=MIN(PENIM(1,I),PENIM(2,I))
528c PENIM(2,I)=ZERO
529c ENDDO
530c ENDIF
531C=======================================================================
532C maj pene edges fin !!!!! deplace
533C=======================================================================
534C
535C sur les noeuds frontieres en SPMD, suffit d'initialiser ALPHAKFI a ONE ds i20main_tri/i20xsinir
536 DO i=nlnf,nlnl
537 alphak(1,i)=max(alphak(1,i),alphak(3,i))
538 alphak(1,i)=min(alphak(1,i),abs(alphak(2,i)))
539 alphak(2,i)=one
540 alphak(3,i)=one
541 ENDDO
542C
543 RETURN
544 END
subroutine i20buce_crit(itask, x, v, ms, nty, nin, inacti, nsn, nmn, nsv, msr, xsav, stfa, xslv_g, xmsr_g, vslv_g, vmsr_g, daanc6, dxanc, dvanc, nsne, nmne, nlinsa, nlinma, nsve, msre, xsave, penise, penime, stfes, xa, va, nln, nlg, penis, penim, penia, nrtm, ixlins, dxancg, ikine, diag_sms, alphak, daanc, stfac, h3d_data)
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
subroutine spmd_get_penis20(nsv, ixlins, penis, penise, penia, nin)
Definition send_cand.F:2832