34
35
36
37
38
39
40
41
42
43
44
45
48
49
50
51#include "implicit_f.inc"
52
53
54
55#include "com01_c.inc"
56#include "com04_c.inc"
57#include "com08_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
65 INTEGER,INTENT(IN) :: AIRBAGS_NODE_ID_SHIFT
66 my_real,
INTENT(IN) :: volmon(svolmon)
67 INTEGER,INTENT(IN) :: MONVOL(SMONVOL)
68 TYPE(FVBAG_DATA), INTENT(IN) :: FVDATA(NFVBAG)
69
70
71
72 INTEGER :: K1
73 INTEGER :: NN, II
74 INTEGER :: ITYP
75 INTEGER :: IH3D_FLAG
76 INTEGER :: NNODES
77 INTEGER :: IFV
78 INTEGER :: nodeID
79 INTEGER :: NPOLH
83
84 INTEGER, ALLOCATABLE,DIMENSION(:) :: ITAB_FVMBAG,TAGNOD_FVMBAG
85 my_real,
ALLOCATABLE,
DIMENSION(:,:) :: xyz_fvmbag,disp_fvmbag
86 INTEGER :: ILEN
87
88
89
90
91
92
93
94
95 k1=1
96 nnodes = 0
97 DO nn=1,nvolu
98 ityp=monvol(k1-1+2)
99 IF (ityp == 6.OR.ityp == 8 .OR. ityp == 11) THEN
100 ih3d_flag = monvol(k1-1 +75)
101 ifv = monvol(k1-1 +45)
102
103 IF(ih3d_flag == 1 .AND. ifv /= 0)THEN
105
106 IF(npolh > 0)THEN
107
108 ALLOCATE(itab_fvmbag(npolh))
109 ALLOCATE(tagnod_fvmbag(npolh))
110 ALLOCATE(xyz_fvmbag(3,npolh))
111 ALLOCATE(disp_fvmbag(3,npolh))
112
113 DO ii=1,
fvdata(ifv)%NPOLH
114
115 xyz_fvmbag(1,ii) = zero
116 xyz_fvmbag(2,ii) = zero
117 xyz_fvmbag(3,ii) = zero
118
119 disp_fvmbag(1,ii) = zero
120 disp_fvmbag(2,ii) = zero
121 disp_fvmbag(3,ii) = zero
122
123 itab_fvmbag(ii) = airbags_node_id_shift + nnodes + ii
124 tagnod_fvmbag(ii) = 1
125
126 enddo
127
129
130 DEALLOCATE(itab_fvmbag)
131 DEALLOCATE(tagnod_fvmbag)
132 DEALLOCATE(xyz_fvmbag)
133 DEALLOCATE(disp_fvmbag)
134 nnodes = nnodes +
fvdata(ifv)%NPOLH
135
136 ENDIF
137
138 ENDIF
139
140 ENDIF
141 k1=k1+nimv
142 ENDDO
143
144 RETURN
void c_h3d_create_nodes(int *ITAB, int *NUMNOD, my_real *X, int *TAGNOD, my_real *D)
type(fvbag_data), dimension(:), allocatable fvdata