51 SUBROUTINE rdresa(OUTPUT,ITSTV1 , LHEADER, LVARINT, LVARREA, PRADIOS,
52 . PRESFIL,MULTI_FVM,H3D_DATA,
53 . PINCH_DATA,DYNAIN_DATA,INTERFACES,SENSORS,LOADS,
54 . MAT_ELEM, NAMES_AND_TITLES,SKEWS ,GLOB_THERM,PBLAST,
70 USE skew_mod !< skew type
71 use glob_therm_mod !< global parameters and flags
for thermal analysis
72 use pblast_mod !< pblast parameters
73 use rbe3_mod !< rbe3 type
74 use rwall_mod !< rwall type
79#include "implicit_f.inc"
93 type(output_),
intent(inout) :: output
94 INTEGER ITSTV1, LHEADER, LVARINT, LVARREA, PRADIOS,
96 TYPE(MULTI_FVM_STRUCT) :: MULTI_FVM
98 TYPE(
pinch) :: PINCH_DATA
99 TYPE (DYNAIN_DATABASE),
INTENT(INOUT) :: DYNAIN_DATA
100 TYPE (INTERFACES_) ,
INTENT(INOUT) :: INTERFACES
101 TYPE (SENSORS_) ,
INTENT(INOUT) :: SENSORS
102 TYPE (LOADS_) ,
INTENT(INOUT) :: LOADS
103 TYPE (MAT_ELEM_) ,
INTENT(INOUT) :: MAT_ELEM
104 TYPE (NAMES_AND_TITLES_),
INTENT(INOUT) :: NAMES_AND_TITLES
105 TYPE (SKEW_) ,
INTENT(INOUT) :: SKEWS
106 type (glob_therm_) ,
intent(inout) :: glob_therm
107 TYPE (PBLAST_) ,
INTENT(INOUT) :: PBLAST
108 TYPE (RBE3_) ,
INTENT(INOUT) :: RBE3
109 TYPE (RWALL_) ,
INTENT(INOUT) :: RWALL
114 INTEGER LMXHEAD,LMXVINT
115 PARAMETER (LMXHEAD=100)
116 parameter (lmxvint=4000)
117 INTEGER (LMXHEAD),TABVINT(LMXVINT)
120 INTEGER,
DIMENSION(LTITLE) :: ITITLE
132 names_and_titles%TITLE(i:i) = char(ititle(i))
142 IF(pradios/=iradios)
RETURN
145 IF(presfil/=iresfil)
RETURN
148 itestv = iabs(itestv)
150 IF (ir4r8==2) itestv = -itestv
151 IF(itestv/=itstv1.AND.debug(2)<2)
RETURN
178 IF(lvarint>lmxvint)
THEN
179 CALL ancmsg(msgid=31,anmode=aninfo
187 CALL rdcomi(output,tabvint,multi_fvm,h3d_data,dynain_data,
188 . interfaces%PARAMETERS,sensors,loads ,mat_elem,skews,
189 . glob_therm,pblast,rbe3 ,rwall)
192 IF(anim_ply > 0 .AND.iplyxfem == 0)
THEN
193 WRITE(istdo,*)
'**WARNING** /ANIM/SHELL/PLY '
195 .
'IS AVAILABLE JUST WITH NEW DELAMINATION SHELL FORMULATION'
196 WRITE(iout,*)
'**WARNING** /ANIM/SHELL/PLY '
198 .
'IS AVAILABLE JUST WITH NEW DELAMINATION SHELL FORMULATION'
220 SUBROUTINE iniresa(OUTPUT, H3D_DATA,PINCH_DATA,GLOB_THERM)
234#include "implicit_f.inc"
238#include "mvsiz_p.inc"
242#include "com01_c.inc"
243#include "com04_c.inc"
244#include "com_xfem1.inc"
245#include "param_c.inc"
246#include "units_c.inc"
247#include "scr03_c.inc"
248#include "scr06_c.inc"
249#include "scr07_c.inc"
250#include "scr14_c.inc"
251#include "scr16_c.inc"
252#include "parit_c.inc"
254#include "scrnoi_c.inc"
255#include "scrfs_c.inc"
256#include "scrcut_c.inc"
257#include "scr_fac_c.inc"
260#include "tabsiz_c.inc"
261#include "scr17_c.inc"
266 TYPE(output_) :: OUTPUT
267 TYPE(H3D_DATABASE) :: H3D_DATA
268 TYPE(PINCH) :: PINCH_DATA
269 type (glob_therm_) ,
intent(inout) :: GLOB_THERM
273 INTEGER I,NVAR,M16STAK,NPE,NIPMAX,NPSAV_OLD
277 pinch_data%SAPINCH = 0
279 IF(iparit==-1)iparit=ipari0
282 IF(iparit /= 1) iparit = ipari0
285 IF(ipari0==0.AND.iparit==1)
THEN
287 WRITE(istdo,*)
' **WARNING PARALLEL ARITHMETIC DISABLED'
288 WRITE(iout,*)
' **WARNING PREVIOUS RUN WITHOUT PARITH/ON'
289 WRITE(iout,*)
' **PARALLEL ARITHMETIC IS NO MORE ACTIVABLE'
294 nisky0 = 8*numels + 4*numelq + 4*numelc + 2*numelt +
295 . 2*numelp + 3*numelr + 3*numeltg +
296 . 6*numels10 + 12*numels20 + 8*numels16 + 3*numeltg6
299 nisky0 = nisky0 + 4*nskymv0
301 nisky0 = nisky0 + 4*nconld
303 nisky0 = nisky0 + 4*glob_therm%NUMCONV + 4*glob_therm%NUMRADIA + 4*glob_therm%NFXFLUX
304 nisky0 = nisky0 + slloadp
306 IF(iparit>=1) iparit=1
307 IF( lwamp /= 0 .AND. lwanmp/=0)
THEN
308 lwamp =
max(lwamp,2*mvsiz*100)
313 sicodt=numnod+2*numnod*
max(iale,ieuler,ialelag)
323 IF(npsav==0)npsav_old = 23
326 sa = 3*numnod+9*numnod*nthread
327 sar = 3*numnod+9*numnod*nthread
328 sstifn = numnod+3*numnod*nthread
329 sviscn = numnod+3*numnod*nthread
330 sstifr = numnod*iroddl+3*numnod*nthread*iroddl
332 spartsav = npsav*(npart+nthpart)*nthread
338 lskyi_sms =
max(nint(5*
max(4*numnod,imaximp)*probint)+4*(numsph+nskyi18)+lcni2,isumnx)
358 ELSEIF(iparit/=0)
THEN
364 IF(sol2sph_flag/=0)
THEN
369 spartsav = npsav*(npart+nthpart)*nthread
374 lskypxfem = lcnepxfem
376 lskycrkxfem = lcnecrkxfem
378 IF(iale+ieuler+glob_therm%ITHERM+ialelag/=0)
THEN
384 IF(sol2sph_flag/=0)
THEN
392 lskyi =
max(nint(5*
max(4*numnod,imaximp)*probint)
393 + +4*(numsph+nskyi18),isumnx)
394 sfskyi = nfskyi*lskyi
397 lskyi_sms = lskyi+lcni2
401 sadsky = sadsky + numnod
403 sprocne_pxfe = lcnepxfem
404 sprocne_crkxfe = lcnecrkxfem
409 IF(ivector==1) saddcni2 = saddcni2 + numnod
437 sa = 3*numnod*nthread
438 sar = 3*numnod*nthread
439 sstifn = numnod*nthread
442 pinch_data%SAPINCH = nthread*numnod
444 pinch_data%SAPINCH = 0
447 IF(sol2sph_flag/=0)
THEN
448 sdmsph = numnod*nthread
452 sviscn = numnod*nthread
453 sstifr = numnod*iroddl*nthread
454 spartsav = npsav*(npart+nthpart)*nthread
461 lskyi_sms =
max(nint(5*
max(4*numnod,imaximp)*probint)
462 + +4*(numsph+nskyi18)+lcni2,isumnx)
483 IF (ns10e >0 .AND. ipari0 /= 0)
THEN
484 saddcncnd = numnod + 1
493 IF(
ale%GLOBAL%INCOMP==0)
THEN
494 sval2=
max(iale,glob_therm%ITHERM,ieuler,ialelag)*(numels+numelq+numeltg+nsvois+nqvois+ntgvois)*
max(1,nmult)
496 sphi =
max(iale,glob_therm%ITHERM,ieuler,ialelag)*( numels + numelq + numeltg + nsvois + nqvois + ntgvois + nsegflu )
508 sfr_rl = (nspmd+2)*nrlink
533 output%DATA%S_FOPT = (nsect + nrbody + nrwall)
534 allocate(output%DATA%FOPT(6,nsect + nrbody + nrwall+1))
536 output%DATA%S_VECT_CONT =(
min(1,anim_v(4)+outp_v(4)+h3d_data%N_VECT_CONT))
537 output%DATA%S_VECT_FINT = (
min(1,anim_v(5)+outp_v(5)+h3d_data%N_VECT_FINT))
538 output%DATA%S_VECT_FEXT = (
min(1,anim_v(6)+outp_v(6)+h3d_data%N_VECT_FEXT))
539 output%DATA%S_VECT_PCONT = (
min(1,anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT))
540 output%DATA%S_VECT_PCONT_2 =(
min(1,anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT))
542 output%DATA%S_VECT_CONT2 = (
min(1,anim_v(13)+h3d_data%N_VECT_CONT2))
543 output%DATA%S_VECT_PCONT2 =(
min(1,anim_v(27)+h3d_data%N_VECT_PCONT2))
544 output%DATA%S_VECT_PCONT2_2 =(
min(1,anim_v(27)+h3d_data%N_VECT_PCONT2))
554 output%DATA%S_SCAL_DT = (
min(1,anim_n(1)+outp_n(1)+h3d_data%N_SCAL_DT))
555 output%DATA%S_SCAL_DMAS = (
min(1,anim_n(2)+outp_n(2)+h3d_data%N_SCAL_DMAS))
556 output%DATA%S_SCAL_DINER = (
min(1,anim_n(12)+outp_n(3)+h3d_data%N_SCAL_DINER))
557 output%DATA%S_SCAL_DAMA2 = 2*(
min(1,anim_n(15)*anim_n(16)+h3d_data%N_SCAL_DAMA2))
558 output%DATA%S_SCAL_SPRING =
max(1,numelr)*(anim_fe(11)+anim_fe(12)+anim_fe(13))
559 sanin =
max(1,numelr*(anim_fe(11)+anim_fe(12)+anim_fe(13)))
560 CALl allocate_output_data(output,numnod)
561 stani = 6*(numelc+numeltg)*iepsdot + 15*(numelt+numelp+numelr)*(
max(anim_ft(1),h3d_data%UND_FORC))
565 ssecfcum = 7*numnod*nsect*isecut
570 output%data%fani_cell%is_vort_x_requested = .false.
571 output%data%fani_cell%is_vort_y_requested = .false.
572 output%data%fani_cell%is_vort_z_requested = .false.
573 IF(anim_se(10) == 1 .OR. h3d_data%SOL_SCAL_VORTX == 1)
574 . output%data%fani_cell%is_vort_x_requested=.true.
575 IF(anim_se(4960) == 1 .OR. h3d_data%SOL_SCAL_VORTY == 1)
576 . output%data%fani_cell%is_vort_y_requested=.true.
577 IF(anim_se(4961) == 1 .OR. h3d_data%SOL_SCAL_VORTZ == 1)
578 . output%data%fani_cell%is_vort_z_requested=.true.
582 output%data%fani_cell%is_f18_fvm_requested = .false.
583 IF(h3d_data%N_VECT_CONT == 1)
584 . output%data%fani_cell%is_f18_fvm_requested = .true.
590 m16stak = (11*nipmax+15*npe+3*nipmax*npe)*mvsiz
595 m16stak =
max(m16stak,(10*nipmax+15*npe+3*nipmax*npe)*mvsiz)
601 m16stak =
max(m16stak,12*nipmax*mvsiz)
603 sw16 = m16stak * nthread
620 IF((noisev+noisea+noisep)==0) noisev = 1
621 nvar=3*noisev+3*noisea+noisep
631 mfif = (6*nvar*nnoise+1)
632 sinoise = 2*nnoise+10
633 sfnoise = 6*nvar*nnoise+1
subroutine rdresa(output, itstv1, lheader, lvarint, lvarrea, pradios, presfil, multi_fvm, h3d_data, pinch_data, dynain_data, interfaces, sensors, loads, mat_elem, names_and_titles, skews, glob_therm, pblast, rbe3, rwall)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)