43#include
"implicit_f.inc"
49 . ms(numnod),in(numnod),stifn(numnod),stifr(numnod),totmas
59 INTEGER I,N,COMPT,K,NVAL
61 INTEGER,
DIMENSION(:),
ALLOCATABLE :: PERM
62 my_real,
DIMENSION(:),
ALLOCATABLE,
TARGET ::
64 my_real,
DIMENSION(:),
POINTER ::
66 my_real dtsca,target_dt_tab(20),per_adm_tab(20),target_dt_tab2
73 ALLOCATE(dt(2*numnod))
74 CALL my_alloc(perm,numnod)
78 tmp => dt(numnod+1:numnod*2)
81 IF((ms(i)/=zero).AND.(stifn(i)>em20))
THEN
97 IF (dt(i) < ep30)
THEN
99 sumk = sumk + stifn(i)
103 CALL myqsort(numnod,dt,perm,ierror)
104 tmp(1:numnod) = perm(1:numnod)
110 per_adm_tab(i) = 0.005*i
116 CALL find_dt_target(ms,stifn,target_dt_tab,per_adm_tab,dt,tmp,dtsca
121 CALL find_dt_target(ms,stifn,target_dt_tab2,per_adm_tab,dt,tmp,dtsca,totmas,nval,numnod)
125 IF (dt(1) < ep20)
THEN
131 CALL plot_curve(target_dt_tab, per_adm_tab, 20, input_size_x=60, input_size_y=24,
132 . input_txt_x=
"TARGET TIME STEP",input_txt_y=
"DM/M - at first cycle - scaling factor = 0.9",input_symbol=
"*")
134 WRITE(iout,3000)
' DM/M at first cycle ','
Target time step - scaling factor = 0.9
',
135 . 'Target time step - scaling factor = 0.67
'
136 WRITE(IOUT,3000) ' -------------------------------------
','---------------------------------------
',
137 . '---------------------------------------
'
141 WRITE(IOUT,3001) PER_ADM_TAB(K),TARGET_DT_TAB(K),TARGET_DT_TAB2(K)
153 2001 FORMAT(//,' initial added mass estimation
for /dt/noda/cst
')
154 2002 FORMAT( ' ----------------------------------------------
',//)
156 3000 FORMAT(2X,A,2X,'|',2x,a,2x,
'|',2x,a)
157 3001
FORMAT(17x,1pg9.3,17x,
'|',17x,1pg9.3,17x,
'|',17x,1pg9.3)
159 4001
FORMAT(//,
' WARNING : These added mass estimations are valid at first cycle only.')
160 4002
FORMAT(
' Because of element deformation or contacts the added mass can increase during the run'
subroutine find_dt_target(ms, stifn, target_dt_tab, per_adm_tab, dt, tmp, dtsca, totmas, nval, nnod)