historyautoput.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine historyautoputdouble0 (time, varname, value, err)
 
subroutine historyautoputdouble1 (time, varname, array, err)
 
subroutine historyautoputdouble2 (time, varname, array, err)
 
subroutine historyautoputdouble3 (time, varname, array, err)
 
subroutine historyautoputdouble4 (time, varname, array, err)
 
subroutine historyautoputdouble5 (time, varname, array, err)
 
subroutine historyautoputdouble6 (time, varname, array, err)
 
subroutine historyautoputdouble7 (time, varname, array, err)
 
subroutine historyautoputreal0 (time, varname, value, err)
 
subroutine historyautoputreal1 (time, varname, array, err)
 
subroutine historyautoputreal2 (time, varname, array, err)
 
subroutine historyautoputreal3 (time, varname, array, err)
 
subroutine historyautoputreal4 (time, varname, array, err)
 
subroutine historyautoputreal5 (time, varname, array, err)
 
subroutine historyautoputreal6 (time, varname, array, err)
 
subroutine historyautoputreal7 (time, varname, array, err)
 
subroutine historyautoputint0 (time, varname, value, err)
 
subroutine historyautoputint1 (time, varname, array, err)
 
subroutine historyautoputint2 (time, varname, array, err)
 
subroutine historyautoputint3 (time, varname, array, err)
 
subroutine historyautoputint4 (time, varname, array, err)
 
subroutine historyautoputint5 (time, varname, array, err)
 
subroutine historyautoputint6 (time, varname, array, err)
 
subroutine historyautoputint7 (time, varname, array, err)
 
subroutine historyautoputold1double0 (time, varname, value, err)
 
subroutine historyautoputold1double1 (time, varname, array, err)
 
subroutine historyautoputold1double2 (time, varname, array, err)
 
subroutine historyautoputold1double3 (time, varname, array, err)
 
subroutine historyautoputold1double4 (time, varname, array, err)
 
subroutine historyautoputold1double5 (time, varname, array, err)
 
subroutine historyautoputold1double6 (time, varname, array, err)
 
subroutine historyautoputold1double7 (time, varname, array, err)
 
subroutine historyautoputold1real0 (time, varname, value, err)
 
subroutine historyautoputold1real1 (time, varname, array, err)
 
subroutine historyautoputold1real2 (time, varname, array, err)
 
subroutine historyautoputold1real3 (time, varname, array, err)
 
subroutine historyautoputold1real4 (time, varname, array, err)
 
subroutine historyautoputold1real5 (time, varname, array, err)
 
subroutine historyautoputold1real6 (time, varname, array, err)
 
subroutine historyautoputold1real7 (time, varname, array, err)
 
subroutine historyautoputold1int0 (time, varname, value, err)
 
subroutine historyautoputold1int1 (time, varname, array, err)
 
subroutine historyautoputold1int2 (time, varname, array, err)
 
subroutine historyautoputold1int3 (time, varname, array, err)
 
subroutine historyautoputold1int4 (time, varname, array, err)
 
subroutine historyautoputold1int5 (time, varname, array, err)
 
subroutine historyautoputold1int6 (time, varname, array, err)
 
subroutine historyautoputold1int7 (time, varname, array, err)
 

Function/Subroutine Documentation

◆ historyautoputdouble0()

subroutine historyautoputdouble0 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
real(dp), intent(in), target  value,
logical, intent(out), optional  err 
)

Definition at line 32 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

