OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
h3d_gene_keyword.F File Reference
#include "implicit_f.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine h3d_gene_keyword (key2_read, key2, key3_read, key3_glob, nb_key, cpt_key, multi_fvm, is_model_npt, is_model_layer, is_model_ply, is_mdsvar, is_mdsvar_def, is_ply_all, is_layer_all, is_ipt, is_layer, is_ply, is_id)

Function/Subroutine Documentation

◆ h3d_gene_keyword()

subroutine h3d_gene_keyword ( character(len=ncharkey) key2_read,
character(len=ncharkey) key2,
character(len=ncharline100) key3_read,
character(len=ncharline100) key3_glob,
integer nb_key,
integer cpt_key,
type(multi_fvm_struct), intent(in) multi_fvm,
integer is_model_npt,
integer is_model_layer,
integer is_model_ply,
integer is_mdsvar,
integer is_mdsvar_def,
integer is_ply_all,
integer is_layer_all,
integer is_ipt,
integer is_layer,
integer is_ply,
integer is_id )

Definition at line 34 of file h3d_gene_keyword.F.

37C-----------------------------------------------
38C M o d u l e s
39C-----------------------------------------------
40 USE message_mod
41 USE h3d_mod
42 USE multi_fvm_mod
44C-----------------------------------------------
45C I m p l i c i t T y p e s
46C-----------------------------------------------
47#include "implicit_f.inc"
48C-----------------------------------------------
49C D u m m y A r g u m e n t s
50C-----------------------------------------------
51 INTEGER NB_KEY,CPT_KEY
52 CHARACTER(LEN=NCHARKEY) :: KEY2,KEY2_READ
53 CHARACTER(LEN=NCHARLINE100) :: KEY3_READ,KEY3_GLOB
54 TYPE(MULTI_FVM_STRUCT), INTENT(IN) :: MULTI_FVM
55C-----------------------------------------------
56C L o c a l V a r i a b l e s
57C-----------------------------------------------
58 INTEGER I,J,NIPMAX,I1,I2,II,IS_MODEL_NPT,IS_MODEL_LAYER,IS_MODEL_PLY,
59 . IS_MDSVAR,IS_MDSVAR_DEF,IS_PLY_ALL,IS_LAYER_ALL,IS_IPT,
60 . IS_LAYER,IS_PLY,IS_ID
61 CHARACTER(LEN=2) :: CH_OPTION
62c-----------------------------------------------
63 IF (key2_read == 'MASS') THEN
64c-----------------------------------------------
65 nb_key = 8
66 IF (cpt_key == 1) key2 = 'NODA'
67 IF (cpt_key == 1) key3_glob = 'MASS'
68 IF (cpt_key == 2) key2 = 'SHELL'
69 IF (cpt_key == 2) key3_glob = 'MASS'
70 IF (cpt_key == 3) key2 = 'SOLID'
71 IF (cpt_key == 3) key3_glob = 'MASS'
72 IF (cpt_key == 4) key2 = 'SPH'
73 IF (cpt_key == 4) key3_glob = 'MASS'
74 IF (cpt_key == 5) key2 = 'BEAM'
75 IF (cpt_key == 5) key3_glob = 'MASS'
76 IF (cpt_key == 6) key2 = 'spring'
77 IF (CPT_KEY == 6) KEY3_GLOB = 'mass'
78 IF (CPT_KEY == 7) KEY2 = 'truss'
79 IF (CPT_KEY == 7) KEY3_GLOB = 'mass'
80 IF (CPT_KEY == 8) KEY2 = 'quad'
81 IF (CPT_KEY == 8) KEY3_GLOB = 'mass'
82c-----------------------------------------------
83 ELSEIF (KEY2_READ == 'solid') THEN
84c-----------------------------------------------
85 IF (KEY3_READ == 'orthd') THEN
86 NB_KEY = 3
87 IF (CPT_KEY == 1) KEY3_GLOB = 'orthd/psi'
88 IF (CPT_KEY == 2) KEY3_GLOB = 'orthd/theta'
89 IF (CPT_KEY == 3) KEY3_GLOB = 'orthd/phi'
90 ELSEIF (KEY3_READ == 'mom') THEN
91 NB_KEY = 7
92 IF (CPT_KEY == 1) KEY3_GLOB = 'momx'
93 IF (CPT_KEY == 2) KEY3_GLOB = 'momy'
94 IF (CPT_KEY == 3) KEY3_GLOB = 'momz'
95 IF (CPT_KEY == 4) KEY3_GLOB = 'momxy'
96 IF (CPT_KEY == 5) KEY3_GLOB = 'momyz'
97 IF (CPT_KEY == 6) KEY3_GLOB = 'momxz'
98 IF (CPT_KEY == 7) KEY3_GLOB = '|mom|'
99 ELSEIF (KEY3_READ == 'vel') THEN
100 NB_KEY = 7
101 IF (CPT_KEY == 1) KEY3_GLOB = 'velx'
102 IF (CPT_KEY == 2) KEY3_GLOB = 'vely'
103 IF (CPT_KEY == 3) KEY3_GLOB = 'velz'
104 IF (CPT_KEY == 4) KEY3_GLOB = 'velxy'
105 IF (CPT_KEY == 5) KEY3_GLOB = 'velyz'
106 IF (CPT_KEY == 6) KEY3_GLOB = 'velxz'
107 IF (CPT_KEY == 7) KEY3_GLOB = '|vel|'
108 ELSEIF (KEY3_READ == 'mds.AND..AND.' IS_MDSVAR == 0
109.AND..AND. . IS_IPT ==0 IS_LAYER == 0 IS_PLY == 0) THEN
110 NB_KEY = IS_PLY_ALL+IS_LAYER_ALL+1
111 IF (CPT_KEY == 1) THEN
112 KEY3_GLOB = 'mds'
113 IS_MDSVAR = 1
114 IS_MDSVAR_DEF = 1
115.OR. IF(IS_MODEL_PLY == 1 IS_MODEL_LAYER == 1 )IS_LAYER_ALL = 1
116 ENDIF
117 ELSEIF (KEY3_READ == 'vfrac') THEN
118c create specific keywords for LAW151, number of present materials is not
119c known a priori
120 IF (MULTI_FVM%IS_USED) THEN
121 NB_KEY = MULTI_FVM%NBMAT
122 DO II = 1, NB_KEY
123 IF (CPT_KEY == II) THEN
124 WRITE(KEY3_GLOB, '(a,i0)') 'm151vfrac', II
125 ENDIF
126 ENDDO
127 ELSE
128 NB_KEY = 4
129 IF (CPT_KEY == 1) KEY3_GLOB = 'vfrac/1'
130 IF (CPT_KEY == 2) KEY3_GLOB = 'vfrac/2'
131 IF (CPT_KEY == 3) KEY3_GLOB = 'vfrac/3'
132 IF (CPT_KEY == 4) KEY3_GLOB = 'vfrac/4'
133 ENDIF
134 ELSE
135 NB_KEY = 1
136 KEY3_GLOB = KEY3_READ
137 ENDIF
138c-----------------------------------------------
139 ELSEIF (KEY2_READ == 'noda') THEN
140c-----------------------------------------------
141 IF (KEY3_READ == 'fopt') THEN
142 NB_KEY = 2
143 IF (CPT_KEY == 1) KEY3_GLOB = 'fopt/force'
144 IF (CPT_KEY == 2) KEY3_GLOB = 'fopt/moment'
145 ELSEIF (KEY3_READ == 'pcont') THEN
146 NB_KEY = 2
147 IF (CPT_KEY == 1) KEY3_GLOB = 'pcont/normal'
148 IF (CPT_KEY == 2) KEY3_GLOB = 'pcont/tangent'
149 ELSEIF (KEY3_READ == 'pcont/tmax') THEN
150 NB_KEY = 2
151 IF (CPT_KEY == 1) KEY3_GLOB = 'maxpcont/normal'
152 IF (CPT_KEY == 2) KEY3_GLOB = 'maxpcont/tangent'
153 ELSEIF (key3_read == 'PCONT2') THEN
154 nb_key = 2
155 IF (cpt_key == 1) key3_glob = 'PCONT2/NORMAL'
156 IF (cpt_key == 2) key3_glob = 'PCONT2/TANGENT'
157 ELSEIF (key3_read == 'PCONT2/TMAX') THEN
158 nb_key = 2
159 IF (cpt_key == 1) key3_glob = 'MAXPCONT2/NORMAL'
160 IF (cpt_key == 2) key3_glob = 'MAXPCONT2/TANGENT'
161 ELSEIF (key3_read == 'PCONT2/TMIN') THEN
162 nb_key = 2
163 IF (cpt_key == 1) key3_glob = 'MINPCONT2/NORMAL'
164 IF (cpt_key == 2) key3_glob = 'MINPCONT2/TANGENT'
165 ELSEIF (key3_read == 'DAMA2') THEN
166 nb_key = 2
167 IF (cpt_key == 1) key3_glob = 'DAMA2/NORMAL'
168 IF (cpt_key == 2) key3_glob = 'DAMA2/TANGENT'
169 ELSE
170 nb_key = 1
171 key3_glob = key3_read
172 ENDIF
173c-----------------------------------------------
174 ELSEIF (key2_read == 'QUAD') THEN
175 IF (key3_read == 'VFRAC') THEN
176c
177c create specific keywords for LAW151, number of present materials is not
178c known a priori
179c
180 IF (multi_fvm%IS_USED) THEN
181 nb_key = multi_fvm%NBMAT
182 DO ii = 1, nb_key
183 IF (cpt_key == ii) THEN
184 WRITE(key3_glob, '(A,I0)') 'M151VFRAC', ii
185 ENDIF
186 ENDDO
187 ELSE
188 nb_key = 4
189 IF (cpt_key == 1) key3_glob = 'vfrac1'
190 IF (CPT_KEY == 2) KEY3_GLOB = 'vfrac2'
191 IF (CPT_KEY == 3) KEY3_GLOB = 'vfrac3'
192 IF (CPT_KEY == 4) KEY3_GLOB = 'vfrac4'
193 ENDIF
194 ENDIF
195c-----------------------------------------------
196 ELSEIF (KEY2_READ == 'elem') THEN
197 IF (KEY3_READ == 'vfrac') THEN
198c
199c create specific keywords for LAW151, number of present materials is not
200c known a priori
201c
202 IF (MULTI_FVM%IS_USED) THEN
203 NB_KEY = MULTI_FVM%NBMAT
204 DO II = 1, NB_KEY
205 IF (CPT_KEY == II) THEN
206 WRITE(KEY3_GLOB, '(a,i0)') 'm151vfrac', II
207 ENDIF
208 ENDDO
209 ELSE
210 NB_KEY = 4
211 IF (CPT_KEY == 1) KEY3_GLOB = 'vfrac1'
212 IF (CPT_KEY == 2) KEY3_GLOB = 'vfrac2'
213 IF (CPT_KEY == 3) KEY3_GLOB = 'vfrac3'
214 IF (CPT_KEY == 4) KEY3_GLOB = 'vfrac4'
215 ENDIF
216 ELSEIF (KEY3_READ == 'phase_dens') THEN
217 IF (MULTI_FVM%IS_USED) THEN
218 NB_KEY = MULTI_FVM%NBMAT
219 DO II = 1, NB_KEY
220 IF (CPT_KEY == II) THEN
221 WRITE(KEY3_GLOB, '(a,i0)') 'm151dens', II
222 ENDIF
223 ENDDO
224 ENDIF
225 ELSEIF (KEY3_READ == 'phase_ener') THEN
226 IF (MULTI_FVM%IS_USED) THEN
227 NB_KEY = MULTI_FVM%NBMAT
228 DO II = 1, NB_KEY
229 IF (CPT_KEY == II) THEN
230 WRITE(KEY3_GLOB, '(a,i0)') 'M151ENER', ii
231 ENDIF
232 ENDDO
233 ENDIF
234 ELSEIF (key3_read == 'PHASE_PRES') THEN
235 IF (multi_fvm%IS_USED) THEN
236 nb_key = multi_fvm%NBMAT
237 DO ii = 1, nb_key
238 IF (cpt_key == ii) THEN
239 WRITE(key3_glob, '(A,I0)') 'M151PRES', ii
240 ENDIF
241 ENDDO
242 ENDIF
243 ELSEIF (key3_read == 'ORTHD') THEN
244 nb_key = 3
245 IF (cpt_key == 1) key3_glob = 'ORTHD/PSI'
246 IF (cpt_key == 2) key3_glob = 'ORTHD/THETA'
247 IF (cpt_key == 3) key3_glob = 'ORTHD/PHI'
248 ELSEIF (key3_read == 'MOM') THEN
249 nb_key = 7
250 IF (cpt_key == 1) key3_glob = 'MOMX'
251 IF (cpt_key == 2) key3_glob = 'MOMY'
252 IF (cpt_key == 3) key3_glob = 'MOMZ'
253 IF (cpt_key == 4) key3_glob = 'MOMXY'
254 IF (cpt_key == 5) key3_glob = 'MOMYZ'
255 IF (cpt_key == 6) key3_glob = 'MOMXZ'
256 IF (cpt_key == 7) key3_glob = '|MOM|'
257 ELSEIF (key3_read == 'VEL') THEN
258 nb_key = 7
259 IF (cpt_key == 1) key3_glob = 'VELX'
260 IF (cpt_key == 2) key3_glob = 'VELY'
261 IF (cpt_key == 3) key3_glob = 'VELZ'
262 IF (cpt_key == 4) key3_glob = 'VELXY'
263 IF (cpt_key == 5) key3_glob = 'VELYZ'
264 IF (cpt_key == 6) key3_glob = 'VELXZ'
265 IF (cpt_key == 7) key3_glob = '|VEL|'
266 ELSEIF (key3_read == 'FORC') THEN
267 nb_key = 9
268 IF (cpt_key == 1) key3_glob = 'F1'
269 IF (cpt_key == 2) key3_glob = 'F2'
270 IF (cpt_key == 3) key3_glob = 'F3'
271 IF (cpt_key == 4) key3_glob = 'M11'
272 IF (cpt_key == 5) key3_glob = 'M21'
273 IF (cpt_key == 6) key3_glob = 'M31'
274 IF (cpt_key == 7) key3_glob = 'M12'
275 IF (cpt_key == 8) key3_glob = 'M22'
276 IF (cpt_key == 9) key3_glob = 'M32'
277 ELSEIF (key3_read == 'MDS' .AND. is_mdsvar == 0 .AND.
278 . is_ipt ==0 .AND. is_layer == 0 .AND. is_ply == 0) THEN
279 nb_key = is_ply_all+is_layer_all+1
280 IF (cpt_key == 1) THEN
281 key3_glob = 'MDS'
282 is_mdsvar = 1
283 is_mdsvar_def = 1
284 IF(is_model_ply == 1 .OR. is_model_layer == 1 )is_layer_all = 1
285 ENDIF
286 ENDIF
287c-----------------------------------------------
288
289c-----------------------------------------------
290c IF (KEY3_READ == 'KEYWORD') THEN
291c NB_KEY = 3
292c IF (CPT_KEY == 1) KEY3_GLOB = 'KEYWORD1'
293c IF (CPT_KEY == 2) KEY3_GLOB = 'KEYWORD2'
294c IF (CPT_KEY == 3) KEY3_GLOB = 'KEYWORD3'
295c-----------------------------------------------
296c ELSEIF (KEY3_READ(1:6) == 'VFRAC_') THEN
297c I1 = 0
298c I2 = 0
299c IF (KEY3_READ(8:9) == '->') THEN
300c READ (KEY3_READ(7:7),FMT='(I)'),I1
301c READ (KEY3_READ(10:11),FMT='(I2)'),I2
302c ELSEIF (KEY3_READ(9:10) == '->') THEN
303c READ (KEY3_READ(7:8),FMT='(I2)'),I1
304c READ (KEY3_READ(11:12),FMT='(I2)'),I2
305c ENDIF
306c NB_KEY = I2 - I1 +1
307c DO J=1,NB_KEY
308c IF (J+I1-1 <= 9) WRITE(CH_OPTION,'(I1)')J+I1-1
309c IF (J+I1-1 > 9) WRITE(CH_OPTION,'(I2)')J+I1-1
310c IF (CPT_KEY == J) KEY3_GLOB = 'VFRAC'//CH_OPTION
311c ENDDO
312c-----------------------------------------------
313 ELSEIF (key2_read == 'SHELL') THEN
314c-----------------------------------------------
315 IF (key3_read == 'VFRAC') THEN
316c
317c create specific keywords for LAW151, number of present materials is not
318c known a priori
319c
320 IF (multi_fvm%IS_USED) THEN
321 nb_key = multi_fvm%NBMAT
322 DO ii = 1, nb_key
323 IF (cpt_key == ii) THEN
324 WRITE(key3_glob, '(A,I0)') 'M151VFRAC', ii
325 ENDIF
326 ENDDO
327 ELSE
328 nb_key = 4
329 IF (cpt_key == 1) key3_glob = 'VFRAC1'
330 IF (cpt_key == 2) key3_glob = 'VFRAC2'
331 IF (cpt_key == 3) key3_glob = 'VFRAC3'
332 IF (cpt_key == 4) key3_glob = 'VFRAC4'
333 ENDIF
334 ELSEIF (key3_read == 'MDS' .AND. is_mdsvar == 0 .AND.
335 . is_ipt ==0 .AND. is_layer == 0 .AND. is_ply == 0) THEN
336 nb_key = is_ply_all+is_layer_all+1
337 IF (cpt_key == 1) THEN
338 key3_glob = 'MDS'
339 is_mdsvar = 1
340 is_mdsvar_def = 1
341 IF(is_model_ply == 1 .OR. is_model_layer == 1 )is_layer_all = 1
342 ENDIF
343 ENDIF
344c-----------------------------------------------
345 ELSEIF (key3_read == 'PHASE_DENS') THEN
346c-----------------------------------------------
347 IF (multi_fvm%IS_USED) THEN
348 nb_key = multi_fvm%NBMAT
349 DO ii = 1, nb_key
350 IF (cpt_key == ii) THEN
351 WRITE(key3_glob, '(A,I0)') 'M151DENS', ii
352 ENDIF
353 ENDDO
354 ENDIF
355c-----------------------------------------------
356 ELSEIF (key3_read == 'PHASE_ENER') THEN
357c-----------------------------------------------
358 IF (multi_fvm%IS_USED) THEN
359 nb_key = multi_fvm%NBMAT
360 DO ii = 1, nb_key
361 IF (cpt_key == ii) THEN
362 WRITE(key3_glob, '(A,I0)') 'M151ENER', ii
363 ENDIF
364 ENDDO
365 ENDIF
366c-----------------------------------------------
367 ELSEIF (key3_read == 'PHASE_PRES') THEN
368c-----------------------------------------------
369 IF (multi_fvm%IS_USED) THEN
370 nb_key = multi_fvm%NBMAT
371 DO ii = 1, nb_key
372 IF (cpt_key == ii) THEN
373 WRITE(key3_glob, '(A,I0)') 'M151PRES', ii
374 ENDIF
375 ENDDO
376 ENDIF
377c-----------------------------------------------
378 ELSEIF (key2_read == 'BEAM' .OR. key2_read == 'SPRING' .OR. key2_read == 'TRUSS') THEN
379c-----------------------------------------------
380 IF (key3_read == 'FORC') THEN
381 nb_key = 9
382 IF (cpt_key == 1) key3_glob = 'F1'
383 IF (cpt_key == 2) key3_glob = 'F2'
384 IF (cpt_key == 3) key3_glob = 'F3'
385 IF (cpt_key == 4) key3_glob = 'M11'
386 IF (cpt_key == 5) key3_glob = 'M21'
387 IF (cpt_key == 6) key3_glob = 'M31'
388 IF (cpt_key == 7) key3_glob = 'M12'
389 IF (cpt_key == 8) key3_glob = 'M22'
390 IF (cpt_key == 9) key3_glob = 'M32'
391 ELSE
392 nb_key = 1
393 key3_glob = key3_read
394 ENDIF
395 ELSE
396 nb_key = 1
397 key3_glob = key3_read
398 ENDIF
399c-----------------------------------------------
400 cpt_key = cpt_key + 1
401c-----------------------------------------------
integer, parameter ncharline100
integer, parameter ncharkey