OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
wrrestp.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!|| wrrestp ../engine/source/output/restart/wrrestp.F
25!||--- called by ------------------------------------------------------
26!|| resol ../engine/source/engine/resol.F
27!||--- calls -----------------------------------------------------
28!|| alelag_wrest ../engine/source/output/restart/wrrest.f
29!|| checksum_restart_write ../common_source/modules/output/checksum_mod.F90
30!|| close_c ../common_source/tools/input_output/write_routtines.c
31!|| compress_i_nnz ../common_source/comm/compress_nnz.F
32!|| compress_r_nnz ../common_source/comm/compress_nnz.F
33!|| convwrest ../engine/source/output/restart/wrrest.F
34!|| crkxfem_wrest ../engine/source/output/restart/wrrest.F
35!|| crkxfem_wrestanim ../engine/source/output/restart/wrrest.F
36!|| cur_fil_c ../common_source/tools/input_output/write_routtines.c
37!|| drape_wrest ../engine/source/output/restart/wrrest.F
38!|| eigwrest ../engine/source/output/restart/wrrest.F
39!|| file_size ../common_source/tools/input_output/write_routtines.c
40!|| fvwrest ../engine/source/output/restart/wrrest.F
41!|| fxbwrest ../engine/source/output/restart/wrrest.f
42!|| fxfluxwrest ../engine/source/constraints/thermic/fxfluxwrest.F
43!|| fxtempwrest ../engine/source/output/restart/wrrest.F
44!|| imp_trans ../engine/source/output/restart/wrrest.F
45!|| impwrest ../engine/source/output/restart/wrrest.F
46!|| intfric_wresti ../common_source/modules/interfaces/intbuf_fric_mod.F90
47!|| intfric_wrestr ../common_source/modules/interfaces/intbuf_fric_mod.F90
48!|| intstamp_wresti ../engine/share/modules/intstamp_mod.F
49!|| intstamp_wrestr ../engine/share/modules/intstamp_mod.F
50!|| nfwrest ../engine/source/output/restart/wrrest.F
51!|| nitschewrest ../engine/source/output/restart/wrrest.F
52!|| open_c ../common_source/tools/input_output/write_routtines.c
53!|| pblast_write_engine ../common_source/modules/loads/pblast_mod.F90
54!|| ply_info_wrest ../engine/source/output/restart/wrrest.F
55!|| plyxfem_wravuply ../engine/source/output/restart/wrrest.F
56!|| plyxfem_wrest ../engine/source/output/restart/wrrest.f
57!|| plyxfem_wrestanim ../engine/source/output/restart/wrrest.F
58!|| python_serialize ../common_source/modules/python_mod.F90
59!|| radiawrest ../engine/source/output/restart/wrrest.F
60!|| rigmatwrest ../engine/source/output/restart/wrrest.F
61!|| rthbufwrest ../engine/source/output/restart/wrrest.F
62!|| spmd_glob_dmin9 ../engine/source/mpi/fluid/spmd_cfd.F
63!|| spmd_glob_dsum9 ../engine/source/mpi/interfaces/spmd_th.F
64!|| spmd_savefi ../engine/source/mpi/interfaces/spmd_i7tool.F
65!|| spmd_savesph ../engine/source/mpi/sph/spmd_sptool.F
66!|| stack_wrest ../engine/source/output/restart/wrrest.F
67!|| table_wresti ../engine/source/tools/curve/table_tools.F
68!|| table_wrestr ../engine/source/tools/curve/table_tools.F
69!|| thcwrest ../engine/source/output/restart/wrrest.f
70!|| thsurf_write_restart ../common_source/modules/interfaces/th_surf_mod.F
71!|| userwi_write ../engine/source/user_interface/userwindow_interface_routines.F
72!|| w_bufbric_22 ../engine/source/interfaces/int22/w_bufbric_22.F
73!|| w_cluster ../engine/source/output/cluster/w_cluster.F
74!|| w_elbuf_str ../engine/source/elements/elbuf/w_elbuf_str.f
75!|| w_failwave ../engine/source/output/restart/w_failwave.f
76!|| w_group_str ../engine/source/output/restart/w_group_str.F
77!|| w_line_str ../engine/source/output/restart/w_line_str.F
78!|| w_subset_str ../engine/source/output/restart/w_subset_str.f
79!|| w_surf_str ../engine/source/output/restart/w_surf_str.F
80!|| wrcomi ../engine/source/output/restart/wrcomm.F
81!|| wrcomr ../engine/source/output/restart/wrcomm.F
82!|| write_ale_grid ../common_source/output/restart/write_ale_grid.F90
83!|| write_bcs_wall ../common_source/output/restart/write_bcs_wall.f90
84!|| write_c_c ../common_source/tools/input_output/write_routtines.c
85!|| write_db ../common_source/tools/input_output/write_db.f
86!|| write_dpdb ../common_source/tools/input_output/write_db.F
87!|| write_elgroup_param ../engine/source/output/restart/write_elgroup_param.F
88!|| write_i_c ../common_source/tools/input_output/write_routtines.c
89!|| write_inivel ../engine/source/output/restart/write_inivel.F90
90!|| write_intbuf ../engine/source/output/restart/write_intbuf.F
91!|| write_joint ../engine/source/output/restart/write_joint.f
92!|| write_matparam ../engine/source/output/restart/write_matparam.F
93!|| write_nloc_struct ../engine/source/output/restart/write_nloc_struct.f
94!|| write_pcyl ../engine/source/output/restart/write_pcyl.F
95!|| write_rrbe3pen ../engine/source/output/restart/restart_rbe3pen.F90
96!|| write_sensors ../engine/source/output/restart/write_sensors.f
97!|| write_th_restart ../engine/source/output/th/write_th_restart.F
98!|| write_units ../common_source/comm/write_units.F
99!||--- uses -----------------------------------------------------
100!|| ale_connectivity_mod ../common_source/modules/ale/ale_connectivity_mod.F
101!|| ale_mod ../common_source/modules/ale/ale_mod.f
102!|| alefvm_mod ../common_source/modules/ale/alefvm_mod.F
103!|| bcs_mod ../common_source/modules/boundary_conditions/bcs_mod.F90
104!|| checksum_output_option_mod ../common_source/modules/output/checksum_mod.f90
105!|| cluster_mod ../engine/share/modules/cluster_mod.F
106!|| connectivity_mod ../common_source/modules/connectivity.f90
107!|| damp_mod ../engine/share/modules/damp_mod.F
108!|| drape_mod ../engine/share/modules/drape_mod.F
109!|| ebcs_mod ../common_source/modules/boundary_conditions/ebcs_mod.F90
110!|| ecnd_mod ../engine/share/modules/ecdn_mod.F
111!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
112!|| glob_therm_mod ../common_source/modules/mat_elem/glob_therm_mod.F90
113!|| group_mod ../engine/share/modules/group_mod.f
114!|| groupdef_mod ../common_source/modules/groupdef_mod.F
115!|| h3d_mod ../engine/share/modules/h3d_mod.F
116!|| impbufdef_mod ../engine/share/modules/impbufdef_mod.F
117!|| inoutfile_mod ../common_source/modules/inoutfile_mod.f
118!|| int8_mod ../common_source/modules/interfaces/int8_mod.F90
119!|| intbuf_fric_mod ../common_source/modules/interfaces/intbuf_fric_mod.F90
120!|| intbufdef_mod ../common_source/modules/interfaces/intbufdef_mod.f90
121!|| interfaces_mod ../common_source/modules/interfaces/interfaces_mod.F90
122!|| intstamp_glob_mod ../engine/share/modules/intstamp_glob_mod.F
123!|| loads_mod ../common_source/modules/loads/loads_mod.F90
124!|| mat_elem_mod ../common_source/modules/mat_elem/mat_elem_mod.F90
125!|| monvol_struct_mod ../engine/share/modules/monvol_struct_mod.F
126!|| multi_fvm_mod ../common_source/modules/ale/multi_fvm_mod.F90
127!|| names_and_titles_mod ../common_source/modules/names_and_titles_mod.F
128!|| nodal_arrays_mod ../common_source/modules/nodal_arrays.F90
129!|| outmax_mod ../common_source/modules/outmax_mod.F
130!|| output_mod ../common_source/modules/output/output_mod.f90
131!|| outputs_mod ../common_source/modules/outputs_mod.F
132!|| pblast_mod ../common_source/modules/loads/pblast_mod.F90
133!|| pinchtype_mod ../common_source/modules/pinchtype_mod.F
134!|| python_funct_mod ../common_source/modules/python_mod.F90
135!|| rbe3_mod ../common_source/modules/constraints/rbe3_mod.F90
136!|| restart_rbe3pen_mod ../engine/source/output/restart/restart_rbe3pen.F90
137!|| restmod ../engine/share/modules/restart_mod.F
138!|| seatbelt_mod ../common_source/modules/seatbelt_mod.f
139!|| sensor_mod ../common_source/modules/sensor_mod.F90
140!|| skew_mod ../common_source/modules/skew_mod.f90
141!|| sms_mod ../engine/share/modules/sms_mod.F
142!|| sph_mod ../engine/share/modules/sph_mod.F
143!|| stack_mod ../engine/share/modules/stack_mod.F
144!|| state_mod ../common_source/modules/state_mod.F
145!|| table_glob_mod ../engine/share/modules/table_glob_mod.F
146!|| time_mod ../engine/share/modules/time_mod.F
147!|| unitab_mod ../common_source/modules/unitab_mod.F
148!|| user_windows_mod ../common_source/modules/user_windows_mod.F
149!|| write_ale_grid_mod ../common_source/output/restart/write_ale_grid.F90
150!|| write_bcs_wall_mod ../common_source/output/restart/write_bcs_wall.F90
151!|| write_inivel_mod ../engine/source/output/restart/write_inivel.F90
152!|| xfem2vars_mod ../engine/share/modules/xfem2vars_mod.F
153!||====================================================================
154 SUBROUTINE wrrestp(ELEMENTS, NODES, AF ,IAF ,ICH ,ADDCNE,
155 . ELBUF_TAB ,XFEM_TAB ,INTBUF_TAB ,MULTI_FVM ,MAT_ELEM ,
156 . H3D_DATA ,INTBUF_FRIC_TAB ,SUBSET ,PINCH_DATA ,ALE_CONNECTIVITY ,
157 . T_MONVOL ,SENSORS ,EBCS_TAB ,DYNAIN_DATA ,USER_WINDOWS ,
158 . OUTPUT ,INTERFACES ,LOADS ,PYTHON ,NAMES_AND_TITLES ,
159 . EIGIPM ,EIGIBUF ,EIGRPM ,NEIPM ,LEIBUF ,
160 . NERPM ,IFLOW ,RFLOW ,LIFLOW ,LRFLOW ,
161 . IMPBUF_TAB ,IMPL_S ,IMPL_S0 ,MCP ,TEMP ,
162 . FORNEQS ,UNITAB ,STACK ,NDRAPE ,DRAPE_SH3N ,
163 . DRAPE_SH4N ,DRAPEG ,RESTSIZE ,SKEWS ,GLOB_THERM ,
164 . PBLAST ,RBE3)
165C-----------------------------------------------
166C M o d u l e s
167C-----------------------------------------------
168 USE restmod
169 USE nodal_arrays_mod
170 USE connectivity_mod
172 USE sms_mod
174 USE mat_elem_mod
175 USE sph_mod
176 USE intbufdef_mod
177 USE int8_mod
178 USE cluster_mod
179 USE ecnd_mod
180 USE multi_fvm_mod
181 USE h3d_mod
182 USE intbuf_fric_mod
183 USE groupdef_mod
184 USE group_mod
185 USE pinchtype_mod
186 USE inoutfile_mod
189 USE sensor_mod
190 USE ebcs_mod
191 USE seatbelt_mod
192 USE pblast_mod
193 USE outmax_mod
194 USE outputs_mod
195 USE loads_mod
196 USE state_mod
198 USE ale_mod
199 USE output_mod
200 USE interfaces_mod
201 USE python_funct_mod
202 USE damp_mod
203 USE xfem2vars_mod
204 USE alefvm_mod
206 USE bcs_mod , only : bcs
207 USE skew_mod
209 USE unitab_mod, ONLY : unit_type_
210 USE stack_mod
211 USE drape_mod
212 USE time_mod
213 USE elbufdef_mod
214 use write_inivel_mod , only : write_inivel
215 use glob_therm_mod
216 use write_ale_grid_mod , only : write_ale_grid
217 use write_bcs_wall_mod , only : write_bcs_wall
218 use rbe3_mod
219 use restart_rbe3pen_mod, only : write_rrbe3pen
220 use checksum_output_option_mod, only : checksum_restart_write
221C-----------------------------------------------
222C I m p l i c i t T y p e s
223C-----------------------------------------------
224#include "implicit_f.inc"
225C-----------------------------------------------
226C D u m m y A r g u m e n t s
227C-----------------------------------------------
228 TYPE(nodal_arrays_) :: NODES
229 TYPE(connectivity_) :: ELEMENTS
230 INTEGER, INTENT(IN) :: NDRAPE
231 INTEGER, INTENT(IN) :: IMPL_S
232 INTEGER, INTENT(IN) :: IMPL_S0
233 my_real, INTENT(INOUT) :: MCP(NUMNOD)
234 my_real, INTENT(INOUT) :: TEMP(NUMNOD)
235 INTEGER, INTENT(INOUT) :: NEIPM, LEIBUF, NERPM
236 INTEGER, INTENT(INOUT) :: EIGIPM(NEIPM,NEIG),EIGIBUF(LEIBUF)
237 my_real, INTENT(INOUT) :: EIGRPM(NERPM,NEIG)
238 INTEGER, INTENT(IN) :: FORNEQS(3,NUMNOD)
239 INTEGER IAF(*),ICH,ADDCNE(*)
240 my_real af(*)
241 TYPE(elbuf_struct_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
242 TYPE(elbuf_struct_), TARGET, DIMENSION(NGROUP,NXEL) :: XFEM_TAB
243 TYPE(intbuf_struct_) INTBUF_TAB(*)
244 TYPE(multi_fvm_struct), INTENT(INOUT) :: MULTI_FVM
245c TYPE (CLUSTER_) ,DIMENSION(NCLUSTER) :: CLUSTER
246 TYPE(h3d_database), INTENT(IN) :: H3D_DATA
247 TYPE(intbuf_fric_struct_) INTBUF_FRIC_TAB(*)
248 TYPE(subset_), TARGET, DIMENSION(NSUBS) :: SUBSET
249 TYPE(pinch) :: PINCH_DATA
250 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECTIVITY
251 TYPE(monvol_struct_), DIMENSION(NVOLU), INTENT(IN) :: T_MONVOL
252 TYPE(t_ebcs_tab), INTENT(INOUT) :: EBCS_TAB
253 TYPE(dynain_database) ,INTENT(IN) :: DYNAIN_DATA
254 TYPE(user_windows_) ,INTENT(IN) :: USER_WINDOWS
255 TYPE(OUTPUT_) ,INTENT(INOUT) :: OUTPUT !< output structure
256 TYPE(interfaces_) ,INTENT(IN) :: INTERFACES
257 TYPE(sensors_) ,INTENT(IN) :: SENSORS
258 TYPE(loads_) ,INTENT(IN) :: LOADS
259 TYPE(mat_elem_) ,INTENT(IN) :: MAT_ELEM
260 TYPE(python_) ,INTENT(INOUT) :: PYTHON
261 TYPE(names_and_titles_),INTENT(IN) :: NAMES_AND_TITLES !< NAMES_AND_TITLES host the input deck names and titles for outputs
262 TYPE(skew_),INTENT(IN) :: SKEWS
263 TYPE(impbuf_struct_), TARGET :: IMPBUF_TAB
264 TYPE(unit_type_) :: UNITAB !< structure containing units conversion ratios
265 TYPE (stack_ply) :: stack
266 TYPE(DRAPE_) :: DRAPE_SH3N(NUMELTG_DRAPE),DRAPE_SH4N(NUMELC_DRAPE)
267 TYPE(drapeg_) :: DRAPEG
268 type (glob_therm_) ,intent(inout) :: GLOB_THERM
269 TYPE(pblast_) ,INTENT(INOUT) :: PBLAST
270 TYPE(RBE3_) ,INTENT(INOUT) :: RBE3
271C-----------------------------------------------
272C C o m m o n B l o c k s
273C-----------------------------------------------
274#include "chara_c.inc"
275#include "couple_c.inc"
276#include "com01_c.inc"
277#include "com04_c.inc"
278#include "com06_c.inc"
279#include "com_xfem1.inc"
280#include "intstamp_c.inc"
281#include "param_c.inc"
282#include "parit_c.inc"
283#include "scr03_c.inc"
284#include "scr05_c.inc"
285#include "scr07_c.inc"
286#include "scr14_c.inc"
287#include "scr16_c.inc"
288#include "scr19_c.inc"
289#include "scrcut_c.inc"
290#include "scrfs_c.inc"
291#include "scrnoi_c.inc"
292#include "scr_fac_c.inc"
293#include "sms_c.inc"
294#include "spmd_c.inc"
295#include "tabsiz_c.inc"
296#include "task_c.inc"
297#include "units_c.inc"
298#include "remesh_c.inc"
299#include "sphcom.inc"
300#include "inter18.inc"
301C-----------------------------------------------
302C L o c a l V a r i a b l e s
303C-----------------------------------------------
304 INTEGER I,J,LEN,IFILNAM(2148), IFIL,LEN_G,LEN_M,LENG,LEN_S,IXEL,
305 . FLAG_XFEM
306 CHARACTER FILNAM*100, FILNAMR*100, FILNAMG*128,
307 . PROCNAM*4, CHRUNR*4,PLAST*4
308 CHARACTER*1 IJK(26)
309 INTEGER LHEADER,LVARINT,LVARREA,LMXVINT,LMXVREA,M
310 PARAMETER (LHEADER=15)
311 parameter (lmxvint=4000)
312 parameter(lmxvrea=1000+30*maxlaw+30)
313 INTEGER TABHEAD(LHEADER),TABVINT(LMXVINT)
314 my_real
315 . tabvrea(lmxvrea), entmp(100)
316 INTEGER MY_ILEN,MY_RLEN,LTABLE, LENI, LENR
317
318 INTEGER :: LEN_TMP_NAME
319 CHARACTER(len=2048) :: TMP_NAME
320 INTEGER, DIMENSION(NVOLU) :: NTRI
321 INTEGER :: II, NS_DIFF, ITMP
322 INTEGER :: MY_SIZE
323 INTEGER,DIMENSION(LTITLE) :: ITITLE
324 INTEGER :: SKEW_LEN
325 INTEGER, INTENT(IN) :: LIFLOW !< Size of IFLOW
326 INTEGER, INTENT(IN) :: LRFLOW !< Size of RFLOW
327 INTEGER, INTENT(IN), DIMENSION(LIFLOW) :: IFLOW
328 INTEGER, INTENT(IN), DIMENSION(LRFLOW) :: RFLOW
329 INTEGER :: NPT
330C-----------------------------------------------
331C Python interface
332C-----------------------------------------------
333 INTEGER, DIMENSION(:), ALLOCATABLE :: BUFFER
334 INTEGER :: BUFFER_SIZE
335C-----------------------------------------------
336C Restart size
337 INTEGER,INTENT(INOUT) :: RESTSIZE
338C-----------------------------------------------
339 DATA ijk/'I','J','K','L','M','N','O','p','q','r',
340 . 's','t','u','v','w','x','y','z','a','b',
341 . 'c','d','e','f','g','h'/
342C--------------------------------------
343C PREPARATION DES VARIABLES ENTIERES ET REELLES.
344C--------------------------------------
345 IPARI0 = IPARIT
346 SFR_ELEM = SIZE(NODES%BOUNDARY,1)
347 SIAD_ELEM = SIZE(NODES%BOUNDARY_ADD,1) * SIZE(NODES%BOUNDARY_ADD,2)
348 CALL WRCOMI(LMXVINT,LVARINT,TABVINT,1,MULTI_FVM,H3D_DATA,DYNAIN_DATA,
349 . INTERFACES%PARAMETERS,SENSORS,LOADS,GLOB_THERM,PBLAST)
350C
351 ENTMP(1) = OUTPUT%TH%WFEXT
352 ENTMP(2) = EHOUR
353 ENTMP(3) = ECONTV
354 ENTMP(4) = EPOR
355 ENTMP(5) = GLOB_THERM%HEAT_STORED
356 ENTMP(6) = GLOB_THERM%HEAT_MECA
357 ENTMP(7) = GLOB_THERM%HEAT_CONV
358 ENTMP(8) = GLOB_THERM%HEAT_RADIA
359 ENTMP(9) = GLOB_THERM%HEAT_FFLUX
360 ENTMP(10)= ECONTD
361 ENTMP(11)= ECONT_CUMU
362 IF(NSPMD > 1) CALL SPMD_GLOB_DSUM9(ENTMP,11)
363 IF(ISPMD/=0) THEN
364 OUTPUT%TH%WFEXT = ZERO
365 EHOUR = ZERO
366 ECONTV = ZERO
367 EPOR = ZERO
368 GLOB_THERM%HEAT_STORED = ZERO
369 GLOB_THERM%HEAT_MECA = ZERO
370 GLOB_THERM%HEAT_CONV = ZERO
371 GLOB_THERM%HEAT_RADIA = ZERO
372 GLOB_THERM%HEAT_FFLUX = ZERO
373 ECONTD = ZERO
374 ECONT_CUMU = ZERO
375 ELSE
376 OUTPUT%TH%WFEXT = ENTMP(1)
377 EHOUR = ENTMP(2)
378 ECONTV= ENTMP(3)
379 EPOR = ENTMP(4)
380 GLOB_THERM%HEAT_STORED = ENTMP(5)
381 GLOB_THERM%HEAT_MECA = ENTMP(6)
382 GLOB_THERM%HEAT_CONV = ENTMP(7)
383 GLOB_THERM%HEAT_RADIA = ENTMP(8)
384 GLOB_THERM%HEAT_FFLUX = ENTMP(9)
385 ECONTD = ENTMP(10)
386 ECONT_CUMU = ENTMP(11)
387 ENDIF
388C
389 IF(ALE%GRID%NWALE == 2) THEN
390 ENTMP(1) = ALE%GRID%VGZ
391 IF(NSPMD > 1) CALL SPMD_GLOB_DMIN9(ENTMP,1)
392 IF(ISPMD==0) ALE%GRID%VGZ = ENTMP(1)
393 ENDIF
394C
395 CALL WRCOMR(LMXVREA,LVARREA,TABVREA,DYNAIN_DATA,INTERFACES%PARAMETERS,
396 . OUTPUT,GLOB_THERM)
397C--------------------------------------
398C OPEN
399C--------------------------------------
400 WRITE(CHRUNR,'(i4.4)')IRUN
401 WRITE(PROCNAM,'(i4.4)')ISPMD+1
402 FILNAM=ROOTNAM(1:ROOTLEN)//'_'//CHRUNR//'_'//PROCNAM
403 WRITE(PLAST,'(i4.4)')NSPMD
404 FILNAMG=ROOTNAM(1:ROOTLEN)//'_'//CHRUNR//'_[0001-'//PLAST//']'
405 LENG = ROOTLEN+17
406 LEN = ROOTLEN + 10
407 FILNAMR = FILNAM
408 IFIL = 2
409 IF(ICH/=0)IFIL = 41
410.AND. IF(MULTIREST/=0MCHECK==0)THEN
411 IRPREV = 1 + MOD(IRPREV,MULTIREST)
412 FILNAM=FILNAM(1:LEN)//'_'//IJK(IRPREV)
413 LEN = LEN+2
414 FILNAMG=FILNAMG(1:LENG)//'_'//IJK(IRPREV)
415 LENG = LENG+2
416 ENDIF
417 FILNAM=FILNAM(1:LEN)//'.rst'
418 LEN = LEN +4
419 FILNAMG=FILNAMG(1:LENG)//'.rst'
420 LENG = LENG+4
421
422 LEN_TMP_NAME = OUTFILE_NAME_LEN + LEN
423 TMP_NAME=OUTFILE_NAME(1:OUTFILE_NAME_LEN)//FILNAM(1:LEN)
424
425 DO I = 1, LEN_TMP_NAME
426 IFILNAM(I) = ICHAR(TMP_NAME(I:I))
427 END DO
428 CALL CUR_FIL_C(IFIL)
429 IF (IRFORM/5==2) THEN
430 CALL OPEN_C(IFILNAM,LEN_TMP_NAME,0)
431 ELSEIF (IRFORM/5==3) THEN
432 CALL OPEN_C(IFILNAM,LEN_TMP_NAME,3)
433 ELSEIF (IRFORM/5==4) THEN
434 CALL OPEN_C(IFILNAM,LEN_TMP_NAME,6)
435 ENDIF
436 DO I = 1, LEN
437 IFILNAM(I) = ICHAR(FILNAM(I:I))
438 END DO
439 CALL WRITE_C_C(IFILNAM,LEN)
440C--------------------------------------
441C Deck title
442C--------------------------------------
443 DO I=1,LTITLE
444 ITITLE(I) = ICHAR( NAMES_AND_TITLES%TITLE(I:I) )
445 ENDDO
446 CALL WRITE_I_C(ITITLE,LTITLE)
447C--------------------------------------
448C ECRITURE DU HEADER.
449C--------------------------------------
450C RADIOSS FILE R/W
451 TABHEAD(1) =IRADIOS
452C RESTART FILE
453 TABHEAD(2) =IRESFIL
454C ITESTV
455 TABHEAD(3) =ITESTV
456C THIS RUN NUMBER
457 TABHEAD(4) =IRUN
458C CODE FOR THIS RUN (-1:UNKNOWN,0:STARTER,1:ENGINE,2:MODIF)
459 ICODRUN =1
460 TABHEAD(5) =ICODRUN
461C CODVERS FOR THIS RUN
462 TABHEAD(6) =CODVERS
463C MINOR VERSION CODE FOR THIS RUN
464 TABHEAD(7) =IMINVER
465C SOURCE VERSION CODE FOR THIS RUN
466 TABHEAD(8) =ISRCVER
467C INPUT VERSION FOR THIS RUN
468 TABHEAD(9) =INVERS
469C STARTER CODVERS
470 TABHEAD(10)=SCODVER
471C STARTER MINOR VERSION CODE.
472 TABHEAD(11)=SMINVER
473C STARTER SOURCE VERSION CODE.
474 TABHEAD(12)=SSRCVER
475C STARTER INPUT VERSION
476 TABHEAD(13)=INVSTR
477C
478 TABHEAD(14) =LVARINT
479 TABHEAD(15)=LVARREA
480 CALL WRITE_I_C(LHEADER, 1)
481 CALL WRITE_I_C(TABHEAD, LHEADER)
482C--------------------------------------
483C ECRITURE DES VARIABLES ENTIERES
484C--------------------------------------
485 CALL WRITE_I_C(TABVINT,LVARINT)
486C--------------------------------------
487C WRITE CHECKSUM DIGEST
488C--------------------------------------
489 CALL checksum_restart_write(OUTPUT%CHECKSUM)
490C--------------------------------------
491C ECRITURE DES ENTIERS
492C--------------------------------------
493 LEN_G = NPROPGI*NUMGEO
494 LEN_M = NPROPMI*NUMMAT
495 LEN_S = NPART
496 CALL WRITE_I_C(NODES%NODGLOB,NODES%NUMNOD)
497
498 CALL WRITE_I_C(NODES%MAIN_PROC,SWEIGHT)
499
500 CALL WRITE_I_C(NODES%WEIGHT,SWEIGHT)
501
502 CALL WRITE_I_C(NODES%ICODE,SICODE)
503
504 CALL WRITE_I_C(NODES%ISKEW,SISKEW)
505
506 CALL WRITE_I_C(ISKWN,SISKWN)
507
508 CALL WRITE_I_C(IFRAME,SIFRAME)
509
510 CALL WRITE_I_C(NETH,SNETH)
511
512 CALL WRITE_I_C(IBCSLAG,SIBCSLAG)
513
514 CALL WRITE_I_C(IPART,SIPART)
515
516 CALL WRITE_I_C(NOM_OPT,SNOM_OPT)
517
518 CALL PYTHON_SERIALIZE(PYTHON,BUFFER, BUFFER_SIZE)
519 CALL WRITE_I_C(BUFFER, BUFFER_SIZE)
520
521 CALL WRITE_I_C(NPC,SNPC)
522
523 CALL WRITE_I_C(IXTG,SIXTG)
524
525 CALL WRITE_I_C(IXTG1,SIXTG1)
526
527 CALL WRITE_I_C(IXS,SIXS)
528
529 CALL WRITE_I_C(IXQ,SIXQ)
530
531 CALL WRITE_I_C(ELEMENTS%SHELL%IXC,SIXC)
532
533 CALL WRITE_I_C(IXT,SIXT)
534
535 CALL WRITE_I_C(IXP,SIXP)
536
537 CALL WRITE_I_C(IXR,SIXR)
538
539 CALL WRITE_I_C(NODES%ITAB,SITAB)
540
541 CALL WRITE_I_C(NODES%ITABM1,SITABM1)
542
543 CALL WRITE_I_C(GJBUFI,SGJBUFI)
544
545 CALL WRITE_I_C(ALE_CONNECTIVITY%NALE,ALE%GLOBAL%SNALE)
546
547 IF (IALE + IEULER + IALELAG + GLOB_THERM%ITHERM /= 0) THEN
548 ITMP = SIZE(ALE_CONNECTIVITY%ee_connect%iad_connect)
549 CALL WRITE_I_C(ITMP, 1)
550 CALL WRITE_I_C(ALE_CONNECTIVITY%ee_connect%iad_connect, ITMP)
551
552 ITMP = SIZE(ALE_CONNECTIVITY%ee_connect%connected)
553 CALL WRITE_I_C(ITMP, 1)
554 CALL WRITE_I_C(ALE_CONNECTIVITY%ee_connect%connected, ITMP)
555
556 ITMP = SIZE(ALE_CONNECTIVITY%ee_connect%type)
557 CALL WRITE_I_C(ITMP, 1)
558 CALL WRITE_I_C(ALE_CONNECTIVITY%ee_connect%type, ITMP)
559
560 ITMP = SIZE(ALE_CONNECTIVITY%ee_connect%iface2)
561 CALL WRITE_I_C(ITMP, 1)
562 CALL WRITE_I_C(ALE_CONNECTIVITY%ee_connect%iface2, ITMP)
563 ENDIF
564
565 CALL WRITE_I_C(ID_GLOBAL_VOIS,ALE%GLOBAL%SIELVS)
566
567 CALL WRITE_I_C(FACE_VOIS,ALE%GLOBAL%SIELVS)
568
569.AND..OR..OR. IF(IALE > 0 ALE%GRID%NWALE == 6 INTER18_AUTOPARAM == 1 INTER18_IS_VARIABLE_GAP_DEFINED) THEN
570 CALL WRITE_I_C(NE_NERCVOIS, NSPMD + 1)
571 CALL WRITE_I_C(NE_LERCVOIS, NE_SLERCVOIS)
572 CALL WRITE_I_C(NE_NESDVOIS, NSPMD + 1)
573 CALL WRITE_I_C(NE_LESDVOIS, NE_SLESDVOIS)
574 ENDIF
575.AND..OR..OR. IF (IALE > 0 (ALE%GRID%NWALE < 2 ALE%GRID%NWALE == 5 ALE%GRID%NWALE == 7)) THEN
576 CALL WRITE_I_C(ALE_CONNECTIVITY%NN_CONNECT%IAD_CONNECT, NUMNOD + 1)
577 CALL WRITE_I_C(ALE_CONNECTIVITY%NN_CONNECT%CONNECTED, ALE_CONNECTIVITY%NN_CONNECT%IAD_CONNECT(NUMNOD + 1))
578 ENDIF
579.AND..OR..OR. IF (IALE > 0 ALE%GRID%NWALE == 6 INTER18_AUTOPARAM == 1 INTER18_IS_VARIABLE_GAP_DEFINED) THEN
580 CALL WRITE_I_C(ALE_CONNECTIVITY%NE_CONNECT%IAD_CONNECT, NUMNOD + 1)
581 CALL WRITE_I_C(ALE_CONNECTIVITY%NE_CONNECT%CONNECTED,
582 . ALE_CONNECTIVITY%NE_CONNECT%IAD_CONNECT(NUMNOD + 1))
583 ENDIF
584
585 NS_DIFF = 0
586 IF (MULTI_FVM%NS_DIFF) THEN
587 NS_DIFF = 1
588 ENDIF
589 CALL WRITE_I_C(NS_DIFF, 1)
590 IF (NS_DIFF == 1) THEN
591 CALL WRITE_I_C(ALE_CONNECTIVITY%IDGLOB%ID,
592 . NUMELS + NSVOIS + NUMELQ + NQVOIS + NUMELTG + NTGVOIS)
593 ENDIF
594
595 CALL WRITE_I_C(IFILL,SIFILL)
596
597 CALL WRITE_I_C(IMS,SIMS)
598
599 CALL W_SUBSET_STR(SUBSET)
600
601 CALL W_GROUP_STR
602
603 CALL W_SURF_STR(IGRSURF)
604
605 CALL W_LINE_STR(IGRSLIN)
606
607 CALL WRITE_I_C(KXX,SKXX)
608
609 CALL WRITE_I_C(IXX,SIXX)
610
611 CALL WRITE_I_C(KXSP,SKXSP)
612
613 CALL WRITE_I_C(IXSP,SIXSP)
614
615 CALL WRITE_I_C(NOD2SP,SNOD2SP)
616
617 CALL WRITE_I_C(ISPSYM,SISPSYM)
618
619 CALL WRITE_I_C(ISPCOND,SISPCOND)
620
621 CALL WRITE_I_C(ISPHIO,SISPHIO)
622
623 CALL WRITE_I_C(LPRTSPH,SLPRTSPH)
624
625 CALL WRITE_I_C(LONFSPH,SLONFSPH)
626
627 CALL WRITE_I_C(IBUFSSG_IO,SIBUFSSG_IO)
628
629 IF(NSPHSOL/=0)THEN
630
631 CALL WRITE_I_C(SPH2SOL,NUMSPH)
632
633 CALL WRITE_I_C(SOL2SPH,2*NUMELS8)
634
635 CALL WRITE_I_C(IRST,3*NSPHSOL)
636
637 CALL WRITE_I_C(SOL2SPH_TYP,NUMELS8)
638 END IF
639
640 CALL WRITE_I_C(IBCL,SIBCL)
641
642 IF (NINTLOADP>0) THEN
643 CALL WRITE_I_C(KLOADPINTER, NINTER+1)
644 CALL WRITE_I_C(LOADPINTER,NINTER*NLOADP_HYD)
645 ENDIF
646
647 CALL WRITE_I_C(IBFV,SIBFV)
648
649 CALL WRITE_I_C(IECRAN,SIECRAN)
650
651 CALL WRITE_I_C(ILAS,SILAS)
652
653 ! -----------------------------
654 ! EBCS option
655 CALL WRITE_I_C(EBCS_TAB%nebcs, 1) ! total number of EBCS
656 CALL WRITE_I_C(EBCS_TAB%nebcs_fvm, 1) ! number of multifluid ebcs
657 CALL WRITE_I_C(EBCS_TAB%nebcs_parallel, 1) ! number of parallel ebcs
658 CALL WRITE_I_C(EBCS_TAB%nebcs_loc, 1) ! number of other ebcs
659 LENI = 0
660 LENR = 0
661 IF (EBCS_TAB%nebcs > 0) THEN
662 ! write the type of /EBCS ( /EBCS/NRF --> typ = 10) ( /EBCS/PROPELLANT --> typ = 11)
663 CALL WRITE_I_C(EBCS_TAB%my_typ,EBCS_TAB%nebcs)
664 ENDIF
665 ! -------------
666 ! write the data of /EBCS options
667 IF (EBCS_TAB%nebcs_loc +EBCS_TAB%nebcs_parallel + EBCS_TAB%nebcs_fvm> 0) THEN
668 DO II = 1, EBCS_TAB%nebcs_fvm + EBCS_TAB%nebcs_loc + EBCS_TAB%nebcs_parallel
669 CALL EBCS_TAB%tab(II)%poly%write_common_data(leni, lenr)
670 CALL EBCS_TAB%tab(II)%poly%write_data(leni, lenr)
671 ENDDO
672 ENDIF
673 ! -----------------------------
674
675 CALL WRITE_I_C(LACCELM,SLACCELM)
676
677 CALL WRITE_I_C(LGAUGE,3*NBGAUGE)
678
679 CALL WRITE_I_C(NNLINK,SNNLINK)
680
681 CALL WRITE_I_C(LNLINK,SLNLINK)
682
683 CALL USERWI_WRITE(USER_WINDOWS,ISPMD,NSPMD,NUMNOD)
684
685 CALL WRITE_I_C(IPARG,SIPARG)
686
687 CALL WRITE_I_C(DD_IAD,SDD_IAD)
688
689 CALL WRITE_I_C(IGRV,SIGRV)
690
691 CALL WRITE_I_C(LGRAV,SLGRAV)
692
693 CALL WRITE_I_C(IEXLNK,SIEXLNK)
694
695 CALL WRITE_I_C(IBVEL,SIBVEL)
696
697 CALL WRITE_I_C(LBVEL,SLBVEL)
698
699 CALL WRITE_I_C(IRBE2,SIRBE2)
700
701 CALL WRITE_I_C(LRBE2,SLRBE2)
702
703 CALL WRITE_I_C(RBE3%IRBE3,RBE3%NRBE3*irbe3_variables)
704
705 CALL WRITE_I_C(RBE3%LRBE3,RBE3%lrbe3_sz)
706
707 CALL WRITE_I_C(IACTIV,SIACTIV)
708
709 CALL WRITE_I_C(IBMPC,SIBMPC)
710
711 CALL WRITE_I_C(KINET,SKINET)
712
713 CALL WRITE_I_C(FASOLFR,SFASOLFR)
714
715 CALL WRITE_I_C(SEGQUADFR,SSEGQUADFR)
716
717 CALL WRITE_I_C(IPARI,SIPARI)
718
719c CALL WRITE_I_C(INBUF,SINBUF)
720
721 CALL W_BUFBRIC_22() !inter22
722
723 !write new structure INTBUF_TAB
724 CALL WRITE_INTBUF(INTBUF_TAB)
725
726 CALL WRITE_I_C(NPRW,SNPRW)
727
728 CALL WRITE_I_C(LPRW,SLPRW)
729
730 CALL WRITE_I_C(ICONX,SICONX)
731
732 CALL WRITE_I_C(MADPRT,SMADPRT)
733
734 CALL WRITE_I_C(MADSH4,SMADSH4)
735
736 CALL WRITE_I_C(MADSH3,SMADSH3)
737
738 CALL WRITE_I_C(MADSOL,SMADSOL)
739
740 CALL WRITE_I_C(MADNOD,SMADNOD)
741
742 CALL WRITE_I_C(MADCLNOD,MADCLNODS)
743
744 CALL WRITE_I_C(MADFAIL,SMADFAIL)
745
746 CALL WRITE_I_C(MADIDX,SMADIDX)
747
748 CALL WRITE_I_C(NPBY,SNPBY)
749
750 CALL WRITE_I_C(NPBYL,SNPBYL)
751
752 CALL WRITE_I_C(LPBY,SLPBY)
753
754 CALL WRITE_I_C(LPBYL,SLPBYL)
755
756 CALL WRITE_I_C(LRIVET,SLRIVET)
757
758 CALL WRITE_I_C(NSTRF,SNSTRF)
759
760 CALL WRITE_I_C(NOM_SECT,SNOM_SECT)
761
762 CALL WRITE_JOINT()
763
764 CALL WRITE_I_C(NODPOR,SNODPOR)
765
766 CALL WRITE_I_C(MONVOL,SMONVOL)
767
768 DO II = 1, NVOLU
769 NTRI(II) = T_MONVOL(II)%NB_FILL_TRI
770 ENDDO
771
772 CALL WRITE_I_C(NTRI, NVOLU)
773 DO II = 1, NVOLU
774 IF (NTRI(II) > 0) THEN
775 CALL WRITE_I_C(T_MONVOL(II)%FILL_TRI(1:3* NTRI(II)), 3* NTRI(II))
776 ENDIF
777 ENDDO
778
779 CALL WRITE_I_C(LAGBUF,SLAGBUF)
780
781 IF(NS10E > 0)THEN
782 CALL WRITE_I_C(ICNDS10,3*NS10E)
783 ENDIF
784
785 CALL WRITE_TH_RESTART(OUTPUT%TH) ! Write Time History Buffer
786
787 CALL THSURF_WRITE_RESTART(OUTPUT%TH%TH_SURF,2)
788
789 CALL WRITE_I_C(FR_MV,SFR_MV)
790
791 CALL WRITE_I_C(NODES%BOUNDARY_ADD,SIAD_ELEM)
792
793 CALL WRITE_I_C(IAD_RBY,SIAD_RBY)
794
795 CALL WRITE_I_C(IAD_RBY2,SIAD_RBY2)
796
797 CALL WRITE_I_C(IAD_I2M,SIAD_I2M)
798
799 CALL WRITE_I_C(IADCJ,SIADCJ)
800
801 CALL WRITE_I_C(IAD_RBM,SIAD_RBM)
802
803 CALL WRITE_I_C(IAD_RBM2,SIAD_RBM2)
804
805 CALL WRITE_I_C(IAD_RBE2,SIAD_RBE2)
806
807 CALL WRITE_I_C(rbe3%mpi%IAD_RBE3,NSPMD+1)
808
809 CALL WRITE_I_C(IAD_SEC,SIAD_SEC)
810
811 CALL WRITE_I_C(IAD_CUT,SIAD_CUT)
812C
813 CALL WRITE_I_C(IAD_RBYM,SIAD_RBYM)
814
815 CALL WRITE_I_C(IAD_RBYM2,SIAD_RBYM2)
816
817 CALL WRITE_I_C(NODES%BOUNDARY,SFR_ELEM)
818
819 CALL WRITE_I_C(FR_RBY,SFR_RBY)
820
821 CALL WRITE_I_C(FR_WALL,SFR_WALL)
822
823 CALL WRITE_I_C(FR_RBY2,SFR_RBY2)
824
825 CALL WRITE_I_C(FR_I2M,SFR_I2M)
826
827 CALL WRITE_I_C(FR_LL,SFR_LL)
828
829 CALL WRITE_I_C(FR_CJ,SFR_CJ)
830
831 CALL WRITE_I_C(FR_RBM,SFR_RBM)
832
833 CALL WRITE_I_C(FR_RBM2,SFR_RBM2)
834
835 CALL WRITE_I_C(FR_RBE2,SFR_RBE2)
836
837 CALL WRITE_I_C(RBE3%mpi%FR_RBE3,RBE3%mpi%fr_rbe3_sz)
838
839 CALL WRITE_I_C(RBE3%mpi%FR_RBE3MP,RBE3%mpi%fr_rbe3_sz)
840
841 CALL WRITE_I_C(FR_SEC,SFR_SEC)
842
843 CALL WRITE_I_C(FR_CUT,SFR_CUT)
844
845 CALL WRITE_I_C(RG_CUT,SRG_CUT)
846
847 CALL WRITE_I_C(FR_MAD,SFR_MAD)
848
849 CALL WRITE_I_C(FR_I18,SFR_I18)
850
851 CALL WRITE_I_C(DD_R2R,SDD_R2R)
852
853 CALL WRITE_I_C(DD_R2R_ELEM,SDD_R2R_ELEM)
854
855 CALL WRITE_I_C(FR_RBYM,SFR_RBYM)
856
857 CALL WRITE_I_C(FR_RBYM2,SFR_RBYM2)
858
859 CALL WRITE_I_C(ADDCSRECT,NUMNOR+1)
860
861 CALL WRITE_I_C(FR_NOR,NBDDNORT)
862
863 CALL WRITE_I_C(IAD_FRNOR,(NSPMD+1)*NINTER25)
864
865 CALL WRITE_I_C(PROCNOR,NBCCNOR)
866
867 CALL WRITE_I_C(INTERFACES%SPMD_ARRAYS%FR_EDG,2*NBDDEDGT)
868
869 CALL WRITE_I_C(INTERFACES%SPMD_ARRAYS%IAD_FREDG,(NSPMD+1)*NINTER25)
870
871 CALL WRITE_I_C(ISKWP,SISKWP)
872
873 CALL WRITE_I_C(NSKWP,SNSKWP)
874
875 IF(SNSKWP>0) CALL WRITE_I_C(ISKWP_L,NSKWP(ISPMD+1))
876
877 CALL WRITE_I_C(ISENSP,SISENSP)
878
879 CALL WRITE_I_C(NSENSP,SNSENSP)
880
881 CALL WRITE_I_C(IACCP,SIACCP)
882
883 CALL WRITE_I_C(NACCP,SNACCP)
884
885 CALL WRITE_I_C(IGAUP,SIGAUP)
886
887 CALL WRITE_I_C(NGAUP,SNGAUP)
888
889 CALL WRITE_I_C(FR_LAGF,SFR_LAGF)
890
891 CALL WRITE_I_C(NEWFRONT,SNEWFRONT)
892
893 CALL WRITE_I_C(NBRCVOIS,SNBRCVOIS)
894
895 CALL WRITE_I_C(LNRCVOIS,SLNRCVOIS)
896
897 CALL WRITE_I_C(NBSDVOIS,SNBSDVOIS)
898
899 CALL WRITE_I_C(LNSDVOIS,SLNSDVOIS)
900
901 CALL WRITE_I_C(NERCVOIS,SNERCVOIS)
902
903 CALL WRITE_I_C(LERCVOIS,SLERCVOIS)
904
905 CALL WRITE_I_C(NESDVOIS,SNESDVOIS)
906
907 CALL WRITE_I_C(LESDVOIS,SLESDVOIS)
908
909 CALL WRITE_I_C(NPSEGCOM,SNPSEGCOM)
910
911 CALL WRITE_I_C(LSEGCOM,SLSEGCOM)
912
913 CALL WRITE_I_C(NPORGEO,SNPORGEO)
914
915 CALL WRITE_I_C(LNODPOR,SLNODPOR)
916
917 CALL WRITE_I_C(LLAGF,SLLAGF)
918
919 IF(ICRACK3D > 0)THEN
920 CALL WRITE_I_C(IAD_EDGE,SIAD_EDGE)
921 CALL WRITE_I_C(FR_EDGE,SFR_EDGE)
922 CALL WRITE_I_C(FR_NBEDGE,SFR_NBEDGE)
923 ENDIF
924
925c IF(NS10E > 0)THEN
926 CALL WRITE_I_C(IAD_CNDM,SIAD_CNDM)
927 CALL WRITE_I_C(FR_CNDM,SFR_CNDM)
928c ENDIF
929
930 IF(IPARIT==1)THEN
931 CALL WRITE_I_C(ELEMENTS%PON%ADSKY,NUMNOD+1)
932 CALL WRITE_I_C(ELEMENTS%PON%PROCNE,SIZE(ELEMENTS%PON%PROCNE))
933 IF(I2NSNT>0)THEN
934 CALL WRITE_I_C(ADDCNI2,NUMNOD+1)
935 ENDIF
936 CALL WRITE_I_C(PROCNI2,LCNI2)
937 IF(NS10E>0) THEN
938 CALL WRITE_I_C(ADDCNCND,SADDCNCND)
939 ENDIF
940 CALL WRITE_I_C(PROCNCND,SPROCNCND)
941 CALL WRITE_I_C(ELEMENTS%PON%IADS ,SIZE(ELEMENTS%PON%IADS)) !< 1 ; 8xNUMELS solid indexes to FSKY
942 CALL WRITE_I_C(ELEMENTS%PON%IADS10 ,SIZE(ELEMENTS%PON%IADS10 )) !< 6* NUMELS10
943 CALL WRITE_I_C(ELEMENTS%PON%IADS20 ,SIZE(ELEMENTS%PON%IADS20 )) ! 12*NUMELS20
944 CALL WRITE_I_C(ELEMENTS%PON%IADS16 ,SIZE(ELEMENTS%PON%IADS16 )) ! 8*NUMELS16
945 CALL WRITE_I_C(ELEMENTS%PON%IADQ ,SIZE(ELEMENTS%PON%IADQ )) !<i87b ; quad i87b
946 CALL WRITE_I_C(ELEMENTS%PON%IADC ,SIZE(ELEMENTS%PON%IADC )) !<i87C shell (4 nodes) indexes to FSKY
947 CALL WRITE_I_C(ELEMENTS%PON%IAD_TRUSS ,SIZE(ELEMENTS%PON%IAD_TRUSS)) !< I87D 2xNUMELT
948 CALL WRITE_I_C(ELEMENTS%PON%IAD_BEAM ,SIZE(ELEMENTS%PON%IAD_BEAM )) !< I87E 2xNUMELP
949 CALL WRITE_I_C(ELEMENTS%PON%IAD_SPRING ,SIZE(ELEMENTS%PON%IAD_SPRING )) !<F 3xNUMELR
950 CALL WRITE_I_C(ELEMENTS%PON%IAD_TG ,SIZE(ELEMENTS%PON%IAD_TG )) !<G 3xNUMELTG
951 CALL WRITE_I_C(ELEMENTS%PON%IAD_TG6 ,SIZE(ELEMENTS%PON%IAD_TG6 )) !<H 3xNUMELTG6
952 CALL WRITE_I_C(ELEMENTS%PON%IAD_MV ,SIZE(ELEMENTS%PON%IAD_MV )) !I 4xNSKYMV0
953 CALL WRITE_I_C(ELEMENTS%PON%IAD_CONLD ,SIZE(ELEMENTS%PON%IAD_CONLD)) !<J 4xNCONLD
954 CALL WRITE_I_C(ELEMENTS%PON%IAD_CONV ,SIZE(ELEMENTS%PON%IAD_CONV)) !<K 4x glob_therm%NCONV
955 CALL WRITE_I_C(ELEMENTS%PON%IAD_RADIA ,SIZE(ELEMENTS%PON%IAD_RADIA)) !<L 4x glob_therm%Numrada
956 CALL WRITE_I_C(ELEMENTS%PON%IAD_LOADP ,SIZE(ELEMENTS%PON%IAD_LOADP)) !<M SLLOADP
957 CALL WRITE_I_C(ELEMENTS%PON%IAD_FXFLUX ,SIZE(ELEMENTS%PON%IAD_FXFLUX)) !<N 4x glob_therm%nfxflux
958
959
960C CALL WRITE_I_C(IADS,NISKY0)
961 CALL WRITE_I_C(IADWAL,NSKYRW0)
962 CALL WRITE_I_C(IADRBK,NSKYRBK0)
963 CALL WRITE_I_C(IADI2,NISKYI2)
964 CALL WRITE_I_C(IADCND,SIADCND)
965 CALL WRITE_I_C(IADMV2,NSKYMV0)
966 CALL WRITE_I_C(IADMV3,NSKYMVC0)
967 CALL WRITE_I_C(IADLL,NSKYLL0)
968 CALL WRITE_I_C(IADRBM,NSKYRBM0)
969 CALL WRITE_I_C(IADI18,NSKYI18)
970 CALL WRITE_I_C(IADRBMK,NSKYRBMK0)
971C
972C ply xfem
973C
974 IF(IPLYXFEM > 0) THEN
975 CALL WRITE_I_C(ADSKY_PXFEM,NPLYXFE+1 )
976C lecture directe de PROCNE
977 CALL WRITE_I_C(PROCNE_PXFEM,LCNEPXFEM)
978 CALL WRITE_I_C(IADC_PXFEM,4*EPLYXFE)
979 ENDIF
980C
981C xfem for layered shell (cracks)
982C
983 IF(ICRACK3D > 0) THEN
984 CALL WRITE_I_C(ADSKY_CRKXFEM,NCRKXFE+1)
985 CALL WRITE_I_C(CNE_CRKXFEM,LCNECRKXFEM)
986 CALL WRITE_I_C(PROCNE_CRKXFEM,LCNECRKXFEM)
987 CALL WRITE_I_C(IADC_CRKXFEM,4*ECRKXFEC+3*ECRKXFETG)
988 CALL WRITE_I_C(CRKNODIAD,LCNECRKXFEM)
989 ENDIF
990 ENDIF
991 ! ---------------
992 ! ebcs option : adress of FSKY array
993 IF(EBCS_TAB%nebcs_parallel>0) THEN
994 DO I=1,EBCS_TAB%nebcs
995.or. IF(EBCS_TAB%my_typ(I)==10 EBCS_TAB%my_typ(I)==11) THEN
996 MY_SIZE = EBCS_TAB%tab(I)%poly%nb_elem
997 CALL WRITE_I_C(EBCS_PARITHON(I)%ELEM_ADRESS,4*MY_SIZE)
998 ENDIF
999 ENDDO
1000 ENDIF
1001 ! ---------------
1002
1003 CALL COMPRESS_I_NNZ(IGEO,LEN_G)
1004 CALL COMPRESS_I_NNZ(IPM,LEN_M)
1005
1006 CALL WRITE_I_C(ICONTACT ,SICONTACT)
1007 CALL WRITE_I_C(IPART_STATE,LEN_S)
1008
1009 IF(NADMESH /= 0)THEN
1010 CALL WRITE_I_C(SH4TREE,KSH4TREE*NUMELC)
1011 CALL WRITE_I_C(SH3TREE,KSH3TREE*NUMELTG)
1012 CALL WRITE_I_C(IPADMESH,KIPADMESH*NPART)
1013 LEN=ABS(LSH4TRIM)
1014 CALL WRITE_I_C(SH4TRIM,LEN)
1015 LEN=ABS(LSH3TRIM)
1016 CALL WRITE_I_C(SH3TRIM,LEN)
1017 END IF
1018C--------------------------------------
1019C ecriture tableaux additionnels frontieres interfaces (partie entiere)
1020C--------------------------------------
1021 CALL SPMD_SAVEFI(IPARI,1,INTBUF_TAB,SENSORS%NSENSOR,SENSORS%SENSOR_TAB,
1022 . INTERFACES%PARAMETERS)
1023C--------------------------------------
1024C ecriture tableaux additionnels frontieres sph (partie entiere)
1025C--------------------------------------
1026 CALL SPMD_SAVESPH(1)
1027C--------------------------------------
1028C structures int 21
1029C--------------------------------------
1030 IF(NINTSTAMP /= 0)THEN
1031 CALL INTSTAMP_WRESTI(INTSTAMP)
1032 END IF
1033C--------------------------------------
1034C Interface friction buffer (integer )
1035C--------------------------------------
1036 IF(NINTERFRIC /= 0)THEN
1037 CALL INTFRIC_WRESTI(INTBUF_FRIC_TAB,NINTERFRIC)
1038 END IF
1039C--------------------------------------
1040C structure tables (partie entiere)
1041C--------------------------------------
1042 IF(NTABLE /= 0)THEN
1043 CALL TABLE_WRESTI(TABLE, LTABLE)
1044 END IF
1045C--------------------------------------
1046 CALL WRITE_I_C(ITHVAR,SITHVAR)
1047C--------------------------------------
1048 IF (NLOADC>0)THEN
1049 CALL WRITE_I_C(ICFIELD,SIZFIELD*NLOADC)
1050 CALL WRITE_I_C(LCFIELD,SLCFIELD)
1051 ENDIF
1052 IF (NLOADP>0)THEN
1053 CALL WRITE_I_C(ILOADP,SIZLOADP*NLOADP)
1054 CALL WRITE_I_C(LLOADP,SLLOADP)
1055 ENDIF
1056 IF (PBLAST%NLOADP_B>0)THEN
1057 CALL PBLAST_WRITE_ENGINE(PBLAST)
1058 ENDIF
1059C--------------------------------------
1060 IF (LOADS%NLOAD_CYL > 0) THEN
1061 CALL WRITE_PCYL(LOADS)
1062 ENDIF
1063C--------------------------------------
1064 IF(ICRACK3D > 0)THEN
1065 CALL WRITE_I_C(IBORDNODE,SIBORDNODE)
1066 CALL WRITE_I_C(IEDGESH,SIEDGESH)
1067 CALL WRITE_I_C(NODEDGE,2*NUMEDGES)
1068 CALL WRITE_I_C(IEDGE,NUMEDGES)
1069 CALL WRITE_I_C(NODGLOBXFE,SNODGLOBXFE)
1070 END IF
1071C--------------------------------------
1072 IF(NUMELIG3D > 0)THEN
1073 CALL WRITE_I_C(KXIG3D,SKXIG3D)
1074
1075 CALL WRITE_I_C(IXIG3D,SIXIG3D)
1076 ENDIF
1077C----------------------------------
1078 CALL WRITE_I_C(TAG_SKINS6,NUMELS)
1079C--------------------------------------
1080C /BCS/CYCLIC
1081C--------------------------------------
1082 IF(NBCSCYC > 0)THEN
1083 CALL WRITE_I_C(IBCSCYC,SIBCSCYC)
1084 CALL WRITE_I_C(LBCSCYC,SLBCSCYC)
1085 ENDIF
1086C--------------------------------------
1087C /BCS/WALL
1088C--------------------------------------
1089 ITMP = BCS%NUM_WALL
1090 CALL WRITE_I_C(ITMP,1)
1091 IF(BCS%NUM_WALL > 0)THEN
1092 DO I=1, BCS%NUM_WALL
1093 CALL WRITE_BCS_WALL(BCS%WALL(I))
1094 ENDDO
1095 ENDIF
1096C--------------------------------------
1097C ECRITURE DES VARIABLES REELLES
1098C--------------------------------------
1099 CALL WRITE_DB(TABVREA, LVARREA)
1100C--------------------------------------
1101C ECRITURE DES REELS
1102C--------------------------------------
1103 CALL WRITE_DB(NODES%X,SX)
1104
1105 CALL WRITE_DB(NODES%D,SD)
1106
1107 CALL WRITE_DB(NODES%V,SV)
1108
1109 CALL WRITE_DB(NODES%VR,SVR)
1110
1111 CALL WRITE_DB(NODES%DR,SDR)
1112
1113 CALL WRITE_DB(THKE,STHKE)
1114
1115 CALL WRITE_DB(DAMPR,SDAMPR)
1116
1117 CALL WRITE_DB(DAMP,SDAMP)
1118
1119 CALL WRITE_DB(NODES%MS,SMS)
1120
1121 IF (N2D >0) THEN
1122 CALL WRITE_DB(MS_2D,NUMNOD)
1123 ENDIF
1124
1125 CALL WRITE_DB(NODES%IN,SIN)
1126
1127 CALL WRITE_DB(TF,STF)
1128
1129 CALL WRITE_DB(PM,SPM)
1130
1131 CALL WRITE_MATPARAM(MAT_ELEM)
1132
1133 CALL WRITE_ELGROUP_PARAM(MAT_ELEM%GROUP_PARAM,NGROUP)
1134
1135 SKEW_LEN = SKEWS%N_SKEW_VAR * SKEWS%TOTAL_SKEW_NUMBER
1136 CALL WRITE_DB(SKEWS%SKEW,SKEW_LEN)
1137
1138 CALL WRITE_DB(XFRAME,SXFRAME)
1139
1140 CALL COMPRESS_R_NNZ(GEO,SGEO)
1141
1142 CALL WRITE_DB(EANI,SEANI)
1143
1144 CALL WRITE_DB(BUFMAT,SBUFMAT)
1145
1146 CALL WRITE_DB(BUFGEO,SBUFGEO)
1147
1148 CALL WRITE_DB(BUFSF,SBUFSF)
1149
1150 CALL WRITE_DB(RBMPC,SRBMPC)
1151
1152 CALL WRITE_DB(GJBUFR,SGJBUFR)
1153
1154 CALL WRITE_DB(W,SW)
1155
1156 CALL WRITE_DB(VEUL,SVEUL)
1157
1158 IF (MULTI_FVM%IS_USED) THEN
1159 CALL WRITE_DB(MULTI_FVM%PRES_SHIFT, 1)
1160 IF (N2D == 0) THEN
1161 CALL WRITE_DB(MULTI_FVM%VEL(1, :), NUMELS)
1162 CALL WRITE_DB(MULTI_FVM%VEL(2, :), NUMELS)
1163 CALL WRITE_DB(MULTI_FVM%VEL(3, :), NUMELS)
1164 ELSE
1165 CALL WRITE_DB(MULTI_FVM%VEL(1, :), NUMELQ + NUMELTG)
1166 CALL WRITE_DB(MULTI_FVM%VEL(2, :), NUMELQ + NUMELTG)
1167 CALL WRITE_DB(MULTI_FVM%VEL(3, :), NUMELQ + NUMELTG)
1168 ENDIF
1169 ENDIF
1170
1171 CALL WRITE_DB(FILL,SFILL)
1172
1173 CALL WRITE_DB(DFILL,SDFILL)
1174
1175 CALL WRITE_DB(ALPH,SALPH)
1176
1177 CALL WRITE_DB(WB,SWB)
1178
1179 CALL WRITE_DB(DSAVE,SDSAVE)
1180
1181 CALL WRITE_DB(ASAVE,SASAVE)
1182
1183 CALL WRITE_DB(SPBUF,SSPBUF)
1184
1185 CALL WRITE_DB(VSPHIO,SVSPHIO)
1186
1187 CALL WRITE_DB(SPHVELN,SSPHVELN)
1188
1189 CALL WRITE_DB(MSNF,SMSNF)
1190
1191 CALL WRITE_DB(FORC,SFORC)
1192
1193 CALL WRITE_DB(VEL,SVEL)
1194
1195 CALL WRITE_DB(FSAV,SFSAV)
1196
1197 CALL WRITE_I_C(TAB_UMP,7*TAILLE)
1198
1199 CALL WRITE_I_C(POIN_UMP,NUMMAT)
1200
1201 CALL WRITE_DB(TAB_MAT,STAB_MAT)
1202
1203 CALL WRITE_DB(FZERO,SFZERO)
1204
1205 CALL WRITE_DB(XLAS,SXLAS)
1206
1207 CALL WRITE_DB(ACCELM,SACCELM)
1208
1209 CALL WRITE_DB(GAUGE,LLGAUGE*NBGAUGE)
1210
1211 CALL WRITE_SENSORS(SENSORS)
1212
1213 CALL WRITE_DB(FBVEL,SFBVEL)
1214
1215 CALL WRITE_DB(RBE3%FRBE3,RBE3%frbe3_sz)
1216
1217 CALL write_rrbe3pen(RBE3%PEN)
1218
1219 CALL WRITE_DB(FACTIV,LRACTIV*NACTIV)
1220
1221 CALL WRITE_DB(GRAV,SGRAV)
1222
1223 CALL WRITE_DB(FR_WAVE,SFR_WAVE)
1224
1225 CALL W_FAILWAVE(FAILWAVE)
1226
1227 CALL WRITE_NLOC_STRUCT(NLOC_DMG)
1228
1229 CALL WRITE_DB(PARTS0,SPARTS0)
1230
1231 CALL WRITE_DB(ELBUF,SELBUF)
1232
1233 FLAG_XFEM = 0
1234 CALL W_ELBUF_STR(IPARG,ELBUF_TAB,FLAG_XFEM)
1235
1236C if xfem
1237 IF (ICRACK3D > 0) THEN
1238 FLAG_XFEM = 1
1239 DO IXEL=1,NXEL
1240 CALL W_ELBUF_STR(IPARG,XFEM_TAB(1:NGROUP,IXEL),FLAG_XFEM)
1241 ENDDO
1242 ENDIF
1243
1244 CALL W_CLUSTER(CLUSTER)
1245
1246 CALL WRITE_DB(RWBUF,SRWBUF)
1247
1248 CALL WRITE_DB(RWSAV,SRWSAV)
1249
1250 CALL WRITE_DB(RBY,SRBY)
1251
1252 CALL WRITE_DB(RBYL,SRBYL)
1253
1254 CALL WRITE_DB(RIVET,SRIVET)
1255
1256 CALL WRITE_DB(SECBUF,SSECBUF)
1257
1258 CALL WRITE_DB(VOLMON,SVOLMON)
1259
1260 CALL WRITE_DB(LAMBDA,SLAMBDA)
1261
1262 CALL WRITE_DB(RCONX,SRCONX)
1263
1264 CALL WRITE_DB(RCONTACT,SRCONTACT)
1265 CALL WRITE_DB(ACONTACT,SRCONTACT)
1266 CALL WRITE_DB(PCONTACT,SRCONTACT)
1267C--------------------------------------
1268C ecriture tableaux additionnels frontieres interfaces (partie reelle)
1269C--------------------------------------
1270 CALL SPMD_SAVEFI(IPARI,2,INTBUF_TAB,SENSORS%NSENSOR,SENSORS%SENSOR_TAB,
1271 . INTERFACES%PARAMETERS)
1272C--------------------------------------
1273C ecriture tableaux additionnels frontieres sph (partie reelle)
1274C--------------------------------------
1275 CALL SPMD_SAVESPH(2)
1276C--------------------------------------
1277C ECRITURES FACULTATIVES
1278C--------------------------------------
1279.AND. IF (IRESMD==0NPSAV>=25) THEN
1280C on ramene PARTSAV sur le proc et on met a zero les autres
1281 IF(NSPMD > 1)
1282 . CALL SPMD_GLOB_DSUM9(PARTSAV,NPSAV*NPART)
1283 IF (ISPMD/=0)THEN
1284 DO M=1,NPSAV*NPART
1285 PARTSAV(M) = ZERO
1286 ENDDO
1287 ENDIF
1288 CALL WRITE_DB(PARTSAV,NPSAV*NPART)
1289 ENDIF
1290 IF(NNOISE>0)THEN
1291 CALL WRITE_I_C (IAF(IF01),2*NNOISE+10)
1292 CALL WRITE_DB(AF(MF01),6*NCNOIS*NNOISE+1)
1293 ENDIF
1294C-----
1295C Save A, AR to Restart RAD2MD
1296 IF (IRESMD==1) THEN
1297 CALL WRITE_DB(NODES%A,3*NUMNOD)
1298 CALL WRITE_DB(NODES%AR,3*NUMNOD)
1299C Save PARTSAV.
1300 CALL WRITE_DB(PARTSAV,NPSAV*NPART)
1301 ENDIF
1302C
1303 IF (IRESP == 1) THEN
1304 CALL WRITE_DPDB(NODES%XDP,3*NUMNOD)
1305 CALL WRITE_DPDB(NODES%DDP,3*NUMNOD)
1306 ENDIF
1307C besoin pour les check restart
1308C on a besoin car les restart sont les memes des check restart
1309 MY_ILEN = 4*NRLINK+NRLINK*(NSPMD+2)
1310 . +LLLINK+LLLINK*MIN(1,IPARIT)
1311 . +NSFLSW+8*NTFLSW+44*NCUTS !+LLINAL
1312 CALL WRITE_I_C (MY_ILEN,1)
1313 MY_RLEN = 9*NSFLSW+7*NCUTS
1314 CALL WRITE_I_C (MY_RLEN,1)
1315 CALL WRITE_I_C (ILINK,4*NRLINK)
1316 CALL WRITE_I_C (FR_RL,NRLINK*(NSPMD+2))
1317 CALL WRITE_I_C (LLINK,LLLINK)
1318 CALL WRITE_I_C (IADRL,LLLINK*MIN(1,IPARIT))
1319 !CALL WRITE_I_C (LINALE,LLINAL)
1320C section
1321 CALL WRITE_I_C(NEFLSW,NSFLSW)
1322 CALL WRITE_I_C(NNFLSW,8*NTFLSW)
1323 CALL WRITE_I_C(ICUT,44*NCUTS)
1324 CALL WRITE_DB (CRFLSW,9*NSFLSW)
1325 CALL WRITE_DB (XCUT,7*NCUTS)
1326C--------------------------------------
1327.OR. IF(NADMESH /= 0 IREST_MSELT /= 0)THEN
1328 CALL WRITE_DB(MSC,NUMELC)
1329 CALL WRITE_DB(INC,NUMELC)
1330 CALL WRITE_DB(MSTG,NUMELTG)
1331 CALL WRITE_DB(INTG,NUMELTG)
1332 CALL WRITE_DB(PTG,3*NUMELTG)
1333 END IF
1334
1335 IF(IREST_MSELT /= 0)THEN
1336 CALL WRITE_DB(MSSA,NUMELS)
1337 CALL WRITE_DB(MSTR,NUMELT)
1338 CALL WRITE_DB(MSP,NUMELP)
1339 CALL WRITE_DB(MSRT,NUMELR)
1340 END IF
1341
1342 IF(NADMESH /= 0)THEN
1343 CALL WRITE_DB(PADMESH,KPADMESH*NPART)
1344 IF(GLOB_THERM%ITHERM_FE > 0)THEN
1345 CALL WRITE_DB(MCPC,NUMELC)
1346 CALL WRITE_DB(MCPTG,NUMELTG)
1347 END IF
1348 END IF
1349C pinching shell
1350 IF(NPINCH > 0) THEN
1351 CALL WRITE_DB(PINCH_DATA%VPINCH,3*NPINCH)
1352 CALL WRITE_DB(PINCH_DATA%DPINCH,3*NPINCH)
1353 CALL WRITE_DB(PINCH_DATA%XPINCH,3*NPINCH)
1354 CALL WRITE_DB(PINCH_DATA%MSPINCH,NPINCH)
1355 ENDIF
1356C--------------------------------------
1357 IF(ISTATCND /= 0)THEN
1358 CALL WRITE_DB(MSCND,NUMNOD)
1359 CALL WRITE_DB(INCND,NUMNOD)
1360 ENDIF
1361C--------------------------------------
1362C structures int 21
1363C--------------------------------------
1364 IF(NINTSTAMP /= 0)THEN
1365 CALL INTSTAMP_WRESTR(INTSTAMP)
1366 END IF
1367
1368 IF(H3D_DATA%N_SCAL_SKID > 0) THEN
1369 IF(NINTSTAMP/=0) THEN
1370 CALL WRITE_DB(PSKIDS, H3D_DATA%N_SCAL_SKID*NUMNODG)
1371 ELSE
1372 CALL WRITE_DB(PSKIDS, H3D_DATA%N_SCAL_SKID*NUMNOD)
1373 ENDIF
1374 ENDIF
1375
1376 IF(IFCONTMAX >0)THEN
1377.AND. IF(NINTSTAMP/=0NSPMD > 1 ) THEN
1378 IF(ISPMD == 0) CALL WRITE_DB(FCONT_MAX, 3*NUMNODG)
1379 ELSE
1380 CALL WRITE_DB(FCONT_MAX, 3*NUMNOD)
1381 ENDIF
1382 ENDIF
1383
1384 IF(IFCONTPMAX >0)THEN
1385 CALL WRITE_DB(FNCONT_MAX, 3*SPCONT_MAX)
1386 CALL WRITE_DB(FTCONT_MAX, 3*SPCONT_MAX)
1387 ENDIF
1388
1389 IF(IFCONT2MAX >0)THEN
1390 CALL WRITE_DB(FCONT2_MAX, 3*NUMNOD)
1391 ENDIF
1392 IF(IFCONTP2MAX >0)THEN
1393 CALL WRITE_DB(FNCONT2_MAX, 3*NUMNOD)
1394 CALL WRITE_DB(FTCONT2_MAX, 3*NUMNOD)
1395 CALL WRITE_DB(NPCONT2_MAX, 3*NUMNOD)
1396 ENDIF
1397
1398 IF(IFCONT2MIN >0)THEN
1399 CALL WRITE_DB(FCONT2_MIN, 3*NUMNOD)
1400 ENDIF
1401 IF(IFCONTP2MIN >0)THEN
1402 CALL WRITE_DB(FNCONT2_MIN, 3*NUMNOD)
1403 CALL WRITE_DB(FTCONT2_MIN, 3*NUMNOD)
1404 CALL WRITE_DB(NPCONT2_MIN, 3*NUMNOD)
1405 ENDIF
1406C--------Frictional energy output-------
1407 IF(S_EFRICINT >0)THEN
1408 IF(NINEFRIC > 0) CALL WRITE_DB(EFRIC, NINEFRIC*NUMNOD)
1409 IF(NINEFRIC_STAMP > 0) CALL WRITE_DB(EFRIC_STAMP, NINEFRIC_STAMP*NUMNODG)
1410 ENDIF
1411 IF(S_EFRIC >0)THEN
1412 CALL WRITE_DB(EFRICG, NUMNOD)
1413 IF(NINTSTAMP/=0) CALL WRITE_DB(EFRICG_STAMP, NUMNODG)
1414 ENDIF
1415C--------------------------------------
1416C Interface friction buffer (integer )
1417C--------------------------------------
1418 IF(NINTERFRIC /= 0)THEN
1419 CALL INTFRIC_WRESTR(INTBUF_FRIC_TAB,NINTERFRIC)
1420 END IF
1421C--------------------------------------
1422 CALL WRITE_DB(NODES%MS0,NUMNOD)
1423 CALL WRITE_DB(NODES%IN0,SIN)
1424 IF(IDTMINS==1)THEN
1425 CALL WRITE_DB(ADMSMS,NUMNOD)
1426 ELSEIF(IDTMINS==2)THEN
1427 CALL WRITE_DB(DMELC ,NUMELC)
1428 CALL WRITE_DB(DMELTG,NUMELTG)
1429 CALL WRITE_DB(DMELS ,NUMELS)
1430 CALL WRITE_DB(DMELTR,NUMELT)
1431 CALL WRITE_DB(DMELP ,NUMELP)
1432 CALL WRITE_DB(DMELRT,NUMELR)
1433 END IF
1434.OR. IF(IDTMINS/=0IDTMINS_INT/=0)THEN
1435 CALL WRITE_DB(RES_SMS,3*NUMNOD)
1436 END IF
1437c
1438.OR. IF(IDTMINS==2IDTMINS_INT/=0) THEN
1439Cfor TYPE20
1440 CALL WRITE_DB(DIAG_SMS ,NUMNOD)
1441Cfor TYPE2
1442 CALL WRITE_DB(DMINT2 ,4*I2NSN25)
1443 END IF
1444C
1445 IF (ISMS_SELEC /= 0) THEN
1446 CALL WRITE_I_C(NATIV0_SMS,NUMNOD)
1447 ENDIF
1448C--------------------------------------
1449C structure tables (partie reelle)
1450C--------------------------------------
1451 IF(NTABLE /= 0)THEN
1452 CALL TABLE_WRESTR(TABLE, LTABLE)
1453 END IF
1454C--------------------------------------
1455C MDS Parameters
1456C--------------------------------------
1457#ifdef DNC
1458 CALL ENG_WRT_MDS()
1459#endif
1460C--------------------------------------
1461C ALE LINKS
1462C--------------------------------------
1463 IF(SLINALE > 0)THEN
1464 CALL WRITE_I_C(LINALE,SLINALE)
1465 END IF
1466C--------------------------------------
1467C ALE GRID
1468C--------------------------------------
1469 CALL WRITE_ALE_GRID()
1470C--------------------------------------
1471C FXBODY (moved from resol.F)
1472C--------------------------------------
1473 IF (NFXBODY>0) CALL FXBWREST(ICH)
1474C--------------------------------------
1475C EIGEN MODES
1476C--------------------------------------
1477 IF (NEIG>0) THEN
1478 CALL EIGWREST(EIGIPM, EIGIBUF, EIGRPM)
1479 ENDIF
1480C--------------------------------------
1481C SEATBELTS - SLIPRING / RETRACTOR
1482C--------------------------------------
1483 DO I = 1, NSLIPRING
1484 CALL WRITE_I_C(SLIPRING(I)%ID, 1)
1485 CALL WRITE_I_C(SLIPRING(I)%IDG, 1)
1486 CALL WRITE_I_C(SLIPRING(I)%NFRAM, 1)
1487 CALL WRITE_I_C(SLIPRING(I)%IFUNC, 4)
1488 CALL WRITE_I_C(SLIPRING(I)%SENSID, 1)
1489 CALL WRITE_I_C(SLIPRING(I)%FL_FLAG, 1)
1490 CALL WRITE_I_C(SLIPRING(I)%RBODY, 1)
1491C
1492 CALL WRITE_DB(SLIPRING(I)%DC, 1)
1493 CALL WRITE_DB(SLIPRING(I)%A, 1)
1494 CALL WRITE_DB(SLIPRING(I)%FRIC, 1)
1495 CALL WRITE_DB(SLIPRING(I)%FAC_D, 3)
1496 CALL WRITE_DB(SLIPRING(I)%FRICS, 1)
1497 CALL WRITE_DB(SLIPRING(I)%FAC_S, 3)
1498C
1499 DO J=1,SLIPRING(I)%NFRAM
1500C
1501 CALL WRITE_I_C(SLIPRING(I)%FRAM(J)%UPDATE, 1)
1502 CALL WRITE_I_C(SLIPRING(I)%FRAM(J)%ANCHOR_NODE, 1)
1503 CALL WRITE_I_C(SLIPRING(I)%FRAM(J)%NODE, 3)
1504 CALL WRITE_I_C(SLIPRING(I)%FRAM(J)%NODE_NEXT, 3)
1505 CALL WRITE_I_C(SLIPRING(I)%FRAM(J)%NODE2_PREV, 1)
1506 CALL WRITE_I_C(SLIPRING(I)%FRAM(J)%N_REMOTE_PROC, 1)
1507 CALL WRITE_I_C(SLIPRING(I)%FRAM(J)%ORIENTATION_NODE, 1)
1508 CALL WRITE_I_C(SLIPRING(I)%FRAM(J)%STRAND_DIRECTION, 2)
1509 CALL WRITE_I_C(SLIPRING(I)%FRAM(J)%LOCKED, 1)
1510C
1511 CALL WRITE_DB(SLIPRING(I)%FRAM(J)%VECTOR, 6)
1512 CALL WRITE_DB(SLIPRING(I)%FRAM(J)%ORIENTATION_ANGLE, 1)
1513 CALL WRITE_DB(SLIPRING(I)%FRAM(J)%MATERIAL_FLOW, 1)
1514 CALL WRITE_DB(SLIPRING(I)%FRAM(J)%MATERIAL_FLOW_OLD, 1)
1515 CALL WRITE_DB(SLIPRING(I)%FRAM(J)%DFS, 1)
1516 CALL WRITE_DB(SLIPRING(I)%FRAM(J)%RESIDUAL_LENGTH, 2)
1517 CALL WRITE_DB(SLIPRING(I)%FRAM(J)%CURRENT_LENGTH, 2)
1518 CALL WRITE_DB(SLIPRING(I)%FRAM(J)%RINGSLIP, 1)
1519 CALL WRITE_DB(SLIPRING(I)%FRAM(J)%BETA, 1)
1520 CALL WRITE_DB(SLIPRING(I)%FRAM(J)%SLIP_FORCE, 3)
1521 CALL WRITE_DB(SLIPRING(I)%FRAM(J)%PREV_REF_LENGTH, 1)
1522 CALL WRITE_DB(SLIPRING(I)%FRAM(J)%INTVAR_STR1, 8)
1523 CALL WRITE_DB(SLIPRING(I)%FRAM(J)%INTVAR_STR2, 8)
1524C
1525 ENDDO
1526C
1527 ENDDO
1528C
1529 DO I = 1, NRETRACTOR
1530 CALL WRITE_I_C(RETRACTOR(I)%ID, 1)
1531 CALL WRITE_I_C(RETRACTOR(I)%IDG, 1)
1532 CALL WRITE_I_C(RETRACTOR(I)%UPDATE, 1)
1533 CALL WRITE_I_C(RETRACTOR(I)%ANCHOR_NODE, 1)
1534 CALL WRITE_I_C(RETRACTOR(I)%NODE, 2)
1535 CALL WRITE_I_C(RETRACTOR(I)%NODE_NEXT, 2)
1536 CALL WRITE_I_C(RETRACTOR(I)%STRAND_DIRECTION, 1)
1537 CALL WRITE_I_C(RETRACTOR(I)%IFUNC, 3)
1538 CALL WRITE_I_C(RETRACTOR(I)%ISENS, 2)
1539 CALL WRITE_I_C(RETRACTOR(I)%TENS_TYP, 1)
1540 CALL WRITE_I_C(RETRACTOR(I)%LOCKED, 1)
1541 CALL WRITE_I_C(RETRACTOR(I)%LOCKED_FREEZE, 1)
1542 CALL WRITE_I_C(RETRACTOR(I)%PRETENS_ACTIV, 1)
1543 CALL WRITE_I_C(RETRACTOR(I)%INACTI_NNOD, 1)
1544 CALL WRITE_I_C(RETRACTOR(I)%INACTI_NNOD_MAX, 1)
1545 CALL WRITE_I_C(RETRACTOR(I)%INACTI_NODE, RETRACTOR(I)%INACTI_NNOD)
1546 CALL WRITE_I_C(RETRACTOR(I)%N_REMOTE_PROC, 1)
1547 CALL WRITE_I_C(RETRACTOR(I)%S_TABLE, 2)
1548 CALL WRITE_DB(RETRACTOR(I)%VECTOR, 3)
1549 CALL WRITE_DB(RETRACTOR(I)%ELEMENT_SIZE, 1)
1550 CALL WRITE_DB(RETRACTOR(I)%FORCE, 1)
1551 CALL WRITE_DB(RETRACTOR(I)%MATERIAL_FLOW, 1)
1552 CALL WRITE_DB(RETRACTOR(I)%RESIDUAL_LENGTH, 1)
1553 CALL WRITE_DB(RETRACTOR(I)%FAC, 4)
1554 CALL WRITE_DB(RETRACTOR(I)%PULLOUT, 1)
1555 CALL WRITE_DB(RETRACTOR(I)%UNLOCK_FORCE, 1)
1556 CALL WRITE_DB(RETRACTOR(I)%LOCK_PULL, 1)
1557 CALL WRITE_DB(RETRACTOR(I)%LOCK_PULL_SAV, 1)
1558 CALL WRITE_DB(RETRACTOR(I)%LOCK_OFFSET, 1)
1559 CALL WRITE_DB(RETRACTOR(I)%LOCK_YIELD_FORCE, 1)
1560 CALL WRITE_DB(RETRACTOR(I)%RINGSLIP, 1)
1561 CALL WRITE_DB(RETRACTOR(I)%PRETENS_TIME, 1)
1562 CALL WRITE_DB(RETRACTOR(I)%PRETENS_PULL, 1)
1563 CALL WRITE_DB(RETRACTOR(I)%PRETENS_PULLMAX, 1)
1564 CALL WRITE_DB(RETRACTOR(I)%RET_FORCE, 1)
1565 DO J=1,2
1566 IF (RETRACTOR(I)%S_TABLE(J) > 0) THEN
1567 NPT = RETRACTOR(I)%S_TABLE(J)
1568 CALL WRITE_DB(RETRACTOR(I)%TABLE(J)%X(1)%VALUES(1:NPT),NPT)
1569 CALL WRITE_DB(RETRACTOR(I)%TABLE(J)%Y%VALUES(1:NPT),NPT)
1570 ENDIF
1571 ENDDO
1572 ENDDO
1573C
1574 IF (N_ANCHOR_REMOTE > 0) THEN
1575 CALL WRITE_I_C(ANCHOR_REMOTE%ADD_PROC, NSPMD+1)
1576 CALL WRITE_I_C(ANCHOR_REMOTE%NODE, N_ANCHOR_REMOTE)
1577 ENDIF
1578C
1579 IF (N_ANCHOR_REMOTE_SEND > 0) THEN
1580 CALL WRITE_I_C(ANCHOR_REMOTE_SEND%ADD_PROC, NSPMD+1)
1581 CALL WRITE_I_C(ANCHOR_REMOTE_SEND%NODE, N_ANCHOR_REMOTE_SEND)
1582 ENDIF
1583C
1584.AND. IF ((NSLIPRING_G + NRETRACTOR_G >0)(ISPMD == 0)) THEN
1585 CALL WRITE_I_C(NSEATBELT_TH_PROC, 1)
1586.AND. IF ((NSPMD > 1)(NSEATBELT_TH_PROC > 0)) THEN
1587 DO I=1,NSEATBELT_TH_PROC
1588 CALL WRITE_I_C(SEATBELT_TH_EXCH(I)%ID_PROC, 1)
1589 CALL WRITE_I_C(SEATBELT_TH_EXCH(I)%ADD_PROC, 1)
1590 CALL WRITE_I_C(SEATBELT_TH_EXCH(I)%NSLIPRING, 1)
1591 CALL WRITE_I_C(SEATBELT_TH_EXCH(I)%NRETRACTOR, 1)
1592 ENDDO
1593 ENDIF
1594 ENDIF
1595C
1596C--------------------------------------------
1597C /H3D/?/TMAX part noda
1598C--------------------------------------------
1599 CALL WRITE_DB(TM_DIS,LMAX_DIS*NUMNOD)
1600 CALL WRITE_DB(TM_VEL,LMAX_VEL*NUMNOD)
1601 CALL WRITE_DB(TM_NSIG1,LMAX_NSIG*NUMNOD)
1602 CALL WRITE_DB(TM_NSIG3,LMAX_NSIG*NUMNOD)
1603 CALL WRITE_DB(TM_NSTRA1,LMAX_NSTRA*NUMNOD)
1604 CALL WRITE_DB(TM_NSTRA3,LMAX_NSTRA*NUMNOD)
1605C--------------------------------------
1606 IF (NCONLD > 0) THEN
1607 CALL WRITE_DB(DPL0CLD,6*NCONLD)
1608 CALL WRITE_DB(VEL0CLD,6*NCONLD)
1609 ENDIF
1610C--------------------------------------
1611C /DAMP/VREL
1612C--------------------------------------
1613 IF (NDAMP_VREL > 0) THEN
1614 CALL WRITE_I_C(ID_DAMP_VREL,NDAMP_VREL)
1615 CALL WRITE_I_C(FR_DAMP_VREL,NDAMP_VREL*(NSPMD+2))
1616 ENDIF
1617C--------------------------------------
1618 IF (NFLOW>0) CALL NFWREST(IFLOW, RFLOW)
1619c
1620 CALL FVWREST()
1621c
1622 IF (IMPL_S>0) THEN
1623 CALL IMP_TRANS(IMPBUF_TAB%R_IMP)
1624 CALL IMPWREST(IMPL_S0)
1625 ENDIF
1626c
1627 IF(GLOB_THERM%ITHERM_FE > 0 ) CALL THCWREST(MCP, TEMP)
1628C
1629 IF(NITSCHE > 0 )CALL NITSCHEWREST(FORNEQS)
1630c
1631 CALL WRITE_UNITS(UNITAB)
1632c
1633 IF(IRIGID_MAT > 0 )CALL RIGMATWREST(RBYM ,IRBYM ,LNRBYM,WEIGHT_RM)
1634
1635C thermal boundary
1636 IF (GLOB_THERM%NUMCONV > 0) THEN
1637 CALL CONVWREST(IBCV, FCONV,GLOB_THERM)
1638 END IF
1639 IF (GLOB_THERM%NUMRADIA > 0) THEN
1640 CALL RADIAWREST(IBCR, FRADIA,GLOB_THERM)
1641 END IF
1642 IF (GLOB_THERM%NFXFLUX > 0) THEN
1643 CALL FXFLUXWREST(IBFFLUX, FBFFLUX, GLOB_THERM)
1644 END IF
1645 IF (GLOB_THERM%NFXTEMP > 0) THEN
1646 CALL FXTEMPWREST(IBFTEMP, FBFTEMP,GLOB_THERM)
1647 END IF
1648!
1649c Ply XFEM
1650 IF (IPLYXFEM > 0)THEN
1651 CALL PLYXFEM_WREST(MS_PLY,ZI_PLY,INOD_PXFEM,IEL_PXFEM,
1652 . ICODE_PLY,ISKEW_PLY,MSZ2)
1653 CALL PLYXFEM_WRESTANIM()
1654 CALL PLYXFEM_WRAVUPLY()
1655 ENDIF
1656c
1657 IF (NLOADC > 0) CALL WRITE_DB(CFIELD,LFACLOAD*NLOADC)
1658 IF (NLOADP > 0) CALL WRITE_DB(LOADP,LFACLOAD*NLOADP)
1659 IF (NINTLOADP > 0) CALL WRITE_DB(DGAPLOADINT,NINTER*NLOADP_HYD)
1660C
1661C /INIVEL w/ T_start or senor_id
1662 IF (LOADS%NINIVELT>0) CALL WRITE_INIVEL(LOADS%NINIVELT,LOADS%INIVELT)
1663C
1664C xfem for layerd shell (cracks)
1665 IF (ICRACK3D > 0) THEN
1666 CALL CRKXFEM_WREST(INOD_CRKXFEM,IEL_CRKXFEM,NODLEVXF)
1667 CALL CRKXFEM_WRESTANIM(CRKEDGE,CRKSKY,INDX_CRK,XEDGE4N,XEDGE3N)
1668 ENDIF
1669C
1670 IF(ALEFVM_Param%IEnabled > 0) CALL WRITE_DB(ALEFVM_Buffer%FCELL ,6*NUMELS)
1671C foam + air
1672 IF(IALELAG > 0 )CALL ALELAG_WREST()
1673C THoutput
1674 IF(SRTHBUF > 0) CALL RTHBUFWREST()
1675C Knot
1676 IF (SKNOT > 0) CALL WRITE_DB(KNOT,SKNOT)
1677 IF (SKNOTLOCPC > 0) CALL WRITE_DB(KNOTLOCPC,SKNOTLOCPC)
1678 IF (SKNOTLOCEL > 0) CALL WRITE_DB(KNOTLOCEL,SKNOTLOCEL)
1679 IF (NUMELIG3D > 0) CALL WRITE_DB(WIGE,NUMNOD)
1680C
1681 IF(IPART_STACK >0) CALL STACK_WREST(STACK%IGEO,STACK%GEO,STACK%PM )
1682C
1683 IF (NDRAPE > 0) CALL DRAPE_WREST(DRAPE_SH4N , DRAPE_SH3N,DRAPEG)
1684C
1685 IF (NUMPLY > 0) CALL PLY_INFO_WREST(PLY_INFO)
1686
1687 ! ---------------------------
1688 ! write the starter + engine elapsed time
1689 CALL WRITE_DPDB(GLOBAL_COMP_TIME%STARTER_TIME,1)
1690 CALL WRITE_DPDB(GLOBAL_COMP_TIME%ENGINE_TIME,GLOBAL_COMP_TIME%RUN_NBR)
1691 ! ---------------------------
1692
1693 ! restart file size - mist be before closing the file
1694 CALL file_size(RESTSIZE)
1695
1696 ! Closing the file
1697 CALL CLOSE_C
1698C
1699 IF(ISPMD==0)THEN
1700 WRITE (IOUT,1000) FILNAMG(1:LENG)
1701 WRITE (ISTDO,1050) FILNAMG(1:LENG)
1702 ENDIF
1703C--------------------------------------
1704 1000 FORMAT (/4X,' restart files:',1X,A,' written'/
1705 . 4X,' -------------'/)
1706 1050 FORMAT (4X,' restart files:',1X,A,' written')
1707C-----------
1708 RETURN
1709 END
subroutine fxbwrest(ich)
Definition wrrest.F:36
subroutine alelag_wrest()
Definition wrrest.F:1178
subroutine write_joint(ljoint, cep, cel, proc, nodlocal, ljoint_l, len_ia, numnod_l)
Definition write_joint.F:33
subroutine w_elbuf_str(proc, iparg, elbuf_tab, len_am, flag_xfem)
Definition w_elbuf_str.F:31
subroutine w_failwave(failwave, nodglob, numnod, numnod_l, len_am, itab)
Definition w_failwave.F:31
subroutine w_subset_str(subset, len_ia)
subroutine write_nloc_struct(nloc_dmg, numnod_l, nodglob, nodloc, cel, cep, proc, ixs, ixc, ixtg, numels_l, numelc_l, numeltg_l)
subroutine plyxfem_wrest(ms_ply, zi_ply, iel, inod, icode, iskew)
Definition wrrest.F:729
subroutine thcwrest(mcp, temp)
Definition wrrest.F:608
subroutine write_sensors(sensors, numnod, nodlocal)
subroutine write_db(a, n)
Definition write_db.F:140
subroutine wrrestp(elements, nodes, af, iaf, ich, addcne, elbuf_tab, xfem_tab, intbuf_tab, multi_fvm, mat_elem, h3d_data, intbuf_fric_tab, subset, pinch_data, ale_connectivity, t_monvol, sensors, ebcs_tab, dynain_data, user_windows, output, interfaces, loads, python, names_and_titles, eigipm, eigibuf, eigrpm, neipm, leibuf, nerpm, iflow, rflow, liflow, lrflow, impbuf_tab, impl_s, impl_s0, mcp, temp, forneqs, unitab, stack, ndrape, drape_sh3n, drape_sh4n, drapeg, restsize, skews, glob_therm, pblast, rbe3)
Definition wrrestp.F:165