42 character*132 textpart(16)
44 integer nmethod,iperturb,isolver,istep,istat,n,key,i,idrct,
45 & ithermal,iline,ipol,inl,ipoinp(2,*),inp(3,*),ipoinpc(0:*),
48 real*8 tinc,tper,tmin,tmax,alpha,ctrl(*),tincf,ttime
59 if(iperturb.eq.0)
then 61 elseif((iperturb.eq.1).and.(istep.gt.1))
then 62 write(*,*)
'*ERROR reading *COUPLED TEMPERATURE-DISPLACEMENT:' 63 write(*,*)
' perturbation analysis is not provided in a' 64 write(*,*)
' *COUPLED TEMPERATURE-DISPLACEMENT step.' 69 write(*,*)
'*ERROR reading *COUPLED TEMPERATURE-DISPLACEMENT:' 70 write(*,*)
' *COUPLED TEMPERATURE-DISPLACEMENT can only ' 71 write(*,*)
' be used within a STEP' 80 elseif(isolver.eq.2)
then 81 solver(1:16)=
'ITERATIVESCALING' 82 elseif(isolver.eq.3)
then 83 solver(1:17)=
'ITERATIVECHOLESKY' 84 elseif(isolver.eq.4)
then 86 elseif(isolver.eq.5)
then 88 elseif(isolver.eq.7)
then 93 if(textpart(i)(1:6).eq.
'ALPHA=')
then 94 read(textpart(i)(7:26),
'(f20.0)',iostat=istat) alpha
95 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
96 &
"*COUPLED TEMPERATURE-DISPLACEMENT%")
97 if(alpha.lt.-1.d0/3.d0)
then 98 write(*,*)
'*WARNING in dynamics: alpha is smaller' 99 write(*,*)
' than -1/3 and is reset to -1/3' 101 elseif(alpha.gt.0.d0)
then 102 write(*,*)
'*WARNING in dynamics: alpha is greater' 103 write(*,*)
' than 0 and is reset to 0' 106 elseif(textpart(i)(1:7).eq.
'SOLVER=')
then 107 read(textpart(i)(8:27),
'(a20)') solver
108 elseif(textpart(i)(1:12).eq.
'COMPRESSIBLE')
then 110 elseif((textpart(i)(1:6).eq.
'DIRECT').and.
111 & (textpart(i)(1:9).ne.
'DIRECT=NO'))
then 113 elseif(textpart(i)(1:11).eq.
'STEADYSTATE')
then 115 elseif(textpart(i)(1:7).eq.
'DELTMX=')
then 116 read(textpart(i)(8:27),
'(f20.0)',iostat=istat) ctrl(27)
117 elseif(textpart(i)(1:9).eq.
'TIMERESET')
then 119 elseif(textpart(i)(1:17).eq.
'TOTALTIMEATSTART=')
then 120 read(textpart(i)(18:37),
'(f20.0)',iostat=istat) ttime
123 &
'*WARNING reading *COUPLED TEMPERATURE-DISPLACEMENT:' 124 write(*,*)
' parameter not recognized:' 126 & textpart(i)(1:index(textpart(i),
' ')-1)
128 &
"*COUPLED TEMPERATURE-DISPLACEMENT%")
131 if(nmethod.eq.1) ctrl(27)=1.d30
133 if((ithermal.eq.0).and.(nmethod.ne.1).and.
134 & (nmethod.ne.2).and.(iperturb.ne.0))
then 135 write(*,*)
'*ERROR reading *COUPLED TEMPERATURE-DISPLACEMENT:' 136 write(*,*)
' please define initial ' 137 write(*,*)
' conditions for the temperature' 143 if(solver(1:7).eq.
'SPOOLES')
then 145 elseif(solver(1:16).eq.
'ITERATIVESCALING')
then 147 elseif(solver(1:17).eq.
'ITERATIVECHOLESKY')
then 149 elseif(solver(1:3).eq.
'SGI')
then 151 elseif(solver(1:5).eq.
'TAUCS')
then 153 elseif(solver(1:7).eq.
'PARDISO')
then 156 write(*,*)
'*WARNING reading *COUPLED TEMPERATURE-DISPLACEMENT:' 157 write(*,*)
' unknown solver;' 158 write(*,*)
' the default solver is used' 161 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
162 & ipoinp,inp,ipoinpc)
163 if((istat.lt.0).or.(key.eq.1))
then 164 if(iperturb.ge.2)
then 166 &
'*WARNING reading *COUPLED TEMPERATURE-DISPLACEMENT:' 168 &
' a nonlinear geometricanalysis is requested' 169 write(*,*)
' but no time increment nor step is speci 171 write(*,*)
' the defaults (1,1) are used' 179 if(timereset)ttime=ttime-tper
183 read(textpart(1)(1:20),
'(f20.0)',iostat=istat) tinc
184 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
185 &
"*COUPLED TEMPERATURE-DISPLACEMENT%")
186 read(textpart(2)(1:20),
'(f20.0)',iostat=istat) tper
187 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
188 &
"*COUPLED TEMPERATURE-DISPLACEMENT%")
189 read(textpart(3)(1:20),
'(f20.0)',iostat=istat) tmin
190 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
191 &
"*COUPLED TEMPERATURE-DISPLACEMENT%")
192 read(textpart(4)(1:20),
'(f20.0)',iostat=istat) tmax
193 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
194 &
"*COUPLED TEMPERATURE-DISPLACEMENT%")
195 read(textpart(5)(1:20),
'(f20.0)',iostat=istat) tincf
196 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
197 &
"*COUPLED TEMPERATURE-DISPLACEMENT%")
199 if(tinc.le.0.d0)
then 200 write(*,*)
'*ERROR reading *COUPLED TEMPERATURE-DISPLACEMENT:' 201 write(*,*)
' initial increment size is negative' 203 if(tper.le.0.d0)
then 204 write(*,*)
'*ERROR reading *COUPLED TEMPERATURE-DISPLACEMENT:' 205 write(*,*)
' step size is negative' 207 if(tinc.gt.tper)
then 208 write(*,*)
'*ERROR reading *COUPLED TEMPERATURE-DISPLACEMENT:' 209 write(*,*)
' initial increment size exceeds step size' 213 if(dabs(tmin).lt.1.d-6*tper)
then 214 tmin=
min(tinc,1.d-6*tper)
216 if(dabs(tmax).lt.1.d-10)
then 219 if(tinc.gt.dabs(tmax))
then 221 &
'*WARNING reading *COUPLED TEMPERATURE-DISPLACEMENT:' 222 write(*,*)
' the initial increment ',tinc
223 write(*,*)
' exceeds the maximum increment ',
225 write(*,*)
' the initial increment is reduced' 226 write(*,*)
' to the maximum value' 231 if(timereset)ttime=ttime-tper
233 if(nmethod.eq.4) nener=1
235 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
236 & ipoinp,inp,ipoinpc)
#define min(a, b)
Definition: cascade.c:31
subroutine getnewline(inpc, textpart, istat, n, key, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: getnewline.f:21