41 character*132 textpart(16)
43 integer nmethod,iperturb,isolver,istep,istat,n,key,i,idrct,
44 & ithermal,iline,ipol,inl,ipoinp(2,*),inp(3,*),ipoinpc(0:*),
47 real*8 tinc,tper,tmin,tmax,alpha,ctrl(*),tincf,ttime,physcon(*)
58 if(iperturb.eq.0)
then 60 elseif((iperturb.eq.1).and.(istep.gt.1))
then 61 write(*,*)
'*ERROR reading *CFD: perturbation analysis is' 62 write(*,*)
' not provided in a *HEAT TRANSFER step.' 67 write(*,*)
'*ERROR reading *CFD: *HEAT TRANSFER can only ' 68 write(*,*)
' be used within a STEP' 77 elseif(isolver.eq.2)
then 78 solver(1:16)=
'ITERATIVESCALING' 79 elseif(isolver.eq.3)
then 80 solver(1:17)=
'ITERATIVECHOLESKY' 81 elseif(isolver.eq.4)
then 83 elseif(isolver.eq.5)
then 85 elseif(isolver.eq.7)
then 90 if(textpart(i)(1:7).eq.
'SOLVER=')
then 91 read(textpart(i)(8:27),
'(a20)') solver
92 elseif(textpart(i)(1:12).eq.
'COMPRESSIBLE')
then 94 elseif(textpart(i)(1:11).eq.
'STEADYSTATE')
then 96 elseif(textpart(i)(1:9).eq.
'TIMERESET')
then 98 elseif(textpart(i)(1:17).eq.
'TOTALTIMEATSTART=')
then 99 read(textpart(i)(18:37),
'(f20.0)',iostat=istat) ttime
100 elseif(textpart(i)(1:16).eq.
'TURBULENCEMODEL=')
then 104 if(textpart(i)(17:25).eq.
'NONE')
then 106 elseif(textpart(i)(17:25).eq.
'K-EPSILON')
then 108 elseif(textpart(i)(17:23).eq.
'K-OMEGA')
then 110 elseif(textpart(i)(17:19).eq.
'SST')
then 115 &
'*WARNING reading *CFD: parameter not recognized:' 117 & textpart(i)(1:index(textpart(i),
' ')-1)
122 if(nmethod.eq.1) ctrl(27)=1.d30
124 if((ithermal.eq.0).and.(iexpl.eq.1))
then 125 write(*,*)
'*ERROR reading *CFD: please define initial ' 126 write(*,*)
' conditions for the temperature' 128 elseif(ithermal.gt.0)
then 132 if(solver(1:7).eq.
'SPOOLES')
then 134 elseif(solver(1:16).eq.
'ITERATIVESCALING')
then 136 elseif(solver(1:17).eq.
'ITERATIVECHOLESKY')
then 138 elseif(solver(1:3).eq.
'SGI')
then 140 elseif(solver(1:5).eq.
'TAUCS')
then 142 elseif(solver(1:7).eq.
'PARDISO')
then 145 write(*,*)
'*WARNING reading *CFD: unknown solver;' 146 write(*,*)
' the default solver is used' 149 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
150 & ipoinp,inp,ipoinpc)
151 if((istat.lt.0).or.(key.eq.1))
then 152 if(nmethod.eq.4)
then 156 write(*,*)
'*WARNING reading *CFD: a nonlinear geometric 157 & analysis is requested' 158 write(*,*)
' but no time increment nor step is speci 160 write(*,*)
' the defaults (1,1) are used' 166 elseif(nmethod.eq.1)
then 178 if(timereset)ttime=ttime-tper
182 read(textpart(1)(1:20),
'(f20.0)',iostat=istat) tinc
183 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
185 read(textpart(2)(1:20),
'(f20.0)',iostat=istat) tper
186 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
188 read(textpart(3)(1:20),
'(f20.0)',iostat=istat) tmin
189 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
191 read(textpart(4)(1:20),
'(f20.0)',iostat=istat) tmax
192 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
194 read(textpart(5)(1:20),
'(f20.0)',iostat=istat) tincf
195 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
198 if(tinc.le.0.d0)
then 199 write(*,*)
'*ERROR reading *CFD: initial increment size is 202 if(tper.le.0.d0)
then 203 write(*,*)
'*ERROR reading *CFD: step size is negative' 205 if(tinc.gt.tper)
then 206 write(*,*)
'*ERROR reading *CFD: initial increment size exc 211 if(dabs(tmin).lt.1.d-6*tper)
then 212 tmin=
min(tinc,1.d-6*tper)
214 if(dabs(tmax).lt.1.d-10)
then 217 if(tinc.gt.dabs(tmax))
then 218 write(*,*)
'*WARNING reading *CFD:' 219 write(*,*)
' the initial increment ',tinc
220 write(*,*)
' exceeds the maximum increment ',
222 write(*,*)
' the initial increment is reduced' 223 write(*,*)
' to the maximum value' 228 if(timereset)ttime=ttime-tper
230 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
231 & 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