33 character*81 set(*),noset
34 character*132 textpart(16)
36 integer nmethod,istep,istat,n,key,iexpl,iline,ipol,inl,nset,
37 & ipoinp(2,*),inp(3,*),iperturb(2),isolver,i,ndata,nfour,mcs,
38 & ipoinpc(0:*),nforc,nload,nbody,iprestr,ithermal,j,nk,ipos,
41 real*8 fmin,fmax,bias,tmin,tmax,xmodal(*),cs(17,*),t0(*),t1(*)
47 if((mcs.ne.0).and.(cs(2,1).ge.0.d0))
then 53 write(*,*)
'*ERROR in steadystatedynamics: *STEADY STATE DYNAMI 55 write(*,*)
' can only be used within a STEP' 64 elseif(isolver.eq.2)
then 65 solver(1:16)=
'ITERATIVESCALING' 66 elseif(isolver.eq.3)
then 67 solver(1:17)=
'ITERATIVECHOLESKY' 68 elseif(isolver.eq.4)
then 70 elseif(isolver.eq.5)
then 72 elseif(isolver.eq.7)
then 77 if(textpart(i)(1:7).eq.
'SOLVER=')
then 78 read(textpart(i)(8:27),
'(a20)') solver
79 elseif(textpart(i)(1:9).eq.
'HARMONIC=')
then 80 read(textpart(i)(10:12),
'(a3)') harmonic
83 &
'*WARNING in steadystatedynamics: parameter not recognized:' 85 & textpart(i)(1:index(textpart(i),
' ')-1)
87 &
"*STEADY STATE DYNAMICS%")
91 if(solver(1:7).eq.
'SPOOLES')
then 93 elseif(solver(1:16).eq.
'ITERATIVESCALING')
then 94 write(*,*)
'*WARNING in steadystatedynamics: the iterative scal 96 write(*,*)
' procedure is not available for modal' 97 write(*,*)
' dynamic calculations; the default solver' 99 elseif(solver(1:17).eq.
'ITERATIVECHOLESKY')
then 100 write(*,*)
'*WARNING in steadystatedynamics: the iterative scal 102 write(*,*)
' procedure is not available for modal' 103 write(*,*)
' dynamic calculations; the default solver' 104 write(*,*)
' is used' 105 elseif(solver(1:3).eq.
'SGI')
then 107 elseif(solver(1:5).eq.
'TAUCS')
then 109 elseif(solver(1:7).eq.
'PARDISO')
then 112 write(*,*)
'*WARNING in steadystatedynamics: unknown solver;' 113 write(*,*)
' the default solver is used' 116 if((isolver.eq.2).or.(isolver.eq.3))
then 117 write(*,*)
'*ERROR in steadystatedynamics: the default solver ' 119 write(*,*)
' cannot be used for modal dynamic' 120 write(*,*)
' calculations ' 124 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
125 & ipoinp,inp,ipoinpc)
126 if((istat.lt.0).or.(key.eq.1))
then 127 write(*,*)
'*ERROR in steadystatedynamics: definition not compl 131 &
"*STEADY STATE DYNAMICS%")
134 read(textpart(1)(1:20),
'(f20.0)',iostat=istat) fmin
135 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
136 &
"*STEADY STATE DYNAMICS%")
138 read(textpart(2)(1:20),
'(f20.0)',iostat=istat) fmax
139 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
140 &
"*STEADY STATE DYNAMICS%")
142 read(textpart(3)(1:20),
'(i10)',iostat=istat) ndata
143 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
144 &
"*STEADY STATE DYNAMICS%")
145 if(ndata.lt.2) ndata=20
147 read(textpart(4)(1:20),
'(f20.0)',iostat=istat) bias
148 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
149 &
"*STEADY STATE DYNAMICS%")
150 if(bias.lt.1.) bias=3.
153 if(harmonic.eq.
'YES')
then 156 read(textpart(5)(1:10),
'(i10)',iostat=istat) nfour
157 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
158 &
"*STEADY STATE DYNAMICS%")
159 if(nfour.le.0) nfour=20
161 read(textpart(6)(1:20),
'(f20.0)',iostat=istat) tmin
162 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
163 &
"*STEADY STATE DYNAMICS%")
168 read(textpart(7)(1:20),
'(f20.0)',iostat=istat) tmax
169 if(istat.gt.0)
call inputerror(inpc,ipoinpc,iline,
170 &
"*STEADY STATE DYNAMICS%")
185 if((ithermal.eq.1).or.(ithermal.eq.3))
then 199 if((cyclicsymmetry.eq.1).and.(mcs.ne.0).and.(cs(2,1)<0.d0))
202 call getnewline(inpc,textpart,istat,n,key,iline,ipol,inl,
203 & ipoinp,inp,ipoinpc)
subroutine getnewline(inpc, textpart, istat, n, key, iline, ipol, inl, ipoinp, inp, ipoinpc)
Definition: getnewline.f:21