9 include
'fstr_ctrl_util_f.inc'
14 subroutine pc_strupr( s )
17 integer :: i, n, a, da
20 da = iachar(
'a') - iachar(
'A')
23 if( a > iachar(
'Z'))
then
28 end subroutine pc_strupr
35 & dtime, etime, itime, eps, restart_nout, &
39 & nout, nout_monit, node_monit_1, elem_monit_1, intg_monit_1 )
41 integer(kind=kint) :: ctrl
42 real(kind=kreal) :: dtime
43 real(kind=kreal) ::
etime
44 integer(kind=kint) :: itime
45 real(kind=kreal) ::
eps
46 integer(kind=kint) :: restart_nout
47 integer(kind=kint) :: idx_elpl
48 real(kind=kreal) :: sig_y0, h_dash
49 integer(kind=kint) :: nout, nout_monit, node_monit_1, elem_monit_1, intg_monit_1
50 integer(kind=kint) :: iout_list(6)
58 & iout_list(1), iout_list(2), iout_list(3), iout_list(4), iout_list(5), iout_list(6)) /= 0 )
return
61 & nout, nout_monit, node_monit_1, elem_monit_1, intg_monit_1 ) /= 0 )
return
72 integer(kind=kint) :: ctrl
73 character(len=HECMW_NAME_LEN) :: amp
74 character(len=HECMW_NAME_LEN),
target :: node_id(:)
75 character(len=HECMW_NAME_LEN),
pointer :: node_id_p
76 integer(kind=kint) :: node_id_len
77 integer(kind=kint),
pointer :: dof_ids (:)
78 integer(kind=kint),
pointer :: dof_ide (:)
79 real(kind=kreal),
pointer :: value(:)
82 character(len=HECMW_NAME_LEN) :: data_fmt,ss
83 write(ss,*) node_id_len
84 write(data_fmt,
'(a,a,a)')
'S',trim(adjustl(ss)),
'IIr '
88 node_id_p => node_id(1)
101 integer(kind=kint) :: ctrl
102 character(len=HECMW_NAME_LEN) :: amp
103 character(len=HECMW_NAME_LEN),
target :: node_id(:)
104 character(len=HECMW_NAME_LEN),
pointer :: node_id_p
105 integer(kind=kint) :: node_id_len
106 integer(kind=kint),
pointer :: dof_id(:)
107 real(kind=kreal),
pointer :: value(:)
110 character(len=HECMW_NAME_LEN) :: data_fmt,ss
111 write(ss,*) node_id_len
112 write( data_fmt,
'(a,a,a)')
'S', trim(adjustl(ss)),
'IR '
116 node_id_p => node_id(1)
126 function fstr_ctrl_get_dload( ctrl, amp, follow, element_id, element_id_len, load_type, params )
128 integer(kind=kint) :: ctrl
129 character(len=HECMW_NAME_LEN) :: amp
130 integer(kind=kint) :: follow
131 character(len=HECMW_NAME_LEN),
target :: element_id(:)
132 integer(kind=kint) :: element_id_len
133 integer(kind=kint),
pointer :: load_type(:)
134 real(kind=kreal),
pointer :: params(:,:)
137 character(len=HECMW_NAME_LEN),
pointer :: type_name_list(:)
138 character(len=HECMW_NAME_LEN),
pointer :: type_name_list_p
139 character(len=HECMW_NAME_LEN),
pointer :: element_id_p
141 integer(kind=kint) :: i, n
142 integer(kind=kint) :: rcode
143 character(len=HECMW_NAME_LEN) :: data_fmt,s1,s2
144 integer(kind=kint) :: lid
152 write(s1,*) element_id_len
153 write(s2,*) hecmw_name_len
154 write( data_fmt,
'(a,a,a,a,a)')
'S', trim(adjustl(s1)),
'S', trim(adjustl(s2)),
'Rrrrrrr '
157 allocate( type_name_list(n) )
161 element_id_p => element_id(1)
162 type_name_list_p => type_name_list(1)
165 params(0,:), params(1,:), params(2,:), params(3,:), params(4,:),params(5,:), &
168 if( rcode /= 0 )
then
169 deallocate( type_name_list )
174 call pc_strupr( type_name_list(i) )
176 if( type_name_list(i)(1:2) ==
'BX' ) then; lid = 1
177 else if( type_name_list(i)(1:2) ==
'BY' ) then; lid = 2
178 else if( type_name_list(i)(1:2) ==
'BZ' ) then; lid = 3
179 else if( type_name_list(i)(1:4) ==
'GRAV') then; lid = 4
180 else if( type_name_list(i)(1:4) ==
'CENT') then; lid = 5
181 else if( type_name_list(i)(1:2) ==
'PP' ) then; lid = 10
182 else if( type_name_list(i)(1:2) ==
'P0' ) then; lid = 10
183 else if( type_name_list(i)(1:2) ==
'PX' )
then
184 lid = 10; params(1,:)=1.d0; params(2,:)=0.d0; params(3,:)=0.d0
185 else if( type_name_list(i)(1:2) ==
'PY' )
then
186 lid = 10; params(1,:)=0.d0; params(2,:)=1.d0; params(3,:)=0.d0
187 else if( type_name_list(i)(1:2) ==
'PZ' )
then
188 lid = 10; params(1,:)=0.d0; params(2,:)=0.d0; params(3,:)=1.d0
189 else if( type_name_list(i)(1:2) ==
'P1' ) then; lid = 10
190 else if( type_name_list(i)(1:2) ==
'P2' ) then; lid = 20
191 else if( type_name_list(i)(1:2) ==
'P3' ) then; lid = 30
192 else if( type_name_list(i)(1:2) ==
'P4' ) then; lid = 40
193 else if( type_name_list(i)(1:2) ==
'P5' ) then; lid = 50
194 else if( type_name_list(i)(1:2) ==
'P6' ) then; lid = 60
195 else if( type_name_list(i)(1:1) ==
'S' ) then; lid = 100
197 write(
ilog, *)
'Error : !DLOAD : Load type ',type_name_list(i),
' is unknown'
198 deallocate( type_name_list )
204 deallocate( type_name_list )
217 integer(kind=kint) :: ctrl
218 real(kind=kreal) ::
value
232 integer(kind=kint) :: ctrl
233 integer(kind=kint) ::
irres
234 integer(kind=kint) :: tstep
235 integer(kind=kint) :: tintl
236 integer(kind=kint) :: rtype
237 character(len=HECMW_NAME_LEN),
target :: node_id(:)
238 character(len=HECMW_NAME_LEN),
pointer:: node_id_p
239 integer(kind=kint) :: node_id_len
240 real(kind=kreal),
pointer :: value(:)
243 character(len=HECMW_NAME_LEN) :: data_fmt,ss
255 write(ss,*) node_id_len
256 write(data_fmt,
'(a,a,a)')
'S',trim(adjustl(ss)),
'r '
258 node_id_p => node_id(1)
271 integer(kind=kint) :: ctrl
272 character(len=HECMW_NAME_LEN) :: amp
273 character(len=HECMW_NAME_LEN),
target :: node_id(:)
274 character(len=HECMW_NAME_LEN),
pointer :: node_id_p
275 integer(kind=kint) :: node_id_len
276 integer(kind=kint),
pointer :: dof_id(:)
277 real(kind=kreal),
pointer :: value(:)
280 character(len=HECMW_NAME_LEN) :: data_fmt,ss
281 write(ss,*) node_id_len
282 write( data_fmt,
'(a,a,a)')
'S', trim(adjustl(ss)),
'IR '
286 node_id_p => node_id(1)
297 integer(kind=kint),
intent(in) :: ctrl
299 character(len=256) :: fname
303 if( fname==
"" ) stop
"You must define a file name before read in user-defined material"