58 CHARACTER*50 :: ichr50
62 OPEN(
unit = 14, file=prefix(1:length(prefix))//
".inp",
status=
"OLD")
65 ichr50 =
'mkdir '//prefix(1:length(prefix))
78 ALLOCATE(frontnode); nullify(frontnode%next)
79 first_front_node => frontnode; numscale_np = 0
81 ALLOCATE(backnode); nullify(backnode%next)
82 first_back_node => backnode; numscale_np = 0
94 select case (idpacket)
104 ALLOCATE(
node(numnp))
107 node(1:numnp)%marker = 0
108 node(1:numnp)%meshmark = 0
110 ALLOCATE(meshcoor(1:3,1:numnp))
111 ALLOCATE(nboundtype(1:numnp))
113 READ(14,*)
j,
node(l)%coord(1:3)
116 maxz =
max(maxz,
node(l)%coord(3))
117 minz =
min(minz,
node(l)%coord(3))
120 meshcoor(1:3,l) =
node(l)%coord(1:3)
124 WRITE(6,*)
"MinZ = ",minz,
"MaxZ = ", maxz
126 maxz = maxz - .00001*maxz
127 minz = minz + .00001*minz
133 IF (
node(l)%coord(3) .LE. minz)
THEN
135 backnode%coord(1:3) =
node(l)%coord(1:3)
136 ALLOCATE(backnode%next); backnode => backnode%next; nullify(backnode%next)
137 numscale_np = numscale_np + 1
138 numscale_bk = numscale_bk + 1
140 ELSE IF (
node(l)%coord(3) .GE. maxz)
THEN
142 frontnode%coord(1:3) =
node(l)%coord(1:3)
143 ALLOCATE(frontnode%next); frontnode => frontnode%next; nullify(frontnode%next)
144 numscale_np = numscale_np + 1
145 numscale_ft = numscale_ft + 1
148 meshcoor(1:3,l) =
node(l)%coord(1:3)
158 frontnode => first_front_node
159 backnode => first_back_node
162 ALLOCATE(
id(1:numbound))
164 numboundmid = numbound
165 numboundend = numbound
166 numboundfirst = numbound
169 READ(14,*)
id(l)%ID,
id(l)%NdBCflag
171 node(
id(l)%ID)%marker =
id(l)%NdBCflag
172 IF((
id(l)%NdBCflag .GE. 10) .AND. (
id(l)%NdBCflag .LT. 100))
THEN
173 numboundmid = numboundmid - 1
174 numboundend = numboundend - 1
175 DO WHILE(
associated(backnode%next))
176 IF (backnode%ID .EQ.
id(l)%ID)
THEN
177 backnode%marker =
id(l)%NdBCflag
179 backnode => backnode%next
182 ELSE IF (
id(l)%NdBCflag .GE. 100)
THEN
183 numboundmid = numboundmid - 1
184 numboundfirst = numboundfirst - 1
185 DO WHILE(
associated(frontnode%next))
186 IF (frontnode%ID .EQ.
id(l)%ID)
THEN
187 frontnode%marker =
id(l)%NdBCflag
189 frontnode => frontnode%next
192 frontnode => first_front_node
193 backnode => first_back_node
202 READ(14,*) numboundmesh
203 ALLOCATE(idmesh(1:numboundmesh))
205 numbmeshmid = numboundmesh
206 numbmeshend = numboundmesh
207 numbmeshfirst = numboundmesh
209 DO l = 1, numboundmesh
210 READ(14,*) idmesh(l)%ID, idmesh(l)%NdBCflag
212 node(idmesh(l)%ID)%meshmark = idmesh(l)%NdBCflag
213 IF((idmesh(l)%NdBCflag .GE. 10) .AND. (idmesh(l)%NdBCflag .LT. 100))
THEN
214 numbmeshmid = numbmeshmid - 1
215 numbmeshend = numbmeshend - 1
216 DO WHILE(
associated(backnode%next))
217 IF (backnode%ID .EQ. idmesh(l)%ID)
THEN
218 backnode%mesh = idmesh(l)%NdBCflag
220 backnode => backnode%next
223 ELSE IF (idmesh(l)%NdBCflag .GE. 100)
THEN
224 numbmeshmid = numbmeshmid - 1
225 numbmeshfirst = numbmeshfirst - 1
226 DO WHILE(
associated(frontnode%next))
227 IF (frontnode%ID .EQ. idmesh(l)%ID)
THEN
228 frontnode%mesh = idmesh(l)%NdBCflag
230 frontnode => frontnode%next
233 frontnode => first_front_node
234 backnode => first_back_node
246 READ(14,*) numcstet,num_border_cst
248 ALLOCATE(lmcstet(1:4,1:numcstet),matcstet(1:numcstet))
252 ALLOCATE(elemlist); nullify(elemlist%next); nullify(elemlist%previous)
253 ALLOCATE(eboundlist); nullify(eboundlist%next); nullify(eboundlist%previous)
254 firstelem => elemlist
255 firstebound => eboundlist
260 READ(14,*) matcstet(l), lmcstet(1:4,l)
265 IF((
node(
m)%coord(3) .GE. maxz) .OR. (
node(
m)%coord(3) .LE. 0.000000))
THEN
268 IF (
m .EQ. lmcstet(
n,l))
THEN
269 eboundlist%ID = l; eboundlist%conn(1:4) = lmcstet(1:4,l)
270 ALLOCATE(eboundlist%next); eboundlist => eboundlist%next; nullify(eboundlist%next)
271 nboundryel3d = nboundryel3d + 1
280 elemlist%ID = l; elemlist%conn(1:4) = lmcstet(1:4,l)
281 ALLOCATE(elemlist%next); elemlist => elemlist%next; nullify(elemlist%next)
283 print*,
'Finished Case 5'
Vector_n max(const Array_n_const &v1, const Array_n_const &v2)
int status() const
Obtain the status of the attribute.
const std::string & unit() const
Obtain the unit of the attribute.
Vector_n min(const Array_n_const &v1, const Array_n_const &v2)
unsigned long id(const Leda_like_handle &x)