38 character*80 matname(*),amat
39 character*8 lakon(*),lakonl
41 integer i,i1,nelem,ne0,nelcon(2,*),nrhcon(*),nalcon(2,*),imat,
42 & ntmat_,ithermal,mattyp,ihyper,istiff,kode,mi(*),kk,
43 & nplicon(0:ntmat_,*),nplkcon(0:ntmat_,*),ncmat_,iorth,
44 & ielmat(mi(3),*),nope,iorien,ipkon(*),null,
45 & konl(26),nopered,npmat_,nmat
47 real*8 elas(21),wavespeed(*),rhcon(0:1,ntmat_,*) ,
48 & alcon(0:6,ntmat_,*),coords(3),orab(7,*),rho,alzero(*),
49 & t0l,t1l,elconloc(21),eth(6),plicon(0:2*npmat_,ntmat_,*),
50 & plkcon(0:2*npmat_,ntmat_,*),plconloc(802),dtime,
51 & xstiff(27,mi(1),*),elcon(0:ncmat_,ntmat_,*),
52 & t0(*),t1(*),shp(4,26),vold(0:mi(2),*),tt,
55 write(*,*)
'++CMT: Calculating Material Wave Speeds...' 69 if(ipkon(nelem).lt.0) cycle
74 wavspd=wavespeed(imat)
76 if(lakonl(1:2).ne.
'ES')
then 82 if(nelcon(1,imat).lt.0)
then 94 if(ithermal.eq.1)
then 95 if(lakonl(4:5).eq.
'8 ')
then 97 t0l=t0l+t0(konl(i1))/8.d0
98 t1l=t1l+t1(konl(i1))/8.d0
100 elseif(lakonl(4:6).eq.
'20 ')
then 102 call lintemp(t0,t1,konl,nopered,kk,t0l,t1l)
103 elseif(lakonl(4:6).eq.
'10T')
then 108 t0l=t0l+shp(4,i1)*t0(konl(i1))
109 t1l=t1l+shp(4,i1)*t1(konl(i1))
112 elseif(ithermal.ge.2)
then 113 if(lakonl(4:5).eq.
'8 ')
then 115 t0l=t0l+t0(konl(i1))/8.d0
116 t1l=t1l+vold(0,konl(i1))/8.d0
118 elseif(lakonl(4:6).eq.
'20 ')
then 120 call lintemp_th(t0,vold,konl,nopered,kk,t0l,t1l,mi)
121 elseif(lakonl(4:6).eq.
'10T')
then 126 t0l=t0l+shp(4,i1)*t0(konl(i1))
127 t1l=t1l+shp(4,i1)*vold(0,konl(i1))
139 & imat,amat,iorien,coords,orab,ntmat_,elas,rho,
140 & nelem,ithermal,alzero,mattyp,t0l,t1l,
141 & ihyper,istiff,elconloc,eth,kode,plicon,
142 & nplicon,plkcon,nplkcon,npmat_,
143 & plconloc,mi(1),dtime,kk,
150 al=un*um/(1.d0-2.d0*un)
153 & dsqrt((e*(1-un))/((1+un)*(1-2*un)*rho)))
154 elseif(mattyp.eq.2)
then 158 if(((elas(1).eq.elas(3)).and.(elas(1).eq.elas(6)).and.
159 & (elas(3).eq.elas(6))).and.
160 & ((elas(2).eq.elas(4)).and.(elas(2).eq.elas(5)).and.
161 & (elas(4).eq.elas(5))).and.
162 & ((elas(7).eq.elas(8)).and.(elas(7).eq.elas(9)).and.
163 & (elas(8).eq.elas(9))))
then 164 wavspd=
max(wavspd,dsqrt((1/3.)*(elas(1)+2.0*elas(2)+
166 wavspd=
max(wavspd,dsqrt((1/2.)*
167 & (elas(1)+elas(2)+2.0*elas(7))/rho))
168 wavspd=
max(wavspd,dsqrt(elas(1)/rho))
173 elseif(mattyp.eq.3)
then 177 wavespeed(imat)=wavspd
182 write(*,*)
'Wave Speed for mat. ',i,wavespeed(i)
subroutine linscal10(scal, konl, scall, idim, shp)
Definition: linscal10.f:20
#define max(a, b)
Definition: cascade.c:32
subroutine anisomaxwavspd(elas, rho, iorth, wavspd)
Definition: anisomaxwavspd.f:20
subroutine lintemp_th(t0, vold, konl, nope, jj, t0l, t1l, mi)
Definition: lintemp_th.f:20
subroutine materialdata_me(elcon, nelcon, rhcon, nrhcon, alcon, nalcon, imat, amat, iorien, pgauss, orab, ntmat_, elas, rho, iel, ithermal, alzero, mattyp, t0l, t1l, ihyper, istiff, elconloc, eth, kode, plicon, nplicon, plkcon, nplkcon, npmat_, plconloc, mi, dtime, iint, xstiff, ncmat_)
Definition: materialdata_me.f:23
subroutine lintemp(t0, t1, konl, nope, jj, t0l, t1l)
Definition: lintemp.f:20