32  !
33  !
34  ! データの出力を行います.
35  ! このサブルーチンを用いる前に, "HistoryAutoCreate"
36  ! による初期設定が必要です.
37  !
38  ! *varname* は HistoryAutoAddVariable で指定されている必要があります.
39  !
40  ! *HistoryAutoPut* は複数のサブルーチンの総称名です. *array* には
41  ! 0 〜 7 次元のデータを与えることが可能です.
42  ! (以下の同名のサブルーチンを参照ください).
43  ! また, 整数, 単精度実数, 倍精度実数を与えることが可能です.
44  ! ただし, 0 次元のデータを与える際の引数キーワードは
45  ! *value* を用いてください.
46  !
47  ! Output data.
48  ! Initialization by "HistoryAutoCreate" is needed
49  ! before use of this subroutine.
50  !
51  ! "varname" must be specified by "HistoryAutoAddVariable".
52  !
53  ! "HistoryAutoPut" is a generic name of multiple subroutines.
54  ! Then 0 -- 7 dimensional data can be given to "array".
55  ! (See bellow subroutines with the same name).
56  ! And, integer, sinble or double precision can be given.
57  ! However, if 0 dimensional data is given, use "value" as a
58  ! keyword argument.
59  !
60  !
61  ! * 時間平均について
62  !
63  ! 時間平均については HistoryAutoAddVariable を参照ください。
64  !
65  ! * About time average
66  !
67  ! See "HistoryAutoAddVariable" for details of time average
68  !
69  !
70 
71  !
72 
90  use dc_string, only: tochar
91  use dc_message, only: messagenotify
92  use dc_trace, only: beginsub, endsub
95  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
96  use dc_date_generic, only: operator(-), operator(+), &
97  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
100  use dc_types, only: dp, string, token
101  implicit none
102  real(DP), intent(in):: time
103  ! データの時刻.
104  ! Time of data
105 
106  character(*), intent(in):: varname
107  ! 変数の名前.
108  !
109  ! ただし, ここで指定するものは,
110  ! HistoryAutoAddVariable の
111  ! *varname* で既に指定されてい
112  ! なければなりません.
113  !
114  ! Name of a variable.
115  !
116  ! This must be specified
117  ! *varname* in "HistoryAutoAddVariable".
118 
119  real(DP), intent(in), target:: value
120  ! 出力データ.
121  !
122  ! データ型は整数, 単精度実数型,
123  ! 倍精度実数型のどれでもかまいません.
124  ! ただし, ファイルへ出力される際には,
125  ! HistoryAutoAddVariable の *xtypes* で指定した
126  ! データ型へ変換されます.
127  !
128  ! Output data.
129  !
130  ! Integer, single or double precision are
131  ! acceptable as data type.
132  ! Note that when this is output to a file,
133  ! data type is converted into "xtype"
134  ! specified in "HistoryAutoAddVariable"
135  !
136 
137  logical, intent(out), optional:: err
138  ! 例外処理用フラグ.
139  ! デフォルトでは, この手続き内でエラーが
140  ! 生じた場合, プログラムは強制終了します.
141  ! 引数 *err* が与えられる場合,
142  ! プログラムは強制終了せず, 代わりに
143  ! *err* に .true. が代入されます.
144  !
145  ! Exception handling flag.
146  ! By default, when error occur in
147  ! this procedure, the program aborts.
148  ! If this *err* argument is given,
149  ! .true. is substituted to *err* and
150  ! the program does not abort.
151 
152 
153  type(gt_history), pointer:: gthist =>null()
154  ! gtool_history モジュール用構造体.
155  ! Derived type for "gtool_history" module
156 
157 
158  real(DP):: settime
159  integer:: stat, i
160  integer:: vnum
161  character(STRING):: cause_c
162  integer, save:: svnum = 1, svtstep
163  character(*), parameter:: subname = "HistoryAutoPutDouble0"
164  continue
165  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
166  stat = dc_noerr
167  cause_c = ""
168 
169  ! 初期設定チェック
170  ! Check initialization
171  !
172  if ( .not. initialized ) then
173  stat = dc_enotinit
174  cause_c = 'gtool_historyauto'
175  goto 999
176  end if
177 
178  ! 時刻に関するエラー処理
179  ! Error handling for time
180  !
181  if ( time < zero_time ) then
182  cause_c = tochar( time )
183  call messagenotify( 'W', subname, &
184  & '"time=<%c>" must be positive value (varname=<%c>).', &
185  & c1 = trim( cause_c ), c2 = trim( varname ) )
186  stat = dc_enegative
187  cause_c = 'time'
188  goto 999
189  end if
190 
191  ! 変数 ID のサーチ
192  ! Search variable ID
193  !
194  varsearch: do
195  do i = svnum, numvars
196  if ( trim( varname_vars(i) ) == trim(varname) ) then
197  vnum = i
198  exit varsearch
199  end if
200  end do
201  do i = 1, svnum - 1
202  if ( trim( varname_vars(i) ) == trim(varname) ) then
203  vnum = i
204  exit varsearch
205  end if
206  end do
207 
208  stat = hst_ebadvarname
209  cause_c = varname
210  goto 999
211  end do varsearch
212 
213  svnum = vnum
214 
215  ! 定義モードからデータモードへ
216  ! Transit from define mode to data mode
217  !
218  if ( hstnmlinfodefinemode( gthstnml ) ) then
219  call hstnmlinfoenddefine( gthstnml ) ! (inout)
220  end if
221 
222  ! 出力タイミングのチェックとファイルの作成
223  ! Check output timing and create files
224  !
225  call hstvarsoutputcheck( &
226  & time = time, & ! (in)
227  & stime_index = svtstep ) ! (out)
228 
229  ! ファイルのオープン・クローズ・再オープン
230  ! Open, close, reopen files
231  !
232  if ( create_timing_vars(vnum, svtstep) &
233  & .and. .not. histaddvar_vars(vnum) ) then
234  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
235  & varname_vars(vnum), time ) ! (in)
236  histaddvar_vars(vnum) = .true.
237  if ( flag_output_prev_vars(vnum) ) then
238  prev_outtime_vars(vnum) = time
239  else
240  flag_output_prev_vars(vnum) = .true.
241  if ( origin_time_vars(vnum) > zero_time ) then
242  prev_outtime_vars(vnum) = origin_time_vars(vnum)
243  else
244  prev_outtime_vars(vnum) = time
245  end if
246  end if
247  end if
248 
249  if ( close_timing_vars(vnum, svtstep) ) then
250  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
251  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
252  end if
253  end if
254 
255  if ( renew_timing_vars(vnum, svtstep) ) then
256  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
257  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
258  end if
259  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
260  & varname_vars(vnum), time ) ! (in)
261  newfile_createtime_vars(vnum) = time
262  prev_outtime_vars(vnum) = time
263  end if
264 
265  ! 出力が有効かどうかを確認する
266  ! Confirm whether the output is effective
267  !
268  if ( .not. output_timing_vars(vnum, svtstep) &
269  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
270 
271  goto 999
272  end if
273 
274  ! GT_HISTORY 変数の取得
275  ! Get "GT_HISTORY" variable
276  !
277  gthist => gthst_history_vars(vnum) % gthist
278 
279 
280  ! 空間切り出し
281  ! Slice of spaces
282  !
283  ! array only
284 
285 
286 
287  ! 空間平均
288  ! Spatial average
289  !
290  ! array only
291 
292 
293  ! 単位に応じて時刻を変換
294  ! Convert time according to units
295  !
296  if ( output_timing_vars(vnum, svtstep) &
297  & .or. output_timing_avr_vars(vnum, svtstep) ) then
298 
299  settime = &
300  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
301  end if
302 
303  ! 時刻設定
304  ! Set time
305  !
306  if ( output_timing_vars(vnum, svtstep) ) then
307  call historysettime( &
308  & history = gthist, & ! (in) optional
309  & timed = settime ) ! (in) optional
310  end if
311 
312  ! 出力
313  ! OutPut
314  !
315  if ( output_timing_avr_vars(vnum, svtstep) ) then
316  call historyput( &
317  & varname, & ! (in)
318  & (/value/), & ! (in)
319 
320  & timed = settime, & ! (in) optional
321  & time_average_store = &
322  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
323  & history = gthist ) ! (inout) optional
324  else
325  call historyput( &
326  & varname, & ! (in)
327  & (/value/), & ! (in)
328 
329  & history = gthist ) ! (inout) optional
330  end if
331 
332  ! 最後に出力した時刻を保存
333  ! Save last time of output
334  !
335  if ( output_timing_vars(vnum, svtstep) ) then
336  if ( .not. create_timing_vars(vnum, svtstep) .and. &
337  & .not. renew_timing_vars(vnum, svtstep) ) then
338 
339  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
340  prev_outtime_vars(vnum) = time
341  else
342  prev_outtime_vars(vnum) = &
343  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
344  end if
345  end if
346  end if
347 
348  ! 結合解除
349  ! Release associations
350  !
351  nullify( gthist )
352 
353 
354 999 continue
355  call storeerror(stat, subname, cause_c = cause_c, err = err)
356  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputdouble1()

subroutine historyautoputdouble1 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
real(dp), dimension(:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 364 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

364  !
365 
366  !
367 
369  & numvars, gthstnml, zero_time, &
378  & averagereduce
385  use dc_string, only: tochar
386  use dc_message, only: messagenotify
387  use dc_trace, only: beginsub, endsub
390  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
391  use dc_date_generic, only: operator(-), operator(+), &
392  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
395  use dc_types, only: dp, string, token
396  implicit none
397  real(DP), intent(in):: time
398 
399  character(*), intent(in):: varname
400 
401  real(DP), intent(in), target:: array(:)
402 
403  logical, intent(out), optional:: err
404 
405 
406  type(gt_history), pointer:: gthist =>null()
407  ! gtool_history モジュール用構造体.
408  ! Derived type for "gtool_history" module
409 
410  real(DP), pointer:: array_slice(:) =>null()
411  type(slice_info), pointer:: sv =>null()
412  real(DP), pointer:: array_avr(:) =>null()
413 
414  real(DP):: settime
415  integer:: stat, i
416  integer:: vnum
417  character(STRING):: cause_c
418  integer, save:: svnum = 1, svtstep
419  character(*), parameter:: subname = "HistoryAutoPutDouble1"
420  continue
421  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
422  stat = dc_noerr
423  cause_c = ""
424 
425  ! 初期設定チェック
426  ! Check initialization
427  !
428  if ( .not. initialized ) then
429  stat = dc_enotinit
430  cause_c = 'gtool_historyauto'
431  goto 999
432  end if
433 
434  ! 時刻に関するエラー処理
435  ! Error handling for time
436  !
437  if ( time < zero_time ) then
438  cause_c = tochar( time )
439  call messagenotify( 'W', subname, &
440  & '"time=<%c>" must be positive value (varname=<%c>).', &
441  & c1 = trim( cause_c ), c2 = trim( varname ) )
442  stat = dc_enegative
443  cause_c = 'time'
444  goto 999
445  end if
446 
447  ! 変数 ID のサーチ
448  ! Search variable ID
449  !
450  varsearch: do
451  do i = svnum, numvars
452  if ( trim( varname_vars(i) ) == trim(varname) ) then
453  vnum = i
454  exit varsearch
455  end if
456  end do
457  do i = 1, svnum - 1
458  if ( trim( varname_vars(i) ) == trim(varname) ) then
459  vnum = i
460  exit varsearch
461  end if
462  end do
463 
464  stat = hst_ebadvarname
465  cause_c = varname
466  goto 999
467  end do varsearch
468 
469  svnum = vnum
470 
471  ! 定義モードからデータモードへ
472  ! Transit from define mode to data mode
473  !
474  if ( hstnmlinfodefinemode( gthstnml ) ) then
475  call hstnmlinfoenddefine( gthstnml ) ! (inout)
476  end if
477 
478  ! 出力タイミングのチェックとファイルの作成
479  ! Check output timing and create files
480  !
481  call hstvarsoutputcheck( &
482  & time = time, & ! (in)
483  & stime_index = svtstep ) ! (out)
484 
485  ! ファイルのオープン・クローズ・再オープン
486  ! Open, close, reopen files
487  !
488  if ( create_timing_vars(vnum, svtstep) &
489  & .and. .not. histaddvar_vars(vnum) ) then
490  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
491  & varname_vars(vnum), time ) ! (in)
492  histaddvar_vars(vnum) = .true.
493  if ( flag_output_prev_vars(vnum) ) then
494  prev_outtime_vars(vnum) = time
495  else
496  flag_output_prev_vars(vnum) = .true.
497  if ( origin_time_vars(vnum) > zero_time ) then
498  prev_outtime_vars(vnum) = origin_time_vars(vnum)
499  else
500  prev_outtime_vars(vnum) = time
501  end if
502  end if
503  end if
504 
505  if ( close_timing_vars(vnum, svtstep) ) then
506  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
507  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
508  end if
509  end if
510 
511  if ( renew_timing_vars(vnum, svtstep) ) then
512  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
513  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
514  end if
515  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
516  & varname_vars(vnum), time ) ! (in)
517  newfile_createtime_vars(vnum) = time
518  prev_outtime_vars(vnum) = time
519  end if
520 
521  ! 出力が有効かどうかを確認する
522  ! Confirm whether the output is effective
523  !
524  if ( .not. output_timing_vars(vnum, svtstep) &
525  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
526 
527  goto 999
528  end if
529 
530  ! GT_HISTORY 変数の取得
531  ! Get "GT_HISTORY" variable
532  !
533  gthist => gthst_history_vars(vnum) % gthist
534 
535 
536  ! 空間切り出し
537  ! Slice of spaces
538  !
539  sv => slice_vars(vnum)
540 
541  !!$ write(*,*) ' sv%st(1), sv%ed(1), sv%sd(1)=', sv%st(1), sv%ed(1), sv%sd(1)
542 
543 
544  array_slice => array(sv%st(1):sv%ed(1):sv%sd(1) &
545 
546  & )
547 
548 
549 
550  ! 空間平均
551  ! Spatial average
552  !
553  if ( count(space_avr_vars(vnum) % avr) == 0 ) then
554  array_avr => array_slice
555  else
556  call averagereduce( &
557  & array_slice, space_avr_vars(vnum) % avr, & ! (in)
558  & weight_vars(vnum) % wgt1( sv%st(1):sv%ed(1):sv%sd(1) ) , & ! (in)
559 
560  & array_avr ) ! (out)
561  end if
562 
563  ! 座標重みを取得 ; Get weights of axes
564 
565 
566 
567  ! 単位に応じて時刻を変換
568  ! Convert time according to units
569  !
570  if ( output_timing_vars(vnum, svtstep) &
571  & .or. output_timing_avr_vars(vnum, svtstep) ) then
572 
573  settime = &
574  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
575  end if
576 
577  ! 時刻設定
578  ! Set time
579  !
580  if ( output_timing_vars(vnum, svtstep) ) then
581  call historysettime( &
582  & history = gthist, & ! (in) optional
583  & timed = settime ) ! (in) optional
584  end if
585 
586  ! 出力
587  ! OutPut
588  !
589  if ( output_timing_avr_vars(vnum, svtstep) ) then
590  call historyput( &
591  & varname, & ! (in)
592  & array_avr, & ! (in)
593 
594  & timed = settime, & ! (in) optional
595  & time_average_store = &
596  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
597  & history = gthist ) ! (inout) optional
598  else
599  call historyput( &
600  & varname, & ! (in)
601  & array_avr, & ! (in)
602 
603  & history = gthist ) ! (inout) optional
604  end if
605 
606  ! 最後に出力した時刻を保存
607  ! Save last time of output
608  !
609  if ( output_timing_vars(vnum, svtstep) ) then
610  if ( .not. create_timing_vars(vnum, svtstep) .and. &
611  & .not. renew_timing_vars(vnum, svtstep) ) then
612 
613  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
614  prev_outtime_vars(vnum) = time
615  else
616  prev_outtime_vars(vnum) = &
617  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
618  end if
619  end if
620  end if
621 
622  ! 結合解除
623  ! Release associations
624  !
625  nullify( gthist )
626  nullify( array_avr, array_slice )
627 
628 
629 999 continue
630  call storeerror(stat, subname, cause_c = cause_c, err = err)
631  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputdouble2()

subroutine historyautoputdouble2 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
real(dp), dimension(:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 639 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

639  !
640 
641  !
642 
644  & numvars, gthstnml, zero_time, &
653  & averagereduce
660  use dc_string, only: tochar
661  use dc_message, only: messagenotify
662  use dc_trace, only: beginsub, endsub
665  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
666  use dc_date_generic, only: operator(-), operator(+), &
667  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
670  use dc_types, only: dp, string, token
671  implicit none
672  real(DP), intent(in):: time
673 
674  character(*), intent(in):: varname
675 
676  real(DP), intent(in), target:: array(:,:)
677 
678  logical, intent(out), optional:: err
679 
680 
681  type(gt_history), pointer:: gthist =>null()
682  ! gtool_history モジュール用構造体.
683  ! Derived type for "gtool_history" module
684 
685  real(DP), pointer:: array_slice(:,:) =>null()
686  type(slice_info), pointer:: sv =>null()
687  real(DP), pointer:: array_avr(:,:) =>null()
688 
689  real(DP):: settime
690  integer:: stat, i
691  integer:: vnum
692  character(STRING):: cause_c
693  integer, save:: svnum = 1, svtstep
694  character(*), parameter:: subname = "HistoryAutoPutDouble2"
695  continue
696  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
697  stat = dc_noerr
698  cause_c = ""
699 
700  ! 初期設定チェック
701  ! Check initialization
702  !
703  if ( .not. initialized ) then
704  stat = dc_enotinit
705  cause_c = 'gtool_historyauto'
706  goto 999
707  end if
708 
709  ! 時刻に関するエラー処理
710  ! Error handling for time
711  !
712  if ( time < zero_time ) then
713  cause_c = tochar( time )
714  call messagenotify( 'W', subname, &
715  & '"time=<%c>" must be positive value (varname=<%c>).', &
716  & c1 = trim( cause_c ), c2 = trim( varname ) )
717  stat = dc_enegative
718  cause_c = 'time'
719  goto 999
720  end if
721 
722  ! 変数 ID のサーチ
723  ! Search variable ID
724  !
725  varsearch: do
726  do i = svnum, numvars
727  if ( trim( varname_vars(i) ) == trim(varname) ) then
728  vnum = i
729  exit varsearch
730  end if
731  end do
732  do i = 1, svnum - 1
733  if ( trim( varname_vars(i) ) == trim(varname) ) then
734  vnum = i
735  exit varsearch
736  end if
737  end do
738 
739  stat = hst_ebadvarname
740  cause_c = varname
741  goto 999
742  end do varsearch
743 
744  svnum = vnum
745 
746  ! 定義モードからデータモードへ
747  ! Transit from define mode to data mode
748  !
749  if ( hstnmlinfodefinemode( gthstnml ) ) then
750  call hstnmlinfoenddefine( gthstnml ) ! (inout)
751  end if
752 
753  ! 出力タイミングのチェックとファイルの作成
754  ! Check output timing and create files
755  !
756  call hstvarsoutputcheck( &
757  & time = time, & ! (in)
758  & stime_index = svtstep ) ! (out)
759 
760  ! ファイルのオープン・クローズ・再オープン
761  ! Open, close, reopen files
762  !
763  if ( create_timing_vars(vnum, svtstep) &
764  & .and. .not. histaddvar_vars(vnum) ) then
765  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
766  & varname_vars(vnum), time ) ! (in)
767  histaddvar_vars(vnum) = .true.
768  if ( flag_output_prev_vars(vnum) ) then
769  prev_outtime_vars(vnum) = time
770  else
771  flag_output_prev_vars(vnum) = .true.
772  if ( origin_time_vars(vnum) > zero_time ) then
773  prev_outtime_vars(vnum) = origin_time_vars(vnum)
774  else
775  prev_outtime_vars(vnum) = time
776  end if
777  end if
778  end if
779 
780  if ( close_timing_vars(vnum, svtstep) ) then
781  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
782  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
783  end if
784  end if
785 
786  if ( renew_timing_vars(vnum, svtstep) ) then
787  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
788  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
789  end if
790  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
791  & varname_vars(vnum), time ) ! (in)
792  newfile_createtime_vars(vnum) = time
793  prev_outtime_vars(vnum) = time
794  end if
795 
796  ! 出力が有効かどうかを確認する
797  ! Confirm whether the output is effective
798  !
799  if ( .not. output_timing_vars(vnum, svtstep) &
800  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
801 
802  goto 999
803  end if
804 
805  ! GT_HISTORY 変数の取得
806  ! Get "GT_HISTORY" variable
807  !
808  gthist => gthst_history_vars(vnum) % gthist
809 
810 
811  ! 空間切り出し
812  ! Slice of spaces
813  !
814  sv => slice_vars(vnum)
815 
816  !!$ write(*,*) ' sv%st(1), sv%ed(1), sv%sd(1)=', sv%st(1), sv%ed(1), sv%sd(1)
817 
818 !!$ write(*,*) ' sv%st(2), sv%ed(2), sv%sd(2)=', sv%st(2), sv%ed(2), sv%sd(2)
819 
820 
821  array_slice => array(sv%st(1):sv%ed(1):sv%sd(1) &
822  & , sv%st(2):sv%ed(2):sv%sd(2) &
823 
824  & )
825 
826 
827 
828  ! 空間平均
829  ! Spatial average
830  !
831  if ( count(space_avr_vars(vnum) % avr) == 0 ) then
832  array_avr => array_slice
833  else
834  call averagereduce( &
835  & array_slice, space_avr_vars(vnum) % avr, & ! (in)
836  & weight_vars(vnum) % wgt1( sv%st(1):sv%ed(1):sv%sd(1) ) , & ! (in)
837 
838  & weight_vars(vnum) % wgt2( sv%st(2):sv%ed(2):sv%sd(2) ) , & ! (in)
839 
840  & array_avr ) ! (out)
841  end if
842 
843  ! 座標重みを取得 ; Get weights of axes
844 
845 
846 
847  ! 単位に応じて時刻を変換
848  ! Convert time according to units
849  !
850  if ( output_timing_vars(vnum, svtstep) &
851  & .or. output_timing_avr_vars(vnum, svtstep) ) then
852 
853  settime = &
854  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
855  end if
856 
857  ! 時刻設定
858  ! Set time
859  !
860  if ( output_timing_vars(vnum, svtstep) ) then
861  call historysettime( &
862  & history = gthist, & ! (in) optional
863  & timed = settime ) ! (in) optional
864  end if
865 
866  ! 出力
867  ! OutPut
868  !
869  if ( output_timing_avr_vars(vnum, svtstep) ) then
870  call historyput( &
871  & varname, & ! (in)
872  & array_avr, & ! (in)
873 
874  & timed = settime, & ! (in) optional
875  & time_average_store = &
876  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
877  & history = gthist ) ! (inout) optional
878  else
879  call historyput( &
880  & varname, & ! (in)
881  & array_avr, & ! (in)
882 
883  & history = gthist ) ! (inout) optional
884  end if
885 
886  ! 最後に出力した時刻を保存
887  ! Save last time of output
888  !
889  if ( output_timing_vars(vnum, svtstep) ) then
890  if ( .not. create_timing_vars(vnum, svtstep) .and. &
891  & .not. renew_timing_vars(vnum, svtstep) ) then
892 
893  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
894  prev_outtime_vars(vnum) = time
895  else
896  prev_outtime_vars(vnum) = &
897  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
898  end if
899  end if
900  end if
901 
902  ! 結合解除
903  ! Release associations
904  !
905  nullify( gthist )
906  nullify( array_avr, array_slice )
907 
908 
909 999 continue
910  call storeerror(stat, subname, cause_c = cause_c, err = err)
911  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputdouble3()

subroutine historyautoputdouble3 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
real(dp), dimension(:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 919 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

919  !
920 
921  !
922 
924  & numvars, gthstnml, zero_time, &
933  & averagereduce
940  use dc_string, only: tochar
941  use dc_message, only: messagenotify
942  use dc_trace, only: beginsub, endsub
945  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
946  use dc_date_generic, only: operator(-), operator(+), &
947  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
950  use dc_types, only: dp, string, token
951  implicit none
952  real(DP), intent(in):: time
953 
954  character(*), intent(in):: varname
955 
956  real(DP), intent(in), target:: array(:,:,:)
957 
958  logical, intent(out), optional:: err
959 
960 
961  type(gt_history), pointer:: gthist =>null()
962  ! gtool_history モジュール用構造体.
963  ! Derived type for "gtool_history" module
964 
965  real(DP), pointer:: array_slice(:,:,:) =>null()
966  type(slice_info), pointer:: sv =>null()
967  real(DP), pointer:: array_avr(:,:,:) =>null()
968 
969  real(DP):: settime
970  integer:: stat, i
971  integer:: vnum
972  character(STRING):: cause_c
973  integer, save:: svnum = 1, svtstep
974  character(*), parameter:: subname = "HistoryAutoPutDouble3"
975  continue
976  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
977  stat = dc_noerr
978  cause_c = ""
979 
980  ! 初期設定チェック
981  ! Check initialization
982  !
983  if ( .not. initialized ) then
984  stat = dc_enotinit
985  cause_c = 'gtool_historyauto'
986  goto 999
987  end if
988 
989  ! 時刻に関するエラー処理
990  ! Error handling for time
991  !
992  if ( time < zero_time ) then
993  cause_c = tochar( time )
994  call messagenotify( 'W', subname, &
995  & '"time=<%c>" must be positive value (varname=<%c>).', &
996  & c1 = trim( cause_c ), c2 = trim( varname ) )
997  stat = dc_enegative
998  cause_c = 'time'
999  goto 999
1000  end if
1001 
1002  ! 変数 ID のサーチ
1003  ! Search variable ID
1004  !
1005  varsearch: do
1006  do i = svnum, numvars
1007  if ( trim( varname_vars(i) ) == trim(varname) ) then
1008  vnum = i
1009  exit varsearch
1010  end if
1011  end do
1012  do i = 1, svnum - 1
1013  if ( trim( varname_vars(i) ) == trim(varname) ) then
1014  vnum = i
1015  exit varsearch
1016  end if
1017  end do
1018 
1019  stat = hst_ebadvarname
1020  cause_c = varname
1021  goto 999
1022  end do varsearch
1023 
1024  svnum = vnum
1025 
1026  ! 定義モードからデータモードへ
1027  ! Transit from define mode to data mode
1028  !
1029  if ( hstnmlinfodefinemode( gthstnml ) ) then
1030  call hstnmlinfoenddefine( gthstnml ) ! (inout)
1031  end if
1032 
1033  ! 出力タイミングのチェックとファイルの作成
1034  ! Check output timing and create files
1035  !
1036  call hstvarsoutputcheck( &
1037  & time = time, & ! (in)
1038  & stime_index = svtstep ) ! (out)
1039 
1040  ! ファイルのオープン・クローズ・再オープン
1041  ! Open, close, reopen files
1042  !
1043  if ( create_timing_vars(vnum, svtstep) &
1044  & .and. .not. histaddvar_vars(vnum) ) then
1045  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
1046  & varname_vars(vnum), time ) ! (in)
1047  histaddvar_vars(vnum) = .true.
1048  if ( flag_output_prev_vars(vnum) ) then
1049  prev_outtime_vars(vnum) = time
1050  else
1051  flag_output_prev_vars(vnum) = .true.
1052  if ( origin_time_vars(vnum) > zero_time ) then
1053  prev_outtime_vars(vnum) = origin_time_vars(vnum)
1054  else
1055  prev_outtime_vars(vnum) = time
1056  end if
1057  end if
1058  end if
1059 
1060  if ( close_timing_vars(vnum, svtstep) ) then
1061  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
1062  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
1063  end if
1064  end if
1065 
1066  if ( renew_timing_vars(vnum, svtstep) ) then
1067  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
1068  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
1069  end if
1070  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
1071  & varname_vars(vnum), time ) ! (in)
1072  newfile_createtime_vars(vnum) = time
1073  prev_outtime_vars(vnum) = time
1074  end if
1075 
1076  ! 出力が有効かどうかを確認する
1077  ! Confirm whether the output is effective
1078  !
1079  if ( .not. output_timing_vars(vnum, svtstep) &
1080  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
1081 
1082  goto 999
1083  end if
1084 
1085  ! GT_HISTORY 変数の取得
1086  ! Get "GT_HISTORY" variable
1087  !
1088  gthist => gthst_history_vars(vnum) % gthist
1089 
1090 
1091  ! 空間切り出し
1092  ! Slice of spaces
1093  !
1094  sv => slice_vars(vnum)
1095 
1096  !!$ write(*,*) ' sv%st(1), sv%ed(1), sv%sd(1)=', sv%st(1), sv%ed(1), sv%sd(1)
1097 
1098 !!$ write(*,*) ' sv%st(2), sv%ed(2), sv%sd(2)=', sv%st(2), sv%ed(2), sv%sd(2)
1099 
1100 !!$ write(*,*) ' sv%st(3), sv%ed(3), sv%sd(3)=', sv%st(3), sv%ed(3), sv%sd(3)
1101 
1102 
1103  array_slice => array(sv%st(1):sv%ed(1):sv%sd(1) &
1104  & , sv%st(2):sv%ed(2):sv%sd(2) &
1105 
1106  & , sv%st(3):sv%ed(3):sv%sd(3) &
1107 
1108  & )
1109 
1110 
1111 
1112  ! 空間平均
1113  ! Spatial average
1114  !
1115  if ( count(space_avr_vars(vnum) % avr) == 0 ) then
1116  array_avr => array_slice
1117  else
1118  call averagereduce( &
1119  & array_slice, space_avr_vars(vnum) % avr, & ! (in)
1120  & weight_vars(vnum) % wgt1( sv%st(1):sv%ed(1):sv%sd(1) ) , & ! (in)
1121 
1122  & weight_vars(vnum) % wgt2( sv%st(2):sv%ed(2):sv%sd(2) ) , & ! (in)
1123 
1124  & weight_vars(vnum) % wgt3( sv%st(3):sv%ed(3):sv%sd(3) ) , & ! (in)
1125 
1126  & array_avr ) ! (out)
1127  end if
1128 
1129  ! 座標重みを取得 ; Get weights of axes
1130 
1131 
1132 
1133  ! 単位に応じて時刻を変換
1134  ! Convert time according to units
1135  !
1136  if ( output_timing_vars(vnum, svtstep) &
1137  & .or. output_timing_avr_vars(vnum, svtstep) ) then
1138 
1139  settime = &
1140  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
1141  end if
1142 
1143  ! 時刻設定
1144  ! Set time
1145  !
1146  if ( output_timing_vars(vnum, svtstep) ) then
1147  call historysettime( &
1148  & history = gthist, & ! (in) optional
1149  & timed = settime ) ! (in) optional
1150  end if
1151 
1152  ! 出力
1153  ! OutPut
1154  !
1155  if ( output_timing_avr_vars(vnum, svtstep) ) then
1156  call historyput( &
1157  & varname, & ! (in)
1158  & array_avr, & ! (in)
1159 
1160  & timed = settime, & ! (in) optional
1161  & time_average_store = &
1162  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
1163  & history = gthist ) ! (inout) optional
1164  else
1165  call historyput( &
1166  & varname, & ! (in)
1167  & array_avr, & ! (in)
1168 
1169  & history = gthist ) ! (inout) optional
1170  end if
1171 
1172  ! 最後に出力した時刻を保存
1173  ! Save last time of output
1174  !
1175  if ( output_timing_vars(vnum, svtstep) ) then
1176  if ( .not. create_timing_vars(vnum, svtstep) .and. &
1177  & .not. renew_timing_vars(vnum, svtstep) ) then
1178 
1179  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
1180  prev_outtime_vars(vnum) = time
1181  else
1182  prev_outtime_vars(vnum) = &
1183  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
1184  end if
1185  end if
1186  end if
1187 
1188  ! 結合解除
1189  ! Release associations
1190  !
1191  nullify( gthist )
1192  nullify( array_avr, array_slice )
1193 
1194 
1195 999 continue
1196  call storeerror(stat, subname, cause_c = cause_c, err = err)
1197  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputdouble4()

subroutine historyautoputdouble4 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
real(dp), dimension(:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 1205 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

1205  !
1206 
1207  !
1208 
1210  & numvars, gthstnml, zero_time, &
1219  & averagereduce
1226  use dc_string, only: tochar
1227  use dc_message, only: messagenotify
1228  use dc_trace, only: beginsub, endsub
1231  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
1232  use dc_date_generic, only: operator(-), operator(+), &
1233  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
1236  use dc_types, only: dp, string, token
1237  implicit none
1238  real(DP), intent(in):: time
1239 
1240  character(*), intent(in):: varname
1241 
1242  real(DP), intent(in), target:: array(:,:,:,:)
1243 
1244  logical, intent(out), optional:: err
1245 
1246 
1247  type(gt_history), pointer:: gthist =>null()
1248  ! gtool_history モジュール用構造体.
1249  ! Derived type for "gtool_history" module
1250 
1251  real(DP), pointer:: array_slice(:,:,:,:) =>null()
1252  type(slice_info), pointer:: sv =>null()
1253  real(DP), pointer:: array_avr(:,:,:,:) =>null()
1254 
1255  real(DP):: settime
1256  integer:: stat, i
1257  integer:: vnum
1258  character(STRING):: cause_c
1259  integer, save:: svnum = 1, svtstep
1260  character(*), parameter:: subname = "HistoryAutoPutDouble4"
1261  continue
1262  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
1263  stat = dc_noerr
1264  cause_c = ""
1265 
1266  ! 初期設定チェック
1267  ! Check initialization
1268  !
1269  if ( .not. initialized ) then
1270  stat = dc_enotinit
1271  cause_c = 'gtool_historyauto'
1272  goto 999
1273  end if
1274 
1275  ! 時刻に関するエラー処理
1276  ! Error handling for time
1277  !
1278  if ( time < zero_time ) then
1279  cause_c = tochar( time )
1280  call messagenotify( 'W', subname, &
1281  & '"time=<%c>" must be positive value (varname=<%c>).', &
1282  & c1 = trim( cause_c ), c2 = trim( varname ) )
1283  stat = dc_enegative
1284  cause_c = 'time'
1285  goto 999
1286  end if
1287 
1288  ! 変数 ID のサーチ
1289  ! Search variable ID
1290  !
1291  varsearch: do
1292  do i = svnum, numvars
1293  if ( trim( varname_vars(i) ) == trim(varname) ) then
1294  vnum = i
1295  exit varsearch
1296  end if
1297  end do
1298  do i = 1, svnum - 1
1299  if ( trim( varname_vars(i) ) == trim(varname) ) then
1300  vnum = i
1301  exit varsearch
1302  end if
1303  end do
1304 
1305  stat = hst_ebadvarname
1306  cause_c = varname
1307  goto 999
1308  end do varsearch
1309 
1310  svnum = vnum
1311 
1312  ! 定義モードからデータモードへ
1313  ! Transit from define mode to data mode
1314  !
1315  if ( hstnmlinfodefinemode( gthstnml ) ) then
1316  call hstnmlinfoenddefine( gthstnml ) ! (inout)
1317  end if
1318 
1319  ! 出力タイミングのチェックとファイルの作成
1320  ! Check output timing and create files
1321  !
1322  call hstvarsoutputcheck( &
1323  & time = time, & ! (in)
1324  & stime_index = svtstep ) ! (out)
1325 
1326  ! ファイルのオープン・クローズ・再オープン
1327  ! Open, close, reopen files
1328  !
1329  if ( create_timing_vars(vnum, svtstep) &
1330  & .and. .not. histaddvar_vars(vnum) ) then
1331  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
1332  & varname_vars(vnum), time ) ! (in)
1333  histaddvar_vars(vnum) = .true.
1334  if ( flag_output_prev_vars(vnum) ) then
1335  prev_outtime_vars(vnum) = time
1336  else
1337  flag_output_prev_vars(vnum) = .true.
1338  if ( origin_time_vars(vnum) > zero_time ) then
1339  prev_outtime_vars(vnum) = origin_time_vars(vnum)
1340  else
1341  prev_outtime_vars(vnum) = time
1342  end if
1343  end if
1344  end if
1345 
1346  if ( close_timing_vars(vnum, svtstep) ) then
1347  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
1348  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
1349  end if
1350  end if
1351 
1352  if ( renew_timing_vars(vnum, svtstep) ) then
1353  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
1354  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
1355  end if
1356  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
1357  & varname_vars(vnum), time ) ! (in)
1358  newfile_createtime_vars(vnum) = time
1359  prev_outtime_vars(vnum) = time
1360  end if
1361 
1362  ! 出力が有効かどうかを確認する
1363  ! Confirm whether the output is effective
1364  !
1365  if ( .not. output_timing_vars(vnum, svtstep) &
1366  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
1367 
1368  goto 999
1369  end if
1370 
1371  ! GT_HISTORY 変数の取得
1372  ! Get "GT_HISTORY" variable
1373  !
1374  gthist => gthst_history_vars(vnum) % gthist
1375 
1376 
1377  ! 空間切り出し
1378  ! Slice of spaces
1379  !
1380  sv => slice_vars(vnum)
1381 
1382  !!$ write(*,*) ' sv%st(1), sv%ed(1), sv%sd(1)=', sv%st(1), sv%ed(1), sv%sd(1)
1383 
1384 !!$ write(*,*) ' sv%st(2), sv%ed(2), sv%sd(2)=', sv%st(2), sv%ed(2), sv%sd(2)
1385 
1386 !!$ write(*,*) ' sv%st(3), sv%ed(3), sv%sd(3)=', sv%st(3), sv%ed(3), sv%sd(3)
1387 
1388 !!$ write(*,*) ' sv%st(4), sv%ed(4), sv%sd(4)=', sv%st(4), sv%ed(4), sv%sd(4)
1389 
1390 
1391  array_slice => array(sv%st(1):sv%ed(1):sv%sd(1) &
1392  & , sv%st(2):sv%ed(2):sv%sd(2) &
1393 
1394  & , sv%st(3):sv%ed(3):sv%sd(3) &
1395 
1396  & , sv%st(4):sv%ed(4):sv%sd(4) &
1397 
1398  & )
1399 
1400 
1401 
1402  ! 空間平均
1403  ! Spatial average
1404  !
1405  if ( count(space_avr_vars(vnum) % avr) == 0 ) then
1406  array_avr => array_slice
1407  else
1408  call averagereduce( &
1409  & array_slice, space_avr_vars(vnum) % avr, & ! (in)
1410  & weight_vars(vnum) % wgt1( sv%st(1):sv%ed(1):sv%sd(1) ) , & ! (in)
1411 
1412  & weight_vars(vnum) % wgt2( sv%st(2):sv%ed(2):sv%sd(2) ) , & ! (in)
1413 
1414  & weight_vars(vnum) % wgt3( sv%st(3):sv%ed(3):sv%sd(3) ) , & ! (in)
1415 
1416  & weight_vars(vnum) % wgt4( sv%st(4):sv%ed(4):sv%sd(4) ) , & ! (in)
1417 
1418  & array_avr ) ! (out)
1419  end if
1420 
1421  ! 座標重みを取得 ; Get weights of axes
1422 
1423 
1424 
1425  ! 単位に応じて時刻を変換
1426  ! Convert time according to units
1427  !
1428  if ( output_timing_vars(vnum, svtstep) &
1429  & .or. output_timing_avr_vars(vnum, svtstep) ) then
1430 
1431  settime = &
1432  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
1433  end if
1434 
1435  ! 時刻設定
1436  ! Set time
1437  !
1438  if ( output_timing_vars(vnum, svtstep) ) then
1439  call historysettime( &
1440  & history = gthist, & ! (in) optional
1441  & timed = settime ) ! (in) optional
1442  end if
1443 
1444  ! 出力
1445  ! OutPut
1446  !
1447  if ( output_timing_avr_vars(vnum, svtstep) ) then
1448  call historyput( &
1449  & varname, & ! (in)
1450  & array_avr, & ! (in)
1451 
1452  & timed = settime, & ! (in) optional
1453  & time_average_store = &
1454  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
1455  & history = gthist ) ! (inout) optional
1456  else
1457  call historyput( &
1458  & varname, & ! (in)
1459  & array_avr, & ! (in)
1460 
1461  & history = gthist ) ! (inout) optional
1462  end if
1463 
1464  ! 最後に出力した時刻を保存
1465  ! Save last time of output
1466  !
1467  if ( output_timing_vars(vnum, svtstep) ) then
1468  if ( .not. create_timing_vars(vnum, svtstep) .and. &
1469  & .not. renew_timing_vars(vnum, svtstep) ) then
1470 
1471  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
1472  prev_outtime_vars(vnum) = time
1473  else
1474  prev_outtime_vars(vnum) = &
1475  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
1476  end if
1477  end if
1478  end if
1479 
1480  ! 結合解除
1481  ! Release associations
1482  !
1483  nullify( gthist )
1484  nullify( array_avr, array_slice )
1485 
1486 
1487 999 continue
1488  call storeerror(stat, subname, cause_c = cause_c, err = err)
1489  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputdouble5()

subroutine historyautoputdouble5 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
real(dp), dimension(:,:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 1497 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

1497  !
1498 
1499  !
1500 
1502  & numvars, gthstnml, zero_time, &
1511  & averagereduce
1518  use dc_string, only: tochar
1519  use dc_message, only: messagenotify
1520  use dc_trace, only: beginsub, endsub
1523  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
1524  use dc_date_generic, only: operator(-), operator(+), &
1525  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
1528  use dc_types, only: dp, string, token
1529  implicit none
1530  real(DP), intent(in):: time
1531 
1532  character(*), intent(in):: varname
1533 
1534  real(DP), intent(in), target:: array(:,:,:,:,:)
1535 
1536  logical, intent(out), optional:: err
1537 
1538 
1539  type(gt_history), pointer:: gthist =>null()
1540  ! gtool_history モジュール用構造体.
1541  ! Derived type for "gtool_history" module
1542 
1543  real(DP), pointer:: array_slice(:,:,:,:,:) =>null()
1544  type(slice_info), pointer:: sv =>null()
1545  real(DP), pointer:: array_avr(:,:,:,:,:) =>null()
1546 
1547  real(DP):: settime
1548  integer:: stat, i
1549  integer:: vnum
1550  character(STRING):: cause_c
1551  integer, save:: svnum = 1, svtstep
1552  character(*), parameter:: subname = "HistoryAutoPutDouble5"
1553  continue
1554  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
1555  stat = dc_noerr
1556  cause_c = ""
1557 
1558  ! 初期設定チェック
1559  ! Check initialization
1560  !
1561  if ( .not. initialized ) then
1562  stat = dc_enotinit
1563  cause_c = 'gtool_historyauto'
1564  goto 999
1565  end if
1566 
1567  ! 時刻に関するエラー処理
1568  ! Error handling for time
1569  !
1570  if ( time < zero_time ) then
1571  cause_c = tochar( time )
1572  call messagenotify( 'W', subname, &
1573  & '"time=<%c>" must be positive value (varname=<%c>).', &
1574  & c1 = trim( cause_c ), c2 = trim( varname ) )
1575  stat = dc_enegative
1576  cause_c = 'time'
1577  goto 999
1578  end if
1579 
1580  ! 変数 ID のサーチ
1581  ! Search variable ID
1582  !
1583  varsearch: do
1584  do i = svnum, numvars
1585  if ( trim( varname_vars(i) ) == trim(varname) ) then
1586  vnum = i
1587  exit varsearch
1588  end if
1589  end do
1590  do i = 1, svnum - 1
1591  if ( trim( varname_vars(i) ) == trim(varname) ) then
1592  vnum = i
1593  exit varsearch
1594  end if
1595  end do
1596 
1597  stat = hst_ebadvarname
1598  cause_c = varname
1599  goto 999
1600  end do varsearch
1601 
1602  svnum = vnum
1603 
1604  ! 定義モードからデータモードへ
1605  ! Transit from define mode to data mode
1606  !
1607  if ( hstnmlinfodefinemode( gthstnml ) ) then
1608  call hstnmlinfoenddefine( gthstnml ) ! (inout)
1609  end if
1610 
1611  ! 出力タイミングのチェックとファイルの作成
1612  ! Check output timing and create files
1613  !
1614  call hstvarsoutputcheck( &
1615  & time = time, & ! (in)
1616  & stime_index = svtstep ) ! (out)
1617 
1618  ! ファイルのオープン・クローズ・再オープン
1619  ! Open, close, reopen files
1620  !
1621  if ( create_timing_vars(vnum, svtstep) &
1622  & .and. .not. histaddvar_vars(vnum) ) then
1623  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
1624  & varname_vars(vnum), time ) ! (in)
1625  histaddvar_vars(vnum) = .true.
1626  if ( flag_output_prev_vars(vnum) ) then
1627  prev_outtime_vars(vnum) = time
1628  else
1629  flag_output_prev_vars(vnum) = .true.
1630  if ( origin_time_vars(vnum) > zero_time ) then
1631  prev_outtime_vars(vnum) = origin_time_vars(vnum)
1632  else
1633  prev_outtime_vars(vnum) = time
1634  end if
1635  end if
1636  end if
1637 
1638  if ( close_timing_vars(vnum, svtstep) ) then
1639  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
1640  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
1641  end if
1642  end if
1643 
1644  if ( renew_timing_vars(vnum, svtstep) ) then
1645  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
1646  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
1647  end if
1648  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
1649  & varname_vars(vnum), time ) ! (in)
1650  newfile_createtime_vars(vnum) = time
1651  prev_outtime_vars(vnum) = time
1652  end if
1653 
1654  ! 出力が有効かどうかを確認する
1655  ! Confirm whether the output is effective
1656  !
1657  if ( .not. output_timing_vars(vnum, svtstep) &
1658  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
1659 
1660  goto 999
1661  end if
1662 
1663  ! GT_HISTORY 変数の取得
1664  ! Get "GT_HISTORY" variable
1665  !
1666  gthist => gthst_history_vars(vnum) % gthist
1667 
1668 
1669  ! 空間切り出し
1670  ! Slice of spaces
1671  !
1672  sv => slice_vars(vnum)
1673 
1674  !!$ write(*,*) ' sv%st(1), sv%ed(1), sv%sd(1)=', sv%st(1), sv%ed(1), sv%sd(1)
1675 
1676 !!$ write(*,*) ' sv%st(2), sv%ed(2), sv%sd(2)=', sv%st(2), sv%ed(2), sv%sd(2)
1677 
1678 !!$ write(*,*) ' sv%st(3), sv%ed(3), sv%sd(3)=', sv%st(3), sv%ed(3), sv%sd(3)
1679 
1680 !!$ write(*,*) ' sv%st(4), sv%ed(4), sv%sd(4)=', sv%st(4), sv%ed(4), sv%sd(4)
1681 
1682 !!$ write(*,*) ' sv%st(5), sv%ed(5), sv%sd(5)=', sv%st(5), sv%ed(5), sv%sd(5)
1683 
1684 
1685  array_slice => array(sv%st(1):sv%ed(1):sv%sd(1) &
1686  & , sv%st(2):sv%ed(2):sv%sd(2) &
1687 
1688  & , sv%st(3):sv%ed(3):sv%sd(3) &
1689 
1690  & , sv%st(4):sv%ed(4):sv%sd(4) &
1691 
1692  & , sv%st(5):sv%ed(5):sv%sd(5) &
1693 
1694  & )
1695 
1696 
1697 
1698  ! 空間平均
1699  ! Spatial average
1700  !
1701  if ( count(space_avr_vars(vnum) % avr) == 0 ) then
1702  array_avr => array_slice
1703  else
1704  call averagereduce( &
1705  & array_slice, space_avr_vars(vnum) % avr, & ! (in)
1706  & weight_vars(vnum) % wgt1( sv%st(1):sv%ed(1):sv%sd(1) ) , & ! (in)
1707 
1708  & weight_vars(vnum) % wgt2( sv%st(2):sv%ed(2):sv%sd(2) ) , & ! (in)
1709 
1710  & weight_vars(vnum) % wgt3( sv%st(3):sv%ed(3):sv%sd(3) ) , & ! (in)
1711 
1712  & weight_vars(vnum) % wgt4( sv%st(4):sv%ed(4):sv%sd(4) ) , & ! (in)
1713 
1714  & weight_vars(vnum) % wgt5( sv%st(5):sv%ed(5):sv%sd(5) ) , & ! (in)
1715 
1716  & array_avr ) ! (out)
1717  end if
1718 
1719  ! 座標重みを取得 ; Get weights of axes
1720 
1721 
1722 
1723  ! 単位に応じて時刻を変換
1724  ! Convert time according to units
1725  !
1726  if ( output_timing_vars(vnum, svtstep) &
1727  & .or. output_timing_avr_vars(vnum, svtstep) ) then
1728 
1729  settime = &
1730  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
1731  end if
1732 
1733  ! 時刻設定
1734  ! Set time
1735  !
1736  if ( output_timing_vars(vnum, svtstep) ) then
1737  call historysettime( &
1738  & history = gthist, & ! (in) optional
1739  & timed = settime ) ! (in) optional
1740  end if
1741 
1742  ! 出力
1743  ! OutPut
1744  !
1745  if ( output_timing_avr_vars(vnum, svtstep) ) then
1746  call historyput( &
1747  & varname, & ! (in)
1748  & array_avr, & ! (in)
1749 
1750  & timed = settime, & ! (in) optional
1751  & time_average_store = &
1752  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
1753  & history = gthist ) ! (inout) optional
1754  else
1755  call historyput( &
1756  & varname, & ! (in)
1757  & array_avr, & ! (in)
1758 
1759  & history = gthist ) ! (inout) optional
1760  end if
1761 
1762  ! 最後に出力した時刻を保存
1763  ! Save last time of output
1764  !
1765  if ( output_timing_vars(vnum, svtstep) ) then
1766  if ( .not. create_timing_vars(vnum, svtstep) .and. &
1767  & .not. renew_timing_vars(vnum, svtstep) ) then
1768 
1769  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
1770  prev_outtime_vars(vnum) = time
1771  else
1772  prev_outtime_vars(vnum) = &
1773  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
1774  end if
1775  end if
1776  end if
1777 
1778  ! 結合解除
1779  ! Release associations
1780  !
1781  nullify( gthist )
1782  nullify( array_avr, array_slice )
1783 
1784 
1785 999 continue
1786  call storeerror(stat, subname, cause_c = cause_c, err = err)
1787  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputdouble6()

subroutine historyautoputdouble6 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
real(dp), dimension(:,:,:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 1795 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

1795  !
1796 
1797  !
1798 
1800  & numvars, gthstnml, zero_time, &
1809  & averagereduce
1816  use dc_string, only: tochar
1817  use dc_message, only: messagenotify
1818  use dc_trace, only: beginsub, endsub
1821  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
1822  use dc_date_generic, only: operator(-), operator(+), &
1823  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
1826  use dc_types, only: dp, string, token
1827  implicit none
1828  real(DP), intent(in):: time
1829 
1830  character(*), intent(in):: varname
1831 
1832  real(DP), intent(in), target:: array(:,:,:,:,:,:)
1833 
1834  logical, intent(out), optional:: err
1835 
1836 
1837  type(gt_history), pointer:: gthist =>null()
1838  ! gtool_history モジュール用構造体.
1839  ! Derived type for "gtool_history" module
1840 
1841  real(DP), pointer:: array_slice(:,:,:,:,:,:) =>null()
1842  type(slice_info), pointer:: sv =>null()
1843  real(DP), pointer:: array_avr(:,:,:,:,:,:) =>null()
1844 
1845  real(DP):: settime
1846  integer:: stat, i
1847  integer:: vnum
1848  character(STRING):: cause_c
1849  integer, save:: svnum = 1, svtstep
1850  character(*), parameter:: subname = "HistoryAutoPutDouble6"
1851  continue
1852  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
1853  stat = dc_noerr
1854  cause_c = ""
1855 
1856  ! 初期設定チェック
1857  ! Check initialization
1858  !
1859  if ( .not. initialized ) then
1860  stat = dc_enotinit
1861  cause_c = 'gtool_historyauto'
1862  goto 999
1863  end if
1864 
1865  ! 時刻に関するエラー処理
1866  ! Error handling for time
1867  !
1868  if ( time < zero_time ) then
1869  cause_c = tochar( time )
1870  call messagenotify( 'W', subname, &
1871  & '"time=<%c>" must be positive value (varname=<%c>).', &
1872  & c1 = trim( cause_c ), c2 = trim( varname ) )
1873  stat = dc_enegative
1874  cause_c = 'time'
1875  goto 999
1876  end if
1877 
1878  ! 変数 ID のサーチ
1879  ! Search variable ID
1880  !
1881  varsearch: do
1882  do i = svnum, numvars
1883  if ( trim( varname_vars(i) ) == trim(varname) ) then
1884  vnum = i
1885  exit varsearch
1886  end if
1887  end do
1888  do i = 1, svnum - 1
1889  if ( trim( varname_vars(i) ) == trim(varname) ) then
1890  vnum = i
1891  exit varsearch
1892  end if
1893  end do
1894 
1895  stat = hst_ebadvarname
1896  cause_c = varname
1897  goto 999
1898  end do varsearch
1899 
1900  svnum = vnum
1901 
1902  ! 定義モードからデータモードへ
1903  ! Transit from define mode to data mode
1904  !
1905  if ( hstnmlinfodefinemode( gthstnml ) ) then
1906  call hstnmlinfoenddefine( gthstnml ) ! (inout)
1907  end if
1908 
1909  ! 出力タイミングのチェックとファイルの作成
1910  ! Check output timing and create files
1911  !
1912  call hstvarsoutputcheck( &
1913  & time = time, & ! (in)
1914  & stime_index = svtstep ) ! (out)
1915 
1916  ! ファイルのオープン・クローズ・再オープン
1917  ! Open, close, reopen files
1918  !
1919  if ( create_timing_vars(vnum, svtstep) &
1920  & .and. .not. histaddvar_vars(vnum) ) then
1921  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
1922  & varname_vars(vnum), time ) ! (in)
1923  histaddvar_vars(vnum) = .true.
1924  if ( flag_output_prev_vars(vnum) ) then
1925  prev_outtime_vars(vnum) = time
1926  else
1927  flag_output_prev_vars(vnum) = .true.
1928  if ( origin_time_vars(vnum) > zero_time ) then
1929  prev_outtime_vars(vnum) = origin_time_vars(vnum)
1930  else
1931  prev_outtime_vars(vnum) = time
1932  end if
1933  end if
1934  end if
1935 
1936  if ( close_timing_vars(vnum, svtstep) ) then
1937  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
1938  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
1939  end if
1940  end if
1941 
1942  if ( renew_timing_vars(vnum, svtstep) ) then
1943  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
1944  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
1945  end if
1946  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
1947  & varname_vars(vnum), time ) ! (in)
1948  newfile_createtime_vars(vnum) = time
1949  prev_outtime_vars(vnum) = time
1950  end if
1951 
1952  ! 出力が有効かどうかを確認する
1953  ! Confirm whether the output is effective
1954  !
1955  if ( .not. output_timing_vars(vnum, svtstep) &
1956  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
1957 
1958  goto 999
1959  end if
1960 
1961  ! GT_HISTORY 変数の取得
1962  ! Get "GT_HISTORY" variable
1963  !
1964  gthist => gthst_history_vars(vnum) % gthist
1965 
1966 
1967  ! 空間切り出し
1968  ! Slice of spaces
1969  !
1970  sv => slice_vars(vnum)
1971 
1972  !!$ write(*,*) ' sv%st(1), sv%ed(1), sv%sd(1)=', sv%st(1), sv%ed(1), sv%sd(1)
1973 
1974 !!$ write(*,*) ' sv%st(2), sv%ed(2), sv%sd(2)=', sv%st(2), sv%ed(2), sv%sd(2)
1975 
1976 !!$ write(*,*) ' sv%st(3), sv%ed(3), sv%sd(3)=', sv%st(3), sv%ed(3), sv%sd(3)
1977 
1978 !!$ write(*,*) ' sv%st(4), sv%ed(4), sv%sd(4)=', sv%st(4), sv%ed(4), sv%sd(4)
1979 
1980 !!$ write(*,*) ' sv%st(5), sv%ed(5), sv%sd(5)=', sv%st(5), sv%ed(5), sv%sd(5)
1981 
1982 !!$ write(*,*) ' sv%st(6), sv%ed(6), sv%sd(6)=', sv%st(6), sv%ed(6), sv%sd(6)
1983 
1984 
1985  array_slice => array(sv%st(1):sv%ed(1):sv%sd(1) &
1986  & , sv%st(2):sv%ed(2):sv%sd(2) &
1987 
1988  & , sv%st(3):sv%ed(3):sv%sd(3) &
1989 
1990  & , sv%st(4):sv%ed(4):sv%sd(4) &
1991 
1992  & , sv%st(5):sv%ed(5):sv%sd(5) &
1993 
1994  & , sv%st(6):sv%ed(6):sv%sd(6) &
1995 
1996  & )
1997 
1998 
1999 
2000  ! 空間平均
2001  ! Spatial average
2002  !
2003  if ( count(space_avr_vars(vnum) % avr) == 0 ) then
2004  array_avr => array_slice
2005  else
2006  call averagereduce( &
2007  & array_slice, space_avr_vars(vnum) % avr, & ! (in)
2008  & weight_vars(vnum) % wgt1( sv%st(1):sv%ed(1):sv%sd(1) ) , & ! (in)
2009 
2010  & weight_vars(vnum) % wgt2( sv%st(2):sv%ed(2):sv%sd(2) ) , & ! (in)
2011 
2012  & weight_vars(vnum) % wgt3( sv%st(3):sv%ed(3):sv%sd(3) ) , & ! (in)
2013 
2014  & weight_vars(vnum) % wgt4( sv%st(4):sv%ed(4):sv%sd(4) ) , & ! (in)
2015 
2016  & weight_vars(vnum) % wgt5( sv%st(5):sv%ed(5):sv%sd(5) ) , & ! (in)
2017 
2018  & weight_vars(vnum) % wgt6( sv%st(6):sv%ed(6):sv%sd(6) ) , & ! (in)
2019 
2020  & array_avr ) ! (out)
2021  end if
2022 
2023  ! 座標重みを取得 ; Get weights of axes
2024 
2025 
2026 
2027  ! 単位に応じて時刻を変換
2028  ! Convert time according to units
2029  !
2030  if ( output_timing_vars(vnum, svtstep) &
2031  & .or. output_timing_avr_vars(vnum, svtstep) ) then
2032 
2033  settime = &
2034  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
2035  end if
2036 
2037  ! 時刻設定
2038  ! Set time
2039  !
2040  if ( output_timing_vars(vnum, svtstep) ) then
2041  call historysettime( &
2042  & history = gthist, & ! (in) optional
2043  & timed = settime ) ! (in) optional
2044  end if
2045 
2046  ! 出力
2047  ! OutPut
2048  !
2049  if ( output_timing_avr_vars(vnum, svtstep) ) then
2050  call historyput( &
2051  & varname, & ! (in)
2052  & array_avr, & ! (in)
2053 
2054  & timed = settime, & ! (in) optional
2055  & time_average_store = &
2056  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
2057  & history = gthist ) ! (inout) optional
2058  else
2059  call historyput( &
2060  & varname, & ! (in)
2061  & array_avr, & ! (in)
2062 
2063  & history = gthist ) ! (inout) optional
2064  end if
2065 
2066  ! 最後に出力した時刻を保存
2067  ! Save last time of output
2068  !
2069  if ( output_timing_vars(vnum, svtstep) ) then
2070  if ( .not. create_timing_vars(vnum, svtstep) .and. &
2071  & .not. renew_timing_vars(vnum, svtstep) ) then
2072 
2073  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
2074  prev_outtime_vars(vnum) = time
2075  else
2076  prev_outtime_vars(vnum) = &
2077  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
2078  end if
2079  end if
2080  end if
2081 
2082  ! 結合解除
2083  ! Release associations
2084  !
2085  nullify( gthist )
2086  nullify( array_avr, array_slice )
2087 
2088 
2089 999 continue
2090  call storeerror(stat, subname, cause_c = cause_c, err = err)
2091  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputdouble7()

subroutine historyautoputdouble7 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
real(dp), dimension(:,:,:,:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 2099 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

2099  !
2100 
2101  !
2102 
2104  & numvars, gthstnml, zero_time, &
2113  & averagereduce
2120  use dc_string, only: tochar
2121  use dc_message, only: messagenotify
2122  use dc_trace, only: beginsub, endsub
2125  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
2126  use dc_date_generic, only: operator(-), operator(+), &
2127  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
2130  use dc_types, only: dp, string, token
2131  implicit none
2132  real(DP), intent(in):: time
2133 
2134  character(*), intent(in):: varname
2135 
2136  real(DP), intent(in), target:: array(:,:,:,:,:,:,:)
2137 
2138  logical, intent(out), optional:: err
2139 
2140 
2141  type(gt_history), pointer:: gthist =>null()
2142  ! gtool_history モジュール用構造体.
2143  ! Derived type for "gtool_history" module
2144 
2145  real(DP), pointer:: array_slice(:,:,:,:,:,:,:) =>null()
2146  type(slice_info), pointer:: sv =>null()
2147  real(DP), pointer:: array_avr(:,:,:,:,:,:,:) =>null()
2148 
2149  real(DP):: settime
2150  integer:: stat, i
2151  integer:: vnum
2152  character(STRING):: cause_c
2153  integer, save:: svnum = 1, svtstep
2154  character(*), parameter:: subname = "HistoryAutoPutDouble7"
2155  continue
2156  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
2157  stat = dc_noerr
2158  cause_c = ""
2159 
2160  ! 初期設定チェック
2161  ! Check initialization
2162  !
2163  if ( .not. initialized ) then
2164  stat = dc_enotinit
2165  cause_c = 'gtool_historyauto'
2166  goto 999
2167  end if
2168 
2169  ! 時刻に関するエラー処理
2170  ! Error handling for time
2171  !
2172  if ( time < zero_time ) then
2173  cause_c = tochar( time )
2174  call messagenotify( 'W', subname, &
2175  & '"time=<%c>" must be positive value (varname=<%c>).', &
2176  & c1 = trim( cause_c ), c2 = trim( varname ) )
2177  stat = dc_enegative
2178  cause_c = 'time'
2179  goto 999
2180  end if
2181 
2182  ! 変数 ID のサーチ
2183  ! Search variable ID
2184  !
2185  varsearch: do
2186  do i = svnum, numvars
2187  if ( trim( varname_vars(i) ) == trim(varname) ) then
2188  vnum = i
2189  exit varsearch
2190  end if
2191  end do
2192  do i = 1, svnum - 1
2193  if ( trim( varname_vars(i) ) == trim(varname) ) then
2194  vnum = i
2195  exit varsearch
2196  end if
2197  end do
2198 
2199  stat = hst_ebadvarname
2200  cause_c = varname
2201  goto 999
2202  end do varsearch
2203 
2204  svnum = vnum
2205 
2206  ! 定義モードからデータモードへ
2207  ! Transit from define mode to data mode
2208  !
2209  if ( hstnmlinfodefinemode( gthstnml ) ) then
2210  call hstnmlinfoenddefine( gthstnml ) ! (inout)
2211  end if
2212 
2213  ! 出力タイミングのチェックとファイルの作成
2214  ! Check output timing and create files
2215  !
2216  call hstvarsoutputcheck( &
2217  & time = time, & ! (in)
2218  & stime_index = svtstep ) ! (out)
2219 
2220  ! ファイルのオープン・クローズ・再オープン
2221  ! Open, close, reopen files
2222  !
2223  if ( create_timing_vars(vnum, svtstep) &
2224  & .and. .not. histaddvar_vars(vnum) ) then
2225  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
2226  & varname_vars(vnum), time ) ! (in)
2227  histaddvar_vars(vnum) = .true.
2228  if ( flag_output_prev_vars(vnum) ) then
2229  prev_outtime_vars(vnum) = time
2230  else
2231  flag_output_prev_vars(vnum) = .true.
2232  if ( origin_time_vars(vnum) > zero_time ) then
2233  prev_outtime_vars(vnum) = origin_time_vars(vnum)
2234  else
2235  prev_outtime_vars(vnum) = time
2236  end if
2237  end if
2238  end if
2239 
2240  if ( close_timing_vars(vnum, svtstep) ) then
2241  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
2242  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
2243  end if
2244  end if
2245 
2246  if ( renew_timing_vars(vnum, svtstep) ) then
2247  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
2248  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
2249  end if
2250  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
2251  & varname_vars(vnum), time ) ! (in)
2252  newfile_createtime_vars(vnum) = time
2253  prev_outtime_vars(vnum) = time
2254  end if
2255 
2256  ! 出力が有効かどうかを確認する
2257  ! Confirm whether the output is effective
2258  !
2259  if ( .not. output_timing_vars(vnum, svtstep) &
2260  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
2261 
2262  goto 999
2263  end if
2264 
2265  ! GT_HISTORY 変数の取得
2266  ! Get "GT_HISTORY" variable
2267  !
2268  gthist => gthst_history_vars(vnum) % gthist
2269 
2270 
2271  ! 空間切り出し
2272  ! Slice of spaces
2273  !
2274  sv => slice_vars(vnum)
2275 
2276  !!$ write(*,*) ' sv%st(1), sv%ed(1), sv%sd(1)=', sv%st(1), sv%ed(1), sv%sd(1)
2277 
2278 !!$ write(*,*) ' sv%st(2), sv%ed(2), sv%sd(2)=', sv%st(2), sv%ed(2), sv%sd(2)
2279 
2280 !!$ write(*,*) ' sv%st(3), sv%ed(3), sv%sd(3)=', sv%st(3), sv%ed(3), sv%sd(3)
2281 
2282 !!$ write(*,*) ' sv%st(4), sv%ed(4), sv%sd(4)=', sv%st(4), sv%ed(4), sv%sd(4)
2283 
2284 !!$ write(*,*) ' sv%st(5), sv%ed(5), sv%sd(5)=', sv%st(5), sv%ed(5), sv%sd(5)
2285 
2286 !!$ write(*,*) ' sv%st(6), sv%ed(6), sv%sd(6)=', sv%st(6), sv%ed(6), sv%sd(6)
2287 
2288 !!$ write(*,*) ' sv%st(7), sv%ed(7), sv%sd(7)=', sv%st(7), sv%ed(7), sv%sd(7)
2289 
2290 
2291  array_slice => array(sv%st(1):sv%ed(1):sv%sd(1) &
2292  & , sv%st(2):sv%ed(2):sv%sd(2) &
2293 
2294  & , sv%st(3):sv%ed(3):sv%sd(3) &
2295 
2296  & , sv%st(4):sv%ed(4):sv%sd(4) &
2297 
2298  & , sv%st(5):sv%ed(5):sv%sd(5) &
2299 
2300  & , sv%st(6):sv%ed(6):sv%sd(6) &
2301 
2302  & , sv%st(7):sv%ed(7):sv%sd(7) &
2303 
2304  & )
2305 
2306 
2307 
2308  ! 空間平均
2309  ! Spatial average
2310  !
2311  if ( count(space_avr_vars(vnum) % avr) == 0 ) then
2312  array_avr => array_slice
2313  else
2314  call averagereduce( &
2315  & array_slice, space_avr_vars(vnum) % avr, & ! (in)
2316  & weight_vars(vnum) % wgt1( sv%st(1):sv%ed(1):sv%sd(1) ) , & ! (in)
2317 
2318  & weight_vars(vnum) % wgt2( sv%st(2):sv%ed(2):sv%sd(2) ) , & ! (in)
2319 
2320  & weight_vars(vnum) % wgt3( sv%st(3):sv%ed(3):sv%sd(3) ) , & ! (in)
2321 
2322  & weight_vars(vnum) % wgt4( sv%st(4):sv%ed(4):sv%sd(4) ) , & ! (in)
2323 
2324  & weight_vars(vnum) % wgt5( sv%st(5):sv%ed(5):sv%sd(5) ) , & ! (in)
2325 
2326  & weight_vars(vnum) % wgt6( sv%st(6):sv%ed(6):sv%sd(6) ) , & ! (in)
2327 
2328  & weight_vars(vnum) % wgt7( sv%st(7):sv%ed(7):sv%sd(7) ) , & ! (in)
2329 
2330  & array_avr ) ! (out)
2331  end if
2332 
2333  ! 座標重みを取得 ; Get weights of axes
2334 
2335 
2336 
2337  ! 単位に応じて時刻を変換
2338  ! Convert time according to units
2339  !
2340  if ( output_timing_vars(vnum, svtstep) &
2341  & .or. output_timing_avr_vars(vnum, svtstep) ) then
2342 
2343  settime = &
2344  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
2345  end if
2346 
2347  ! 時刻設定
2348  ! Set time
2349  !
2350  if ( output_timing_vars(vnum, svtstep) ) then
2351  call historysettime( &
2352  & history = gthist, & ! (in) optional
2353  & timed = settime ) ! (in) optional
2354  end if
2355 
2356  ! 出力
2357  ! OutPut
2358  !
2359  if ( output_timing_avr_vars(vnum, svtstep) ) then
2360  call historyput( &
2361  & varname, & ! (in)
2362  & array_avr, & ! (in)
2363 
2364  & timed = settime, & ! (in) optional
2365  & time_average_store = &
2366  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
2367  & history = gthist ) ! (inout) optional
2368  else
2369  call historyput( &
2370  & varname, & ! (in)
2371  & array_avr, & ! (in)
2372 
2373  & history = gthist ) ! (inout) optional
2374  end if
2375 
2376  ! 最後に出力した時刻を保存
2377  ! Save last time of output
2378  !
2379  if ( output_timing_vars(vnum, svtstep) ) then
2380  if ( .not. create_timing_vars(vnum, svtstep) .and. &
2381  & .not. renew_timing_vars(vnum, svtstep) ) then
2382 
2383  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
2384  prev_outtime_vars(vnum) = time
2385  else
2386  prev_outtime_vars(vnum) = &
2387  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
2388  end if
2389  end if
2390  end if
2391 
2392  ! 結合解除
2393  ! Release associations
2394  !
2395  nullify( gthist )
2396  nullify( array_avr, array_slice )
2397 
2398 
2399 999 continue
2400  call storeerror(stat, subname, cause_c = cause_c, err = err)
2401  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputint0()

subroutine historyautoputint0 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
integer, intent(in), target  value,
logical, intent(out), optional  err 
)

