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
92 type(hecmwst_local_mesh) :: hecmesh
94 integer(kind=kint) :: restart_step(1)
95 real(kind=kreal) :: restart_time(1)
96 integer(kind=kint) :: i, tstep
97 real(kind=kreal) :: ctime, work(1)
98 logical,
intent(in) :: outflag
99 character(len=HECMW_HEADER_LEN) :: header
100 character(len=HECMW_MSG_LEN) :: comment
101 character(len=HECMW_NAME_LEN) :: label
102 character(len=HECMW_NAME_LEN) :: nameID
104 if(
iresult == 1 .and. (mod(tstep,
irres) == 0 .or. outflag))
then
105 header =
'*fstrresult'
106 comment =
'nonsteady_heat_result'
107 call hecmw_result_init(hecmesh, tstep, header, comment)
110 call hecmw_result_add(hecmw_result_dtype_global, 1, label, work)
111 label =
'TEMPERATURE'
112 call hecmw_result_add(hecmw_result_dtype_node, 1, label, fstrheat%TEMP)
114 call hecmw_result_write_by_name(nameid)
115 call hecmw_result_finalize
123 type(hecmwst_local_mesh) :: hecMESH
125 type(hecmwst_result_data) :: fstrRESULT
126 integer(kind=kint) :: i, tstep
127 real(kind=kreal) :: ctime
128 logical,
intent(in) :: outflag
130 if(
ivisual == 1 .and. (mod(tstep,
iwres) == 0 .or. outflag))
then
131 call hecmw_nullify_result_data(fstrresult)
132 fstrresult%ng_component = 1
133 fstrresult%nn_component = 1
134 fstrresult%ne_component = 0
135 allocate(fstrresult%ng_dof(1))
136 allocate(fstrresult%global_label(1))
137 allocate(fstrresult%global_val_item(1))
138 fstrresult%ng_dof(1) = 1
139 fstrresult%global_label(1) =
'TOTALTIME'
140 fstrresult%global_val_item(1) = ctime
141 allocate(fstrresult%nn_dof(1))
142 allocate(fstrresult%node_label(1))
143 allocate(fstrresult%node_val_item(hecmesh%n_node))
144 fstrresult%nn_dof(1) = 1
145 fstrresult%node_label(1) =
'TEMPERATURE'
146 fstrresult%node_val_item = fstrheat%TEMP
148 call hecmw_visualize_init
149 call hecmw_visualize( hecmesh, fstrresult, tstep )
150 call hecmw_visualize_finalize
152 call hecmw_result_free(fstrresult)
159 type(hecmwst_local_mesh) :: hecMESH
161 integer(kind=kint) :: restart_istep(1)
162 integer(kind=kint) :: restart_step(1)
163 real(kind=kreal) :: restart_time(1)
164 integer(kind=kint) :: restrt_data_size
165 integer(kind=kint) :: istep, tstep
166 logical,
intent(in) :: outflag
167 real(kind=kreal) :: current_time
169 if( fstrheat%restart_nout <= 0 )
return
171 if( mod(tstep, fstrheat%restart_nout) == 0 .or. outflag )
then
172 restart_istep(1) = istep
173 restart_step(1) = tstep
174 restart_time(1) = current_time
175 restrt_data_size =
size(restart_istep)
176 call hecmw_restart_add_int(restart_istep, restrt_data_size)
177 restrt_data_size =
size(restart_step)
178 call hecmw_restart_add_int(restart_step, restrt_data_size)
179 restrt_data_size =
size(restart_time)
180 call hecmw_restart_add_real(restart_time, restrt_data_size)
181 restrt_data_size =
size(fstrheat%TEMP)
182 call hecmw_restart_add_real(fstrheat%TEMP, restrt_data_size)
183 call hecmw_restart_write()
184 if( hecmesh%my_rank.eq.0 )
then
185 write(
imsg,*)
'### FSTR output Restart_File.'