29 character*8 lakon(*),lakonl
31 integer j,ne,nope,kon(*),ipkon(*),indexe,nelem,
32 & ncmat_,ntmat_,mi(*),ielmat(mi(3),*),imat,mortar,
33 & indexn,nactdof(0:mi(2),*),ne0,nopem
35 real*8 elcon(0:ncmat_,ntmat_,*),safefac,xk,adb(*),alpha,bet,gam,
36 & critom,damping,springms,springmm,springfac,dtcont,xmacont,
37 & springarea(2,*),areaslav
46 bet=(1.-alpha)*(1.-alpha)/4.
52 critom=dsqrt(damping*damping*(1+2*alpha*(1-gam))
53 & *(1+2*alpha*(1-gam))
54 & + 2*(gam+2*alpha*(gam-bet)))
55 critom=0.98*(-damping*(1+2*alpha*(1-gam))+critom)
56 & /(gam+2*alpha*(gam-bet))
78 nope=ichar(lakonl(8:8))-47
85 if(nactdof(j,kon(indexe+indexn)).gt.0)
then 87 & adb(nactdof(j,kon(indexe+indexn))))
91 if(indexn.eq.nope)
then 92 springms=springms+xmacont
96 springmm=springmm/(nope-1.0d0)
98 springmm=springmm+xmacont
102 areaslav=springarea(1,kon(indexe+nope+1))
107 if((springmm.le.0.d0).and.(springms.le.0.d0))
then 109 elseif(springmm.le.0.d0)
then 111 elseif(springms.le.0.d0)
then 115 elseif(mortar.eq.1)
then 119 nopem=ichar(lakonl(8:8))-48
122 do indexn=1,kon(indexe)
126 if(nactdof(j,kon(indexe+indexn)).gt.0)
then 128 & adb(nactdof(j,kon(indexe+indexn))))
131 if(indexn.gt.nopem)
then 132 springms=springms+xmacont
134 springmm=springmm+xmacont
140 springms=springms/(kon(indexe)-nopem)
141 springmm=springmm/nopem
143 areaslav=springarea(1,kon(1+indexe+kon(indexe)))
148 if((springmm.le.0.d0).and.(springms.le.0.d0))
then 150 elseif(springmm.le.0.d0)
then 152 elseif(springms.le.0.d0)
then 159 if(int(elcon(3,1,imat)).eq.2)
then 161 springmm=springmm/2.0d0
162 springms=springms/2.0d0
166 & springfac*critom*dsqrt((springmm*springms)/
167 & ((springmm+springms)*xk)))
170 write(*,*)
'*ERROR in calcstabletimeinccont:' 171 write(*,*)
' in explicit dynamic calculations' 172 write(*,*)
' only linear pressure-overclosure' 173 write(*,*)
' is allowed' 179 dtcont=dtcont* safefac
#define max(a, b)
Definition: cascade.c:32
#define min(a, b)
Definition: cascade.c:31