OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sortie_main.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!|| sortie_main ../engine/source/output/sortie_main.F
25!||--- called by ------------------------------------------------------
26!|| resol ../engine/source/engine/resol.F
27!||--- calls -----------------------------------------------------
28!|| ani_pcont ../engine/source/output/anim/generate/ani_pcont.F
29!|| ani_pcont21 ../engine/source/output/anim/generate/ani_pcont.F
30!|| anicon0 ../engine/source/output/anim/generate/anicon0.F
31!|| anicon2 ../engine/source/output/anim/generate/anicon2.F
32!|| cndmasi2 ../engine/source/elements/solid/solide10/s10cndf.F
33!|| ecrit ../engine/source/output/ecrit.f
34!|| eng_qaprint_driver ../engine/source/output/qaprint/eng_qaprint_driver.F
35!|| fcont2_max_output ../engine/source/output/h3d/h3d_results/fcont2_max_output.F
36!|| fcont2_min_output ../engine/source/output/h3d/h3d_results/fcont2_min_output.F
37!|| fcont_max_output ../engine/source/output/h3d/h3d_results/fcont_max_output.F
38!|| file_size ../common_source/tools/input_output/write_routtines.c
39!|| fluxsw ../engine/source/fluid/fluxsw.F
40!|| fpcont2_max_output ../engine/source/output/h3d/h3d_results/fpcont2_max_output.F90
41!|| fpcont2_min_output ../engine/source/output/h3d/h3d_results/fpcont2_min_output.F90
42!|| genani ../engine/source/output/anim/generate/genani.f
43!|| gendynain ../engine/source/output/dynain/gendynain.F
44!|| genh3d ../engine/source/output/h3d/h3d_results/genh3d.F
45!|| genoutp ../engine/source/output/sty/genoutp.F
46!|| genstat ../engine/source/output/sta/genstat.F
47!|| hist2 ../engine/source/output/th/hist2.F
48!|| noise ../engine/source/general_controls/computation/noise.F
49!|| s10mvnd ../engine/source/elements/solid/solide10/s10cndv.F
50!|| sensor_energy_total ../engine/source/tools/sensor/sensor_energy_total.F
51!|| spmd_exch_adm ../engine/source/mpi/anim/spmd_exch_adm.F
52!|| spmd_exch_output_noda_pext ../engine/source/mpi/output/spmd_exch_output_noda_pext.F
53!|| spmd_sd_skw_anim ../engine/source/mpi/output/spmd_sd_skw.F
54!||--- uses -----------------------------------------------------
55!|| ale_connectivity_mod ../common_source/modules/ale/ale_connectivity_mod.F
56!|| aleanim_mod ../engine/share/modules/aleanim_mod.F
57!|| anim_mod ../common_source/modules/output/anim_mod.F
58!|| cluster_mod ../engine/share/modules/cluster_mod.F
59!|| crackxfem_mod ../engine/share/modules/crackxfem_mod.F
60!|| drape_mod ../engine/share/modules/drape_mod.F
61!|| dt_mod ../engine/source/modules/dt_mod.F
62!|| ebcs_mod ../common_source/modules/boundary_conditions/ebcs_mod.F90
63!|| ecnd_mod ../engine/share/modules/ecdn_mod.F
64!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
65!|| fpcont2_max_output_mod ../engine/source/output/h3d/h3d_results/fpcont2_max_output.F90
66!|| fpcont2_min_output_mod ../engine/source/output/h3d/h3d_results/fpcont2_min_output.F90
67!|| fvbag_mod ../engine/share/modules/fvbag_mod.F
68!|| fvmbag_meshcontrol_mod ../common_source/modules/airbag/fvmbag_meshcontrol_mod.F
69!|| glob_therm_mod ../common_source/modules/mat_elem/glob_therm_mod.F90
70!|| groupdef_mod ../common_source/modules/groupdef_mod.F
71!|| h3d_mod ../engine/share/modules/h3d_mod.F
72!|| hist2_mod ../engine/source/output/th/hist2.F
73!|| inoutfile_mod ../common_source/modules/inoutfile_mod.F
74!|| intbufdef_mod ../common_source/modules/interfaces/intbufdef_mod.F90
75!|| loads_mod ../common_source/modules/loads/loads_mod.F90
76!|| mat_elem_mod ../common_source/modules/mat_elem/mat_elem_mod.F90
77!|| message_mod ../engine/share/message_module/message_mod.F
78!|| multi_fvm_mod ../common_source/modules/ale/multi_fvm_mod.F90
79!|| nodal_arrays_mod ../common_source/modules/nodal_arrays.F90
80!|| outmax_mod ../common_source/modules/outmax_mod.F
81!|| output_mod ../common_source/modules/output/output_mod.f90
82!|| outputs_mod ../common_source/modules/outputs_mod.F
83!|| pblast_mod ../common_source/modules/loads/pblast_mod.F90
84!|| pinchtype_mod ../common_source/modules/pinchtype_mod.F
85!|| sensor_mod ../common_source/modules/sensor_mod.F90
86!|| spmd_exch_output_noda_pext_mod ../engine/source/mpi/output/spmd_exch_output_noda_pext.F
87!|| stack_mod ../engine/share/modules/stack_mod.F
88!|| state_mod ../common_source/modules/state_mod.F
89!|| table_mod ../engine/share/modules/table_mod.F
90!|| th_mod ../engine/share/modules/th_mod.F
91!|| th_surf_mod ../common_source/modules/interfaces/th_surf_mod.F
92!|| timer_mod ../engine/source/system/timer_mod.F90
93!|| user_windows_mod ../common_source/modules/user_windows_mod.F
94!||====================================================================
95 SUBROUTINE sortie_main(TIMERS,
96 1 PM ,D ,V ,ALE_CONNECT,W ,
97 2 ELBUF ,IPARG ,IXS ,IXQ ,IXC ,
98 3 IXT ,IXP ,IXR ,IXTG ,WA ,
99 4 ITAB ,X ,GEO ,MS ,A ,
100 5 CONT ,PARTSAV ,ICUT ,XCUT ,
101 6 FINT ,FEXT ,FOPT ,ANIN ,LPBY ,
102 7 NPBY ,NSTRF ,RWBUF ,NPRW ,EBCS_TAB ,
103 8 TANI ,INOISE ,BUFNOIS ,RBY ,NEFLSW ,
104 9 NNFLSW ,CRFLSW ,FLSW ,LOUT ,NODES ,
105 B FSAV ,SKEW ,ELBUF_TAB ,CLUSTER ,
106 C VR ,IN ,WEIGHT ,FCLUSTER ,MCLUSTER ,
107 D DD_IAD ,DMAS ,ACCELM ,GAUGE,
108 E IPARI ,EANI ,IPART ,MAT_PARAM,
109 F IGRNOD ,SUBSET ,
110 G NOM_OPT ,AR ,IGRSURF ,BUFSF ,IDATA ,
111 H RDATA ,KXX ,IXX ,BUFMAT ,BUFGEO ,
112 I KXSP ,IXSP ,NOD2SP ,SPBUF ,DR ,
113 J FSAVD ,IXRI ,RIVET ,ISKWN ,IFRAME ,
114 M XFRAME ,IXS10 ,IXS20 ,IXS16 ,NDMA ,
115 T MONVOL ,VOLMON ,IPM ,IGEO ,NODGLOB ,
116 . IAD_ELEM ,FR_ELEM ,
117 U FR_RBY2 ,IAD_RBY2 ,FR_WALL ,FR_SEC ,FXBIPM ,FXBRPM,
118 V NDIN ,FXBDEP ,FXBVIT ,FXBACC ,IFLOW,
119 W RFLOW ,IPARTL ,NPARTL ,IACCP ,NACCP,
120 X FASOLFR ,FNCONT ,FTCONT ,IPARTH ,
121 Y FR_MV ,IPART_STATE ,SH4TREE ,SH3TREE ,TEMP,
122 Z THKE ,ERR_THK_SH4 ,ERR_THK_SH3,
123 a INOD_PXFEM,FTHREAC ,NODREAC ,GRESAV ,
124 b DIAG_SMS ,SH4TRIM ,SH3TRIM ,FNCONT2 ,XMOM_SMS ,
125 c IRBE2 ,IRBE3 ,LRBE2 ,LRBE3 ,FR_RBE2 ,
126 d FR_RBE3M ,IAD_RBE2 ,DXANCG ,IEL_PXFEM ,ZI_PLY ,
127 e VGAZ ,FCONTG ,FNCONTG ,FTCONTG ,FANREAC ,
128 f INOD_CRK ,IEL_CRK ,ELCUTC ,IADC_CRK ,PDAMA2 ,
129 g RES_SMS ,SENSORS ,
130 h QFRICINT ,IGAUP ,NGAUP ,WEIGHT_MD ,NCONT ,
131 i INDEXCONT ,NODGLOBXFE ,NODEDGE ,XFEM_TAB ,
132 j NV46 ,RTHBUF ,KXIG3D ,IXIG3D ,KNOT ,
133 k WIGE ,NERCVOIS ,NESDVOIS ,LERCVOIS ,LESDVOIS ,
134 l CRKEDGE ,STACK ,ISPHIO ,VSPHIO ,ICODE ,
135 m INDX_CRK ,XEDGE4N ,XEDGE3N ,SPH2SOL ,STIFN ,
136 n STIFR ,DRAPE_SH4N ,DRAPE_SH3N ,MS_2D ,MULTI_FVM,
137 o SEGQUADFR ,H3D_DATA ,ISKEW ,PSKIDS ,ISKWP ,
138 p KNOTLOCPC ,KNOTLOCEL ,PINCH_DATA ,TAG_SKINS6,IRUNN_BIS,
139 q TF ,NPC ,DYNAIN_DATA,FCONT_MAX,MDS_MATID,
140 r FNCONTP2 ,FTCONTP2 ,IBCL ,ILOADP ,LLOADP ,
141 s LOADP ,TAGNCONT ,LOADP_HYD_INTER,FORC ,DRAPEG,USER_WINDOWS,
142 t OUTPUT ,DT ,FSAVSURF ,TABLE ,
143 u LOADS ,SFANI ,IPARIT ,X_C ,
144 v SZ_NPCONT2,NPCONT2 ,GLOB_THERM ,PBLAST ,WFEXT)
145C-----------------------------------------------
146C M o d u l e s
147C-----------------------------------------------
148 USE timer_mod
149 USE mat_elem_mod
150 USE cluster_mod
151 USE intbufdef_mod
152 USE crackxfem_mod
153 USE stack_mod
154 USE ecnd_mod
155 USE multi_fvm_mod
156 USE h3d_mod
157 USE fvbag_mod
159 USE groupdef_mod
160 USE multi_fvm_mod
161 USE aleanim_mod !FANI_CELL
162 USE pinchtype_mod
163 USE inoutfile_mod
164 USE drape_mod
165 USE sensor_mod
167 USE outmax_mod
168 USE anim_mod
169 USE outputs_mod
170 USE message_mod
171 USE state_mod
173 USE output_mod , ONLY : output_
174 USE output_mod , ONLY : noda_surf, noda_pext, noda_pext_g, noda_surf_g
175 USE output_mod , ONLY : anim_has_noda_pext, h3d_has_noda_pext
177 USE th_mod , ONLY : th_has_noda_pext
178 USE dt_mod
179 USE table_mod
180 USE loads_mod
181 USE ebcs_mod , only : t_ebcs_tab
183 USE elbufdef_mod
184 use fpcont2_max_output_mod
185 use fpcont2_min_output_mod
186 USE glob_therm_mod
187 use pblast_mod
188 USE hist2_mod , ONLY : hist2
189 USE nodal_arrays_mod , ONLY : nodal_arrays_
190C-----------------------------------------------
191C I m p l i c i t T y p e s
192C-----------------------------------------------
193#include "implicit_f.inc"
194C-----------------------------------------------
195C C o m m o n B l o c k s
196C-----------------------------------------------
197#include "com01_c.inc"
198#include "com04_c.inc"
199#include "com06_c.inc"
200#include "com08_c.inc"
201#include "com09_c.inc"
202#include "com_xfem1.inc"
203#include "sphcom.inc"
204#include "scr05_c.inc"
205#include "scr07_c.inc"
206#include "scrnoi_c.inc"
207#include "scr14_c.inc"
208#include "scr16_c.inc"
209#include "scr20_c.inc"
210#include "scr23_c.inc"
211#include "param_c.inc"
212#include "scrfs_c.inc"
213#include "task_c.inc"
214#include "scr13_c.inc"
215#include "scr17_c.inc"
216#include "units_c.inc"
217#include "com10_c.inc"
218#include "spmd_c.inc"
219#include "fxbcom.inc"
220#include "filescount_c.inc"
221#include "intstamp_c.inc"
222#include "chara_c.inc"
223C-----------------------------------------------
224C D u m m y A r g u m e n t s
225C-----------------------------------------------
226 TYPE(nodal_arrays_), INTENT(INOUT) :: NODES
227 TYPE(timer_), INTENT(INOUT) :: TIMERS
228 TYPE(t_ebcs_tab), TARGET, INTENT(IN) :: EBCS_TAB
229 LOGICAL LOUT
230 INTEGER, INTENT(IN) :: SFANI
231 INTEGER IPARG(*), IXS(*), IXQ(*), IXC(*), IXT(*), IXP(*),
232 . ixs10(6,*) ,ixs16(8,*) ,ixs20(12,*) ,indx_crk(*),
233 . ixr(*), ixtg(*), itab(*),icut(*),nstrf(*),lpby(*),
234 . nprw(*),ipart(*),
235 . inoise(*), npby(nnpby,*),neflsw(*),nnflsw(*),
236 . dd_iad(nspmd+1,*), iaccp(*), naccp(*),
237 . ipari(npari,*),weight(*),
238 . nom_opt(lnopt1,*),
239 . idata(*),kxx(nixx,*),ixx(*),
240 . kxsp(nisp,*),ixsp(kvoisph,*),nod2sp(*),
241 . npartsav,ixri(4,*),
242 . iskwn(liskn,*),iframe(liskn,*),ipm(*), igeo(*),fxbipm(nbipm,*),
243 . iparth(2,*),
244 . ndma ,monvol(*),nodglob(*),
245 . fr_elem(*),iad_elem(2,*), ndin, iflow(*), fasolfr(*), fr_mv(*),
246 . ipartl(*), npartl, ipart_state(*), sh4tree(*), sh3tree(*),
247 . inod_pxfem(*), sh4trim(*), sh3trim(*),
248 . irbe2(*),irbe3(*),lrbe2(*),lrbe3(*),
249 . fr_rbe2(*),fr_rbe3m(*),iel_pxfem(*),
250 . inod_crk(*),iel_crk(*),elcutc(2,*),xedge4n(4,*),xedge3n(3,*),
251 . iadc_crk(*),igaup(*), ngaup(*),
252 . weight_md(*),nodglobxfe(*),nodedge(2,*),nv46,kxig3d(*),
253 . ixig3d(*),nercvois(*),nesdvois(*),lercvois(*),lesdvois(*),
254 . isphio(nisphio,*),icode(*),sph2sol(*),segquadfr(*),
255 . iskew(*),tag_skins6(*),irunn_bis
256 my_real bufnois(*),partsav(npsav,*),rby(nrby,*),crflsw(*),flsw(*),
257 . fsav(nthvki,*),skew(lskew,*), vr(3,*), in(*), dmas,
258 . accelm(llaccelm,*),bufsf(*),rdata(*),bufmat(*),bufgeo(*),
259 . spbuf(*),rivet(*),xframe(nxframe,*),zi_ply(*),vgaz(*)
260 my_real pm(npropm,*),d(3,numnod),v(*),w(*),elbuf(*),wa(*),x(3,*),geo(*),
261 . ms(*), a(3,*), cont(3,*),xcut(*),fint(*),eani(*),
262 . fext(3,*) ,fopt(6,*),anin(*),rwbuf(*),tani(*),
263 . ar(3,*),tf(*),fcont_max(*)
264 my_real fsavd(nthvki,*),
265 . dr(3,*),volmon(*),
266 . fxbrpm(*),fxbdep(*),fxbvit(*),fxbacc(*), rflow(*),
267 . fncont(3,*),ftcont(3,*),temp(*),thke(*),dxancg(3,*),
268 . err_thk_sh4(*),err_thk_sh3(*),fthreac(*),
269 . gresav(*), diag_sms(*), fncont2(3,*), xmom_sms(3,*),
270 . fcontg(*), fncontg(*), ftcontg(*),fanreac(*),pdama2(*),
271 . res_sms(*),qfricint(*), gauge(*),
272 . fcluster(*),mcluster(*),rthbuf(*),wige(*),knot(*),vsphio(*),
273 . stifn(*),stifr(*),ms_2d(*),pskids(*),knotlocpc(*),knotlocel(*),
274 . fncontp2(3,*) ,ftcontp2(3,*)
275 INTEGER FR_SEC(NSPMD+1,*),FR_RBY2(3,*),IAD_RBY2(4,*),FR_WALL(*),NODREAC(*),IAD_RBE2(4,*),INDEXCONT(*),NCONT,ITY
276 INTEGER NPC(*),MDS_MATID(*)
277 INTEGER LLOADP(*),ILOADP(SIZLOADP,*),IBCL(NIBCLD,*)
278 INTEGER TAGNCONT(NLOADP_HYD_INTER,NUMNOD),LOADP_HYD_INTER(NLOADP_HYD)
279 my_real :: loadp(lfaccld,*),forc(*)
280
281 INTEGER, DIMENSION(*), INTENT(IN) :: ISKWP
282 INTEGER, INTENT(IN) :: SZ_NPCONT2
283 my_real, INTENT(INOUT) :: FSAVSURF(TH_SURF_NUM_CHANNEL,NSURF)
284 my_real, DIMENSION(3,NUMNOD), INTENT(IN) :: X_C
285 my_real, DIMENSION(3,SZ_NPCONT2), INTENT(INOUT) :: NPCONT2
286C-----------------------------------------------
287 TYPE(OUTPUT_),INTENT(INOUT) :: OUTPUT
288C-----------------------------------------------
289 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP) :: ELBUF_TAB
290 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP,NXEL) :: XFEM_TAB
291 TYPE (CLUSTER_) ,DIMENSION(NCLUSTER) :: CLUSTER
292 TYPE (XFEM_EDGE_) , DIMENSION(*) :: CRKEDGE
293 TYPE (STACK_PLY) :: STACK
294 TYPE(MULTI_FVM_STRUCT), INTENT(IN) :: MULTI_FVM
295 TYPE(H3D_DATABASE) :: H3D_DATA
296 TYPE (SUBSET_) , DIMENSION(NSUBS) :: SUBSET
297 TYPE (GROUP_) , DIMENSION(NGRNOD) :: IGRNOD
298 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
299 TYPE (PINCH) :: PINCH_DATA
300 TYPE (DRAPE_) :: DRAPE_SH4N(NUMELC_DRAPE), DRAPE_SH3N(NUMELTG_DRAPE)
301 TYPE (DRAPEG_) :: DRAPEG
302 TYPE (SENSORS_) ,INTENT(INOUT):: SENSORS
303 TYPE (t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
304 TYPE (DYNAIN_DATABASE), INTENT(INOUT) :: DYNAIN_DATA
305 TYPE(user_windows_),INTENT(IN) :: USER_WINDOWS
306 TYPE(DT_), INTENT(INOUT) :: DT
307 TYPE (LOADS_) , INTENT(IN) :: LOADS
308 TYPE (TTABLE),DIMENSION(NTABLE) ,INTENT(IN) :: TABLE
309 TYPE (MATPARAM_STRUCT_) ,DIMENSION(NUMMAT) ,INTENT(IN) :: MAT_PARAM
310 type (glob_therm_) ,intent(in) :: glob_therm
311 type (PBLAST_) ,intent(in) :: PBLAST
312 INTEGER,INTENT(IN) :: IPARIT
313 DOUBLE PRECISION,INTENT(INOUT) :: WFEXT
314 LOGICAL :: TRIGGER_ANIM, TRIGGER_TH, TRIGGER_H3D
315C-----------------------------------------------
316C L o c a l V a r i a b l e s
317C-----------------------------------------------
318 INTEGER N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,I,M,NEL,NFACE,
319 . K1, K2, K3, K4, K5, K6, K7, K8, K9, K10, K11,K12,
320 . NEL1D,NEL2D,NEL3D, L1, IFIL, CPTFILE,IFILABF,
321 . IAD, J, THUPDT,IFLAG, IFV,ITHFLAG,NSENSOR
322 INTEGER :: IFLAG_ANIPCONT
323 INTEGER :: SN1,SN2,SN3,SN4,SN5,SN6,SN7,SN8,SN9,NELG,
324 . skuix, skxusr ,skfacptx,skxedge,skxfacet,skxsolid,sknumx1,
325 . sknumx2,sknumx3,skoffx1,skoffx2,skoffx3,skmass1,skmass2,
326 . skmass3,skfunc1,skfunc2,skfunc3,skfin,sig3dsolid
327 INTEGER LENR,LENG,LENGC,LENGTG,LENGS,LENGT,LENGR,LENGP,LENGQ,LENGSPH
328 INTEGER SIZE_MES,LONG,LONG_TMP,N
329 INTEGER IFILNAM(2148),IFILNAM_TMP(2148)
330
331 my_real wfexth,enintot,ekintot
332 my_real tabfwr0(10),bid
333 my_real, DIMENSION(:),ALLOCATABLE :: vmcdn
334 my_real, DIMENSION(:),ALLOCATABLE :: csefric,csefric_stamp,csefricg,csefricg_stamp
335
336 INTEGER :: LEN_TMP_NAME,LEN_TMP_NAME2
337 CHARACTER(len=100) :: TMP_NAME,TMP_NAME2
338 CHARACTER FILNAMABF*100,FILNAMABF_TMP*100
339 LOGICAL :: NEED_TO_REINIT_FSAV !< boolean to re-initialize PARTSAV array
340C=======================================================================
341 IF(iplyxfem == 0 ) anim_ply = 0
342 IF(icrack3d > 0 ) anim_crk = 1
343 cptfile=0
344 nsensor = sensors%NSENSOR
345 need_to_reinit_fsav = .false.
346C----------------------
347C FICHIERS NOISE
348C----------------------
349 IF(nnoise>0)THEN
350 CALL noise(
351 1 bufnois,inoise,inoise(2*nnoise+1),bufnois(2),v ,
352 2 a ,ixs ,elbuf_tab ,iparg ,weight,
353 3 ixq )
354 ENDIF
355C-----------------------
356C ECRITURE LISTING
357C-----------------------
358C------- should use relative velocity for dynamic condensed nodes (Nd of S10)
359c
360 IF (ns10e > 0) THEN
361 leng = 3*numnod
362 ALLOCATE(vmcdn(leng))
363 vmcdn(1:leng)=v(1:leng)
364 CALL s10mvnd(icnds10 ,vnd ,vmcdn )
365 CALL cndmasi2(icnds10,nkend,imap2nd,masi2nd0,ms ,v ,a ,
366 1 weight ,mas_nd ,kend )
367 CALL ecrit(timers,partsav ,ms ,vmcdn ,in ,vr ,
368 2 dmas ,weight ,enintot ,ekintot,
369 3 a ,ar ,fxbipm ,fxbrpm ,monvol ,
370 4 xmom_sms ,sensors ,qfricint ,ipari ,
371 5 weight_md,wfexth ,iflag ,ms_2d, multi_fvm ,
372 6 mas_nd ,kend ,h3d_data,dynain_data,user_windows%USREINT,output)
373 DEALLOCATE(vmcdn)
374 ELSE
375 bid = zero
376 CALL ecrit(timers,partsav ,ms ,v ,in ,vr ,
377 2 dmas ,weight ,enintot ,ekintot,
378 3 a ,ar ,fxbipm ,fxbrpm ,monvol ,
379 4 xmom_sms ,sensors ,qfricint ,ipari ,
380 5 weight_md,wfexth ,iflag ,ms_2d, multi_fvm ,
381 6 bid ,bid ,h3d_data,dynain_data,user_windows%USREINT,output)
382 ENDIF
383C-----------------------
384C SAVE TOTAL INTERNAL AND KINETIC ENERGY FOR ENERGY SENSOR
385C-----------------------
386c
387 CALL sensor_energy_total(sensors ,enintot ,ekintot)
388c
389C---------------------------------------
390C CALCUL DU FLUX ET DE LA ROTATION
391C---------------------------------------
392 IF(tt>=output%TH%THIS .AND. nsflsw/=0)
393 . CALL fluxsw(nsflsw,neflsw, nnflsw, crflsw, flsw ,
394 . x ,v ,elbuf )
395C-----------------------------------------------
396C CUMUL MASS SPMD
397C-----------------------------------------------
398 IF(nspmd>1.AND.(anim_n(2)+outp_n(2)>0).AND.
399 . ((tt>=tanim .AND. tt<=tanim_stop).OR.tt>=toutp.OR.
400 . manim==4 .OR.manim==5 .OR.manim==6 .OR.manim==7.OR.
401 . manim==8 .OR.manim==9 .OR.manim==10.OR.manim==11.OR.
402 . manim==12.OR.manim==13.OR.manim==14.OR.manim==15)) THEN
403 lenr = iad_elem(1,nspmd+1)-iad_elem(1,1)
404 CALL spmd_exch_adm(anin(ndma+1),iad_elem,fr_elem,lenr,weight_md)
405 ENDIF
406 IF(nspmd>1.AND.
407 . (anim_n(12)+outp_n(3)>0).AND.
408 . ((tt>=tanim .AND. tt<=tanim_stop).OR.tt>=toutp.OR.
409 . manim==4 .OR.manim==5 .OR.manim==6 .OR.manim==7.OR.
410 . manim==8 .OR.manim==9 .OR.manim==10.OR.manim==11.OR.
411 . manim==12.OR.manim==13.OR.manim==14.OR.manim==15)) THEN
412 lenr = iad_elem(1,nspmd+1)-iad_elem(1,1)
413 CALL spmd_exch_adm(anin(ndin+1),iad_elem,fr_elem,lenr,weight)
414 ENDIF
415C----------------------
416 ! /TH/NODE (PEXT) or /H3D/NODA/PEXT or /ANIM/NODA/PEXT
417 ! gathering NODA_SURF and NODA_PEXT on domain 0
418C----------------------
419 trigger_th = tt >= output%TH%THIS
420 trigger_h3d = (ilasth3d==1.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP) .OR. h3d_data%MH3D ==1 .OR.
421 . (mstop == 1 .AND. ictlstop == 0 .AND. h3d_data%IH3D/= 0) .OR.
422 . (mstop == 2 .AND. h3d_data%IH3D/= 0) .OR.
423 . (dt2<=zero .AND. h3d_data%IH3D/= 0) )
424 trigger_anim = (tt>=tanim .AND. tt<=tanim_stop).OR.
425 . manim==4 .OR.manim==5 .OR.manim==6 .OR.manim==7.OR.
426 . manim==12.OR.manim==13.OR.manim==14.OR.manim==15 .OR.
427 . (mstop == 1 .AND. tanim < ep30 .AND. ictlstop == 0) .OR.
428 . mstop == 2 .OR. dt2<=zero
429 CALL spmd_exch_output_noda_pext(nspmd, nodes, numnod, numnodg,
430 . trigger_th, trigger_anim, trigger_h3d )
431C----------------------
432C Compute contact pressures from normal + tangential contact forces.
433C Tied Contact : Inter type2
434C----------------------
435 iflag_anipcont = 0
436
437 IF((h3d_data%N_SCAL_CSE_FRIC /=0).OR.(h3d_data%N_SCAL_CSE_FRICINT /=0)
438 . .AND.
439 . (tt>=tanim.OR.tt>=toutp.OR.tt>=h3d_data%TH3D .OR.
440 . manim==4 .OR.manim==5 .OR.manim==6 .OR.manim==7.OR.
441 . manim==8 .OR.manim==9 .OR.manim==10.OR.manim==11.OR.
442 . manim==12.OR.manim==13.OR.manim==14.OR.manim==15.OR.
443 . h3d_data%MH3D/=0)) THEN
444
445 IF(ninefric > 0) THEN
446 ALLOCATE(csefric(ninefric*numnod)) ! friction energy by surface unit
447 ELSE
448 ALLOCATE(csefric(0))
449 ENDIF
450 IF(ninefric_stamp > 0) THEN
451 ALLOCATE(csefric_stamp(ninefric_stamp*numnodg)) ! friction energy by surface unit
452
453 ELSE
454 ALLOCATE(csefric_stamp(0))
455 ENDIF
456 IF(h3d_data%N_SCAL_CSE_FRIC /=0) THEN
457 ALLOCATE(csefricg(numnod)) ! Global friction energy by surface unit
458 csefricg = zero
459 IF(nintstamp /= 0) THEN
460 ALLOCATE(csefricg_stamp(numnodg)) ! Global friction energy by surface unit
461 ELSE
462 ALLOCATE(csefricg_stamp(0))
463 ENDIF
464 ELSE
465 ALLOCATE(csefricg(0))
466 ALLOCATE(csefricg_stamp(0))
467 ENDIF
468 ELSE
469 ALLOCATE(csefric(0))
470 ALLOCATE(csefric_stamp(0))
471 ALLOCATE(csefricg(0))
472 ALLOCATE(csefricg_stamp(0))
473 ENDIF
474
475
476 IF(((anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT /=0.OR.
477 . anim_v(27)+h3d_data%N_VECT_PCONT2 /=0..OR.
478 . h3d_data%N_SCAL_CSE_FRIC /=0.OR.h3d_data%N_SCAL_CSE_FRICINT /=0)
479 . .AND.
480 . ((tt>=tanim .AND. tt<=tanim_stop).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP) .OR.
481 . manim==4 .OR.manim==5 .OR.manim==6 .OR.manim==7.OR.
482 . manim==8 .OR.manim==9 .OR.manim==10.OR.manim==11.OR.
483 . manim==12.OR.manim==13.OR.manim==14.OR.manim==15.OR.
484 . h3d_data%MH3D/=0))
485 . .OR.h3d_data%N_VECT_PCONT_MAX>0
486 . .OR.h3d_data%N_VECT_PCONT2_MAX>0)THEN
487 IF(nintstamp==0)THEN
488 CALL ani_pcont(ixs ,ixc ,ixtg ,fasolfr ,x ,
489 . fncont ,ftcont,iad_elem ,fr_elem ,weight ,
490 . ixq ,segquadfr,ixs10 ,fncontp2,ftcontp2,
491 . h3d_data,csefric,csefricg,sz_npcont2,npcont2)
492 ELSE
493 iflag_anipcont = 1
494 CALL ani_pcont21(ixs ,ixc ,ixtg ,fasolfr ,x ,
495 . fncont ,ftcont ,iad_elem,fr_elem ,weight ,
496 . nodglob ,fncontg,ftcontg,fncontp2,ftcontp2,
497 . h3d_data ,csefric_stamp,csefricg_stamp,sz_npcont2,npcont2)
498 END IF
499 END IF
500C------------------------------------------------------
501C Compute maximum contact force and pressure
502C----------------------------------------------------
503 IF(anim_v(26)+h3d_data%N_VECT_CONT_MAX /=0) THEN
504 CALL fcont_max_output(cont,fcontg,nodglob,fcont_max,weight)
505 ENDIF
506 IF(h3d_data%N_VECT_PCONT_MAX /=0) THEN
507 CALL fcont_max_output(fncont,fncontg,nodglob,fncont_max,weight)
508 CALL fcont_max_output(ftcont,ftcontg,nodglob,ftcont_max,weight)
509 ENDIF
510 IF(h3d_data%N_VECT_CONT2_MAX /=0) THEN
511 CALL fcont2_max_output(fncont2,fcont2_max,weight)
512 ENDIF
513 IF(h3d_data%N_VECT_CONT2_MIN /=0) THEN
514 CALL fcont2_min_output(fncont2,fcont2_min,weight)
515 ENDIF
516 IF(h3d_data%N_VECT_PCONT2_MAX /=0) THEN
517 CALL fpcont2_max_output(fncontp2,fncont2_max,sz_npcont2,npcont2,weight,
518 . npcont2_max,numnod)
519 CALL fpcont2_max_output(ftcontp2,ftcont2_max,sz_npcont2,npcont2,weight,
520 . npcont2_max,numnod)
521 ENDIF
522 IF(h3d_data%N_VECT_PCONT2_MIN /=0) THEN
523 CALL fpcont2_min_output(fncontp2,fncont2_min,sz_npcont2,npcont2,weight,
524 . npcont2_min,numnod)
525 CALL fpcont2_min_output(ftcontp2,ftcont2_min,sz_npcont2,npcont2,weight,
526 . npcont2_min,numnod)
527 ENDIF
528
529 IF ( trigger_anim )THEN
530 ianim=ianim+1
531C N1 = 1
532C N2 = N1 + NUMNOD
533C N3 = 1
534C N4 = N3 + 3 * NUMNOD
535C N5 = N4 + NUMMAT + NUMGEO + 1
536C N6 = N5 + NUMELC + NUMELTG + NUMELQ + 6*NUMELS
537C . + NUMELT + NUMELP + NUMELR
538C N7 = N6 + NUMMAT
539
540! need to communicate the SKEW array on main proc
541 CALL spmd_sd_skw_anim(skew,iskwp)
542 nel3d = numels + numsph + 3*numels16
543 nel2d = numelc + numeltg + numelq
544 nel1d = numelt + numelp + 2*numelr + nanim1d
545 nel = max(nel1d,nel2d,nel3d)
546C
547 nelg = max( numelsg+3*numels16g+numsphg+27*numelig3d,
548 . numelcg+numeltgg+numelqg,
549 . numeltrg + numelpg + 2*numelrg + nanim1d)
550 sn1 = max(3*numnod,6*nel3d+6*27*numelig3d,3*nel2d,9*nel1d,numsph)
551 sn2 = nel+3*numels16+numsph
552 sn3 = 3 * numnod + 2*numels16 + 64*numelig3d
553 IF (nspmd > 1) THEN
554 DO ifv = 1, nfvbag
555 IF (kmesh(ifv) > 1) THEN
556 sn3 = sn3 + 3 * fvspmd(ifv)%NNA_L
557 ENDIF
558 ENDDO
559 ENDIF
560 sn4 = npart + 1
561 sn5 = nel2d
562 sn6 = npart
563 sn7 = nelg + 1
564 n1 = 1
565 n2 = n1 + max(3*numnod,6*nel3d,3*nel2d,9*nel1d)
566 n3 = n2 + nel
567 n4 = n3 + 3 * numnod
568 n5 = n4 + npart + 1
569 n6 = n5 + nel2d
570 n7 = n6 + npart
571 n8 = n7 + nel + 1
572 IF ((numelx>0) .OR. (numelxg>0)) THEN
573
574 skuix = 2*maxnx
575 skxusr = 3*maxnx
576 skfacptx = npart
577 skxedge = 2*nanim1d
578 skxfacet = 4*nanim2d
579 skxsolid = 8*nanim3d
580 sknumx1 = nanim1d
581 sknumx2 = nanim2d
582 sknumx3 = nanim3d
583 skoffx1 = nanim1d
584 skoffx2 = nanim2d
585 skoffx3 = nanim3d
586 skmass1 = nanim1d
587 skmass2 = nanim2d
588 skmass3 = nanim3d
589 skfunc1 = 10*nanim1d
590 skfunc2 = 10*nanim2d
591 skfunc3 = 10*nanim3d
592 ELSE
593 skuix = 1
594 skxusr = 1
595 skfacptx = 1
596 skxedge = 1
597 skxfacet = 1
598 skxsolid = 1
599 sknumx1 = 1
600 sknumx2 = 1
601 sknumx3 = 1
602 skoffx1 = 1
603 skoffx2 = 1
604 skoffx3 = 1
605 skmass1 = 1
606 skmass2 = 1
607 skmass3 = 1
608 skfunc1 = 1
609 skfunc2 = 1
610 skfunc3 = 1
611 ENDIF
612c a modifier
613 sig3dsolid = 8*27*numelig3d
614c
615 sn9 = npart
616C
617 k1=1+lipart1*(npart+nthpart)+2*9*(npart+nthpart)
618 k2=k1+numels
619 k3=k2+numelq
620 k4=k3+numelc
621 k5=k4+numelt
622 k6=k5+numelp
623 k7=k6+numelr
624 k8=k7+0
625 k9=k8+numeltg
626 k10=k9+numelx
627 k11=k10+numsph
628 k12=k11+numelig3d
629 l1=1+6*(numelc+numeltg)*iepsdot
630c
631 CALL genani(
632 1 x ,d ,v ,a ,elbuf ,
633 2 ixs ,ixq ,ixc ,ixt ,ixp ,
634 3 ixr ,ixtg ,sn1 ,sn2 ,sn3 ,
635 4 sn4 ,iparg ,pm ,geo ,ms ,
636 5 sn5 ,cont ,sn6 ,icut ,skew ,
637 6 xcut ,fint ,itab ,sn7 ,fext ,
638 7 fopt ,anin ,lpby ,npby ,nstrf ,
639 8 rwbuf ,nprw ,tani ,elbuf_tab ,mat_param,
640 a dd_iad ,weight ,eani ,ipart ,cluster ,
641 b ipart(k1) ,ipart(k2) ,ipart(k3) ,ipart(k4) ,ipart(k5) ,
642 c ipart(k6) ,ipart(k7) ,ipart(k8) ,
643 d rby ,sn3 ,tani(l1) ,nom_opt ,igrsurf ,
644 e bufsf ,idata ,rdata ,sn9 ,bufmat ,
645 f bufgeo ,kxx ,ixx ,ipart(k9) ,skuix ,
646 g skxusr ,skfacptx ,skxedge ,skxfacet ,skxsolid ,
647 h sknumx1 ,sknumx2 ,sknumx3 ,skoffx1 ,skoffx2 ,
648 i skoffx3 ,skmass1 ,skmass2 ,skmass3 ,skfunc1 ,
649 j skfunc2 ,skfunc3 ,kxsp ,ixsp ,nod2sp ,
650 k ipart(k10) ,spbuf ,ixs10 ,ixs20 ,ixs16 ,
651 l vr ,monvol ,volmon ,ipm ,igeo,nodglob,
652 m iad_elem ,fr_elem ,fr_sec ,fr_rby2 ,iad_rby2 ,
653 n fr_wall ,iflow ,rflow ,fncont ,ftcont ,
654 o temp ,thke ,err_thk_sh4 ,err_thk_sh3 ,diag_sms,
655 p ipari ,fncont2 ,dr ,ale_connect ,
656 q irbe2 ,irbe3 ,lrbe2 ,lrbe3 ,fr_rbe2 ,
657 r fr_rbe3m ,iad_rbe2 ,dxancg ,inod_pxfem ,iel_pxfem,
658 s zi_ply ,vgaz ,fcontg ,fncontg ,ftcontg ,
659 t fanreac ,inod_crk ,iel_crk ,elcutc ,iadc_crk ,
660 u pdama2 ,res_sms ,weight_md ,nodglobxfe ,nodedge ,
661 v fcluster ,mcluster ,xfem_tab ,w ,
662 w nv46 ,ipart(k11),kxig3d ,ixig3d ,sig3dsolid,
663 x knot ,wige ,nercvois ,nesdvois ,lercvois ,
664 y lesdvois ,crkedge ,indx_crk ,xedge4n ,xedge3n ,
665 z stack ,sph2sol ,stifn ,stifr ,igrnod ,
666 1 h3d_data ,subset ,multi_fvm ,knotlocpc ,knotlocel ,
667 2 fcont_max ,fncontp2 ,ftcontp2 ,glob_therm ,
668 . drape_sh4n, drape_sh3n, drapeg,output )
669c
670 ENDIF
671 IF((tt>=tanim .AND. tt<=tanim_stop))tanim=tanim+dtanim
672 IF ((tstop<tanim).AND.(tanim<tstop+em06*tstop)
673 . .AND.(tstop+em06*tstop<tanim+dtanim)) THEN
674 tanim=tstop
675 END IF
676C-----------------------------------------------
677C H3D FILE
678C-----------------------------------------------
679 IF (ilasth3d==1.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP) .OR. h3d_data%MH3D ==1 .OR.
680 . (mstop == 1 .AND. ictlstop == 0 .AND. h3d_data%IH3D/= 0) .OR.
681 . (mstop == 2 .AND. h3d_data%IH3D/= 0) .OR.
682 . (dt2<=zero .AND. h3d_data%IH3D/= 0) )THEN
683
684 h3d_data%IH3D=h3d_data%IH3D+1
685
686
687 nel3d = numels + numsph + 3*numels16
688 nel2d = numelc + numeltg + numelq
689 nel1d = numelt + numelp + 2*numelr + nanim1d
690 nel = max(nel1d,nel2d,nel3d)
691C
692 nelg = max( numelsg+3*numels16g+numsphg+27*numelig3d,
693 . numelcg+numeltgg+numelqg,
694 . numeltrg + numelpg + 2*numelrg + nanim1d)
695 sn1 = max(3*numnod,6*nel3d+6*27*numelig3d,3*nel2d,9*nel1d,numsph)
696 sn2 = nel+3*numels16+numsph
697 sn3 = 3 * numnod + 2*numels16 + 64*numelig3d
698 sn4 = npart + 1
699 sn5 = nel2d
700 sn6 = npart
701 sn7 = nelg + 1
702 n1 = 1
703 n2 = n1 + max(3*numnod,6*nel3d,3*nel2d,9*nel1d)
704 n3 = n2 + nel
705 n4 = n3 + 3 * numnod
706 n5 = n4 + npart + 1
707 n6 = n5 + nel2d
708 n7 = n6 + npart
709 n8 = n7 + nel + 1
710 IF ( (numelx>0) .OR.(numelxg>0) ) THEN
711
712 skuix = 2*maxnx
713 skxusr = 3*maxnx
714 skfacptx = npart
715 skxedge = 2*nanim1d
716 skxfacet = 4*nanim2d
717 skxsolid = 8*nanim3d
718 sknumx1 = nanim1d
719 sknumx2 = nanim2d
720 sknumx3 = nanim3d
721 skoffx1 = nanim1d
722 skoffx2 = nanim2d
723 skoffx3 = nanim3d
724 skmass1 = nanim1d
725 skmass2 = nanim2d
726 skmass3 = nanim3d
727 skfunc1 = 10*nanim1d
728 skfunc2 = 10*nanim2d
729 skfunc3 = 10*nanim3d
730 ELSE
731 skuix = 1
732 skxusr = 1
733 skfacptx = 1
734 skxedge = 1
735 skxfacet = 1
736 skxsolid = 1
737 sknumx1 = 1
738 sknumx2 = 1
739 sknumx3 = 1
740 skoffx1 = 1
741 skoffx2 = 1
742 skoffx3 = 1
743 skmass1 = 1
744 skmass2 = 1
745 skmass3 = 1
746 skfunc1 = 1
747 skfunc2 = 1
748 skfunc3 = 1
749 ENDIF
750c a modifier
751 sig3dsolid = 8*27*numelig3d
752c
753 sn9 = npart
754C
755 k1=1+lipart1*(npart+nthpart)+2*9*(npart+nthpart)
756 k2=k1+numels
757 k3=k2+numelq
758 k4=k3+numelc
759 k5=k4+numelt
760 k6=k5+numelp
761 k7=k6+numelr
762 k8=k7+0
763 k9=k8+numeltg
764 k10=k9+numelx
765 k11=k10+numsph
766 k12=k11+numelig3d
767 l1=1+6*(numelc+numeltg)*iepsdot
768c
769 CALL genh3d(timers,
770 1 x ,d ,v ,a ,elbuf ,
771 2 ixs ,ixq ,ixc ,ixt ,ixp ,
772 3 ixr ,ixtg ,sn1 ,sn2 ,sn3 ,
773 4 sn4 ,iparg ,pm ,geo ,ms ,
774 5 sn5 ,cont ,sn6 ,icut ,skew ,
775 6 xcut ,fint ,itab ,sn7 ,fext ,
776 7 fopt ,anin ,lpby ,npby ,nstrf ,
777 8 rwbuf ,nprw ,tani ,elbuf_tab ,mat_param,
778 a dd_iad ,weight ,eani ,ipart ,cluster ,
779 b ipart(k1) ,ipart(k2) ,ipart(k3) ,ipart(k4) ,ipart(k5) ,
780 c ipart(k6) ,ipart(k7) ,ipart(k8) ,
781 d rby ,sn3 ,tani(l1) ,nom_opt ,
782 e bufsf ,idata ,rdata ,sn9 ,bufmat ,
783 f bufgeo ,kxx ,ixx ,ipart(k9) ,skuix ,
784 g skxusr ,skfacptx ,skxedge ,skxfacet ,skxsolid ,
785 h sknumx1 ,sknumx2 ,sknumx3 ,skoffx1 ,skoffx2 ,
786 i skoffx3 ,skmass1 ,skmass2 ,skmass3 ,skfunc1 ,
787 j skfunc2 ,skfunc3 ,kxsp ,ixsp ,nod2sp ,
788 k ipart(k10) ,spbuf ,ixs10 ,ixs20 ,ixs16 ,
789 l vr ,monvol ,volmon ,ipm ,igeo,nodglob,
790 m iad_elem ,fr_elem ,fr_sec ,fr_rby2 ,iad_rby2 ,
791 n fr_wall ,iflow ,rflow ,fncont ,ftcont ,
792 o temp ,thke ,err_thk_sh4 ,err_thk_sh3 ,diag_sms,
793 p ipari ,fncont2 ,dr ,ale_connect ,
794 q irbe2 ,irbe3 ,lrbe2 ,lrbe3 ,fr_rbe2 ,
795 r fr_rbe3m ,iad_rbe2 ,dxancg ,inod_pxfem ,iel_pxfem,
796 s zi_ply ,vgaz ,fcontg ,fncontg ,ftcontg ,
797 t fanreac ,inod_crk ,iel_crk ,elcutc ,iadc_crk ,
798 u pdama2 ,res_sms ,weight_md ,nodglobxfe ,nodedge ,
799 v fcluster ,mcluster ,xfem_tab ,w ,
800 w nv46 ,ipart(k11),kxig3d ,ixig3d ,sig3dsolid,
801 x knot ,wige ,nercvois ,nesdvois ,lercvois ,
802 y lesdvois ,crkedge ,indx_crk ,xedge4n ,xedge3n ,
803 z stack ,sph2sol ,stifn ,stifr ,igrnod ,
804 1 sh4tree ,sh3tree ,h3d_data ,multi_fvm ,subset ,
805 2 pskids ,tag_skins6,tf ,npc ,fcont_max ,
806 3 mds_matid ,fncontp2 ,ftcontp2 ,ibcl ,iloadp ,
807 4 lloadp ,loadp ,sensors ,tagncont ,loadp_hyd_inter,
808 5 xframe ,forc ,ar ,csefric ,csefricg ,
809 6 csefric_stamp,csefricg_stamp,table ,iframe ,loads ,
810 7 drape_sh4n, drape_sh3n, drapeg ,x_c ,glob_therm,pblast)
811 ENDIF
812 IF(ALLOCATED(csefric)) DEALLOCATE(csefric)
813 IF(ALLOCATED(csefricg)) DEALLOCATE(csefricg)
814 IF(ALLOCATED(csefric_stamp)) DEALLOCATE(csefric_stamp)
815 IF(ALLOCATED(csefricg_stamp)) DEALLOCATE(csefricg_stamp)
816
817 IF(tt>=h3d_data%TH3D) h3d_data%TH3D = h3d_data%TH3D + h3d_data%DTH3D
818 IF((tstop< h3d_data%TH3D).AND.(h3d_data%TH3D < tstop+em06*tstop) .AND.(tstop+em06*tstop< h3d_data%TH3D + h3d_data%DTH3D)) THEN
819 h3d_data%TH3D = tstop
820 END IF
821
822 IF (ispmd==0) THEN
823 leng = numnodg
824 ELSE
825 leng = 0
826 ENDIF
827C
828 IF(tt>=toutp.OR.
829 . manim==8 .OR.manim==9 .OR.manim==10.OR.manim==11.OR.
830 . manim==12.OR.manim==13.OR.manim==14.OR.manim==15.OR.
831 . moutpt==1) THEN
832 ioutp=ioutp+1
833 CALL genoutp(x ,d ,v ,a ,
834 2 ixs ,ixq ,ixc ,ixt ,ixp ,
835 3 ixr ,ixtg ,iparg ,pm ,igeo ,
836 4 ms ,cont ,itab ,partsav,fint ,
837 5 fext ,tani ,eani ,anin ,ipart ,
838 6 vr ,elbuf_tab ,dd_iad ,weight,
839 7 ipm ,kxsp ,spbuf ,nodglob,leng ,
840 8 fopt ,nom_opt ,npby ,fncont ,ftcont ,
841 9 geo ,thke ,stack ,drape_sh4n, drape_sh3n,
842 a drapeg,output)
843 IF(tt>=toutp)toutp=toutp+dtoutp
844 IF ((tstop<toutp).AND.(toutp<tstop+em06*tstop)
845 . .AND.(tstop+em06*tstop<toutp+dtoutp)) THEN
846 toutp=tstop
847 END IF
848 END IF
849C
850C .sta files
851 IF(tt>=tstat.OR.
852 . manim==8 .OR.manim==9 .OR.manim==10.OR.manim==11.OR.
853 . manim==12.OR.manim==13.OR.manim==14.OR.manim==15.OR.
854 . mstatt==1) THEN
855 istatf=istatf+1
856
857 k1=1+lipart1*(npart+nthpart)+2*9*(npart+nthpart)
858 k2=k1+numels
859 k3=k2+numelq
860 k4=k3+numelc
861 k5=k4+numelt
862 k6=k5+numelp
863 k7=k6+numelr
864 k8=k7+0
865 k9=k8+numeltg
866 k10=k9+numelx
867 k11=k10+numsph
868C
869 IF (ispmd==0) THEN
870 lengc = numelcg
871 lengtg= numeltgg
872 lengs = numelsg
873 lengr = numelrg
874 lengp = numelpg
875 lengt = numeltrg
876 lengq = numelqg
877 lengsph = numsphg
878 ELSE
879 lengc = 0
880 lengtg= 0
881 lengs = 0
882 lengr = 0
883 lengp = 0
884 lengt = 0
885 lengq = 0
886 lengsph = 0
887 ENDIF
888C
889 CALL genstat(x ,ms ,elbuf_tab, elbuf ,spbuf ,
890 2 ixs ,ixq ,ixc ,ixt ,ixp ,
891 3 ixr ,ixtg ,kxsp ,iparg ,ipm ,
892 4 igeo ,itab ,ipart ,pm ,geo ,
893 5 ipart(k1),ipart(k2),ipart(k3),ipart(k4),ipart(k5) ,
894 6 ipart(k6),ipart(k7),ipart(k8),ipart(k9),ipart(k10),
895 7 dd_iad ,weight,nodglob ,leng ,ipart_state,
896 8 lengc ,lengtg,sh4tree ,sh3tree, lengs,
897 9 sh4trim ,sh3trim,temp ,ixs10 ,thke ,
898 a ixs16 ,ixs20 ,icode ,lengr ,lengp ,
899 b lengt ,iskew ,v ,vr ,lengq ,
900 c multi_fvm,bufmat ,npby ,lpby ,stack ,
901 d drape_sh4n, drape_sh3n,dr,drapeg ,mat_param,
902 e ipart(k10),output,lengsph,numsphg,glob_therm%ITHERM_FE)
903 IF(tt>=tstat)tstat=tstat+dtstat
904 IF ((tstop<tstat).AND.(tstat<tstop+em06*tstop)
905 . .AND.(tstop+em06*tstop<tstat+dtstat)) THEN
906 tstat=tstop
907 END IF
908 END IF
909C----------------------
910C DYNAIN FILE
911C----------------------
912 IF(tt>=dynain_data%TDYNAIN) THEN
913 dynain_data%IDYNAINF=dynain_data%IDYNAINF+1
914
915 k1=1+lipart1*(npart+nthpart)+2*9*(npart+nthpart)
916 k2=k1+numels
917 k3=k2+numelq
918 k4=k3+numelc
919 k5=k4+numelt
920 k6=k5+numelp
921 k7=k6+numelr
922 k8=k7+0
923 k9=k8+numeltg
924 k10=k9+numelx
925 k11=k10+numsph
926C
927 IF (ispmd==0) THEN
928 lengc = numelcg
929 lengtg= numeltgg
930 ELSE
931 lengc = 0
932 lengtg= 0
933 ENDIF
934C
935 CALL gendynain(x ,elbuf_tab, elbuf ,ixc ,ixtg ,
936 2 iparg ,ipm , igeo ,itab ,ipart ,
937 3 pm ,geo , ipart(k3),ipart(k8),leng ,
938 4 lengc ,lengtg , weight ,nodglob ,thke ,
939 5 npby ,lpby , stack ,drape_sh4n ,drape_sh3n ,
940 6 dynain_data,drapeg ,mat_param)
941
942 IF(tt>=dynain_data%TDYNAIN)dynain_data%TDYNAIN=dynain_data%TDYNAIN+dynain_data%DTDYNAIN
943 IF ((tstop<dynain_data%TDYNAIN).AND.(dynain_data%TDYNAIN<tstop+em06*tstop)
944 . .AND.(tstop+em06*tstop<dynain_data%TDYNAIN+dynain_data%DTDYNAIN)) THEN
945 dynain_data%TDYNAIN=tstop
946 END IF
947 END IF
948
949C----------------------
950C FICHIERS G ET T
951C----------------------
952 IF(nabfile /= 0) THEN
953 tabfwr0(1) = tabfwr(1)
954 tabfwr0(2) = tabfwr(2)
955 tabfwr0(3) = tabfwr(3)
956 tabfwr0(4) = tabfwr(4)
957 tabfwr0(5) = tabfwr(5)
958 tabfwr0(6) = tabfwr(6)
959 tabfwr0(7) = tabfwr(7)
960 tabfwr0(8) = tabfwr(8)
961 tabfwr0(9) = tabfwr(9)
962 tabfwr0(10) = tabfwr(10)
963 ENDIF
964 IF(ninter+nexmad/=0.AND.anim_v(4)+outp_v(4)+h3d_data%N_VECT_CONT > 0)THEN
965 IF(sfani >0)CALL anicon0(cont,numnod)
966 !law151 reaction forces can be output only with H3D (not ANIM files since vectors are at element centroids)
967 IF (multi_fvm%IS_USED .AND. h3d_data%N_VECT_CONT > 0)CALL anicon0(fani_cell%F18,numels+numelq) !/H3D/ELEM/VECT/CONT
968 ENDIF
969 IF(nintstamp/=0.AND.anim_v(4)+outp_v(4)+h3d_data%N_VECT_CONT >0)THEN
970 CALL anicon2(fcontg,ncont,indexcont)
971 ENDIF
972 IF(ninter/=0.AND.anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT>0)THEN
973 CALL anicon0(fncont,numnod)
974 CALL anicon0(ftcont,numnod)
975 ENDIF
976 IF(nintstamp/=0.AND.anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT>0)THEN
977 IF(iflag_anipcont > 0) THEN
978 CALL anicon0(fncontg,numnodg)
979 CALL anicon0(ftcontg,numnodg)
980 ELSE
981 CALL anicon2(fncontg,ncont,indexcont)
982 CALL anicon2(ftcontg,ncont,indexcont)
983 ENDIF
984 ENDIF
985
986 IF(ninter/=0.AND.anim_v(27)+h3d_data%N_VECT_PCONT2>0)THEN
987 CALL anicon0(fncontp2,numnod)
988 CALL anicon0(ftcontp2,numnod)
989 CALL anicon0(npcont2,numnod)
990 ENDIF
991
992 n1 = 1
993C second tableau temporaire de taille ngroup pour le spmd
994 n2 = 1
995C
996 IF (th_vers < 40)THEN
997
998 WRITE(istdo,*)' ** ERROR : TH VERSION OLDER THAN 41 IS ',
999 * 'NO MORE SUPPORTED'
1000 ELSE
1001c check if an update of any output (TH,tha,thb,abf,..) is done
1002c in this case set flag to 1
1003 thupdt = 0
1004 IF(tt>=output%TH%THIS) THEN
1005 thupdt = 1
1006 ELSEIF(nabfile/=0)THEN
1007 IF(tt>=tabfis(1)) thupdt = 1
1008 ENDIF
1009 IF(thupdt==0)THEN
1010 DO i=1,9
1011 IF(tt>=output%TH%THIS1(i)) THEN
1012 thupdt = 1
1013 ELSEIF(nabfile/=0)THEN
1014 IF(tt>=tabfis(i+1)) thupdt = 1
1015 ENDIF
1016 ENDDO
1017 ENDIF
1018
1019 IF (ilastanim/=1.AND.ilastanim/=2) THEN
1020C to avoid double points
1021 IF (nthgrp01(1)/=0)THEN
1022 iunit = iuhi(1)
1023 ifil = iunit
1024 IF (tt>=output%TH%THIS1(1))THEN
1025 size_mes=1
1026 ELSE
1027 size_mes=0
1028 ENDIF
1029 ithflag = 1
1030 CALL hist2(pm ,d ,x ,v ,a ,
1031 2 ixs ,elbuf,wa(n2),iparg,sensors%SENSOR_TAB,
1032 4 fsav ,flsw ,skew,elbuf_tab,cluster,
1033 5 partsav,accelm,nsensor ,mat_param,
1034 6 weight,ipart,igrsurf,ebcs_tab,
1035 7 output%TH%ITHGRPA, output%TH%ITHBUFA, subset,geo ,
1036 8 kxx ,ixr,
1037 9 kxsp ,nod2sp ,spbuf ,
1038 b ar ,vr ,dr,
1039 d ixri ,rivet ,ixp ,
1040 e iskwn ,iframe ,xframe ,ixc ,ixq ,
1041 f output%TH%DTHIS1(1),output%TH%THIS1(1), ifil, nthgrp1(1),ixtg ,
1042 g igeo ,ipm ,
1043 h ipartl,npartl, iaccp , naccp ,
1044 i iparth ,2 ,1 ,
1045 j monvol,volmon,fr_mv ,temp,inod_pxfem,
1046 k fthreac,nodreac,gresav ,gauge ,
1047 l igaup ,ngaup ,aform(1),size_mes,
1048 m rthbuf ,thke ,stack ,isphio ,vsphio,
1049 n ithflag,pinch_data,multi_fvm,w,output%TH%SITHBUFA,
1050 q fsavsurf,need_to_reinit_fsav,glob_therm,output)
1051
1052 IF (size_mes==1 .AND.aform(1)==3 .AND.ispmd==0 )
1053 * CALL file_size(multithfilesize(1))
1054
1055
1056
1057 IF(abfile(2) /= 0) THEN
1058#ifdef DNC
1059 ifilabf = 12
1060 CALL abfhist2(pm ,d ,x ,v ,a ,
1061 2 ixs ,elbuf,wa(n2),iparg,
1062 4 fsav ,flsw ,skew,elbuf_tab,sensors%SENSOR_TAB,
1063 5 partsav,accelm,lout ,nsensor ,mat_param,
1064 6 ipari,weight,ipart,igrsurf,
1065 7 output%TH%ITHGRPA,output%TH%ITHBUFA,subset,geo ,
1066 8 kxx ,ixr,
1067 9 kxsp ,nod2sp ,spbuf ,
1068 b npartsav,ar ,vr ,dr,
1069 d fsavd ,ixri ,rivet , ixp ,
1070 e iskwn ,iframe ,xframe,ixc ,ixq,
1071 f dtabf(2), tabfis(2),ifilabf,nthgrp1(1),ixtg,
1072 g igeo ,ipm ,fxbipm, fxbdep, fxbvit,
1073 h fxbacc ,ipartl,npartl, iaccp , naccp ,
1074 i iparth ,2 ,1 ,
1075 j 1 ,monvol ,volmon,fr_mv ,temp,inod_pxfem,
1076 k fthreac,nodreac,gresav ,tabfwr(2),
1077 l 2 ,gauge ,igaup,ngaup ,rthbuf ,thke ,
1078 m stack ,isphio ,vsphio,ithflag,1,pinch_data,multi_fvm,w,
1079 n output%TH%SITHBUFA)
1080 cptfile=cptfile+1
1081
1082 IF(tt>=tabfwr0(2) .AND. ispmd == 0) THEN
1083 filnamabf_tmp=rootnam(1:rootlen)//'_'//chrun//'_a.tmp'
1084 long_tmp = 11
1085 len_tmp_name = outfile_name_len+long_tmp+rootlen
1086 tmp_name=outfile_name(1:outfile_name_len)//filnamabf_tmp(1:long_tmp+rootlen)
1087 filnamabf=rootnam(1:rootlen)//'_'//chrun//'_a.abf'
1088 long = 11
1089
1090 len_tmp_name2 = outfile_name_len+long+rootlen
1091 tmp_name2=outfile_name(1:outfile_name_len)//filnamabf(1:long+rootlen)
1092 DO i=1,len_tmp_name2!ROOTLEN+LONG
1093 ifilnam(i)=ichar(tmp_name2(i:i))!FILNAMABF(I:I))
1094 ENDDO
1095 DO i=1,len_tmp_name!ROOTLEN+LONG_TMP
1096 ifilnam_tmp(i)=ichar(tmp_name(i:i))!(FILNAMABF_TMP(I:I))
1097 ENDDO
1098! CALL ABFFILE_UPDATE(ABINP,ABOUT,NABFWR(2),IFILNAM,
1099! . ROOTLEN+LONG,IFILNAM_TMP,ROOTLEN+LONG_TMP,
1100! . CPTFILE)
1101 CALL abffile_update(abinp,about,nabfwr(2),ifilnam,
1102 . len_tmp_name2,ifilnam_tmp,len_tmp_name,
1103 . cptfile)
1104 nabfwr(2) = 0
1105 ENDIF
1106#endif
1107 ELSE
1108 tabfis(2)= ep30
1109 ENDIF
1110
1111 ELSE
1112 output%TH%THIS1(1)= ep30
1113 tabfis(2)= ep30
1114 ENDIF
1115C
1116 IF(nthgrp01(2)/=0)THEN
1117 iunit = iuhi(2)
1118 ifil = iunit
1119 IF (tt>=output%TH%THIS1(2))THEN
1120 size_mes=1
1121 ELSE
1122 size_mes=0
1123 ENDIF
1124 ithflag = 2
1125 CALL hist2(pm ,d ,x ,v ,a ,
1126 2 ixs ,elbuf,wa(n2),iparg,sensors%SENSOR_TAB,
1127 4 fsav ,flsw ,skew,elbuf_tab,cluster,
1128 5 partsav,accelm,nsensor ,mat_param,
1129 6 weight,ipart,igrsurf,ebcs_tab,
1130 7 output%TH%ITHGRPB,output%TH%ITHBUFB,subset,geo ,
1131 8 kxx ,ixr,
1132 9 kxsp ,nod2sp ,spbuf ,
1133 b ar ,vr ,dr,
1134 d ixri ,rivet ,ixp ,
1135 e iskwn ,iframe ,xframe,ixc ,ixq ,
1136 f output%TH%DTHIS1(2),output%TH%THIS1(2), ifil, nthgrp1(2),ixtg ,
1137 g igeo ,ipm ,
1138 h ipartl,npartl, iaccp , naccp ,
1139 i iparth(1,(npart+nthpart)+1),2,1,
1140 j monvol ,volmon,fr_mv ,temp,inod_pxfem,
1141 k fthreac,nodreac,gresav ,gauge ,
1142 l igaup ,ngaup, aform(2),size_mes,
1143 m rthbuf ,thke ,stack,isphio ,vsphio,
1144 n ithflag,pinch_data,multi_fvm,w,output%TH%SITHBUFB,
1145 q fsavsurf,need_to_reinit_fsav,glob_therm,output)
1146
1147 IF (size_mes==1 .AND.aform(2)==3 .AND.ispmd==0 )
1148 * CALL file_size(multithfilesize(2))
1149
1150 IF(abfile(3) /= 0) THEN
1151#ifdef DNC
1152 ifilabf = 13
1153 CALL abfhist2(pm ,d ,x ,v ,a ,
1154 2 ixs ,elbuf,wa(n2),iparg,
1155 4 fsav ,flsw ,skew,elbuf_tab,sensors%SENSOR_TAB,
1156 5 partsav,accelm,lout ,nsensor ,mat_param,
1157 6 ipari,weight,ipart,igrsurf,
1158 7 output%TH%ITHGRPB,output%TH%ITHBUFB,subset,geo ,
1159 8 kxx ,ixr,
1160 9 kxsp ,nod2sp ,spbuf ,
1161 b npartsav,ar ,vr ,dr,
1162 d fsavd ,ixri ,rivet , ixp ,
1163 e iskwn ,iframe ,xframe,ixc ,ixq,
1164 f dtabf(3), tabfis(3),ifilabf,nthgrp1(2),ixtg ,
1165 g igeo ,ipm ,fxbipm, fxbdep, fxbvit,
1166 h fxbacc ,ipartl,npartl, iaccp , naccp ,
1167 i iparth(1,(npart+nthpart)+1),2 ,1 ,
1168 j 1 ,monvol ,volmon,fr_mv ,temp,inod_pxfem,
1169 k fthreac,nodreac,gresav ,tabfwr(3),
1170 l 3 ,gauge ,igaup,ngaup ,rthbuf ,thke,
1171 m stack ,isphio ,vsphio,ithflag,2,pinch_data,multi_fvm,w,
1172 n output%TH%SITHBUFB )
1173 cptfile=cptfile+1
1174
1175 IF(tt>=tabfwr0(3) .AND. ispmd == 0) THEN
1176 filnamabf_tmp=rootnam(1:rootlen)//'_'//chrun//'_b.tmp'
1177 long_tmp = 11
1178 len_tmp_name = outfile_name_len+long_tmp+rootlen
1179 tmp_name=outfile_name(1:outfile_name_len)//filnamabf_tmp(1:long_tmp+rootlen)
1180
1181 filnamabf=rootnam(1:rootlen)//'_'//chrun//'_b.abf'
1182 long = 11
1183 len_tmp_name2 = outfile_name_len+long+rootlen
1184 tmp_name2=outfile_name(1:outfile_name_len)//filnamabf(1:long+rootlen)
1185
1186 DO i=1,len_tmp_name2!ROOTLEN+LONG
1187 ifilnam(i)=ichar(tmp_name2(i:i))!FILNAMABF(I:I))
1188 ENDDO
1189 DO i=1,len_tmp_name!ROOTLEN+LONG_TMP
1190 ifilnam_tmp(i)=ichar(tmp_name(i:i))!(FILNAMABF_TMP(I:I))
1191 ENDDO
1192
1193 CALL abffile_update(abinp,about,nabfwr(3),ifilnam,
1194 . len_tmp_name2,ifilnam_tmp,len_tmp_name,
1195 . cptfile)
1196 nabfwr(3) = 0
1197 ENDIF
1198#endif
1199 ELSE
1200 tabfis(3)= ep30
1201 ENDIF
1202
1203
1204
1205 ELSE
1206 output%TH%THIS1(2)= ep30
1207 tabfis(3)= ep30
1208 ENDIF
1209C
1210 IF(nthgrp01(3)/=0)THEN
1211 iunit = iuhi(3)
1212 ifil = iunit
1213!
1214 IF (tt>=output%TH%THIS1(3))THEN
1215 size_mes=1
1216 ELSE
1217 size_mes=0
1218 ENDIF
1219 ithflag = 3
1220 CALL hist2(pm ,d ,x ,v ,a ,
1221 2 ixs ,elbuf,wa(n2),iparg,sensors%SENSOR_TAB,
1222 4 fsav ,flsw ,skew,elbuf_tab,cluster,
1223 5 partsav,accelm,nsensor ,mat_param,
1224 6 weight,ipart,igrsurf,ebcs_tab,
1225 7 output%TH%ITHGRPC,output%TH%ITHBUFC,subset,geo ,
1226 8 kxx ,ixr,
1227 9 kxsp ,nod2sp ,spbuf ,
1228 b ar ,vr ,dr,
1229 d ixri ,rivet , ixp ,
1230 e iskwn ,iframe ,xframe,ixc ,ixq ,
1231 f output%TH%DTHIS1(3),output%TH%THIS1(3), ifil, nthgrp1(3),ixtg ,
1232 g igeo ,ipm ,
1233 h ipartl,npartl, iaccp , naccp ,
1234 i iparth(1,2*(npart+nthpart)+1),2,1,
1235 j monvol ,volmon,fr_mv ,temp,inod_pxfem,
1236 k fthreac,nodreac,gresav ,gauge ,
1237 l igaup ,ngaup ,aform(3),size_mes,
1238 m rthbuf ,thke ,stack ,isphio ,vsphio,
1239 n ithflag,pinch_data,multi_fvm,w,output%TH%SITHBUFC,
1240 q fsavsurf,need_to_reinit_fsav,glob_therm,output)
1241
1242 IF(size_mes==1 .AND.
1243 * aform(3)==3 .AND.
1244 * ispmd==0 ) CALL file_size(multithfilesize(3))
1245 IF(abfile(4) /= 0) THEN
1246#ifdef DNC
1247 ifilabf = 14
1248 CALL abfhist2(pm ,d ,x ,v ,a ,
1249 2 ixs ,elbuf,wa(n2),iparg,
1250 4 fsav ,flsw ,skew,elbuf_tab,sensors%SENSOR_TAB,
1251 5 partsav,accelm,lout ,nsensor ,mat_param,
1252 6 ipari,weight,ipart,igrsurf,
1253 7 output%TH%ITHGRPC,output%TH%ITHBUFC,subset,geo ,
1254 8 kxx ,ixr,
1255 9 kxsp ,nod2sp ,spbuf ,
1256 b npartsav,ar ,vr ,dr,
1257 d fsavd ,ixri ,rivet , ixp ,
1258 e iskwn ,iframe ,xframe,ixc ,ixq,
1259 f dtabf(4), tabfis(4),ifilabf,nthgrp1(1),ixtg ,
1260 g igeo ,ipm ,fxbipm, fxbdep, fxbvit,
1261 h fxbacc ,ipartl,npartl, iaccp , naccp ,
1262 i ipart ,2 ,1 ,
1263 j 1 ,monvol ,volmon,fr_mv ,temp,inod_pxfem,
1264 k fthreac,nodreac,gresav ,tabfwr(4),
1265 l 4 ,gauge ,igaup,ngaup ,rthbuf ,thke ,
1266 m stack ,isphio ,vsphio,ithflag,1,pinch_data,multi_fvm,w,
1267 n output%TH%SITHBUFC)
1268 cptfile=cptfile+1
1269
1270 IF(tt>=tabfwr0(4) .AND. ispmd == 0) THEN
1271 filnamabf_tmp=rootnam(1:rootlen)//'_'//chrun//'_c.tmp'
1272 long_tmp = 11
1273 len_tmp_name = outfile_name_len+long_tmp+rootlen
1274 tmp_name=outfile_name(1:outfile_name_len)//filnamabf_tmp(1:long_tmp+rootlen)
1275
1276 filnamabf=rootnam(1:rootlen)//'_'//chrun//'_c.abf'
1277 long = 11
1278 len_tmp_name2 = outfile_name_len+long+rootlen
1279 tmp_name2=outfile_name(1:outfile_name_len)//filnamabf(1:long+rootlen)
1280
1281 DO i=1,len_tmp_name2!ROOTLEN+LONG
1282 ifilnam(i)=ichar(tmp_name2(i:i))!FILNAMABF(I:I))
1283 ENDDO
1284 DO i=1,len_tmp_name!ROOTLEN+LONG_TMP
1285 ifilnam_tmp(i)=ichar(tmp_name(i:i))!(FILNAMABF_TMP(I:I))
1286 ENDDO
1287 CALL abffile_update(abinp,about,nabfwr(4),ifilnam,
1288 . len_tmp_name2,ifilnam_tmp,len_tmp_name,
1289 . cptfile)
1290 nabfwr(4) = 0
1291 ENDIF
1292#endif
1293 ELSE
1294 tabfis(4)= ep30
1295 ENDIF
1296 ELSE
1297 output%TH%THIS1(3)= ep30
1298 tabfis(4)= ep30
1299 ENDIF
1300C
1301 IF(nthgrp01(4)/=0)THEN
1302 iunit = iuhi(4)
1303 ifil = iunit
1304!
1305 IF (tt>=output%TH%THIS1(4))THEN
1306 size_mes=1
1307 ELSE
1308 size_mes=0
1309 ENDIF
1310 ithflag = 4
1311 CALL hist2(pm ,d ,x ,v ,a ,
1312 2 ixs ,elbuf,wa(n2),iparg,sensors%SENSOR_TAB,
1313 4 fsav ,flsw ,skew,elbuf_tab,cluster,
1314 5 partsav,accelm,nsensor ,mat_param,
1315 6 weight,ipart,igrsurf,ebcs_tab,
1316 7 output%TH%ITHGRPD,output%TH%ITHBUFD,subset,geo ,
1317 8 kxx ,ixr,
1318 9 kxsp ,nod2sp ,spbuf ,
1319 b ar ,vr ,dr,
1320 d ixri ,rivet , ixp,
1321 e iskwn ,iframe ,xframe,ixc ,ixq ,
1322 f output%TH%DTHIS1(4),output%TH%THIS1(4), ifil, nthgrp1(4),ixtg ,
1323 g igeo ,ipm ,
1324 h ipartl,npartl, iaccp , naccp ,
1325 i iparth(1,3*(npart+nthpart)+1),2,1,
1326 j monvol ,volmon,fr_mv ,temp,inod_pxfem,
1327 k fthreac,nodreac,gresav ,gauge ,
1328 l igaup ,ngaup ,aform(4),size_mes,
1329 m rthbuf ,thke ,stack ,isphio ,vsphio,
1330 n ithflag,pinch_data,multi_fvm,w,output%TH%SITHBUFD,
1331 q fsavsurf,need_to_reinit_fsav,glob_therm,output)
1332
1333 IF(size_mes==1 .AND.
1334 * aform(4)==3 .AND.
1335 * ispmd==0 )CALL file_size(multithfilesize(4))
1336
1337
1338 IF(abfile(5) /= 0) THEN
1339#ifdef DNC
1340 ifilabf = 15
1341 CALL abfhist2(pm ,d ,x ,v ,a ,
1342 2 ixs ,elbuf,wa(n2),iparg,
1343 4 fsav ,flsw ,skew,elbuf_tab,sensors%SENSOR_TAB,
1344 5 partsav,accelm,lout ,nsensor ,mat_param,
1345 6 ipari,weight,ipart,igrsurf,
1346 7 output%TH%ITHGRPD,output%TH%ITHBUFD,subset,geo ,
1347 8 kxx ,ixr,
1348 9 kxsp ,nod2sp ,spbuf ,
1349 b npartsav,ar ,vr ,dr,
1350 d fsavd ,ixri ,rivet , ixp ,
1351 e iskwn ,iframe ,xframe,ixc ,ixq,
1352 f dtabf(5), tabfis(5),ifilabf,nthgrp1(1),ixtg ,
1353 g igeo ,ipm ,fxbipm, fxbdep, fxbvit,
1354 h fxbacc ,ipartl,npartl, iaccp , naccp ,
1355 i ipart ,2 ,1 ,
1356 j 1 ,monvol ,volmon,fr_mv ,temp,inod_pxfem,
1357 k fthreac,nodreac,gresav ,tabfwr(5),
1358 l 5 ,gauge ,igaup,ngaup ,rthbuf ,thke ,
1359 m stack ,isphio ,vsphio,ithflag,1,pinch_data,multi_fvm,w,
1360 n output%TH%SITHBUFD)
1361 cptfile=cptfile+1
1362
1363 IF(tt>=tabfwr0(5) .AND. ispmd == 0) THEN
1364 filnamabf_tmp=rootnam(1:rootlen)//'_'//chrun//'_d.tmp'
1365 long_tmp = 11
1366 len_tmp_name = outfile_name_len+long_tmp+rootlen
1367 tmp_name=outfile_name(1:outfile_name_len)//filnamabf_tmp(1:long_tmp+rootlen)
1368
1369 filnamabf=rootnam(1:rootlen)//'_'//chrun//'_d.abf'
1370 long = 11
1371 len_tmp_name2 = outfile_name_len+long+rootlen
1372 tmp_name2=outfile_name(1:outfile_name_len)//filnamabf(1:long+rootlen)
1373 DO i=1,len_tmp_name2!ROOTLEN+LONG
1374 ifilnam(i)=ichar(tmp_name2(i:i))!FILNAMABF(I:I))
1375 ENDDO
1376 DO i=1,len_tmp_name!ROOTLEN+LONG_TMP
1377 ifilnam_tmp(i)=ichar(tmp_name(i:i))!(FILNAMABF_TMP(I:I))
1378 ENDDO
1379 CALL abffile_update(abinp,about,nabfwr(5),ifilnam,
1380 . len_tmp_name2,ifilnam_tmp,len_tmp_name,
1381 . cptfile)
1382 nabfwr(5) = 0
1383 ENDIF
1384#endif
1385 ELSE
1386 tabfis(5)= ep30
1387 ENDIF
1388 ELSE
1389 output%TH%THIS1(4)= ep30
1390 tabfis(5)= ep30
1391 ENDIF
1392C
1393 IF(nthgrp01(5)/=0)THEN
1394 iunit = iuhi(5)
1395 ifil = iunit
1396!
1397 IF (tt>=output%TH%THIS1(5))THEN
1398 size_mes=1
1399 ELSE
1400 size_mes=0
1401 ENDIF
1402 ithflag = 5
1403 CALL hist2(pm ,d ,x ,v ,a ,
1404 2 ixs ,elbuf,wa(n2),iparg,sensors%SENSOR_TAB,
1405 4 fsav ,flsw ,skew,elbuf_tab,cluster,
1406 5 partsav,accelm,nsensor ,mat_param,
1407 6 weight,ipart,igrsurf,ebcs_tab,
1408 7 output%TH%ITHGRPE,output%TH%ITHBUFE,subset,geo ,
1409 8 kxx ,ixr,
1410 9 kxsp ,nod2sp ,spbuf ,
1411 b ar ,vr ,dr,
1412 d ixri ,rivet , ixp ,
1413 e iskwn ,iframe ,xframe,ixc ,ixq ,
1414 f output%TH%DTHIS1(5),output%TH%THIS1(5), ifil, nthgrp1(5),ixtg ,
1415 g igeo ,ipm ,
1416 h ipartl,npartl, iaccp , naccp ,
1417 i iparth(1,4*(npart+nthpart)+1),2,1,
1418 j monvol ,volmon,fr_mv ,temp,inod_pxfem,
1419 k fthreac,nodreac,gresav ,gauge ,
1420 l igaup ,ngaup ,aform(5),size_mes,
1421 m rthbuf ,thke ,stack ,isphio ,vsphio,
1422 n ithflag,pinch_data,multi_fvm,w,output%TH%SITHBUFE,
1423 q fsavsurf,need_to_reinit_fsav,glob_therm,output)
1424
1425 IF(size_mes==1 .AND.
1426 * aform(5)==3 .AND.
1427 * ispmd==0 ) CALL file_size(multithfilesize(5))
1428
1429 IF(abfile(6) /= 0) THEN
1430#ifdef DNC
1431 ifilabf = 16
1432 CALL abfhist2(pm ,d ,x ,v ,a ,
1433 2 ixs ,elbuf,wa(n2),iparg,
1434 4 fsav ,flsw ,skew,elbuf_tab,sensors%SENSOR_TAB,
1435 5 partsav,accelm,lout ,nsensor ,mat_param,
1436 6 ipari,weight,ipart,igrsurf,
1437 7 output%TH%ITHGRPE,output%TH%ITHBUFE,subset,geo ,
1438 8 kxx ,ixr,
1439 9 kxsp ,nod2sp ,spbuf ,
1440 b npartsav,ar ,vr ,dr,
1441 d fsavd ,ixri ,rivet , ixp ,
1442 e iskwn ,iframe ,xframe,ixc ,ixq,
1443 f dtabf(6), tabfis(6),ifilabf,nthgrp1(1),ixtg ,
1444 g igeo ,ipm ,fxbipm, fxbdep, fxbvit,
1445 h fxbacc ,ipartl,npartl, iaccp , naccp ,
1446 i ipart ,2 ,1 ,
1447 j 1 ,monvol ,volmon,fr_mv ,temp,inod_pxfem,
1448 k fthreac,nodreac,gresav ,tabfwr(6),
1449 l 6 ,gauge ,igaup,ngaup ,rthbuf,thke ,
1450 m stack ,isphio ,vsphio,ithflag,1,pinch_data,multi_fvm,w,
1451 n output%TH%SITHBUFE)
1452 cptfile=cptfile+1
1453
1454 IF(tt>=tabfwr0(6) .AND. ispmd == 0) THEN
1455 filnamabf_tmp=rootnam(1:rootlen)//'_'//chrun//'_e.tmp'
1456 long_tmp = 11
1457 len_tmp_name = outfile_name_len+long_tmp+rootlen
1458 tmp_name=outfile_name(1:outfile_name_len)//filnamabf_tmp(1:long_tmp+rootlen)
1459
1460 filnamabf=rootnam(1:rootlen)//'_'//chrun//'_e.abf'
1461 long = 11
1462 len_tmp_name2 = outfile_name_len+long+rootlen
1463 tmp_name2=outfile_name(1:outfile_name_len)//filnamabf(1:long+rootlen)
1464
1465 DO i=1,len_tmp_name2!ROOTLEN+LONG
1466 ifilnam(i)=ichar(tmp_name2(i:i))!FILNAMABF(I:I))
1467 ENDDO
1468 DO i=1,len_tmp_name!ROOTLEN+LONG_TMP
1469 ifilnam_tmp(i)=ichar(tmp_name(i:i))!(FILNAMABF_TMP(I:I))
1470 ENDDO
1471 CALL abffile_update(abinp,about,nabfwr(6),ifilnam,
1472 . len_tmp_name2,ifilnam_tmp,len_tmp_name,
1473 . cptfile)
1474 nabfwr(6) = 0
1475 ENDIF
1476#endif
1477 ELSE
1478 tabfis(6)= ep30
1479 ENDIF
1480 ELSE
1481 output%TH%THIS1(5)= ep30
1482 tabfis(6)= ep30
1483 ENDIF
1484C
1485 IF(nthgrp01(6)/=0)THEN
1486 iunit = iuhi(6)
1487 ifil = iunit
1488 IF (tt>=output%TH%THIS1(6))THEN
1489 size_mes=1
1490 ELSE
1491 size_mes=0
1492 ENDIF
1493 ithflag = 6
1494 CALL hist2(pm ,d ,x ,v ,a ,
1495 2 ixs ,elbuf,wa(n2),iparg,sensors%SENSOR_TAB,
1496 4 fsav ,flsw ,skew,elbuf_tab,cluster,
1497 5 partsav,accelm,nsensor ,mat_param,
1498 6 weight,ipart,igrsurf,ebcs_tab,
1499 7 output%TH%ITHGRPF,output%TH%ITHBUFF,subset,geo ,
1500 8 kxx ,ixr,
1501 9 kxsp ,nod2sp ,spbuf ,
1502 b ar ,vr ,dr,
1503 d ixri ,rivet , ixp ,
1504 e iskwn ,iframe ,xframe,ixc ,ixq ,
1505 f output%TH%DTHIS1(6),output%TH%THIS1(6), ifil, nthgrp1(6),ixtg ,
1506 g igeo ,ipm ,
1507 h ipartl,npartl, iaccp , naccp ,
1508 i iparth(1,5*(npart+nthpart)+1),2,1,
1509 j monvol,volmon,fr_mv ,temp,inod_pxfem,
1510 k fthreac,nodreac,gresav ,gauge ,
1511 l igaup,ngaup ,aform(6),size_mes,
1512 m rthbuf,thke ,stack ,isphio ,vsphio,
1513 n ithflag,pinch_data,multi_fvm,w,output%TH%SITHBUFF,
1514 q fsavsurf,need_to_reinit_fsav,glob_therm,output)
1515
1516 IF(size_mes==1 .AND.
1517 * aform(6)==3 .AND.
1518 * ispmd==0 ) CALL file_size(multithfilesize(6))
1519
1520 IF(abfile(7) /= 0) THEN
1521#ifdef DNC
1522 ifilabf = 17
1523 CALL abfhist2(pm ,d ,x ,v ,a ,
1524 2 ixs ,elbuf,wa(n2),iparg,
1525 4 fsav ,flsw ,skew,elbuf_tab,sensors%SENSOR_TAB,
1526 5 partsav,accelm,lout ,nsensor ,mat_param,
1527 6 ipari,weight,ipart,igrsurf,
1528 7 output%TH%ITHGRPF,output%TH%ITHBUFF,subset,geo ,
1529 8 kxx ,ixr,
1530 9 kxsp ,nod2sp ,spbuf ,
1531 b npartsav,ar ,vr ,dr,
1532 d fsavd ,ixri ,rivet , ixp ,
1533 e iskwn ,iframe ,xframe,ixc ,ixq,
1534 f dtabf(7), tabfis(7),ifilabf,nthgrp1(1),ixtg ,
1535 g igeo ,ipm ,fxbipm, fxbdep, fxbvit,
1536 h fxbacc ,ipartl,npartl, iaccp , naccp ,
1537 i ipart ,2 ,1 ,
1538 j 1 ,monvol ,volmon,fr_mv ,temp,inod_pxfem,
1539 k fthreac,nodreac,gresav ,tabfwr(7),
1540 l 7 ,gauge ,igaup,ngaup ,rthbuf,thke ,
1541 m stack ,isphio ,vsphio,ithflag,1,pinch_data,multi_fvm,w,
1542 n output%TH%SITHBUFF)
1543 cptfile=cptfile+1
1544
1545 IF(tt>=tabfwr0(7) .AND. ispmd == 0) THEN
1546 filnamabf_tmp=rootnam(1:rootlen)//'_'//chrun//'_f.tmp'
1547 long_tmp = 11
1548 len_tmp_name = outfile_name_len+long_tmp+rootlen
1549 tmp_name=outfile_name(1:outfile_name_len)//filnamabf_tmp(1:long_tmp+rootlen)
1550
1551 filnamabf=rootnam(1:rootlen)//'_'//chrun//'_f.abf'
1552 long = 11
1553 len_tmp_name2 = outfile_name_len+long+rootlen
1554 tmp_name2=outfile_name(1:outfile_name_len)//filnamabf(1:long+rootlen)
1555
1556 DO i=1,len_tmp_name2!ROOTLEN+LONG
1557 ifilnam(i)=ichar(tmp_name2(i:i))!FILNAMABF(I:I))
1558 ENDDO
1559 DO i=1,len_tmp_name!ROOTLEN+LONG_TMP
1560 ifilnam_tmp(i)=ichar(tmp_name(i:i))!(FILNAMABF_TMP(I:I))
1561 ENDDO
1562 CALL abffile_update(abinp,about,nabfwr(7),ifilnam,
1563 . len_tmp_name2,ifilnam_tmp,len_tmp_name,
1564 . cptfile)
1565 nabfwr(7) = 0
1566 ENDIF
1567#endif
1568 ELSE
1569 tabfis(7)= ep30
1570 ENDIF
1571 ELSE
1572 output%TH%THIS1(6)= ep30
1573 tabfis(7)= ep30
1574 ENDIF
1575C
1576 IF(nthgrp01(7)/=0)THEN
1577 iunit = iuhi(7)
1578 ifil = iunit
1579!
1580 IF (tt>=output%TH%THIS1(7))THEN
1581 size_mes=1
1582 ELSE
1583 size_mes=0
1584 ENDIF
1585 ithflag = 7
1586 CALL hist2(pm ,d ,x ,v ,a ,
1587 2 ixs ,elbuf,wa(n2),iparg,sensors%SENSOR_TAB,
1588 4 fsav ,flsw ,skew,elbuf_tab,cluster,
1589 5 partsav,accelm,nsensor ,mat_param,
1590 6 weight,ipart,igrsurf,ebcs_tab,
1591 7 output%TH%ITHGRPG,output%TH%ITHBUFG,subset,geo ,
1592 8 kxx ,ixr,
1593 9 kxsp ,nod2sp ,spbuf ,
1594 b ar ,vr ,dr,
1595 d ixri ,rivet ,ixp ,
1596 e iskwn ,iframe ,xframe,ixc ,ixq ,
1597 f output%TH%DTHIS1(7),output%TH%THIS1(7), ifil, nthgrp1(7),ixtg ,
1598 g igeo ,ipm ,
1599 h ipartl,npartl, iaccp , naccp ,
1600 i iparth(1,6*(npart+nthpart)+1),2,1,
1601 j monvol ,volmon,fr_mv ,temp,inod_pxfem,
1602 k fthreac,nodreac,gresav ,gauge ,
1603 l igaup,ngaup ,aform(7),size_mes,
1604 m rthbuf,thke ,stack ,isphio ,vsphio,
1605 n ithflag,pinch_data,multi_fvm,w,output%TH%SITHBUFG,
1606 q fsavsurf,need_to_reinit_fsav,glob_therm,output)
1607
1608 IF(size_mes==1 .AND.
1609 * aform(7)==3 .AND.
1610 * ispmd==0 ) CALL file_size(multithfilesize(7))
1611
1612 IF(abfile(8) /= 0) THEN
1613#ifdef DNC
1614 ifilabf = 18
1615 CALL abfhist2(pm ,d ,x ,v ,a ,
1616 2 ixs ,elbuf,wa(n2),iparg,
1617 4 fsav ,flsw ,skew,elbuf_tab,sensors%SENSOR_TAB,
1618 5 partsav,accelm,lout ,nsensor ,mat_param,
1619 6 ipari,weight,ipart,igrsurf,
1620 7 output%TH%ITHGRPG,output%TH%ITHBUFG,subset,geo ,
1621 8 kxx ,ixr,
1622 9 kxsp ,nod2sp ,spbuf ,
1623 b npartsav,ar ,vr ,dr,
1624 d fsavd ,ixri ,rivet , ixp ,
1625 e iskwn ,iframe ,xframe,ixc ,ixq,
1626 f dtabf(8), tabfis(8),ifilabf,nthgrp1(1),ixtg ,
1627 g igeo ,ipm ,fxbipm, fxbdep, fxbvit,
1628 h fxbacc ,ipartl,npartl, iaccp , naccp ,
1629 i ipart ,2 ,1 ,
1630 j 1 ,monvol ,volmon,fr_mv ,temp,inod_pxfem,
1631 k fthreac,nodreac,gresav ,tabfwr(8),
1632 l 8 ,gauge ,igaup,ngaup ,rthbuf ,thke ,
1633 m stack ,isphio ,vsphio,ithflag,1,pinch_data,multi_fvm,w,
1634 n output%TH%SITHBUFG)
1635 cptfile=cptfile+1
1636
1637 IF(tt>=tabfwr0(8) .AND. ispmd == 0) THEN
1638 filnamabf_tmp=rootnam(1:rootlen)//'_'//chrun//'_g.tmp'
1639 long_tmp = 11
1640 len_tmp_name = outfile_name_len+long_tmp+rootlen
1641 tmp_name=outfile_name(1:outfile_name_len)//filnamabf_tmp(1:long_tmp+rootlen)
1642
1643 filnamabf=rootnam(1:rootlen)//'_'//chrun//'_g.abf'
1644 long = 11
1645 len_tmp_name2 = outfile_name_len+long+rootlen
1646 tmp_name2=outfile_name(1:outfile_name_len)//filnamabf(1:long+rootlen)
1647
1648 DO i=1,len_tmp_name2!ROOTLEN+LONG
1649 ifilnam(i)=ichar(tmp_name2(i:i))!FILNAMABF(I:I))
1650 ENDDO
1651 DO i=1,len_tmp_name!ROOTLEN+LONG_TMP
1652 ifilnam_tmp(i)=ichar(tmp_name(i:i))!(FILNAMABF_TMP(I:I))
1653 ENDDO
1654 CALL abffile_update(abinp,about,nabfwr(8),ifilnam,
1655 . len_tmp_name2,ifilnam_tmp,len_tmp_name,
1656 . cptfile)
1657 nabfwr(8) = 0
1658 ENDIF
1659#endif
1660 ELSE
1661 tabfis(8)= ep30
1662 ENDIF
1663 ELSE
1664 output%TH%THIS1(7)= ep30
1665 tabfis(8)= ep30
1666 ENDIF
1667C
1668 IF(nthgrp01(8)/=0)THEN
1669 iunit = iuhi(8)
1670 ifil = iunit
1671!
1672 IF (tt>=output%TH%THIS1(8))THEN
1673 size_mes=1
1674 ELSE
1675 size_mes=0
1676 ENDIF
1677 ithflag = 8
1678 CALL hist2(pm ,d ,x ,v ,a ,
1679 2 ixs ,elbuf,wa(n2),iparg,sensors%SENSOR_TAB,
1680 4 fsav ,flsw ,skew,elbuf_tab,cluster,
1681 5 partsav,accelm,nsensor ,mat_param,
1682 6 weight,ipart,igrsurf,ebcs_tab,
1683 7 output%TH%ITHGRPH,output%TH%ITHBUFH,subset,geo ,
1684 8 kxx ,ixr,
1685 9 kxsp ,nod2sp ,spbuf ,
1686 b ar ,vr ,dr,
1687 d ixri ,rivet , ixp ,
1688 e iskwn ,iframe ,xframe,ixc ,ixq ,
1689 f output%TH%DTHIS1(8),output%TH%THIS1(8), ifil, nthgrp1(8),ixtg ,
1690 g igeo ,ipm ,
1691 h ipartl,npartl, iaccp , naccp ,
1692 i iparth(1,7*(npart+nthpart)+1),2,1,
1693 j monvol ,volmon,fr_mv ,temp,inod_pxfem,
1694 k fthreac,nodreac,gresav ,gauge ,
1695 l igaup ,ngaup ,aform(8),size_mes,
1696 m rthbuf ,thke ,stack ,isphio ,vsphio,
1697 n ithflag,pinch_data,multi_fvm,w,output%TH%SITHBUFH,
1698 q fsavsurf,need_to_reinit_fsav,glob_therm,output)
1699
1700 IF(size_mes==1 .AND. aform(8)==3 .AND.ispmd==0 ) CALL file_size(multithfilesize(8))
1701
1702 IF(abfile(9) /= 0) THEN
1703#ifdef DNC
1704 ifilabf = 19
1705 CALL abfhist2(pm ,d ,x ,v ,a ,
1706 2 ixs ,elbuf,wa(n2),iparg,
1707 4 fsav ,flsw ,skew,elbuf_tab,sensors%SENSOR_TAB,
1708 5 partsav,accelm,lout ,nsensor ,mat_param,
1709 6 ipari,weight,ipart,igrsurf,
1710 7 output%TH%ITHGRPH,output%TH%ITHBUFH,subset,geo ,
1711 8 kxx ,ixr,
1712 9 kxsp ,nod2sp ,spbuf ,
1713 b npartsav,ar ,vr ,dr,
1714 d fsavd ,ixri ,rivet , ixp ,
1715 e iskwn ,iframe ,xframe,ixc ,ixq,
1716 f dtabf(9), tabfis(9),ifilabf,nthgrp1(1),ixtg ,
1717 g igeo ,ipm ,fxbipm, fxbdep, fxbvit,
1718 h fxbacc ,ipartl,npartl, iaccp , naccp ,
1719 i ipart ,2 ,1 ,
1720 j 1 ,monvol ,volmon,fr_mv ,temp,inod_pxfem,
1721 k fthreac,nodreac,gresav ,tabfwr(9),
1722 l 9 ,gauge ,igaup,ngaup ,rthbuf,thke ,
1723 m stack ,isphio ,vsphio,ithflag,1,pinch_data,multi_fvm,w,
1724 n output%TH%ITHBUFH)
1725 cptfile=cptfile+1
1726
1727 IF(tt>=tabfwr0(9) .AND. ispmd == 0) THEN
1728 filnamabf_tmp=rootnam(1:rootlen)//'_'//chrun//'_h.tmp'
1729 long_tmp = 11
1730 len_tmp_name = outfile_name_len+long_tmp+rootlen
1731 tmp_name=outfile_name(1:outfile_name_len)//filnamabf_tmp(1:long_tmp+rootlen)
1732
1733 filnamabf=rootnam(1:rootlen)//'_'//chrun//'_h.abf'
1734 long = 11
1735 len_tmp_name2 = outfile_name_len+long+rootlen
1736 tmp_name2=outfile_name(1:outfile_name_len)//filnamabf(1:long+rootlen)
1737
1738 DO i=1,len_tmp_name2!ROOTLEN+LONG
1739 ifilnam(i)=ichar(tmp_name2(i:i))!FILNAMABF(I:I))
1740 ENDDO
1741 DO i=1,len_tmp_name!ROOTLEN+LONG_TMP
1742 ifilnam_tmp(i)=ichar(tmp_name(i:i))!(FILNAMABF_TMP(I:I))
1743 ENDDO
1744 CALL abffile_update(abinp,about,nabfwr(9),ifilnam,len_tmp_name2,ifilnam_tmp,len_tmp_name, cptfile)
1745 nabfwr(9) = 0
1746 ENDIF
1747#endif
1748 ELSE
1749 tabfis(9)= ep30
1750 ENDIF
1751 ELSE
1752 output%TH%THIS1(8)= ep30
1753 tabfis(9)= ep30
1754 ENDIF
1755C
1756 IF(nthgrp01(9)/=0)THEN
1757 iunit = iuhi(9)
1758 ifil = iunit
1759 IF (tt>=output%TH%THIS1(9))THEN
1760 size_mes=1
1761 ELSE
1762 size_mes=0
1763 ENDIF
1764 ithflag = 9
1765 CALL hist2(pm ,d ,x ,v ,a ,
1766 2 ixs ,elbuf,wa(n2),iparg,sensors%SENSOR_TAB,
1767 4 fsav ,flsw ,skew,elbuf_tab,cluster,
1768 5 partsav,accelm,nsensor ,mat_param,
1769 6 weight,ipart,igrsurf,ebcs_tab,
1770 7 output%TH%ITHGRPI,output%TH%ITHBUFI,subset,geo ,
1771 8 kxx ,ixr,
1772 9 kxsp ,nod2sp ,spbuf ,
1773 b ar ,vr ,dr,
1774 d ixri ,rivet ,ixp ,
1775 e iskwn ,iframe ,xframe,ixc ,ixq ,
1776 f output%TH%DTHIS1(9),output%TH%THIS1(9), ifil, nthgrp1(9),ixtg ,
1777 g igeo ,ipm ,
1778 h ipartl,npartl, iaccp , naccp ,
1779 i iparth(1,8*(npart+nthpart)+1),2,1,
1780 j monvol ,volmon,fr_mv ,temp,inod_pxfem,
1781 k fthreac,nodreac,gresav ,gauge ,
1782 l igaup,ngaup ,aform(9),size_mes,
1783 m rthbuf ,thke ,stack ,isphio ,vsphio,
1784 n ithflag,pinch_data,multi_fvm,w,output%TH%SITHBUFI,
1785 q fsavsurf,need_to_reinit_fsav,glob_therm,output)
1786
1787 IF(size_mes==1 .AND. aform(9)==3 .AND. ispmd==0 ) CALL file_size(multithfilesize(9))
1788 IF(abfile(10) /= 0) THEN
1789#ifdef DNC
1790 ifilabf = 20
1791 CALL abfhist2(pm ,d ,x ,v ,a ,
1792 2 ixs ,elbuf,wa(n2),iparg,
1793 4 fsav ,flsw ,skew,elbuf_tab,sensors%SENSOR_TAB,
1794 5 partsav,accelm,lout ,nsensor ,mat_param,
1795 6 ipari,weight,ipart,igrsurf,
1796 7 output%TH%ITHGRPI,output%TH%ITHBUFI,subset,geo ,
1797 8 kxx ,ixr,
1798 9 kxsp ,nod2sp ,spbuf ,
1799 b npartsav,ar ,vr ,dr,
1800 d fsavd ,ixri ,rivet , ixp ,
1801 e iskwn ,iframe ,xframe,ixc ,ixq,
1802 f dtabf(10),tabfis(10),ifilabf,nthgrp1(9),ixtg ,
1803 g igeo ,ipm ,fxbipm, fxbdep, fxbvit,
1804 h fxbacc ,ipartl,npartl, iaccp , naccp ,
1805 i iparth(1,8*(npart+nthpart)+1),2,1,
1806 j 1 ,monvol ,volmon,fr_mv ,temp,inod_pxfem,
1807 k fthreac,nodreac,gresav ,tabfwr(10),
1808 l 10 ,gauge ,igaup,ngaup ,rthbuf,thke ,
1809 m stack ,isphio ,vsphio,ithflag,9,pinch_data,multi_fvm,w,
1810 n output%TH%ITHBUFI)
1811 cptfile=cptfile+1
1812
1813 IF(tt>=tabfwr0(10) .AND. ispmd == 0) THEN
1814 filnamabf_tmp=rootnam(1:rootlen)//'_'//chrun//'_i.tmp'
1815 long_tmp = 11
1816 len_tmp_name = outfile_name_len+long_tmp+rootlen
1817 tmp_name=outfile_name(1:outfile_name_len)//filnamabf_tmp(1:long_tmp+rootlen)
1818
1819 filnamabf=rootnam(1:rootlen)//'_'//chrun//'_i.abf'
1820 long = 11
1821 len_tmp_name2 = outfile_name_len+long+rootlen
1822 tmp_name2=outfile_name(1:outfile_name_len)//filnamabf(1:long+rootlen)
1823 DO i=1,len_tmp_name2!ROOTLEN+LONG
1824 ifilnam(i)=ichar(tmp_name2(i:i))!FILNAMABF(I:I))
1825 ENDDO
1826 DO i=1,len_tmp_name!ROOTLEN+LONG_TMP
1827 ifilnam_tmp(i)=ichar(tmp_name(i:i))!(filnamabf_tmp(i:i))
1828 ENDDO
1829
1830 CALL abffile_update(abinp,about,nabfwr(10),ifilnam,
1831 . len_tmp_name2,ifilnam_tmp,len_tmp_name,
1832 . cptfile)
1833 nabfwr(10) = 0
1834 ENDIF
1835#endif
1836 ELSE
1837 tabfis(10)= ep30
1838 ENDIF
1839 ELSE
1840 output%TH%THIS1(9)= ep30
1841 tabfis(10)= ep30
1842 ENDIF
1843C
1844 iunit = iuhis
1845 ifil = 1
1846 IF (tt>=output%TH%THIS)THEN
1847 size_mes=1
1848 ELSE
1849 size_mes=0
1850 ENDIF
1851 ithflag = 10
1852 CALL hist2(pm ,d ,x ,v ,a ,
1853 2 ixs ,elbuf,wa(n2),iparg,sensors%SENSOR_TAB,
1854 4 fsav ,flsw ,skew,elbuf_tab,cluster,
1855 5 partsav,accelm,nsensor ,mat_param,
1856 6 weight,ipart,igrsurf,ebcs_tab,
1857 7 output%TH%ITHGRP,output%TH%ITHBUF,subset,geo ,
1858 8 kxx ,ixr,
1859 9 kxsp ,nod2sp ,spbuf ,
1860 b ar ,vr ,dr,
1861 d ixri ,rivet , ixp ,
1862 e iskwn ,iframe ,xframe,ixc ,ixq,
1863 f output%TH%DTHIS ,output%TH%THIS,ifil , nthgrp,ixtg ,
1864 g igeo ,ipm ,
1865 h ipartl,npartl, iaccp , naccp ,
1866 i ipart ,lipart1 ,8 ,
1867 j monvol ,volmon,fr_mv ,temp,inod_pxfem,
1868 k fthreac,nodreac,gresav ,gauge ,
1869 l igaup,ngaup,itform,size_mes,
1870 m rthbuf ,thke ,stack,isphio ,vsphio,
1871 n ithflag,pinch_data,multi_fvm,w,output%TH%SITHBUF,
1872 q fsavsurf,need_to_reinit_fsav,glob_therm,output)
1873
1874 IF(size_mes==1 .AND. itform==3 .AND. ispmd==0 )CALL file_size(thfilesize)
1875
1876 IF(abfile(1) /= 0) THEN
1877#ifdef DNC
1878 ifilabf = 11
1879 CALL abfhist2(pm ,d ,x ,v ,a ,
1880 2 ixs ,elbuf,wa(n2),iparg,
1881 4 fsav ,flsw ,skew,elbuf_tab,sensors%SENSOR_TAB,
1882 5 partsav,accelm,lout ,nsensor ,mat_param,
1883 6 ipari,weight,ipart,igrsurf,
1884 7 output%TH%ITHGRP,output%TH%ITHBUF,subset,geo ,
1885 8 kxx ,ixr,
1886 9 kxsp ,nod2sp ,spbuf ,
1887 b npartsav,ar ,vr ,dr,
1888 d fsavd ,ixri ,rivet , ixp ,
1889 e iskwn ,iframe ,xframe,ixc ,ixq,
1890 f dtabf(1), tabfis(1),ifilabf,nthgrp,ixtg ,
1891 g igeo ,ipm ,fxbipm, fxbdep, fxbvit,
1892 h fxbacc ,ipartl,npartl, iaccp , naccp ,
1893 i ipart ,lipart1 ,8 ,
1894 j 12 ,monvol ,volmon,fr_mv ,temp,inod_pxfem,
1895 k fthreac,nodreac,gresav ,tabfwr(1),
1896 l 1 ,gauge ,igaup,ngaup ,rthbuf,thke ,
1897 m stack ,isphio ,vsphio,ithflag,10,pinch_data,multi_fvm,w,
1898 n output%TH%SITHBUF)
1899
1900 IF((tt>=tabfwr0(1) .OR. tt+dt2>tstop).AND. ispmd == 0)THEN
1901 filnamabf_tmp=rootnam(1:rootlen)//'_'//chrun//'.tmp'
1902 long_tmp = 9
1903 len_tmp_name = outfile_name_len+long_tmp+rootlen
1904 tmp_name=outfile_name(1:outfile_name_len)//filnamabf_tmp(1:long_tmp+rootlen)
1905
1906 filnamabf=rootnam(1:rootlen)//'_'//chrun//'.abf'
1907 long = 9
1908 len_tmp_name2 = outfile_name_len+long+rootlen
1909 tmp_name2=outfile_name(1:outfile_name_len)//filnamabf(1:long+rootlen)
1910
1911 DO i=1,len_tmp_name2!ROOTLEN+LONG
1912 ifilnam(i)=ichar(tmp_name2(i:i))!FILNAMABF(I:I))
1913 ENDDO
1914 DO i=1,len_tmp_name!ROOTLEN+LONG_TMP
1915 ifilnam_tmp(i)=ichar(tmp_name(i:i))!(FILNAMABF_TMP(I:I))
1916 ENDDO
1917
1918 CALL abffile_update(abinp,about,nabfwr(1),ifilnam,len_tmp_name2,ifilnam_tmp,len_tmp_name,0)
1919
1920 nabfwr(1) = 0
1921 ENDIF
1922#endif
1923 ELSE
1924 tabfis(1)= ep30
1925 ENDIF
1926
1927C to avoid double points (end of ilastanim/=2)
1928 END IF
1929 ENDIF
1930C----------------------------------------------
1931C Driver to QAPRINT
1932C----------------------------------------------
1933 CALL eng_qaprint_driver(irunn_bis ,sensors,dt,output,iparit,glob_therm)
1934C-------------------------------------------------------
1935C TRAITEMENT SUR FSAV NON CUMULE
1936C-------------------------------------------------------
1937 IF(ispmd == 0 .AND. thupdt == 1) THEN
1938C en SPMD il faut remettre FSAV a 0 sur P0, la ou FSAV n est pas cumule
1939 IF(nvolu>0)THEN
1940 iad = ninter+nrwall+nrbody+nsect+njoint
1941 DO i=1,nvolu
1942 DO j=1,nthvki
1943 fsav(j,iad+i) = zero
1944 ENDDO
1945 ENDDO
1946 ENDIF
1947 ENDIF
1948
1949C FSAV(26) : contact elastic energy is not cumulated : only for int10 and int18 for the moment
1950 IF(ninter > 0)THEN
1951 DO i=1,ninter
1952 ity = ipari(7,i)
1953 IF(ity /= 10.AND.(ity /= 7.OR.ipari(22,i) /= 7)) THEN
1954 fsav(26,i) = zero
1955 ENDIF
1956 fsav(29,i) = zero ! CAREA output is not cumulated too
1957 ENDDO
1958 ENDIF
1959
1960 IF(nintsub > 0)THEN
1961 DO n=1,nintsub
1962 fsav(29,(ninter+nrwall+nrbody+nsect+njoint+nvolu+nrbag)+n) = zero
1963 END DO
1964 ENDIF
1965
1966C /TH/SURF quantities reset to 0 expect for massflow (airbags)
1967 IF(nsurf > 0) THEN
1968 fsavsurf(1,1:nsurf) = zero !area
1969 fsavsurf(2,1:nsurf) = zero !massflow
1970 fsavsurf(3,1:nsurf) = zero !velocity
1971 fsavsurf(4,1:nsurf) = zero !pressure
1972 fsavsurf(5,1:nsurf) = zero !area where pressure is applied
1973 !FSAVSURF(6,1:NSURF) !cumulated mass
1974 ENDIF
1975
1976 ! -----------------------
1977 ! need to re-initialize PARTSAV array after any th/abf file writing
1978 IF(ispmd == 0) THEN
1979 ! ---------
1980 ! check if an abf file was written
1981 IF(nabfile /= 0) THEN
1982 DO i=1,10
1983 IF(tt>tabfwr0(i)) need_to_reinit_fsav = .true.
1984 ENDDO
1985 ENDIF
1986 ! ---------
1987
1988 ! ---------
1989 ! re-initialization of PARTSAV
1990 IF(need_to_reinit_fsav) THEN
1991 DO m=1,npart+nthpart
1992 DO i=1,npsav
1993 IF((i<23.OR.i>26.OR.i==25).AND.i/=8) THEN
1994 partsav(i,m)=0
1995 ENDIF
1996 END DO
1997 END DO
1998 ENDIF
1999 ! ---------
2000 ENDIF
2001 ! -----------------------
2002
2003 IF (ispmd == 0 .AND. iflag == 1) wfext = wfext- wfexth
2004
2005 ! /TH/NODE (PEXT) or /H3D/NODA/PEXT or /ANIM/NODA/PEXT
2006 ! reset for next cycle
2007 IF(th_has_noda_pext > 0 .OR. anim_has_noda_pext > 0 .OR. h3d_has_noda_pext > 0)THEN
2008 noda_surf(1:numnod) = zero
2009 noda_pext(1:numnod) = zero
2010 ENDIF
2011C-----------
2012 RETURN
2013 END
subroutine ani_pcont(ixs, ixc, ixtg, fasolfr, x, contn, contt, iad_elem, fr_elem, weight, ixq, segquadfr, ixs10, fncontp2, ftcontp2, h3d_data, csefric, csefricg, sz_npcont2, npcont2)
Definition ani_pcont.F:37
subroutine ani_pcont21(ixs, ixc, ixtg, fasolfr, x, contn, contt, iad_elem, fr_elem, weight, nodglob, fncontg, ftcontg, fncontp2, ftcontp2, h3d_data, csefric_stamp, csefricg_stamp, sz_npcont2, npcont2)
Definition ani_pcont.F:871
subroutine anicon0(cont, n)
Definition anicon0.F:29
subroutine anicon2(cont, n, indexc)
Definition anicon2.F:29
#define my_real
Definition cppsort.cpp:32
subroutine ecrit(timers, partsav, ms, v, in, r, dmas, weight, enintot, ekintot, a, ar, fxbipm, fxbrpm, monvol, xmom_sms, sensors, qfricint, ipari, weight_md, wfexth, iflag, ms_2d, multi_fvm, mas_nd, kend, h3d_data, dynain_data, usreint, output)
Definition ecrit.F:52
subroutine eng_qaprint_driver(irunn_bis, sensors, dt, output, iparit, glob_therm)
subroutine fcont2_max_output(fcont, fcont_max, weight)
subroutine fcont2_min_output(fcont, fcont_min, weight)
subroutine fcont_max_output(cont, fcontg, nodglob, fcont_max, weight)
subroutine fluxsw(nsflsw, neflsw, nnflsw, crflsw, flsw, x, v, elbuf)
Definition fluxsw.F:30
subroutine genani(x, d, v, a, bufel, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, swaft, smas, sxnorm, siad, iparg, pm, geo, ms, sinvert, cont, smater, icut, skew, xcut, fint, itab, sel2fa, fext, fopt, anin, lpby, npby, nstrf, rwbuf, nprw, tani, elbuf_tab, mat_param, dd_iad, weight, eani, ipart, cluster, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, ipartur, iparttg, rby, swa4, tors, nom_opt, igrsurf, bufsf, idata, rdata, siadg, bufmat, bufgeo, kxx, ixx, ipartx, suix, sxusr, snfacptx, sixedge, sixfacet, sixsolid, snumx1, snumx2, snumx3, soffx1, soffx2, soffx3, smass1, smass2, smass3, sfunc1, sfunc2, sfunc3, kxsp, ixsp, nod2sp, ipartsp, spbuf, ixs10, ixs20, ixs16, vr, monvol, volmon, ipm, igeo, nodglob, iad_elem, fr_elem, fr_sec, fr_rby2, iad_rby2, fr_wall, iflow, rflow, fncont, ftcont, temp, thke, err_thk_sh4, err_thk_sh3, diag_sms, ipari, fncont2, dr, ale_connectivity, irbe2, irbe3, lrbe2, lrbe3, fr_rbe2, fr_rbe3m, iad_rbe2, dxancg, nod_pxfem, iel_pxfem, zi_ply, vgaz, fcontg, fncontg, ftcontg, fanreac, inod_crk, iel_crk, elcutc, iadc_crk, pdama2, res_sms, weight_md, nodglobxfe, nodedge, fcluster, mcluster, xfem_tab, w, nv46, ipartig3d, kxig3d, ixig3d, sig3dsolid, knot, wige, nercvois, nesdvois, lercvois, lesdvois, crkedge, indx_crk, xedge4n, xedge3n, stack, sph2sol, stifn, stifr, igrnod, h3d_data, subset, multi_fvm, knotlocpc, knotlocel, fcont_max, fncontp2, ftcontp2, glob_therm, drape_sh4n, drape_sh3n, drapeg, output)
Definition genani.F:239
subroutine gendynain(x, elbuf_tab, bufel, ixc, ixtg, iparg, ipm, igeo, itab, ipart, pm, geo, ipartc, iparttg, leng, lengc, lengtg, weight, nodglob, thke, npby, lpby, stack, drape_sh4n, drape_sh3n, dynain_data, drapeg, mat_param)
Definition gendynain.F:56
subroutine genh3d(timers, x, d, v, a, bufel, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, swaft, smas, sxnorm, siad, iparg, pm, geo, ms, sinvert, cont, smater, icut, skew, xcut, fint, itab, sel2fa, fext, fopt, anin, lpby, npby, nstrf, rwbuf, nprw, tani, elbuf_tab, mat_param, dd_iad, weight, eani, ipart, cluster, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, ipartur, iparttg, rby, swa4, tors, nom_opt, bufsf, idata, rdata, siadg, bufmat, bufgeo, kxx, ixx, ipartx, suix, sxusr, snfacptx, sixedge, sixfacet, sixsolid, snumx1, snumx2, snumx3, soffx1, soffx2, soffx3, smass1, smass2, smass3, sfunc1, sfunc2, sfunc3, kxsp, ixsp, nod2sp, ipartsp, spbuf, ixs10, ixs20, ixs16, vr, monvol, volmon, ipm, igeo, nodglob, iad_elem, fr_elem, fr_sec, fr_rby2, iad_rby2, fr_wall, iflow, rflow, fncont, ftcont, temp, thke, err_thk_sh4, err_thk_sh3, diag_sms, ipari, fncont2, dr, ale_connect, irbe2, irbe3, lrbe2, lrbe3, fr_rbe2, fr_rbe3m, iad_rbe2, dxancg, nod_pxfem, iel_pxfem, zi_ply, vgaz, fcontg, fncontg, ftcontg, fanreac, inod_crk, iel_crk, elcutc, iadc_crk, pdama2, res_sms, weight_md, nodglobxfe, nodedge, fcluster, mcluster, xfem_tab, w, nv46, ipartig3d, kxig3d, ixig3d, sig3dsolid, knot, wige, nercvois, nesdvois, lercvois, lesdvois, crkedge, indx_crk, xedge4n, xedge3n, stack, sph2sol, stifn, stifr, igrnod, sh4tree, sh3tree, h3d_data, multi_fvm, subset, pskids, tag_skins6, tf, npf, fcont_max, mds_matid, fncontp2, ftcontp2, ibcl, iloadp, lloadp, fac, sensors, tagncont, loadp_hyd_inter, xframe, forc, ar, csefric, csefricg, csefric_stamp, csefricg_stamp, table, iframe, loads, drape_sh4n, drape_sh3n, drapeg, x_c, glob_therm, pblast)
Definition genh3d.F:212
subroutine genoutp(x, d, v, a, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, iparg, pm, igeo, ms, cont, itab, partsav, fint, fext, tani, eani, anin, ipart, vr, elbuf_tab, dd_iad, weight, ipm, kxsp, spbuf, nodglob, leng, fopt, nom_opt, npby, fncont, ftcont, geo, thke, stack, drape_sh4n, drape_sh3n, drapeg, output)
Definition genoutp.F:82
subroutine genstat(x, ms, elbuf_tab, bufel, spbuf, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, kxsp, iparg, ipm, igeo, itab, ipart, pm, geo, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, ipartur, iparttg, ipartx, ipartsp, dd_iad, weight, nodglob, leng, ipart_state, lengc, lengtg, sh4tree, sh3tree, lengs, sh4trim, sh3trim, temp, ixs10, thke, ixs16, ixs20, icode, lengr, lengp, lengt, iskew, v, vr, lengq, multi_fvm, bufmat, npby, lpby, stack, drape_sh4n, drape_sh3n, dr, drapeg, mat_param, ipartsph, output, lengsph, numsphg, itherm_fe)
Definition genstat.F:108
#define max(a, b)
Definition macros.h:21
type(fani_cell_) fani_cell
Definition aleanim_mod.F:55
integer, dimension(:), allocatable imap2nd
Definition ecdn_mod.F:64
integer, dimension(:), pointer icnds10
Definition ecdn_mod.F:42
integer nkend
Definition ecdn_mod.F:63
type(fvbag_spmd), dimension(:), allocatable fvspmd
Definition fvbag_mod.F:129
integer nfvbag
Definition fvbag_mod.F:127
integer, dimension(:), allocatable kmesh
subroutine hist2(pm, d, x, v, a, ixs, bufel, wa, iparg, sensor_tab, fsav, flsw, skew, elbuf_tab, cluster, partsav, accelm, nsensor, matparam_tab, weight, ipart, igrsurf, ebcs_tab, ithgrp, ithbuf, subset, geo, kxx, ixr, kxsp, nod2sp, spbuf, ar, vr, dr, lrivet, rivet, ixp, iskwn, iframe, xframe, ixc, ixq, dthis0, this0, ifil, nthgrp2, ixtg, igeo, ipm, ipartl, npartl, iaccp, naccp, iparth, nparth, nvparth, monvol, volmon, fr_mv, temp, inod, fthreac, nodreac, gresav, gauge, igaup, ngaup, ittyp, size_mes, rthbuf, thke, stack, isphio, vsphio, ithflag, pinch_data, multi_fvm, w, sithbuf, fsavsurf, need_to_reinit_fsav, glob_therm, output)
Definition hist2.F:104
character(len=outfile_char_len) outfile_name
integer outfile_name_len
integer ninefric
Definition outputs_mod.F:65
integer ninefric_stamp
Definition outputs_mod.F:65
subroutine spmd_exch_output_noda_pext(nspmd, nodes, numnod, numnodg, trigger_th, trigger_anim, trigger_h3d)
integer th_has_noda_pext
Definition th_mod.F:121
OPTION /TH/SURF outputs of Pressure and Area needed Tabs.
Definition th_surf_mod.F:60
integer, parameter th_surf_num_channel
number of /TH/SURF channels : AREA, VELOCITY, MASSFLOW, P A, MASS
Definition th_surf_mod.F:99
subroutine noise(dt2r, in, j, buf, v, a, ixs, elbuf_tab, iparg, weight, ixq)
Definition noise.F:41
subroutine cndmasi2(icnds10, nkend, imap2nd, masi2nd0, ms, v, a, weight, mas_nd, kend)
Definition s10cndf.F:1168
subroutine s10mvnd(icnds10, vnd, v)
Definition s10cndv.F:81
subroutine sensor_energy_total(sensors, enint, encin)
subroutine sortie_main(timers, pm, d, v, ale_connect, w, elbuf, iparg, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, wa, itab, x, geo, ms, a, cont, partsav, icut, xcut, fint, fext, fopt, anin, lpby, npby, nstrf, rwbuf, nprw, ebcs_tab, tani, inoise, bufnois, rby, neflsw, nnflsw, crflsw, flsw, lout, nodes, fsav, skew, elbuf_tab, cluster, vr, in, weight, fcluster, mcluster, dd_iad, dmas, accelm, gauge, ipari, eani, ipart, mat_param, igrnod, subset, nom_opt, ar, igrsurf, bufsf, idata, rdata, kxx, ixx, bufmat, bufgeo, kxsp, ixsp, nod2sp, spbuf, dr, fsavd, ixri, rivet, iskwn, iframe, xframe, ixs10, ixs20, ixs16, ndma, monvol, volmon, ipm, igeo, nodglob, iad_elem, fr_elem, fr_rby2, iad_rby2, fr_wall, fr_sec, fxbipm, fxbrpm, ndin, fxbdep, fxbvit, fxbacc, iflow, rflow, ipartl, npartl, iaccp, naccp, fasolfr, fncont, ftcont, iparth, fr_mv, ipart_state, sh4tree, sh3tree, temp, thke, err_thk_sh4, err_thk_sh3, inod_pxfem, fthreac, nodreac, gresav, diag_sms, sh4trim, sh3trim, fncont2, xmom_sms, irbe2, irbe3, lrbe2, lrbe3, fr_rbe2, fr_rbe3m, iad_rbe2, dxancg, iel_pxfem, zi_ply, vgaz, fcontg, fncontg, ftcontg, fanreac, inod_crk, iel_crk, elcutc, iadc_crk, pdama2, res_sms, sensors, qfricint, igaup, ngaup, weight_md, ncont, indexcont, nodglobxfe, nodedge, xfem_tab, nv46, rthbuf, kxig3d, ixig3d, knot, wige, nercvois, nesdvois, lercvois, lesdvois, crkedge, stack, isphio, vsphio, icode, indx_crk, xedge4n, xedge3n, sph2sol, stifn, stifr, drape_sh4n, drape_sh3n, ms_2d, multi_fvm, segquadfr, h3d_data, iskew, pskids, iskwp, knotlocpc, knotlocel, pinch_data, tag_skins6, irunn_bis, tf, npc, dynain_data, fcont_max, mds_matid, fncontp2, ftcontp2, ibcl, iloadp, lloadp, loadp, tagncont, loadp_hyd_inter, forc, drapeg, user_windows, output, dt, fsavsurf, table, loads, sfani, iparit, x_c, sz_npcont2, npcont2, glob_therm, pblast, wfext)
subroutine spmd_exch_adm(adm, iad_elem, fr_elem, lenr, weight_md)
subroutine spmd_sd_skw_anim(skew, iskwp)
void file_size(int *filesize)