41 USE matparam_def_mod,
ONLY : matparam_struct_
42 use element_mod ,
only : nixs,nixq,nixtg
46#include "implicit_f.inc"
57 TYPE(t_ebcs_tab),
INTENT(INOUT) :: EBCS_TAB
58 INTEGER,
INTENT(IN),
TARGET :: IXS(NIXS,NUMELS),IXQ(NIXQ,NUMELQ), IXTG(NIXTG,NUMELTG)
59 my_real,
INTENT(IN) :: x(3,numnod)
60 my_real,
INTENT(IN) :: pm(npropm,nummat)
61 INTEGER,
INTENT(IN) :: IPM(NPROPMI,NUMMAT)
62 TYPE(matparam_struct_) ,
DIMENSION(NUMMAT) ,
INTENT(IN) ::
66 INTEGER :: IMAT,MLN,IADBUF,IMAT_SUB,NIX,NELS,NBPHASE
67 INTEGER :: TAGMAT(NUMMAT+1),II, NBMAT, KK
68 my_real :: tcp_ref,xmin,ymin,zmin,xmax,
ymax,zmax,ssp0,ssp0max,lc,lc0max
69 INTEGER,
DIMENSION(:, :),
POINTER :: IX
82 ix => ixs(1:nix, 1:nels)
86 ix => ixq(1:nix, 1:nels)
87 ELSEIF(n2d /=0 .AND. numeltg >0)
THEN
90 ix => ixtg(1:nix, 1:nels)
100 IF(tagmat(imat)==1)cycle
106 nbphase=
max(nbphase,4)
107 ELSEIF(mln == 151)
THEN
108 nbmat = mat_param(imat)%MULTIMAT%NB
109 nbphase =
max(nbphase,nbmat)
110 imat_sub = mat_param(imat)%MULTIMAT%MID(1)
111 ssp0 = ipm(27,imat_sub)
113 imat_sub = mat_param(imat)%MULTIMAT%MID(kk)
114 ssp0=
max(ssp0,pm(27,imat_sub))
132 xmin =
min(xmin,x(1,ii))
133 ymin =
min(ymin,x(2,ii))
134 zmin =
min(zmin,x(3,ii))
135 xmax =
max(xmax,x(1,ii))
137 zmax =
max(zmax,x(3,ii))
141 lc =
max(lc,zmax-zmin)
147 IF(ssp0max == zero)
THEN
150 tcp_ref = lc0max/two/ssp0max/log(two)
152 DO kk=1,ebcs_tab%NEBCS
153 select type (twf => ebcs_tab%tab(kk)%poly)
171 WRITE (iout,1001)lc0max,ssp0max,tcp_ref
176 .
' NON REFLECTING FRONTIERS (EBCS) '/
177 .
' ------------------------------- '/
178 & 5x,
'INITIALIZATION OF GLOBAL PARAMETERS ',/
179 & 5x,
'CHARACTERISTIC LENGTH. . . . . . . . . .=',e12.4/
180 & 5x,
'REFERENCE SOUND SPEED. . . . . . . . . =',e12.4/
181 & 5x,
'CHARACTERISTIC TIME (TCP). . . . . . . .=',e12.4//)
subroutine iniebcs_nrf_tcar(ebcs_tab, x, ixs, ixq, ixtg, pm, ipm, mat_param)
subroutine ymax(idn, fac, npc, pld, stiffmin, stiffmax, stiffini, stiffavg)