39       character*132 textpart(16)
    41       integer nmethod,iperturb,isolver,istep,istat,n,key,i,idrct,
    42      &  ithermal,iline,ipol,inl,ipoinp(2,*),inp(3,*),ipoinpc(0:*),
    45       real*8 tinc,tper,tmin,tmax,alpha,ctrl(*),ttime
    54       if(iperturb.eq.0) 
then    56       elseif((iperturb.eq.1).and.(istep.gt.1)) 
then    58      &       
'*ERROR reading *UNCOUPLED TEMPERATURE-DISPLACEMENT:'    59          write(*,*) 
'       perturbation analysis is not provided in a '    60          write(*,*) 
'       *UNCOUPLED TEMPERATURE-DISPLACEMENT step.'    66      &       
'*ERROR reading *UNCOUPLED TEMPERATURE-DISPLACEMENT:'    67          write(*,*) 
'       *UNCOUPLED TEMPERATURE-DISPLACMENT '    68          write(*,*) 
'       can only 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:6).eq.
'ALPHA=') 
then    91             read(textpart(i)(7:26),
'(f20.0)',iostat=istat) alpha
    92             if(istat.gt.0) 
call inputerror(inpc,ipoinpc,iline,
    93      &
"*UNCOUPLED TEMPERATURE-DISPLACEMENT%")
    94             if(alpha.lt.-1.d0/3.d0) 
then    95                write(*,*) 
'*WARNING in dynamics: alpha is smaller'    96                write(*,*) 
'  than -1/3 and is reset to -1/3'    98             elseif(alpha.gt.0.d0) 
then    99                write(*,*) 
'*WARNING in dynamics: alpha is greater'   100                write(*,*) 
'  than 0 and is reset to 0'   103          elseif(textpart(i)(1:7).eq.
'SOLVER=') 
then   104             read(textpart(i)(8:27),
'(a20)') solver
   105          elseif((textpart(i)(1:6).eq.
'DIRECT').and.
   106      &          (textpart(i)(1:9).ne.
'DIRECT=NO')) 
then   108          elseif(textpart(i)(1:11).eq.
'STEADYSTATE') 
then   110          elseif(textpart(i)(1:7).eq.
'DELTMX=') 
then   111             read(textpart(i)(8:27),
'(f20.0)',iostat=istat) ctrl(27)
   112          elseif(textpart(i)(1:9).eq.
'TIMERESET') 
then   114          elseif(textpart(i)(1:17).eq.
'TOTALTIMEATSTART=') 
then   115             read(textpart(i)(18:37),
'(f20.0)',iostat=istat) ttime
   118      &        
'*WARNING in uncouptempdisps: parameter not recognized:'   120      &                 textpart(i)(1:index(textpart(i),
' ')-1)
   122      &
"*UNCOUPLED TEMPERATURE-DISPLACEMENT%")
   125       if(nmethod.eq.1) ctrl(27)=1.d30
   127       if((ithermal.eq.0).and.(nmethod.ne.1).and.
   128      &   (nmethod.ne.2).and.(iperturb.ne.0)) 
then   130      &        
'*ERROR reading *UNCOUPLED TEMPERATURE-DISPLACEMENT:'   131          write(*,*) 
'       please define initial '   132          write(*,*) 
'       conditions for the temperature'   138       if(solver(1:7).eq.
'SPOOLES') 
then   140       elseif(solver(1:16).eq.
'ITERATIVESCALING') 
then   142       elseif(solver(1:17).eq.
'ITERATIVECHOLESKY') 
then   144       elseif(solver(1:3).eq.
'SGI') 
then   146       elseif(solver(1:5).eq.
'TAUCS') 
then   148       elseif(solver(1:7).eq.
'PARDISO') 
then   152      &       
'*WARNING reading *UNCOUPLED TEMPERATURE-DISPLACEMENT:'   153          write(*,*) 
'         unknown solver;'   154          write(*,*) 
'         the default solver is used'   157       call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
   158      &     ipoinp,inp,ipoinpc)
   159       if((istat.lt.0).or.(key.eq.1)) 
then   160          if(iperturb.ge.2) 
then   162      &       
'*WARNING reading *UNCOUPLED TEMPERATURE-DISPLACEMENT:'   163             write(*,*) 
'         a nonlinear analysis is requested'   164             write(*,*) 
'         but no time increment nor step is speci   166             write(*,*) 
'         the defaults (1,1) are used'   172          if(timereset)ttime=ttime-tper
   173          if(nmethod.eq.4) nener=1
   177       read(textpart(1)(1:20),
'(f20.0)',iostat=istat) tinc
   178       if(istat.gt.0) 
call inputerror(inpc,ipoinpc,iline,
   179      &
"*UNCOUPLED TEMPERATURE-DISPLACEMENT%")
   180       read(textpart(2)(1:20),
'(f20.0)',iostat=istat) tper
   181       if(istat.gt.0) 
call inputerror(inpc,ipoinpc,iline,
   182      &
"*UNCOUPLED TEMPERATURE-DISPLACEMENT%")
   183       read(textpart(3)(1:20),
'(f20.0)',iostat=istat) tmin
   184       if(istat.gt.0) 
call inputerror(inpc,ipoinpc,iline,
   185      &
"*UNCOUPLED TEMPERATURE-DISPLACEMENT%")
   186       read(textpart(4)(1:20),
'(f20.0)',iostat=istat) tmax
   187       if(istat.gt.0) 
call inputerror(inpc,ipoinpc,iline,
   188      &
"*UNCOUPLED TEMPERATURE-DISPLACEMENT%")
   190       if(tinc.le.0.d0) 
then   192      &       
'*ERROR reading *UNCOUPLED TEMPERATURE-DISPLACEMENT:'   193          write(*,*) 
'       initial increment size is    196       if(tper.le.0.d0) 
then   198      &      
'*ERROR reading *UNCOUPLED TEMPERATURE-DISPLACEMENT:'   199          write(*,*) 
'       step size is negative'   201       if(tinc.gt.tper) 
then   203      &     
'*ERROR reading *UNCOUPLED TEMPERATURE-DISPLACEMENT:'   204          write(*,*) 
'       initial increment size exc   209          if(dabs(tmin).lt.1.d-6*tper) 
then   210             tmin=
min(tinc,1.d-6*tper)
   212          if(dabs(tmax).lt.1.d-10) 
then   215          if(tinc.gt.dabs(tmax)) 
then   217      &       
'*WARNING reading *UNCOUPLED TEMPERATURE-DISPLACEMENT'   218             write(*,*) 
'         the initial increment ',tinc
   219             write(*,*) 
'         exceeds the maximum increment ',
   221             write(*,*) 
'         the initial increment is reduced'   222             write(*,*) 
'         to the maximum value'   227       if(timereset)ttime=ttime-tper
   229       if(nmethod.eq.4) nener=1
   231       call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
   232      &     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