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 real(kind=kreal) :: beta, t_beta
38 if(0.0d0 <= t_beta .and. t_beta <= 1.0d0) beta = t_beta
46 integer(kind=kint) :: ctrl
47 character(len=HECMW_NAME_LEN) :: amp
48 character(len=HECMW_NAME_LEN) :: node_grp_name(:)
49 integer(kind=kint) :: node_grp_name_len
50 real(kind=kreal),
pointer :: value(:)
53 character(len=HECMW_NAME_LEN) :: data_fmt,ss
60 write(ss,*) node_grp_name_len
61 write(data_fmt,
'(a,a,a)')
'S',trim(adjustl(ss)),
'r '
71 integer(kind=kint) :: ctrl
72 character(len=HECMW_NAME_LEN) :: amp
73 character(len=HECMW_NAME_LEN) :: node_grp_name(:)
74 integer(kind=kint) :: node_grp_name_len
75 real(kind=kreal),
pointer :: value(:)
78 character(len=HECMW_NAME_LEN) :: data_fmt,ss
85 write(ss,*) node_grp_name_len
86 write(data_fmt,
'(a,a,a)')
'S',trim(adjustl(ss)),
'r '
95 integer(kind=kint) :: ctrl
96 character(len=HECMW_NAME_LEN) :: amp
97 character(len=HECMW_NAME_LEN) :: elem_grp_name(:)
98 integer(kind=kint) :: elem_grp_name_len
99 integer(kind=kint),
pointer :: load_type(:)
100 real(kind=kreal),
pointer :: value(:)
103 integer(kind=kint),
parameter :: type_name_size = 5
104 integer(kind=kint) :: i, n
105 character(len=HECMW_NAME_LEN) :: data_fmt,s1,s2
106 character(len=type_name_size),
pointer :: type_name_list(:)
107 integer(kind=kint) :: rcode
108 integer(kind=kint) :: lid = -1
115 write(s1,*) elem_grp_name_len
116 write(s2,*) type_name_size
117 write(data_fmt,
'(a,a,a,a,a)')
'S',trim(adjustl(s1)),
'S',trim(adjustl(s2)),
'r '
120 allocate( type_name_list(n) )
124 if( rcode /= 0 )
then
125 deallocate( type_name_list )
131 if( type_name_list(i)(1:2) ==
'BF' ) then; lid = 0
132 else if( type_name_list(i)(1:2) ==
'S0' ) then; lid = 1
133 else if( type_name_list(i)(1:2) ==
'S1' ) then; lid = 1
134 else if( type_name_list(i)(1:2) ==
'S2' ) then; lid = 2
135 else if( type_name_list(i)(1:2) ==
'S3' ) then; lid = 3
136 else if( type_name_list(i)(1:2) ==
'S4' ) then; lid = 4
137 else if( type_name_list(i)(1:2) ==
'S5' ) then; lid = 5
138 else if( type_name_list(i)(1:2) ==
'S6' ) then; lid = 6
141 write(
ilog,*)
'Error : !DFLUX : Load type ',type_name_list(i),
' is unknown'
142 deallocate( type_name_list )
148 deallocate( type_name_list )
158 integer(kind=kint) :: ctrl
159 character(len=HECMW_NAME_LEN) :: amp
160 character(len=HECMW_NAME_LEN) :: surface_grp_name(:)
161 integer(kind=kint) :: surface_grp_name_len
162 real(kind=kreal),
pointer :: value(:)
165 character(len=HECMW_NAME_LEN) :: data_fmt,ss
172 write(ss,*) surface_grp_name_len
173 write(data_fmt,
'(a,a,a)')
'S',trim(adjustl(ss)),
'r '
183 function fstr_ctrl_get_film( ctrl, amp1, amp2, elem_grp_name, elem_grp_name_len, load_type, value, sink)
185 integer(kind=kint) :: ctrl
186 character(len=HECMW_NAME_LEN) :: amp1
187 character(len=HECMW_NAME_LEN) :: amp2
188 character(len=HECMW_NAME_LEN) :: elem_grp_name(:)
189 integer(kind=kint) :: elem_grp_name_len
190 integer(kind=kint),
pointer :: load_type(:)
191 real(kind=kreal),
pointer :: value(:)
192 real(kind=kreal),
pointer :: sink(:)
195 integer(kind=kint),
parameter :: type_name_size = 5
196 integer(kind=kint) :: i, n
197 character(len=HECMW_NAME_LEN) :: data_fmt,s1,s2
198 character(len=type_name_size),
pointer :: type_name_list(:)
199 integer(kind=kint) :: lid
200 integer(kind=kint) :: rcode
208 write(s1,*) elem_grp_name_len
209 write(s2,*) type_name_size
210 write(data_fmt,
'(a,a,a,a,a)')
'S',trim(adjustl(s1)),
'S',trim(adjustl(s2)),
'Rr '
213 allocate( type_name_list(n) )
217 if( rcode /= 0 )
then
218 deallocate( type_name_list )
224 if( type_name_list(i)(1:2) ==
'F0' ) then; lid = 1
225 else if( type_name_list(i)(1:2) ==
'F1' ) then; lid = 1
226 else if( type_name_list(i)(1:2) ==
'F2' ) then; lid = 2
227 else if( type_name_list(i)(1:2) ==
'F3' ) then; lid = 3
228 else if( type_name_list(i)(1:2) ==
'F4' ) then; lid = 4
229 else if( type_name_list(i)(1:2) ==
'F5' ) then; lid = 5
230 else if( type_name_list(i)(1:2) ==
'F6' ) then; lid = 6
233 write(
ilog,*)
'Error : !FILM : Load type ',type_name_list(i),
' is unknown'
234 deallocate( type_name_list )
240 deallocate( type_name_list )
251 integer(kind=kint) :: ctrl
252 character(len=HECMW_NAME_LEN) :: amp1
253 character(len=HECMW_NAME_LEN) :: amp2
254 character(len=HECMW_NAME_LEN) :: surface_grp_name(:)
255 integer(kind=kint) :: surface_grp_name_len
256 real(kind=kreal),
pointer :: value(:)
257 real(kind=kreal),
pointer :: sink(:)
260 character(len=HECMW_NAME_LEN) :: data_fmt,ss
268 write(ss,*) surface_grp_name_len
269 write(data_fmt,
'(a,a,a)')
'S',trim(adjustl(ss)),
'Rr '
281 integer(kind=kint) :: ctrl
282 character(len=HECMW_NAME_LEN) :: amp1
283 character(len=HECMW_NAME_LEN) :: amp2
284 character(len=HECMW_NAME_LEN) :: elem_grp_name(:)
285 integer(kind=kint) :: elem_grp_name_len
286 integer(kind=kint),
pointer :: load_type(:)
287 real(kind=kreal),
pointer :: value(:)
288 real(kind=kreal),
pointer :: sink(:)
291 integer(kind=kint),
parameter :: type_name_size = 5
292 integer(kind=kint) :: i, n
293 character(len=HECMW_NAME_LEN) :: data_fmt,s1,s2
294 character(len=type_name_size),
pointer :: type_name_list(:)
295 integer(kind=kint) :: lid
296 integer(kind=kint) :: rcode
304 write(s1,*) elem_grp_name_len
305 write(s2,*) type_name_size
306 write(data_fmt,
'(a,a,a,a,a)')
'S',trim(adjustl(s1)),
'S',trim(adjustl(s2)),
'Rr '
309 allocate( type_name_list(n) )
313 if( rcode /= 0 )
then
314 deallocate( type_name_list )
320 if( type_name_list(i)(1:2) ==
'R0' ) then; lid = 1
321 else if( type_name_list(i)(1:2) ==
'R1' ) then; lid = 1
322 else if( type_name_list(i)(1:2) ==
'R2' ) then; lid = 2
323 else if( type_name_list(i)(1:2) ==
'R3' ) then; lid = 3
324 else if( type_name_list(i)(1:2) ==
'R4' ) then; lid = 4
325 else if( type_name_list(i)(1:2) ==
'R5' ) then; lid = 5
326 else if( type_name_list(i)(1:2) ==
'R6' ) then; lid = 6
329 write(
ilog,*)
'Error : !RADIATE : Load type ',type_name_list(i),
' is unknown'
330 deallocate( type_name_list )
336 deallocate( type_name_list )
347 integer(kind=kint) :: ctrl
348 character(len=HECMW_NAME_LEN) :: amp1
349 character(len=HECMW_NAME_LEN) :: amp2
350 character(len=HECMW_NAME_LEN) :: surface_grp_name(:)
351 integer(kind=kint) :: surface_grp_name_len
352 real(kind=kreal),
pointer :: value(:)
353 real(kind=kreal),
pointer :: sink(:)
356 character(len=HECMW_NAME_LEN) :: data_fmt
357 character(len=HECMW_NAME_LEN) :: s1
365 write(s1,*) surface_grp_name_len;
366 write(data_fmt,
'(a,a,a)')
'S', trim(adjustl(s1)),
'Rr '
380 integer(kind=kint),
intent(in) :: ctrl
381 type(hecmwst_local_mesh),
intent(in) :: hecmesh
382 integer(kind=kint),
intent(in) :: grp_name_len
383 type(
tweldline),
intent(inout) :: weldline
386 character(len=HECMW_NAME_LEN) :: data_fmt
387 character(len=HECMW_NAME_LEN) :: s1, grp_id_name(1)
391 if(
fstr_ctrl_get_data_ex( ctrl, 1,
'RRRR ', weldline%I, weldline%U, weldline%coe, weldline%v )/=0 )
return
392 write(s1,*) grp_name_len
393 write(data_fmt,
'(a,a,a)')
'S', trim(adjustl(s1)),
'IRRRR '
395 weldline%n2, weldline%distol, weldline%tstart )/=0 )
return
397 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