13 type(hecmwst_local_mesh) :: hecMESH
15 integer(kind=kint) :: restart_istep(1)
16 integer(kind=kint) :: restart_step(1)
17 real(kind=kreal) :: restart_time(1)
18 integer(kind=kint) :: i, istep, tstep
19 real(kind=kreal) :: tt
21 if(fstrheat%restart_nout < 0)
then
22 fstrheat%restart_nout = -fstrheat%restart_nout
23 call hecmw_restart_open()
24 call hecmw_restart_read_int(restart_istep)
25 call hecmw_restart_read_int(restart_step)
26 call hecmw_restart_read_real(restart_time)
27 call hecmw_restart_read_real(fstrheat%TEMP0)
28 call hecmw_restart_close()
29 istep = restart_istep(1)
30 tstep = restart_step(1) + 1
33 do i = 1, hecmesh%n_node
34 fstrheat%TEMPC(i)= fstrheat%TEMP0(i)
35 fstrheat%TEMP (i)= fstrheat%TEMP0(i)
37 write(
ilog,*)
' Restart read of temperatures: OK'
44 type(hecmwst_local_mesh) :: hecmesh
47 integer(kind=kint) :: i, in, inod, tstep, nmax, nmin
48 real(kind=kreal) :: temp, ctime, tmax, tmin
56 write(
ilog,
'(a,i6)')
' ISTEP =', tstep
57 write(
ilog,
'(a,f10.3)')
' Time =', ctime
59 do i = 1, hecmesh%nn_internal
60 inod = fstrparam%global_local_id(1,i)
61 in = fstrparam%global_local_id(2,i)
62 if( fstrheat%is_dummy_node(in) ) cycle
63 temp = fstrheat%TEMP(in)
74 write(
ilog,
'(a,f10.3,i10)')
' Maximum Temperature :', tmax
75 write(
ilog,
'(a,i10)')
' Maximum Node No. :', nmax
76 write(
ilog,
'(a,f10.3,i10)')
' Minimum Temperature :', tmin
77 write(
ilog,
'(a,i10)')
' Minimum Node No. :', nmin
80 call hecmw_allreduce_r1 (hecmesh, tmax, hecmw_max)
81 call hecmw_allreduce_r1 (hecmesh, tmin, hecmw_min)
83 write(
ilog,
'(a,f10.3,i10)')
' Maximum Temperature(global) :', tmax
84 write(
ilog,
'(a,f10.3,i10)')
' Minimum Temperature(global) :', tmin
94 type(hecmwst_local_mesh) :: hecmesh
97 type(hecmwst_result_data) :: fstrRESULT
98 real(kind=kreal) :: ctime
100 real(kind=kreal),
pointer :: work(:)
102 fstrresult%ng_component = 1
103 fstrresult%nn_component = 1
104 fstrresult%ne_component = 0
105 allocate(fstrresult%ng_dof(1))
106 allocate(fstrresult%global_label(1))
107 allocate(fstrresult%global_val_item(1))
108 fstrresult%ng_dof(1) = 1
109 fstrresult%global_label(1) =
'TOTALTIME'
110 fstrresult%global_val_item(1) = ctime
111 allocate(fstrresult%nn_dof(1))
112 allocate(fstrresult%node_label(1))
113 allocate(fstrresult%node_val_item(hecmesh%n_node))
114 fstrresult%nn_dof(1) = 1
115 fstrresult%node_label(1) =
'TEMPERATURE'
116 fstrresult%node_val_item = fstrheat%TEMP
119 if( fstrheat%elemact%ELEMACT_egrp_tot > 0 )
then
120 fstrresult%ne_component = 1
121 allocate(fstrresult%ne_dof(1))
122 allocate(fstrresult%elem_label(1))
123 allocate(fstrresult%elem_val_item(hecmesh%n_elem))
124 allocate(work(hecmesh%n_elem))
127 fstrresult%ne_dof(1) = 1
128 fstrresult%elem_label(1) =
'ELEMACT'
129 fstrresult%elem_val_item = work
139 type(hecmwst_local_mesh) :: hecmesh
142 integer(kind=kint) :: tstep
143 real(kind=kreal) :: ctime, work_time(1)
144 character(len=HECMW_HEADER_LEN) :: header
145 character(len=HECMW_MSG_LEN) :: comment
146 character(len=HECMW_NAME_LEN) :: label
147 character(len=HECMW_NAME_LEN) :: nameID
148 real(kind=kreal),
pointer :: work(:)
150 header =
'*fstrresult'
151 comment =
'nonsteady_heat_result'
152 call hecmw_result_init(hecmesh, tstep, header, comment)
155 call hecmw_result_add(hecmw_result_dtype_global, 1, label, work_time)
156 label =
'TEMPERATURE'
157 call hecmw_result_add(hecmw_result_dtype_node, 1, label, fstrheat%TEMP)
160 if( fstrheat%elemact%ELEMACT_egrp_tot > 0 )
then
161 allocate(work(hecmesh%n_elem))
164 call hecmw_result_add(hecmw_result_dtype_elem, 1, label, work)
169 call hecmw_result_write_by_name(nameid)
170 call hecmw_result_finalize
178 type(hecmwst_local_mesh) :: hecmesh
180 type(hecmwst_result_data) :: fstrRESULT
182 integer(kind=kint) :: tstep
183 real(kind=kreal) :: ctime
185 call hecmw_nullify_result_data(fstrresult)
188 call hecmw_visualize_init
189 call hecmw_visualize( hecmesh, fstrresult, tstep )
190 call hecmw_visualize_finalize
192 call hecmw_result_free(fstrresult)
198 type(hecmwst_local_mesh) :: hecmesh
200 integer(kind=kint) :: restart_istep(1)
201 integer(kind=kint) :: restart_step(1)
202 real(kind=kreal) :: restart_time(1)
203 integer(kind=kint) :: restrt_data_size
204 integer(kind=kint) :: istep, tstep
205 real(kind=kreal) :: current_time
207 if( fstrheat%restart_nout <= 0 )
return
209 restart_istep(1) = istep
210 restart_step(1) = tstep
211 restart_time(1) = current_time
212 restrt_data_size =
size(restart_istep)
213 call hecmw_restart_add_int(restart_istep, restrt_data_size)
214 restrt_data_size =
size(restart_step)
215 call hecmw_restart_add_int(restart_step, restrt_data_size)
216 restrt_data_size =
size(restart_time)
217 call hecmw_restart_add_real(restart_time, restrt_data_size)
218 restrt_data_size =
size(fstrheat%TEMP)
219 call hecmw_restart_add_real(fstrheat%TEMP, restrt_data_size)
220 call hecmw_restart_write()
221 if( hecmesh%my_rank.eq.0 )
then
222 write(
imsg,*)
'### FSTR output Restart_File.'
This module provide a function to elemact elements.
subroutine output_elemact_flag(hecMESH, elements, outval)
This module defines common data and basic structures for analysis.
integer(kind=kint) myrank
PARALLEL EXECUTION.
integer(kind=kint), parameter imsg
integer(kind=kint), parameter ilog
FILE HANDLER.
This module provides a function to control heat analysis.
subroutine heat_output_visual(hecMESH, fstrRESULT, fstrHEAT, fstrSOLID, tstep, ctime)
subroutine heat_output_restart(hecMESH, fstrHEAT, istep, tstep, current_time)
subroutine heat_output_result(hecMESH, fstrHEAT, fstrSOLID, tstep, ctime)
subroutine heat_output_log(hecMESH, fstrPARAM, fstrHEAT, tstep, ctime)
subroutine heat_input_restart(fstrHEAT, hecMESH, istep, tstep, tt)
subroutine fstr_heat_make_result_step(hecMESH, fstrHEAT, fstrSOLID, fstrRESULT, ctime)
HECMW to FSTR Mesh Data Converter. Converting Connectivity of Element Type 232, 342 and 352.
subroutine fstr2hecmw_mesh_conv(hecMESH)
subroutine hecmw2fstr_mesh_conv(hecMESH)
Data for HEAT ANSLYSIS (fstrHEAT)
FSTR INNER CONTROL PARAMETERS (fstrPARAM)