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) :: node_id(:)
75 integer(kind=kint) :: node_id_len
76 integer(kind=kint),
pointer :: dof_ids (:)
77 integer(kind=kint),
pointer :: dof_ide (:)
78 real(kind=kreal),
pointer :: value(:)
81 character(len=HECMW_NAME_LEN) :: data_fmt,ss
82 write(ss,*) node_id_len
83 write(data_fmt,
'(a,a,a)')
'S',trim(adjustl(ss)),
'IIr '
99 integer(kind=kint) :: ctrl
100 character(len=HECMW_NAME_LEN) :: amp
101 character(len=HECMW_NAME_LEN) :: node_id(:)
102 integer(kind=kint) :: node_id_len
103 integer(kind=kint),
pointer :: dof_id(:)
104 real(kind=kreal),
pointer :: value(:)
107 character(len=HECMW_NAME_LEN) :: data_fmt,ss
108 write(ss,*) node_id_len
109 write( data_fmt,
'(a,a,a)')
'S', trim(adjustl(ss)),
'IR '
124 integer(kind=kint) :: ctrl
125 character(len=HECMW_NAME_LEN) :: amp
126 integer(kind=kint) :: follow
127 character(len=HECMW_NAME_LEN) :: element_id(:)
128 integer(kind=kint) :: element_id_len
129 integer(kind=kint),
pointer :: load_type(:)
130 real(kind=kreal),
pointer :: params(:,:)
133 character(len=HECMW_NAME_LEN),
pointer :: type_name_list(:)
135 integer(kind=kint) :: i, n
136 integer(kind=kint) :: rcode
137 character(len=HECMW_NAME_LEN) :: data_fmt,s1,s2
138 integer(kind=kint) :: lid
146 write(s1,*) element_id_len
147 write(s2,*) hecmw_name_len
148 write( data_fmt,
'(a,a,a,a,a)')
'S', trim(adjustl(s1)),
'S', trim(adjustl(s2)),
'Rrrrrrr '
151 allocate( type_name_list(n) )
154 real(kind=kreal) :: params0(n), params1(n), params2(n), params3(n), params4(n), params5(n), params6(n)
155 params0 = params(0,:)
156 params1 = params(1,:)
157 params2 = params(2,:)
158 params3 = params(3,:)
159 params4 = params(4,:)
160 params5 = params(5,:)
161 params6 = params(6,:)
163 params0, params1, params2, params3, params4, params5, params6 )
164 params(0,:) = params0
165 params(1,:) = params1
166 params(2,:) = params2
167 params(3,:) = params3
168 params(4,:) = params4
169 params(5,:) = params5
170 params(6,:) = params6
173 if( rcode /= 0 )
then
174 deallocate( type_name_list )
179 call pc_strupr( type_name_list(i) )
181 if( type_name_list(i)(1:2) ==
'BX' ) then; lid = 1
182 else if( type_name_list(i)(1:2) ==
'BY' ) then; lid = 2
183 else if( type_name_list(i)(1:2) ==
'BZ' ) then; lid = 3
184 else if( type_name_list(i)(1:4) ==
'GRAV') then; lid = 4
185 else if( type_name_list(i)(1:4) ==
'CENT') then; lid = 5
186 else if( type_name_list(i)(1:2) ==
'PP' ) then; lid = 10
187 else if( type_name_list(i)(1:2) ==
'P0' ) then; lid = 10
188 else if( type_name_list(i)(1:2) ==
'PX' )
then
189 lid = 10; params(1,:)=1.d0; params(2,:)=0.d0; params(3,:)=0.d0
190 else if( type_name_list(i)(1:2) ==
'PY' )
then
191 lid = 10; params(1,:)=0.d0; params(2,:)=1.d0; params(3,:)=0.d0
192 else if( type_name_list(i)(1:2) ==
'PZ' )
then
193 lid = 10; params(1,:)=0.d0; params(2,:)=0.d0; params(3,:)=1.d0
194 else if( type_name_list(i)(1:2) ==
'P1' ) then; lid = 10
195 else if( type_name_list(i)(1:2) ==
'P2' ) then; lid = 20
196 else if( type_name_list(i)(1:2) ==
'P3' ) then; lid = 30
197 else if( type_name_list(i)(1:2) ==
'P4' ) then; lid = 40
198 else if( type_name_list(i)(1:2) ==
'P5' ) then; lid = 50
199 else if( type_name_list(i)(1:2) ==
'P6' ) then; lid = 60
200 else if( type_name_list(i)(1:1) ==
'S' ) then; lid = 100
202 write(
ilog, *)
'Error : !DLOAD : Load type ',type_name_list(i),
' is unknown'
203 deallocate( type_name_list )
209 deallocate( type_name_list )
222 integer(kind=kint) :: ctrl
223 real(kind=kreal) ::
value
237 integer(kind=kint) :: ctrl
238 integer(kind=kint) :: irres
239 integer(kind=kint) :: tstep
240 integer(kind=kint) :: tintl
241 integer(kind=kint) :: rtype
242 character(len=HECMW_NAME_LEN) :: node_id(:)
243 integer(kind=kint) :: node_id_len
244 real(kind=kreal),
pointer :: value(:)
247 character(len=HECMW_NAME_LEN) :: data_fmt,ss
259 write(ss,*) node_id_len
260 write(data_fmt,
'(a,a,a)')
'S',trim(adjustl(ss)),
'r '
274 integer(kind=kint) :: ctrl
275 character(len=HECMW_NAME_LEN) :: amp
276 character(len=HECMW_NAME_LEN) :: node_id(:)
277 integer(kind=kint) :: node_id_len
278 integer(kind=kint),
pointer :: dof_id(:)
279 real(kind=kreal),
pointer :: value(:)
282 character(len=HECMW_NAME_LEN) :: data_fmt,ss
283 write(ss,*) node_id_len
284 write( data_fmt,
'(a,a,a)')
'S', trim(adjustl(ss)),
'IR '
298 integer(kind=kint),
intent(in) :: ctrl
300 character(len=256) :: fname
304 if( fname==
"" ) stop
"You must define a file name before read in user-defined material"
int fstr_ctrl_get_param_ex(int *ctrl, const char *param_name, const char *value_list, int *necessity, char *type, void *val)
int fstr_ctrl_get_data_array_ex(int *ctrl, const char *format,...)
int fstr_ctrl_get_data_ex(int *ctrl, int *line_no, const char *format,...)
This module contains control file data obtaining functions for static analysis.
integer(kind=kint) function fstr_ctrl_get_spring(ctrl, amp, node_id, node_id_len, dof_id, value)
Read in !SPRING.
integer(kind=kint) function fstr_ctrl_get_static(ctrl, dtime, etime, itime, eps, restart_nout, idx_elpl, iout_list, sig_y0, h_dash, nout, nout_monit, node_monit_1, elem_monit_1, intg_monit_1)
Read in !STATIC.
integer(kind=kint) function fstr_ctrl_get_boundary(ctrl, amp, node_id, node_id_len, dof_ids, dof_ide, value)
Read in !BOUNDARY.
integer(kind=kint) function fstr_ctrl_get_reftemp(ctrl, value)
Read in !REFTEMP.
integer(kind=kint) function fstr_ctrl_get_dload(ctrl, amp, follow, element_id, element_id_len, load_type, params)
Read in !DLOAD.
integer(kind=kint) function fstr_ctrl_get_temperature(ctrl, irres, tstep, tintl, rtype, node_id, node_id_len, value)
Read in !TEMPERATURE.
integer(kind=kint) function fstr_ctrl_get_cload(ctrl, amp, node_id, node_id_len, dof_id, value)
Read in !CLOAD.
integer function fstr_ctrl_get_userload(ctrl)
Read in !ULOAD.
This module defines common data and basic structures for analysis.
integer(kind=kint), parameter ilog
FILE HANDLER.
This subroutine read in used-defined loading tangent.
integer function ureadload(fname)
This subroutine read in variables needs to define user-defined external loads.