34 SUBROUTINE report(IH3DREADER,N,IMVW,WFEXT,WFEXT_MD,OUTPUT)
39 USE user_interface_mod
41 USE output_mod ,
ONLY : output_
45#include "implicit_f.inc"
54#include "commandline.inc"
60#include "submodel.inc"
64 INTEGER IH3DREADER,N,IMVW
69 INTEGER ,LEN_CWD, OUT_TMP, IS_MESSAGE, IS_WARNING,IS_FILE_FOUND, IEND
70 INTEGER*4 GETCWD, STATUS
71 CHARACTER FILNAM*100,MVWNAM*100
72 CHARACTER(LEN=LPATH) :: CWD
75 CHARACTER ELTYP(0:105)*5
78 my_real entot, entot1, err, err1, x99, emass,entot1b,dm_inout,de_inout
79 DOUBLE PRECISION ENTOTB
80 INTEGER :: LEN_TMP_NAME
81 CHARACTER(len=2148) :: TMP_NAME
82 TYPE(output_),
INTENT(IN) :: OUTPUT
85 1
'SOLID',
'QUAD ',
'SHELL',
'TRUSS',
'BEAM ',
86 2
'SPRIN',
'SH_3N',
' ',
'AIRBA',
'INTER',
87 3
'NODE ',
' ',
' ',
' ',
' ',
88 4
' ',
' ',
' ',
' ',
' ',
89 5
' ',
' ',
' ',
' ',
' ',
90 6
' ',
' ',
' ',
' ',
' ',
91 7
' ',
' ',
' ',
' ',
' ',
92 8
' ',
' ',
' ',
' ',
' ',
93 9
' ',
' ',
' ',
' ',
' ',
94 a
' ',
' ',
' ',
' ',
' ',
95 b
'SPCEL',
'FVBAG',
' ',
' ',
' ',
96 c
' ',
' ',
' ',
' ',
' ',
97 d
' ',
' ',
' ',
' ',
' ',
98 e
' ',
' ',
' ',
' ',
' ',
99 f
' ',
' ',
' ',
' ',
' ',
100 g
' ',
' ',
' ',
' ',
' ',
101 h
' ',
' ',
' ',
' ',
' ',
102 i
' ',
' ',
' ',
' ',
' ',
103 j
' ',
' ',
' ',
' ',
' ',
104 k
' ',
' ',
' ',
' ',
'XELEM',
105 k
'IGE3D',
' ',
' ',
' ',
' '/
112 entot = encin + enint + enrot
113 entotb = entot + encin2 + enrot2
114 de_inout = output%DATA%INOUT%DE_IN + output%DATA%INOUT%DE_OUT
115 entot1=entot0 + wfext + de_inout
116 entot1b=entot0 + wfext + deltae + wfext_md + de_inout
117 IF(abs(entot1b)>em20)
THEN
118 err = entotb/entot1b - one
119 err1 =
max(-x99,
min(x99,err*hundred))
124 dm_inout = output%DATA%INOUT%DM_IN + output%DATA%INOUT%DM_OUT
125 emass = (xmass - (mass0+dm_inout)) / (mass0+dm_inout)
127 CALL date_and_time(date,time)
129 len_cwd = len_trim(cwd)
130 filnam=rootnam(1:rootlen)//
'_report.html'
131 mvwnam=rootnam(1:rootlen)//
'.mvw'
137 OPEN(unit=ioutrep,file=tmp_name(1:len_tmp_name),
138 . access=
'SEQUENTIAL',
139 . form=
'FORMATTED',status=
'UNKNOWN')
141 WRITE(ioutrep,
'(A)')
'<html>'
142 WRITE(ioutrep,
'(A)')
'<head>'
143 IF(got_inspire_alm == 1)
THEN
144 WRITE(ioutrep,
'(A,I4,A)')
'<title>Altair Solver ',2022,
' Report</title>'
146 WRITE(ioutrep,
'(A,I4,A)')
'<title>Altair Radioss(TM) ',2022,
' Report</title>'
148 WRITE(ioutrep,
'(A)')
'<script language="JavaScript">'
149 WRITE(ioutrep,
'(A)')
'function h3d()'
150 WRITE(ioutrep,
'(A)')
'{'
151 WRITE(ioutrep,
'(A)')
'winProps = "height=600,width=520,location=no,scrollbars=no,menubars=no,toolbars=no,
152 . status=no,resizable=yes";'
153 WRITE(ioutrep,
'(A,A,A)')
'window.open("',rootnam(1:rootlen),
'_frames.html","H3D",winProps);'
154 WRITE(ioutrep,
'(A)')
'}'
155 WRITE(ioutrep,
'(A)')
'</script>'
156 WRITE(ioutrep,
'(A)')
'</head>'
157 WRITE(ioutrep,
'(A)')
' '
158 WRITE(ioutrep,
'(A)')
'<body bgcolor="#FFFFFF" text="#000000">'
159 WRITE(ioutrep,'(a)
')' '
160 WRITE(IOUTREP,'(a)
')'<table>
'
161 WRITE(IOUTREP,'(a)
')'<tr>
'
162 WRITE(IOUTREP,'(a)
')'<td>
'
163 IF(GOT_INSPIRE_ALM == 1)THEN
164 WRITE(IOUTREP,'(a,i10,a)
')'<font face=
"Arial" size=
"5"><b><i>altair solver
',2022,''
166 WRITE(IOUTREP,'(a,i10,a)
')'<font face=
"Arial" size=
"5"><b><i>altair
radioss(tm)
',2022,' report</i></b></font><br>
'
168 WRITE(IOUTREP,'(a)
')'<font face=
"Arial" size=
"4"><b><i> </i></b></font>
'
169 WRITE(IOUTREP,'(a)
')'</td></tr>
'
170 WRITE(IOUTREP,'(a)
')'</table>
'
171 WRITE(IOUTREP,'(a)
')' '
172 WRITE(IOUTREP,'(a)
')'<hr size=
"3" color=
"#000000" noshade>
'
173 WRITE(IOUTREP,'')'"Arial" size=
"2">
'
174 WRITE(IOUTREP,'(11a)
')'run submitted
',DATE(1:4),'/
',DATE(5:6),'/
',DATE(7:8),' ,
',TIME(1:2),'h
',TIME(3:4),'mn
'
175 WRITE(IOUTREP,'(a)
')'<p>
'
176 IF(GOT_INSPIRE_ALM == 1)THEN
177 WRITE(IOUTREP,'(4a)
')'solver input file :
',CWD(1:LEN_CWD),'/
',ROOTNAM(1:ROOTLEN),'_0000.rad
'
178 WRITE(IOUTREP,'(a)
')'<p>
'
179 WRITE(IOUTREP,'(4a)
')'solver input file :
',CWD(1:LEN_CWD),'/
',ROOTNAM(1:ROOTLEN),'_0001.rad
'
180 WRITE(IOUTREP,'(a)
')'<p>
'
182 WRITE(IOUTREP,'(4a)
')'starter input file :
',CWD(1:LEN_CWD),'/
',ROOTNAM(1:ROOTLEN),'_0000.rad
'
183 WRITE(IOUTREP,'(a)
')'<p>
'
184 WRITE(IOUTREP,'(4a)
')'engine input file :
',CWD(1:LEN_CWD),'/
',ROOTNAM(1:ROOTLEN),'_0001.rad
'
185 WRITE(IOUTREP,'(a)
')'<p>
'
187 WRITE(IOUTREP,'(a)
')'<br>
'
188 WRITE(IOUTREP,'(a)
')' '
189 WRITE(IOUTREP,'(a)
')'<font face=
"Arial" size=
"4"><b><i>run summary</i></b></font>
'
190 WRITE(IOUTREP,'(a)
')'<hr size=
"1" color=
"#000000" noshade>
'
191 WRITE(IOUTREP,'(a)
')'<p>
'
192 WRITE(IOUTREP,'(a)
')' '
193 WRITE(IOUTREP,'(a)
')'<li type=
"square">
'
194 WRITE(IOUTREP,'(a)
')'<font face=
"Arial" size=
"3"><b>finite element model information</b></font>
'
195 WRITE(IOUTREP,'(a)
')'<font face=
"Arial" size=
"2">
'
196 WRITE(IOUTREP,'(a)
')'<ul>
'
197 WRITE(IOUTREP,'(a)
')'<table cellspacing=
"0" cellpadding=
"0">
'
200 WRITE(IOUTREP,'(a)
')'<p>
'
201 WRITE(IOUTREP,'(a)
')'<li><b>model information</b>
'
202 WRITE(IOUTREP,'(a)
')'<table cellspacing=
"0" cellpadding=
"0">
'
203 WRITE(IOUTREP,'(a)
')'<tr>
'
204 WRITE(IOUTREP,'(a)
')'<td><font face=
"Arial" size=
"2">number of parts: </td>
'
205 WRITE(IOUTREP,'(a,i10,a)
')'<td><font face=
"Arial" size=
"2">
',NPART,'</td>
'
206 WRITE(IOUTREP,'(a)
')'</tr>
'
207 IF(NUMMAT-1 >= 1)THEN
208 WRITE(IOUTREP,'(a)
')'<tr>
'
209 WRITE(IOUTREP,'(a)
')'<td><font face=
"Arial" size=
"2">number of material laws: </td>
'
210 WRITE(IOUTREP,'(a,i10,a)
')'<td><font face=
"Arial" size=
"2">
',NUMMAT-1,'</td>
'
211 WRITE(IOUTREP,'(a)
')'</tr>
'
214 WRITE(IOUTREP,'(a)
')'<tr>
'
215 WRITE(IOUTREP,'(a)
')'<td><font face=
"Arial" size=
"2">number of
'
216 WRITE(IOUTREP,'(a,i10,a)
')'<td><font face=
"Arial" size=
"2">
',NUMGEO,'</td>
'
217 WRITE(IOUTREP,'(a)
')'</tr>
'
220 WRITE(IOUTREP,'(a)
')'<tr>
'
221 WRITE(IOUTREP,'(a)
')'<td><font face=
"Arial" size=
"2">number of functions: </td>
'
222 WRITE(IOUTREP,'(a,i10,a)
')'<td><font face=
"Arial" size=
"2">
',NFUNCT,'</td>
'
223 WRITE(IOUTREP,'(a)
')'</tr>
'
225 WRITE(IOUTREP,'(a)
')'</table>
'
226 WRITE(IOUTREP,'(a)
')' '
229 WRITE(IOUTREP,'(a)
')'<p>
'
230 WRITE(IOUTREP,'(a)
')'<li><b>mesh information</b>
'
231 WRITE(IOUTREP,'(a)
')'<table cellspacing=
"0" cellpadding="0
">'
232 WRITE(IOUTREP,'(A)')'<tr>'
233 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of nodes: </td>'
234 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NUMNODG,'</td>'
235 WRITE(IOUTREP,'(A)')'</tr>'
236 WRITE(IOUTREP,'(A)')'<tr>'
237 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of elements: </td>'
238 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NUMELQG+NUMELSG+NUMELCG+NUMELTG+NUMELPG+NUMELRG,'</td>'
239 WRITE(IOUTREP,'(A)')'</tr>'
240 WRITE(IOUTREP,'(A)')'<tr>'
241 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of parts: </td>'
242 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NPART,'</td>'
243 WRITE(IOUTREP,'(A)')'</tr>'
245 WRITE(IOUTREP,'(A)')'<tr>'
246 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of Rigid bodies: </td>'
247 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NRBODY,'</td>'
248 WRITE(IOUTREP,'(A)')'</tr>'
251 WRITE(IOUTREP,'(A)')'<tr>'
252 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of Rbe2s: </td>'
253 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NRBE2G,'</td>'
254 WRITE(IOUTREP,'(A)')'</tr>'
257 WRITE(IOUTREP,'(A)')'<tr>'
258 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of Rbe3s: </td>'
259 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NRBE3G,'</td>'
260 WRITE(IOUTREP,'(A)')'</tr>'
262 WRITE(IOUTREP,'(A)')'</table>'
263 WRITE(IOUTREP,'(A)')' '
264 WRITE(IOUTREP,'(A)')'<p>'
265 WRITE(IOUTREP,'(A)')'<li><b>Elements</b>'
266 WRITE(IOUTREP,'(A)')'<table cellspacing="0
" cellpadding="0
">'
268 WRITE(IOUTREP,'(A)')'<tr>'
269 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of 2D solid elements: </td>'
270 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NUMELQG,'</td>'
271 WRITE(IOUTREP,'(A)')'</tr>'
274 WRITE(IOUTREP,'(A)')'<tr>'
275 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of 3D solid elements (TETRA4 & BRICK): </td>'
276 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NUMELSG,'</td>'
277 WRITE(IOUTREP,'(A)')'</tr>'
279 IF(NUMELS10G /= 0)THEN
280 WRITE(IOUTREP,'(A)')'<tr>'
281 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of 3D solid elements (TETRA10): </td>'
282 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NUMELS10G,'</td>'
283 WRITE(IOUTREP,'(A)')'</tr>'
285 IF(NUMELS16G /= 0)THEN
286 WRITE(IOUTREP,'(A)')'<tr>'
287 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of 3D solid elements (SOLID16): </td>'
288 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NUMELS16G,'</td>'
289 WRITE(IOUTREP,'(A)')'</tr>'
291 IF(NUMELS20G /= 0)THEN
292 WRITE(IOUTREP,'(A)')'<tr>'
293 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of 3D solid elements (SOLID20): </td>'
294 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NUMELS20G,'</td>'
295 WRITE(IOUTREP,'(A)')'</tr>'
298 WRITE(IOUTREP,'(A)')'<tr>'
299 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of 3D shell elements (4-NODES): </td>'
300 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NUMELCG,'</td>'
301 WRITE(IOUTREP,'(A)')'</tr>'
303 IF(NUMELTGG /= 0)THEN
304 WRITE(IOUTREP,'(A)')'<tr>'
305 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of 3D shell elements (3-NODES): </td>'
306 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NUMELTGG,'</td>'
307 WRITE(IOUTREP,'(A)')'</tr>'
309 IF(NUMELTRG /= 0)THEN
310 WRITE(IOUTREP,'(A)')'<tr>'
311 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of 3D truss elements: </td>'
312 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NUMELTRG,'</td>'
313 WRITE(IOUTREP,'(A)')'</tr>'
316 WRITE(IOUTREP,'(A)')'<tr>'
317 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of 3D beam elements: </td>'
318 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NUMELPG,'</td>'
319 WRITE(IOUTREP,'(A)')'</tr>'
322 WRITE(IOUTREP,'(A)')'<tr>'
323 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of 3D spring elements: </td>'
324 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NUMELRG,'</td>'
325 WRITE(IOUTREP,'(A)')'</tr>'
328 WRITE(IOUTREP,'(A)')'<tr>'
329 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of multipurpose elements: </td>'
330 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NUMELXG,'</td>'
331 WRITE(IOUTREP,'(A)')'</tr>'
333 IF(NUMELIG3D /= 0)THEN
334 WRITE(IOUTREP,'(A)')'<tr>'
335 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of iso-geometrics elements: </td>'
336 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NUMELIG3D,'</td>'
337 WRITE(IOUTREP,'(A)')'</tr>'
340 WRITE(IOUTREP,'(A)')'<tr>'
341 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of smooth particles (SPH CELLS): </td>'
342 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NUMSPHG,'</td>'
343 WRITE(IOUTREP,'(A)')'</tr>'
345 WRITE(IOUTREP,'(A)')'</table>'
346 WRITE(IOUTREP,'(A)')' '
348 WRITE(IOUTREP,'(A)')'<p>'
349 WRITE(IOUTREP,'(A)')'<li><b>Loads and boundaries</b>'
350 WRITE(IOUTREP,'(A)')'<table cellspacing="0
" cellpadding="0
">'
352 WRITE(IOUTREP,'(A)')'<tr>'
353 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of Boundary conditions : </td>'
354 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NUMBCS,'</td>'
355 WRITE(IOUTREP,'(A)')'</tr>'
358 WRITE(IOUTREP,'(A)')'<tr>'
359 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of cloads : </td>'
360 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NCONLD,'</td>'
361 WRITE(IOUTREP,'(A)')'</tr>'
364 WRITE(IOUTREP,'(A)')'<tr>'
365 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of interfaces : </td>'
366 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NINTER,'</td>'
367 WRITE(IOUTREP,'(A)')'</tr>'
370 WRITE(IOUTREP,'(A)')'<tr>'
371 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of flexible bodies : </td>'
372 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NFXBODY,'</td>'
373 WRITE(IOUTREP,'(A)')'</tr>'
376 WRITE(IOUTREP,'(A)')'<tr>'
377 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of gravities : </td>'
378 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NGRAV,'</td>'
379 WRITE(IOUTREP,'(A)')'</tr>'
382 WRITE(IOUTREP,'(A)')'<tr>'
383 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of imposed disp/vel/acc : </td>'
384 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NFXVEL,'</td>'
385 WRITE(IOUTREP,'(A)')'</tr>'
388 WRITE(IOUTREP,'(A)')'<tr>'
389 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of Initial velocities : </td>'
390 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NINVEL,'</td>'
391 WRITE(IOUTREP,'(A)')'</tr>'
394 WRITE(IOUTREP,'(A)')'<tr>'
395 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of monitored volumes: </td>'
396 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NVOLU,'</td>'
397 WRITE(IOUTREP,'(A)')'</tr>'
400 WRITE(IOUTREP,'(A)')'<tr>'
401 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of Rigid walls: </td>'
402 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NRWALL,'</td>'
403 WRITE(IOUTREP,'(A)')'</tr>'
405 WRITE(IOUTREP,'(A)')'</table>'
406 WRITE(IOUTREP,'(A)')' '
407 WRITE(IOUTREP,'(A)')'<p>'
409 WRITE(IOUTREP,'(A)')'<p>'
410 IF(GOT_INSPIRE_ALM == 1)THEN
411 WRITE(IOUTREP,'(A)')'<li><b>Solver tools</b>'
413 WRITE(IOUTREP,'(A)')'<li><b>Radioss tools</b>'
415 WRITE(IOUTREP,'(A)')'<table cellspacing="0
" cellpadding="0
">'
416 IF(NCLUSTER /= 0)THEN
417 WRITE(IOUTREP,'(A)')'<tr>'
418 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of Clusters: </td>'
419 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NCLUSTER,'</td>'
420 WRITE(IOUTREP,'(A)')'</tr>'
423 WRITE(IOUTREP,'(A)')'<tr>'
424 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of drapes: </td>'
425 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NDRAPE,'</td>'
426 WRITE(IOUTREP,'(A)')'</tr>'
429 WRITE(IOUTREP,'(A)')'<tr>'
430 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of plies: </td>'
431 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NUMPLY,'</td>'
432 WRITE(IOUTREP,'(A)')'</tr>'
434 IF(NUMSTACK /= 0)THEN
435 WRITE(IOUTREP,'(A)')'<tr>'
436 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of stacks: </td>'
437 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NUMSTACK,'</td>'
438 WRITE(IOUTREP,'(A)')'</tr>'
441 WRITE(IOUTREP,'(A)')'<tr>'
442 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of node groups: </td>'
443 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NGRNOD,'</td>'
444 WRITE(IOUTREP,'(A)')'</tr>'
447 WRITE(IOUTREP,'(A)')'<tr>'
448 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of brick groups: </td>'
449 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NGRBRIC,'</td>'
450 WRITE(IOUTREP,'(A)')'</tr>'
453 WRITE(IOUTREP,'(A)')'<tr>'
454 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of quad groups: </td>'
455 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2
">',NGRQUAD,'</td>'
456 WRITE(IOUTREP,'(A)')'</tr>'
459 WRITE(IOUTREP,'(A)')'<tr>'
460 WRITE(IOUTREP,'(A)')'<td><font face="arial
" size="2
">Number of shell groups: </td>'
461 WRITE(IOUTREP,'(A,I10,A)')'<td><font face="arial
" size="2">
',NGRSHEL,'</td>
'
462 WRITE(IOUTREP,'(a)
')'</tr>
'
465 WRITE(IOUTREP,'(a)
')'<tr>
'
466 WRITE(IOUTREP,'(a)
')'<td><font face=
"Arial" size=
"2">number of 3 node shell groups: </td>
'
467 WRITE(IOUTREP,'(a,i10,a)
')'<td><font face=
"Arial" size=
"2">
',NGRSH3N,'</td>
'
468 WRITE(IOUTREP,'(a)
')'</tr>
'
471 WRITE(IOUTREP,'(a)
')'<tr>
'
472 WRITE(IOUTREP,'(a)
')'<td><font face=
"Arial" size=
"2">number of truss groups: </td
'
473 WRITE(IOUTREP,'(a,i10,a)
')'<td><font face=
"Arial" size=
"2">
',NGRTRUS,'</td>
'
474 WRITE(IOUTREP,'(a)
')'</tr>
'
477 WRITE(IOUTREP,'(a)
')'<tr>
'
478 WRITE(IOUTREP,'(a)
')'<td><font face=
"Arial" size=
"2">number of beam groups: </td>
'
479 WRITE(IOUTREP,'(a,i10,a)
')'<td><font face=
"Arial" size=
"2">
',NGRBEAM,'</td>
'
480 WRITE(IOUTREP,'(a)
')'</tr>
'
483 WRITE(IOUTREP,'(a)
')'<tr>
'
484 WRITE(IOUTREP,'(a)
')'<td><font face=
"Arial" size=
"2">number of spring groups: </td>
'
485 WRITE(IOUTREP,'(a,i10,a)
')'<td><font face=
"Arial" size=
"2">
',NGRSPRI,'</td>
'
486 WRITE(IOUTREP,'(a)')
'</tr>'
489 WRITE(ioutrep,
'(A)')
'<tr>'
490 WRITE(ioutrep,
'(A)')
'<td><font face="Arial" size="2">Number of part groups: </td>'
491 WRITE(ioutrep,
'(A,I10,A)')
'<td><font face="Arial" size="2">',ngrpart,
'</td>'
492 WRITE(ioutrep,
'(A)')
'</tr>'
495 WRITE(ioutrep,
'(A)')
'<tr>'
496 WRITE(ioutrep,
'(A)')
'<td><font face="Arial" size="2">Number of surface groups: </td>'
497 WRITE'(A,I10,A)''<td><font face="Arial" size="2">',nsurf,
'</td>'
498 WRITE(ioutrep,
'(A)')
'</tr>'
501 WRITE(ioutrep,
'(A)')
'<tr>'
502 WRITE(ioutrep,
'(A)')
'<td><font face="Arial" size="2">Number of line groups: </td>'
503 WRITE(ioutrep,
'(A,I10,A)')
'<td><font face="Arial" size="2">',nslin,
'</td>'
504 WRITE(ioutrep,
'(A)')
'</tr>'
506 IF(sensors%NSENSOR /= 0)
THEN
507 WRITE(ioutrep,
'(A)')
'<tr>'
508 WRITE(ioutrep,
'(A)')
'<td><font face="Arial" size="2">Number of sensors: </td>'
509 WRITE(ioutrep,
'(A,I10,A)')
'<td><font face="Arial" size="2">',sensors%NSENSOR,
'</td>'
510 WRITE(ioutrep,
'(A)')
'</tr>'
513 WRITE(ioutrep,
'(A)')
'<tr>'
514 WRITE(ioutrep,
'(A)')
'<td><font face="Arial" size="2">Number of skews: </td>'
515 WRITE(ioutrep,
'(A,I10,A)')
'<td><font face="Arial" size="2">',numskw,
'</td>'
516 WRITE(ioutrep,
'(A)')
'</tr>'
519 WRITE(ioutrep,
'(A)')
'<tr>'
520 WRITE(ioutrep,
'(A)')
'<td><font face="Arial" size="2">Number of frames: </td>'
521 WRITE(ioutrep,
'(A,I10,A)')
'<td><font face="Arial" size="2">',numfram,
'</td>'
522 WRITE(ioutrep,
'(A)')
'</tr>'
525 WRITE(ioutrep,
'(A)')
'<tr>'
526 WRITE(ioutrep,
'(A)')
'<td><font face="Arial" size="2">Number of submodels: </td>'
527 WRITE(ioutrep,
'(A,I10,A)')
'<td><font face="Arial" size="2">',nsubmod,
'</td>'
530 WRITE(ioutrep,
'(A)')
'</table>'
531 WRITE(ioutrep,
'(A)')
' '
534 WRITE(ioutrep,
'(A)')
'<p>'
535 WRITE(ioutrep,
'(A)')
'<li><b>Data history</b>'
536 WRITE(ioutrep,
'(A)')
'<table cellspacing="0" cellpadding="0">'
538 WRITE(ioutrep,
'(A)')
'<tr>'
539 WRITE(ioutrep,
'(A)')
'<td><font face="Arial" size="2">Number of th groups: </td>'
540 WRITE(ioutrep,
'(A,I10,A)')
'<td><font face="Arial" size="2">',nthgrp,
'</td>'
541 WRITE(ioutrep,
'(A)')
'</tr>'
544 WRITE(ioutrep,
'(A)')
'<tr>'
545 WRITE(ioutrep,
'(A)')
'<td><font face="Arial" size="2">Number of sections: </td>'
546 WRITE(ioutrep,
'(A,I10,A)')
'<td><font face="Arial" size="2">',nsect,
'</td>'
547 WRITE(ioutrep,
'(A)')
'</tr>'
550 WRITE(ioutrep,
'(A)')
'<tr>'
551 WRITE(ioutrep,
'(A)')
'<td><font face="Arial" size="2">Number of accelerometers: </td>'
552 WRITE(ioutrep,
'(A,I10,A)')
'<td><font face="Arial" size="2">',naccelm,
'</td>'
553 WRITE(ioutrep,
'(A)')
'</tr>'
556 WRITE(ioutrep,
'(A)')
'<tr>'
557 WRITE(ioutrep,
'(A)')
'<td><font face="Arial" size="2">Number of gauges: </td>'
558 WRITE(ioutrep,
'(A,I10,A)')
'<td><font face="Arial" size="2">''</td>'
559 WRITE(ioutrep,
'(A)')
'</tr>'
561 WRITE(ioutrep,
'(A)')
'</table>'
562 WRITE(ioutrep,
'(A)')
' '
601 WRITE(ioutrep,
'(A)')
'<p>'
604 outname = rootnam(1:rootlen)//
'_0000.out'
608 OPEN (unit=out_tmp,status=
'OLD',form=
'FORMATTED',file=outname,err=100)
613 DO WHILE (is_message == 0)
614 READ(out_tmp,
'(A)',
END=100)cart
615 IF (cart(1:29) ==
' TERMINATION WITH WARNING') is_warning = 1
616 IF (cart(1:29) ==
'| ERROR(S) SUMMARY') is_message = 1
619 IF(is_warning == 1)
THEN
620 WRITE(ioutrep,
'(A)')
' '
621 WRITE(ioutrep,
'(A)')
'<li type="square">'
622 IF(got_inspire_alm == 1)
THEN
623 WRITE(ioutrep,
'(A)')
'<font face="Arial" size="3"><b>Solver : Warning(s) :</b></font>'
625 WRITE(ioutrep,
'(A)')
'<font face="Arial" size="3"><b>Starter : Warning(s) :</b></font>'
627 WRITE(ioutrep,
'(A)')
'</li>'
628 WRITE(ioutrep,
'(A)')
'<p>'
629 WRITE(ioutrep,
'(A)')
'<table cellspacing="0" cellpadding="0">'
632 READ(out_tmp,
'(A)',
END=100)cart
634 WRITE(ioutrep,
'(A)')
'<tr>'
635 IF (cart /=
' ' . and.
636 . cart(61:118) /=
'---------------------------------------------------------')
637 .
WRITE(ioutrep,
'(A)')
'<td><font face="Arial" size="1"> ',cart(63:119),
' </td>'
638 WRITE(ioutrep,
'(A)')
'</tr>'
639 READ(out_tmp,
'(A)',
END=100)cart
640 IF (cart(1:29) ==
'-----------------------------')iend = 1
643 IF ( is_file_found == 0 )
THEN
644 WRITE(ioutrep,
'(A)')
' '
645 WRITE(ioutrep,
'(A)')
'<li type="square">'
646 IF(got_inspire_alm == 1)
THEN
647 WRITE(ioutrep,
'(A)')
'<font face="Arial" size="3"><b>Solver : Warning(s) :</b></font>'
649 WRITE(ioutrep,
'(A)')
'<font face="Arial" size="3"><b>Starter : Warning(s) :</b></font>'
651 WRITE(ioutrep,
'(A)')
'</li>'
652 WRITE(ioutrep,
'(A)')
'<p>'
653 WRITE(ioutrep,
'(A)')
'<tr>'
654 WRITE(ioutrep,
'(A)')
'<td><font face="Arial" size="2">No 0.out file found !!! </td>'
655 WRITE(ioutrep,
'(A)')
'</tr>'
656 WRITE(ioutrep,
'(A)')
'<tr>'
657 WRITE(ioutrep,
'(A)')
'<td><font face="Arial" size="2">Not able to write information !!! </td>'
658 WRITE(ioutrep,
'(A)')
'</tr>'
664 WRITE(ioutrep,
'(A)')
'</table>'
675 WRITE(ioutrep,
'(A)')
'<li type="square">'
676 IF(got_inspire_alm == 1)
THEN
677 WRITE(ioutrep,
'(A)')
'<font face="Arial" size="3"><b>Solver : Last cycle information :</b></font>'
679 WRITE(ioutrep,
'(A)')
'<font face="Arial" size="3"><b>Engine : Last cycle information :</b></font>'
681 WRITE(ioutrep,
'(A)')
'</li>'
682 WRITE(ioutrep,
'(A)')
'<p>'
684 IF(n == 2 .OR. n == 4 .OR. n == 5 .OR. n == 20)
THEN
685 WRITE(ioutrep,
'(A)')
'<tr>'
686 WRITE(ioutrep,
'(A)')
'<td><font face="Arial" size="2">ERROR TERMINATION </td>'
687 WRITE(ioutrep,
'(A)')
'</tr>'
689 WRITE(ioutrep,
'(A)')
'<tr>'
690 WRITE(ioutrep,
'(A)')
'<td><font face="Arial" size="2">USER BREAK </td>'
691 WRITE(ioutrep,
'(A)')
'</tr>'
693 WRITE(ioutrep,
'(A)')
'<tr>'
694 WRITE(ioutrep,
'(A)')
'<td><font face="Arial" size="2">NORMAL TERMINATION </td>'
695 WRITE(ioutrep,
'(A)')
'</tr>'
698 WRITE(ioutrep,
'(A)')
'<p>'
699 WRITE(ioutrep,
'(A)')
'<table cellspacing="0" cellpadding="0">'
700 WRITE(ioutrep,
'(A)')
'<tr>'
701 WRITE(ioutrep,
'(A)')
'<td><font face="Arial" size="2">'
702 WRITE(ioutrep,
'(A)')
'CYCLE '
703 WRITE(ioutrep,
'(A)')
'</td><td><font face="Arial" size="2">'
704 WRITE(ioutrep,
'(A)')
'FINAL TIME '
705 WRITE(ioutrep,
'(A)')
'</td><td><font face="Arial" size="2">'
706 WRITE(ioutrep,
'(A)')
'TIME-STEP '
707 WRITE(ioutrep,
'(A)')
'</td><td align="right"><font face="Arial" size="2">'
708 WRITE(ioutrep,
'(A)')
'ELEMENT '
709 WRITE(ioutrep,
'(A)')
'</td><td align="right"><font face="Arial" size="2">'
710 WRITE(ioutrep,
'(A)')
'%ERROR '
711 WRITE(ioutrep,
'(A)')
'</td><td align="right"><font face="Arial" size="2">'
712 WRITE(ioutrep,
'(A)')
'I-ENERGY '
713 WRITE(ioutrep,
'(A)')
'</td><td align="right"><font face="Arial" size="2">'
714 WRITE(ioutrep,
'(A)')
'K-ENERGY T '
715 WRITE(ioutrep,
'(A)')
'</td><td align="right"><font face="Arial" size="2">'
716 WRITE(ioutrep,
'(A)')
'K-ENERGY R '
717 WRITE(ioutrep,
'(A)')
'</td><td align="right"><font face="Arial" size="2">'
718 WRITE(ioutrep,
'(A)')
'EXT-WORK '
719 WRITE(ioutrep,
'(A)')
'</td><td align="right"><font face="Arial" size="2">'
720 WRITE(ioutrep,
'(A)')
'MAS.ERR'
721 WRITE(ioutrep,
'(A)')
'</td></tr>'
722 WRITE(ioutrep,
'(A)')
'<tr><td colspan=10>'
723 WRITE(ioutrep,
'(A)')
'<hr size="1" color="#000000" noshade>'
724 WRITE(ioutrep,
'(A)')
'</td></tr>'
725 WRITE(ioutrep,
'(A)')
'<tr align="center">'
727 WRITE(ioutrep,
'(A,I10,A)')
'<td><font face="Arial" size="2">',ncycle,
'</td>'
728 WRITE(ioutrep,
'(A,G11.4,A)')
'<td><font face="Arial" size="2">',tt,
'</td>'
729 WRITE(ioutrep,
'(A,G11.4,A)')
'<td><font face="Arial" size="2">',dt2,
'</td>'
730 WRITE(ioutrep,
'(2A,I10,A)')
'<td><font face="Arial" size="2">',eltyp(itypts),nelts,
'</td>'
731 WRITE(ioutrep,
'(A,G11.4,A)')
'<td><font face="Arial" size="2">',err1,
'</td>'
732 WRITE(ioutrep,
'(A,G11.4,A)')
'<td><font face="Arial" size="2">',enint,
'</td>'
733 WRITE(ioutrep,
'(A,G11.4,A)')
'<td><font face="Arial" size="2">',encin,
'</td>'
734 WRITE(ioutrep,
'(A,G11.4,A)')
'<td><font face="Arial" size="2">',enrot,
'</td>'
735 WRITE(ioutrep,
'(A,G11.4,A)')
'<td><font face="Arial" size="2">',wfext,
'</td>'
736 WRITE(ioutrep,
'(A,G11.4,A)')
'<td align="right"><font face="Arial" size="2">',emass,
'</td>'
737 WRITE(ioutrep,
'(A)')
'</tr>'
738 WRITE(ioutrep,
'(A)')
'</table>'
739 WRITE(ioutrep,
'(A)')
'</li>'
740 WRITE(ioutrep,
'(A)')
'</ul>'
741 WRITE(ioutrep,
'(A)')
'<p>'
743 IF (ih3dreader /= 0 .OR. imvw /= 0)
THEN
745 WRITE(ioutrep,
'(A)')
' '
746 WRITE(ioutrep,
'(A)')
'<font face="Arial" size="4"><b><i>Results summary</i></b></font>'
747 WRITE(ioutrep,
'(A)')
'<hr size="1" color="#000000" noshade>'
748 WRITE(ioutrep,
'(A)')
'<p>'
752 WRITE(ioutrep,
'(A)')
'<a href="',mvwnam(1:rootlen+4),
'">Open ',mvwnam(1:rootlen+4),
' with Hyperview</a>'
753 WRITE(ioutrep,
'(A)')
'<p>'
756 IF (ih3dreader /= 0)
THEN
757 WRITE(ioutrep,
'(A)')
'<OBJECT ID="HVPControl" WIDTH=800 HEIGHT=600'
758 WRITE(ioutrep,
'(A)')
'classid="clsid:D28D4D39-57F5-4DFB-8832-C8CB1B1DC410">'
759 WRITE(ioutrep,
'(3A)')
'<PARAM name="src" value="',rootnam(1:rootlen),
'.h3d" />'
760 IF (ih3dreader == 1)
WRITE(ioutrep,
'(A)')
'<PARAM name="inplace" value="1" />'
761 IF (ih3dreader == 2)
WRITE(ioutrep,
'(A)')
'<PARAM name="inplace" value="0" />'
762 WRITE(ioutrep,
'(A)')
'<PARAM name="launch_size" value="800x600" />'
769 WRITE(ioutrep,
'(A)')
'<EMBED type="application/x-h3d"'
770 WRITE(ioutrep,
'(A)')
'pluginspage="http://www.altair.com"'
771 WRITE(ioutrep,
'(A)')
'width=800 height=600'
772 WRITE(ioutrep,
'(A)')
'src="',rootnam(1:rootlen),
'h3d"'
773 IF (ih3dreader == 1)
WRITE(ioutrep,
'(A)')
'inplace=1'
774 IF (ih3dreader == 2)
WRITE(ioutrep,
'(A)')
'inplace=0'
775 WRITE(ioutrep,
'(A)')
'launch_size="800x600"'
776 WRITE(ioutrep,
'(A)')
'>'
777 WRITE(ioutrep,
'(A)')
'</OBJECT>'
778 WRITE(ioutrep,
'(A)')
'<p>'
787 IF (ih3dreader /= 0 .OR. imvw /= 0)
THEN
788 WRITE(ioutrep,
'(A)')
'</font>'
791 WRITE(ioutrep,
'(A)')
'<p>'
792 WRITE(ioutrep,
'(A)')
' '
793 WRITE(ioutrep,
'(A)')
'<br>'
794 WRITE(ioutrep,
'(A)')
'<hr size="1" color="#000000" width="50%" noshade>'
795 WRITE(ioutrep,
'(A)')
'<center>'
796 WRITE(ioutrep,
'(A)')
'<font face="Arial" size="1">'
797 WRITE(ioutrep,
'(A)')
'<b>© 1996-2022 Altair Engineering, Inc.</b>'
798 WRITE(ioutrep,
'(A)')
'</font> '
799 WRITE(ioutrep,
'(A)')
'</center> '
800 WRITE(ioutrep,
'(A)')
'</body>'
801 WRITE(ioutrep,
'(A)')
'</html>'
subroutine report(ih3dreader, n, imvw, wfext, wfext_md, output)