37
38
39
42 USE multi_fvm_mod
44
45
46
47#include "implicit_f.inc"
48
49
50
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
55
56
57
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
62
63 IF (key2_read == 'MASS') THEN
64
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'
82
83 ELSEIF (KEY2_READ == 'solid') THEN
84
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
118
119
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
138
139 ELSEIF (KEY2_READ == 'noda') THEN
140
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'
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
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
173
174 ELSEIF (key2_read == 'QUAD') THEN
175 IF (key3_read == 'VFRAC') THEN
176
177
178
179
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
195
196 ELSEIF (KEY2_READ == 'elem') THEN
197 IF (KEY3_READ == 'vfrac') THEN
198
199
200
201
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
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313 ELSEIF (key2_read == 'SHELL') THEN
314
315 IF (key3_read == 'VFRAC') THEN
316
317
318
319
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
344
345 ELSEIF (key3_read == 'PHASE_DENS') THEN
346
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
355
356 ELSEIF (key3_read == 'PHASE_ENER') THEN
357
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
366
367 ELSEIF (key3_read == 'PHASE_PRES') THEN
368
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
377
378 ELSEIF (key2_read == 'BEAM' .OR. key2_read == 'SPRING' .OR. key2_read == 'TRUSS') THEN
379
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
399
400 cpt_key = cpt_key + 1
401
integer, parameter ncharline100
integer, parameter ncharkey