Definition at line 4707 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

4707  !
4708 
4709  !
4710 
4712  & numvars, gthstnml, zero_time, &
4721  & averagereduce
4728  use dc_string, only: tochar
4729  use dc_message, only: messagenotify
4730  use dc_trace, only: beginsub, endsub
4733  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
4734  use dc_date_generic, only: operator(-), operator(+), &
4735  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
4738  use dc_types, only: dp, string, token
4739  implicit none
4740  real(DP), intent(in):: time
4741 
4742  character(*), intent(in):: varname
4743 
4744  integer, intent(in), target:: value
4745 
4746  logical, intent(out), optional:: err
4747 
4748 
4749  type(gt_history), pointer:: gthist =>null()
4750  ! gtool_history モジュール用構造体.
4751  ! Derived type for "gtool_history" module
4752 
4753 
4754  real(DP):: settime
4755  integer:: stat, i
4756  integer:: vnum
4757  character(STRING):: cause_c
4758  integer, save:: svnum = 1, svtstep
4759  character(*), parameter:: subname = "HistoryAutoPutInt0"
4760  continue
4761  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
4762  stat = dc_noerr
4763  cause_c = ""
4764 
4765  ! 初期設定チェック
4766  ! Check initialization
4767  !
4768  if ( .not. initialized ) then
4769  stat = dc_enotinit
4770  cause_c = 'gtool_historyauto'
4771  goto 999
4772  end if
4773 
4774  ! 時刻に関するエラー処理
4775  ! Error handling for time
4776  !
4777  if ( time < zero_time ) then
4778  cause_c = tochar( time )
4779  call messagenotify( 'W', subname, &
4780  & '"time=<%c>" must be positive value (varname=<%c>).', &
4781  & c1 = trim( cause_c ), c2 = trim( varname ) )
4782  stat = dc_enegative
4783  cause_c = 'time'
4784  goto 999
4785  end if
4786 
4787  ! 変数 ID のサーチ
4788  ! Search variable ID
4789  !
4790  varsearch: do
4791  do i = svnum, numvars
4792  if ( trim( varname_vars(i) ) == trim(varname) ) then
4793  vnum = i
4794  exit varsearch
4795  end if
4796  end do
4797  do i = 1, svnum - 1
4798  if ( trim( varname_vars(i) ) == trim(varname) ) then
4799  vnum = i
4800  exit varsearch
4801  end if
4802  end do
4803 
4804  stat = hst_ebadvarname
4805  cause_c = varname
4806  goto 999
4807  end do varsearch
4808 
4809  svnum = vnum
4810 
4811  ! 定義モードからデータモードへ
4812  ! Transit from define mode to data mode
4813  !
4814  if ( hstnmlinfodefinemode( gthstnml ) ) then
4815  call hstnmlinfoenddefine( gthstnml ) ! (inout)
4816  end if
4817 
4818  ! 出力タイミングのチェックとファイルの作成
4819  ! Check output timing and create files
4820  !
4821  call hstvarsoutputcheck( &
4822  & time = time, & ! (in)
4823  & stime_index = svtstep ) ! (out)
4824 
4825  ! ファイルのオープン・クローズ・再オープン
4826  ! Open, close, reopen files
4827  !
4828  if ( create_timing_vars(vnum, svtstep) &
4829  & .and. .not. histaddvar_vars(vnum) ) then
4830  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
4831  & varname_vars(vnum), time ) ! (in)
4832  histaddvar_vars(vnum) = .true.
4833  if ( flag_output_prev_vars(vnum) ) then
4834  prev_outtime_vars(vnum) = time
4835  else
4836  flag_output_prev_vars(vnum) = .true.
4837  if ( origin_time_vars(vnum) > zero_time ) then
4838  prev_outtime_vars(vnum) = origin_time_vars(vnum)
4839  else
4840  prev_outtime_vars(vnum) = time
4841  end if
4842  end if
4843  end if
4844 
4845  if ( close_timing_vars(vnum, svtstep) ) then
4846  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
4847  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
4848  end if
4849  end if
4850 
4851  if ( renew_timing_vars(vnum, svtstep) ) then
4852  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
4853  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
4854  end if
4855  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
4856  & varname_vars(vnum), time ) ! (in)
4857  newfile_createtime_vars(vnum) = time
4858  prev_outtime_vars(vnum) = time
4859  end if
4860 
4861  ! 出力が有効かどうかを確認する
4862  ! Confirm whether the output is effective
4863  !
4864  if ( .not. output_timing_vars(vnum, svtstep) &
4865  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
4866 
4867  goto 999
4868  end if
4869 
4870  ! GT_HISTORY 変数の取得
4871  ! Get "GT_HISTORY" variable
4872  !
4873  gthist => gthst_history_vars(vnum) % gthist
4874 
4875 
4876  ! 空間切り出し
4877  ! Slice of spaces
4878  !
4879  ! array only
4880 
4881 
4882 
4883  ! 空間平均
4884  ! Spatial average
4885  !
4886  ! array only
4887 
4888 
4889  ! 単位に応じて時刻を変換
4890  ! Convert time according to units
4891  !
4892  if ( output_timing_vars(vnum, svtstep) &
4893  & .or. output_timing_avr_vars(vnum, svtstep) ) then
4894 
4895  settime = &
4896  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
4897  end if
4898 
4899  ! 時刻設定
4900  ! Set time
4901  !
4902  if ( output_timing_vars(vnum, svtstep) ) then
4903  call historysettime( &
4904  & history = gthist, & ! (in) optional
4905  & timed = settime ) ! (in) optional
4906  end if
4907 
4908  ! 出力
4909  ! OutPut
4910  !
4911  if ( output_timing_avr_vars(vnum, svtstep) ) then
4912  call historyput( &
4913  & varname, & ! (in)
4914  & (/value/), & ! (in)
4915 
4916  & timed = settime, & ! (in) optional
4917  & time_average_store = &
4918  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
4919  & history = gthist ) ! (inout) optional
4920  else
4921  call historyput( &
4922  & varname, & ! (in)
4923  & (/value/), & ! (in)
4924 
4925  & history = gthist ) ! (inout) optional
4926  end if
4927 
4928  ! 最後に出力した時刻を保存
4929  ! Save last time of output
4930  !
4931  if ( output_timing_vars(vnum, svtstep) ) then
4932  if ( .not. create_timing_vars(vnum, svtstep) .and. &
4933  & .not. renew_timing_vars(vnum, svtstep) ) then
4934 
4935  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
4936  prev_outtime_vars(vnum) = time
4937  else
4938  prev_outtime_vars(vnum) = &
4939  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
4940  end if
4941  end if
4942  end if
4943 
4944  ! 結合解除
4945  ! Release associations
4946  !
4947  nullify( gthist )
4948 
4949 
4950 999 continue
4951  call storeerror(stat, subname, cause_c = cause_c, err = err)
4952  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputint1()

subroutine historyautoputint1 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
integer, dimension(:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 4960 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

4960  !
4961 
4962  !
4963 
4965  & numvars, gthstnml, zero_time, &
4974  & averagereduce
4981  use dc_string, only: tochar
4982  use dc_message, only: messagenotify
4983  use dc_trace, only: beginsub, endsub
4986  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
4987  use dc_date_generic, only: operator(-), operator(+), &
4988  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
4991  use dc_types, only: dp, string, token
4992  implicit none
4993  real(DP), intent(in):: time
4994 
4995  character(*), intent(in):: varname
4996 
4997  integer, intent(in), target:: array(:)
4998 
4999  logical, intent(out), optional:: err
5000 
5001 
5002  type(gt_history), pointer:: gthist =>null()
5003  ! gtool_history モジュール用構造体.
5004  ! Derived type for "gtool_history" module
5005 
5006  integer, pointer:: array_slice(:) =>null()
5007  type(slice_info), pointer:: sv =>null()
5008  integer, pointer:: array_avr(:) =>null()
5009 
5010  real(DP):: settime
5011  integer:: stat, i
5012  integer:: vnum
5013  character(STRING):: cause_c
5014  integer, save:: svnum = 1, svtstep
5015  character(*), parameter:: subname = "HistoryAutoPutInt1"
5016  continue
5017  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
5018  stat = dc_noerr
5019  cause_c = ""
5020 
5021  ! 初期設定チェック
5022  ! Check initialization
5023  !
5024  if ( .not. initialized ) then
5025  stat = dc_enotinit
5026  cause_c = 'gtool_historyauto'
5027  goto 999
5028  end if
5029 
5030  ! 時刻に関するエラー処理
5031  ! Error handling for time
5032  !
5033  if ( time < zero_time ) then
5034  cause_c = tochar( time )
5035  call messagenotify( 'W', subname, &
5036  & '"time=<%c>" must be positive value (varname=<%c>).', &
5037  & c1 = trim( cause_c ), c2 = trim( varname ) )
5038  stat = dc_enegative
5039  cause_c = 'time'
5040  goto 999
5041  end if
5042 
5043  ! 変数 ID のサーチ
5044  ! Search variable ID
5045  !
5046  varsearch: do
5047  do i = svnum, numvars
5048  if ( trim( varname_vars(i) ) == trim(varname) ) then
5049  vnum = i
5050  exit varsearch
5051  end if
5052  end do
5053  do i = 1, svnum - 1
5054  if ( trim( varname_vars(i) ) == trim(varname) ) then
5055  vnum = i
5056  exit varsearch
5057  end if
5058  end do
5059 
5060  stat = hst_ebadvarname
5061  cause_c = varname
5062  goto 999
5063  end do varsearch
5064 
5065  svnum = vnum
5066 
5067  ! 定義モードからデータモードへ
5068  ! Transit from define mode to data mode
5069  !
5070  if ( hstnmlinfodefinemode( gthstnml ) ) then
5071  call hstnmlinfoenddefine( gthstnml ) ! (inout)
5072  end if
5073 
5074  ! 出力タイミングのチェックとファイルの作成
5075  ! Check output timing and create files
5076  !
5077  call hstvarsoutputcheck( &
5078  & time = time, & ! (in)
5079  & stime_index = svtstep ) ! (out)
5080 
5081  ! ファイルのオープン・クローズ・再オープン
5082  ! Open, close, reopen files
5083  !
5084  if ( create_timing_vars(vnum, svtstep) &
5085  & .and. .not. histaddvar_vars(vnum) ) then
5086  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
5087  & varname_vars(vnum), time ) ! (in)
5088  histaddvar_vars(vnum) = .true.
5089  if ( flag_output_prev_vars(vnum) ) then
5090  prev_outtime_vars(vnum) = time
5091  else
5092  flag_output_prev_vars(vnum) = .true.
5093  if ( origin_time_vars(vnum) > zero_time ) then
5094  prev_outtime_vars(vnum) = origin_time_vars(vnum)
5095  else
5096  prev_outtime_vars(vnum) = time
5097  end if
5098  end if
5099  end if
5100 
5101  if ( close_timing_vars(vnum, svtstep) ) then
5102  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
5103  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
5104  end if
5105  end if
5106 
5107  if ( renew_timing_vars(vnum, svtstep) ) then
5108  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
5109  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
5110  end if
5111  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
5112  & varname_vars(vnum), time ) ! (in)
5113  newfile_createtime_vars(vnum) = time
5114  prev_outtime_vars(vnum) = time
5115  end if
5116 
5117  ! 出力が有効かどうかを確認する
5118  ! Confirm whether the output is effective
5119  !
5120  if ( .not. output_timing_vars(vnum, svtstep) &
5121  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
5122 
5123  goto 999
5124  end if
5125 
5126  ! GT_HISTORY 変数の取得
5127  ! Get "GT_HISTORY" variable
5128  !
5129  gthist => gthst_history_vars(vnum) % gthist
5130 
5131 
5132  ! 空間切り出し
5133  ! Slice of spaces
5134  !
5135  sv => slice_vars(vnum)
5136 
5137  !!$ write(*,*) ' sv%st(1), sv%ed(1), sv%sd(1)=', sv%st(1), sv%ed(1), sv%sd(1)
5138 
5139 
5140  array_slice => array(sv%st(1):sv%ed(1):sv%sd(1) &
5141 
5142  & )
5143 
5144 
5145 
5146  ! 空間平均
5147  ! Spatial average
5148  !
5149  if ( count(space_avr_vars(vnum) % avr) == 0 ) then
5150  array_avr => array_slice
5151  else
5152  call averagereduce( &
5153  & array_slice, space_avr_vars(vnum) % avr, & ! (in)
5154  & weight_vars(vnum) % wgt1( sv%st(1):sv%ed(1):sv%sd(1) ) , & ! (in)
5155 
5156  & array_avr ) ! (out)
5157  end if
5158 
5159  ! 座標重みを取得 ; Get weights of axes
5160 
5161 
5162 
5163  ! 単位に応じて時刻を変換
5164  ! Convert time according to units
5165  !
5166  if ( output_timing_vars(vnum, svtstep) &
5167  & .or. output_timing_avr_vars(vnum, svtstep) ) then
5168 
5169  settime = &
5170  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
5171  end if
5172 
5173  ! 時刻設定
5174  ! Set time
5175  !
5176  if ( output_timing_vars(vnum, svtstep) ) then
5177  call historysettime( &
5178  & history = gthist, & ! (in) optional
5179  & timed = settime ) ! (in) optional
5180  end if
5181 
5182  ! 出力
5183  ! OutPut
5184  !
5185  if ( output_timing_avr_vars(vnum, svtstep) ) then
5186  call historyput( &
5187  & varname, & ! (in)
5188  & array_avr, & ! (in)
5189 
5190  & timed = settime, & ! (in) optional
5191  & time_average_store = &
5192  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
5193  & history = gthist ) ! (inout) optional
5194  else
5195  call historyput( &
5196  & varname, & ! (in)
5197  & array_avr, & ! (in)
5198 
5199  & history = gthist ) ! (inout) optional
5200  end if
5201 
5202  ! 最後に出力した時刻を保存
5203  ! Save last time of output
5204  !
5205  if ( output_timing_vars(vnum, svtstep) ) then
5206  if ( .not. create_timing_vars(vnum, svtstep) .and. &
5207  & .not. renew_timing_vars(vnum, svtstep) ) then
5208 
5209  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
5210  prev_outtime_vars(vnum) = time
5211  else
5212  prev_outtime_vars(vnum) = &
5213  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
5214  end if
5215  end if
5216  end if
5217 
5218  ! 結合解除
5219  ! Release associations
5220  !
5221  nullify( gthist )
5222  nullify( array_avr, array_slice )
5223 
5224 
5225 999 continue
5226  call storeerror(stat, subname, cause_c = cause_c, err = err)
5227  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputint2()

subroutine historyautoputint2 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
integer, dimension(:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 5235 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

5235  !
5236 
5237  !
5238 
5240  & numvars, gthstnml, zero_time, &
5249  & averagereduce
5256  use dc_string, only: tochar
5257  use dc_message, only: messagenotify
5258  use dc_trace, only: beginsub, endsub
5261  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
5262  use dc_date_generic, only: operator(-), operator(+), &
5263  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
5266  use dc_types, only: dp, string, token
5267  implicit none
5268  real(DP), intent(in):: time
5269 
5270  character(*), intent(in):: varname
5271 
5272  integer, intent(in), target:: array(:,:)
5273 
5274  logical, intent(out), optional:: err
5275 
5276 
5277  type(gt_history), pointer:: gthist =>null()
5278  ! gtool_history モジュール用構造体.
5279  ! Derived type for "gtool_history" module
5280 
5281  integer, pointer:: array_slice(:,:) =>null()
5282  type(slice_info), pointer:: sv =>null()
5283  integer, pointer:: array_avr(:,:) =>null()
5284 
5285  real(DP):: settime
5286  integer:: stat, i
5287  integer:: vnum
5288  character(STRING):: cause_c
5289  integer, save:: svnum = 1, svtstep
5290  character(*), parameter:: subname = "HistoryAutoPutInt2"
5291  continue
5292  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
5293  stat = dc_noerr
5294  cause_c = ""
5295 
5296  ! 初期設定チェック
5297  ! Check initialization
5298  !
5299  if ( .not. initialized ) then
5300  stat = dc_enotinit
5301  cause_c = 'gtool_historyauto'
5302  goto 999
5303  end if
5304 
5305  ! 時刻に関するエラー処理
5306  ! Error handling for time
5307  !
5308  if ( time < zero_time ) then
5309  cause_c = tochar( time )
5310  call messagenotify( 'W', subname, &
5311  & '"time=<%c>" must be positive value (varname=<%c>).', &
5312  & c1 = trim( cause_c ), c2 = trim( varname ) )
5313  stat = dc_enegative
5314  cause_c = 'time'
5315  goto 999
5316  end if
5317 
5318  ! 変数 ID のサーチ
5319  ! Search variable ID
5320  !
5321  varsearch: do
5322  do i = svnum, numvars
5323  if ( trim( varname_vars(i) ) == trim(varname) ) then
5324  vnum = i
5325  exit varsearch
5326  end if
5327  end do
5328  do i = 1, svnum - 1
5329  if ( trim( varname_vars(i) ) == trim(varname) ) then
5330  vnum = i
5331  exit varsearch
5332  end if
5333  end do
5334 
5335  stat = hst_ebadvarname
5336  cause_c = varname
5337  goto 999
5338  end do varsearch
5339 
5340  svnum = vnum
5341 
5342  ! 定義モードからデータモードへ
5343  ! Transit from define mode to data mode
5344  !
5345  if ( hstnmlinfodefinemode( gthstnml ) ) then
5346  call hstnmlinfoenddefine( gthstnml ) ! (inout)
5347  end if
5348 
5349  ! 出力タイミングのチェックとファイルの作成
5350  ! Check output timing and create files
5351  !
5352  call hstvarsoutputcheck( &
5353  & time = time, & ! (in)
5354  & stime_index = svtstep ) ! (out)
5355 
5356  ! ファイルのオープン・クローズ・再オープン
5357  ! Open, close, reopen files
5358  !
5359  if ( create_timing_vars(vnum, svtstep) &
5360  & .and. .not. histaddvar_vars(vnum) ) then
5361  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
5362  & varname_vars(vnum), time ) ! (in)
5363  histaddvar_vars(vnum) = .true.
5364  if ( flag_output_prev_vars(vnum) ) then
5365  prev_outtime_vars(vnum) = time
5366  else
5367  flag_output_prev_vars(vnum) = .true.
5368  if ( origin_time_vars(vnum) > zero_time ) then
5369  prev_outtime_vars(vnum) = origin_time_vars(vnum)
5370  else
5371  prev_outtime_vars(vnum) = time
5372  end if
5373  end if
5374  end if
5375 
5376  if ( close_timing_vars(vnum, svtstep) ) then
5377  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
5378  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
5379  end if
5380  end if
5381 
5382  if ( renew_timing_vars(vnum, svtstep) ) then
5383  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
5384  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
5385  end if
5386  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
5387  & varname_vars(vnum), time ) ! (in)
5388  newfile_createtime_vars(vnum) = time
5389  prev_outtime_vars(vnum) = time
5390  end if
5391 
5392  ! 出力が有効かどうかを確認する
5393  ! Confirm whether the output is effective
5394  !
5395  if ( .not. output_timing_vars(vnum, svtstep) &
5396  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
5397 
5398  goto 999
5399  end if
5400 
5401  ! GT_HISTORY 変数の取得
5402  ! Get "GT_HISTORY" variable
5403  !
5404  gthist => gthst_history_vars(vnum) % gthist
5405 
5406 
5407  ! 空間切り出し
5408  ! Slice of spaces
5409  !
5410  sv => slice_vars(vnum)
5411 
5412  !!$ write(*,*) ' sv%st(1), sv%ed(1), sv%sd(1)=', sv%st(1), sv%ed(1), sv%sd(1)
5413 
5414 !!$ write(*,*) ' sv%st(2), sv%ed(2), sv%sd(2)=', sv%st(2), sv%ed(2), sv%sd(2)
5415 
5416 
5417  array_slice => array(sv%st(1):sv%ed(1):sv%sd(1) &
5418  & , sv%st(2):sv%ed(2):sv%sd(2) &
5419 
5420  & )
5421 
5422 
5423 
5424  ! 空間平均
5425  ! Spatial average
5426  !
5427  if ( count(space_avr_vars(vnum) % avr) == 0 ) then
5428  array_avr => array_slice
5429  else
5430  call averagereduce( &
5431  & array_slice, space_avr_vars(vnum) % avr, & ! (in)
5432  & weight_vars(vnum) % wgt1( sv%st(1):sv%ed(1):sv%sd(1) ) , & ! (in)
5433 
5434  & weight_vars(vnum) % wgt2( sv%st(2):sv%ed(2):sv%sd(2) ) , & ! (in)
5435 
5436  & array_avr ) ! (out)
5437  end if
5438 
5439  ! 座標重みを取得 ; Get weights of axes
5440 
5441 
5442 
5443  ! 単位に応じて時刻を変換
5444  ! Convert time according to units
5445  !
5446  if ( output_timing_vars(vnum, svtstep) &
5447  & .or. output_timing_avr_vars(vnum, svtstep) ) then
5448 
5449  settime = &
5450  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
5451  end if
5452 
5453  ! 時刻設定
5454  ! Set time
5455  !
5456  if ( output_timing_vars(vnum, svtstep) ) then
5457  call historysettime( &
5458  & history = gthist, & ! (in) optional
5459  & timed = settime ) ! (in) optional
5460  end if
5461 
5462  ! 出力
5463  ! OutPut
5464  !
5465  if ( output_timing_avr_vars(vnum, svtstep) ) then
5466  call historyput( &
5467  & varname, & ! (in)
5468  & array_avr, & ! (in)
5469 
5470  & timed = settime, & ! (in) optional
5471  & time_average_store = &
5472  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
5473  & history = gthist ) ! (inout) optional
5474  else
5475  call historyput( &
5476  & varname, & ! (in)
5477  & array_avr, & ! (in)
5478 
5479  & history = gthist ) ! (inout) optional
5480  end if
5481 
5482  ! 最後に出力した時刻を保存
5483  ! Save last time of output
5484  !
5485  if ( output_timing_vars(vnum, svtstep) ) then
5486  if ( .not. create_timing_vars(vnum, svtstep) .and. &
5487  & .not. renew_timing_vars(vnum, svtstep) ) then
5488 
5489  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
5490  prev_outtime_vars(vnum) = time
5491  else
5492  prev_outtime_vars(vnum) = &
5493  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
5494  end if
5495  end if
5496  end if
5497 
5498  ! 結合解除
5499  ! Release associations
5500  !
5501  nullify( gthist )
5502  nullify( array_avr, array_slice )
5503 
5504 
5505 999 continue
5506  call storeerror(stat, subname, cause_c = cause_c, err = err)
5507  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputint3()

subroutine historyautoputint3 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
integer, dimension(:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 5515 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

5515  !
5516 
5517  !
5518 
5520  & numvars, gthstnml, zero_time, &
5529  & averagereduce
5536  use dc_string, only: tochar
5537  use dc_message, only: messagenotify
5538  use dc_trace, only: beginsub, endsub
5541  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
5542  use dc_date_generic, only: operator(-), operator(+), &
5543  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
5546  use dc_types, only: dp, string, token
5547  implicit none
5548  real(DP), intent(in):: time
5549 
5550  character(*), intent(in):: varname
5551 
5552  integer, intent(in), target:: array(:,:,:)
5553 
5554  logical, intent(out), optional:: err
5555 
5556 
5557  type(gt_history), pointer:: gthist =>null()
5558  ! gtool_history モジュール用構造体.
5559  ! Derived type for "gtool_history" module
5560 
5561  integer, pointer:: array_slice(:,:,:) =>null()
5562  type(slice_info), pointer:: sv =>null()
5563  integer, pointer:: array_avr(:,:,:) =>null()
5564 
5565  real(DP):: settime
5566  integer:: stat, i
5567  integer:: vnum
5568  character(STRING):: cause_c
5569  integer, save:: svnum = 1, svtstep
5570  character(*), parameter:: subname = "HistoryAutoPutInt3"
5571  continue
5572  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
5573  stat = dc_noerr
5574  cause_c = ""
5575 
5576  ! 初期設定チェック
5577  ! Check initialization
5578  !
5579  if ( .not. initialized ) then
5580  stat = dc_enotinit
5581  cause_c = 'gtool_historyauto'
5582  goto 999
5583  end if
5584 
5585  ! 時刻に関するエラー処理
5586  ! Error handling for time
5587  !
5588  if ( time < zero_time ) then
5589  cause_c = tochar( time )
5590  call messagenotify( 'W', subname, &
5591  & '"time=<%c>" must be positive value (varname=<%c>).', &
5592  & c1 = trim( cause_c ), c2 = trim( varname ) )
5593  stat = dc_enegative
5594  cause_c = 'time'
5595  goto 999
5596  end if
5597 
5598  ! 変数 ID のサーチ
5599  ! Search variable ID
5600  !
5601  varsearch: do
5602  do i = svnum, numvars
5603  if ( trim( varname_vars(i) ) == trim(varname) ) then
5604  vnum = i
5605  exit varsearch
5606  end if
5607  end do
5608  do i = 1, svnum - 1
5609  if ( trim( varname_vars(i) ) == trim(varname) ) then
5610  vnum = i
5611  exit varsearch
5612  end if
5613  end do
5614 
5615  stat = hst_ebadvarname
5616  cause_c = varname
5617  goto 999
5618  end do varsearch
5619 
5620  svnum = vnum
5621 
5622  ! 定義モードからデータモードへ
5623  ! Transit from define mode to data mode
5624  !
5625  if ( hstnmlinfodefinemode( gthstnml ) ) then
5626  call hstnmlinfoenddefine( gthstnml ) ! (inout)
5627  end if
5628 
5629  ! 出力タイミングのチェックとファイルの作成
5630  ! Check output timing and create files
5631  !
5632  call hstvarsoutputcheck( &
5633  & time = time, & ! (in)
5634  & stime_index = svtstep ) ! (out)
5635 
5636  ! ファイルのオープン・クローズ・再オープン
5637  ! Open, close, reopen files
5638  !
5639  if ( create_timing_vars(vnum, svtstep) &
5640  & .and. .not. histaddvar_vars(vnum) ) then
5641  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
5642  & varname_vars(vnum), time ) ! (in)
5643  histaddvar_vars(vnum) = .true.
5644  if ( flag_output_prev_vars(vnum) ) then
5645  prev_outtime_vars(vnum) = time
5646  else
5647  flag_output_prev_vars(vnum) = .true.
5648  if ( origin_time_vars(vnum) > zero_time ) then
5649  prev_outtime_vars(vnum) = origin_time_vars(vnum)
5650  else
5651  prev_outtime_vars(vnum) = time
5652  end if
5653  end if
5654  end if
5655 
5656  if ( close_timing_vars(vnum, svtstep) ) then
5657  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
5658  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
5659  end if
5660  end if
5661 
5662  if ( renew_timing_vars(vnum, svtstep) ) then
5663  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
5664  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
5665  end if
5666  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
5667  & varname_vars(vnum), time ) ! (in)
5668  newfile_createtime_vars(vnum) = time
5669  prev_outtime_vars(vnum) = time
5670  end if
5671 
5672  ! 出力が有効かどうかを確認する
5673  ! Confirm whether the output is effective
5674  !
5675  if ( .not. output_timing_vars(vnum, svtstep) &
5676  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
5677 
5678  goto 999
5679  end if
5680 
5681  ! GT_HISTORY 変数の取得
5682  ! Get "GT_HISTORY" variable
5683  !
5684  gthist => gthst_history_vars(vnum) % gthist
5685 
5686 
5687  ! 空間切り出し
5688  ! Slice of spaces
5689  !
5690  sv => slice_vars(vnum)
5691 
5692  !!$ write(*,*) ' sv%st(1), sv%ed(1), sv%sd(1)=', sv%st(1), sv%ed(1), sv%sd(1)
5693 
5694 !!$ write(*,*) ' sv%st(2), sv%ed(2), sv%sd(2)=', sv%st(2), sv%ed(2), sv%sd(2)
5695 
5696 !!$ write(*,*) ' sv%st(3), sv%ed(3), sv%sd(3)=', sv%st(3), sv%ed(3), sv%sd(3)
5697 
5698 
5699  array_slice => array(sv%st(1):sv%ed(1):sv%sd(1) &
5700  & , sv%st(2):sv%ed(2):sv%sd(2) &
5701 
5702  & , sv%st(3):sv%ed(3):sv%sd(3) &
5703 
5704  & )
5705 
5706 
5707 
5708  ! 空間平均
5709  ! Spatial average
5710  !
5711  if ( count(space_avr_vars(vnum) % avr) == 0 ) then
5712  array_avr => array_slice
5713  else
5714  call averagereduce( &
5715  & array_slice, space_avr_vars(vnum) % avr, & ! (in)
5716  & weight_vars(vnum) % wgt1( sv%st(1):sv%ed(1):sv%sd(1) ) , & ! (in)
5717 
5718  & weight_vars(vnum) % wgt2( sv%st(2):sv%ed(2):sv%sd(2) ) , & ! (in)
5719 
5720  & weight_vars(vnum) % wgt3( sv%st(3):sv%ed(3):sv%sd(3) ) , & ! (in)
5721 
5722  & array_avr ) ! (out)
5723  end if
5724 
5725  ! 座標重みを取得 ; Get weights of axes
5726 
5727 
5728 
5729  ! 単位に応じて時刻を変換
5730  ! Convert time according to units
5731  !
5732  if ( output_timing_vars(vnum, svtstep) &
5733  & .or. output_timing_avr_vars(vnum, svtstep) ) then
5734 
5735  settime = &
5736  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
5737  end if
5738 
5739  ! 時刻設定
5740  ! Set time
5741  !
5742  if ( output_timing_vars(vnum, svtstep) ) then
5743  call historysettime( &
5744  & history = gthist, & ! (in) optional
5745  & timed = settime ) ! (in) optional
5746  end if
5747 
5748  ! 出力
5749  ! OutPut
5750  !
5751  if ( output_timing_avr_vars(vnum, svtstep) ) then
5752  call historyput( &
5753  & varname, & ! (in)
5754  & array_avr, & ! (in)
5755 
5756  & timed = settime, & ! (in) optional
5757  & time_average_store = &
5758  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
5759  & history = gthist ) ! (inout) optional
5760  else
5761  call historyput( &
5762  & varname, & ! (in)
5763  & array_avr, & ! (in)
5764 
5765  & history = gthist ) ! (inout) optional
5766  end if
5767 
5768  ! 最後に出力した時刻を保存
5769  ! Save last time of output
5770  !
5771  if ( output_timing_vars(vnum, svtstep) ) then
5772  if ( .not. create_timing_vars(vnum, svtstep) .and. &
5773  & .not. renew_timing_vars(vnum, svtstep) ) then
5774 
5775  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
5776  prev_outtime_vars(vnum) = time
5777  else
5778  prev_outtime_vars(vnum) = &
5779  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
5780  end if
5781  end if
5782  end if
5783 
5784  ! 結合解除
5785  ! Release associations
5786  !
5787  nullify( gthist )
5788  nullify( array_avr, array_slice )
5789 
5790 
5791 999 continue
5792  call storeerror(stat, subname, cause_c = cause_c, err = err)
5793  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputint4()

subroutine historyautoputint4 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
integer, dimension(:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 5801 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

5801  !
5802 
5803  !
5804 
5806  & numvars, gthstnml, zero_time, &
5815  & averagereduce
5822  use dc_string, only: tochar
5823  use dc_message, only: messagenotify
5824  use dc_trace, only: beginsub, endsub
5827  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
5828  use dc_date_generic, only: operator(-), operator(+), &
5829  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
5832  use dc_types, only: dp, string, token
5833  implicit none
5834  real(DP), intent(in):: time
5835 
5836  character(*), intent(in):: varname
5837 
5838  integer, intent(in), target:: array(:,:,:,:)
5839 
5840  logical, intent(out), optional:: err
5841 
5842 
5843  type(gt_history), pointer:: gthist =>null()
5844  ! gtool_history モジュール用構造体.
5845  ! Derived type for "gtool_history" module
5846 
5847  integer, pointer:: array_slice(:,:,:,:) =>null()
5848  type(slice_info), pointer:: sv =>null()
5849  integer, pointer:: array_avr(:,:,:,:) =>null()
5850 
5851  real(DP):: settime
5852  integer:: stat, i
5853  integer:: vnum
5854  character(STRING):: cause_c
5855  integer, save:: svnum = 1, svtstep
5856  character(*), parameter:: subname = "HistoryAutoPutInt4"
5857  continue
5858  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
5859  stat = dc_noerr
5860  cause_c = ""
5861 
5862  ! 初期設定チェック
5863  ! Check initialization
5864  !
5865  if ( .not. initialized ) then
5866  stat = dc_enotinit
5867  cause_c = 'gtool_historyauto'
5868  goto 999
5869  end if
5870 
5871  ! 時刻に関するエラー処理
5872  ! Error handling for time
5873  !
5874  if ( time < zero_time ) then
5875  cause_c = tochar( time )
5876  call messagenotify( 'W', subname, &
5877  & '"time=<%c>" must be positive value (varname=<%c>).', &
5878  & c1 = trim( cause_c ), c2 = trim( varname ) )
5879  stat = dc_enegative
5880  cause_c = 'time'
5881  goto 999
5882  end if
5883 
5884  ! 変数 ID のサーチ
5885  ! Search variable ID
5886  !
5887  varsearch: do
5888  do i = svnum, numvars
5889  if ( trim( varname_vars(i) ) == trim(varname) ) then
5890  vnum = i
5891  exit varsearch
5892  end if
5893  end do
5894  do i = 1, svnum - 1
5895  if ( trim( varname_vars(i) ) == trim(varname) ) then
5896  vnum = i
5897  exit varsearch
5898  end if
5899  end do
5900 
5901  stat = hst_ebadvarname
5902  cause_c = varname
5903  goto 999
5904  end do varsearch
5905 
5906  svnum = vnum
5907 
5908  ! 定義モードからデータモードへ
5909  ! Transit from define mode to data mode
5910  !
5911  if ( hstnmlinfodefinemode( gthstnml ) ) then
5912  call hstnmlinfoenddefine( gthstnml ) ! (inout)
5913  end if
5914 
5915  ! 出力タイミングのチェックとファイルの作成
5916  ! Check output timing and create files
5917  !
5918  call hstvarsoutputcheck( &
5919  & time = time, & ! (in)
5920  & stime_index = svtstep ) ! (out)
5921 
5922  ! ファイルのオープン・クローズ・再オープン
5923  ! Open, close, reopen files
5924  !
5925  if ( create_timing_vars(vnum, svtstep) &
5926  & .and. .not. histaddvar_vars(vnum) ) then
5927  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
5928  & varname_vars(vnum), time ) ! (in)
5929  histaddvar_vars(vnum) = .true.
5930  if ( flag_output_prev_vars(vnum) ) then
5931  prev_outtime_vars(vnum) = time
5932  else
5933  flag_output_prev_vars(vnum) = .true.
5934  if ( origin_time_vars(vnum) > zero_time ) then
5935  prev_outtime_vars(vnum) = origin_time_vars(vnum)
5936  else
5937  prev_outtime_vars(vnum) = time
5938  end if
5939  end if
5940  end if
5941 
5942  if ( close_timing_vars(vnum, svtstep) ) then
5943  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
5944  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
5945  end if
5946  end if
5947 
5948  if ( renew_timing_vars(vnum, svtstep) ) then
5949  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
5950  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
5951  end if
5952  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
5953  & varname_vars(vnum), time ) ! (in)
5954  newfile_createtime_vars(vnum) = time
5955  prev_outtime_vars(vnum) = time
5956  end if
5957 
5958  ! 出力が有効かどうかを確認する
5959  ! Confirm whether the output is effective
5960  !
5961  if ( .not. output_timing_vars(vnum, svtstep) &
5962  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
5963 
5964  goto 999
5965  end if
5966 
5967  ! GT_HISTORY 変数の取得
5968  ! Get "GT_HISTORY" variable
5969  !
5970  gthist => gthst_history_vars(vnum) % gthist
5971 
5972 
5973  ! 空間切り出し
5974  ! Slice of spaces
5975  !
5976  sv => slice_vars(vnum)
5977 
5978  !!$ write(*,*) ' sv%st(1), sv%ed(1), sv%sd(1)=', sv%st(1), sv%ed(1), sv%sd(1)
5979 
5980 !!$ write(*,*) ' sv%st(2), sv%ed(2), sv%sd(2)=', sv%st(2), sv%ed(2), sv%sd(2)
5981 
5982 !!$ write(*,*) ' sv%st(3), sv%ed(3), sv%sd(3)=', sv%st(3), sv%ed(3), sv%sd(3)
5983 
5984 !!$ write(*,*) ' sv%st(4), sv%ed(4), sv%sd(4)=', sv%st(4), sv%ed(4), sv%sd(4)
5985 
5986 
5987  array_slice => array(sv%st(1):sv%ed(1):sv%sd(1) &
5988  & , sv%st(2):sv%ed(2):sv%sd(2) &
5989 
5990  & , sv%st(3):sv%ed(3):sv%sd(3) &
5991 
5992  & , sv%st(4):sv%ed(4):sv%sd(4) &
5993 
5994  & )
5995 
5996 
5997 
5998  ! 空間平均
5999  ! Spatial average
6000  !
6001  if ( count(space_avr_vars(vnum) % avr) == 0 ) then
6002  array_avr => array_slice
6003  else
6004  call averagereduce( &
6005  & array_slice, space_avr_vars(vnum) % avr, & ! (in)
6006  & weight_vars(vnum) % wgt1( sv%st(1):sv%ed(1):sv%sd(1) ) , & ! (in)
6007 
6008  & weight_vars(vnum) % wgt2( sv%st(2):sv%ed(2):sv%sd(2) ) , & ! (in)
6009 
6010  & weight_vars(vnum) % wgt3( sv%st(3):sv%ed(3):sv%sd(3) ) , & ! (in)
6011 
6012  & weight_vars(vnum) % wgt4( sv%st(4):sv%ed(4):sv%sd(4) ) , & ! (in)
6013 
6014  & array_avr ) ! (out)
6015  end if
6016 
6017  ! 座標重みを取得 ; Get weights of axes
6018 
6019 
6020 
6021  ! 単位に応じて時刻を変換
6022  ! Convert time according to units
6023  !
6024  if ( output_timing_vars(vnum, svtstep) &
6025  & .or. output_timing_avr_vars(vnum, svtstep) ) then
6026 
6027  settime = &
6028  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
6029  end if
6030 
6031  ! 時刻設定
6032  ! Set time
6033  !
6034  if ( output_timing_vars(vnum, svtstep) ) then
6035  call historysettime( &
6036  & history = gthist, & ! (in) optional
6037  & timed = settime ) ! (in) optional
6038  end if
6039 
6040  ! 出力
6041  ! OutPut
6042  !
6043  if ( output_timing_avr_vars(vnum, svtstep) ) then
6044  call historyput( &
6045  & varname, & ! (in)
6046  & array_avr, & ! (in)
6047 
6048  & timed = settime, & ! (in) optional
6049  & time_average_store = &
6050  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
6051  & history = gthist ) ! (inout) optional
6052  else
6053  call historyput( &
6054  & varname, & ! (in)
6055  & array_avr, & ! (in)
6056 
6057  & history = gthist ) ! (inout) optional
6058  end if
6059 
6060  ! 最後に出力した時刻を保存
6061  ! Save last time of output
6062  !
6063  if ( output_timing_vars(vnum, svtstep) ) then
6064  if ( .not. create_timing_vars(vnum, svtstep) .and. &
6065  & .not. renew_timing_vars(vnum, svtstep) ) then
6066 
6067  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
6068  prev_outtime_vars(vnum) = time
6069  else
6070  prev_outtime_vars(vnum) = &
6071  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
6072  end if
6073  end if
6074  end if
6075 
6076  ! 結合解除
6077  ! Release associations
6078  !
6079  nullify( gthist )
6080  nullify( array_avr, array_slice )
6081 
6082 
6083 999 continue
6084  call storeerror(stat, subname, cause_c = cause_c, err = err)
6085  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputint5()

subroutine historyautoputint5 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
integer, dimension(:,:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 6093 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

6093  !
6094 
6095  !
6096 
6098  & numvars, gthstnml, zero_time, &
6107  & averagereduce
6114  use dc_string, only: tochar
6115  use dc_message, only: messagenotify
6116  use dc_trace, only: beginsub, endsub
6119  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
6120  use dc_date_generic, only: operator(-), operator(+), &
6121  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
6124  use dc_types, only: dp, string, token
6125  implicit none
6126  real(DP), intent(in):: time
6127 
6128  character(*), intent(in):: varname
6129 
6130  integer, intent(in), target:: array(:,:,:,:,:)
6131 
6132  logical, intent(out), optional:: err
6133 
6134 
6135  type(gt_history), pointer:: gthist =>null()
6136  ! gtool_history モジュール用構造体.
6137  ! Derived type for "gtool_history" module
6138 
6139  integer, pointer:: array_slice(:,:,:,:,:) =>null()
6140  type(slice_info), pointer:: sv =>null()
6141  integer, pointer:: array_avr(:,:,:,:,:) =>null()
6142 
6143  real(DP):: settime
6144  integer:: stat, i
6145  integer:: vnum
6146  character(STRING):: cause_c
6147  integer, save:: svnum = 1, svtstep
6148  character(*), parameter:: subname = "HistoryAutoPutInt5"
6149  continue
6150  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
6151  stat = dc_noerr
6152  cause_c = ""
6153 
6154  ! 初期設定チェック
6155  ! Check initialization
6156  !
6157  if ( .not. initialized ) then
6158  stat = dc_enotinit
6159  cause_c = 'gtool_historyauto'
6160  goto 999
6161  end if
6162 
6163  ! 時刻に関するエラー処理
6164  ! Error handling for time
6165  !
6166  if ( time < zero_time ) then
6167  cause_c = tochar( time )
6168  call messagenotify( 'W', subname, &
6169  & '"time=<%c>" must be positive value (varname=<%c>).', &
6170  & c1 = trim( cause_c ), c2 = trim( varname ) )
6171  stat = dc_enegative
6172  cause_c = 'time'
6173  goto 999
6174  end if
6175 
6176  ! 変数 ID のサーチ
6177  ! Search variable ID
6178  !
6179  varsearch: do
6180  do i = svnum, numvars
6181  if ( trim( varname_vars(i) ) == trim(varname) ) then
6182  vnum = i
6183  exit varsearch
6184  end if
6185  end do
6186  do i = 1, svnum - 1
6187  if ( trim( varname_vars(i) ) == trim(varname) ) then
6188  vnum = i
6189  exit varsearch
6190  end if
6191  end do
6192 
6193  stat = hst_ebadvarname
6194  cause_c = varname
6195  goto 999
6196  end do varsearch
6197 
6198  svnum = vnum
6199 
6200  ! 定義モードからデータモードへ
6201  ! Transit from define mode to data mode
6202  !
6203  if ( hstnmlinfodefinemode( gthstnml ) ) then
6204  call hstnmlinfoenddefine( gthstnml ) ! (inout)
6205  end if
6206 
6207  ! 出力タイミングのチェックとファイルの作成
6208  ! Check output timing and create files
6209  !
6210  call hstvarsoutputcheck( &
6211  & time = time, & ! (in)
6212  & stime_index = svtstep ) ! (out)
6213 
6214  ! ファイルのオープン・クローズ・再オープン
6215  ! Open, close, reopen files
6216  !
6217  if ( create_timing_vars(vnum, svtstep) &
6218  & .and. .not. histaddvar_vars(vnum) ) then
6219  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
6220  & varname_vars(vnum), time ) ! (in)
6221  histaddvar_vars(vnum) = .true.
6222  if ( flag_output_prev_vars(vnum) ) then
6223  prev_outtime_vars(vnum) = time
6224  else
6225  flag_output_prev_vars(vnum) = .true.
6226  if ( origin_time_vars(vnum) > zero_time ) then
6227  prev_outtime_vars(vnum) = origin_time_vars(vnum)
6228  else
6229  prev_outtime_vars(vnum) = time
6230  end if
6231  end if
6232  end if
6233 
6234  if ( close_timing_vars(vnum, svtstep) ) then
6235  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
6236  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
6237  end if
6238  end if
6239 
6240  if ( renew_timing_vars(vnum, svtstep) ) then
6241  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
6242  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
6243  end if
6244  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
6245  & varname_vars(vnum), time ) ! (in)
6246  newfile_createtime_vars(vnum) = time
6247  prev_outtime_vars(vnum) = time
6248  end if
6249 
6250  ! 出力が有効かどうかを確認する
6251  ! Confirm whether the output is effective
6252  !
6253  if ( .not. output_timing_vars(vnum, svtstep) &
6254  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
6255 
6256  goto 999
6257  end if
6258 
6259  ! GT_HISTORY 変数の取得
6260  ! Get "GT_HISTORY" variable
6261  !
6262  gthist => gthst_history_vars(vnum) % gthist
6263 
6264 
6265  ! 空間切り出し
6266  ! Slice of spaces
6267  !
6268  sv => slice_vars(vnum)
6269 
6270  !!$ write(*,*) ' sv%st(1), sv%ed(1), sv%sd(1)=', sv%st(1), sv%ed(1), sv%sd(1)
6271 
6272 !!$ write(*,*) ' sv%st(2), sv%ed(2), sv%sd(2)=', sv%st(2), sv%ed(2), sv%sd(2)
6273 
6274 !!$ write(*,*) ' sv%st(3), sv%ed(3), sv%sd(3)=', sv%st(3), sv%ed(3), sv%sd(3)
6275 
6276 !!$ write(*,*) ' sv%st(4), sv%ed(4), sv%sd(4)=', sv%st(4), sv%ed(4), sv%sd(4)
6277 
6278 !!$ write(*,*) ' sv%st(5), sv%ed(5), sv%sd(5)=', sv%st(5), sv%ed(5), sv%sd(5)
6279 
6280 
6281  array_slice => array(sv%st(1):sv%ed(1):sv%sd(1) &
6282  & , sv%st(2):sv%ed(2):sv%sd(2) &
6283 
6284  & , sv%st(3):sv%ed(3):sv%sd(3) &
6285 
6286  & , sv%st(4):sv%ed(4):sv%sd(4) &
6287 
6288  & , sv%st(5):sv%ed(5):sv%sd(5) &
6289 
6290  & )
6291 
6292 
6293 
6294  ! 空間平均
6295  ! Spatial average
6296  !
6297  if ( count(space_avr_vars(vnum) % avr) == 0 ) then
6298  array_avr => array_slice
6299  else
6300  call averagereduce( &
6301  & array_slice, space_avr_vars(vnum) % avr, & ! (in)
6302  & weight_vars(vnum) % wgt1( sv%st(1):sv%ed(1):sv%sd(1) ) , & ! (in)
6303 
6304  & weight_vars(vnum) % wgt2( sv%st(2):sv%ed(2):sv%sd(2) ) , & ! (in)
6305 
6306  & weight_vars(vnum) % wgt3( sv%st(3):sv%ed(3):sv%sd(3) ) , & ! (in)
6307 
6308  & weight_vars(vnum) % wgt4( sv%st(4):sv%ed(4):sv%sd(4) ) , & ! (in)
6309 
6310  & weight_vars(vnum) % wgt5( sv%st(5):sv%ed(5):sv%sd(5) ) , & ! (in)
6311 
6312  & array_avr ) ! (out)
6313  end if
6314 
6315  ! 座標重みを取得 ; Get weights of axes
6316 
6317 
6318 
6319  ! 単位に応じて時刻を変換
6320  ! Convert time according to units
6321  !
6322  if ( output_timing_vars(vnum, svtstep) &
6323  & .or. output_timing_avr_vars(vnum, svtstep) ) then
6324 
6325  settime = &
6326  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
6327  end if
6328 
6329  ! 時刻設定
6330  ! Set time
6331  !
6332  if ( output_timing_vars(vnum, svtstep) ) then
6333  call historysettime( &
6334  & history = gthist, & ! (in) optional
6335  & timed = settime ) ! (in) optional
6336  end if
6337 
6338  ! 出力
6339  ! OutPut
6340  !
6341  if ( output_timing_avr_vars(vnum, svtstep) ) then
6342  call historyput( &
6343  & varname, & ! (in)
6344  & array_avr, & ! (in)
6345 
6346  & timed = settime, & ! (in) optional
6347  & time_average_store = &
6348  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
6349  & history = gthist ) ! (inout) optional
6350  else
6351  call historyput( &
6352  & varname, & ! (in)
6353  & array_avr, & ! (in)
6354 
6355  & history = gthist ) ! (inout) optional
6356  end if
6357 
6358  ! 最後に出力した時刻を保存
6359  ! Save last time of output
6360  !
6361  if ( output_timing_vars(vnum, svtstep) ) then
6362  if ( .not. create_timing_vars(vnum, svtstep) .and. &
6363  & .not. renew_timing_vars(vnum, svtstep) ) then
6364 
6365  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
6366  prev_outtime_vars(vnum) = time
6367  else
6368  prev_outtime_vars(vnum) = &
6369  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
6370  end if
6371  end if
6372  end if
6373 
6374  ! 結合解除
6375  ! Release associations
6376  !
6377  nullify( gthist )
6378  nullify( array_avr, array_slice )
6379 
6380 
6381 999 continue
6382  call storeerror(stat, subname, cause_c = cause_c, err = err)
6383  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputint6()

subroutine historyautoputint6 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
integer, dimension(:,:,:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 6391 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

6391  !
6392 
6393  !
6394 
6396  & numvars, gthstnml, zero_time, &
6405  & averagereduce
6412  use dc_string, only: tochar
6413  use dc_message, only: messagenotify
6414  use dc_trace, only: beginsub, endsub
6417  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
6418  use dc_date_generic, only: operator(-), operator(+), &
6419  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
6422  use dc_types, only: dp, string, token
6423  implicit none
6424  real(DP), intent(in):: time
6425 
6426  character(*), intent(in):: varname
6427 
6428  integer, intent(in), target:: array(:,:,:,:,:,:)
6429 
6430  logical, intent(out), optional:: err
6431 
6432 
6433  type(gt_history), pointer:: gthist =>null()
6434  ! gtool_history モジュール用構造体.
6435  ! Derived type for "gtool_history" module
6436 
6437  integer, pointer:: array_slice(:,:,:,:,:,:) =>null()
6438  type(slice_info), pointer:: sv =>null()
6439  integer, pointer:: array_avr(:,:,:,:,:,:) =>null()
6440 
6441  real(DP):: settime
6442  integer:: stat, i
6443  integer:: vnum
6444  character(STRING):: cause_c
6445  integer, save:: svnum = 1, svtstep
6446  character(*), parameter:: subname = "HistoryAutoPutInt6"
6447  continue
6448  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
6449  stat = dc_noerr
6450  cause_c = ""
6451 
6452  ! 初期設定チェック
6453  ! Check initialization
6454  !
6455  if ( .not. initialized ) then
6456  stat = dc_enotinit
6457  cause_c = 'gtool_historyauto'
6458  goto 999
6459  end if
6460 
6461  ! 時刻に関するエラー処理
6462  ! Error handling for time
6463  !
6464  if ( time < zero_time ) then
6465  cause_c = tochar( time )
6466  call messagenotify( 'W', subname, &
6467  & '"time=<%c>" must be positive value (varname=<%c>).', &
6468  & c1 = trim( cause_c ), c2 = trim( varname ) )
6469  stat = dc_enegative
6470  cause_c = 'time'
6471  goto 999
6472  end if
6473 
6474  ! 変数 ID のサーチ
6475  ! Search variable ID
6476  !
6477  varsearch: do
6478  do i = svnum, numvars
6479  if ( trim( varname_vars(i) ) == trim(varname) ) then
6480  vnum = i
6481  exit varsearch
6482  end if
6483  end do
6484  do i = 1, svnum - 1
6485  if ( trim( varname_vars(i) ) == trim(varname) ) then
6486  vnum = i
6487  exit varsearch
6488  end if
6489  end do
6490 
6491  stat = hst_ebadvarname
6492  cause_c = varname
6493  goto 999
6494  end do varsearch
6495 
6496  svnum = vnum
6497 
6498  ! 定義モードからデータモードへ
6499  ! Transit from define mode to data mode
6500  !
6501  if ( hstnmlinfodefinemode( gthstnml ) ) then
6502  call hstnmlinfoenddefine( gthstnml ) ! (inout)
6503  end if
6504 
6505  ! 出力タイミングのチェックとファイルの作成
6506  ! Check output timing and create files
6507  !
6508  call hstvarsoutputcheck( &
6509  & time = time, & ! (in)
6510  & stime_index = svtstep ) ! (out)
6511 
6512  ! ファイルのオープン・クローズ・再オープン
6513  ! Open, close, reopen files
6514  !
6515  if ( create_timing_vars(vnum, svtstep) &
6516  & .and. .not. histaddvar_vars(vnum) ) then
6517  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
6518  & varname_vars(vnum), time ) ! (in)
6519  histaddvar_vars(vnum) = .true.
6520  if ( flag_output_prev_vars(vnum) ) then
6521  prev_outtime_vars(vnum) = time
6522  else
6523  flag_output_prev_vars(vnum) = .true.
6524  if ( origin_time_vars(vnum) > zero_time ) then
6525  prev_outtime_vars(vnum) = origin_time_vars(vnum)
6526  else
6527  prev_outtime_vars(vnum) = time
6528  end if
6529  end if
6530  end if
6531 
6532  if ( close_timing_vars(vnum, svtstep) ) then
6533  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
6534  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
6535  end if
6536  end if
6537 
6538  if ( renew_timing_vars(vnum, svtstep) ) then
6539  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
6540  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
6541  end if
6542  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
6543  & varname_vars(vnum), time ) ! (in)
6544  newfile_createtime_vars(vnum) = time
6545  prev_outtime_vars(vnum) = time
6546  end if
6547 
6548  ! 出力が有効かどうかを確認する
6549  ! Confirm whether the output is effective
6550  !
6551  if ( .not. output_timing_vars(vnum, svtstep) &
6552  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
6553 
6554  goto 999
6555  end if
6556 
6557  ! GT_HISTORY 変数の取得
6558  ! Get "GT_HISTORY" variable
6559  !
6560  gthist => gthst_history_vars(vnum) % gthist
6561 
6562 
6563  ! 空間切り出し
6564  ! Slice of spaces
6565  !
6566  sv => slice_vars(vnum)
6567 
6568  !!$ write(*,*) ' sv%st(1), sv%ed(1), sv%sd(1)=', sv%st(1), sv%ed(1), sv%sd(1)
6569 
6570 !!$ write(*,*) ' sv%st(2), sv%ed(2), sv%sd(2)=', sv%st(2), sv%ed(2), sv%sd(2)
6571 
6572 !!$ write(*,*) ' sv%st(3), sv%ed(3), sv%sd(3)=', sv%st(3), sv%ed(3), sv%sd(3)
6573 
6574 !!$ write(*,*) ' sv%st(4), sv%ed(4), sv%sd(4)=', sv%st(4), sv%ed(4), sv%sd(4)
6575 
6576 !!$ write(*,*) ' sv%st(5), sv%ed(5), sv%sd(5)=', sv%st(5), sv%ed(5), sv%sd(5)
6577 
6578 !!$ write(*,*) ' sv%st(6), sv%ed(6), sv%sd(6)=', sv%st(6), sv%ed(6), sv%sd(6)
6579 
6580 
6581  array_slice => array(sv%st(1):sv%ed(1):sv%sd(1) &
6582  & , sv%st(2):sv%ed(2):sv%sd(2) &
6583 
6584  & , sv%st(3):sv%ed(3):sv%sd(3) &
6585 
6586  & , sv%st(4):sv%ed(4):sv%sd(4) &
6587 
6588  & , sv%st(5):sv%ed(5):sv%sd(5) &
6589 
6590  & , sv%st(6):sv%ed(6):sv%sd(6) &
6591 
6592  & )
6593 
6594 
6595 
6596  ! 空間平均
6597  ! Spatial average
6598  !
6599  if ( count(space_avr_vars(vnum) % avr) == 0 ) then
6600  array_avr => array_slice
6601  else
6602  call averagereduce( &
6603  & array_slice, space_avr_vars(vnum) % avr, & ! (in)
6604  & weight_vars(vnum) % wgt1( sv%st(1):sv%ed(1):sv%sd(1) ) , & ! (in)
6605 
6606  & weight_vars(vnum) % wgt2( sv%st(2):sv%ed(2):sv%sd(2) ) , & ! (in)
6607 
6608  & weight_vars(vnum) % wgt3( sv%st(3):sv%ed(3):sv%sd(3) ) , & ! (in)
6609 
6610  & weight_vars(vnum) % wgt4( sv%st(4):sv%ed(4):sv%sd(4) ) , & ! (in)
6611 
6612  & weight_vars(vnum) % wgt5( sv%st(5):sv%ed(5):sv%sd(5) ) , & ! (in)
6613 
6614  & weight_vars(vnum) % wgt6( sv%st(6):sv%ed(6):sv%sd(6) ) , & ! (in)
6615 
6616  & array_avr ) ! (out)
6617  end if
6618 
6619  ! 座標重みを取得 ; Get weights of axes
6620 
6621 
6622 
6623  ! 単位に応じて時刻を変換
6624  ! Convert time according to units
6625  !
6626  if ( output_timing_vars(vnum, svtstep) &
6627  & .or. output_timing_avr_vars(vnum, svtstep) ) then
6628 
6629  settime = &
6630  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
6631  end if
6632 
6633  ! 時刻設定
6634  ! Set time
6635  !
6636  if ( output_timing_vars(vnum, svtstep) ) then
6637  call historysettime( &
6638  & history = gthist, & ! (in) optional
6639  & timed = settime ) ! (in) optional
6640  end if
6641 
6642  ! 出力
6643  ! OutPut
6644  !
6645  if ( output_timing_avr_vars(vnum, svtstep) ) then
6646  call historyput( &
6647  & varname, & ! (in)
6648  & array_avr, & ! (in)
6649 
6650  & timed = settime, & ! (in) optional
6651  & time_average_store = &
6652  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
6653  & history = gthist ) ! (inout) optional
6654  else
6655  call historyput( &
6656  & varname, & ! (in)
6657  & array_avr, & ! (in)
6658 
6659  & history = gthist ) ! (inout) optional
6660  end if
6661 
6662  ! 最後に出力した時刻を保存
6663  ! Save last time of output
6664  !
6665  if ( output_timing_vars(vnum, svtstep) ) then
6666  if ( .not. create_timing_vars(vnum, svtstep) .and. &
6667  & .not. renew_timing_vars(vnum, svtstep) ) then
6668 
6669  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
6670  prev_outtime_vars(vnum) = time
6671  else
6672  prev_outtime_vars(vnum) = &
6673  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
6674  end if
6675  end if
6676  end if
6677 
6678  ! 結合解除
6679  ! Release associations
6680  !
6681  nullify( gthist )
6682  nullify( array_avr, array_slice )
6683 
6684 
6685 999 continue
6686  call storeerror(stat, subname, cause_c = cause_c, err = err)
6687  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputint7()

subroutine historyautoputint7 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
integer, dimension(:,:,:,:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 6695 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

6695  !
6696 
6697  !
6698 
6700  & numvars, gthstnml, zero_time, &
6709  & averagereduce
6716  use dc_string, only: tochar
6717  use dc_message, only: messagenotify
6718  use dc_trace, only: beginsub, endsub
6721  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
6722  use dc_date_generic, only: operator(-), operator(+), &
6723  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
6726  use dc_types, only: dp, string, token
6727  implicit none
6728  real(DP), intent(in):: time
6729 
6730  character(*), intent(in):: varname
6731 
6732  integer, intent(in), target:: array(:,:,:,:,:,:,:)
6733 
6734  logical, intent(out), optional:: err
6735 
6736 
6737  type(gt_history), pointer:: gthist =>null()
6738  ! gtool_history モジュール用構造体.
6739  ! Derived type for "gtool_history" module
6740 
6741  integer, pointer:: array_slice(:,:,:,:,:,:,:) =>null()
6742  type(slice_info), pointer:: sv =>null()
6743  integer, pointer:: array_avr(:,:,:,:,:,:,:) =>null()
6744 
6745  real(DP):: settime
6746  integer:: stat, i
6747  integer:: vnum
6748  character(STRING):: cause_c
6749  integer, save:: svnum = 1, svtstep
6750  character(*), parameter:: subname = "HistoryAutoPutInt7"
6751  continue
6752  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
6753  stat = dc_noerr
6754  cause_c = ""
6755 
6756  ! 初期設定チェック
6757  ! Check initialization
6758  !
6759  if ( .not. initialized ) then
6760  stat = dc_enotinit
6761  cause_c = 'gtool_historyauto'
6762  goto 999
6763  end if
6764 
6765  ! 時刻に関するエラー処理
6766  ! Error handling for time
6767  !
6768  if ( time < zero_time ) then
6769  cause_c = tochar( time )
6770  call messagenotify( 'W', subname, &
6771  & '"time=<%c>" must be positive value (varname=<%c>).', &
6772  & c1 = trim( cause_c ), c2 = trim( varname ) )
6773  stat = dc_enegative
6774  cause_c = 'time'
6775  goto 999
6776  end if
6777 
6778  ! 変数 ID のサーチ
6779  ! Search variable ID
6780  !
6781  varsearch: do
6782  do i = svnum, numvars
6783  if ( trim( varname_vars(i) ) == trim(varname) ) then
6784  vnum = i
6785  exit varsearch
6786  end if
6787  end do
6788  do i = 1, svnum - 1
6789  if ( trim( varname_vars(i) ) == trim(varname) ) then
6790  vnum = i
6791  exit varsearch
6792  end if
6793  end do
6794 
6795  stat = hst_ebadvarname
6796  cause_c = varname
6797  goto 999
6798  end do varsearch
6799 
6800  svnum = vnum
6801 
6802  ! 定義モードからデータモードへ
6803  ! Transit from define mode to data mode
6804  !
6805  if ( hstnmlinfodefinemode( gthstnml ) ) then
6806  call hstnmlinfoenddefine( gthstnml ) ! (inout)
6807  end if
6808 
6809  ! 出力タイミングのチェックとファイルの作成
6810  ! Check output timing and create files
6811  !
6812  call hstvarsoutputcheck( &
6813  & time = time, & ! (in)
6814  & stime_index = svtstep ) ! (out)
6815 
6816  ! ファイルのオープン・クローズ・再オープン
6817  ! Open, close, reopen files
6818  !
6819  if ( create_timing_vars(vnum, svtstep) &
6820  & .and. .not. histaddvar_vars(vnum) ) then
6821  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
6822  & varname_vars(vnum), time ) ! (in)
6823  histaddvar_vars(vnum) = .true.
6824  if ( flag_output_prev_vars(vnum) ) then
6825  prev_outtime_vars(vnum) = time
6826  else
6827  flag_output_prev_vars(vnum) = .true.
6828  if ( origin_time_vars(vnum) > zero_time ) then
6829  prev_outtime_vars(vnum) = origin_time_vars(vnum)
6830  else
6831  prev_outtime_vars(vnum) = time
6832  end if
6833  end if
6834  end if
6835 
6836  if ( close_timing_vars(vnum, svtstep) ) then
6837  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
6838  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
6839  end if
6840  end if
6841 
6842  if ( renew_timing_vars(vnum, svtstep) ) then
6843  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
6844  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
6845  end if
6846  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
6847  & varname_vars(vnum), time ) ! (in)
6848  newfile_createtime_vars(vnum) = time
6849  prev_outtime_vars(vnum) = time
6850  end if
6851 
6852  ! 出力が有効かどうかを確認する
6853  ! Confirm whether the output is effective
6854  !
6855  if ( .not. output_timing_vars(vnum, svtstep) &
6856  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
6857 
6858  goto 999
6859  end if
6860 
6861  ! GT_HISTORY 変数の取得
6862  ! Get "GT_HISTORY" variable
6863  !
6864  gthist => gthst_history_vars(vnum) % gthist
6865 
6866 
6867  ! 空間切り出し
6868  ! Slice of spaces
6869  !
6870  sv => slice_vars(vnum)
6871 
6872  !!$ write(*,*) ' sv%st(1), sv%ed(1), sv%sd(1)=', sv%st(1), sv%ed(1), sv%sd(1)
6873 
6874 !!$ write(*,*) ' sv%st(2), sv%ed(2), sv%sd(2)=', sv%st(2), sv%ed(2), sv%sd(2)
6875 
6876 !!$ write(*,*) ' sv%st(3), sv%ed(3), sv%sd(3)=', sv%st(3), sv%ed(3), sv%sd(3)
6877 
6878 !!$ write(*,*) ' sv%st(4), sv%ed(4), sv%sd(4)=', sv%st(4), sv%ed(4), sv%sd(4)
6879 
6880 !!$ write(*,*) ' sv%st(5), sv%ed(5), sv%sd(5)=', sv%st(5), sv%ed(5), sv%sd(5)
6881 
6882 !!$ write(*,*) ' sv%st(6), sv%ed(6), sv%sd(6)=', sv%st(6), sv%ed(6), sv%sd(6)
6883 
6884 !!$ write(*,*) ' sv%st(7), sv%ed(7), sv%sd(7)=', sv%st(7), sv%ed(7), sv%sd(7)
6885 
6886 
6887  array_slice => array(sv%st(1):sv%ed(1):sv%sd(1) &
6888  & , sv%st(2):sv%ed(2):sv%sd(2) &
6889 
6890  & , sv%st(3):sv%ed(3):sv%sd(3) &
6891 
6892  & , sv%st(4):sv%ed(4):sv%sd(4) &
6893 
6894  & , sv%st(5):sv%ed(5):sv%sd(5) &
6895 
6896  & , sv%st(6):sv%ed(6):sv%sd(6) &
6897 
6898  & , sv%st(7):sv%ed(7):sv%sd(7) &
6899 
6900  & )
6901 
6902 
6903 
6904  ! 空間平均
6905  ! Spatial average
6906  !
6907  if ( count(space_avr_vars(vnum) % avr) == 0 ) then
6908  array_avr => array_slice
6909  else
6910  call averagereduce( &
6911  & array_slice, space_avr_vars(vnum) % avr, & ! (in)
6912  & weight_vars(vnum) % wgt1( sv%st(1):sv%ed(1):sv%sd(1) ) , & ! (in)
6913 
6914  & weight_vars(vnum) % wgt2( sv%st(2):sv%ed(2):sv%sd(2) ) , & ! (in)
6915 
6916  & weight_vars(vnum) % wgt3( sv%st(3):sv%ed(3):sv%sd(3) ) , & ! (in)
6917 
6918  & weight_vars(vnum) % wgt4( sv%st(4):sv%ed(4):sv%sd(4) ) , & ! (in)
6919 
6920  & weight_vars(vnum) % wgt5( sv%st(5):sv%ed(5):sv%sd(5) ) , & ! (in)
6921 
6922  & weight_vars(vnum) % wgt6( sv%st(6):sv%ed(6):sv%sd(6) ) , & ! (in)
6923 
6924  & weight_vars(vnum) % wgt7( sv%st(7):sv%ed(7):sv%sd(7) ) , & ! (in)
6925 
6926  & array_avr ) ! (out)
6927  end if
6928 
6929  ! 座標重みを取得 ; Get weights of axes
6930 
6931 
6932 
6933  ! 単位に応じて時刻を変換
6934  ! Convert time according to units
6935  !
6936  if ( output_timing_vars(vnum, svtstep) &
6937  & .or. output_timing_avr_vars(vnum, svtstep) ) then
6938 
6939  settime = &
6940  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
6941  end if
6942 
6943  ! 時刻設定
6944  ! Set time
6945  !
6946  if ( output_timing_vars(vnum, svtstep) ) then
6947  call historysettime( &
6948  & history = gthist, & ! (in) optional
6949  & timed = settime ) ! (in) optional
6950  end if
6951 
6952  ! 出力
6953  ! OutPut
6954  !
6955  if ( output_timing_avr_vars(vnum, svtstep) ) then
6956  call historyput( &
6957  & varname, & ! (in)
6958  & array_avr, & ! (in)
6959 
6960  & timed = settime, & ! (in) optional
6961  & time_average_store = &
6962  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
6963  & history = gthist ) ! (inout) optional
6964  else
6965  call historyput( &
6966  & varname, & ! (in)
6967  & array_avr, & ! (in)
6968 
6969  & history = gthist ) ! (inout) optional
6970  end if
6971 
6972  ! 最後に出力した時刻を保存
6973  ! Save last time of output
6974  !
6975  if ( output_timing_vars(vnum, svtstep) ) then
6976  if ( .not. create_timing_vars(vnum, svtstep) .and. &
6977  & .not. renew_timing_vars(vnum, svtstep) ) then
6978 
6979  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
6980  prev_outtime_vars(vnum) = time
6981  else
6982  prev_outtime_vars(vnum) = &
6983  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
6984  end if
6985  end if
6986  end if
6987 
6988  ! 結合解除
6989  ! Release associations
6990  !
6991  nullify( gthist )
6992  nullify( array_avr, array_slice )
6993 
6994 
6995 999 continue
6996  call storeerror(stat, subname, cause_c = cause_c, err = err)
6997  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputold1double0()

subroutine historyautoputold1double0 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
real(dp), intent(in), target  value,
logical, intent(out), optional  err 
)

