32
33
34
37
38
39
40#include "implicit_f.inc"
41
42
43
44#include "com01_c.inc"
45#include "com04_c.inc"
46#include "com08_c.inc"
47#include "param_c.inc"
48#include "scr07_c.inc"
49#include "task_c.inc"
50
51
52
53 INTEGER MONVOL(*)
54
55
56
57 INTEGER K1, N, ITYP, IFV, NNS, NNTR, NPOLY, NPOLH,
58 . LENP, LENH, I, J, IMESH, LENP_ANIM, NPOLH_ANIM,
59 . LENH_ANIM, NNS_ANIM,NFVBAG_MAX,KK
60
61
62
63
64
65
66
67
68
69 k1 = 1
70 nfvbag_max=0
71 i = -huge(i)
72 DO n=1,nvolu
73 ityp=monvol(k1-1+2)
74 IF (ityp==6.OR.ityp==8) THEN
75 ifv = monvol(k1-1+45)
76 nfvbag_max =
max(nfvbag_max,ifv)
77 ENDIF
78 k1 = k1 + nimv
79 ENDDO
81
84 DO i=1,nfvbag_max
119 ENDDO
120
121 DO i=1,nfvbag_max
126
132
139
143 ENDDO
144 ENDIF
145 IF (.NOT.
ALLOCATED(
fvdata))
THEN
146 ALLOCATE(
fvdata(nfvbag_max))
147 DO i=1,nfvbag_max
148 NULLIFY(
fvdata(i)%IFVPOLY_ANIM,
181 .
fvdata(i)%CENTROID_POLH)
182 ENDDO
183
184 DO i=1,nfvbag_max
186 fvdata(i)%ID_DT_OPTION = zero
189
192 fvdata(i)%PDISP_OLD = zero
195
202
206 ENDDO
207 ENDIF
208
209 k1=1
210 ifv=0
211 DO n=1,nvolu
212 ityp = monvol(k1-1+2)
213 IF (ityp==6.OR.ityp==8) THEN
214 ifv = monvol(k1-1+45)
215 imesh=monvol(k1-1+56)
216
217 nns=monvol(k1-1+46)
218 nntr=monvol(k1-1+47)
219 npoly=monvol(k1-1+48)
220 npolh=monvol(k1-1+49)
221
222 IF (imesh==1.AND.dt1>zero.AND.ncycle/=0) THEN
223 IF (ispmd/=
fvspmd(i)%PMAIN-1)
THEN
247 GOTO 1999
248 ENDIF
263
292
295 IF (
ASSOCIATED(
fvdata_old(ifv)%CENTROID_POLH))
297
300
307
331
332
333 DO i=1,nns
339 ENDDO
340 DO i=1,nntr
341 DO j=1,6
344 ENDDO
345 ENDDO
346 DO i=1,lenp
348 ENDDO
349 DO i=1,npoly+1
351 ENDDO
352 DO i=1,lenh
354 ENDDO
355 DO i=1,npolh+1
357 ENDDO
358 DO i=1,npolh
376 ENDDO
377 DO kk=1,3
378 DO i=1,npolh
380 ENDDO
381 ENDDO
382
383 ELSEIF ((imesh==0.AND.ncycle==0).OR.
384 . (imesh==0.AND.mcheck > 0)) THEN
385 IF (ispmd/=
fvspmd(ifv)%PMAIN-1)
THEN
386 ALLOCATE(
fvdata(ifv)%IFVNOD(3,0),
387 .
fvdata(ifv)%RFVNOD(2,0),
388 .
fvdata(ifv)%IFVTRI(6,0),
405 .
fvdata(ifv)%VPOLH_INI(0),
411 .
fvdata(ifv)%IFVPOLY_ANIM(0),
412 .
fvdata(ifv)%IFVTADR_ANIM(0),
413 .
fvdata(ifv)%IFVPOLH_ANIM(0),
414 .
fvdata(ifv)%IFVPADR_ANIM(0),
415 .
fvdata(ifv)%IFVTRI_ANIM(6,0),
416 .
fvdata(ifv)%REDIR_ANIM(0),
417 .
fvdata(ifv)%NOD_ANIM(3,0),
419 .
fvdata(ifv)%CENTROID_POLH(3,0))
420 GOTO 1999
421 ENDIF
426 lenp_anim=
fvdata_old(ifv)%IFVTADR_ANIM(npoly+1)
427 lenh_anim=
fvdata_old(ifv)%IFVPADR_ANIM(npolh_anim+1)
428
435 fvdata(ifv)%NPOLH_ANIM=npolh_anim
436 fvdata(ifv)%NNS_ANIM=nns_anim
438
439 ALLOCATE(
fvdata(ifv)%IFVNOD(3,nns),
440 .
fvdata(ifv)%RFVNOD(2,nns),
441 .
fvdata(ifv)%IFVTRI(6,nntr),
442 .
fvdata(ifv)%IFVPOLY(lenp),
443 .
fvdata(ifv)%IFVTADR(npoly+1),
444 .
fvdata(ifv)%IFVPOLH(lenh),
445 .
fvdata(ifv)%IFVPADR(npolh+1),
446 .
fvdata(ifv)%IDPOLH(npolh),
447 .
fvdata(ifv)%IBPOLH(npolh),
448 .
fvdata(ifv)%MPOLH(npolh),
449 .
fvdata(ifv)%QPOLH(3,npolh),
450 .
fvdata(ifv)%EPOLH(npolh),
451 .
fvdata(ifv)%PPOLH(npolh),
452 .
fvdata(ifv)%RPOLH(npolh),
453 .
fvdata(ifv)%GPOLH(npolh),
454 .
fvdata(ifv)%CPAPOLH(npolh),
455 .
fvdata(ifv)%CPBPOLH(npolh),
456 .
fvdata(ifv)%CPCPOLH(npolh),
457 .
fvdata(ifv)%RMWPOLH(npolh),
458 .
fvdata(ifv)%VPOLH_INI(npolh),
459 .
fvdata(ifv)%DTPOLH(npolh),
460 .
fvdata(ifv)%TPOLH(npolh),
461 .
fvdata(ifv)%CPDPOLH(npolh),
462 .
fvdata(ifv)%CPEPOLH(npolh),
463 .
fvdata(ifv)%CPFPOLH(npolh),
464 .
fvdata(ifv)%IFVPOLY_ANIM(lenp_anim),
465 .
fvdata(ifv)%IFVTADR_ANIM(npoly+1),
466 .
fvdata(ifv)%IFVPOLH_ANIM(lenh_anim),
467 .
fvdata(ifv)%IFVPADR_ANIM(npolh_anim+1),
468 .
fvdata(ifv)%IFVTRI_ANIM(6,nntr),
469 .
fvdata(ifv)%REDIR_ANIM(nns_anim),
471 .
fvdata(ifv)%SSPPOLH(npolh),
472 .
fvdata(ifv)%CENTROID_POLH(3,npolh))
473
474
479
484
485 DO i=1,nns
491 ENDDO
492 DO i=1,nntr
493 DO j=1,6
496 ENDDO
497 ENDDO
498 DO i=1,lenp
500 ENDDO
501 DO i=1,npoly+1
503 ENDDO
504 DO i=1,lenh
506 ENDDO
507 DO i=1,npolh+1
509 ENDDO
510 DO i=1,npolh
513 ENDDO
514 DO i=1,lenp_anim
515 fvdata(ifv)%IFVPOLY_ANIM(i)=
517 ENDDO
518 DO i=1,npoly+1
519 fvdata(ifv)%IFVTADR_ANIM(i)=
521 ENDDO
522 DO i=1,lenh_anim
523 fvdata(ifv)%IFVPOLH_ANIM(i)=
525 ENDDO
526 DO i=1,npolh_anim+1
527 fvdata(ifv)%IFVPADR_ANIM(i)=
529 ENDDO
530 DO i=1,nntr
531 DO j=1,6
532 fvdata(ifv)%IFVTRI_ANIM(j,i)=
534 ENDDO
535 ENDDO
536 DO i=1,nns_anim
537 fvdata(ifv)%REDIR_ANIM(i)=
539 ENDDO
540 DO i=1,nns_anim
541 DO j=1,3
542 fvdata(ifv)%NOD_ANIM(j,i)=
544 ENDDO
545 ENDDO
546 DO i=1,npolh
566 ENDDO
567 DO kk=1,3
568 DO i=1,npolh
570 ENDDO
571 ENDDO
572
573
575
610 ENDIF
611 ENDIF
612 1999 CONTINUE
613 k1=k1+nimv
614 ENDDO
615
616 mcheck = 0
617 RETURN
type(fvbag_data), dimension(:), allocatable fvdata_old
type(fvbag_spmd), dimension(:), allocatable fvspmd
type(fvbag_data), dimension(:), allocatable fvdata