35
36
37
38
39
40
41
42
43
44
45
46
49
50
51
52#include "implicit_f.inc"
53
54
55
56#include "com01_c.inc"
57#include "com04_c.inc"
58#include "vect01_c.inc"
59#include "param_c.inc"
60#include "inter22.inc"
61
62
63
64 INTEGER,INTENT(IN) :: NFVBAG, SMONVOL,SVOLMON, AIRBAGS_NODE_ID_SHIFT
65 my_real,
INTENT(IN) :: volmon(svolmon)
66 INTEGER,INTENT(IN) :: MONVOL(SMONVOL)
67 CHARACTER*80,INTENT(IN):: H3DTITLE
68 INTEGER,INTENT(IN) :: LEN_H3DTITLE , IH3D
69 TYPE(FVBAG_DATA),INTENT(IN) :: FVDATA_P(NFVBAG)
70
71
72
73 INTEGER :: K1
74 INTEGER :: NN, II
75 INTEGER :: ITYP
76 INTEGER :: IH3D_FLAG
77 INTEGER :: NNODES
78 INTEGER :: IFV
79 INTEGER :: NPOLH
83 INTEGER :: ILEN
84
85 INTEGER, ALLOCATABLE,DIMENSION(:) :: ITAB_FVMBAG
86 my_real,
ALLOCATABLE,
DIMENSION(:,:) :: xyz_fvmbag,disp_fvmbag
87
88
89
90
91
92
93
94 k1=1
95 nnodes = 0
96 DO nn=1,nvolu
97 ityp=monvol(k1-1+2)
98 IF (ityp == 6.OR.ityp == 8 .OR. ityp == 11) THEN
99 ih3d_flag = monvol(k1-1 +75)
100 ifv = monvol(k1-1 +45)
101
102 IF(ih3d_flag == 1 .AND. ifv /= 0)THEN
103 npolh = fvdata_p(ifv)%NPOLH
104
105 IF(npolh > 0)THEN ! if there are any polyhedron
106
107 ALLOCATE(itab_fvmbag(npolh))
108 ALLOCATE(disp_fvmbag(3,npolh))
109
110 DO ii=1, fvdata_p(ifv)%NPOLH
111
112 disp_fvmbag(1,ii) = fvdata_p(ifv)%CENTROID_POLH(1,ii)
113 disp_fvmbag(2,ii) = fvdata_p(ifv)%CENTROID_POLH(2,ii)
114 disp_fvmbag(3,ii) = fvdata_p(ifv)%CENTROID_POLH(3,ii)
115
116 itab_fvmbag(ii) = airbags_node_id_shift+nnodes+ii
117 enddo
118
120
121 DEALLOCATE(itab_fvmbag)
122 DEALLOCATE(disp_fvmbag)
123 nnodes = nnodes + fvdata_p(ifv)%NPOLH
124
125 ENDIF
126
127 ENDIF
128
129 ENDIF
130 k1=k1+nimv
131 ENDDO
132
133
134
135
137 ALLOCATE(itab_fvmbag(ilen+1))
138 ALLOCATE(disp_fvmbag(3,ilen+1))
139
140 DO ii=1,ilen
141 itab_fvmbag(ii) = airbags_node_id_shift+nnodes+ii
142 disp_fvmbag(1,ii) = zero
143 disp_fvmbag(2,ii) = zero
144 disp_fvmbag(3,ii) = zero
145 ENDDO
146
148
149 DEALLOCATE(itab_fvmbag)
150 DEALLOCATE(disp_fvmbag)
151
152
153 RETURN
void c_h3d_update_fvmbag_nodes(char *name, int *size, int *IH3D, int *ITAB, int *NUMNOD, my_real *D)
integer airbags_total_fvm_in_h3d