OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
fvwrestp.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/.
23C
24!||====================================================================
25!|| fvwrestp ../starter/source/restart/ddsplit/fvwrestp.F
26!||--- called by ------------------------------------------------------
27!|| ddsplit ../starter/source/restart/ddsplit/ddsplit.F
28!||--- calls -----------------------------------------------------
29!||--- uses -----------------------------------------------------
30!|| fvbag_mod ../starter/share/modules1/fvbag_mod.F
31!||====================================================================
32 SUBROUTINE fvwrestp(PROC)
33C-----------------------------------------------
34C M o d u l e s
35C-----------------------------------------------
36 USE fvbag_mod
38C-----------------------------------------------
39C I m p l i c i t T y p e s
40C-----------------------------------------------
41#include "implicit_f.inc"
42C-----------------------------------------------
43C D u m m y A r g u m e n t s
44C-----------------------------------------------
45 INTEGER PROC
46C-----------------------------------------------
47C L o c a l V a r i a b l e s
48C-----------------------------------------------
49 INTEGER LEN, I, NNS, NNTR, LENP, NPOLY, LENH, NPOLH, TABI(11),
50 . LENP_ANIM, NPOLH_ANIM, LENH_ANIM, NNS_ANIM
51C--------------------------------------
52C ECRITURE DES DIMENSIONS
53C--------------------------------------
54 len=1
55 CALL write_i_c(nfvbag,len)
56C
57 DO i=1,nfvbag
58 CALL write_i_c(fvdata(i)%L_TYPE,1)
59 CALL write_i_c(fvdata(i)%ID_DT_OPTION,1)
60 CALL write_db(fvdata(i)%LAMBDA,1)
61 CALL write_db(fvdata(i)%DTOLD,1)
62
63 CALL write_db(fvdata(i)%CFL_COEF,1)
64 CALL write_db(fvdata(i)%DTMIN,1)
65 tabi(1)=fvspmd(i)%NN_L
66 tabi(2)=fvspmd(i)%NNA_L
67 tabi(3)=fvspmd(i)%NNSA_L
68 tabi(4)=fvspmd(i)%NSA
69 tabi(5)=fvspmd(i)%NNSA
70 tabi(6)=fvspmd(i)%NELSA
71 tabi(7)=fvspmd(i)%PMAIN
72 tabi(8)=fvspmd(i)%NNI_L
73 len=8
74 CALL write_i_c(tabi,len)
75
76 len=2*(fvspmd(i)%NN_L+fvspmd(i)%NNI_L)
77 IF (len>0) THEN
78 CALL write_i_c(fvspmd(i)%IBUF_L,len)
79 DEALLOCATE(fvspmd(i)%IBUF_L)
80 ENDIF
81 len=2*fvspmd(i)%NNA_L
82 IF (len>0) THEN
83 CALL write_i_c(fvspmd(i)%IBUFA_L,len)
84 DEALLOCATE(fvspmd(i)%IBUFA_L)
85 ENDIF
86 len=2*fvspmd(i)%NNSA_L
87 IF (len>0) THEN
88 CALL write_i_c(fvspmd(i)%IBUFSA_L,len)
89 DEALLOCATE(fvspmd(i)%IBUFSA_L)
90 ENDIF
91 len = 1
92 CALL write_i_c(kmesh(fvid(i)), len)
93 IF (proc/=fvspmd(i)%PMAIN) cycle
94C
95 len=8*fvspmd(i)%NSA
96 IF (len>0) THEN
97 CALL write_i_c(fvspmd(i)%IXSA,len)
98 DEALLOCATE(fvspmd(i)%IXSA)
99 ENDIF
100 len=3*fvspmd(i)%NELSA
101 IF (len>0) THEN
102 CALL write_i_c(fvspmd(i)%ELEMSA,len)
103 DEALLOCATE(fvspmd(i)%ELEMSA)
104 ENDIF
105C
106 nns=fvdata(i)%NNS
107 nntr=fvdata(i)%NNTR
108 lenp=fvdata(i)%LENP
109 npoly=fvdata(i)%NPOLY
110 lenh=fvdata(i)%LENH
111 npolh=fvdata(i)%NPOLH
112 npolh_anim=fvdata(i)%NPOLH_ANIM
113 IF (npolh_anim>0) THEN
114 lenp_anim=fvdata(i)%IFVTADR_ANIM(npoly+1)
115 lenh_anim=fvdata(i)%IFVPADR_ANIM(npolh_anim+1)
116 nns_anim=fvdata(i)%NNS_ANIM
117 ELSE
118 lenp_anim=0
119 lenh_anim=0
120 nns_anim=0
121 ENDIF
122C
123 tabi(1)=nns
124 tabi(2)=nntr
125 tabi(3)=lenp
126 tabi(4)=npoly
127 tabi(5)=lenh
128 tabi(6)=npolh
129 tabi(7)=lenp_anim
130 tabi(8)=lenh_anim
131 tabi(9)=npolh_anim
132 tabi(10)=nns_anim
133 tabi(11)=fvdata(i)%ID
134 len=11
135 CALL write_i_c(tabi,len)
136
137C--------------------------------------
138C ECRITURE DES ENTIERS
139C--------------------------------------
140 len=3*nns
141 CALL write_i_c(fvdata(i)%IFVNOD,len)
142 len=6*nntr
143 CALL write_i_c(fvdata(i)%IFVTRI,len)
144 CALL write_i_c(fvdata(i)%IFVPOLY,lenp)
145 CALL write_i_c(fvdata(i)%IFVTADR,npoly+1)
146 CALL write_i_c(fvdata(i)%IFVPOLH,lenh)
147 CALL write_i_c(fvdata(i)%IFVPADR,npolh+1)
148 CALL write_i_c(fvdata(i)%IDPOLH,npolh)
149 CALL write_i_c(fvdata(i)%IBPOLH,npolh)
150C
151 IF (npolh_anim>0) THEN
152 CALL write_i_c(fvdata(i)%IFVPOLY_ANIM,lenp_anim)
153 CALL write_i_c(fvdata(i)%IFVTADR_ANIM,npoly+1)
154 CALL write_i_c(fvdata(i)%IFVPOLH_ANIM,lenh_anim)
155 CALL write_i_c(fvdata(i)%IFVPADR_ANIM,npolh_anim+1)
156 len=6*nntr
157 CALL write_i_c(fvdata(i)%IFVTRI_ANIM,len)
158 CALL write_i_c(fvdata(i)%REDIR_ANIM,nns_anim)
159 ENDIF
160C--------------------------------------
161C ECRITURE DES REELS
162C--------------------------------------
163 len = 1
164 CALL write_db(fvdata(i)%PDISP_OLD,len)
165 CALL write_db(fvdata(i)%PDISP,len)
166 len=2*nns
167 CALL write_db(fvdata(i)%RFVNOD,len)
168 CALL write_db(fvdata(i)%MPOLH,npolh)
169 len=3*npolh
170 CALL write_db(fvdata(i)%QPOLH,len)
171 CALL write_db(fvdata(i)%EPOLH,npolh)
172 CALL write_db(fvdata(i)%PPOLH,npolh)
173 CALL write_db(fvdata(i)%RPOLH,npolh)
174 CALL write_db(fvdata(i)%GPOLH,npolh)
175 CALL write_db(fvdata(i)%TPOLH,npolh)
176 CALL write_db(fvdata(i)%CPAPOLH,npolh)
177 CALL write_db(fvdata(i)%CPBPOLH,npolh)
178 CALL write_db(fvdata(i)%CPCPOLH,npolh)
179 CALL write_db(fvdata(i)%CPDPOLH,npolh)
180 CALL write_db(fvdata(i)%CPEPOLH,npolh)
181 CALL write_db(fvdata(i)%CPFPOLH,npolh)
182 CALL write_db(fvdata(i)%RMWPOLH,npolh)
183 CALL write_db(fvdata(i)%VPOLH_INI,npolh)
184 CALL write_db(fvdata(i)%DLH,1)
185 CALL write_db(fvdata(i)%DTPOLH,npolh)
186C
187 IF (npolh_anim>0) THEN
188 len=3*nns_anim
189 CALL write_db(fvdata(i)%NOD_ANIM,len)
190 ENDIF
191C
192 ENDDO
193
194 IF (ALLOCATED(fvspmd)) DEALLOCATE(fvspmd)
195C
196 RETURN
197 END
subroutine fvwrestp(proc)
Definition fvwrestp.F:33
type(fvbag_spmd), dimension(:), allocatable fvspmd
Definition fvbag_mod.F:129
type(fvbag_data), dimension(:), allocatable fvdata
Definition fvbag_mod.F:128
integer, dimension(:), allocatable fvid
Definition fvbag_mod.F:130
integer nfvbag
Definition fvbag_mod.F:127
integer, dimension(:), allocatable kmesh
subroutine write_db(a, n)
Definition write_db.F:140
void write_i_c(int *w, int *len)