41#include "implicit_f.inc"
54 TYPE (NLOCAL_STR_),
TARGET :: NLOC_DMG
58 INTEGER I,ILOC,NNOD,L_NLOC,NUMELS_NL,NUMELC_NL,NDDMAX,
59 . NUMELTG_NL,LCNE_NL,MATSIZE
60 my_real,
DIMENSION(:),
POINTER :: fnl,stifnl
61 INTEGER,
DIMENSION(8) ::
78 nloc_dmg%L_NLOC = l_nloc
79 nloc_dmg%NUMELS_NL = numels_nl
80 nloc_dmg%NUMELC_NL = numelc_nl
81 nloc_dmg%NUMELTG_NL = numeltg_nl
82 nloc_dmg%NDDMAX = nddmax
83 nloc_dmg%LCNE_NL = lcne_nl
94 ALLOCATE (nloc_dmg%LEN(matsize))
95 ALLOCATE (nloc_dmg%LE_MAX(matsize))
96 ALLOCATE (nloc_dmg%DENS(matsize))
97 ALLOCATE (nloc_dmg%DAMP(matsize))
98 ALLOCATE (nloc_dmg%SSPNL(matsize))
99 ALLOCATE (nloc_dmg%INDX(nnod))
100 ALLOCATE (nloc_dmg%POSI(nnod+1))
101 ALLOCATE (nloc_dmg%IDXI(numnod))
102 ALLOCATE (nloc_dmg%MASS(l_nloc))
103 ALLOCATE (nloc_dmg%MASS0(l_nloc))
104 ALLOCATE (nloc_dmg%VNL(l_nloc))
105 ALLOCATE (nloc_dmg%VNL_OLD(l_nloc))
107 ALLOCATE (nloc_dmg%UNL(l_nloc))
108 ALLOCATE (nloc_dmg%CNE(0))
111 IF (ipari0 == 1)
THEN
112 ALLOCATE (nloc_dmg%ADDCNE(nnod+1))
113 ALLOCATE (nloc_dmg%PROCNE(lcne_nl))
114 ALLOCATE (nloc_dmg%IADS(8,numels_nl))
115 ALLOCATE (nloc_dmg%IADC(4,numelc_nl))
116 ALLOCATE (nloc_dmg%IADTG(3,numeltg_nl))
120 ALLOCATE (nloc_dmg%ADDCNE(0))
121 ALLOCATE (nloc_dmg%PROCNE(0))
122 ALLOCATE (nloc_dmg%IADS(0,0))
123 ALLOCATE (nloc_dmg%IADC(0,0))
124 ALLOCATE (nloc_dmg%IADTG(0,0))
125 ALLOCATE (nloc_dmg%FSKY(0,0))
126 ALLOCATE (nloc_dmg%STSKY(0,0))
130 IF (iparit == 1)
THEN
131 ALLOCATE (nloc_dmg%FNL(l_nloc,1))
132 nloc_dmg%FNL(1:l_nloc,1) = zero
135 ALLOCATE (nloc_dmg%STIFNL(l_nloc,1))
136 nloc_dmg%STIFNL(1:l_nloc,1) = zero
138 ALLOCATE (nloc_dmg%STIFNL(0,0))
142 ALLOCATE (nloc_dmg%FNL(l_nloc,nthread))
143 nloc_dmg%FNL(1:l_nloc,1:nthread) = zero
146 ALLOCATE (nloc_dmg%STIFNL(l_nloc,nthread))
147 nloc_dmg%STIFNL(1:l_nloc,1:nthread) = zero
149 ALLOCATE (nloc_dmg%STIFNL(0,0))
153 CALL read_db(nloc_dmg%DENS,matsize)
155 CALL read_db(nloc_dmg%DAMP,matsize)
157 CALL read_db(nloc_dmg%LEN,matsize)
159 CALL read_db(nloc_dmg%LE_MAX,matsize)
161 CALL read_db(nloc_dmg%SSPNL,matsize)
170 IF (ipari0 == 1)
THEN
173 CALL read_i_c(nloc_dmg%ADDCNE,nnod+1)
176 CALL read_i_c(nloc_dmg%PROCNE,lcne_nl)
179 CALL read_i_c(nloc_dmg%IADS,8*numels_nl)
182 CALL read_i_c(nloc_dmg%IADC,4*numelc_nl)
185 CALL read_i_c(nloc_dmg%IADTG,3*numeltg_nl)
188 ALLOCATE (nloc_dmg%FSKY(nloc_dmg%ADDCNE(nnod+1),nddmax))
189 nloc_dmg%FSKY(1:nloc_dmg%ADDCNE(nnod+1),1:nddmax) = zero
193 ALLOCATE (nloc_dmg%STSKY(nloc_dmg%ADDCNE(nnod+1),nddmax))
194 nloc_dmg%STSKY(1:nloc_dmg%ADDCNE(nnod+1),1:nddmax) = zero
196 ALLOCATE (nloc_dmg%STSKY(0,0))
201 CALL read_db(nloc_dmg%MASS,l_nloc)
203 CALL read_db(nloc_dmg%MASS0,l_nloc)
205 fnl => nloc_dmg%FNL(1:l_nloc,1)
208 CALL read_db(nloc_dmg%VNL,l_nloc)
210 CALL read_db(nloc_dmg%VNL_OLD,l_nloc)
212 CALL read_db(nloc_dmg%DNL,l_nloc)
214 CALL read_db(nloc_dmg%UNL,l_nloc)
219 nloc_dmg%NUMELS_NL = 0
220 nloc_dmg%NUMELC_NL = 0
221 nloc_dmg%NUMELTG_NL = 0
224 ALLOCATE (nloc_dmg%DENS(0))
225 ALLOCATE (nloc_dmg%DAMP(0))
226 ALLOCATE (nloc_dmg%LEN(0))
227 ALLOCATE (nloc_dmg%LE_MAX(0))
228 ALLOCATE (nloc_dmg%SSPNL(0))
229 ALLOCATE (nloc_dmg%INDX(0))
230 ALLOCATE (nloc_dmg%POSI(0))
231 ALLOCATE (nloc_dmg%IDXI(0))
232 ALLOCATE (nloc_dmg%ADDCNE(0))
233 ALLOCATE (nloc_dmg%CNE(0))
234 ALLOCATE (nloc_dmg%PROCNE(0))
235 ALLOCATE (nloc_dmg%IADS(0,0))
236 ALLOCATE (nloc_dmg%IADC(0,0))
237 ALLOCATE (nloc_dmg%IADTG(0,0))
238 ALLOCATE (nloc_dmg%MASS(0))
239 ALLOCATE (nloc_dmg%MASS0(0))
240 ALLOCATE (nloc_dmg%FNL(0,0))
241 ALLOCATE (nloc_dmg%VNL(0))
242 ALLOCATE (nloc_dmg%VNL_OLD(0))
243 ALLOCATE (nloc_dmg%DNL(0))
244 ALLOCATE (nloc_dmg%UNL(0))
245 ALLOCATE (nloc_dmg%STIFNL(0,0))
246 ALLOCATE (nloc_dmg%FSKY(0,0))
247 ALLOCATE (nloc_dmg%STSKY(0,0))
248 ALLOCATE (nloc_dmg%IAD_ELEM(0))
249 ALLOCATE (nloc_dmg%IAD_SIZE(0))
250 ALLOCATE (nloc_dmg%FR_ELEM(0))