OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
io_type24.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| io_type24 ../starter/source/interfaces/inter3d1/io_type24.F
25!||--- calls -----------------------------------------------------
26!|| io_iarray ../starter/source/interfaces/inter3d1/io_type24.F
27!|| io_rarray ../starter/source/interfaces/inter3d1/io_type24.F
28!||====================================================================
29 SUBROUTINE io_type24(IDO,IOUT,
30 . IGAP,
31 . IPEN0,
32 . I_STOK, ! output
33 . INACTI,
34 . MULTIMP,
35 . NMN,
36 . NRTM,
37 . NRTM0,
38 . NRTM_SH,
39 . NRTSE,
40 . NSN,
41 . NSN0,
42 . NSNE,
43 . NUMELS,
44 . NUMELS8,
45 . NUMELS10,
46 . NUMELS16,
47 . NUMELS20,
48 . NUMNOD ,
49 . B_I_STOK,
50 . ICONT_I,
51 . IPARTNS,
52 . IRECTM,
53 . IRTLM,
54 . IRTSE,
55 . IS2SE,
56 . IS2PT,
57 . ITAB ,
58 . MBINFLG,
59 . MSEGTYP24,
60 . MSR,
61 . MWA,
62 . NBINFLG,
63 . NOD2ELS,
64 . KNOD2ELS,
65 . NSEG,
66 . NSV,
67 . IXS,
68 . IXS10,
69 . IXS16,
70 . IXS20,
71 . MVOISIN,
72 . VARIABLES,
73 . X,
74 . CAND_E,
75 . CAND_N,
76 . GAP_M,
77 . GAP_NM,
78 . GAP_S,
79 . PENE_OLD,
80 . PENMIN,
81 . STFM ,
82 . STFNS,
83 . STIF_OLD,
84 . XFIC,
85 . RWA)
86C============================================================================
87C-----------------------------------------------
88C M o d u l e s
89C-----------------------------------------------
90C-----------------------------------------------
91C I m p l i c i t T y p e s
92C-----------------------------------------------
93#include "implicit_f.inc"
94C-----------------------------------------------
95C D u m m y A r g u m e n t s
96C-----------------------------------------------
97 INTEGER :: IDO ! 0 => WRITE
98 ! 1 => READ SIZES
99 ! 2 => READ VALUES
100C=======================================================================
101 INTEGER :: IOUT
102 INTEGER :: IGAP
103 INTEGER :: IPEN0
104 INTEGER :: I_STOK
105 INTEGER :: INACTI
106 INTEGER :: MULTIMP
107 INTEGER :: NMN
108 INTEGER :: NRTM
109 INTEGER :: NRTM0
110 INTEGER :: NRTM_SH
111 INTEGER :: NRTSE
112 INTEGER :: NSN
113 INTEGER :: NSN0
114 INTEGER :: NSNE
115 INTEGER :: NUMELS
116 INTEGER :: NUMELS8
117 INTEGER :: NUMELS10
118 INTEGER :: NUMELS16
119 INTEGER :: NUMELS20
120 INTEGER :: NUMNOD
121C ============================================
122 INTEGER :: B_I_STOK(*)
123 INTEGER :: ICONT_I(*)
124 INTEGER :: IPARTNS(*)
125 INTEGER :: IRECTM(*)
126 INTEGER :: IRTLM(*)
127 INTEGER :: IRTSE(*)
128 INTEGER :: IS2SE(*)
129 INTEGER :: IS2PT(*)
130 INTEGER :: ITAB (*)
131 INTEGER :: MBINFLG(*)
132 INTEGER :: MSEGTYP24(*)
133 INTEGER :: MSR(*)
134 INTEGER :: MWA(*)
135 INTEGER :: NBINFLG(*)
136 INTEGER :: NOD2ELS,KNOD2ELS(*)
137 INTEGER :: NSEG(*)
138 INTEGER :: NSV(*)
139 INTEGER :: IXS(*)
140 INTEGER :: IXS10(*)
141 INTEGER :: IXS16(*)
142 INTEGER :: IXS20 (*)
143 INTEGER :: MVOISIN(*)
144 REAL(8) :: VARIABLES(38)
145 REAL(8) :: X(*)
146 INTEGER :: CAND_E(*)
147 INTEGER :: CAND_N(*)
148 REAL(8) :: GAP_M(*)
149 REAL(8) :: GAP_NM(*)
150 REAL(8) :: GAP_S(*)
151 REAL(8) :: PENE_OLD(*)
152 REAL(8) :: PENMIN(*)
153 REAL(8) :: STFM (*)
154 REAL(8) :: STFNS(*)
155 REAL(8) :: STIF_OLD(*)
156 REAL(8) :: XFIC(*)
157 REAL(8) :: RWA (*)
158C-----------------------------------------------
159C L o c a l V a r i a b l e s
160C-----------------------------------------------
161 INTEGER :: SIZ_B_I_STOK
162 INTEGER :: SIZ_ICONT_I
163 INTEGER :: SIZ_IPARTNS
164 INTEGER :: SIZ_IRECTM
165 INTEGER :: SIZ_IRTLM
166 INTEGER :: SIZ_IRTSE
167 INTEGER :: SIZ_IS2SE
168 INTEGER :: SIZ_IS2PT
169 INTEGER :: SIZ_ITAB
170 INTEGER :: SIZ_MBINFLG
171 INTEGER :: SIZ_MSEGTYP24
172 INTEGER :: SIZ_MSR
173 INTEGER :: SIZ_MWA
174 INTEGER :: SIZ_NBINFLG
175 INTEGER :: SIZ_NOD2ELS
176 INTEGER :: SIZ_KNOD2ELS
177 INTEGER :: SIZ_NSEG
178 INTEGER :: SIZ_NSV
179 INTEGER :: SIZ_IXS
180 INTEGER :: SIZ_IXS10
181 INTEGER :: SIZ_IXS16
182 INTEGER :: SIZ_IXS20
183 INTEGER :: SIZ_MVOISIN
184 INTEGER :: SIZ_X
185 INTEGER :: SIZ_CAND_E
186 INTEGER :: SIZ_CAND_N
187 INTEGER :: SIZ_GAP_M
188 INTEGER :: SIZ_GAP_NM
189 INTEGER :: SIZ_GAP_S
190 INTEGER :: SIZ_PENE_OLD
191 INTEGER :: SIZ_PENMIN
192 INTEGER :: SIZ_STFM
193 INTEGER :: SIZ_STFNS
194 INTEGER :: SIZ_STIF_OLD
195 INTEGER :: SIZ_XFIC
196 INTEGER :: SIZ_RWA
197 LOGICAL :: FLAG
198 INTEGER :: IEDGE
199 INTEGER :: IEDGE4
200 INTEGER :: ILEV
201
202C=======================================================================
203 iedge = 0
204 iedge4= 0
205 ilev = 1
206 flag = .false. !write
207
208 IF(ido==0) flag = .true. !read
209
210C============================ SIZES
211 IF(ido == 0 .OR. ido == 1) THEN
212 WRITE(6,*)"IGAP " ; CALL io_int(igap ,iout ,flag); CALL flush(6)
213 WRITE(6,*)"IPEN0 " ; CALL io_int(ipen0 ,iout ,flag); CALL flush(6)
214 WRITE(6,*)"I_STOK " ; CALL io_int(i_stok ,iout ,flag); CALL flush(6)
215 WRITE(6,*)"INACTI " ; CALL io_int(inacti ,iout ,flag); CALL flush(6)
216c WRITE(6,*)"MULTIMP " ; CALL IO_INT(MULTIMP ,IOUT ,FLAG); CALL FLUSH(6)
217 WRITE(6,*)"NMN " ; CALL io_int(nmn ,iout ,flag); CALL flush(6)
218 WRITE(6,*)"NRTM " ; CALL io_int(nrtm ,iout ,flag); CALL flush(6)
219 WRITE(6,*)"NRTM0 " ; CALL io_int(nrtm0 ,iout ,flag); CALL flush(6)
220 WRITE(6,*)"NRTM_SH " ; CALL io_int(nrtm_sh ,iout ,flag); CALL flush(6)
221 WRITE(6,*)"NRTSE " ; CALL io_int(nrtse ,iout ,flag); CALL flush(6)
222 WRITE(6,*)"NSN " ; CALL io_int(nsn ,iout ,flag); CALL flush(6)
223 WRITE(6,*)"NSN0 " ; CALL io_int(nsn0 ,iout ,flag); CALL flush(6)
224 WRITE(6,*)"NSNE " ; CALL io_int(nsne ,iout ,flag); CALL flush(6)
225 WRITE(6,*)"NUMELS " ; CALL io_int(numels ,iout ,flag); CALL flush(6)
226 WRITE(6,*)"NUMELS8 " ; CALL io_int(numels8 ,iout ,flag); CALL flush(6)
227 WRITE(6,*)"NUMELS10" ; CALL io_int(numels10 ,iout ,flag); CALL flush(6)
228 WRITE(6,*)"numels16" ; CALL IO_INT(NUMELS16 ,IOUT ,FLAG); CALL FLUSH(6)
229 WRITE(6,*)"numels20" ; CALL IO_INT(NUMELS20 ,IOUT ,FLAG); CALL FLUSH(6)
230 WRITE(6,*)"numnod " ; CALL IO_INT(NUMNOD ,IOUT ,FLAG); CALL FLUSH(6)
231 ENDIF
232
233
234C============================= lengths
235.OR. IF(IDO == 0 IDO ==2) THEN
236 SIZ_B_I_STOK =1
237 SIZ_ICONT_I =NSN
238 SIZ_IPARTNS =NSN
239 SIZ_IRECTM =4 * NRTM
240 SIZ_IRTLM =2 * NSN
241 SIZ_IRTSE = 0
242 SIZ_IS2SE = 0
243 IF(IEDGE4>0) SIZ_IRTSE =5 * NSNE
244 IF(IEDGE4>0) SIZ_IS2SE =2 * NSNE
245 SIZ_IS2PT =NSNE
246 SIZ_ITAB =NUMNOD
247 SIZ_MBINFLG = 0
248.OR. IF(IEDGE >0 ILEV == 2) SIZ_MBINFLG =NRTM
249 SIZ_MSEGTYP24 =NRTM
250 SIZ_MSR =NMN
251 SIZ_MWA =6*MAX(NUMNOD,NRTM+100)
252 SIZ_NBINFLG = 0
253.OR. IF(IEDGE >0 ILEV == 2) SIZ_NBINFLG =NMN
254 SIZ_NOD2ELS =8*NUMELS+6*NUMELS10+12*NUMELS20+8*NUMELS16
255 SIZ_KNOD2ELS =NUMNOD + 1
256 SIZ_NSEG =1+NMN
257 SIZ_NSV =NSN
258 SIZ_IXS =NUMELS*11
259 SIZ_IXS10 =NUMELS10*6
260 SIZ_IXS16 =NUMELS20*12
261 SIZ_IXS20 =NUMELS16*8
262 SIZ_MVOISIN =NRTM*4
263 SIZ_X =NUMNOD*3
264 SIZ_CAND_E =(NSN * MULTIMP)
265 SIZ_CAND_N =(NSN * MULTIMP )
266 SIZ_GAP_M =0
267 IF(IGAP > 0 ) SIZ_GAP_M =NRTM
268 SIZ_GAP_NM =12*NRTM
269 SIZ_GAP_S = 0
270 IF(IGAP > 0 ) SIZ_GAP_S =NSN
271 SIZ_PENE_OLD =5 *NSN
272 SIZ_PENMIN =NSN
273 SIZ_STFM =NRTM
274 SIZ_STFNS =NSN
275 SIZ_STIF_OLD =2*NSN
276 SIZ_XFIC =3*NSNE
277 SIZ_RWA =6*NUMNOD
278
279C======================== INTEGERS
280 WRITE(6,*) " ipartns ";CALL IO_IARRAY (IPARTNS ,SIZ_IPARTNS ,IOUT ,FLAG)
281 WRITE(6,*) " irectm ";CALL IO_IARRAY (IRECTM ,SIZ_IRECTM ,IOUT ,FLAG)
282c WRITE(6,*) " IRTLM ";CALL IO_IARRAY (IRTLM ,SIZ_IRTLM ,IOUT ,FLAG)
283 WRITE(6,*) " irtse ";CALL IO_IARRAY (IRTSE ,SIZ_IRTSE ,IOUT ,FLAG)
284 WRITE(6,*) " is2se ";CALL IO_IARRAY (IS2SE ,SIZ_IS2SE ,IOUT ,FLAG)
285 WRITE(6,*) " is2pt ";CALL IO_IARRAY (IS2PT ,SIZ_IS2PT ,IOUT ,FLAG)
286 WRITE(6,*) " itab ";CALL IO_IARRAY (ITAB ,SIZ_ITAB ,IOUT ,FLAG)
287 WRITE(6,*) " mbinflg ";CALL IO_IARRAY (MBINFLG ,SIZ_MBINFLG ,IOUT ,FLAG)
288 WRITE(6,*) " msegtyp24 ";CALL IO_IARRAY (MSEGTYP24,SIZ_MSEGTYP24,IOUT ,FLAG)
289 WRITE(6,*) " msr ";CALL IO_IARRAY (MSR ,SIZ_MSR ,IOUT ,FLAG)
290c WRITE(6,*) " MWA ";CALL IO_IARRAY (MWA ,SIZ_MWA ,IOUT ,FLAG)
291 WRITE(6,*) " nbinflg ";CALL IO_IARRAY (NBINFLG ,SIZ_NBINFLG ,IOUT ,FLAG)
292 WRITE(6,*) " nod2els ";CALL IO_IARRAY (NOD2ELS ,SIZ_NOD2ELS ,IOUT ,FLAG)
293 WRITE(6,*) " knod2els ";CALL IO_IARRAY (KNOD2ELS ,SIZ_KNOD2ELS ,IOUT ,FLAG)
294c WRITE(6,*) " NSEG ";CALL IO_IARRAY (NSEG ,SIZ_NSEG ,IOUT ,FLAG)
295 WRITE(6,*) " nsv ";CALL IO_IARRAY (NSV ,SIZ_NSV ,IOUT ,FLAG)
296 WRITE(6,*) " icont_i ";CALL IO_IARRAY (ICONT_I ,SIZ_ICONT_I ,IOUT ,FLAG)
297 WRITE(6,*) " ixs ";CALL io_iarray (ixs ,siz_ixs ,iout ,flag)
298 WRITE(6,*) " IXS10 ";CALL io_iarray (ixs10 ,siz_ixs10 ,iout ,flag)
299 WRITE(6,*) " IXS16 ";CALL io_iarray (ixs16 ,siz_ixs16 ,iout ,flag)
300 WRITE(6,*) " IXS20 ";CALL io_iarray (ixs20 ,siz_ixs20 ,iout ,flag)
301 WRITE(6,*) " MVOISIN ";CALL io_iarray (mvoisin ,siz_mvoisin ,iout ,flag)
302 WRITE(6,*) " CAND_E ";CALL io_iarray (cand_e ,siz_cand_e ,iout ,flag)
303 WRITE(6,*) " CAND_N ";CALL io_iarray (cand_n ,siz_cand_n ,iout ,flag)
304C=============================;=========================
305 WRITE(6,*) " VARIABLES ";CALL io_rarray (variables,38 ,iout ,flag)
306 WRITE(6,*) " X ";CALL io_rarray (x ,siz_x ,iout ,flag)
307 WRITE(6,*) " GAP_M ";CALL io_rarray (gap_m ,siz_gap_m ,iout ,flag)
308 WRITE(6,*) " GAP_NM ";CALL io_rarray (gap_nm ,siz_gap_nm ,iout ,flag)
309 WRITE(6,*) " GAP_S ";CALL io_rarray (gap_s ,siz_gap_s ,iout ,flag)
310c WRITE(6,*) " PENE_OLD ";CALL IO_RARRAY (PENE_OLD ,SIZ_PENE_OLD ,IOUT ,FLAG)
311c WRITE(6,*) " STFM ";CALL IO_RARRAY (STFM ,SIZ_STFM ,IOUT ,FLAG)
312c WRITE(6,*) " STFNS ";CALL IO_RARRAY (STFNS ,SIZ_STFNS ,IOUT ,FLAG)
313c WRITE(6,*) " STIF_OLD ";CALL IO_RARRAY (STIF_OLD ,SIZ_STIF_OLD ,IOUT ,FLAG)
314 WRITE(6,*) " XFIC ";CALL io_rarray (xfic ,siz_xfic ,iout ,flag)
315c WRITE(6,*) " RWA ";CALL IO_RARRAY (RWA ,SIZ_RWA ,IOUT ,FLAG)
316
317 ENDIF
318 CALL flush(6)
319 CALL flush(iout)
320
321 RETURN
322 END
323!||====================================================================
324!|| io_int ../starter/source/interfaces/inter3d1/io_type24.F
325!||====================================================================
326 SUBROUTINE io_int(SCALAR,IOUT,FLAG)
327C============================================================================
328C-----------------------------------------------
329C M o d u l e s
330C-----------------------------------------------
331C-----------------------------------------------
332C I m p l i c i t T y p e s
333C-----------------------------------------------
334#include "implicit_f.inc"
335C-----------------------------------------------
336C G l o b a l P a r a m e t e r s
337C-----------------------------------------------
338
339 INTEGER, INTENT(IN) :: IOUT
340 INTEGER, INTENT(INOUT):: SCALAR
341 LOGICAL, INTENT(IN) :: FLAG
342C-----------------------------------------------
343C L o c a l V a r i a b l e s
344C-----------------------------------------------
345 INTEGER :: I
346C-----------------------------------------------
347C S o u r c e L i n e s
348C-----------------------------------------------
349 ! Integer
350 IF(flag) THEN
351 WRITE(iout,'(I20.11)' ) scalar
352c WRITE(700,*) "W",SCALAR,LOC(SCALAR)
353 ELSE
354 READ(iout,'(I20.11)' ) scalar
355c WRITE(6,*) SCALAR
356 ENDIF
357c CALL FLUSH(700)
358 RETURN
359 END
360
361!||====================================================================
362!|| io_iarray ../starter/source/interfaces/inter3d1/io_type24.F
363!||--- called by ------------------------------------------------------
364!|| io_type24 ../starter/source/interfaces/inter3d1/io_type24.F
365!||====================================================================
366 SUBROUTINE io_iarray(ARRAY,LENGTH,IOUT,FLAG)
367C============================================================================
368C-----------------------------------------------
369C M o d u l e s
370C-----------------------------------------------
371C-----------------------------------------------
372C I m p l i c i t T y p e s
373C-----------------------------------------------
374#include "implicit_f.inc"
375C-----------------------------------------------
376C G l o b a l P a r a m e t e r s
377C-----------------------------------------------
378
379 INTEGER, INTENT(IN) :: LENGTH,IOUT
380 INTEGER, INTENT(INOUT):: ARRAY(LENGTH)
381 LOGICAL, INTENT(IN) :: FLAG
382C-----------------------------------------------
383C L o c a l V a r i a b l e s
384C-----------------------------------------------
385 INTEGER :: I
386C-----------------------------------------------
387C S o u r c e L i n e s
388C-----------------------------------------------
389 ! Integer
390 IF(FLAG) THEN
391 DO I=1,length
392 WRITE(iout,'(I20.11)' ) array(i)
393c WRITE(700,*) "W",I,ARRAY(I)
394 ENDDO
395 ELSE
396 DO i=1,length
397 READ(iout,'(I20.11)' ) array(i)
398c WRITE(6,*) I,ARRAY(I)
399 ENDDO
400 ENDIF
401 RETURN
402 END
403C============================================================================
404!||====================================================================
405!|| io_rarray ../starter/source/interfaces/inter3d1/io_type24.F
406!||--- called by ------------------------------------------------------
407!|| io_type24 ../starter/source/interfaces/inter3d1/io_type24.F
408!||====================================================================
409 SUBROUTINE io_rarray(ARRAY,LENGTH,IOUT,FLAG)
410C-----------------------------------------------
411C M o d u l e s
412C-----------------------------------------------
413C-----------------------------------------------
414C I m p l i c i t T y p e s
415C-----------------------------------------------
416#include "implicit_f.inc"
417C-----------------------------------------------
418C G l o b a l P a r a m e t e r s
419C-----------------------------------------------
420
421 INTEGER, INTENT(IN) :: LENGTH,IOUT
422 my_real, INTENT(INOUT):: array(length)
423 LOGICAL, INTENT(IN) :: FLAG
424C-----------------------------------------------
425C L o c a l V a r i a b l e s
426C-----------------------------------------------
427 INTEGER :: I
428C-----------------------------------------------
429C S o u r c e L i n e s
430C-----------------------------------------------
431 IF(FLAG) THEN
432 DO I=1,length
433 WRITE(iout,'(Z20)' ) array(i)
434C WRITE(700,*) "W",I,ARRAY(I)
435 ENDDO
436 ELSE
437 DO i=1,length
438 READ(iout,'(Z20)' ) array(i)
439c WRITE(6,*) I,ARRAY(I)
440 ENDDO
441 ENDIF
442 RETURN
443 END
#define my_real
Definition cppsort.cpp:32
subroutine io_rarray(array, length, iout, flag)
Definition io_type24.F:410
subroutine io_int(scalar, iout, flag)
Definition io_type24.F:327
subroutine io_type24(ido, iout, igap, ipen0, i_stok, inacti, multimp, nmn, nrtm, nrtm0, nrtm_sh, nrtse, nsn, nsn0, nsne, numels, numels8, numels10, numels16, numels20, numnod, b_i_stok, icont_i, ipartns, irectm, irtlm, irtse, is2se, is2pt, itab, mbinflg, msegtyp24, msr, mwa, nbinflg, nod2els, knod2els, nseg, nsv, ixs, ixs10, ixs16, ixs20, mvoisin, variables, x, cand_e, cand_n, gap_m, gap_nm, gap_s, pene_old, penmin, stfm, stfns, stif_old, xfic, rwa)
Definition io_type24.F:86
subroutine io_iarray(array, length, iout, flag)
Definition io_type24.F:367