81#include "implicit_f.inc"
103 . tmp,facl,lu,fact,trest
106 IF (it==0.AND.imconv>0)
RETURN
108 IF (dt_imp>dt_min)
THEN
112 dt_imp=
max(dt_imp,dt_min)
114 IF (idtc==2.AND.alen0/=zero)alen=alen*scal_dtn
120 ELSEIF (imconv==1)
THEN
123 ELSEIF (idtc==1)
THEN
124 IF (it<=nl_dtp.AND.dt_imp<dt_max)
THEN
129 dt_imp=
min(dt_imp,dt_max)
132 ELSEIF (idtc==2)
THEN
136 IF (alen0>zero) alen=alen0
138 IF (alen<=em20) alen=lu
139 IF (alen0>zero) alen=alen0
141 IF (it>nl_dtp.AND.scal_dtn/=one)
THEN
142 IF (alen0==zero)
THEN
143 tmp=(nl_dtn-nl_dtp)/(one-scal_dtn)
144 facl=(tmp-it+nl_dtp)/tmp
149 fac=alen/
max(em20,lu)
151 ELSEIF (it<nl_dtp.AND.nl_dtp/=1)
THEN
152 IF (alen0==zero)
THEN
153 facl=one+(nl_dtp-it)/(nl_dtp-one)
155 alen=
min(alen,lu*two)
157 fac=alen/
max(em20,lu)
159 ELSEIF (it==nl_dtp.AND.alen0==zero)
THEN
165 fac=
min(scal_dtp,fac)
167 dt_imp=
min(dt_imp,dt_max)
169 ELSEIF (fac<one)
THEN
170 fac=
max(scal_dtn,fac)
172 dt_imp=
max(dt_imp,dt_min)
175 ELSEIF (idtc==3)
THEN
180 fac = alen0/sqrt(ul2)
189 fact = one+dla_riks/dt2
194 dt_imp =
max(dt_min,tmp*em3)
203 facl=sqrt(one*nl_dtp/it)
206 facl=
min(scal_dtp,facl)
208 dt_imp=
min(dt_imp,dt_max)
209 facl=
min(dt_imp/tmp,facl)
210 dt_imp=
min(dt_imp,trest)
212 ELSEIF (facl<one)
THEN
213 facl=
max(scal_dtn,facl)
215 dt_imp=
max(dt_imp,dt_min)
216 dt_imp=
min(dt_imp,trest)
236 IF(nprint<0)
WRITE(istdo,*)
239 WRITE(iout,1005) dla_riks
240 IF (nprint<0)
WRITE(istdo,1005) dla_riks
243 IF (ifix0>0.AND.imconv==1)
THEN
245 IF(nprint<0)
WRITE(istdo,1004)
249 IF(nprint<0)
WRITE(istdo,1003)
253 IF(nprint<0)
WRITE(istdo,1001) fac
254 ELSEIF (fac<one)
THEN
256 IF(nprint<0)
WRITE(istdo,1002) fac
261 IF (idtc==3.AND.ilast>0) dla_riks=fac
262 IF (imconv<0) fac=one
263 cumul_alen = cumul_alen + alen
265 1001
FORMAT(5x,
'--NEXT TIMESTEP IS INCREASED BY--',e11.4/)
266 1002
FORMAT(5x,
'--NEXT TIMESTEP IS DECREASED BY--',e11.4/)
267 1003
FORMAT(5x,
'--NEXT TIMESTEP IS DETERMINED BY INPUT FIX POINT--')
268 1004
FORMAT(5x,
'--RESET TIMESTEP DUE TO INPUT FIX POINT--')
269 1005
FORMAT(5x,
'--TIMESTEP IS ADJUSTED BY RIKS METHOD TO:',e11.4/)
270 1006
FORMAT(5x,'--terminal loading time by riks method is:
',E11.4/)