OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
deallocate_one_element_group.F File Reference
#include "implicit_f.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine deallocate_one_element_group (elbuf_tab, nlay, nptr, npts, nptt, nintlay, nel, npt, ng, ngroup, ity, igtyp)

Function/Subroutine Documentation

◆ deallocate_one_element_group()

subroutine deallocate_one_element_group ( type(elbuf_struct_), dimension(ngroup), target elbuf_tab,
integer nlay,
integer nptr,
integer npts,
integer nptt,
integer nintlay,
integer nel,
integer npt,
integer ng,
integer ngroup,
integer ity,
integer igtyp )

Definition at line 30 of file deallocate_one_element_group.F.

33C-----------------------------------------------
34C M o d u l e s
35C-----------------------------------------------
36 USE elbufdef_mod
37 USE message_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 NLAY,NINTLAY,NPTR,NPTS,NPTT,NEL,NPT,NG,NGROUP,ITY,IGTYP
46 TYPE(ELBUF_STRUCT_),TARGET ,DIMENSION(NGROUP) :: ELBUF_TAB
47C-----------------------------------------------
48C L o c a l V a r i a b l e s
49C-----------------------------------------------
50 INTEGER I,J,IL,IR,IS,IT,Stat,NPG,ILAYER,IPT,
51 . LEN1,LEN2,LEN_PLAPT,LEN_SIGPT,NPTTOT
52 TYPE(BUF_MAT_) , POINTER :: MATBUF
53 TYPE(BUF_LAY_) , POINTER :: BUFLY
54 TYPE(BUF_INTLAY_) , POINTER :: INTLAY
55 TYPE(BUF_VISC_) , POINTER :: VISCBUF
56 TYPE(G_BUFEL_) , POINTER :: GBUF
57 TYPE(L_BUFEL_) , POINTER :: LBUF
58 TYPE(BUF_INTLOC_) , POINTER :: ILBUF
59 TYPE(FAIL_LOC_) , POINTER :: FLOC
60
61C=======================================================================
62 IF (ity == 1 .OR. ity == 2 .OR. ity == 51 .OR. ity == 101) THEN
63 npg = nptr*npts*nptt
64 npttot = npt
65 ELSEIF (ity == 3 .OR. ity == 7) THEN
66 npg = nptr*npts
67 npttot = 0
68 DO i=1,nlay
69 npttot = npttot + npg*elbuf_tab(ng)%BUFLY(i)%NPTT
70 ENDDO
71 IF (npt == 0) npttot = npt
72 ELSEIF (ity == 4 .OR. ity == 5 .OR. ity == 6 .OR. ity == 100)THEN
73 npg = 0
74 npttot = 0
75 ENDIF
76
77 gbuf => elbuf_tab(ng)%GBUF
78
79C Care Deallocation is inverted against allocation routines.
80C Lowest arrays needs to be deallocated first.
81
82c---
83c 1-D elements (TRUSS, BEAM, SPRING, NSTRAND)
84c---
85 IF (ASSOCIATED(gbuf%AREA)) DEALLOCATE(gbuf%AREA)
86 IF (ASSOCIATED(gbuf%SKEW)) DEALLOCATE(gbuf%SKEW)
87 IF (ASSOCIATED(gbuf%LENGTH)) DEALLOCATE(gbuf%LENGTH)
88 IF (ASSOCIATED(gbuf%TOTDEPL)) DEALLOCATE(gbuf%TOTDEPL)
89 IF (ASSOCIATED(gbuf%TOTROT)) DEALLOCATE(gbuf%TOTROT)
90 IF (ASSOCIATED(gbuf%FOREP)) DEALLOCATE(gbuf%FOREP)
91 IF (ASSOCIATED(gbuf%MOMEP)) DEALLOCATE(gbuf%MOMEP)
92 IF (ASSOCIATED(gbuf%DEP_IN_TENS)) DEALLOCATE(gbuf%DEP_IN_TENS)
93 IF (ASSOCIATED(gbuf%DEP_IN_COMP)) DEALLOCATE(gbuf%DEP_IN_COMP)
94 IF (ASSOCIATED(gbuf%ROT_IN_TENS)) DEALLOCATE(gbuf%ROT_IN_TENS)
95 IF (ASSOCIATED(gbuf%ROT_IN_COMP)) DEALLOCATE(gbuf%ROT_IN_COMP)
96 IF (ASSOCIATED(gbuf%POSX)) DEALLOCATE(gbuf%POSX)
97 IF (ASSOCIATED(gbuf%POSY)) DEALLOCATE(gbuf%POSY)
98 IF (ASSOCIATED(gbuf%POSZ)) DEALLOCATE(gbuf%POSZ)
99 IF (ASSOCIATED(gbuf%POSXX)) DEALLOCATE(gbuf%POSXX)
100 IF (ASSOCIATED(gbuf%POSYY)) DEALLOCATE(gbuf%POSYY)
101 IF (ASSOCIATED(gbuf%POSZZ)) DEALLOCATE(gbuf%POSZZ)
102 IF (ASSOCIATED(gbuf%YIELD)) DEALLOCATE(gbuf%YIELD)
103 IF (ASSOCIATED(gbuf%LENGTH_ERR)) DEALLOCATE(gbuf%LENGTH_ERR)
104 IF (ASSOCIATED(gbuf%DV)) DEALLOCATE(gbuf%DV)
105 IF (ASSOCIATED(gbuf%DFS)) DEALLOCATE(gbuf%DFS)
106 IF (ASSOCIATED(gbuf%SKEW_ERR)) DEALLOCATE(gbuf%SKEW_ERR)
107 IF (ASSOCIATED(gbuf%E6)) DEALLOCATE(gbuf%E6)
108 IF (ASSOCIATED(gbuf%RUPTCRIT)) DEALLOCATE(gbuf%RUPTCRIT)
109 IF (ASSOCIATED(gbuf%MASS)) DEALLOCATE(gbuf%MASS)
110 IF (ASSOCIATED(gbuf%V_REPCVT)) DEALLOCATE(gbuf%V_REPCVT)
111 IF (ASSOCIATED(gbuf%VR_REPCVT)) DEALLOCATE(gbuf%VR_REPCVT)
112 IF (ASSOCIATED(gbuf%VAR)) DEALLOCATE(gbuf%VAR)
113 IF (ASSOCIATED(gbuf%VARN)) DEALLOCATE(gbuf%VARN)
114 IF (ASSOCIATED(gbuf%DEFINI)) DEALLOCATE(gbuf%DEFINI)
115 IF (ASSOCIATED(gbuf%FORINI)) DEALLOCATE(gbuf%FORINI)
116 IF (ASSOCIATED(gbuf%INIFRIC)) DEALLOCATE(gbuf%INIFRIC)
117 IF (ASSOCIATED(gbuf%DT_PITER)) DEALLOCATE(gbuf%DT_PITER)
118
119 DEALLOCATE(elbuf_tab(ng)%GBUF%FILL)
120
121
122 IF (npttot == 1) THEN
123C Only Pointer Associations.
124C No allocation in this case
125 ELSE ! NPT > 1
126 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%BFRAC)) DEALLOCATE(elbuf_tab(ng)%GBUF%BFRAC)
127 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%OFF)) DEALLOCATE(elbuf_tab(ng)%GBUF%OFF)
128 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%EINT)) DEALLOCATE(elbuf_tab(ng)%GBUF%EINT)
129 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%EINS)) DEALLOCATE(elbuf_tab(ng)%GBUF%EINS)
130 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%RHO)) DEALLOCATE(elbuf_tab(ng)%GBUF%RHO)
131 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%QVIS)) DEALLOCATE(elbuf_tab(ng)%GBUF%QVIS)
132 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%DELTAX)) DEALLOCATE(elbuf_tab(ng)%GBUF%DELTAX)
133 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%VOL)) DEALLOCATE(elbuf_tab(ng)%GBUF%VOL)
134 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%EPSD)) DEALLOCATE(elbuf_tab(ng)%GBUF%EPSD)
135 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%EPSQ)) DEALLOCATE(elbuf_tab(ng)%GBUF%EPSQ)
136 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%PLA )) DEALLOCATE(elbuf_tab(ng)%GBUF%PLA)
137 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%TEMP)) DEALLOCATE(elbuf_tab(ng)%GBUF%TEMP)
138 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%TB)) DEALLOCATE(elbuf_tab(ng)%GBUF%TB)
139 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%RK)) DEALLOCATE(elbuf_tab(ng)%GBUF%RK)
140 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%RE)) DEALLOCATE(elbuf_tab(ng)%GBUF%RE)
141 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%SIG)) DEALLOCATE(elbuf_tab(ng)%GBUF%SIG)
142 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%FORTH)) DEALLOCATE(elbuf_tab(ng)%GBUF%FORTH)
143 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%EINTTH)) DEALLOCATE(elbuf_tab(ng)%GBUF%EINTTH)
144 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%SEQ)) DEALLOCATE(elbuf_tab(ng)%GBUF%SEQ)
145 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%ABURN )) DEALLOCATE(elbuf_tab(ng)%GBUF%ABURN)
146 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%MU )) DEALLOCATE(elbuf_tab(ng)%GBUF%MU)
147
148 ENDIF ! NPT
149
150 IF (npg == 1) THEN
151C Only Pointer Associations.
152C No allocation in this case
153 ELSEIF (npg > 1) THEN
154 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%FORPG)) DEALLOCATE(elbuf_tab(ng)%GBUF%FORPG)
155 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%MOMPG)) DEALLOCATE(elbuf_tab(ng)%GBUF%MOMPG)
156C
157 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%FORPGPINCH)) DEALLOCATE(elbuf_tab(ng)%GBUF%FORPGPINCH)
158 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%MOMPGPINCH)) DEALLOCATE(elbuf_tab(ng)%GBUF%MOMPGPINCH)
159 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%EPGPINCHXZ)) DEALLOCATE(elbuf_tab(ng)%GBUF%EPGPINCHXZ)
160 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%EPGPINCHYZ)) DEALLOCATE(elbuf_tab(ng)%GBUF%EPGPINCHYZ)
161 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%EPGPINCHZZ)) DEALLOCATE(elbuf_tab(ng)%GBUF%EPGPINCHZZ)
162C
163 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%STRPG)) DEALLOCATE(elbuf_tab(ng)%GBUF%STRPG)
164 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%STRWPG))DEALLOCATE(elbuf_tab(ng)%GBUF%STRWPG)
165 ENDIF
166
167c-------------------------------------------------
168C global buffer allocation
169c-------------------------------------------------
170 gbuf => elbuf_tab(ng)%GBUF
171
172 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%NOFF)) DEALLOCATE(elbuf_tab(ng)%GBUF%NOFF)
173 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%IERR)) DEALLOCATE(elbuf_tab(ng)%GBUF%IERR)
174 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%GAMA)) DEALLOCATE(elbuf_tab(ng)%GBUF%GAMA)
175 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%SMSTR)) DEALLOCATE(elbuf_tab(ng)%GBUF%SMSTR)
176 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%HOURG)) DEALLOCATE(elbuf_tab(ng)%GBUF%HOURG)
177 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%TAG22)) DEALLOCATE(elbuf_tab(ng)%GBUF%TAG22)
178 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%STRA)) DEALLOCATE(elbuf_tab(ng)%GBUF%STRA)
179 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%STRW)) DEALLOCATE(elbuf_tab(ng)%GBUF%STRW)
180 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%SIGI)) DEALLOCATE(elbuf_tab(ng)%GBUF%SIGI)
181 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%DMG)) DEALLOCATE(elbuf_tab(ng)%GBUF%DMG)
182 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%UELR)) DEALLOCATE(elbuf_tab(ng)%GBUF%UELR)
183 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%UELR1)) DEALLOCATE(elbuf_tab(ng)%GBUF%UELR1)
184 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%DAMDL)) DEALLOCATE(elbuf_tab(ng)%GBUF%DAMDL)
185 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%FOR)) DEALLOCATE(elbuf_tab(ng)%GBUF%FOR)
186 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%MOM)) DEALLOCATE(elbuf_tab(ng)%GBUF%MOM)
187 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%THK)) DEALLOCATE(elbuf_tab(ng)%GBUF%THK)
188 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%THK_I)) DEALLOCATE(elbuf_tab(ng)%GBUF%THK_I)
189 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%JAC_I)) DEALLOCATE(elbuf_tab(ng)%GBUF%JAC_I)
190 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%DT)) DEALLOCATE(elbuf_tab(ng)%GBUF%DT)
191 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%ISMS)) DEALLOCATE(elbuf_tab(ng)%GBUF%ISMS)
192 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%STRHG)) DEALLOCATE(elbuf_tab(ng)%GBUF%STRHG)
193 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%BPRELD)) DEALLOCATE(elbuf_tab(ng)%GBUF%BPRELD)
194 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%COR_NF)) DEALLOCATE(elbuf_tab(ng)%GBUF%COR_NF)
195 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%COR_FR)) DEALLOCATE(elbuf_tab(ng)%GBUF%COR_FR)
196 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%COR_XR)) DEALLOCATE(elbuf_tab(ng)%GBUF%COR_XR)
197 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%MAXFRAC)) DEALLOCATE(elbuf_tab(ng)%GBUF%MAXFRAC)
198 IF (ASSOCIATED(elbuf_tab(ng)%GBUF%MAXEPS)) DEALLOCATE(elbuf_tab(ng)%GBUF%MAXEPS)
199C-------------------------------------------------
200c Inter layers (ply xfem)
201c-------------------------------------------------
202 DO i = 1, nintlay
203 IF (ASSOCIATED(elbuf_tab(ng)%INTLAY(i)%EINT)) DEALLOCATE(elbuf_tab(ng)%INTLAY(i)%EINT)
204 IF (ASSOCIATED(elbuf_tab(ng)%INTLAY(i)%COUNT)) DEALLOCATE(elbuf_tab(ng)%INTLAY(i)%COUNT)
205
206 DO ir = 1,nptr
207 DO is = 1,npts
208 ilbuf => elbuf_tab(ng)%INTLAY(i)%ILBUF(ir,is)
209 IF (ASSOCIATED(ilbuf%EPS)) DEALLOCATE(ilbuf%EPS)
210 IF (ASSOCIATED(ilbuf%SIG)) DEALLOCATE(ilbuf%SIG)
211 ENDDO
212 ENDDO
213 ENDDO
214
215c-------------------------------------------------
216C layer mean variable (NPG = 1)
217c-------------------------------------------------
218C Nothing to do - only pointer settings
219
220c-------------------------------------------------
221c LAYER Local variables per integration point
222c-------------------------------------------------
223 DO i = 1, nlay
224 bufly => elbuf_tab(ng)%BUFLY(i)
225 IF (igtyp == 51 .OR. igtyp == 52) THEN
226 nptt = bufly%NPTT
227 ELSE
228 nptt = elbuf_tab(ng)%NPTT
229 ENDIF
230
231 DO ir = 1,nptr
232 DO is = 1,npts
233 DO it = 1,nptt
234 lbuf => elbuf_tab(ng)%BUFLY(i)%LBUF(ir,is,it)
235c
236 IF (ASSOCIATED(lbuf%OFF)) DEALLOCATE(lbuf%OFF)
237 IF (ASSOCIATED(lbuf%GAMA)) DEALLOCATE(lbuf%GAMA)
238 IF (ASSOCIATED(lbuf%STRA)) DEALLOCATE(lbuf%STRA)
239 IF (ASSOCIATED(lbuf%FRAC)) DEALLOCATE(lbuf%FRAC)
240 IF (ASSOCIATED(lbuf%BFRAC)) DEALLOCATE(lbuf%BFRAC)
241 IF (ASSOCIATED(lbuf%EINT)) DEALLOCATE(lbuf%EINT)
242 IF (ASSOCIATED(lbuf%EINS)) DEALLOCATE(lbuf%EINS)
243 IF (ASSOCIATED(lbuf%RHO)) DEALLOCATE(lbuf%RHO)
244 IF (ASSOCIATED(lbuf%DP_DRHO)) DEALLOCATE(lbuf%DP_DRHO)
245 IF (ASSOCIATED(lbuf%QVIS)) DEALLOCATE(lbuf%QVIS)
246 IF (ASSOCIATED(lbuf%DELTAX)) DEALLOCATE(lbuf%DELTAX)
247 IF (ASSOCIATED(lbuf%VOL)) DEALLOCATE(lbuf%VOL)
248 IF (ASSOCIATED(lbuf%EPSA)) DEALLOCATE(lbuf%EPSA)
249 IF (ASSOCIATED(lbuf%EPSD)) DEALLOCATE(lbuf%EPSD)
250 IF (ASSOCIATED(lbuf%EPSQ)) DEALLOCATE(lbuf%EPSQ)
251 IF (ASSOCIATED(lbuf%EPSF)) DEALLOCATE(lbuf%EPSF)
252 IF (ASSOCIATED(lbuf%PLA)) DEALLOCATE(lbuf%PLA)
253 IF (ASSOCIATED(lbuf%TEMP)) DEALLOCATE(lbuf%TEMP)
254 IF (ASSOCIATED(lbuf%TB)) DEALLOCATE(lbuf%TB)
255 IF (ASSOCIATED(lbuf%RK)) DEALLOCATE(lbuf%RK)
256 IF (ASSOCIATED(lbuf%RE)) DEALLOCATE(lbuf%RE)
257 IF (ASSOCIATED(lbuf%VK)) DEALLOCATE(lbuf%VK)
258 IF (ASSOCIATED(lbuf%SF)) DEALLOCATE(lbuf%SF)
259 IF (ASSOCIATED(lbuf%ROB)) DEALLOCATE(lbuf%ROB)
260 IF (ASSOCIATED(lbuf%DAM)) DEALLOCATE(lbuf%DAM)
261 IF (ASSOCIATED(lbuf%DSUM)) DEALLOCATE(lbuf%DSUM)
262 IF (ASSOCIATED(lbuf%DGLO)) DEALLOCATE(lbuf%DGLO)
263 IF (ASSOCIATED(lbuf%CRAK)) DEALLOCATE(lbuf%CRAK)
264 IF (ASSOCIATED(lbuf%EPE)) DEALLOCATE(lbuf%EPE)
265 IF (ASSOCIATED(lbuf%ANG)) DEALLOCATE(lbuf%ANG)
266 IF (ASSOCIATED(lbuf%EPC)) DEALLOCATE(lbuf%EPC)
267 IF (ASSOCIATED(lbuf%XST)) DEALLOCATE(lbuf%XST)
268 IF (ASSOCIATED(lbuf%SSP)) DEALLOCATE(lbuf%SSP)
269 IF (ASSOCIATED(lbuf%Z)) DEALLOCATE(lbuf%Z)
270 IF (ASSOCIATED(lbuf%VISC)) DEALLOCATE(lbuf%VISC)
271 IF (ASSOCIATED(lbuf%SIGL)) DEALLOCATE(lbuf%SIGL)
272 IF (ASSOCIATED(lbuf%SIGV)) DEALLOCATE( lbuf%SIGV)
273 IF (ASSOCIATED(lbuf%SIGA)) DEALLOCATE(lbuf%SIGA)
274 IF (ASSOCIATED(lbuf%SIGB)) DEALLOCATE(lbuf%SIGB)
275 IF (ASSOCIATED(lbuf%SIGC)) DEALLOCATE(lbuf%SIGC)
276 IF (ASSOCIATED(lbuf%SIGD)) DEALLOCATE(lbuf%SIGD)
277 IF (ASSOCIATED(lbuf%SIGF)) DEALLOCATE(lbuf%SIGF)
278 IF (ASSOCIATED(lbuf%SIG)) DEALLOCATE(lbuf%SIG)
279 IF (ASSOCIATED(lbuf%SIGPLY)) DEALLOCATE(lbuf%SIGPLY)
280 IF (ASSOCIATED(lbuf%FOR)) DEALLOCATE(lbuf%FOR)
281 IF (ASSOCIATED(lbuf%MOM)) DEALLOCATE(lbuf%MOM)
282 IF (ASSOCIATED(lbuf%THK)) DEALLOCATE(lbuf%THK)
283 IF (ASSOCIATED(lbuf%SMSTR)) DEALLOCATE(lbuf%SMSTR)
284 IF (ASSOCIATED(lbuf%DMG)) DEALLOCATE(lbuf%DMG)
285 IF (ASSOCIATED(lbuf%FORTH)) DEALLOCATE(lbuf%FORTH)
286 IF (ASSOCIATED(lbuf%EINTTH)) DEALLOCATE(lbuf%EINTTH)
287 IF (ASSOCIATED(lbuf%SEQ)) DEALLOCATE(lbuf%SEQ)
288 IF (ASSOCIATED(lbuf%JAC_I)) DEALLOCATE(lbuf%JAC_I)
289 IF (ASSOCIATED(lbuf%FAC_YLD)) DEALLOCATE(lbuf%FAC_YLD)
290 IF (ASSOCIATED(lbuf%ABURN)) DEALLOCATE(lbuf%ABURN)
291 IF (ASSOCIATED(lbuf%MU)) DEALLOCATE(lbuf%MU)
292 ENDDO
293 ENDDO
294 ENDDO
295 ENDDO
296
297c-------------------------------------------------
298c layer buffer allocation
299c-------------------------------------------------
300 DO i = 1, nlay
301 bufly => elbuf_tab(ng)%BUFLY(i)
302c
303 IF (ASSOCIATED(bufly%DMG)) DEALLOCATE( bufly%DMG)
304 IF (ASSOCIATED(bufly%GAMA)) DEALLOCATE( bufly%GAMA)
305 IF (ASSOCIATED(bufly%DIRA)) DEALLOCATE( bufly%DIRA)
306 IF (ASSOCIATED(bufly%DIRB)) DEALLOCATE( bufly%DIRB)
307 IF (ASSOCIATED(bufly%CRKDIR))DEALLOCATE( bufly%CRKDIR)
308 IF (ASSOCIATED(bufly%OFFPG)) DEALLOCATE( bufly%OFFPG)
309 IF (ASSOCIATED(bufly%OFF)) DEALLOCATE( bufly%OFF)
310c
311 IF (npg > 1) THEN
312 IF (ASSOCIATED(bufly%PLAPT)) DEALLOCATE( bufly%PLAPT)
313 IF (ASSOCIATED(bufly%SIGPT)) DEALLOCATE( bufly%SIGPT)
314
315 ELSEIF (npg == 1) THEN
316C Nothing to deallocate
317 ENDIF
318C
319 IF (ASSOCIATED(bufly%HOURG)) DEALLOCATE(bufly%HOURG)
320 IF (ASSOCIATED(bufly%UELR)) DEALLOCATE(bufly%UELR)
321 IF (ASSOCIATED(bufly%UELR1)) DEALLOCATE(bufly%UELR1)
322 ENDDO
323C-----------------------------------------------
324 RETURN