41
42
43
44 USE my_alloc_mod
45
46
47
48#include "implicit_f.inc"
49
50
51
52#include "mvsiz_p.inc"
53
54 INTEGER NVECSZ
55 parameter(nvecsz = mvsiz)
56
57
58
59#include "param_c.inc"
60#include "parit_c.inc"
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117 INTEGER I_ADD,MAXSIZ,I_MEM,ESHIFT,NSN,NRTM,
118 . MULNSN,NB_N_B,NOINT,I_ADD_MAX,INACTI,IGAP,
119 . ADD(2,*),IRECT(4,*),
120 . CAND_N(*),CAND_E(*),II_STOK
121
123 . xloc(3,*),xyzm(6,*),stf(*),stfn(*),gap_s(*),
124 . xm0(3,*), nod_normal(3,*),
125 . tzinf,maxbox,minbox,marge,gap,gapmin,gapmax,
126 . depth
127 my_real ,
INTENT(IN) :: dgapload,drad
129
130
131
132 INTEGER NB_NCN,NB_NCN1,NB_ECN,ADDNN,ADDNE,I,J,DIR,NB_NC,NB_EC,
133 . N1,N2,N3,N4,NN,NE,K,L,NCAND_PROV,J_STOK,II,JJ
134
136 . dx,dy,dz,dsup,seuil,seuils,seuili, xx1, xx2, xx3, xx4,
137 . xmin, xmax,ymin,
ymax,zmin, zmax, tz, gapsmx, bgapsmx, gapl
138
139 INTEGER,DIMENSION(:),ALLOCATABLE :: PROV_N
140 INTEGER,DIMENSION(:),ALLOCATABLE :: PROV_E
141 INTEGER,DIMENSION(:),ALLOCATABLE :: TN1
142 INTEGER,DIMENSION(:),ALLOCATABLE :: TN2
143 INTEGER,DIMENSION(:),ALLOCATABLE :: TN3
144 INTEGER,DIMENSION(:),ALLOCATABLE :: TN4
145 INTEGER,DIMENSION(:),ALLOCATABLE :: BPE
146 INTEGER,DIMENSION(:),ALLOCATABLE :: PE
147 INTEGER,DIMENSION(:),ALLOCATABLE :: BPN
148 INTEGER,DIMENSION(:),ALLOCATABLE :: PN
149
150 my_real,
DIMENSION(:,:),
ALLOCATABLE :: txx1
151 my_real,
DIMENSION(:,:),
ALLOCATABLE :: txx2
152 my_real,
DIMENSION(:,:),
ALLOCATABLE :: txx3
153 my_real,
DIMENSION(:,:),
ALLOCATABLE :: txx4
154 my_real,
DIMENSION(:),
ALLOCATABLE :: txmax
155 my_real,
DIMENSION(:),
ALLOCATABLE :: txmin
156 my_real,
DIMENSION(:),
ALLOCATABLE :: tymax
157 my_real,
DIMENSION(:),
ALLOCATABLE :: tymin
158 my_real,
DIMENSION(:),
ALLOCATABLE :: tzmax
159 my_real,
DIMENSION(:),
ALLOCATABLE :: tzmin
160
161 CALL my_alloc(prov_n,2*mvsiz)
162 CALL my_alloc(prov_e,2*mvsiz)
163 CALL my_alloc(tn1,nvecsz)
164 CALL my_alloc(tn2,nvecsz)
165 CALL my_alloc(tn3,nvecsz)
166 CALL my_alloc(tn4,nvecsz)
167 CALL my_alloc(bpe,maxsiz/3)
168 CALL my_alloc(pe,maxsiz)
169 CALL my_alloc(bpn,nsn)
170 CALL my_alloc(pn,nsn)
171 CALL my_alloc(txx1,3,nvecsz)
172 CALL my_alloc(txx2,3,nvecsz)
173 CALL my_alloc(txx3,3,nvecsz)
174 CALL my_alloc(txx4,3,nvecsz)
175 CALL my_alloc(txmax,nvecsz)
176 CALL my_alloc(txmin,nvecsz)
177 CALL my_alloc(tymax,nvecsz)
178 CALL my_alloc(tymin,nvecsz)
179 CALL my_alloc(tzmax,nvecsz)
180 CALL my_alloc(tzmin,nvecsz)
181
182
183
184
185 xmin = xyzm(1,i_add)
186 ymin = xyzm(2,i_add)
187 zmin = xyzm(3,i_add)
188 xmax = xyzm(4,i_add)
190 zmax = xyzm(6,i_add)
191
192
193
194 nb_ec = 0
195 DO i=1,nrtm
196
197 IF(stf(i)/=zero)THEN
198 nb_ec = nb_ec + 1
199 bpe(nb_ec) = i
200 ENDIF
201 ENDDO
202
203
204
205
206 nb_nc = 0
207 DO i=1,nsn
208 IF(stfn(i)/=zero) THEN
209 IF(xloc(1,i)>=xmin.AND.xloc(1,i)<=xmax.AND.
210 . xloc(2,i)>=ymin.AND.xloc(2,i)<=
ymax.AND.
211 . xloc(3,i)>=zmin.AND.xloc(3,i)<=zmax)THEN
212 nb_nc=nb_nc+1
213 bpn(nb_nc) = i
214 ENDIF
215 ENDIF
216 ENDDO
217
218 j_stok = 0
219 GOTO 200
220
221 100 CONTINUE
222
223
224
225
226
227
228
229
230
231
232
233 dir = 1
234 IF(dy==dsup) THEN
235 dir = 2
236 ELSE IF(dz==dsup) THEN
237 dir = 3
238 ENDIF
239 seuil =(xyzm(dir+3,i_add)+xyzm(dir,i_add))*0.5
240
241
242
243 nb_ncn= 0
244 nb_ncn1= 0
245 addnn= add(1,i_add)
246 IF(igap==0)THEN
247 DO i=1,nb_nc
248 IF(xloc(dir,bpn(i))<seuil) THEN
249
250 nb_ncn1 = nb_ncn1 + 1
251 addnn = addnn + 1
252 pn(addnn) = bpn(i)
253 ENDIF
254 ENDDO
255
256 DO i=1,nb_nc
257 IF(xloc(dir,bpn(i))>=seuil) THEN
258
259 nb_ncn = nb_ncn + 1
260 bpn(nb_ncn) = bpn(i)
261 ENDIF
262 ENDDO
263 ELSE
264 gapsmx = zero
265 DO i=1,nb_nc
266 IF(xloc(dir,bpn(i))<seuil) THEN
267
268 nb_ncn1 = nb_ncn1 + 1
269 addnn = addnn + 1
270 pn(addnn) = bpn(i)
271 gapsmx =
max(gapsmx,
max(gap_s(bpn(i))+dgapload,depth,drad))
272 ENDIF
273 ENDDO
274
275 bgapsmx = zero
276 DO i=1,nb_nc
277 IF(xloc(dir,bpn(i))>=seuil) THEN
278
279 nb_ncn = nb_ncn + 1
280 bpn(nb_ncn) = bpn(i)
281 bgapsmx =
max(bgapsmx,
max(gap_s(bpn(i))+dgapload,depth,drad))
282 ENDIF
283 ENDDO
284 ENDIF
285
286
287
288 IF(igap==0) THEN
289 nb_ecn= 0
290 addne= add(2,i_add)
291 IF(nb_ncn1==0) THEN
292 DO i=1,nb_ec
293 ne = bpe(i)
294 xx1=xm0(dir, irect(1,ne))
295 xx2=xm0(dir, irect(2,ne))
296 xx3=xm0(dir, irect(3,ne))
297 xx4=xm0(dir, irect(4,ne))
298 xmax=
max(xx1,xx2,xx3,xx4)+tzinf
299 IF(xmax>=seuil) THEN
300
301 nb_ecn = nb_ecn + 1
302 bpe(nb_ecn) = ne
303 ENDIF
304 ENDDO
305 ELSEIF(nb_ncn==0) THEN
306 DO i=1,nb_ec
307 ne = bpe(i)
308 xx1=xm0(dir, irect(1,ne))
309 xx2=xm0(dir, irect(2,ne))
310 xx3=xm0(dir, irect(3,ne))
311 xx4=xm0(dir, irect(4,ne))
312 xmin=
min(xx1,xx2,xx3,xx4)-tzinf
313 IF(xmin<seuil) THEN
314
315 addne = addne + 1
316 pe(addne) = ne
317 ENDIF
318 ENDDO
319 ELSE
320 DO i=1,nb_ec
321 ne = bpe(i)
322 xx1=xm0(dir, irect(1,ne))
323 xx2=xm0(dir, irect(2,ne))
324 xx3=xm0(dir, irect(3,ne))
325 xx4=xm0(dir, irect(4,ne))
326 xmin=
min(xx1,xx2,xx3,xx4)-tzinf
327 IF(xmin<seuil) THEN
328
329 addne = addne + 1
330 pe(addne) = ne
331 ENDIF
332 ENDDO
333
334 DO i=1,nb_ec
335 ne = bpe(i)
336 xx1=xm0(dir, irect(1,ne))
337 xx2=xm0(dir, irect(2,ne))
338 xx3=xm0(dir, irect(3,ne))
339 xx4=xm0(dir, irect(4,ne))
340 xmax=
max(xx1,xx2,xx3,xx4)+tzinf
341 IF(xmax>=seuil) THEN
342
343 nb_ecn = nb_ecn + 1
344 bpe(nb_ecn) = ne
345 ENDIF
346 ENDDO
347 ENDIF
348
349 ELSE
350 nb_ecn= 0
351 addne= add(2,i_add)
352 IF(nb_ncn1==0) THEN
353 DO i=1,nb_ec
354 ne = bpe(i)
355 xx1=xm0(dir, irect(1,ne))
356 xx2=xm0(dir, irect(2,ne))
357 xx3=xm0(dir, irect(3,ne))
358 xx4=xm0(dir, irect(4,ne))
359 xmax=
max(xx1,xx2,xx3,xx4)
360 + +
max(
min(
max(bgapsmx,gapmin),gapmax)+dgapload,depth,drad)
361 + +marge
362 IF(xmax>=seuil) THEN
363
364 nb_ecn = nb_ecn + 1
365 bpe(nb_ecn) = ne
366 ENDIF
367 ENDDO
368 ELSEIF(nb_ncn==0) THEN
369 DO i=1,nb_ec
370 ne = bpe(i)
371 xx1=xm0(dir, irect(1,ne))
372 xx2=xm0(dir, irect(2,ne))
373 xx3=xm0(dir, irect(3,ne))
374 xx4=xm0(dir, irect(4,ne))
375 xmin=
min(xx1,xx2,xx3,xx4)
376 - -
max(
min(
max(gapsmx,gapmin),gapmax)+dgapload,depth,drad)
377 - -marge
378 IF(xmin<seuil) THEN
379
380 addne = addne + 1
381 pe(addne) = ne
382 ENDIF
383 ENDDO
384 ELSE
385 DO i=1,nb_ec
386 ne = bpe(i)
387 xx1=xm0(dir, irect(1,ne))
388 xx2=xm0(dir, irect(2,ne))
389 xx3=xm0(dir, irect(3,ne))
390 xx4=xm0(dir, irect(4,ne))
391 xmin=
min(xx1,xx2,xx3,xx4)
392 - -
max(
min(
max(gapsmx,gapmin),gapmax)+dgapload,depth,drad)
393 - -marge
394 IF(xmin<seuil) THEN
395
396 addne = addne + 1
397 pe(addne) = ne
398 ENDIF
399 ENDDO
400
401 DO i=1,nb_ec
402 ne = bpe(i)
403 xx1=xm0(dir, irect(1,ne))
404 xx2=xm0(dir, irect(2,ne))
405 xx3=xm0(dir, irect(3,ne))
406 xx4=xm0(dir, irect(4,ne))
407 xmax=
max(xx1,xx2,xx3,xx4)
408 + +
max(
min(
max(bgapsmx,gapmin),gapmax)+dgapload,depth,drad)
409 + +marge
410 IF(xmax>=seuil) THEN
411
412 nb_ecn = nb_ecn + 1
413 bpe(nb_ecn) = ne
414 ENDIF
415 ENDDO
416 ENDIF
417 ENDIF
418
419
420
421 add(1,i_add+1) = addnn
422 add(2,i_add+1) = addne
423
424
425
426
427
428
429 xyzm(1,i_add+1) = xyzm(1,i_add)
430 xyzm(2,i_add+1) = xyzm(2,i_add)
431 xyzm(3,i_add+1) = xyzm(3,i_add)
432 xyzm(4,i_add+1) = xyzm(4,i_add)
433 xyzm(5,i_add+1) = xyzm(5,i_add)
434 xyzm(6,i_add+1) = xyzm(6,i_add)
435 xyzm(dir,i_add+1) = seuil
436 xyzm(dir+3,i_add) = seuil
437
438 nb_nc = nb_ncn
439 nb_ec = nb_ecn
440
441 i_add = i_add + 1
442 IF(i_add+1>=i_add_max) THEN
443 i_mem = 3
444 RETURN
445 ENDIF
446
447 200 CONTINUE
448
449
450
451
452
453
454
455
456
457
458
459 IF(add(2,i_add)+nb_ec>maxsiz) THEN
460
461 i_mem = 1
462 RETURN
463 ENDIF
464
465
466
467 IF(nb_ec/=0.AND.nb_nc/=0) THEN
468
469 dx = xyzm(4,i_add) - xyzm(1,i_add)
470 dy = xyzm(5,i_add) - xyzm(2,i_add)
471 dz = xyzm(6,i_add) - xyzm(3,i_add)
473
474
475
476
477
478
479
480
481 IF(nb_ec+nb_nc<=nvecsz) THEN
482 ncand_prov = nb_ec*nb_nc
483 ELSE
484 ncand_prov = nvecsz+1
485 ENDIF
486
487 IF(dsup<minbox.OR.(nb_nc<=nb_n_b)
488 & .OR.(ncand_prov<=nvecsz)) THEN
489
490 ncand_prov = nb_ec*nb_nc
491 IF(ivector==1.AND.ncand_prov<=nvecsz)THEN
492 IF(igap==0)THEN
493 DO i = 1, nb_ec
494 ne = bpe(i)
495 tn1(i)=irect(1,ne)
496 tn2(i)=irect(2,ne)
497 tn3(i)=irect(3,ne)
498 tn4(i)=irect(4,ne)
499 txx1(1,i)=xm0(1, tn1(i))
500 txx2(1,i)=xm0(1, tn2(i))
501 txx3(1,i)=xm0(1, tn3(i))
502 txx4(1,i)=xm0(1, tn4(i))
503 txmax(i)=
max(txx1(1,i),txx2(1,i),txx3(1,i),txx4(1,i))
504 + +tzinf
505 txmin(i)=
min(txx1(1,i),txx2(1,i),txx3(1,i),txx4(1,i))
506 - -tzinf
507 txx1(2,i)=xm0(2, tn1(i))
508 txx2(2,i)=xm0(2, tn2(i))
509 txx3(2,i)=xm0(2, tn3(i))
510 txx4(2,i)=xm0(2, tn4(i))
511 tymax(i)=
max(txx1(2,i),txx2(2,i),txx3(2,i),txx4(2,i))
512 + +tzinf
513 tymin(i)=
min(txx1(2,i),txx2(2,i),txx3(2,i),txx4(2,i))
514 - -tzinf
515 txx1(3,i)=xm0(3, tn1(i))
516 txx2(3,i)=xm0(3, tn2(i))
517 txx3(3,i)=xm0(3, tn3(i))
518 txx4(3,i)=xm0(3, tn4(i))
519 tzmax(i)=
max(txx1(3,i),txx2(3,i),txx3(3,i),txx4(3,i))
520 + +tzinf
521 tzmin(i)=
min(txx1(3,i),txx2(3,i),txx3(3,i),txx4(3,i))
522 - -tzinf
523 ENDDO
524 DO k=1,ncand_prov,nvsiz
525 DO l=k,
min(k-1+nvsiz,ncand_prov)
526 i = 1+(l-1)/nb_nc
527 j = l-(i-1)*nb_nc
528 nn=bpn(j)
529 IF(xloc(1,nn)>txmin(i).AND.xloc(1,nn)<txmax(i).AND.
530 & xloc(2,nn)>tymin(i).AND.xloc(2,nn)<tymax(i).AND.
531 & xloc(3,nn)>tzmin(i).AND.xloc(3,nn)<tzmax(i) ) THEN
532 j_stok = j_stok + 1
533 prov_n(j_stok) = bpn(j)
534 prov_e(j_stok) = bpe(i)
535 ENDIF
536 ENDDO
537 IF(j_stok>=nvsiz)THEN
539 1 nvsiz ,irect ,xloc ,ii_stok,cand_n,
540 2 cand_e ,mulnsn,noint ,marge ,i_mem ,
541 3 prov_n ,prov_e,eshift,inacti ,nsn ,
542 4 igap ,gap ,gap_s ,gapmin ,gapmax,
543 5 curv_max ,xm0 ,nod_normal,depth ,drad,
544 6 dgapload)
545 IF(i_mem==2)RETURN
546 j_stok = j_stok-nvsiz
547#include "vectorize.inc"
548 DO j=1,j_stok
549 prov_n(j) = prov_n(j+nvsiz)
550 prov_e(j) = prov_e(j+nvsiz)
551 ENDDO
552 ENDIF
553 ENDDO
554 ELSE
555 DO i = 1, nb_ec
556 ne = bpe(i)
557 tn1(i)=irect(1,ne)
558 tn2(i)=irect(2,ne)
559 tn3(i)=irect(3,ne)
560 tn4(i)=irect(4,ne)
561 txx1(1,i)=xm0(1, tn1(i))
562 txx2(1,i)=xm0(1, tn2(i))
563 txx3(1,i)=xm0(1, tn3(i))
564 txx4(1,i)=xm0(1, tn4(i))
565 txmax(i)=
max(txx1(1,i),txx2(1,i),txx3(1,i),txx4(1,i))
566 + +marge
567 txmin(i)=
min(txx1(1,i),txx2(1,i),txx3(1,i),txx4(1,i))
568 - -marge
569 txx1(2,i)=xm0(2, tn1(i))
570 txx2(2,i)=xm0(2, tn2(i))
571 txx3(2,i)=xm0(2, tn3(i))
572 txx4(2,i)=xm0(2, tn4(i))
573 tymax(i)=
max(txx1(2,i),txx2(2,i),txx3(2,i),txx4(2,i))
574 + +marge
576 - -marge
577 txx1(3,i)=xm0(3, tn1(i))
578 txx2(3,i)=xm0(3, tn2(i))
579 txx3(3,i)=xm0(3, tn3(i))
580 txx4(3,i)=xm0(3, tn4(i))
581 tzmax(i)=
max(txx1(3,i),txx2(3,i),txx3(3,i),txx4(3,i))
582 + +marge
583 tzmin(i)=
min(txx1(3,i),txx2(3,i),txx3(3,i),txx4(3,i))
584 - -marge
585 ENDDO
586 DO k=1,ncand_prov,nvsiz
587 DO l=k,
min(k-1+nvsiz,ncand_prov)
588 i = 1+(l-1)/nb_nc
589 j = l-(i-1)*nb_nc
590 nn=bpn(j)
591 gapl=
max(
max(
min(gap_s(bpn(j)),gapmax),gapmin)+dgapload,depth,drad)
592 IF(xloc(1,nn)>txmin(i)-gapl.AND.
593 & xloc(1,nn)<txmax(i)+gapl.AND.
594 & xloc(2,nn)>tymin(i)-gapl.AND.
595 & xloc(2,nn)<tymax(i)+gapl.AND.
596 & xloc(3,nn)>tzmin(i)-gapl.AND.
597 & xloc(3,nn)<tzmax(i)+gapl ) THEN
598 j_stok = j_stok + 1
599 prov_n(j_stok) = bpn(j)
600 prov_e(j_stok) = bpe(i)
601 ENDIF
602 ENDDO
603 IF(j_stok>=nvsiz)THEN
605 1 nvsiz ,irect ,xloc ,ii_stok,cand_n,
606 2 cand_e ,mulnsn,noint ,marge ,i_mem ,
607 3 prov_n ,prov_e,eshift,inacti ,nsn ,
608 4 igap ,gap ,gap_s ,gapmin ,gapmax,
609 5 curv_max ,xm0 ,nod_normal,depth,drad,
610 6 dgapload)
611 IF(i_mem==2)RETURN
612 j_stok = j_stok-nvsiz
613#include "vectorize.inc"
614 DO j=1,j_stok
615 prov_n(j) = prov_n(j+nvsiz)
616 prov_e(j) = prov_e(j+nvsiz)
617 ENDDO
618 ENDIF
619 ENDDO
620 END IF
621 ELSE
622 DO k=1,ncand_prov,nvsiz
623 IF(igap==0) THEN
624 DO l=k,
min(k-1+nvsiz,ncand_prov)
625 i = 1+(l-1)/nb_nc
626 j = l-(i-1)*nb_nc
627 ne = bpe(i)
628 n1=irect(1,ne)
629 n2=irect(2,ne)
630 n3=irect(3,ne)
631 n4=irect(4,ne)
632 xx1=xm0(1, n1)
633 xx2=xm0(1, n2)
634 xx3=xm0(1, n3)
635 xx4=xm0(1, n4)
636 xmax=
max(xx1,xx2,xx3,xx4)+tzinf
637 xmin=
min(xx1,xx2,xx3,xx4)-tzinf
638 xx1=xm0(2, n1)
639 xx2=xm0(2, n2)
640 xx3=xm0(2, n3)
641 xx4=xm0(2, n4)
642 ymax=
max(xx1,xx2,xx3,xx4)+tzinf
643 ymin=
min(xx1,xx2,xx3,xx4)-tzinf
644 xx1=xm0(3, n1)
645 xx2=xm0(3, n2)
646 xx3=xm0(3, n3)
647 xx4=xm0(3, n4)
648 zmax=
max(xx1,xx2,xx3,xx4)+tzinf
649 zmin=
min(xx1,xx2,xx3,xx4)-tzinf
650
651 nn=bpn(j)
652 IF(xloc(1,nn)>xmin.AND.xloc(1,nn)<xmax.AND.
653 & xloc(2,nn)>ymin.AND.xloc(2,nn)<
ymax.AND.
654 & xloc(3,nn)>zmin.AND.xloc(3,nn)<zmax ) THEN
655 j_stok = j_stok + 1
656 prov_n(j_stok) = bpn(j)
657 prov_e(j_stok) = ne
658 ENDIF
659 ENDDO
660 ELSE
661 DO l=k,
min(k-1+nvsiz,ncand_prov)
662 i = 1+(l-1)/nb_nc
663 j = l-(i-1)*nb_nc
664 ne = bpe(i)
665 n1=irect(1,ne)
666 n2=irect(2,ne)
667 n3=irect(3,ne)
668 n4=irect(4,ne)
669 xx1=xm0(1, n1)
670 xx2=xm0(1, n2)
671 xx3=xm0(1, n3)
672 xx4=xm0(1, n4)
673 tz=
max(
max(
min(gap_s(bpn(j)),gapmax),gapmin)+dgapload,depth,drad)
674 + +marge
675 xmax=
max(xx1,xx2,xx3,xx4)+tz
676 xmin=
min(xx1,xx2,xx3,xx4)-tz
677 xx1=xm0(2, n1)
678 xx2=xm0(2, n2)
679 xx3=xm0(2, n3)
680 xx4=xm0(2, n4)
682 ymin=
min(xx1,xx2,xx3,xx4)-tz
683 xx1=xm0(3, n1)
684 xx2=xm0(3, n2)
685 xx3=xm0(3, n3)
686 xx4=xm0(3, n4)
687 zmax=
max(xx1,xx2,xx3,xx4)+tz
688 zmin=
min(xx1,xx2,xx3,xx4)-tz
689
690 nn=bpn(j)
691 IF(xloc(1,nn)>xmin.AND.xloc(1,nn)<xmax.AND.
692 & xloc(2,nn)>ymin.AND.xloc(2,nn)<
ymax.AND.
693 & xloc(3,nn)>zmin.AND.xloc(3,nn)<zmax ) THEN
694 j_stok = j_stok + 1
695 prov_n(j_stok) = bpn(j)
696 prov_e(j_stok) = ne
697 ENDIF
698 ENDDO
699 END IF
700 IF(j_stok>=nvsiz)THEN
702 1 nvsiz,irect ,xloc ,ii_stok,cand_n,
703 2 cand_e ,mulnsn,noint ,marge ,i_mem ,
704 3 prov_n ,prov_e,eshift,inacti ,nsn ,
705 4 igap ,gap ,gap_s ,gapmin ,gapmax ,
706 5 curv_max ,xm0 ,nod_normal,depth,drad ,
707 6 dgapload)
708 IF(i_mem==2)RETURN
709 j_stok = j_stok-nvsiz
710#include "vectorize.inc"
711 DO j=1,j_stok
712 prov_n(j) = prov_n(j+nvsiz)
713 prov_e(j) = prov_e(j+nvsiz)
714 ENDDO
715 ENDIF
716 ENDDO
717 ENDIF
718 ELSE
719
720 GOTO 100
721
722 ENDIF
723 ENDIF
724
725
726
727
728
729 i_add = i_add - 1
730 IF (i_add/=0) THEN
731
732
733
734
735 CALL i7dstk(nb_nc,nb_ec,add(1,i_add),bpn,pn,bpe,pe)
736
737 GOTO 200
738
739 ENDIF
740
741
742
744 1 j_stok,irect ,xloc ,ii_stok,cand_n,
745 2 cand_e ,mulnsn,noint ,marge ,i_mem ,
746 3 prov_n ,prov_e,eshift,inacti ,nsn ,
747 4 igap ,gap ,gap_s ,gapmin ,gapmax,
748 5 curv_max ,xm0,nod_normal,depth,drad ,
749 6 dgapload)
750
751 DEALLOCATE(prov_n)
752 DEALLOCATE(prov_e)
753 DEALLOCATE(tn1)
754 DEALLOCATE(tn2)
755 DEALLOCATE(tn3)
756 DEALLOCATE(tn4)
757 DEALLOCATE(bpe)
758 DEALLOCATE(pe)
759 DEALLOCATE(bpn)
760 DEALLOCATE(pn)
761 DEALLOCATE(txx1)
762 DEALLOCATE(txx2)
763 DEALLOCATE(txx3)
764 DEALLOCATE(txx4)
765 DEALLOCATE(txmax)
766 DEALLOCATE(txmin)
767 DEALLOCATE(tymax)
768 DEALLOCATE(tymin)
769 DEALLOCATE(tzmax)
770 DEALLOCATE(tzmin)
771 RETURN
subroutine i21sto(j_stok, irect, xloc, ii_stok, cand_n, cand_e, mulnsn, noint, marge, i_mem, prov_n, prov_e, eshift, inacti, nsn, igap, gap, gap_s, gapmin, gapmax, curv_max, xm0, nod_normal, depth, drad, dgapload)
subroutine ymax(idn, fac, npc, pld, stiffmin, stiffmax, stiffini, stiffavg)
subroutine i7dstk(i_add, nb_nc, nb_ec, add, bpn, pn, bpe, pe)