Definition at line 7005 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7006  use dc_date_generic, only: operator(-), operator(+), &
7007  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7008  & dcdifftimeputline, assignment(=)
7009  use dc_types, only: dp, string, token
7011  implicit none
7012  type(dc_difftime), intent(in):: time
7013  character(*), intent(in):: varname
7014  real(DP), intent(in), target:: value
7015  logical, intent(out), optional:: err
7016 
7017  real(DP):: timed
7018 
7019  continue
7020  timed = evalsec( time )
7021 
7022  call historyautoput( &
7023  & timed, varname, value, & ! (in)
7024  & err ) ! (out) optional
7025 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1double1()

subroutine historyautoputold1double1 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
real(dp), dimension(:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 7033 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7034  use dc_date_generic, only: operator(-), operator(+), &
7035  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7036  & dcdifftimeputline, assignment(=)
7037  use dc_types, only: dp, string, token
7039  implicit none
7040  type(dc_difftime), intent(in):: time
7041  character(*), intent(in):: varname
7042  real(DP), intent(in), target:: array(:)
7043  logical, intent(out), optional:: err
7044 
7045  real(DP):: timed
7046 
7047  continue
7048  timed = evalsec( time )
7049 
7050  call historyautoput( &
7051  & timed, varname, array, & ! (in)
7052  & err ) ! (out) optional
7053 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1double2()

subroutine historyautoputold1double2 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
real(dp), dimension(:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 7061 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7062  use dc_date_generic, only: operator(-), operator(+), &
7063  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7064  & dcdifftimeputline, assignment(=)
7065  use dc_types, only: dp, string, token
7067  implicit none
7068  type(dc_difftime), intent(in):: time
7069  character(*), intent(in):: varname
7070  real(DP), intent(in), target:: array(:,:)
7071  logical, intent(out), optional:: err
7072 
7073  real(DP):: timed
7074 
7075  continue
7076  timed = evalsec( time )
7077 
7078  call historyautoput( &
7079  & timed, varname, array, & ! (in)
7080  & err ) ! (out) optional
7081 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1double3()

subroutine historyautoputold1double3 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
real(dp), dimension(:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 7089 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7090  use dc_date_generic, only: operator(-), operator(+), &
7091  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7092  & dcdifftimeputline, assignment(=)
7093  use dc_types, only: dp, string, token
7095  implicit none
7096  type(dc_difftime), intent(in):: time
7097  character(*), intent(in):: varname
7098  real(DP), intent(in), target:: array(:,:,:)
7099  logical, intent(out), optional:: err
7100 
7101  real(DP):: timed
7102 
7103  continue
7104  timed = evalsec( time )
7105 
7106  call historyautoput( &
7107  & timed, varname, array, & ! (in)
7108  & err ) ! (out) optional
7109 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1double4()

subroutine historyautoputold1double4 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
real(dp), dimension(:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 7117 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7118  use dc_date_generic, only: operator(-), operator(+), &
7119  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7120  & dcdifftimeputline, assignment(=)
7121  use dc_types, only: dp, string, token
7123  implicit none
7124  type(dc_difftime), intent(in):: time
7125  character(*), intent(in):: varname
7126  real(DP), intent(in), target:: array(:,:,:,:)
7127  logical, intent(out), optional:: err
7128 
7129  real(DP):: timed
7130 
7131  continue
7132  timed = evalsec( time )
7133 
7134  call historyautoput( &
7135  & timed, varname, array, & ! (in)
7136  & err ) ! (out) optional
7137 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1double5()

subroutine historyautoputold1double5 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
real(dp), dimension(:,:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 7145 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7146  use dc_date_generic, only: operator(-), operator(+), &
7147  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7148  & dcdifftimeputline, assignment(=)
7149  use dc_types, only: dp, string, token
7151  implicit none
7152  type(dc_difftime), intent(in):: time
7153  character(*), intent(in):: varname
7154  real(DP), intent(in), target:: array(:,:,:,:,:)
7155  logical, intent(out), optional:: err
7156 
7157  real(DP):: timed
7158 
7159  continue
7160  timed = evalsec( time )
7161 
7162  call historyautoput( &
7163  & timed, varname, array, & ! (in)
7164  & err ) ! (out) optional
7165 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1double6()

subroutine historyautoputold1double6 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
real(dp), dimension(:,:,:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 7173 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7174  use dc_date_generic, only: operator(-), operator(+), &
7175  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7176  & dcdifftimeputline, assignment(=)
7177  use dc_types, only: dp, string, token
7179  implicit none
7180  type(dc_difftime), intent(in):: time
7181  character(*), intent(in):: varname
7182  real(DP), intent(in), target:: array(:,:,:,:,:,:)
7183  logical, intent(out), optional:: err
7184 
7185  real(DP):: timed
7186 
7187  continue
7188  timed = evalsec( time )
7189 
7190  call historyautoput( &
7191  & timed, varname, array, & ! (in)
7192  & err ) ! (out) optional
7193 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1double7()

subroutine historyautoputold1double7 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
real(dp), dimension(:,:,:,:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 7201 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7202  use dc_date_generic, only: operator(-), operator(+), &
7203  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7204  & dcdifftimeputline, assignment(=)
7205  use dc_types, only: dp, string, token
7207  implicit none
7208  type(dc_difftime), intent(in):: time
7209  character(*), intent(in):: varname
7210  real(DP), intent(in), target:: array(:,:,:,:,:,:,:)
7211  logical, intent(out), optional:: err
7212 
7213  real(DP):: timed
7214 
7215  continue
7216  timed = evalsec( time )
7217 
7218  call historyautoput( &
7219  & timed, varname, array, & ! (in)
7220  & err ) ! (out) optional
7221 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1int0()

subroutine historyautoputold1int0 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
integer, intent(in), target  value,
logical, intent(out), optional  err 
)

Definition at line 7453 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7454  use dc_date_generic, only: operator(-), operator(+), &
7455  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7456  & dcdifftimeputline, assignment(=)
7457  use dc_types, only: dp, string, token
7459  implicit none
7460  type(dc_difftime), intent(in):: time
7461  character(*), intent(in):: varname
7462  integer, intent(in), target:: value
7463  logical, intent(out), optional:: err
7464 
7465  real(DP):: timed
7466 
7467  continue
7468  timed = evalsec( time )
7469 
7470  call historyautoput( &
7471  & timed, varname, value, & ! (in)
7472  & err ) ! (out) optional
7473 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1int1()

subroutine historyautoputold1int1 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
integer, dimension(:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 7481 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7482  use dc_date_generic, only: operator(-), operator(+), &
7483  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7484  & dcdifftimeputline, assignment(=)
7485  use dc_types, only: dp, string, token
7487  implicit none
7488  type(dc_difftime), intent(in):: time
7489  character(*), intent(in):: varname
7490  integer, intent(in), target:: array(:)
7491  logical, intent(out), optional:: err
7492 
7493  real(DP):: timed
7494 
7495  continue
7496  timed = evalsec( time )
7497 
7498  call historyautoput( &
7499  & timed, varname, array, & ! (in)
7500  & err ) ! (out) optional
7501 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1int2()

subroutine historyautoputold1int2 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
integer, dimension(:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 7509 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7510  use dc_date_generic, only: operator(-), operator(+), &
7511  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7512  & dcdifftimeputline, assignment(=)
7513  use dc_types, only: dp, string, token
7515  implicit none
7516  type(dc_difftime), intent(in):: time
7517  character(*), intent(in):: varname
7518  integer, intent(in), target:: array(:,:)
7519  logical, intent(out), optional:: err
7520 
7521  real(DP):: timed
7522 
7523  continue
7524  timed = evalsec( time )
7525 
7526  call historyautoput( &
7527  & timed, varname, array, & ! (in)
7528  & err ) ! (out) optional
7529 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1int3()

subroutine historyautoputold1int3 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
integer, dimension(:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 7537 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7538  use dc_date_generic, only: operator(-), operator(+), &
7539  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7540  & dcdifftimeputline, assignment(=)
7541  use dc_types, only: dp, string, token
7543  implicit none
7544  type(dc_difftime), intent(in):: time
7545  character(*), intent(in):: varname
7546  integer, intent(in), target:: array(:,:,:)
7547  logical, intent(out), optional:: err
7548 
7549  real(DP):: timed
7550 
7551  continue
7552  timed = evalsec( time )
7553 
7554  call historyautoput( &
7555  & timed, varname, array, & ! (in)
7556  & err ) ! (out) optional
7557 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1int4()

subroutine historyautoputold1int4 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
integer, dimension(:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 7565 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7566  use dc_date_generic, only: operator(-), operator(+), &
7567  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7568  & dcdifftimeputline, assignment(=)
7569  use dc_types, only: dp, string, token
7571  implicit none
7572  type(dc_difftime), intent(in):: time
7573  character(*), intent(in):: varname
7574  integer, intent(in), target:: array(:,:,:,:)
7575  logical, intent(out), optional:: err
7576 
7577  real(DP):: timed
7578 
7579  continue
7580  timed = evalsec( time )
7581 
7582  call historyautoput( &
7583  & timed, varname, array, & ! (in)
7584  & err ) ! (out) optional
7585 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1int5()

subroutine historyautoputold1int5 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
integer, dimension(:,:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 7593 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7594  use dc_date_generic, only: operator(-), operator(+), &
7595  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7596  & dcdifftimeputline, assignment(=)
7597  use dc_types, only: dp, string, token
7599  implicit none
7600  type(dc_difftime), intent(in):: time
7601  character(*), intent(in):: varname
7602  integer, intent(in), target:: array(:,:,:,:,:)
7603  logical, intent(out), optional:: err
7604 
7605  real(DP):: timed
7606 
7607  continue
7608  timed = evalsec( time )
7609 
7610  call historyautoput( &
7611  & timed, varname, array, & ! (in)
7612  & err ) ! (out) optional
7613 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1int6()

subroutine historyautoputold1int6 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
integer, dimension(:,:,:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 7621 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7622  use dc_date_generic, only: operator(-), operator(+), &
7623  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7624  & dcdifftimeputline, assignment(=)
7625  use dc_types, only: dp, string, token
7627  implicit none
7628  type(dc_difftime), intent(in):: time
7629  character(*), intent(in):: varname
7630  integer, intent(in), target:: array(:,:,:,:,:,:)
7631  logical, intent(out), optional:: err
7632 
7633  real(DP):: timed
7634 
7635  continue
7636  timed = evalsec( time )
7637 
7638  call historyautoput( &
7639  & timed, varname, array, & ! (in)
7640  & err ) ! (out) optional
7641 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1int7()

subroutine historyautoputold1int7 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
integer, dimension(:,:,:,:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 7649 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7650  use dc_date_generic, only: operator(-), operator(+), &
7651  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7652  & dcdifftimeputline, assignment(=)
7653  use dc_types, only: dp, string, token
7655  implicit none
7656  type(dc_difftime), intent(in):: time
7657  character(*), intent(in):: varname
7658  integer, intent(in), target:: array(:,:,:,:,:,:,:)
7659  logical, intent(out), optional:: err
7660 
7661  real(DP):: timed
7662 
7663  continue
7664  timed = evalsec( time )
7665 
7666  call historyautoput( &
7667  & timed, varname, array, & ! (in)
7668  & err ) ! (out) optional
7669 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1real0()

subroutine historyautoputold1real0 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
real, intent(in), target  value,
logical, intent(out), optional  err 
)

Definition at line 7229 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7230  use dc_date_generic, only: operator(-), operator(+), &
7231  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7232  & dcdifftimeputline, assignment(=)
7233  use dc_types, only: dp, string, token
7235  implicit none
7236  type(dc_difftime), intent(in):: time
7237  character(*), intent(in):: varname
7238  real, intent(in), target:: value
7239  logical, intent(out), optional:: err
7240 
7241  real(DP):: timed
7242 
7243  continue
7244  timed = evalsec( time )
7245 
7246  call historyautoput( &
7247  & timed, varname, value, & ! (in)
7248  & err ) ! (out) optional
7249 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1real1()

subroutine historyautoputold1real1 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
real, dimension(:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 7257 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7258  use dc_date_generic, only: operator(-), operator(+), &
7259  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7260  & dcdifftimeputline, assignment(=)
7261  use dc_types, only: dp, string, token
7263  implicit none
7264  type(dc_difftime), intent(in):: time
7265  character(*), intent(in):: varname
7266  real, intent(in), target:: array(:)
7267  logical, intent(out), optional:: err
7268 
7269  real(DP):: timed
7270 
7271  continue
7272  timed = evalsec( time )
7273 
7274  call historyautoput( &
7275  & timed, varname, array, & ! (in)
7276  & err ) ! (out) optional
7277 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1real2()

subroutine historyautoputold1real2 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
real, dimension(:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 7285 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7286  use dc_date_generic, only: operator(-), operator(+), &
7287  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7288  & dcdifftimeputline, assignment(=)
7289  use dc_types, only: dp, string, token
7291  implicit none
7292  type(dc_difftime), intent(in):: time
7293  character(*), intent(in):: varname
7294  real, intent(in), target:: array(:,:)
7295  logical, intent(out), optional:: err
7296 
7297  real(DP):: timed
7298 
7299  continue
7300  timed = evalsec( time )
7301 
7302  call historyautoput( &
7303  & timed, varname, array, & ! (in)
7304  & err ) ! (out) optional
7305 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1real3()

subroutine historyautoputold1real3 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
real, dimension(:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 7313 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7314  use dc_date_generic, only: operator(-), operator(+), &
7315  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7316  & dcdifftimeputline, assignment(=)
7317  use dc_types, only: dp, string, token
7319  implicit none
7320  type(dc_difftime), intent(in):: time
7321  character(*), intent(in):: varname
7322  real, intent(in), target:: array(:,:,:)
7323  logical, intent(out), optional:: err
7324 
7325  real(DP):: timed
7326 
7327  continue
7328  timed = evalsec( time )
7329 
7330  call historyautoput( &
7331  & timed, varname, array, & ! (in)
7332  & err ) ! (out) optional
7333 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1real4()

subroutine historyautoputold1real4 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
real, dimension(:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 7341 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7342  use dc_date_generic, only: operator(-), operator(+), &
7343  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7344  & dcdifftimeputline, assignment(=)
7345  use dc_types, only: dp, string, token
7347  implicit none
7348  type(dc_difftime), intent(in):: time
7349  character(*), intent(in):: varname
7350  real, intent(in), target:: array(:,:,:,:)
7351  logical, intent(out), optional:: err
7352 
7353  real(DP):: timed
7354 
7355  continue
7356  timed = evalsec( time )
7357 
7358  call historyautoput( &
7359  & timed, varname, array, & ! (in)
7360  & err ) ! (out) optional
7361 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1real5()

subroutine historyautoputold1real5 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
real, dimension(:,:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 7369 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7370  use dc_date_generic, only: operator(-), operator(+), &
7371  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7372  & dcdifftimeputline, assignment(=)
7373  use dc_types, only: dp, string, token
7375  implicit none
7376  type(dc_difftime), intent(in):: time
7377  character(*), intent(in):: varname
7378  real, intent(in), target:: array(:,:,:,:,:)
7379  logical, intent(out), optional:: err
7380 
7381  real(DP):: timed
7382 
7383  continue
7384  timed = evalsec( time )
7385 
7386  call historyautoput( &
7387  & timed, varname, array, & ! (in)
7388  & err ) ! (out) optional
7389 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1real6()

subroutine historyautoputold1real6 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
real, dimension(:,:,:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 7397 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7398  use dc_date_generic, only: operator(-), operator(+), &
7399  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7400  & dcdifftimeputline, assignment(=)
7401  use dc_types, only: dp, string, token
7403  implicit none
7404  type(dc_difftime), intent(in):: time
7405  character(*), intent(in):: varname
7406  real, intent(in), target:: array(:,:,:,:,:,:)
7407  logical, intent(out), optional:: err
7408 
7409  real(DP):: timed
7410 
7411  continue
7412  timed = evalsec( time )
7413 
7414  call historyautoput( &
7415  & timed, varname, array, & ! (in)
7416  & err ) ! (out) optional
7417 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputold1real7()

subroutine historyautoputold1real7 ( type(dc_difftime), intent(in)  time,
character(*), intent(in)  varname,
real, dimension(:,:,:,:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 7425 of file historyautoput.f90.

References dc_types::dp, dc_types::string, and dc_types::token.

7426  use dc_date_generic, only: operator(-), operator(+), &
7427  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
7428  & dcdifftimeputline, assignment(=)
7429  use dc_types, only: dp, string, token
7431  implicit none
7432  type(dc_difftime), intent(in):: time
7433  character(*), intent(in):: varname
7434  real, intent(in), target:: array(:,:,:,:,:,:,:)
7435  logical, intent(out), optional:: err
7436 
7437  real(DP):: timed
7438 
7439  continue
7440  timed = evalsec( time )
7441 
7442  call historyautoput( &
7443  & timed, varname, array, & ! (in)
7444  & err ) ! (out) optional
7445 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ historyautoputreal0()

subroutine historyautoputreal0 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
real, intent(in), target  value,
logical, intent(out), optional  err 
)

Definition at line 2409 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

2409  !
2410 
2411  !
2412 
2414  & numvars, gthstnml, zero_time, &
2423  & averagereduce
2430  use dc_string, only: tochar
2431  use dc_message, only: messagenotify
2432  use dc_trace, only: beginsub, endsub
2435  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
2436  use dc_date_generic, only: operator(-), operator(+), &
2437  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
2440  use dc_types, only: dp, string, token
2441  implicit none
2442  real(DP), intent(in):: time
2443 
2444  character(*), intent(in):: varname
2445 
2446  real, intent(in), target:: value
2447 
2448  logical, intent(out), optional:: err
2449 
2450 
2451  type(gt_history), pointer:: gthist =>null()
2452  ! gtool_history モジュール用構造体.
2453  ! Derived type for "gtool_history" module
2454 
2455 
2456  real(DP):: settime
2457  integer:: stat, i
2458  integer:: vnum
2459  character(STRING):: cause_c
2460  integer, save:: svnum = 1, svtstep
2461  character(*), parameter:: subname = "HistoryAutoPutReal0"
2462  continue
2463  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
2464  stat = dc_noerr
2465  cause_c = ""
2466 
2467  ! 初期設定チェック
2468  ! Check initialization
2469  !
2470  if ( .not. initialized ) then
2471  stat = dc_enotinit
2472  cause_c = 'gtool_historyauto'
2473  goto 999
2474  end if
2475 
2476  ! 時刻に関するエラー処理
2477  ! Error handling for time
2478  !
2479  if ( time < zero_time ) then
2480  cause_c = tochar( time )
2481  call messagenotify( 'W', subname, &
2482  & '"time=<%c>" must be positive value (varname=<%c>).', &
2483  & c1 = trim( cause_c ), c2 = trim( varname ) )
2484  stat = dc_enegative
2485  cause_c = 'time'
2486  goto 999
2487  end if
2488 
2489  ! 変数 ID のサーチ
2490  ! Search variable ID
2491  !
2492  varsearch: do
2493  do i = svnum, numvars
2494  if ( trim( varname_vars(i) ) == trim(varname) ) then
2495  vnum = i
2496  exit varsearch
2497  end if
2498  end do
2499  do i = 1, svnum - 1
2500  if ( trim( varname_vars(i) ) == trim(varname) ) then
2501  vnum = i
2502  exit varsearch
2503  end if
2504  end do
2505 
2506  stat = hst_ebadvarname
2507  cause_c = varname
2508  goto 999
2509  end do varsearch
2510 
2511  svnum = vnum
2512 
2513  ! 定義モードからデータモードへ
2514  ! Transit from define mode to data mode
2515  !
2516  if ( hstnmlinfodefinemode( gthstnml ) ) then
2517  call hstnmlinfoenddefine( gthstnml ) ! (inout)
2518  end if
2519 
2520  ! 出力タイミングのチェックとファイルの作成
2521  ! Check output timing and create files
2522  !
2523  call hstvarsoutputcheck( &
2524  & time = time, & ! (in)
2525  & stime_index = svtstep ) ! (out)
2526 
2527  ! ファイルのオープン・クローズ・再オープン
2528  ! Open, close, reopen files
2529  !
2530  if ( create_timing_vars(vnum, svtstep) &
2531  & .and. .not. histaddvar_vars(vnum) ) then
2532  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
2533  & varname_vars(vnum), time ) ! (in)
2534  histaddvar_vars(vnum) = .true.
2535  if ( flag_output_prev_vars(vnum) ) then
2536  prev_outtime_vars(vnum) = time
2537  else
2538  flag_output_prev_vars(vnum) = .true.
2539  if ( origin_time_vars(vnum) > zero_time ) then
2540  prev_outtime_vars(vnum) = origin_time_vars(vnum)
2541  else
2542  prev_outtime_vars(vnum) = time
2543  end if
2544  end if
2545  end if
2546 
2547  if ( close_timing_vars(vnum, svtstep) ) then
2548  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
2549  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
2550  end if
2551  end if
2552 
2553  if ( renew_timing_vars(vnum, svtstep) ) then
2554  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
2555  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
2556  end if
2557  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
2558  & varname_vars(vnum), time ) ! (in)
2559  newfile_createtime_vars(vnum) = time
2560  prev_outtime_vars(vnum) = time
2561  end if
2562 
2563  ! 出力が有効かどうかを確認する
2564  ! Confirm whether the output is effective
2565  !
2566  if ( .not. output_timing_vars(vnum, svtstep) &
2567  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
2568 
2569  goto 999
2570  end if
2571 
2572  ! GT_HISTORY 変数の取得
2573  ! Get "GT_HISTORY" variable
2574  !
2575  gthist => gthst_history_vars(vnum) % gthist
2576 
2577 
2578  ! 空間切り出し
2579  ! Slice of spaces
2580  !
2581  ! array only
2582 
2583 
2584 
2585  ! 空間平均
2586  ! Spatial average
2587  !
2588  ! array only
2589 
2590 
2591  ! 単位に応じて時刻を変換
2592  ! Convert time according to units
2593  !
2594  if ( output_timing_vars(vnum, svtstep) &
2595  & .or. output_timing_avr_vars(vnum, svtstep) ) then
2596 
2597  settime = &
2598  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
2599  end if
2600 
2601  ! 時刻設定
2602  ! Set time
2603  !
2604  if ( output_timing_vars(vnum, svtstep) ) then
2605  call historysettime( &
2606  & history = gthist, & ! (in) optional
2607  & timed = settime ) ! (in) optional
2608  end if
2609 
2610  ! 出力
2611  ! OutPut
2612  !
2613  if ( output_timing_avr_vars(vnum, svtstep) ) then
2614  call historyput( &
2615  & varname, & ! (in)
2616  & (/value/), & ! (in)
2617 
2618  & timed = settime, & ! (in) optional
2619  & time_average_store = &
2620  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
2621  & history = gthist ) ! (inout) optional
2622  else
2623  call historyput( &
2624  & varname, & ! (in)
2625  & (/value/), & ! (in)
2626 
2627  & history = gthist ) ! (inout) optional
2628  end if
2629 
2630  ! 最後に出力した時刻を保存
2631  ! Save last time of output
2632  !
2633  if ( output_timing_vars(vnum, svtstep) ) then
2634  if ( .not. create_timing_vars(vnum, svtstep) .and. &
2635  & .not. renew_timing_vars(vnum, svtstep) ) then
2636 
2637  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
2638  prev_outtime_vars(vnum) = time
2639  else
2640  prev_outtime_vars(vnum) = &
2641  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
2642  end if
2643  end if
2644  end if
2645 
2646  ! 結合解除
2647  ! Release associations
2648  !
2649  nullify( gthist )
2650 
2651 
2652 999 continue
2653  call storeerror(stat, subname, cause_c = cause_c, err = err)
2654  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputreal1()

subroutine historyautoputreal1 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
real, dimension(:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 2662 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

2662  !
2663 
2664  !
2665 
2667  & numvars, gthstnml, zero_time, &
2676  & averagereduce
2683  use dc_string, only: tochar
2684  use dc_message, only: messagenotify
2685  use dc_trace, only: beginsub, endsub
2688  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
2689  use dc_date_generic, only: operator(-), operator(+), &
2690  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
2693  use dc_types, only: dp, string, token
2694  implicit none
2695  real(DP), intent(in):: time
2696 
2697  character(*), intent(in):: varname
2698 
2699  real, intent(in), target:: array(:)
2700 
2701  logical, intent(out), optional:: err
2702 
2703 
2704  type(gt_history), pointer:: gthist =>null()
2705  ! gtool_history モジュール用構造体.
2706  ! Derived type for "gtool_history" module
2707 
2708  real, pointer:: array_slice(:) =>null()
2709  type(slice_info), pointer:: sv =>null()
2710  real, pointer:: array_avr(:) =>null()
2711 
2712  real(DP):: settime
2713  integer:: stat, i
2714  integer:: vnum
2715  character(STRING):: cause_c
2716  integer, save:: svnum = 1, svtstep
2717  character(*), parameter:: subname = "HistoryAutoPutReal1"
2718  continue
2719  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
2720  stat = dc_noerr
2721  cause_c = ""
2722 
2723  ! 初期設定チェック
2724  ! Check initialization
2725  !
2726  if ( .not. initialized ) then
2727  stat = dc_enotinit
2728  cause_c = 'gtool_historyauto'
2729  goto 999
2730  end if
2731 
2732  ! 時刻に関するエラー処理
2733  ! Error handling for time
2734  !
2735  if ( time < zero_time ) then
2736  cause_c = tochar( time )
2737  call messagenotify( 'W', subname, &
2738  & '"time=<%c>" must be positive value (varname=<%c>).', &
2739  & c1 = trim( cause_c ), c2 = trim( varname ) )
2740  stat = dc_enegative
2741  cause_c = 'time'
2742  goto 999
2743  end if
2744 
2745  ! 変数 ID のサーチ
2746  ! Search variable ID
2747  !
2748  varsearch: do
2749  do i = svnum, numvars
2750  if ( trim( varname_vars(i) ) == trim(varname) ) then
2751  vnum = i
2752  exit varsearch
2753  end if
2754  end do
2755  do i = 1, svnum - 1
2756  if ( trim( varname_vars(i) ) == trim(varname) ) then
2757  vnum = i
2758  exit varsearch
2759  end if
2760  end do
2761 
2762  stat = hst_ebadvarname
2763  cause_c = varname
2764  goto 999
2765  end do varsearch
2766 
2767  svnum = vnum
2768 
2769  ! 定義モードからデータモードへ
2770  ! Transit from define mode to data mode
2771  !
2772  if ( hstnmlinfodefinemode( gthstnml ) ) then
2773  call hstnmlinfoenddefine( gthstnml ) ! (inout)
2774  end if
2775 
2776  ! 出力タイミングのチェックとファイルの作成
2777  ! Check output timing and create files
2778  !
2779  call hstvarsoutputcheck( &
2780  & time = time, & ! (in)
2781  & stime_index = svtstep ) ! (out)
2782 
2783  ! ファイルのオープン・クローズ・再オープン
2784  ! Open, close, reopen files
2785  !
2786  if ( create_timing_vars(vnum, svtstep) &
2787  & .and. .not. histaddvar_vars(vnum) ) then
2788  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
2789  & varname_vars(vnum), time ) ! (in)
2790  histaddvar_vars(vnum) = .true.
2791  if ( flag_output_prev_vars(vnum) ) then
2792  prev_outtime_vars(vnum) = time
2793  else
2794  flag_output_prev_vars(vnum) = .true.
2795  if ( origin_time_vars(vnum) > zero_time ) then
2796  prev_outtime_vars(vnum) = origin_time_vars(vnum)
2797  else
2798  prev_outtime_vars(vnum) = time
2799  end if
2800  end if
2801  end if
2802 
2803  if ( close_timing_vars(vnum, svtstep) ) then
2804  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
2805  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
2806  end if
2807  end if
2808 
2809  if ( renew_timing_vars(vnum, svtstep) ) then
2810  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
2811  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
2812  end if
2813  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
2814  & varname_vars(vnum), time ) ! (in)
2815  newfile_createtime_vars(vnum) = time
2816  prev_outtime_vars(vnum) = time
2817  end if
2818 
2819  ! 出力が有効かどうかを確認する
2820  ! Confirm whether the output is effective
2821  !
2822  if ( .not. output_timing_vars(vnum, svtstep) &
2823  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
2824 
2825  goto 999
2826  end if
2827 
2828  ! GT_HISTORY 変数の取得
2829  ! Get "GT_HISTORY" variable
2830  !
2831  gthist => gthst_history_vars(vnum) % gthist
2832 
2833 
2834  ! 空間切り出し
2835  ! Slice of spaces
2836  !
2837  sv => slice_vars(vnum)
2838 
2839  !!$ write(*,*) ' sv%st(1), sv%ed(1), sv%sd(1)=', sv%st(1), sv%ed(1), sv%sd(1)
2840 
2841 
2842  array_slice => array(sv%st(1):sv%ed(1):sv%sd(1) &
2843 
2844  & )
2845 
2846 
2847 
2848  ! 空間平均
2849  ! Spatial average
2850  !
2851  if ( count(space_avr_vars(vnum) % avr) == 0 ) then
2852  array_avr => array_slice
2853  else
2854  call averagereduce( &
2855  & array_slice, space_avr_vars(vnum) % avr, & ! (in)
2856  & weight_vars(vnum) % wgt1( sv%st(1):sv%ed(1):sv%sd(1) ) , & ! (in)
2857 
2858  & array_avr ) ! (out)
2859  end if
2860 
2861  ! 座標重みを取得 ; Get weights of axes
2862 
2863 
2864 
2865  ! 単位に応じて時刻を変換
2866  ! Convert time according to units
2867  !
2868  if ( output_timing_vars(vnum, svtstep) &
2869  & .or. output_timing_avr_vars(vnum, svtstep) ) then
2870 
2871  settime = &
2872  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
2873  end if
2874 
2875  ! 時刻設定
2876  ! Set time
2877  !
2878  if ( output_timing_vars(vnum, svtstep) ) then
2879  call historysettime( &
2880  & history = gthist, & ! (in) optional
2881  & timed = settime ) ! (in) optional
2882  end if
2883 
2884  ! 出力
2885  ! OutPut
2886  !
2887  if ( output_timing_avr_vars(vnum, svtstep) ) then
2888  call historyput( &
2889  & varname, & ! (in)
2890  & array_avr, & ! (in)
2891 
2892  & timed = settime, & ! (in) optional
2893  & time_average_store = &
2894  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
2895  & history = gthist ) ! (inout) optional
2896  else
2897  call historyput( &
2898  & varname, & ! (in)
2899  & array_avr, & ! (in)
2900 
2901  & history = gthist ) ! (inout) optional
2902  end if
2903 
2904  ! 最後に出力した時刻を保存
2905  ! Save last time of output
2906  !
2907  if ( output_timing_vars(vnum, svtstep) ) then
2908  if ( .not. create_timing_vars(vnum, svtstep) .and. &
2909  & .not. renew_timing_vars(vnum, svtstep) ) then
2910 
2911  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
2912  prev_outtime_vars(vnum) = time
2913  else
2914  prev_outtime_vars(vnum) = &
2915  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
2916  end if
2917  end if
2918  end if
2919 
2920  ! 結合解除
2921  ! Release associations
2922  !
2923  nullify( gthist )
2924  nullify( array_avr, array_slice )
2925 
2926 
2927 999 continue
2928  call storeerror(stat, subname, cause_c = cause_c, err = err)
2929  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputreal2()

subroutine historyautoputreal2 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
real, dimension(:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 2937 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

2937  !
2938 
2939  !
2940 
2942  & numvars, gthstnml, zero_time, &
2951  & averagereduce
2958  use dc_string, only: tochar
2959  use dc_message, only: messagenotify
2960  use dc_trace, only: beginsub, endsub
2963  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
2964  use dc_date_generic, only: operator(-), operator(+), &
2965  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
2968  use dc_types, only: dp, string, token
2969  implicit none
2970  real(DP), intent(in):: time
2971 
2972  character(*), intent(in):: varname
2973 
2974  real, intent(in), target:: array(:,:)
2975 
2976  logical, intent(out), optional:: err
2977 
2978 
2979  type(gt_history), pointer:: gthist =>null()
2980  ! gtool_history モジュール用構造体.
2981  ! Derived type for "gtool_history" module
2982 
2983  real, pointer:: array_slice(:,:) =>null()
2984  type(slice_info), pointer:: sv =>null()
2985  real, pointer:: array_avr(:,:) =>null()
2986 
2987  real(DP):: settime
2988  integer:: stat, i
2989  integer:: vnum
2990  character(STRING):: cause_c
2991  integer, save:: svnum = 1, svtstep
2992  character(*), parameter:: subname = "HistoryAutoPutReal2"
2993  continue
2994  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
2995  stat = dc_noerr
2996  cause_c = ""
2997 
2998  ! 初期設定チェック
2999  ! Check initialization
3000  !
3001  if ( .not. initialized ) then
3002  stat = dc_enotinit
3003  cause_c = 'gtool_historyauto'
3004  goto 999
3005  end if
3006 
3007  ! 時刻に関するエラー処理
3008  ! Error handling for time
3009  !
3010  if ( time < zero_time ) then
3011  cause_c = tochar( time )
3012  call messagenotify( 'W', subname, &
3013  & '"time=<%c>" must be positive value (varname=<%c>).', &
3014  & c1 = trim( cause_c ), c2 = trim( varname ) )
3015  stat = dc_enegative
3016  cause_c = 'time'
3017  goto 999
3018  end if
3019 
3020  ! 変数 ID のサーチ
3021  ! Search variable ID
3022  !
3023  varsearch: do
3024  do i = svnum, numvars
3025  if ( trim( varname_vars(i) ) == trim(varname) ) then
3026  vnum = i
3027  exit varsearch
3028  end if
3029  end do
3030  do i = 1, svnum - 1
3031  if ( trim( varname_vars(i) ) == trim(varname) ) then
3032  vnum = i
3033  exit varsearch
3034  end if
3035  end do
3036 
3037  stat = hst_ebadvarname
3038  cause_c = varname
3039  goto 999
3040  end do varsearch
3041 
3042  svnum = vnum
3043 
3044  ! 定義モードからデータモードへ
3045  ! Transit from define mode to data mode
3046  !
3047  if ( hstnmlinfodefinemode( gthstnml ) ) then
3048  call hstnmlinfoenddefine( gthstnml ) ! (inout)
3049  end if
3050 
3051  ! 出力タイミングのチェックとファイルの作成
3052  ! Check output timing and create files
3053  !
3054  call hstvarsoutputcheck( &
3055  & time = time, & ! (in)
3056  & stime_index = svtstep ) ! (out)
3057 
3058  ! ファイルのオープン・クローズ・再オープン
3059  ! Open, close, reopen files
3060  !
3061  if ( create_timing_vars(vnum, svtstep) &
3062  & .and. .not. histaddvar_vars(vnum) ) then
3063  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
3064  & varname_vars(vnum), time ) ! (in)
3065  histaddvar_vars(vnum) = .true.
3066  if ( flag_output_prev_vars(vnum) ) then
3067  prev_outtime_vars(vnum) = time
3068  else
3069  flag_output_prev_vars(vnum) = .true.
3070  if ( origin_time_vars(vnum) > zero_time ) then
3071  prev_outtime_vars(vnum) = origin_time_vars(vnum)
3072  else
3073  prev_outtime_vars(vnum) = time
3074  end if
3075  end if
3076  end if
3077 
3078  if ( close_timing_vars(vnum, svtstep) ) then
3079  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
3080  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
3081  end if
3082  end if
3083 
3084  if ( renew_timing_vars(vnum, svtstep) ) then
3085  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
3086  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
3087  end if
3088  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
3089  & varname_vars(vnum), time ) ! (in)
3090  newfile_createtime_vars(vnum) = time
3091  prev_outtime_vars(vnum) = time
3092  end if
3093 
3094  ! 出力が有効かどうかを確認する
3095  ! Confirm whether the output is effective
3096  !
3097  if ( .not. output_timing_vars(vnum, svtstep) &
3098  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
3099 
3100  goto 999
3101  end if
3102 
3103  ! GT_HISTORY 変数の取得
3104  ! Get "GT_HISTORY" variable
3105  !
3106  gthist => gthst_history_vars(vnum) % gthist
3107 
3108 
3109  ! 空間切り出し
3110  ! Slice of spaces
3111  !
3112  sv => slice_vars(vnum)
3113 
3114  !!$ write(*,*) ' sv%st(1), sv%ed(1), sv%sd(1)=', sv%st(1), sv%ed(1), sv%sd(1)
3115 
3116 !!$ write(*,*) ' sv%st(2), sv%ed(2), sv%sd(2)=', sv%st(2), sv%ed(2), sv%sd(2)
3117 
3118 
3119  array_slice => array(sv%st(1):sv%ed(1):sv%sd(1) &
3120  & , sv%st(2):sv%ed(2):sv%sd(2) &
3121 
3122  & )
3123 
3124 
3125 
3126  ! 空間平均
3127  ! Spatial average
3128  !
3129  if ( count(space_avr_vars(vnum) % avr) == 0 ) then
3130  array_avr => array_slice
3131  else
3132  call averagereduce( &
3133  & array_slice, space_avr_vars(vnum) % avr, & ! (in)
3134  & weight_vars(vnum) % wgt1( sv%st(1):sv%ed(1):sv%sd(1) ) , & ! (in)
3135 
3136  & weight_vars(vnum) % wgt2( sv%st(2):sv%ed(2):sv%sd(2) ) , & ! (in)
3137 
3138  & array_avr ) ! (out)
3139  end if
3140 
3141  ! 座標重みを取得 ; Get weights of axes
3142 
3143 
3144 
3145  ! 単位に応じて時刻を変換
3146  ! Convert time according to units
3147  !
3148  if ( output_timing_vars(vnum, svtstep) &
3149  & .or. output_timing_avr_vars(vnum, svtstep) ) then
3150 
3151  settime = &
3152  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
3153  end if
3154 
3155  ! 時刻設定
3156  ! Set time
3157  !
3158  if ( output_timing_vars(vnum, svtstep) ) then
3159  call historysettime( &
3160  & history = gthist, & ! (in) optional
3161  & timed = settime ) ! (in) optional
3162  end if
3163 
3164  ! 出力
3165  ! OutPut
3166  !
3167  if ( output_timing_avr_vars(vnum, svtstep) ) then
3168  call historyput( &
3169  & varname, & ! (in)
3170  & array_avr, & ! (in)
3171 
3172  & timed = settime, & ! (in) optional
3173  & time_average_store = &
3174  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
3175  & history = gthist ) ! (inout) optional
3176  else
3177  call historyput( &
3178  & varname, & ! (in)
3179  & array_avr, & ! (in)
3180 
3181  & history = gthist ) ! (inout) optional
3182  end if
3183 
3184  ! 最後に出力した時刻を保存
3185  ! Save last time of output
3186  !
3187  if ( output_timing_vars(vnum, svtstep) ) then
3188  if ( .not. create_timing_vars(vnum, svtstep) .and. &
3189  & .not. renew_timing_vars(vnum, svtstep) ) then
3190 
3191  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
3192  prev_outtime_vars(vnum) = time
3193  else
3194  prev_outtime_vars(vnum) = &
3195  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
3196  end if
3197  end if
3198  end if
3199 
3200  ! 結合解除
3201  ! Release associations
3202  !
3203  nullify( gthist )
3204  nullify( array_avr, array_slice )
3205 
3206 
3207 999 continue
3208  call storeerror(stat, subname, cause_c = cause_c, err = err)
3209  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputreal3()

subroutine historyautoputreal3 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
real, dimension(:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 3217 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

3217  !
3218 
3219  !
3220 
3222  & numvars, gthstnml, zero_time, &
3231  & averagereduce
3238  use dc_string, only: tochar
3239  use dc_message, only: messagenotify
3240  use dc_trace, only: beginsub, endsub
3243  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
3244  use dc_date_generic, only: operator(-), operator(+), &
3245  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
3248  use dc_types, only: dp, string, token
3249  implicit none
3250  real(DP), intent(in):: time
3251 
3252  character(*), intent(in):: varname
3253 
3254  real, intent(in), target:: array(:,:,:)
3255 
3256  logical, intent(out), optional:: err
3257 
3258 
3259  type(gt_history), pointer:: gthist =>null()
3260  ! gtool_history モジュール用構造体.
3261  ! Derived type for "gtool_history" module
3262 
3263  real, pointer:: array_slice(:,:,:) =>null()
3264  type(slice_info), pointer:: sv =>null()
3265  real, pointer:: array_avr(:,:,:) =>null()
3266 
3267  real(DP):: settime
3268  integer:: stat, i
3269  integer:: vnum
3270  character(STRING):: cause_c
3271  integer, save:: svnum = 1, svtstep
3272  character(*), parameter:: subname = "HistoryAutoPutReal3"
3273  continue
3274  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
3275  stat = dc_noerr
3276  cause_c = ""
3277 
3278  ! 初期設定チェック
3279  ! Check initialization
3280  !
3281  if ( .not. initialized ) then
3282  stat = dc_enotinit
3283  cause_c = 'gtool_historyauto'
3284  goto 999
3285  end if
3286 
3287  ! 時刻に関するエラー処理
3288  ! Error handling for time
3289  !
3290  if ( time < zero_time ) then
3291  cause_c = tochar( time )
3292  call messagenotify( 'W', subname, &
3293  & '"time=<%c>" must be positive value (varname=<%c>).', &
3294  & c1 = trim( cause_c ), c2 = trim( varname ) )
3295  stat = dc_enegative
3296  cause_c = 'time'
3297  goto 999
3298  end if
3299 
3300  ! 変数 ID のサーチ
3301  ! Search variable ID
3302  !
3303  varsearch: do
3304  do i = svnum, numvars
3305  if ( trim( varname_vars(i) ) == trim(varname) ) then
3306  vnum = i
3307  exit varsearch
3308  end if
3309  end do
3310  do i = 1, svnum - 1
3311  if ( trim( varname_vars(i) ) == trim(varname) ) then
3312  vnum = i
3313  exit varsearch
3314  end if
3315  end do
3316 
3317  stat = hst_ebadvarname
3318  cause_c = varname
3319  goto 999
3320  end do varsearch
3321 
3322  svnum = vnum
3323 
3324  ! 定義モードからデータモードへ
3325  ! Transit from define mode to data mode
3326  !
3327  if ( hstnmlinfodefinemode( gthstnml ) ) then
3328  call hstnmlinfoenddefine( gthstnml ) ! (inout)
3329  end if
3330 
3331  ! 出力タイミングのチェックとファイルの作成
3332  ! Check output timing and create files
3333  !
3334  call hstvarsoutputcheck( &
3335  & time = time, & ! (in)
3336  & stime_index = svtstep ) ! (out)
3337 
3338  ! ファイルのオープン・クローズ・再オープン
3339  ! Open, close, reopen files
3340  !
3341  if ( create_timing_vars(vnum, svtstep) &
3342  & .and. .not. histaddvar_vars(vnum) ) then
3343  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
3344  & varname_vars(vnum), time ) ! (in)
3345  histaddvar_vars(vnum) = .true.
3346  if ( flag_output_prev_vars(vnum) ) then
3347  prev_outtime_vars(vnum) = time
3348  else
3349  flag_output_prev_vars(vnum) = .true.
3350  if ( origin_time_vars(vnum) > zero_time ) then
3351  prev_outtime_vars(vnum) = origin_time_vars(vnum)
3352  else
3353  prev_outtime_vars(vnum) = time
3354  end if
3355  end if
3356  end if
3357 
3358  if ( close_timing_vars(vnum, svtstep) ) then
3359  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
3360  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
3361  end if
3362  end if
3363 
3364  if ( renew_timing_vars(vnum, svtstep) ) then
3365  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
3366  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
3367  end if
3368  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
3369  & varname_vars(vnum), time ) ! (in)
3370  newfile_createtime_vars(vnum) = time
3371  prev_outtime_vars(vnum) = time
3372  end if
3373 
3374  ! 出力が有効かどうかを確認する
3375  ! Confirm whether the output is effective
3376  !
3377  if ( .not. output_timing_vars(vnum, svtstep) &
3378  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
3379 
3380  goto 999
3381  end if
3382 
3383  ! GT_HISTORY 変数の取得
3384  ! Get "GT_HISTORY" variable
3385  !
3386  gthist => gthst_history_vars(vnum) % gthist
3387 
3388 
3389  ! 空間切り出し
3390  ! Slice of spaces
3391  !
3392  sv => slice_vars(vnum)
3393 
3394  !!$ write(*,*) ' sv%st(1), sv%ed(1), sv%sd(1)=', sv%st(1), sv%ed(1), sv%sd(1)
3395 
3396 !!$ write(*,*) ' sv%st(2), sv%ed(2), sv%sd(2)=', sv%st(2), sv%ed(2), sv%sd(2)
3397 
3398 !!$ write(*,*) ' sv%st(3), sv%ed(3), sv%sd(3)=', sv%st(3), sv%ed(3), sv%sd(3)
3399 
3400 
3401  array_slice => array(sv%st(1):sv%ed(1):sv%sd(1) &
3402  & , sv%st(2):sv%ed(2):sv%sd(2) &
3403 
3404  & , sv%st(3):sv%ed(3):sv%sd(3) &
3405 
3406  & )
3407 
3408 
3409 
3410  ! 空間平均
3411  ! Spatial average
3412  !
3413  if ( count(space_avr_vars(vnum) % avr) == 0 ) then
3414  array_avr => array_slice
3415  else
3416  call averagereduce( &
3417  & array_slice, space_avr_vars(vnum) % avr, & ! (in)
3418  & weight_vars(vnum) % wgt1( sv%st(1):sv%ed(1):sv%sd(1) ) , & ! (in)
3419 
3420  & weight_vars(vnum) % wgt2( sv%st(2):sv%ed(2):sv%sd(2) ) , & ! (in)
3421 
3422  & weight_vars(vnum) % wgt3( sv%st(3):sv%ed(3):sv%sd(3) ) , & ! (in)
3423 
3424  & array_avr ) ! (out)
3425  end if
3426 
3427  ! 座標重みを取得 ; Get weights of axes
3428 
3429 
3430 
3431  ! 単位に応じて時刻を変換
3432  ! Convert time according to units
3433  !
3434  if ( output_timing_vars(vnum, svtstep) &
3435  & .or. output_timing_avr_vars(vnum, svtstep) ) then
3436 
3437  settime = &
3438  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
3439  end if
3440 
3441  ! 時刻設定
3442  ! Set time
3443  !
3444  if ( output_timing_vars(vnum, svtstep) ) then
3445  call historysettime( &
3446  & history = gthist, & ! (in) optional
3447  & timed = settime ) ! (in) optional
3448  end if
3449 
3450  ! 出力
3451  ! OutPut
3452  !
3453  if ( output_timing_avr_vars(vnum, svtstep) ) then
3454  call historyput( &
3455  & varname, & ! (in)
3456  & array_avr, & ! (in)
3457 
3458  & timed = settime, & ! (in) optional
3459  & time_average_store = &
3460  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
3461  & history = gthist ) ! (inout) optional
3462  else
3463  call historyput( &
3464  & varname, & ! (in)
3465  & array_avr, & ! (in)
3466 
3467  & history = gthist ) ! (inout) optional
3468  end if
3469 
3470  ! 最後に出力した時刻を保存
3471  ! Save last time of output
3472  !
3473  if ( output_timing_vars(vnum, svtstep) ) then
3474  if ( .not. create_timing_vars(vnum, svtstep) .and. &
3475  & .not. renew_timing_vars(vnum, svtstep) ) then
3476 
3477  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
3478  prev_outtime_vars(vnum) = time
3479  else
3480  prev_outtime_vars(vnum) = &
3481  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
3482  end if
3483  end if
3484  end if
3485 
3486  ! 結合解除
3487  ! Release associations
3488  !
3489  nullify( gthist )
3490  nullify( array_avr, array_slice )
3491 
3492 
3493 999 continue
3494  call storeerror(stat, subname, cause_c = cause_c, err = err)
3495  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputreal4()

subroutine historyautoputreal4 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
real, dimension(:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 3503 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

3503  !
3504 
3505  !
3506 
3508  & numvars, gthstnml, zero_time, &
3517  & averagereduce
3524  use dc_string, only: tochar
3525  use dc_message, only: messagenotify
3526  use dc_trace, only: beginsub, endsub
3529  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
3530  use dc_date_generic, only: operator(-), operator(+), &
3531  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
3534  use dc_types, only: dp, string, token
3535  implicit none
3536  real(DP), intent(in):: time
3537 
3538  character(*), intent(in):: varname
3539 
3540  real, intent(in), target:: array(:,:,:,:)
3541 
3542  logical, intent(out), optional:: err
3543 
3544 
3545  type(gt_history), pointer:: gthist =>null()
3546  ! gtool_history モジュール用構造体.
3547  ! Derived type for "gtool_history" module
3548 
3549  real, pointer:: array_slice(:,:,:,:) =>null()
3550  type(slice_info), pointer:: sv =>null()
3551  real, pointer:: array_avr(:,:,:,:) =>null()
3552 
3553  real(DP):: settime
3554  integer:: stat, i
3555  integer:: vnum
3556  character(STRING):: cause_c
3557  integer, save:: svnum = 1, svtstep
3558  character(*), parameter:: subname = "HistoryAutoPutReal4"
3559  continue
3560  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
3561  stat = dc_noerr
3562  cause_c = ""
3563 
3564  ! 初期設定チェック
3565  ! Check initialization
3566  !
3567  if ( .not. initialized ) then
3568  stat = dc_enotinit
3569  cause_c = 'gtool_historyauto'
3570  goto 999
3571  end if
3572 
3573  ! 時刻に関するエラー処理
3574  ! Error handling for time
3575  !
3576  if ( time < zero_time ) then
3577  cause_c = tochar( time )
3578  call messagenotify( 'W', subname, &
3579  & '"time=<%c>" must be positive value (varname=<%c>).', &
3580  & c1 = trim( cause_c ), c2 = trim( varname ) )
3581  stat = dc_enegative
3582  cause_c = 'time'
3583  goto 999
3584  end if
3585 
3586  ! 変数 ID のサーチ
3587  ! Search variable ID
3588  !
3589  varsearch: do
3590  do i = svnum, numvars
3591  if ( trim( varname_vars(i) ) == trim(varname) ) then
3592  vnum = i
3593  exit varsearch
3594  end if
3595  end do
3596  do i = 1, svnum - 1
3597  if ( trim( varname_vars(i) ) == trim(varname) ) then
3598  vnum = i
3599  exit varsearch
3600  end if
3601  end do
3602 
3603  stat = hst_ebadvarname
3604  cause_c = varname
3605  goto 999
3606  end do varsearch
3607 
3608  svnum = vnum
3609 
3610  ! 定義モードからデータモードへ
3611  ! Transit from define mode to data mode
3612  !
3613  if ( hstnmlinfodefinemode( gthstnml ) ) then
3614  call hstnmlinfoenddefine( gthstnml ) ! (inout)
3615  end if
3616 
3617  ! 出力タイミングのチェックとファイルの作成
3618  ! Check output timing and create files
3619  !
3620  call hstvarsoutputcheck( &
3621  & time = time, & ! (in)
3622  & stime_index = svtstep ) ! (out)
3623 
3624  ! ファイルのオープン・クローズ・再オープン
3625  ! Open, close, reopen files
3626  !
3627  if ( create_timing_vars(vnum, svtstep) &
3628  & .and. .not. histaddvar_vars(vnum) ) then
3629  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
3630  & varname_vars(vnum), time ) ! (in)
3631  histaddvar_vars(vnum) = .true.
3632  if ( flag_output_prev_vars(vnum) ) then
3633  prev_outtime_vars(vnum) = time
3634  else
3635  flag_output_prev_vars(vnum) = .true.
3636  if ( origin_time_vars(vnum) > zero_time ) then
3637  prev_outtime_vars(vnum) = origin_time_vars(vnum)
3638  else
3639  prev_outtime_vars(vnum) = time
3640  end if
3641  end if
3642  end if
3643 
3644  if ( close_timing_vars(vnum, svtstep) ) then
3645  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
3646  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
3647  end if
3648  end if
3649 
3650  if ( renew_timing_vars(vnum, svtstep) ) then
3651  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
3652  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
3653  end if
3654  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
3655  & varname_vars(vnum), time ) ! (in)
3656  newfile_createtime_vars(vnum) = time
3657  prev_outtime_vars(vnum) = time
3658  end if
3659 
3660  ! 出力が有効かどうかを確認する
3661  ! Confirm whether the output is effective
3662  !
3663  if ( .not. output_timing_vars(vnum, svtstep) &
3664  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
3665 
3666  goto 999
3667  end if
3668 
3669  ! GT_HISTORY 変数の取得
3670  ! Get "GT_HISTORY" variable
3671  !
3672  gthist => gthst_history_vars(vnum) % gthist
3673 
3674 
3675  ! 空間切り出し
3676  ! Slice of spaces
3677  !
3678  sv => slice_vars(vnum)
3679 
3680  !!$ write(*,*) ' sv%st(1), sv%ed(1), sv%sd(1)=', sv%st(1), sv%ed(1), sv%sd(1)
3681 
3682 !!$ write(*,*) ' sv%st(2), sv%ed(2), sv%sd(2)=', sv%st(2), sv%ed(2), sv%sd(2)
3683 
3684 !!$ write(*,*) ' sv%st(3), sv%ed(3), sv%sd(3)=', sv%st(3), sv%ed(3), sv%sd(3)
3685 
3686 !!$ write(*,*) ' sv%st(4), sv%ed(4), sv%sd(4)=', sv%st(4), sv%ed(4), sv%sd(4)
3687 
3688 
3689  array_slice => array(sv%st(1):sv%ed(1):sv%sd(1) &
3690  & , sv%st(2):sv%ed(2):sv%sd(2) &
3691 
3692  & , sv%st(3):sv%ed(3):sv%sd(3) &
3693 
3694  & , sv%st(4):sv%ed(4):sv%sd(4) &
3695 
3696  & )
3697 
3698 
3699 
3700  ! 空間平均
3701  ! Spatial average
3702  !
3703  if ( count(space_avr_vars(vnum) % avr) == 0 ) then
3704  array_avr => array_slice
3705  else
3706  call averagereduce( &
3707  & array_slice, space_avr_vars(vnum) % avr, & ! (in)
3708  & weight_vars(vnum) % wgt1( sv%st(1):sv%ed(1):sv%sd(1) ) , & ! (in)
3709 
3710  & weight_vars(vnum) % wgt2( sv%st(2):sv%ed(2):sv%sd(2) ) , & ! (in)
3711 
3712  & weight_vars(vnum) % wgt3( sv%st(3):sv%ed(3):sv%sd(3) ) , & ! (in)
3713 
3714  & weight_vars(vnum) % wgt4( sv%st(4):sv%ed(4):sv%sd(4) ) , & ! (in)
3715 
3716  & array_avr ) ! (out)
3717  end if
3718 
3719  ! 座標重みを取得 ; Get weights of axes
3720 
3721 
3722 
3723  ! 単位に応じて時刻を変換
3724  ! Convert time according to units
3725  !
3726  if ( output_timing_vars(vnum, svtstep) &
3727  & .or. output_timing_avr_vars(vnum, svtstep) ) then
3728 
3729  settime = &
3730  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
3731  end if
3732 
3733  ! 時刻設定
3734  ! Set time
3735  !
3736  if ( output_timing_vars(vnum, svtstep) ) then
3737  call historysettime( &
3738  & history = gthist, & ! (in) optional
3739  & timed = settime ) ! (in) optional
3740  end if
3741 
3742  ! 出力
3743  ! OutPut
3744  !
3745  if ( output_timing_avr_vars(vnum, svtstep) ) then
3746  call historyput( &
3747  & varname, & ! (in)
3748  & array_avr, & ! (in)
3749 
3750  & timed = settime, & ! (in) optional
3751  & time_average_store = &
3752  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
3753  & history = gthist ) ! (inout) optional
3754  else
3755  call historyput( &
3756  & varname, & ! (in)
3757  & array_avr, & ! (in)
3758 
3759  & history = gthist ) ! (inout) optional
3760  end if
3761 
3762  ! 最後に出力した時刻を保存
3763  ! Save last time of output
3764  !
3765  if ( output_timing_vars(vnum, svtstep) ) then
3766  if ( .not. create_timing_vars(vnum, svtstep) .and. &
3767  & .not. renew_timing_vars(vnum, svtstep) ) then
3768 
3769  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
3770  prev_outtime_vars(vnum) = time
3771  else
3772  prev_outtime_vars(vnum) = &
3773  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
3774  end if
3775  end if
3776  end if
3777 
3778  ! 結合解除
3779  ! Release associations
3780  !
3781  nullify( gthist )
3782  nullify( array_avr, array_slice )
3783 
3784 
3785 999 continue
3786  call storeerror(stat, subname, cause_c = cause_c, err = err)
3787  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputreal5()

subroutine historyautoputreal5 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
real, dimension(:,:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 3795 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

3795  !
3796 
3797  !
3798 
3800  & numvars, gthstnml, zero_time, &
3809  & averagereduce
3816  use dc_string, only: tochar
3817  use dc_message, only: messagenotify
3818  use dc_trace, only: beginsub, endsub
3821  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
3822  use dc_date_generic, only: operator(-), operator(+), &
3823  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
3826  use dc_types, only: dp, string, token
3827  implicit none
3828  real(DP), intent(in):: time
3829 
3830  character(*), intent(in):: varname
3831 
3832  real, intent(in), target:: array(:,:,:,:,:)
3833 
3834  logical, intent(out), optional:: err
3835 
3836 
3837  type(gt_history), pointer:: gthist =>null()
3838  ! gtool_history モジュール用構造体.
3839  ! Derived type for "gtool_history" module
3840 
3841  real, pointer:: array_slice(:,:,:,:,:) =>null()
3842  type(slice_info), pointer:: sv =>null()
3843  real, pointer:: array_avr(:,:,:,:,:) =>null()
3844 
3845  real(DP):: settime
3846  integer:: stat, i
3847  integer:: vnum
3848  character(STRING):: cause_c
3849  integer, save:: svnum = 1, svtstep
3850  character(*), parameter:: subname = "HistoryAutoPutReal5"
3851  continue
3852  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
3853  stat = dc_noerr
3854  cause_c = ""
3855 
3856  ! 初期設定チェック
3857  ! Check initialization
3858  !
3859  if ( .not. initialized ) then
3860  stat = dc_enotinit
3861  cause_c = 'gtool_historyauto'
3862  goto 999
3863  end if
3864 
3865  ! 時刻に関するエラー処理
3866  ! Error handling for time
3867  !
3868  if ( time < zero_time ) then
3869  cause_c = tochar( time )
3870  call messagenotify( 'W', subname, &
3871  & '"time=<%c>" must be positive value (varname=<%c>).', &
3872  & c1 = trim( cause_c ), c2 = trim( varname ) )
3873  stat = dc_enegative
3874  cause_c = 'time'
3875  goto 999
3876  end if
3877 
3878  ! 変数 ID のサーチ
3879  ! Search variable ID
3880  !
3881  varsearch: do
3882  do i = svnum, numvars
3883  if ( trim( varname_vars(i) ) == trim(varname) ) then
3884  vnum = i
3885  exit varsearch
3886  end if
3887  end do
3888  do i = 1, svnum - 1
3889  if ( trim( varname_vars(i) ) == trim(varname) ) then
3890  vnum = i
3891  exit varsearch
3892  end if
3893  end do
3894 
3895  stat = hst_ebadvarname
3896  cause_c = varname
3897  goto 999
3898  end do varsearch
3899 
3900  svnum = vnum
3901 
3902  ! 定義モードからデータモードへ
3903  ! Transit from define mode to data mode
3904  !
3905  if ( hstnmlinfodefinemode( gthstnml ) ) then
3906  call hstnmlinfoenddefine( gthstnml ) ! (inout)
3907  end if
3908 
3909  ! 出力タイミングのチェックとファイルの作成
3910  ! Check output timing and create files
3911  !
3912  call hstvarsoutputcheck( &
3913  & time = time, & ! (in)
3914  & stime_index = svtstep ) ! (out)
3915 
3916  ! ファイルのオープン・クローズ・再オープン
3917  ! Open, close, reopen files
3918  !
3919  if ( create_timing_vars(vnum, svtstep) &
3920  & .and. .not. histaddvar_vars(vnum) ) then
3921  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
3922  & varname_vars(vnum), time ) ! (in)
3923  histaddvar_vars(vnum) = .true.
3924  if ( flag_output_prev_vars(vnum) ) then
3925  prev_outtime_vars(vnum) = time
3926  else
3927  flag_output_prev_vars(vnum) = .true.
3928  if ( origin_time_vars(vnum) > zero_time ) then
3929  prev_outtime_vars(vnum) = origin_time_vars(vnum)
3930  else
3931  prev_outtime_vars(vnum) = time
3932  end if
3933  end if
3934  end if
3935 
3936  if ( close_timing_vars(vnum, svtstep) ) then
3937  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
3938  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
3939  end if
3940  end if
3941 
3942  if ( renew_timing_vars(vnum, svtstep) ) then
3943  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
3944  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
3945  end if
3946  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
3947  & varname_vars(vnum), time ) ! (in)
3948  newfile_createtime_vars(vnum) = time
3949  prev_outtime_vars(vnum) = time
3950  end if
3951 
3952  ! 出力が有効かどうかを確認する
3953  ! Confirm whether the output is effective
3954  !
3955  if ( .not. output_timing_vars(vnum, svtstep) &
3956  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
3957 
3958  goto 999
3959  end if
3960 
3961  ! GT_HISTORY 変数の取得
3962  ! Get "GT_HISTORY" variable
3963  !
3964  gthist => gthst_history_vars(vnum) % gthist
3965 
3966 
3967  ! 空間切り出し
3968  ! Slice of spaces
3969  !
3970  sv => slice_vars(vnum)
3971 
3972  !!$ write(*,*) ' sv%st(1), sv%ed(1), sv%sd(1)=', sv%st(1), sv%ed(1), sv%sd(1)
3973 
3974 !!$ write(*,*) ' sv%st(2), sv%ed(2), sv%sd(2)=', sv%st(2), sv%ed(2), sv%sd(2)
3975 
3976 !!$ write(*,*) ' sv%st(3), sv%ed(3), sv%sd(3)=', sv%st(3), sv%ed(3), sv%sd(3)
3977 
3978 !!$ write(*,*) ' sv%st(4), sv%ed(4), sv%sd(4)=', sv%st(4), sv%ed(4), sv%sd(4)
3979 
3980 !!$ write(*,*) ' sv%st(5), sv%ed(5), sv%sd(5)=', sv%st(5), sv%ed(5), sv%sd(5)
3981 
3982 
3983  array_slice => array(sv%st(1):sv%ed(1):sv%sd(1) &
3984  & , sv%st(2):sv%ed(2):sv%sd(2) &
3985 
3986  & , sv%st(3):sv%ed(3):sv%sd(3) &
3987 
3988  & , sv%st(4):sv%ed(4):sv%sd(4) &
3989 
3990  & , sv%st(5):sv%ed(5):sv%sd(5) &
3991 
3992  & )
3993 
3994 
3995 
3996  ! 空間平均
3997  ! Spatial average
3998  !
3999  if ( count(space_avr_vars(vnum) % avr) == 0 ) then
4000  array_avr => array_slice
4001  else
4002  call averagereduce( &
4003  & array_slice, space_avr_vars(vnum) % avr, & ! (in)
4004  & weight_vars(vnum) % wgt1( sv%st(1):sv%ed(1):sv%sd(1) ) , & ! (in)
4005 
4006  & weight_vars(vnum) % wgt2( sv%st(2):sv%ed(2):sv%sd(2) ) , & ! (in)
4007 
4008  & weight_vars(vnum) % wgt3( sv%st(3):sv%ed(3):sv%sd(3) ) , & ! (in)
4009 
4010  & weight_vars(vnum) % wgt4( sv%st(4):sv%ed(4):sv%sd(4) ) , & ! (in)
4011 
4012  & weight_vars(vnum) % wgt5( sv%st(5):sv%ed(5):sv%sd(5) ) , & ! (in)
4013 
4014  & array_avr ) ! (out)
4015  end if
4016 
4017  ! 座標重みを取得 ; Get weights of axes
4018 
4019 
4020 
4021  ! 単位に応じて時刻を変換
4022  ! Convert time according to units
4023  !
4024  if ( output_timing_vars(vnum, svtstep) &
4025  & .or. output_timing_avr_vars(vnum, svtstep) ) then
4026 
4027  settime = &
4028  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
4029  end if
4030 
4031  ! 時刻設定
4032  ! Set time
4033  !
4034  if ( output_timing_vars(vnum, svtstep) ) then
4035  call historysettime( &
4036  & history = gthist, & ! (in) optional
4037  & timed = settime ) ! (in) optional
4038  end if
4039 
4040  ! 出力
4041  ! OutPut
4042  !
4043  if ( output_timing_avr_vars(vnum, svtstep) ) then
4044  call historyput( &
4045  & varname, & ! (in)
4046  & array_avr, & ! (in)
4047 
4048  & timed = settime, & ! (in) optional
4049  & time_average_store = &
4050  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
4051  & history = gthist ) ! (inout) optional
4052  else
4053  call historyput( &
4054  & varname, & ! (in)
4055  & array_avr, & ! (in)
4056 
4057  & history = gthist ) ! (inout) optional
4058  end if
4059 
4060  ! 最後に出力した時刻を保存
4061  ! Save last time of output
4062  !
4063  if ( output_timing_vars(vnum, svtstep) ) then
4064  if ( .not. create_timing_vars(vnum, svtstep) .and. &
4065  & .not. renew_timing_vars(vnum, svtstep) ) then
4066 
4067  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
4068  prev_outtime_vars(vnum) = time
4069  else
4070  prev_outtime_vars(vnum) = &
4071  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
4072  end if
4073  end if
4074  end if
4075 
4076  ! 結合解除
4077  ! Release associations
4078  !
4079  nullify( gthist )
4080  nullify( array_avr, array_slice )
4081 
4082 
4083 999 continue
4084  call storeerror(stat, subname, cause_c = cause_c, err = err)
4085  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputreal6()

subroutine historyautoputreal6 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
real, dimension(:,:,:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 4093 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

4093  !
4094 
4095  !
4096 
4098  & numvars, gthstnml, zero_time, &
4107  & averagereduce
4114  use dc_string, only: tochar
4115  use dc_message, only: messagenotify
4116  use dc_trace, only: beginsub, endsub
4119  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
4120  use dc_date_generic, only: operator(-), operator(+), &
4121  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
4124  use dc_types, only: dp, string, token
4125  implicit none
4126  real(DP), intent(in):: time
4127 
4128  character(*), intent(in):: varname
4129 
4130  real, intent(in), target:: array(:,:,:,:,:,:)
4131 
4132  logical, intent(out), optional:: err
4133 
4134 
4135  type(gt_history), pointer:: gthist =>null()
4136  ! gtool_history モジュール用構造体.
4137  ! Derived type for "gtool_history" module
4138 
4139  real, pointer:: array_slice(:,:,:,:,:,:) =>null()
4140  type(slice_info), pointer:: sv =>null()
4141  real, pointer:: array_avr(:,:,:,:,:,:) =>null()
4142 
4143  real(DP):: settime
4144  integer:: stat, i
4145  integer:: vnum
4146  character(STRING):: cause_c
4147  integer, save:: svnum = 1, svtstep
4148  character(*), parameter:: subname = "HistoryAutoPutReal6"
4149  continue
4150  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
4151  stat = dc_noerr
4152  cause_c = ""
4153 
4154  ! 初期設定チェック
4155  ! Check initialization
4156  !
4157  if ( .not. initialized ) then
4158  stat = dc_enotinit
4159  cause_c = 'gtool_historyauto'
4160  goto 999
4161  end if
4162 
4163  ! 時刻に関するエラー処理
4164  ! Error handling for time
4165  !
4166  if ( time < zero_time ) then
4167  cause_c = tochar( time )
4168  call messagenotify( 'W', subname, &
4169  & '"time=<%c>" must be positive value (varname=<%c>).', &
4170  & c1 = trim( cause_c ), c2 = trim( varname ) )
4171  stat = dc_enegative
4172  cause_c = 'time'
4173  goto 999
4174  end if
4175 
4176  ! 変数 ID のサーチ
4177  ! Search variable ID
4178  !
4179  varsearch: do
4180  do i = svnum, numvars
4181  if ( trim( varname_vars(i) ) == trim(varname) ) then
4182  vnum = i
4183  exit varsearch
4184  end if
4185  end do
4186  do i = 1, svnum - 1
4187  if ( trim( varname_vars(i) ) == trim(varname) ) then
4188  vnum = i
4189  exit varsearch
4190  end if
4191  end do
4192 
4193  stat = hst_ebadvarname
4194  cause_c = varname
4195  goto 999
4196  end do varsearch
4197 
4198  svnum = vnum
4199 
4200  ! 定義モードからデータモードへ
4201  ! Transit from define mode to data mode
4202  !
4203  if ( hstnmlinfodefinemode( gthstnml ) ) then
4204  call hstnmlinfoenddefine( gthstnml ) ! (inout)
4205  end if
4206 
4207  ! 出力タイミングのチェックとファイルの作成
4208  ! Check output timing and create files
4209  !
4210  call hstvarsoutputcheck( &
4211  & time = time, & ! (in)
4212  & stime_index = svtstep ) ! (out)
4213 
4214  ! ファイルのオープン・クローズ・再オープン
4215  ! Open, close, reopen files
4216  !
4217  if ( create_timing_vars(vnum, svtstep) &
4218  & .and. .not. histaddvar_vars(vnum) ) then
4219  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
4220  & varname_vars(vnum), time ) ! (in)
4221  histaddvar_vars(vnum) = .true.
4222  if ( flag_output_prev_vars(vnum) ) then
4223  prev_outtime_vars(vnum) = time
4224  else
4225  flag_output_prev_vars(vnum) = .true.
4226  if ( origin_time_vars(vnum) > zero_time ) then
4227  prev_outtime_vars(vnum) = origin_time_vars(vnum)
4228  else
4229  prev_outtime_vars(vnum) = time
4230  end if
4231  end if
4232  end if
4233 
4234  if ( close_timing_vars(vnum, svtstep) ) then
4235  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
4236  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
4237  end if
4238  end if
4239 
4240  if ( renew_timing_vars(vnum, svtstep) ) then
4241  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
4242  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
4243  end if
4244  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
4245  & varname_vars(vnum), time ) ! (in)
4246  newfile_createtime_vars(vnum) = time
4247  prev_outtime_vars(vnum) = time
4248  end if
4249 
4250  ! 出力が有効かどうかを確認する
4251  ! Confirm whether the output is effective
4252  !
4253  if ( .not. output_timing_vars(vnum, svtstep) &
4254  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
4255 
4256  goto 999
4257  end if
4258 
4259  ! GT_HISTORY 変数の取得
4260  ! Get "GT_HISTORY" variable
4261  !
4262  gthist => gthst_history_vars(vnum) % gthist
4263 
4264 
4265  ! 空間切り出し
4266  ! Slice of spaces
4267  !
4268  sv => slice_vars(vnum)
4269 
4270  !!$ write(*,*) ' sv%st(1), sv%ed(1), sv%sd(1)=', sv%st(1), sv%ed(1), sv%sd(1)
4271 
4272 !!$ write(*,*) ' sv%st(2), sv%ed(2), sv%sd(2)=', sv%st(2), sv%ed(2), sv%sd(2)
4273 
4274 !!$ write(*,*) ' sv%st(3), sv%ed(3), sv%sd(3)=', sv%st(3), sv%ed(3), sv%sd(3)
4275 
4276 !!$ write(*,*) ' sv%st(4), sv%ed(4), sv%sd(4)=', sv%st(4), sv%ed(4), sv%sd(4)
4277 
4278 !!$ write(*,*) ' sv%st(5), sv%ed(5), sv%sd(5)=', sv%st(5), sv%ed(5), sv%sd(5)
4279 
4280 !!$ write(*,*) ' sv%st(6), sv%ed(6), sv%sd(6)=', sv%st(6), sv%ed(6), sv%sd(6)
4281 
4282 
4283  array_slice => array(sv%st(1):sv%ed(1):sv%sd(1) &
4284  & , sv%st(2):sv%ed(2):sv%sd(2) &
4285 
4286  & , sv%st(3):sv%ed(3):sv%sd(3) &
4287 
4288  & , sv%st(4):sv%ed(4):sv%sd(4) &
4289 
4290  & , sv%st(5):sv%ed(5):sv%sd(5) &
4291 
4292  & , sv%st(6):sv%ed(6):sv%sd(6) &
4293 
4294  & )
4295 
4296 
4297 
4298  ! 空間平均
4299  ! Spatial average
4300  !
4301  if ( count(space_avr_vars(vnum) % avr) == 0 ) then
4302  array_avr => array_slice
4303  else
4304  call averagereduce( &
4305  & array_slice, space_avr_vars(vnum) % avr, & ! (in)
4306  & weight_vars(vnum) % wgt1( sv%st(1):sv%ed(1):sv%sd(1) ) , & ! (in)
4307 
4308  & weight_vars(vnum) % wgt2( sv%st(2):sv%ed(2):sv%sd(2) ) , & ! (in)
4309 
4310  & weight_vars(vnum) % wgt3( sv%st(3):sv%ed(3):sv%sd(3) ) , & ! (in)
4311 
4312  & weight_vars(vnum) % wgt4( sv%st(4):sv%ed(4):sv%sd(4) ) , & ! (in)
4313 
4314  & weight_vars(vnum) % wgt5( sv%st(5):sv%ed(5):sv%sd(5) ) , & ! (in)
4315 
4316  & weight_vars(vnum) % wgt6( sv%st(6):sv%ed(6):sv%sd(6) ) , & ! (in)
4317 
4318  & array_avr ) ! (out)
4319  end if
4320 
4321  ! 座標重みを取得 ; Get weights of axes
4322 
4323 
4324 
4325  ! 単位に応じて時刻を変換
4326  ! Convert time according to units
4327  !
4328  if ( output_timing_vars(vnum, svtstep) &
4329  & .or. output_timing_avr_vars(vnum, svtstep) ) then
4330 
4331  settime = &
4332  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
4333  end if
4334 
4335  ! 時刻設定
4336  ! Set time
4337  !
4338  if ( output_timing_vars(vnum, svtstep) ) then
4339  call historysettime( &
4340  & history = gthist, & ! (in) optional
4341  & timed = settime ) ! (in) optional
4342  end if
4343 
4344  ! 出力
4345  ! OutPut
4346  !
4347  if ( output_timing_avr_vars(vnum, svtstep) ) then
4348  call historyput( &
4349  & varname, & ! (in)
4350  & array_avr, & ! (in)
4351 
4352  & timed = settime, & ! (in) optional
4353  & time_average_store = &
4354  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
4355  & history = gthist ) ! (inout) optional
4356  else
4357  call historyput( &
4358  & varname, & ! (in)
4359  & array_avr, & ! (in)
4360 
4361  & history = gthist ) ! (inout) optional
4362  end if
4363 
4364  ! 最後に出力した時刻を保存
4365  ! Save last time of output
4366  !
4367  if ( output_timing_vars(vnum, svtstep) ) then
4368  if ( .not. create_timing_vars(vnum, svtstep) .and. &
4369  & .not. renew_timing_vars(vnum, svtstep) ) then
4370 
4371  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
4372  prev_outtime_vars(vnum) = time
4373  else
4374  prev_outtime_vars(vnum) = &
4375  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
4376  end if
4377  end if
4378  end if
4379 
4380  ! 結合解除
4381  ! Release associations
4382  !
4383  nullify( gthist )
4384  nullify( array_avr, array_slice )
4385 
4386 
4387 999 continue
4388  call storeerror(stat, subname, cause_c = cause_c, err = err)
4389  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function:

◆ historyautoputreal7()

subroutine historyautoputreal7 ( real(dp), intent(in)  time,
character(*), intent(in)  varname,
real, dimension(:,:,:,:,:,:,:), intent(in), target  array,
logical, intent(out), optional  err 
)

Definition at line 4397 of file historyautoput.f90.

References dc_trace::beginsub(), gtool_historyauto_internal::cal_save, gtool_historyauto_internal::close_timing_vars, gtool_historyauto_internal::create_timing_vars, dc_error::dc_enegative, dc_error::dc_enotinit, dc_error::dc_noerr, dc_types::dp, dc_trace::endsub(), gtool_historyauto_internal::flag_output_prev_vars, dc_error::gt_eargsizemismatch, gtool_historyauto_internal::gthst_history_vars, gtool_historyauto_internal::gthstnml, gtool_historyauto_internal::histaddvar_vars, historyclose(), historysettime(), dc_error::hst_ebadvarname, gtool_historyauto_internal::initialized, gtool_historyauto_internal::interval_time_vars, gtool_historyauto_internal::interval_unitsym_vars, gtool_historyauto_internal::newfile_createtime_vars, gtool_historyauto_internal::numdims, gtool_historyauto_internal::numvars, gtool_historyauto_internal::origin_time_vars, gtool_historyauto_internal::output_timing_avr_vars, gtool_historyauto_internal::output_timing_vars, gtool_historyauto_internal::prev_outtime_vars, gtool_historyauto_internal::renew_timing_vars, gtool_historyauto_internal::slice_vars, gtool_historyauto_internal::space_avr_vars, dc_error::storeerror(), dc_types::string, dc_types::token, gtool_historyauto_internal::varname_vars, gtool_historyauto_internal::weight_vars, and gtool_historyauto_internal::zero_time.

4397  !
4398 
4399  !
4400 
4402  & numvars, gthstnml, zero_time, &
4411  & averagereduce
4418  use dc_string, only: tochar
4419  use dc_message, only: messagenotify
4420  use dc_trace, only: beginsub, endsub
4423  use dc_calendar, only: unit_symbol_sec, dccalconvertbyunit
4424  use dc_date_generic, only: operator(-), operator(+), &
4425  & operator(>), operator(<), mod, operator(==), tochar, evalsec, &
4428  use dc_types, only: dp, string, token
4429  implicit none
4430  real(DP), intent(in):: time
4431 
4432  character(*), intent(in):: varname
4433 
4434  real, intent(in), target:: array(:,:,:,:,:,:,:)
4435 
4436  logical, intent(out), optional:: err
4437 
4438 
4439  type(gt_history), pointer:: gthist =>null()
4440  ! gtool_history モジュール用構造体.
4441  ! Derived type for "gtool_history" module
4442 
4443  real, pointer:: array_slice(:,:,:,:,:,:,:) =>null()
4444  type(slice_info), pointer:: sv =>null()
4445  real, pointer:: array_avr(:,:,:,:,:,:,:) =>null()
4446 
4447  real(DP):: settime
4448  integer:: stat, i
4449  integer:: vnum
4450  character(STRING):: cause_c
4451  integer, save:: svnum = 1, svtstep
4452  character(*), parameter:: subname = "HistoryAutoPutReal7"
4453  continue
4454  call beginsub(subname, 'varname=%c', c1 = trim(varname) )
4455  stat = dc_noerr
4456  cause_c = ""
4457 
4458  ! 初期設定チェック
4459  ! Check initialization
4460  !
4461  if ( .not. initialized ) then
4462  stat = dc_enotinit
4463  cause_c = 'gtool_historyauto'
4464  goto 999
4465  end if
4466 
4467  ! 時刻に関するエラー処理
4468  ! Error handling for time
4469  !
4470  if ( time < zero_time ) then
4471  cause_c = tochar( time )
4472  call messagenotify( 'W', subname, &
4473  & '"time=<%c>" must be positive value (varname=<%c>).', &
4474  & c1 = trim( cause_c ), c2 = trim( varname ) )
4475  stat = dc_enegative
4476  cause_c = 'time'
4477  goto 999
4478  end if
4479 
4480  ! 変数 ID のサーチ
4481  ! Search variable ID
4482  !
4483  varsearch: do
4484  do i = svnum, numvars
4485  if ( trim( varname_vars(i) ) == trim(varname) ) then
4486  vnum = i
4487  exit varsearch
4488  end if
4489  end do
4490  do i = 1, svnum - 1
4491  if ( trim( varname_vars(i) ) == trim(varname) ) then
4492  vnum = i
4493  exit varsearch
4494  end if
4495  end do
4496 
4497  stat = hst_ebadvarname
4498  cause_c = varname
4499  goto 999
4500  end do varsearch
4501 
4502  svnum = vnum
4503 
4504  ! 定義モードからデータモードへ
4505  ! Transit from define mode to data mode
4506  !
4507  if ( hstnmlinfodefinemode( gthstnml ) ) then
4508  call hstnmlinfoenddefine( gthstnml ) ! (inout)
4509  end if
4510 
4511  ! 出力タイミングのチェックとファイルの作成
4512  ! Check output timing and create files
4513  !
4514  call hstvarsoutputcheck( &
4515  & time = time, & ! (in)
4516  & stime_index = svtstep ) ! (out)
4517 
4518  ! ファイルのオープン・クローズ・再オープン
4519  ! Open, close, reopen files
4520  !
4521  if ( create_timing_vars(vnum, svtstep) &
4522  & .and. .not. histaddvar_vars(vnum) ) then
4523  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
4524  & varname_vars(vnum), time ) ! (in)
4525  histaddvar_vars(vnum) = .true.
4526  if ( flag_output_prev_vars(vnum) ) then
4527  prev_outtime_vars(vnum) = time
4528  else
4529  flag_output_prev_vars(vnum) = .true.
4530  if ( origin_time_vars(vnum) > zero_time ) then
4531  prev_outtime_vars(vnum) = origin_time_vars(vnum)
4532  else
4533  prev_outtime_vars(vnum) = time
4534  end if
4535  end if
4536  end if
4537 
4538  if ( close_timing_vars(vnum, svtstep) ) then
4539  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
4540  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
4541  end if
4542  end if
4543 
4544  if ( renew_timing_vars(vnum, svtstep) ) then
4545  if ( historyinitialized( gthst_history_vars(vnum) % gthist ) ) then
4546  call historyclose( gthst_history_vars(vnum) % gthist ) ! (inout)
4547  end if
4548  call hstfilecreate( gthst_history_vars(vnum) % gthist, & ! (inout)
4549  & varname_vars(vnum), time ) ! (in)
4550  newfile_createtime_vars(vnum) = time
4551  prev_outtime_vars(vnum) = time
4552  end if
4553 
4554  ! 出力が有効かどうかを確認する
4555  ! Confirm whether the output is effective
4556  !
4557  if ( .not. output_timing_vars(vnum, svtstep) &
4558  & .and. .not. output_timing_avr_vars(vnum, svtstep) ) then
4559 
4560  goto 999
4561  end if
4562 
4563  ! GT_HISTORY 変数の取得
4564  ! Get "GT_HISTORY" variable
4565  !
4566  gthist => gthst_history_vars(vnum) % gthist
4567 
4568 
4569  ! 空間切り出し
4570  ! Slice of spaces
4571  !
4572  sv => slice_vars(vnum)
4573 
4574  !!$ write(*,*) ' sv%st(1), sv%ed(1), sv%sd(1)=', sv%st(1), sv%ed(1), sv%sd(1)
4575 
4576 !!$ write(*,*) ' sv%st(2), sv%ed(2), sv%sd(2)=', sv%st(2), sv%ed(2), sv%sd(2)
4577 
4578 !!$ write(*,*) ' sv%st(3), sv%ed(3), sv%sd(3)=', sv%st(3), sv%ed(3), sv%sd(3)
4579 
4580 !!$ write(*,*) ' sv%st(4), sv%ed(4), sv%sd(4)=', sv%st(4), sv%ed(4), sv%sd(4)
4581 
4582 !!$ write(*,*) ' sv%st(5), sv%ed(5), sv%sd(5)=', sv%st(5), sv%ed(5), sv%sd(5)
4583 
4584 !!$ write(*,*) ' sv%st(6), sv%ed(6), sv%sd(6)=', sv%st(6), sv%ed(6), sv%sd(6)
4585 
4586 !!$ write(*,*) ' sv%st(7), sv%ed(7), sv%sd(7)=', sv%st(7), sv%ed(7), sv%sd(7)
4587 
4588 
4589  array_slice => array(sv%st(1):sv%ed(1):sv%sd(1) &
4590  & , sv%st(2):sv%ed(2):sv%sd(2) &
4591 
4592  & , sv%st(3):sv%ed(3):sv%sd(3) &
4593 
4594  & , sv%st(4):sv%ed(4):sv%sd(4) &
4595 
4596  & , sv%st(5):sv%ed(5):sv%sd(5) &
4597 
4598  & , sv%st(6):sv%ed(6):sv%sd(6) &
4599 
4600  & , sv%st(7):sv%ed(7):sv%sd(7) &
4601 
4602  & )
4603 
4604 
4605 
4606  ! 空間平均
4607  ! Spatial average
4608  !
4609  if ( count(space_avr_vars(vnum) % avr) == 0 ) then
4610  array_avr => array_slice
4611  else
4612  call averagereduce( &
4613  & array_slice, space_avr_vars(vnum) % avr, & ! (in)
4614  & weight_vars(vnum) % wgt1( sv%st(1):sv%ed(1):sv%sd(1) ) , & ! (in)
4615 
4616  & weight_vars(vnum) % wgt2( sv%st(2):sv%ed(2):sv%sd(2) ) , & ! (in)
4617 
4618  & weight_vars(vnum) % wgt3( sv%st(3):sv%ed(3):sv%sd(3) ) , & ! (in)
4619 
4620  & weight_vars(vnum) % wgt4( sv%st(4):sv%ed(4):sv%sd(4) ) , & ! (in)
4621 
4622  & weight_vars(vnum) % wgt5( sv%st(5):sv%ed(5):sv%sd(5) ) , & ! (in)
4623 
4624  & weight_vars(vnum) % wgt6( sv%st(6):sv%ed(6):sv%sd(6) ) , & ! (in)
4625 
4626  & weight_vars(vnum) % wgt7( sv%st(7):sv%ed(7):sv%sd(7) ) , & ! (in)
4627 
4628  & array_avr ) ! (out)
4629  end if
4630 
4631  ! 座標重みを取得 ; Get weights of axes
4632 
4633 
4634 
4635  ! 単位に応じて時刻を変換
4636  ! Convert time according to units
4637  !
4638  if ( output_timing_vars(vnum, svtstep) &
4639  & .or. output_timing_avr_vars(vnum, svtstep) ) then
4640 
4641  settime = &
4642  & dccalconvertbyunit( time, unit_symbol_sec, interval_unitsym_vars(vnum), cal_save )
4643  end if
4644 
4645  ! 時刻設定
4646  ! Set time
4647  !
4648  if ( output_timing_vars(vnum, svtstep) ) then
4649  call historysettime( &
4650  & history = gthist, & ! (in) optional
4651  & timed = settime ) ! (in) optional
4652  end if
4653 
4654  ! 出力
4655  ! OutPut
4656  !
4657  if ( output_timing_avr_vars(vnum, svtstep) ) then
4658  call historyput( &
4659  & varname, & ! (in)
4660  & array_avr, & ! (in)
4661 
4662  & timed = settime, & ! (in) optional
4663  & time_average_store = &
4664  & .not. output_timing_vars(vnum, svtstep), & ! (in) optional
4665  & history = gthist ) ! (inout) optional
4666  else
4667  call historyput( &
4668  & varname, & ! (in)
4669  & array_avr, & ! (in)
4670 
4671  & history = gthist ) ! (inout) optional
4672  end if
4673 
4674  ! 最後に出力した時刻を保存
4675  ! Save last time of output
4676  !
4677  if ( output_timing_vars(vnum, svtstep) ) then
4678  if ( .not. create_timing_vars(vnum, svtstep) .and. &
4679  & .not. renew_timing_vars(vnum, svtstep) ) then
4680 
4681  if ( mod(time, interval_time_vars(vnum) ) == zero_time ) then
4682  prev_outtime_vars(vnum) = time
4683  else
4684  prev_outtime_vars(vnum) = &
4685  & prev_outtime_vars(vnum) + interval_time_vars(vnum)
4686  end if
4687  end if
4688  end if
4689 
4690  ! 結合解除
4691  ! Release associations
4692  !
4693  nullify( gthist )
4694  nullify( array_avr, array_slice )
4695 
4696 
4697 999 continue
4698  call storeerror(stat, subname, cause_c = cause_c, err = err)
4699  call endsub(subname)
type(slice_info), dimension(1:max_vars), target, save, public slice_vars
integer, parameter, public dc_enotinit
Definition: dc_error.f90:557
subroutine historysettime(time, history, difftime, timed)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public renew_timing_vars
real(dp), dimension(1:max_vars), save, public interval_time_vars
type(space_avr_info), dimension(1:max_vars), target, save, public space_avr_vars
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition: dc_types.f90:109
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public output_timing_avr_vars
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dc_noerr
Definition: dc_error.f90:509
integer, parameter, public hst_ebadvarname
Definition: dc_error.f90:587
logical, dimension(1:max_vars), save, public flag_output_prev_vars
real(dp), dimension(1:max_vars), save, public origin_time_vars
subroutine historyclose(history, quiet, err)
logical, dimension(1:max_vars, 1:save_tstepnum), save, public create_timing_vars
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Definition: dc_trace.f90:351
integer, dimension(1:max_vars), save, public interval_unitsym_vars
character(token), dimension(1:max_vars), save, public varname_vars
real(dp), dimension(1:max_vars), save, public prev_outtime_vars
logical, dimension(1:max_vars), save, public histaddvar_vars
文字型変数の操作.
Definition: dc_string.f90:24
integer, parameter, public gt_eargsizemismatch
Definition: dc_error.f90:536
種別型パラメタを提供します。
Definition: dc_types.f90:49
type(gthst_nmlinfo), save, public gthstnml
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
Definition: dc_trace.f90:446
type(dc_cal), save, public cal_save
type(axes_weight), dimension(1:max_vars), target, save, public weight_vars
type(gt_history_multi), dimension(1:max_vars), save, public gthst_history_vars
real(dp), dimension(1:max_vars), save, public newfile_createtime_vars
logical, dimension(1:max_vars, 1:save_tstepnum), save, public close_timing_vars
integer, parameter, public dc_enegative
Definition: dc_error.f90:568
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118
Here is the call graph for this function: