16 integer(kind=kint) :: ctrl
17 real(kind=kreal),
pointer ::
dt(:)
18 real(kind=kreal),
pointer ::
etime(:)
19 real(kind=kreal),
pointer :: dtmin(:)
20 real(kind=kreal),
pointer :: deltmx(:)
21 integer(kind=kint),
pointer ::
itmax(:)
22 real(kind=kreal),
pointer ::
eps(:)
23 character(len=*),
intent(out) :: tpname
25 integer(kind=kint) :: result
26 real(kind=kreal) :: beta, t_beta
39 if(0.0d0 <= t_beta .and. t_beta <= 1.0d0) beta = t_beta
47 integer(kind=kint) :: ctrl
48 character(len=HECMW_NAME_LEN) :: amp
49 character(len=HECMW_NAME_LEN) :: node_grp_name(:)
50 integer(kind=kint) :: node_grp_name_len
51 real(kind=kreal),
pointer :: value(:)
54 character(len=HECMW_NAME_LEN) :: data_fmt,ss
61 write(ss,*) node_grp_name_len
62 write(data_fmt,
'(a,a,a)')
'S',trim(adjustl(ss)),
'r '
72 integer(kind=kint) :: ctrl
73 character(len=HECMW_NAME_LEN) :: amp
74 character(len=HECMW_NAME_LEN) :: node_grp_name(:)
75 integer(kind=kint) :: node_grp_name_len
76 real(kind=kreal),
pointer :: value(:)
79 character(len=HECMW_NAME_LEN) :: data_fmt,ss
86 write(ss,*) node_grp_name_len
87 write(data_fmt,
'(a,a,a)')
'S',trim(adjustl(ss)),
'r '
96 integer(kind=kint) :: ctrl
97 character(len=HECMW_NAME_LEN) :: amp
98 character(len=HECMW_NAME_LEN) :: elem_grp_name(:)
99 integer(kind=kint) :: elem_grp_name_len
100 integer(kind=kint),
pointer :: load_type(:)
101 real(kind=kreal),
pointer :: value(:)
104 integer(kind=kint),
parameter :: type_name_size = 5
105 integer(kind=kint) :: i, n
106 character(len=HECMW_NAME_LEN) :: data_fmt,s1,s2
107 character(len=type_name_size),
pointer :: type_name_list(:)
108 integer(kind=kint) :: rcode
109 integer(kind=kint) :: lid = -1
116 write(s1,*) elem_grp_name_len
117 write(s2,*) type_name_size
118 write(data_fmt,
'(a,a,a,a,a)')
'S',trim(adjustl(s1)),
'S',trim(adjustl(s2)),
'r '
121 allocate( type_name_list(n) )
125 if( rcode /= 0 )
then
126 deallocate( type_name_list )
132 if( type_name_list(i)(1:2) ==
'BF' ) then; lid = 0
133 else if( type_name_list(i)(1:2) ==
'S0' ) then; lid = 1
134 else if( type_name_list(i)(1:2) ==
'S1' ) then; lid = 1
135 else if( type_name_list(i)(1:2) ==
'S2' ) then; lid = 2
136 else if( type_name_list(i)(1:2) ==
'S3' ) then; lid = 3
137 else if( type_name_list(i)(1:2) ==
'S4' ) then; lid = 4
138 else if( type_name_list(i)(1:2) ==
'S5' ) then; lid = 5
139 else if( type_name_list(i)(1:2) ==
'S6' ) then; lid = 6
142 write(
ilog,*)
'Error : !DFLUX : Load type ',type_name_list(i),
' is unknown'
143 deallocate( type_name_list )
149 deallocate( type_name_list )
159 integer(kind=kint) :: ctrl
160 character(len=HECMW_NAME_LEN) :: amp
161 character(len=HECMW_NAME_LEN) :: surface_grp_name(:)
162 integer(kind=kint) :: surface_grp_name_len
163 real(kind=kreal),
pointer :: value(:)
166 character(len=HECMW_NAME_LEN) :: data_fmt,ss
173 write(ss,*) surface_grp_name_len
174 write(data_fmt,
'(a,a,a)')
'S',trim(adjustl(ss)),
'r '
184 function fstr_ctrl_get_film( ctrl, amp1, amp2, elem_grp_name, elem_grp_name_len, load_type, value, sink)
186 integer(kind=kint) :: ctrl
187 character(len=HECMW_NAME_LEN) :: amp1
188 character(len=HECMW_NAME_LEN) :: amp2
189 character(len=HECMW_NAME_LEN) :: elem_grp_name(:)
190 integer(kind=kint) :: elem_grp_name_len
191 integer(kind=kint),
pointer :: load_type(:)
192 real(kind=kreal),
pointer :: value(:)
193 real(kind=kreal),
pointer :: sink(:)
196 integer(kind=kint),
parameter :: type_name_size = 5
197 integer(kind=kint) :: i, n
198 character(len=HECMW_NAME_LEN) :: data_fmt,s1,s2
199 character(len=type_name_size),
pointer :: type_name_list(:)
200 integer(kind=kint) :: lid
201 integer(kind=kint) :: rcode
209 write(s1,*) elem_grp_name_len
210 write(s2,*) type_name_size
211 write(data_fmt,
'(a,a,a,a,a)')
'S',trim(adjustl(s1)),
'S',trim(adjustl(s2)),
'Rr '
214 allocate( type_name_list(n) )
218 if( rcode /= 0 )
then
219 deallocate( type_name_list )
225 if( type_name_list(i)(1:2) ==
'F0' ) then; lid = 1
226 else if( type_name_list(i)(1:2) ==
'F1' ) then; lid = 1
227 else if( type_name_list(i)(1:2) ==
'F2' ) then; lid = 2
228 else if( type_name_list(i)(1:2) ==
'F3' ) then; lid = 3
229 else if( type_name_list(i)(1:2) ==
'F4' ) then; lid = 4
230 else if( type_name_list(i)(1:2) ==
'F5' ) then; lid = 5
231 else if( type_name_list(i)(1:2) ==
'F6' ) then; lid = 6
234 write(
ilog,*)
'Error : !FILM : Load type ',type_name_list(i),
' is unknown'
235 deallocate( type_name_list )
241 deallocate( type_name_list )
252 integer(kind=kint) :: ctrl
253 character(len=HECMW_NAME_LEN) :: amp1
254 character(len=HECMW_NAME_LEN) :: amp2
255 character(len=HECMW_NAME_LEN) :: surface_grp_name(:)
256 integer(kind=kint) :: surface_grp_name_len
257 real(kind=kreal),
pointer :: value(:)
258 real(kind=kreal),
pointer :: sink(:)
261 character(len=HECMW_NAME_LEN) :: data_fmt,ss
269 write(ss,*) surface_grp_name_len
270 write(data_fmt,
'(a,a,a)')
'S',trim(adjustl(ss)),
'Rr '
282 integer(kind=kint) :: ctrl
283 character(len=HECMW_NAME_LEN) :: amp1
284 character(len=HECMW_NAME_LEN) :: amp2
285 character(len=HECMW_NAME_LEN) :: elem_grp_name(:)
286 integer(kind=kint) :: elem_grp_name_len
287 integer(kind=kint),
pointer :: load_type(:)
288 real(kind=kreal),
pointer :: value(:)
289 real(kind=kreal),
pointer :: sink(:)
292 integer(kind=kint),
parameter :: type_name_size = 5
293 integer(kind=kint) :: i, n
294 character(len=HECMW_NAME_LEN) :: data_fmt,s1,s2
295 character(len=type_name_size),
pointer :: type_name_list(:)
296 integer(kind=kint) :: lid
297 integer(kind=kint) :: rcode
305 write(s1,*) elem_grp_name_len
306 write(s2,*) type_name_size
307 write(data_fmt,
'(a,a,a,a,a)')
'S',trim(adjustl(s1)),
'S',trim(adjustl(s2)),
'Rr '
310 allocate( type_name_list(n) )
314 if( rcode /= 0 )
then
315 deallocate( type_name_list )
321 if( type_name_list(i)(1:2) ==
'R0' ) then; lid = 1
322 else if( type_name_list(i)(1:2) ==
'R1' ) then; lid = 1
323 else if( type_name_list(i)(1:2) ==
'R2' ) then; lid = 2
324 else if( type_name_list(i)(1:2) ==
'R3' ) then; lid = 3
325 else if( type_name_list(i)(1:2) ==
'R4' ) then; lid = 4
326 else if( type_name_list(i)(1:2) ==
'R5' ) then; lid = 5
327 else if( type_name_list(i)(1:2) ==
'R6' ) then; lid = 6
330 write(
ilog,*)
'Error : !RADIATE : Load type ',type_name_list(i),
' is unknown'
331 deallocate( type_name_list )
337 deallocate( type_name_list )
348 integer(kind=kint) :: ctrl
349 character(len=HECMW_NAME_LEN) :: amp1
350 character(len=HECMW_NAME_LEN) :: amp2
351 character(len=HECMW_NAME_LEN) :: surface_grp_name(:)
352 integer(kind=kint) :: surface_grp_name_len
353 real(kind=kreal),
pointer :: value(:)
354 real(kind=kreal),
pointer :: sink(:)
357 character(len=HECMW_NAME_LEN) :: data_fmt
358 character(len=HECMW_NAME_LEN) :: s1
366 write(s1,*) surface_grp_name_len;
367 write(data_fmt,
'(a,a,a)')
'S', trim(adjustl(s1)),
'Rr '
381 integer(kind=kint),
intent(in) :: ctrl
382 type(hecmwst_local_mesh),
intent(in) :: hecmesh
383 integer(kind=kint),
intent(in) :: grp_name_len
384 type(
tweldline),
intent(inout) :: weldline
387 character(len=HECMW_NAME_LEN) :: data_fmt
388 character(len=HECMW_NAME_LEN) :: s1, grp_id_name(1)
392 if(
fstr_ctrl_get_data_ex( ctrl, 1,
'RRRR ', weldline%I, weldline%U, weldline%coe, weldline%v )/=0 )
return
393 write(s1,*) grp_name_len
394 write(data_fmt,
'(a,a,a)')
'S', trim(adjustl(s1)),
'IRRRR '
396 weldline%n2, weldline%distol, weldline%tstart )/=0 )
return
398 weldline%egrpid = grp_id(1)
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 heat conductive analysis.
integer(kind=kint) function fstr_ctrl_get_dflux(ctrl, amp, elem_grp_name, elem_grp_name_len, load_type, value)
Read in !DFLUX (heat)
integer(kind=kint) function fstr_ctrl_get_sflux(ctrl, amp, surface_grp_name, surface_grp_name_len, value)
Read in !SFLUX (heat)
integer(kind=kint) function fstr_ctrl_get_weldline(ctrl, hecMESH, grp_name_len, weldline)
Read in !WELD_LINE (heat)
integer(kind=kint) function fstr_ctrl_get_heat(ctrl, dt, etime, dtmin, deltmx, itmax, eps, tpname, beta)
Read in !HEAT.
integer(kind=kint) function fstr_ctrl_get_film(ctrl, amp1, amp2, elem_grp_name, elem_grp_name_len, load_type, value, sink)
Read in !FILM (heat)
integer(kind=kint) function fstr_ctrl_get_radiate(ctrl, amp1, amp2, elem_grp_name, elem_grp_name_len, load_type, value, sink)
Read in !RADIATE (heat)
integer(kind=kint) function fstr_ctrl_get_cflux(ctrl, amp, node_grp_name, node_grp_name_len, value)
Read in !CFLUX (heat)
integer(kind=kint) function fstr_ctrl_get_fixtemp(ctrl, amp, node_grp_name, node_grp_name_len, value)
Read in !FIXTEMP.
integer(kind=kint) function fstr_ctrl_get_sfilm(ctrl, amp1, amp2, surface_grp_name, surface_grp_name_len, value, sink)
Read in !SFILM (heat)
integer(kind=kint) function fstr_ctrl_get_sradiate(ctrl, amp1, amp2, surface_grp_name, surface_grp_name_len, value, sink)
Read in !SRADIATE (heat)
This module contains auxiliary functions in calculation setup.
subroutine elem_grp_name_to_id(hecMESH, header_name, n, grp_id_name, grp_ID)
This module defines common data and basic structures for analysis.
integer(kind=kint), parameter ilog
FILE HANDLER.
real(kind=kreal) dt
ANALYSIS CONTROL for NLGEOM and HEAT.
-1:not relation, >1:index of coupled_node