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 temp = fstrheat%TEMP(in)
73 write(
ilog,
'(a,f10.3,i10)')
' Maximum Temperature :', tmax
74 write(
ilog,
'(a,i10)')
' Maximum Node No. :', nmax
75 write(
ilog,
'(a,f10.3,i10)')
' Minimum Temperature :', tmin
76 write(
ilog,
'(a,i10)')
' Minimum Node No. :', nmin
79 call hecmw_allreduce_r1 (hecmesh, tmax, hecmw_max)
80 call hecmw_allreduce_r1 (hecmesh, tmin, hecmw_min)
82 write(
ilog,
'(a,f10.3,i10)')
' Maximum Temperature(global) :', tmax
83 write(
ilog,
'(a,f10.3,i10)')
' Minimum Temperature(global) :', tmin
93 type(hecmwst_local_mesh) :: hecmesh
96 type(hecmwst_result_data) :: fstrRESULT
97 integer(kind=kint) :: tstep
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) :: restart_step(1)
143 real(kind=kreal) :: restart_time(1)
144 integer(kind=kint) :: i, tstep
145 real(kind=kreal) :: ctime, work_time(1)
146 logical,
intent(in) :: outflag
147 character(len=HECMW_HEADER_LEN) :: header
148 character(len=HECMW_MSG_LEN) :: comment
149 character(len=HECMW_NAME_LEN) :: label
150 character(len=HECMW_NAME_LEN) :: nameID
151 real(kind=kreal),
pointer :: work(:)
153 if(
iresult == 1 .and. (mod(tstep,
irres) == 0 .or. outflag))
then
154 header =
'*fstrresult'
155 comment =
'nonsteady_heat_result'
156 call hecmw_result_init(hecmesh, tstep, header, comment)
159 call hecmw_result_add(hecmw_result_dtype_global, 1, label, work_time)
160 label =
'TEMPERATURE'
161 call hecmw_result_add(hecmw_result_dtype_node, 1, label, fstrheat%TEMP)
164 if( fstrheat%elemact%ELEMACT_egrp_tot > 0 )
then
165 allocate(work(hecmesh%n_elem))
168 call hecmw_result_add(hecmw_result_dtype_elem, 1, label, work)
173 call hecmw_result_write_by_name(nameid)
174 call hecmw_result_finalize
183 type(hecmwst_local_mesh) :: hecmesh
185 type(hecmwst_result_data) :: fstrRESULT
187 integer(kind=kint) :: i, tstep
188 real(kind=kreal) :: ctime
189 logical,
intent(in) :: outflag
190 real(kind=kreal),
pointer :: work(:)
192 if(
ivisual == 1 .and. (mod(tstep,
iwres) == 0 .or. outflag))
then
193 call hecmw_nullify_result_data(fstrresult)
196 call hecmw_visualize_init
197 call hecmw_visualize( hecmesh, fstrresult, tstep )
198 call hecmw_visualize_finalize
200 call hecmw_result_free(fstrresult)
207 type(hecmwst_local_mesh) :: hecmesh
209 integer(kind=kint) :: restart_istep(1)
210 integer(kind=kint) :: restart_step(1)
211 real(kind=kreal) :: restart_time(1)
212 integer(kind=kint) :: restrt_data_size
213 integer(kind=kint) :: istep, tstep
214 logical,
intent(in) :: outflag
215 real(kind=kreal) :: current_time
217 if( fstrheat%restart_nout <= 0 )
return
219 if( mod(tstep, fstrheat%restart_nout) == 0 .or. outflag )
then
220 restart_istep(1) = istep
221 restart_step(1) = tstep
222 restart_time(1) = current_time
223 restrt_data_size =
size(restart_istep)
224 call hecmw_restart_add_int(restart_istep, restrt_data_size)
225 restrt_data_size =
size(restart_step)
226 call hecmw_restart_add_int(restart_step, restrt_data_size)
227 restrt_data_size =
size(restart_time)
228 call hecmw_restart_add_real(restart_time, restrt_data_size)
229 restrt_data_size =
size(fstrheat%TEMP)
230 call hecmw_restart_add_real(fstrheat%TEMP, restrt_data_size)
231 call hecmw_restart_write()
232 if( hecmesh%my_rank.eq.0 )
then
233 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), pointer iresult
integer(kind=kint) myrank
PARALLEL EXECUTION.
integer(kind=kint), parameter imsg
integer(kind=kint), pointer iwres
integer(kind=kint), parameter ilog
FILE HANDLER.
integer(kind=kint), pointer irres
integer(kind=kint), pointer ivisual
This module provides a function to control heat analysis.
subroutine heat_output_result(hecMESH, fstrHEAT, fstrSOLID, tstep, ctime, outflag)
subroutine heat_output_restart(hecMESH, fstrHEAT, istep, tstep, current_time, outflag)
subroutine fstr_heat_make_result_step(hecMESH, fstrHEAT, fstrSOLID, fstrRESULT, tstep, ctime)
subroutine heat_output_log(hecMESH, fstrPARAM, fstrHEAT, tstep, ctime)
subroutine heat_output_visual(hecMESH, fstrRESULT, fstrHEAT, fstrSOLID, tstep, ctime, outflag)
subroutine heat_input_restart(fstrHEAT, hecMESH, istep, tstep, tt)
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)